OpenLDAP使用管理員指南_第1頁
OpenLDAP使用管理員指南_第2頁
OpenLDAP使用管理員指南_第3頁
OpenLDAP使用管理員指南_第4頁
OpenLDAP使用管理員指南_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

OpenLDAP管理員指南LDAP是如何工作的?LDAP采用客戶-服務器模式.包含在一個或多個LDAP服務器中的數(shù)據(jù)組成了目錄信息樹(DIT).客戶端連接到服務器然后問一個問題.服務器返回一個應答或一個指針告訴客戶端去哪里獲得更多的信息(通常是另一臺LDAP服務器).客戶端連接哪臺LDAP服務器不重要,目錄的視圖看起來都一樣;一個提交到某臺LDAP服務器的名字在另一臺LDAP服務器上也將指向相同的條目.這是全球目錄服務的一個重要功能.關于X.500技術上來講,LDAP是一個針對X.500目錄服務(OSI目錄服務)的目錄訪問協(xié)議.起初,LDAP客戶端通過網關訪問X.500目錄服務.客戶端和網關之間跑的是LDAP,而網關和X.500服務之間跑的是X.500的目錄訪問協(xié)議(DAP).DAP是一個重量級的協(xié)議,它操作完整的OSI協(xié)議棧并且需要大量的計算資源.LDAP設計成通過TCP/IP操作并以非常少的開銷來提供DAP的大部分功能.雖然LDAP仍被用于通過網關訪問X.500目錄服務,LDAP現(xiàn)在更常見的是直接在X.500服務器上實現(xiàn).標準的LDAP守護進程,或曰slapd(8),可以被視為一個輕量級的X.500目錄服務.也就是說,它既不由X.500'sDAP實現(xiàn),也不支持完整的X.500模型.如果你以及功能運行了一個X.500DAP服務并且你想繼續(xù)這么干,可能你不用讀這本指南了.這份指南全部是關于通過slapd(8)運行LDAP,而不是運行X.500DAP.如果你沒有運行X.500DAP,希望停止運行X.500DAP,或最近沒有打算運行X.500DAP,請繼續(xù).從一個LDAP目錄服務器復制數(shù)據(jù)到一個X.500DAPDSA是有可能的.這需要一個LDAP/DAP網關.OpenLDAP軟件不包含這樣一個網關.LDAPv2和LDAPv3之間有何不同?LDAPv3在20實際90年代末期開發(fā)用來替代LDAPv2.LDAPv3為LDAP增加了以下功能:使用SASL實現(xiàn)強驗證和數(shù)據(jù)安全服務使用TLS(SSL)實現(xiàn)證書驗證和數(shù)據(jù)安全服務使用Unicode實現(xiàn)國際化轉發(fā)和配置規(guī)劃發(fā)現(xiàn)擴展性(控制,擴展操作,以及更多)LDAPv2過時了(RFC3494).大部分所謂LDAPv2實現(xiàn)(includingslapd(8))已經不符合LDAPv2技術規(guī)范了,那些聲稱支持LDAPv2的實現(xiàn)之間的互操作性是有限的.由于LDAPv2和LDAPv3顯著的差異,同時部署LDAPv2和LDAPv3是很成問題的.應該避免使用LDAPv2.LDAPv2缺省是被禁用的.LDAPvsRDBMS這個問題被提到很多次,以不同的形式.最常見的是:為什么OpenLDAP不放棄BerkeleyDB而使用一個關系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)替代它?通常,我們可以預期商業(yè)級RDBMS的復雜算法將使OpenLDAP更快或者反正是更好,同時允許其他應用程序分享其數(shù)據(jù).簡單的答案是,使用嵌入式數(shù)據(jù)庫和定制的索引系統(tǒng)允許OpenLDAP提供更高的性能和可擴展性而又不減少可靠性.OpenLDAP使用BerkeleyDB并行/事務數(shù)據(jù)庫軟件.業(yè)界領先的商業(yè)目錄軟件也使用同樣的軟件.現(xiàn)在來詳細回答一下.任何時候我們總是面對RDBMSesvs.directories的選擇.很難選擇,并且不存在簡單的答案.給目錄一個關系數(shù)據(jù)庫管理系統(tǒng)的后端來解決所有問題,這個想法無疑是很誘人的.無論如何,它是一頭豬(譯者:呃,老外罵人了).這是因為數(shù)據(jù)模型是非常不同的.用關系型數(shù)據(jù)庫去表現(xiàn)目錄數(shù)據(jù),將需要把數(shù)據(jù)分割到多個表里面.考慮一下關于person這個objectclass.它的定義需要屬性類型objectclass,sn和cn,并且允許屬性類型userPassword,telephoneNumber,seeAlso以及description.所有這些屬性都是多值的,所以一個常規(guī)的需求就會把每個屬性類型放大一個單獨的表里面.現(xiàn)在你不得不決定這些表的適當?shù)逆I.主鍵可能是一個DN的組合,但是這在絕大多數(shù)數(shù)據(jù)庫實現(xiàn)中是非常低效的.現(xiàn)在的大問題是根據(jù)一個條目請求去不同的磁盤區(qū)域訪問數(shù)據(jù).在某些應用里面這個還可以做到,但是在很多應用里面性能就很困難.唯一可以放到主表條目里面的屬性類型是那些強制性的和單值的.你也可以增加可選性的單值屬性并把他們設為NULL或其他什么東西.但是請等一下,這個條目有多個objectclasses并且他們組織成一個繼承的層次.一個objectclassorganizationalPerson的條目現(xiàn)在有從person來的屬性加上一些其他的以及一些原有的可選的屬性類型現(xiàn)在變成強制性的了.怎么辦?我們應該用不同的表放不同的objectclasses嗎?這樣person將有一個條目在person表,另一個在organizationalPerson表,以此類推.或我們應該不管person而把每樣東西放在第二個表?但是對于類似(cn=*)這樣的過濾器,cn是一個在很多很多objectclasses里出現(xiàn)的屬性類型,我們怎么辦?我們應該為匹配那個過濾器搜索所有可能的表嗎?不是很有吸引力.一旦達到這種程度,三種辦法浮現(xiàn)在腦海中。一個是做全面正?;?,以使每個屬性類型,不管如何,都有自己單獨的表。簡單的方法DN作為主鍵的一部分是非常浪費的,并且調用的是那個條目的唯一性的數(shù)字id而不是鍵,并且需要一個表來負責映射DN到id。這個方法,無論如何,當從一個或多個條目中請求很多屬性類型的時候是非常低效的.這樣一個數(shù)據(jù)庫,盡管繁瑣,也可能由SQL應用程序管理.第二個辦法是把整個DN作為一個blob類型字段存在表里由所有條目共享,不管objectclass,并且額外的表作為第一個表的索引.索引表不是數(shù)據(jù)庫索引,而是完全由LDAP服務端實現(xiàn)來管理.無論如何,無法利用SQL數(shù)據(jù)庫了.因此,一個完全成熟的數(shù)據(jù)庫系統(tǒng)很少或根本沒有優(yōu)勢.全功能的通用數(shù)據(jù)庫是不需要的.更好的辦法是使用一些輕型快速的,如BerkeleyDB.從一種完全不同的方式來看這件事,就是放棄任何實現(xiàn)目錄數(shù)據(jù)模型的希望。在這種情況下,LDAP被用作一個對數(shù)據(jù)的訪問協(xié)議,這些數(shù)據(jù)僅提供目錄數(shù)據(jù)模型層面的數(shù)據(jù).例如,它可能是只讀,或允許更新,適用限制,如單值屬性類型允許多個值?;驘o法添加新的objectclasses到現(xiàn)有的條目或刪除其中之一。限制范圍的跨度從允許的限制(可能在其他地方造成的訪問控制結果),到直接侵犯數(shù)據(jù)模型。無論如何,它是一個可行的辦法,對之前就存在的用于其它應用程序的數(shù)據(jù)提供LDAP操作.但是從概念上講,我們并不真的擁有一個"目錄".現(xiàn)有的商業(yè)LDAP服務器采用關系數(shù)據(jù)庫實現(xiàn)的,都是從第一種或第三種方法。我不知道任何使用關系數(shù)據(jù)庫的實現(xiàn)如何低效地執(zhí)行BDB做起來很高效的事情。對那些對"第三種"方法感興趣的人來說(把現(xiàn)有的數(shù)據(jù)的數(shù)據(jù)庫管理系統(tǒng)作為的LDAP樹,比起典型的LDAP模式有一定的局限性,但有可能在LDAP和SQL應用之間實現(xiàn)互操作性):OpenLDAP包含了back-sql-這個后端使得它(第三種方法)成為可能.它使用ODBC+擴展來把LDAP查詢翻譯成你的RDBMS規(guī)劃的SQL查詢,提供不同的級別的操作-從只讀到全訪問,取決于你使用的RDBMS,和你的規(guī)劃.更多關于概念和限制的信息,見slapd-sql(5)手冊頁,或Backends一節(jié).在back-sql/rdbms_depend/*子目錄也有很多關于RDBMS的例子.什么是slapd以及它能干什么?slapd(8)是一個LDAP目錄服務器,可以運行在各種不同的平臺之上.你可使用它提供一個你自己的目錄服務.你的目錄可能包含非常多期望放進去的東西.你可以把它連接到全球LDAP目錄服務中,或完全自己運行一個目錄服務.一些slapd's更有意思的功能和能力包括:LDAPv3:slapd實現(xiàn)了輕量級目錄訪問協(xié)議的版本3.slapd支持LDAP運行于IPv4和IPv6以及UnixIPC.簡單驗證和安全層:slapd通過使用SASL支持強驗證和數(shù)據(jù)安全(完整性和保密性)服務.slapd的SASL實現(xiàn)利用了CyrusSASL軟件,它支持不少機制,包括DIGEST-MD5,EXTERNAL,和GSSAPI.傳輸層安全:slapd通過使用TLS的(或SSL)支持基于證書的身份驗證和數(shù)據(jù)安全(完整性和保密性)服務。slapd的TLS實現(xiàn)可以利用OpenSSL或GnuTLS軟件。拓撲控制:slapd可以被配置為根據(jù)網絡的拓撲結構信息限制訪問的套接字層。此功能利用了TCP包裝。訪問控制:slapd提供了豐富和強大的訪問控制設施,使您可以控制對你的數(shù)據(jù)庫的信息的獲取。您可以基于LDAP授權信息,IP地址,域名和其他標準控制對條目的訪問。slapd支持靜態(tài)和動態(tài)的訪問控制信息。slapdprovidesarichandpowerfulaccesscontrolfacility,國際化:slapd支持Unicode和語言標簽。可選的數(shù)據(jù)庫后端:slapd配備了各種不同的數(shù)據(jù)庫后端您可以從中選擇。它們包括BDB,一個高性能的交易數(shù)據(jù)庫后端;HDB,一個分級的高性能的交易后端;SHELL,一個后端接口通向任意shell腳本;和PASSWD,一個簡單的后端接口,到passwd(5)文件。BDB和HDB后端利用了OracleBerkeleyDB。多數(shù)據(jù)庫實例:slapd可以配置為在同一時間服務多個數(shù)據(jù)庫。這意味著,一個單一的slapd服務器能夠使用相同或不同的數(shù)據(jù)庫后端,響應許多邏輯上不同的LDAP樹的請求。通用模塊API:如果您需要更加個性化,slapd讓你輕松地寫自己的模塊。slapd包括兩個不同的部分:處理和LDAP客戶溝通協(xié)議的前端;和處理特定任務,如數(shù)據(jù)庫操作的模塊。因為這兩個部分之間通過一個明確界定的CAPI通訊,你可以用多種方式寫自己的定制模塊擴展slapd。此外,提供了一些可編程數(shù)據(jù)庫模塊。這些允許你使用流行的編程語言(Perl,shell和SQL)暴露外部數(shù)據(jù)源給slapd。線程:slapd是線程高性能的。一個單一的多線程slapd進程使用線程池處理所有傳入的請求。這減少了系統(tǒng)開銷,同時提供所需的高性能。復制:slapd可以被配置為維護目錄信息的影子復制。這個單主/多從復制規(guī)劃,對于安裝單一的slapd而不提供必要的可用性和可靠性的高容量環(huán)境,是至關重要的。對于不能接受單點故障的要求極高的環(huán)境,也可以用多主復制。slapd包含了對LDAP基于同步的復制的支持。代理緩存:slapd可以被配置為一個緩存的LDAP代理服務。配置:slapd是高度可配置的,通過一個單一的配置文件你可以改變一切,任何你想改變的東西。配置選項有合理的默認值,使您的工作更加容易。配置也可以使用LDAP本身動態(tài)的執(zhí)行,這極大地改善了可管理性。快速開始指南1.編輯配置文件.使用你偏愛的編輯器編輯附帶的slapd.conf(5)例子(通常安裝在/usr/local/etc/openldap/slapd.conf)來包含一個如下格式的BDB數(shù)據(jù)庫定義:databasebdbsuffix"dc=<MY-DOMAIN>,dc=<COM>"rootdn"cn=Manager,dc=<MY-DOMAIN>,dc=<COM>"rootpwsecretdirectory/usr/local/var/openldap-data確保以你的域名的適當部分替換<MY-DOMAIN>和<COM>.例如,對于,使用:databasebdbsuffix"dc=example,dc=com"rootdn"cn=Manager,dc=example,dc=com"rootpwsecretdirectory/usr/local/var/openldap-data如果你的域包含額外的部分,例如.eu,使用:databasebdbsuffix"dc=eng,dc=uni,dc=edu,dc=eu"rootdn"cn=Manager,dc=eng,dc=uni,dc=edu,dc=eu"rootpwsecretdirectory/usr/local/var/openldap-data關于配置slapd(8)的細節(jié),可在slapd.conf(5)手冊頁,以及本文的slapd配置文件一章找到.注意啟動slapd(8)之前那些定義的目錄必須實際存在.2.啟動SLAPD.現(xiàn)在你準備啟動獨立的LDAP守護進程,slapd(8),運行這個命令:suroot-c/usr/local/libexec/slapd為了檢查服務器是否運行以及是否被正確地配置好,你可以使用ldapsearch(1)針對它運行一個搜索.缺省的,ldapsearch被安裝在/usr/local/bin/ldapsearch:ldapsearch-x-b''-sbase'(objectclass=*)'namingContexts注意在命令參數(shù)周圍使用單引號來避免shell被特殊字符中斷.它應該返回:dn:namingContexts:dc=example,dc=com關于運行slapd(8)的細節(jié)可以在slapd(8)手冊頁以及本文的運行slapd一章找到.3.添加初始條目到目錄中去.你可以使用ldapadd(1)添加條目到你的LDAP目錄.ldapadd期待的輸入是LDIF格式.我們將分兩步走:建立LDIF文件運行l(wèi)dapadd使用你偏愛的編輯器新建一個LDIF文件,包含如下內容:dn:dc=<MY-DOMAIN>,dc=<COM>objectclass:dcObjectobjectclass:organizationo:<MYORGANIZATION>dc:<MY-DOMAIN>

