在大约1年的时间里,我们一直在使用ubuntu 10.04LTS上的openldap来authentication大约20个IT用户,一切运行良好(LDAP服务器上的操作基本上局限于使用apache directory studio创build/删除用户)。
最近(6个月前),我们也开始实施openldap (openldap-2.4.21 / debian)作为我们网站的外部authentication系统,该系统正在从外部CMS迁移到我们正在开发的新平台Drupal CMS 。 我们有一个45K的用户数据库,事情一直没有顺利。 我们遇到的问题是:
– 备份恢复后,ldap崩溃,需要恢复 。
– ldap恢复工具无法恢复某些occassions上的ldap数据库
消耗100%的CPU,而在网站上没有validation活动。
由于内部缺乏资源和知识,所以我们到目前为止所做的一切就是find保持LDAP运行的方法,而不必真正调查这些问题(使用db_recover在崩溃时重新启动它, db_recover根据需要恢复数据库,以及slapcat在db_recover失败时重新创build数据库)。
最近我们进行了一轮采访,聘请了一名高级基础设施工程师来帮助我们完成各种各样的工作。 我们遇到的问题。 有几位候选人证实他们在大型生产环境中曾经或曾经听说过有关openldap问题,也从来没有想出一个单独的稳定的独立openldap服务器,而是必须提出冗余部署(复制,负载均衡,自动恢复/重启例程)来保持ldap运行。 有些候选人甚至认为openldap只是不适合生产环境,而是使用Novel eDirectory等替代品。
问:如果您有数千用户在生产环境中处理ldap的经验,您是否有共享的事实certificateopenldap确实对这样的设置不稳定,并且确实推荐使用其他ldap服务器?
我使用OpenLDAP,支持大约10,000名活跃用户的用户,他们全天都依赖它。 问题很less。 许多服务依赖于它,用于身份validation和其他事情。
但是,我们在负载均衡器后面有4个只读副本(从属/消费者),一个隐藏主节点和一个热备份主节点。 曾经是2台前端服务器,但是在某些高峰时段(当4000人左右的用户拼命试图在同一时间内),我们遇到了负载问题。 所有对LDAP的写入权限都是通过我们的代码。
那个设备和操作系统都是老的,我们正在用一个新的设置replace它,这个设置将会只返回到2个副本(那不是做太多其他的事情)和一对主机之间的“镜像模式”复制一个HAconfiguration。 再次,问题是罕见的。
我们以前有复制失败的一些问题,但这主要来自我们使用slurpd而不是syncrepl。 另外,服务器的不正常closures可能会破坏数据。
按照我的经验,在大规模生产环境中运行OpenLDAP的关键是:
附录 :根据请求,从我的openldap数据库目录DB_CONFIG文件。 有关详细信息,请参阅http://docs.oracle.com/cd/E17076_02/html/api_reference/C/configuration_reference.html 。
set_cachesize 0 536870912 1 set_flags DB_TXN_NOSYNC set_flags DB_TXN_WRITE_NOSYNC set_lg_regionmax 268435456 set_lg_max 536870912 set_lg_bsize 134217728