OpenLDAP Scaling Guide
OpenLDAP Scaling Guide
Page 2 of 13
1 Introduction
Both enterprises and telecommunications companies are reaching new users and building new revenue streams by deploying large-scale directory services over converged telecommunications, enterprise and public networks. These services rely on LDAP Directories as mission critical components of the overall service delivery infrastructure. Directories are used to authenticate and authorize devices and users to the network, and ensure each receives access to the right set of personalized services, with a high quality customer experience. A directory that fails to perform results in missed SLAs and service downtime, in addition to significant risks to both enterprise and user security and privacy. Not only is customer satisfaction adversely affected, but revenue is compromised and the enterprise's brand can be damaged. The directories used by many Communications Service Providers need to scale to 100+ million entries, billions of data points, higher transaction rates and constant updates with strict availability requirements. With the exponential growth in users, devices and services relying on the network, coupled with the need to store richer attributes for each, the performance and scalability of the directory becomes mission critical. New services are at the heart of this need to re-examine the scalability of directories. For example, to ensure portability, contact address books used for wireless applications are now often stored in a directory on the network, rather than on a mobile device itself. Subscriber profiles are becoming richer as they capture network preference and media objects alongside traditional customer contact and service entitlement data. Adding just 1KB of additional data to the profile of 30 million subscribers adds an additional 30GB to the directory. To address such challenges, MySQL has collaborated with industry leading LDAP Directory communities and vendors to integrate the carrier-grade, real-time MySQL Cluster database with LDAP Directory Servers. The OpenLDAP Driver for MySQL Cluster (technically referred to as backndb) enables OpenLDAP to use MySQL Cluster Carrier Grade Edition as its data store. MySQL Cluster has been widely deployed for subscriber databases within Communications Service Provider networks. Extending this capability, MySQL Cluster Carrier Grade Edition can serve as the back-end data store for OpenLDAP directory servers, allowing users to preserve and enhance their existing investments in OpenLDAP technology, while delivering the required performance and scalability. It allows operators to embark on initiatives that fully exploit user and network data that is currently distributed across legacy applications and networks. In order to deploy a range of next generation, highly personalized services delivered over communications networks; operators need to expose subscriber and network data in a standardized way. Subscriber profiles are becoming richer as they capture network preference and media objects alongside traditional customer profile and service entitlement data. At the same time security and auditing requirements force data to be more transactional in nature. Using industry standard LDAP directories with MySQL Cluster serving as the data store, operators can leverage standard LDAP interfaces for authentication and authorization of devices and subscribers with real-time performance, carrier-grade availability. OpenLDAP, with MySQL Cluster, is a total solution that reduces cost, risk and complexity for large, transaction-intensive directory applications.
Page 3 of 13
Each database server must have all the data for which it may be queried in its local database (referrals across servers are very time-consuming and rarely acceptable) Each database server must process all updates affecting any entries it contains
To ensure required performance levels are achieved with these very dynamic workloads, each OpenLDAP directory server typically needs a very large memory (RAM) to hold the directory database in its in-memory cache (RAM), which can increase the cost of the system.
Page 4 of 13
mappings, database updates to the OpenLDAP directory may be from 3-to-10 times as demanding as database accesses to the OpenLDAP directory. There is really no upper bound on this complexity as configurations allow unlimited indexing of entries. The challenge this presents is that OpenLDAP directory servers require databases to handle the increased overhead of updates, with a resulting increase in system cost.
Page 5 of 13
M= Master. R = Replica. H = Hub. R/O = Read-Only Figure 1: Database deployment complexity and cost grows as the OpenLDAP directory data store scales
Page 6 of 13
transaction. The processing of that update transaction is not radically different than the processing the master server had to do in order to update the master database. As a result, the replica database servers need to be nearly as powerful (and expensive) as the master servers themselves because they have to handle similar levels of update load. It also means that distributing the update load across multiple master database servers is rarely a load-balancing solution because the updates ultimately have to be reflected on each of the masters and all of the replicas anyway. Multi-master solutions can help manage peak loads on particular servers but the aggregate load must be supported also.
For more information on MySQL Cluster including datasheets, whitepapers, webinars and case studies, please refer to http://www.mysql.com/products/database/cluster/
Page 7 of 13
performing back-ups, updating database schemas and upgrades of hardware and software within the cluster. MySQL Cluster eliminates the need for expensive shared storage, and runs on a range of commodity hardware and OS platforms, making it the most open and cost-effective database solution for mission critical applications anywhere.
Figure 2: The MySQL Cluster architecture delivers carrier-grade availability and performance, without the traditional carrier-grade price
Page 8 of 13
Application Nodes are the applications connecting to the database. This can take the form of an application leveraging the high performance NDB API, such as LDAP servers via a driver to MySQL Cluster. MySQL Servers can be deployed which perform the function of SQL interfaces into the data stored within a cluster. Thus, applications can simultaneously access the data in MySQL Cluster using a rich set of interfaces, such as SQL, LDAP and web services. Moreover, additional Application nodes can be added online. Management Nodes manage and make cluster configuration information available to other nodes. The Management Nodes are used at startup and when there is a system reconfiguration. Management Nodes can be stopped and restarted without affecting the ongoing execution of the Data and Application Nodes. By default, the Management Node also provides arbitration services, in the event there is a network failure which leads to a split-brain or a cluster exhibiting networkpartitioning. With this distributed architecture, where dependencies have been minimized, applications continue to run and data remain consistent, even if any one of the data, application, or management nodes fail.
Figure 3: MySQL
Page 9 of 13
As a real-time database, MySQL Cluster meets the most stringent latency requirements of communications applications by storing data in memory. This serves to minimize the impact of moving data from a local data store co-hosted on a directory server to a centrally accessed networked database. Traditional OpenLDAP deployments, co-locate the directory and the database on the same server, requiring expensive SMP hardware. As MySQL Cluster can distribute the database across several servers, while maintaining fast access to data storage, the overall memory and system cost can be substantially reduced.
Figure 4: Geographic Replication extends 99.999% database availability across remote locations
Page 10 of 13
Figure 5: Simplified scaling to handle the most demanding OpenLDAP directory database workloads
Page 11 of 13
MySQL Cluster Carrier Grade Edition's transparent replication and back-up services also extend these benefits from large, dynamic OpenLDAP directory database to smaller high-value OpenLDAP directory. It makes a great deal of sense to migrate a production OpenLDAP directory data store off traditional database technologies to MySQL Cluster Carrier Grade Edition, long before the growth of the OpenLDAP directory database makes scalability of the data store a major issue. Once that relatively simple conversion is complete, users can grow the directory database using the superior scalability of MySQL Cluster without impacting the directory client applications.
4 Conclusion
The growth of on-line services in both enterprise and telecommunications networks is driving a radical change in the way directory servers store and maintain their data. Update rates are increasing, the amount of data being stored for each entry is growing while availability and performance demands are becoming ever more stringent. This demands different database design and implementation philosophies. In many existing environments, the OpenLDAP directory and the database are deployed on the same host. The server has to be equipped with sufficient RAM to act as a cache for the database, thereby supporting response time requirements, and must be powerful enough to process updates quickly. As OpenLDAP directory databases grow in size and updates become more frequent, so a higher load is placed on each directory server. Many OpenLDAP directory database environments deploy multiple redundant systems, comprising masters and replicas, in order to meet availability and performance demands. However, a database replication overhead can be incurred in order to maintain data consistency across database replicas. These conditions cause spiraling hardware requirements, along with increased operational costs and complexity, while reducing business agility. Using the OpenLDAP Driver for MySQL Cluster Carrier Grade Edition, the data store of the OpenLDAP directory can be decoupled from the OpenLDAP directory server, and presented as a shared resource over the network using the real-time, carrier-grade MySQL Cluster database. Using MySQL Cluster's in-built mechanisms for data replication and its real time design, users can increase the performance and availability of their database serving OpenLDAP with lower replication overhead, reduced management complexity and savings in hardware costs. Developers do not need to concern themselves with database replication technologies or High Availability mechanisms, and their applications continue to work unchanged, providing a seamless upgrade to existing OpenLDAP environments. MySQL Cluster Carrier Grade Edition, with associated Professional and Training Services, makes an ideal solution to address the scalability challenges of the most dynamic and fast growing OpenLDAP applications.
5 References
OpenLDAP: http://www.openldap.org/ Symas: http://www.symas.com/ MySQL Cluster on the web: http://www.mysql.com/products/database/cluster/ MySQL Cluster Datasheet: http://www.mysql.com/products/database/cluster/mysql-cluster-datasheet.pdf
Page 12 of 13
6 About Symas
Symas Corporation was founded in 1999. The Founders originally set out to develop industryleading and proprietary User Management software. The challenge of collecting, organizing, and auditing all the information about who has access to enterprise information technology is daunting. None of the offerings at the time offered practical solutions and the founders of Symas had an approach that offered unique advantages and real hope of tackling the challenge. This class of technology presents database challenges poorly addressed by Relational Data Base Management Systems (RDBMSs). These challenges were much more directly addressed by the features of Internet Standard LDAP directory data base management software. In 1999 Symas elected to base its development on the then relatively young Open Source Software project, OpenLDAP. The project was working to prepare the University of Michigan's Open Source LDAP server software for broader deployment. It needed significant work on portability, architecture, and functionality. Starting from the beginning, Symas contributed continuously and heavily to the OpenLDAP project as a maintainer and developer. With limited traction for its User Management efforts, the company evolved to survive the Dot-Bomb, doing custom programming, consulting, and continuing to provide enhancements and updates to OpenLDAP. Ultimately, the company focused all its efforts in building a commercial technical support, training, and consulting company around OpenLDAP. Today, Symas is committed to helping enterprises introduce new directory database applications for security, identity and network management and assisting them in converting existing directories to OpenLDAP. As enterprise demand has increased, Symas has responded by increasing its support and strengthening its commercial OpenLDAP offerings. The result is Symas OpenLDAP, the leading distribution of OpenLDAP and associated Open Source technologies. Companies like Yahoo!'s Zimbra unit, Sendmail, MDSI, Ventyx, Airwide, EMC, Sun, and Fidelity National Information Systems rely on Symas and Symas OpenLDAP for directory technology integrated into their offerings. Copyright 2009, Symas Corporation. Symas is a registered trademark in the U.S. and in other countries. Other products mentioned may be trademarks of their companies.
Page 13 of 13