dn:cn=Manager,dc=<MY-DOMAIN>,dc=<COM>objectclass:organizationalRolecn:Manager確保使用你的域名的適當部分替換<MY-DOMAIN>和<COM>.<MYORGANIZATION>應該被你的機構名稱替換掉.當你剪切粘貼時,確定本例中的每一行的前面和后面都沒有空格.dn:dc=example,dc=comobjectclass:dcObjectobjectclass:organizationo:ExampleCompanydc:example

dn:cn=Manager,dc=example,dc=comobjectclass:organizationalRolecn:Manager現(xiàn)在,你可以運行l(wèi)dapadd(1)來添加這些條目到你的目錄.ldapadd-x-D"cn=Manager,dc=<MY-DOMAIN>,dc=<COM>"-W-fexample.ldif確保用你的域名的適當部分替換<MY-DOMAIN>和<COM>.你將收到提示輸入密碼,也就是在slapd.conf中定義的"secret".例如,對于,使用:ldapadd-x-D"cn=Manager,dc=example,dc=com"-W-fexample.ldif這里example.ldif就是你上面新建的文件.另外關于建立目錄的信息可以在本文的數(shù)據(jù)庫建立和維護工具一章找到.4.看它是否起作用.現(xiàn)在我們準備檢驗目錄中添加的條目.你可使用任何LDAP客戶端來做這件事,但我們的例子使用ldapsearch(1)工具.記住把dc=example,dc=com替換成你的網站的正確的值:ldapsearch-x-b'dc=example,dc=com''(objectclass=*)'本命令將搜索和接收這個數(shù)據(jù)庫中的每一個條目.現(xiàn)在你準備使用ldapadd(1)或其它LDAP客戶端添加更多的條目,試驗更多的配置選項,后端安排,等等.注意缺省的情況下,slapd(8)數(shù)據(jù)庫賦予閱讀權限給每個人,除了超級用戶(即配置文件中的rootdn參數(shù)).強烈建議你建立控制來限制授權用戶的操作.操作權限控制在訪問控制章討論.也鼓勵你閱讀安全事項,使用SASL和使用TLS章節(jié).接下來的章節(jié)提供更多編譯,安裝和運行slapd(8)的詳細信息.配置選擇本節(jié)概述了各種LDAP目錄配置,以及如何使您的獨立的LDAP守護進程slapd(8)適合世界其他國家。本地目錄服務在這種配置中,您運行slapd(8)實例,只為您的本地網域提供目錄服務。它不以任何方式與其他目錄服務器交互。這種配置如圖3.1.圖3.1:本地服務配置.如果您剛剛起步(快速啟動指南的目的之一就是為了你這種人),或者如果你想提供本地服務且對連接到世界其他地區(qū)不感興趣,請使用此配置。如果以后你想的話,這也很容易升級到另一個配置。帶轉發(fā)的本地服務在這種配置中,您運行slapd(8)實例,為您的本地網域提供目錄服務,并配置它返回轉發(fā)到其他能夠處理請求的服務器。您可以自己運行此服務(或多個服務)或使用別人提供給您的服務。這種配置如圖3.2.圖3.2:帶轉發(fā)的本地服務如果你想提供本地服務,并參與全球目錄,或者您想代表負責下屬條目到另一臺服務器,使用此配置。可復制的目錄服務slapd(8)包括了對LDAP基于同步的復制的支持,即所謂syncrepl,可用于在多個目錄服務器上維持目錄信息的影子復制。在其最基本的配置,主服務器是一個syncrepl供應商,而一個或多個從服務器(或影子服務器)是syncrepl消費者。一個主從配置的例子如圖3.3.多主機的配置,也支持。圖3.3:可復制的目錄服務此配置可用于頭兩個配置的任何一個情況下,例如一個單一的slapd(8)沒有提供所需的可靠性和可用性。分布式本地目錄服務在這種配置中,當?shù)氐姆毡环指畛奢^小的服務,每個都是可復制的,和上下級粘在一起轉發(fā)。編譯和安裝OpenLDAP軟件這一章詳細說明如何編譯和安裝包含了slapd(8),獨立的LDAP守護進程的OpenLDAP軟件包。編譯和安裝OpenLDAP軟件需要幾個步驟:安裝依賴的軟件,配置OpenLDAP軟件本身,編譯,并最終安裝。以下各節(jié)詳細描述了此過程中。1、獲得和解包軟件您可以從該項目的下載頁面上/software/download/或直接從該項目的FTP服務在/pub/OpenLDAP/獲取OpenLDAP軟件。OpenLDAP軟件下載后,你需要從壓縮存檔文件提取發(fā)布版并更改您的工作目錄到發(fā)布版的根目錄:gunzip-copenldap-VERSION.tgz|tarxf-cdopenldap-VERSION你需要把VERSION換成發(fā)布版的實際版本號.2、依賴的軟件OpenLDAP軟件依靠一些第三方分發(fā)的軟件包。根據(jù)您打算使用的不同的功能,您可能必須下載并安裝一些額外的軟件包。(1)傳輸層安全OpenSSLisavailablefrom\o"/"/.GnuTLSisavailablefrom/software/gnutls/.(2)簡單驗證和安全層CyrusSASLisavailablefrom\o"/sasl/sasl-library.html"/sasl/sasl-library.html.CyrusSASLwillmakeuseofOpenSSLandKerberos/GSSAPIlibrariesifpreinstalled.(3)Kerberos驗證服務HeimdalKerberosisavailablefrom\o"http://www.pdc.kth.se/heimdal/"http://www.pdc.kth.se/heimdal/.MITKerberosisavailablefrom\o"/kerberos/www/"/kerberos/www/.(4)數(shù)據(jù)庫軟件BerkeleyDBisavailablefromOracleCorporation'sBerkeleyDBdownloadpage\o"/technology/software/products/berkeley-db/index.html"/technology/software/products/berkeley-db/index.html.Note:PleaseseeRecommendedOpenLDAPSoftwareDependencyVersionsformoreinformation.3、線程OpenLDAPisdesignedtotakeadvantageofthreads.OpenLDAPsupportsPOSIXpthreads,MachCThreads,andanumberofothervarieties.configurewillcomplainifitcannotfindasuitablethreadsubsystem.Ifthisoccurs,pleaseconsulttheSoftware|Installation|PlatformHintssectionoftheOpenLDAPFAQ\o"/faq/"/faq/.4、TCP包裝slapd(8)supportsTCPWrappers(IPlevelaccesscontrolfilters)ifpreinstalled.UseofTCPWrappersorotherIP-levelaccessfilters(suchasthoseprovidedbyanIP-levelfirewall)isrecommendedforserverscontainingnon-publicinformation.5、運行configureNowyoushouldprobablyruntheconfigurescriptwiththe--helpoption.ThiswillgiveyoualistofoptionsthatyoucanchangewhenbuildingOpenLDAP.ManyofthefeaturesofOpenLDAPcanbeenabledordisabledusingthismethod../configure--helpNowruntheconfigurescriptwithanydesiredconfigurationoptionsorenvironmentvariables.[[env]settings]./configure[options]Asanexample,let'sassumethatwewanttoinstallOpenLDAPwithBDBbackendandTCPWrapperssupport.Bydefault,BDBisenabledandTCPWrappersisnot.So,wejustneedtospecify--with-wrapperstoincludeTCPWrapperssupport:./configure--with-wrappersHowever,thiswillfailtolocatedependentsoftwarenotinstalledinsystemdirectories.Forexample,ifTCPWrappersheadersandlibrariesareinstalledin/usr/local/includeand/usr/local/librespectively,theconfigurescriptshouldbecalledasfollows:envCPPFLAGS="-I/usr/local/include"LDFLAGS="-L/usr/local/lib"\./configure--with-wrappersNote:Someshells,suchasthosederivedfromtheBournesh(1),donotrequireuseoftheenv(1)command.Insomecases,environmentalvariableshavetobespecifiedusingalternativesyntaxes.6、編譯軟件Onceyouhaveruntheconfigurescriptthelastlineofoutputshouldbe:Please"makedepend"tobuilddependenciesIfthelastlineofoutputdoesnotmatch,configurehasfailed,andyouwillneedtoreviewitsoutputtodeterminewhatwentwrong.Youshouldnotproceeduntilconfigurecompletessuccessfully.Tobuilddependencies,run:makedependNowbuildthesoftware,thisstepwillactuallycompileOpenLDAP.makeYoushouldexaminetheoutputofthiscommandcarefullytomakesureeverythingisbuiltcorrectly.NotethatthiscommandbuildstheLDAPlibrariesandassociatedclientsaswellasslapd(8).7、測試軟件Oncethesoftwarehasbeenproperlyconfiguredandsuccessfullymade,youshouldrunthetestsuitetoverifythebuild.maketest8、安裝軟件Typically,theinstallationrequiressuper-userprivileges.FromthetoplevelOpenLDAPsourcedirectory,type:suroot-c'makeinstall'andentertheappropriatepasswordwhenrequested.Youshouldexaminetheoutputofthiscommandcarefullytomakesureeverythingisinstalledcorrectly.Youwillfindtheconfigurationfilesforslapd(8)in/usr/local/etc/openldapbydefault.SeethechapterConfiguringslapdforadditionalinformation.復制為了提供一個有彈性的企業(yè)部署,復制目錄是一個基礎需求.OpenLDAP有多種配置選項來建立一個可復制的目錄.在前一個版本里面,復制被限定在一個主服務器和若干個從服務器的條件下來討論。一個主服務器從其他客戶端接受目錄更新,而一個從服務器則僅僅從一個(單個的)主服務器接受更新.這個復制結構被僵化地定義并且任何典型的數(shù)據(jù)庫只能完成一個單一角色,主或者從.現(xiàn)在OpenLDAP支持一個更廣泛的復制拓撲,關于提供者和消費者的以下這些條件已經不推薦了:一個提供者復制目錄更新到消費者;消費者從提供者接收復制更新.不像僵化定義的主/從關系,提供者/消費者角色更加的流動化:一個接收復制更新的消費者可能傳遞給其它服務器的另一個消費者,所以一個消費者也可以同時成為一個提供者。而且,消費者不需要成為一個實際上的LDAP服務器;它也可以僅僅是一個LDAP客戶端。以下章節(jié)將描述復制技術和討論各種可用的復制選項.1、復制技術(1)LDAP同步復制LDAP同步復制引擎,簡稱syncrepl,是一個消費方的復制引擎,能讓消費者服務器維護一個抽取片斷的影子副本.一個syncrepl引擎以slapd的一個線程的方式駐留在消費者那里.它建立和維護一個消費者復制,方法是連接一個復制提供者去執(zhí)行初始化DIT內容載荷以及接下來的定期的內容拉取或及時根據(jù)內容變更來更新。Syncrepl使用LDAP內容同步協(xié)議(或簡稱LDAPSync)作為復制同步協(xié)議.LDAPSync提供一個有狀態(tài)的復制,它同時支持拉模式和推模式同步并且不要求使用歷史存儲.在拉模式復制下消費者定期拉提供者服務器的內容來更新.在推模式復制下消費者監(jiān)聽提供者實時發(fā)送的更新.因為協(xié)議不要求歷史存儲,提供者不需要維護任何它接收到的更新的日志.(注意syncrepl引擎是可擴展的,并支持未來新增的復制協(xié)議.)Syncrepl通過維護和交換同步cookies來保持對復制內容的狀態(tài)的跟蹤.因為syncrepl消費者和提供者維護它們的內容狀態(tài),消費者可以拉取提供者的內容來執(zhí)行增量同步,只要請求那些最新的提供者內容條目。Syncrepl也通過維護復制狀態(tài)方便了復制的管理.消費者復制可以在任何同步狀態(tài)下從一個消費方或一個提供方的備份來構建.Syncrepl能自動重新同步消費者復制到和當前的提供者內容一致的最新狀態(tài).Syncrepl同時支持拉模式和推模式同步.在它的基本的refreshOnly同步模式下,提供者使用基于拉模式的同步,這里消費者服務器不需要被跟蹤并且不維護歷史信息.需要提供者處理的定期的拉請求信息,包含在請求本身的同步cookie里面。為了優(yōu)化基于拉模式的同步,syncrepl把LDAP同步協(xié)議的當前階段當成它的刪除階段一樣處理,而不是頻繁地回滾完全重載.為了更好地優(yōu)化基于拉模式的同步,提供者可以維護一個按范圍劃分的會話日志作為歷史存儲.在它的refreshAndPersist同步模式,提供者使用基于推模式的同步.提供者維護對請求了一個持久性搜索的消費者服務器的跟蹤,并且當提供者復制內容修改的時候向它們發(fā)送必要的更新.有了syncrepl,如果消費者服務器有對被復制的DIT片斷的適當?shù)牟僮鳈嘞蓿粋€消費者服務器可以建立一個復制而不修改提供者的配置并且不需要重新啟動提供者服務器.消費者服務器可以停止復制,也不需要提供方的任何變更和重啟.Syncrepl支持局部的,稀疏的和片斷復制.影子DIT片斷由一個標準通用搜索來定義,包括基礎,范圍,過濾條件,和屬性列表.復制內容也受限于syncrepl復制連接的綁定用戶的操作權限.Syncrepl細節(jié)syncrepl引擎同時使用LDAP同步協(xié)議的refreshOnly和refreshAndPersist操作.如果一個syncrepl規(guī)范存在于一個數(shù)據(jù)庫定義中,slapd(8)以一個slapd(8)線程的方式啟動一個syncrepl引擎并規(guī)劃它的執(zhí)行時間表.如果指定了refreshOnly操作,syncrepl引擎在一個同步操作完成之后將按間隔時間重新排程.如果指定了refreshAndPersist操作,引擎將保持激活并從提供者服務器處理持久性同步消息.syncrepl引擎同時應用刷新同步的當前階段和刪除階段.可以在提供者服務器配置一個會話日志存儲一定數(shù)量的從數(shù)據(jù)庫中刪除的entryUUIDs。多復制共享相同的會話日志.如果會話日志是當前的并且消費者服務器足夠新以至于在客戶端的最后一次同步之后沒有會話日志條目被刪除,那么syncrepl引擎使用刪除階段.如果沒有為復制內容配置會話日志或如果消費者復制太陳舊而無法被會話日志涵蓋到,syncrepl引擎使用當前階段.目前會話日志存儲的設計是基于內存的,所以包含在會話日志的信息相對多提供者的調用不是持久性的.目前它不支持通過使用LDAP操作來操作會話日志存儲.它目前也不支持對會話日志施加訪問控制.作為進一步的優(yōu)化,甚至同步搜索都不和任何會話日志關聯(lián),當沒有發(fā)生復制相關的更新時將不會有任何條目傳輸給消費者.syncrepl引擎,是一個消費方的復制引擎,可以工作在任何后端.LDAP同步提供者可以在任何后端配置成一個overlay,但是最好工作在back-bdb或back-hdb后端.LDAP同步提供者為每一個數(shù)據(jù)庫維護一個contextCSN作為提供者內容的當前同步狀態(tài)指標.它是提供者范圍的最大entryCSN,所以對于更小的擁有懸而未決的entryCSN值的條目來說不存在事務.contextCSN不能只是設成最大的已發(fā)表的entryCSN,因為entryCSN是在一個事務開始之前獲得的并且事務還未提交到發(fā)表序列.提供者在contextsuffix條目的contextCSN屬性存儲上下文的contextCSN.這個屬性不是在每個更新操作之后寫入數(shù)據(jù)庫;而是主要在內存中維護.在數(shù)據(jù)庫啟動時間提供者讀取最后一次存儲的contextCSN到內存里并且此后就只使用內存內的拷貝.缺省的,對contextCSN的變更作為一個數(shù)據(jù)庫更新的結果將不寫入數(shù)據(jù)庫,直到服務器完全干凈地關機.如果需要的話,設置一個檢查點可以讓contextCSN寫出得更頻繁一些.注意在啟動的時間,如果提供者不能從suffix條目讀取一個contextCSN,它將掃描整個數(shù)據(jù)庫來決定它的值,并且在一個大的數(shù)據(jù)庫中掃描可能要花很長時間.當一個contextCSN值被讀取,這個數(shù)據(jù)庫將仍被掃描用于任何高于它的entryCSN值,以確保contextCSN值真的反應了數(shù)據(jù)庫中entryCSN的最大提交.在支持不等式索引的數(shù)據(jù)庫中,在entryCSN屬性上設置一個eq索引并配置contextCSN檢查點,將極大地加速這個掃描步驟.如果通過讀取和掃描數(shù)據(jù)庫沒有決定contextCSN,一個新的值將被生成.而且,如果掃描數(shù)據(jù)庫產生了一個比之前紀錄在suffix條目中的contextCSN屬性更大的entryCSN,一個檢查點將立刻寫入新的值.消費者也存儲它的復制狀態(tài),它是作為一個同步cookie接收的提供者的contextCSN,在suffix條目的contextCSN屬性.當它執(zhí)行對提供者服務器的順序增量同步時,由一個消費者服務器維護的復制狀態(tài)被用作同步狀態(tài)指標.當它在一個級聯(lián)復制配置中承當一個第二提供者服務器時,它也被用作提供方的同步狀態(tài)指標.因為消費者和提供者狀態(tài)信息是在它們各自的服務器的同一個地方維護的,任何消費者可以被提拔成為提供者(反之亦然)而不需要任何特別的動作.因為在syncrepl規(guī)范中可能使用一個通用搜索過濾器,上下文中的一些條目可能被從同步內容中省略了.syncrepl引擎建立一個粘條目來填充復制上下文中的窟窿,如果復制內容的任何部分屬于這個窟窿的話。這些粘條目在搜索結果中將不返回,除非提供了ManageDsaIT控制。另外,作為在syncrepl規(guī)范使用搜索過濾器的結果,可能會有類似這樣的修改,即從復制范圍移除一個條目,即使提供者上的條目還沒有被刪除。邏輯上這個條目必須在消費者服務器被刪除但是在refreshOnly模式下,如果沒有會話日志則提供者無法檢測和傳播這個變更.關于配置,參見Syncrepl節(jié).(2)部署替代LDAP同步協(xié)議只對復制規(guī)定了狹窄的范圍,OpenLDAP實現(xiàn)則是極為彈性的并且支持各種操作模式以處理協(xié)議中未顯式地提出的其他情景.Delta-syncrepl復制LDAP同步復制的缺點:LDAP同步復制是一個基于對象的復制機制.當提供者的一個被復制對象中的任何屬性值改變時,每個消費者在復制過程中擷取并處理完整的變更對象,包括所有改變和沒改變的屬性值.這方法的一個好處是當多個變更發(fā)生在單一對象上時,那些變更的精確順序不需要保存;只有最終狀態(tài)是有意義的.但是當使用模式(匹配的方式)在一次變更中處理很多對象時,這個方法可能有缺點。例如,假設你有一個數(shù)據(jù)庫包含100,000對象,每個對象是1KB.進一步,假設你經常運行一個批處理工作來變更主服務器上的100,000對象的每一個對象中的一個兩字節(jié)的屬性值.不算LDAP和TCP/IP協(xié)議的開銷,每次你運行這個工作每個消費者將傳送并處理1GB的數(shù)據(jù),只是為了處理這個200KB的變更!在類似這樣的案例中,99.98%被傳送和處理的數(shù)據(jù)將是多余的,因為它們代表那些未變更的值.這是一個對寶貴的傳輸和處理帶寬的浪費并且可能導致發(fā)展出不可接受的復制日志的積壓.雖然這個情形是一個極端,但它有助于演示某些LDAP部署的一個非常真實的問題.看看Delta-syncrepl怎么處理:Delta-syncrepl,一個基于變更日志syncrepl變種,被設計用來處理類似上面所說的情況.Delta-syncrepl通過在提供者一端維護一個可選擇深度的變更日志來起作用.復制消費者為它需要的變更檢查這個變更日志,只要變更日志包含它需要的變更,消費者就從變更日志擷取這些變更并把它們應用到自己的數(shù)據(jù)庫.不過,一個復制(譯者注:指變更日志里的變更)如果離上一次同步的狀態(tài)太遠(或消費者根本就是空的),可以用常規(guī)的syncrepl把它(指消費者)恢復到最新的狀態(tài)然后復制重新切換到delta-syncrepl模式.關于配置請參考Delta-syncrepl章節(jié).(3)N-WayMulti-Master復制Multi-Master復制是一個使用Syncrepl復制數(shù)據(jù)到多個提供者(“主服務器”)目錄服務器的復制技術.對于Multi-Masterreplication有效的觀點如果任何提供者失敗了,其他提供者將繼續(xù)接受更新避免了單點失敗提供者們可以在不同的物理位置例如跨越全球網絡.好的自動容錯/高可用性對于Multi-Masterreplication無效的觀點(這些經常被聲稱是Multi-Master復制的優(yōu)點但是那些說法是錯誤的):它不關負載均衡任何事提供者必須對所有其他的服務器進行寫操作,這意味著分布在所有的服務器上的網絡交通和寫操作負載,和單一主服務器是一樣的。多服務器的服務器利用率和負載在最好的情況下和單服務器一樣;最壞的情況下單服務器更優(yōu),因為在提供者和消費者之間使用不同的模式的時候索引可以做出不同的優(yōu)化調整.和Multi-Masterreplication抵觸的觀點打破了目錄模式的數(shù)據(jù)一致性的保障\o"/faq/data/cache/1240.html"/faq/data/cache/1240.html如果提供者的連接因為網絡問題丟失了,那么"自動容錯"只會使問題復雜化通常,一個特定的機器不能區(qū)分失去和一個節(jié)點的聯(lián)系是因為該節(jié)點崩潰了還是因為網絡連接失敗了如果一個網絡是分割開的而多個客戶端開始向每一個"主服務器"寫操作,那么和解將是一個痛苦;可能最好的辦法是禁止那些被單一提供者分隔開的客戶端的寫操作關于配置,請看下面的N-WayMulti-Master章節(jié)(4)MirrorMode復制MirrorMode是一個混合配置,既提供單主服務器復制的所有一致性保障,也提供多主服務器模式的高可用性.在MirrorMode兩個提供者都被設置成從對方復制(就象一個多主服務器配置),但是一個額外的前段被用來引導所有的寫操作到僅僅到兩臺服務器中的其中一臺.第二個提供者將只在第一臺服務器崩潰時進行寫操作,那時這個前端將切換路徑引導所有的寫操作到第二個提供者.當一個崩潰的提供者被修復并且重啟動后將自動從正在運行的提供者那里活得任何更新并重新同步.MirrorMode的觀點對于目錄的寫操作提供了一個高可用性(HA)方案(復制處理讀操作)只有一個提供者是可操作的l,寫操作的安全是可接受的提供者節(jié)點從對方互相復制,所以它們總是最新的并且可以隨時準備好接管(熱備份)Syncrepl也允許提供者節(jié)點在任何停機時間進行重新同步和MirrorMode抵觸的觀點MirrorMode不能被稱為多主機方案.這是因為同一時間寫操作不得不僅限于鏡像節(jié)點中的一個MirrorMode可被稱為Active-ActiveHot-Standby(“雙活熱備份”),因此需要一個額外的服務器(代理模式的slapd)或設備(硬件負載平衡裝置)來管理哪個提供者是當前激活的備份的管理稍微不同如果備份bdb本身并且定期備份事務日志文件,那么鏡像對的相同數(shù)字需要用于收集日志文件直到下一次數(shù)據(jù)庫備份發(fā)生為了確保所有數(shù)據(jù)庫都是一致的,當執(zhí)行一個slapcat的時候每個數(shù)據(jù)庫可能都不得不置于只讀模式.Delta-Syncrepl仍不支持關于配置,請看下面的MirrorMode章節(jié)(5)Syncrepl代理模式因為LDAP同步協(xié)議同時支持基于“拉”和“推”的復制,“推”模式(refreshAndPersist)在提供者開始"推"變更之前仍必須由消費者初始化.在一些網絡配置中,特別是防火墻限制了連接的方向時,一個提供者初始化的推模式是需要的.這個模式可以被配置成LDAPBackend(Backendsandslapd-ldap(8)).不用在實際的消費者服務器上運行syncrepl引擎,而是一個slapd-ldap代理設置在靠近(或搭配在)提供者的地方指向消費者,而這個syncrepl引擎運行在這個代理服務器上.關于配置,請看Syncrepl代理章節(jié).(6)替代Slurpd舊的slurpd機制只操作主服務器初始化的推模式.Slurpd復制被Syncrepl復制取代了并且在OpenLDAP2.4中被完全移除了.slurpd守護進程是原來繼承自UMich'sLDAP的復制機制并且以推模式操作:主服務器推變更到從服務器.因為多種原因它被替換掉,簡短的說:它是不可靠的它對replog中的記錄的次序極為敏感它可能很容易失去同步,這時需要手工干預來從主目錄重新同步從服務器數(shù)據(jù)庫它對不可用的服務器不是非常寬容.如果一個從服務器長時間停機,replog可能變得太大以至于slurpd無法處理它只工作在推模式它需要停止和重新啟動主服務器來增加從服務器它只支持單一主服務器復制Syncrepl沒有那些弱點:Syncrepl是自同步的;你可以在任何狀態(tài)啟動一個消費者數(shù)據(jù)庫,從完全空的到完全同步的,它將自動做正確的事來完成和維護同步它對變更發(fā)生的次序完全不敏感它保障消費者和提供者內容的合流,不用手工干預無論一個消費者多長時間沒有聯(lián)系提供者,它都能重新同步Syncrepl能雙向操作消費者能在不用碰提供者的情況下被加入支持多主服務器復制2、配置不同的復制類型Syncrepl配置因為syncrepl是一個消費方的復制引擎,syncrepl規(guī)范定義在slapd.conf(5)的消費者服務器,而不是在提供者的服務器配置文件里.復制內容的初始化裝載可以有兩種執(zhí)行方式,以無同步cookie的方式啟動一個syncrepl引擎,或裝載一個提供者服務器的全備份LDIF文件填充到消費者服務器.當從一個備份裝載的時候,它不需要執(zhí)行從提供者內容的最新備份初始化裝載這個動作.syncrepl引擎將自動同步初始化的消費者復制當前的提供者內容.結果是,它不需要為了避免由于內容備份和裝載過程中提供者服務器仍在更新而導致復制不一致的問題來停止提供者服務器.當復制一個大規(guī)模的目錄時,特別是在一個帶寬受限的環(huán)境,建議從備份裝載消費者而不是使用syncrepl執(zhí)行一個完全的初始化裝載.(1)設置提供者的slapd提供者被實現(xiàn)為一個overlay,所以這個overlay本身在使用之前必須首先如slapd.conf(5)配置.提供者只有兩個配置指示,在contextCSN上設定檢查點和配置會話日志.因為LDAP同步搜索受限于訪問控制,應為復制的內容設置正確的訪問控制權限.contextCSN檢查點設置如下syncprov-checkpoint<ops><minutes>檢查點只在成功的寫操作之后測試.如果<ops>操作了或從上次檢查點到現(xiàn)在超過了<minutes>時間,將執(zhí)行一個新的檢查點.會話日志設置如下syncprov-sessionlog<size>這里<size>是會話日志可以記錄的條目的最大數(shù)量.當一個會話日志被配置好,它就自動用于所有對此數(shù)據(jù)庫的LDAP同步搜索.注意使用會話日志需要搜索entryUUID屬性.在這個屬性上設一個eq索引將極有益于提供者服務器的會話日志的性能.slapd.conf(5)中一個更復雜的例子內容如下:databasebdbsuffixdc=Example,dc=comrootdndc=Example,dc=comdirectory/var/ldap/dbindexobjectclass,entryCSN,entryUUIDeq

overlaysyncprovsyncprov-checkpoint10010syncprov-sessionlog100(2)設置消費者的slapd在slapd.conf(5)的replica范圍的數(shù)據(jù)庫一節(jié)定義了syncrepl復制.syncrepl引擎是獨立的后端并且可以使用任何數(shù)據(jù)庫類型定義directive.databasehdbsuffixdc=Example,dc=comrootdndc=Example,dc=comdirectory/var/ldap/dbindexobjectclass,entryCSN,entryUUIDeq

syncreplrid=123provider=ldap://:389type=refreshOnlyinterval=01:00:00:00searchbase="dc=example,dc=com"filter="(objectClass=organizationalPerson)"scope=subattrs="cn,sn,ou,telephoneNumber,title,l"schemachecking=offbindmethod=simplebinddn="cn=syncuser,dc=example,dc=com"credentials=secret在這個例子中,消費者將從ldap://的389端口連接到提供者slapd(8)來執(zhí)行每天一次同步的拉操作(refreshOnly)模式.它將以cn=syncuser,dc=example,dc=com綁定,以密碼"secret"進行簡單驗證.注意要在提供者服務器為cn=syncuser,dc=example,dc=com設置適當?shù)脑L問控制權限以接收想要的復制內容.另外提供者上的搜索限制必須足夠高以允許同步用戶接收請求內容完整的拷貝.消費者使用rootdn寫入它的數(shù)據(jù)庫所以它總是有全部的權限來寫所有的內容.在上面的例子中同步搜索將在dc=example,dc=com的整個子樹搜索objectClass是organizationalPerson的條目.請求的屬性是cn,sn,ou,telephoneNumber,title,和schema檢查被關閉,這樣當處理從提供者slapd(8)來的更新時消費者slapd(8)將不會強制對條目進行schema檢查.更多的詳細信息參見syncrepl指示,見本管理指南的slapd配置文件的syncrepl節(jié).(3)啟動提供者和消費者的slapd提供者slapd(8)不需要重啟.contextCSN將會根據(jù)需要自動生成:它可能原來就包含在LDIF文件里,由slapadd(8)生成,在上下文中通過變更生成,或當?shù)谝淮蜭DAP同步搜索到達提供者時生成.如果裝載了一個之前不包含contextCSN的LDIF文件,slapadd(8)應使用-w選項來令它生成.這將使服務器第一次運行時變得快一點.當啟動一個消費者slapd(8)時,為了從一個特定的狀態(tài)開始同步,它可能使用命令行參數(shù)-c即cookie選項,以提供一個同步cookie.cookie是一個逗號分隔的name=value對的列表.目前支持的syncreplcookie字段是csn=<csn>和rid=<rid>.<csn>代表消費者復制的當前同步狀態(tài).<rid>標識這個消費者服務器的一個本地消費者復制.它用于把cookie關聯(lián)到slapd.conf(5)中擁有匹配的復制標識的syncrepl定義.<rid>必須超過三位數(shù).命令行cookie會復蓋存儲在消費者復制數(shù)據(jù)庫中的同步cookie.Delta-syncrepl(1)Delta-syncrepl提供者配置設置delta-syncrepl需要同時改變主服務器和復制服務器的配置:#給予復制DN無限的讀權限.這個ACL需要和其他ACL聲明合并,并且/或者在數(shù)據(jù)庫范圍內移動。"by*break"部分會執(zhí)行隨后的規(guī)則。細節(jié)請看slapd.access(5)。accessto*bydn.base="cn=replicator,dc=symas,dc=com"readby*break#設置模塊路徑modulepath/opt/symas/lib/openldap#裝載hdb后端moduleloadback_hdb.la#裝載操作日志overlaymoduleloadaccesslog.la#裝載syncprovoverlaymoduleloadsyncprov.la#操作日志數(shù)據(jù)庫定義databasehdbsuffixcn=accesslogdirectory/db/accesslogrootdncn=accesslogindexdefaulteqindexentryCSN,objectClass,reqEnd,reqResult,reqStart

overlaysyncprovsyncprov-nopresentTRUEsyncprov-reloadhintTRUE#讓復制DN有無限的搜索權限limitsdn.exact="cn=replicator,dc=symas,dc=com"time.soft=unlimitedtime.hard=unlimitedsize.soft=unlimitedsize.hard=unlimited#主數(shù)據(jù)庫定義databasehdbsuffix"dc=symas,dc=com"rootdn"cn=manager,dc=symas,dc=com"##任何期望的其他配置選項#syncprov特別索引indexentryCSNeqindexentryUUIDeq#主數(shù)據(jù)庫的syncrepl提供者overlaysyncprovsyncprov-checkpoint100060#主數(shù)據(jù)庫的操作日志overlay定義overlayaccessloglogdbcn=accessloglogopswriteslogsuccessTRUE#每天掃描一次操作日志數(shù)據(jù)庫,并清除7天前的條目logpurge07+00:0001+00:00#讓復制DN有無限搜索權限limitsdn.exact="cn=replicator,dc=symas,dc=com"time.soft=unlimitedtime.hard=unlimitedsize.soft=unlimitedsize.hard=unlimited更多信息,訪問(slapo-accesslog(5)和slapd.conf(5))相關的man頁(2)Delta-syncrepl消費者配置#復制數(shù)據(jù)庫配置databasehdbsuffix"dc=symas,dc=com"rootdn"cn=manager,dc=symas,dc=com"

##任何關于復制的其他配置,例如你期望的索引#syncrepl特有的索引indexentryUUIDeq#syncrepl參數(shù)syncreplrid=0provider=ldap://:389bindmethod=simplebinddn="cn=replicator,dc=symas,dc=com"credentials=secretsearchbase="dc=symas,dc=com"logbase="cn=accesslog"logfilter="(&(objectClass=auditWriteObject)(reqResult=0))"schemachecking=ontype=refreshAndPersistretry="60+"syncdata=accesslog#提交更新到主服務器updaterefldap://以上配置假定你在你用于綁定到提供者的數(shù)據(jù)庫中有一個復制者標識.另外,所有數(shù)據(jù)庫(主數(shù)據(jù)庫,復制數(shù)據(jù)庫,以及操作日志存儲數(shù)據(jù)庫)也應該正確調整DB_CONFIG文件以滿足你的需要.N-WayMulti-Master以下例子將使用三個主節(jié)點.Keepinginlinewithtest050-syncrepl-multimasteroftheOpenLDAPtestsuite,我們將通過cn=config配置slapd(8)。這里設置配置數(shù)據(jù)庫:dn:cn=configobjectClass:olcGlobalcn:configolcServerID:1dn:olcDatabase={0}config,cn=configobjectClass:olcDatabaseConfigolcDatabase:{0}configolcRootPW:secret第二和第三服務器明顯會有一個不同的olcServerID:dn:cn=configobjectClass:olcGlobalcn:configolcServerID:2

dn:olcDatabase={0}config,cn=configobjectClass:olcDatabaseConfigolcDatabase:{0}configolcRootPW:secret這里設置syncrepl為提供者(因為這些都是主服務器):dn:cn=module,cn=configobjectClass:olcModuleListcn:moduleolcModulePath:/usr/local/libexec/openldapolcModuleLoad:syncprov.la現(xiàn)在我們設置第一個主節(jié)點(使用你自己的確切的urls替換掉$URI1,$URI2和$URI3等.):dn:cn=configchangetype:modifyreplace:olcServerIDolcServerID:1$URI1olcServerID:2$URI2olcServerID:3$URI3

dn:olcOverlay=syncprov,olcDatabase={0}config,cn=configchangetype:addobjectClass:olcOverlayConfigobjectClass:olcSyncProvConfigolcOverlay:syncprov

dn:olcDatabase={0}config,cn=configchangetype:modifyadd:olcSyncReplolcSyncRepl:rid=001provider=$URI1binddn="cn=config"bindmethod=simplecredentials=secretsearchbase="cn=config"type=refreshAndPersistretry="553005"timeout=1olcSyncRepl:rid=002provider=$URI2binddn="cn=config"bindmethod=simplecredentials=secretsearchbase="cn=config"type=refreshAndPersistretry="553005"timeout=1olcSyncRepl:rid=003provider=$URI3binddn="cn=config"bindmethod=simplecredentials=secretsearchbase="cn=config"type=refreshAndPersistretry="553005"timeout=1-add:olcMirrorModeolcMirrorMode:TRUE現(xiàn)在啟動主服務器和一個或多個消費者服務器,也把上面的LDIF加入到第一個消費者,第二個消費者等等.然后它將復制cn=config.你現(xiàn)在就在config數(shù)據(jù)庫上擁有了多路多主機.我們仍不得不復制實際的數(shù)據(jù),而不僅是config,所以添加下面這些到主服務器(所有激活的和配置好的消費者/主服務器將領取這個配置,因為他們都是在同步的).同樣的,以任何對你的安裝可用的設置替換所有${}變量:dn:olcDatabase={1}$BACKEND,cn=configobjectClass:olcDatabaseConfigobjectClass:olc${BACKEND}ConfigolcDatabase:{1}$BACKENDolcSuffix:$BASEDNolcDbDirectory:./dbolcRootDN:$MANAGERDNolcRootPW:$PASSWDolcLimits:dn.exact="$MANAGERDN"time.soft=unlimitedtime.hard=unlimitedsize.soft=unlimitedsize.hard=unlimitedolcSyncRepl:rid=004provider=$URI1binddn="$MANAGERDN"bindmethod=simplecredentials=$PASSWDsearchbase="$BASEDN"type=refreshOnlyinterval=00:00:00:10retry="553005"timeout=1olcSyncRepl:rid=005provider=$URI2binddn="$

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論