資源描述:
《linux集群認(rèn)證》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、Linux集群認(rèn)證 當(dāng)組織添加應(yīng)用程序和服務(wù)時(shí),將認(rèn)證和密碼服務(wù)集中化可以增加安全性、減少管理開銷及開發(fā)人員的負(fù)擔(dān)。但是,將所有服務(wù)聚集到單個(gè)服務(wù)器上會(huì)引起可靠性問題。對(duì)于企業(yè)認(rèn)證服務(wù),高可用性尤其關(guān)鍵,因?yàn)樵谠S多情況中,當(dāng)認(rèn)證停止工作時(shí),整個(gè)企業(yè)都將陷入停頓?! ∥覀兪褂肔DAP(輕量級(jí)目錄訪問協(xié)議,Lightdash;復(fù)制(replication)和引用(referral)。 引用機(jī)制使您能跨多服務(wù)器分割LDAP名稱空間,并能以層次結(jié)構(gòu)的形式安排LDAP服務(wù)器。LDAP在一個(gè)特定目錄名稱空間中只允許有一個(gè)主服務(wù)器?! ?/p>
2、復(fù)制由OpenLDAP復(fù)制守護(hù)程序slurpd驅(qū)動(dòng)。slurpd定期醒來并檢查主服務(wù)器上的日志文件,看是否有更新。更新隨后被傳遞到從服務(wù)器。讀請(qǐng)求可以由任一服務(wù)器應(yīng)答,但更新只能在主服務(wù)器上進(jìn)行。對(duì)從服務(wù)器的更新請(qǐng)求會(huì)生成一個(gè)引用消息,該消息會(huì)給出主服務(wù)器的地址。跟蹤引用和重新嘗試更新是客戶機(jī)的職責(zé)。OpenLDAP沒有內(nèi)置方法來跨已復(fù)制服務(wù)器分發(fā)查詢,因此必須使用IP發(fā)射器(sprayer)/扇出(fanout)程序(如balance)?! 榱藢?shí)現(xiàn)可靠性目標(biāo),我們將一對(duì)服務(wù)器以群集方式組織在一起。我們可以在服務(wù)器間使用共享
3、存儲(chǔ)器,維護(hù)一個(gè)數(shù)據(jù)副本。但為了簡單起見,我們選擇進(jìn)行無共享(shared-nothing)的實(shí)現(xiàn)。LDAP數(shù)據(jù)庫通常很小,而且更新頻率較低(提示:如果您的LDAP數(shù)據(jù)集確實(shí)較大,請(qǐng)考慮用引用將名稱空間劃分成較小的部分)。重新啟動(dòng)故障節(jié)點(diǎn)時(shí),對(duì)無共享設(shè)置的確需要注意:在重新啟動(dòng)之前,必須將所有新的更改添加到故障節(jié)點(diǎn)上的數(shù)據(jù)庫。稍后,我們將演示一個(gè)示例。 群集軟件和配置 在開始之前,讓我們澄清一個(gè)細(xì)微的混淆。大多數(shù)HA(高可用性,HighAvailability)群集都有一個(gè)名為heartbeat的系統(tǒng)持活(system-k
4、eepalive)功能。HA軟件使用heartbeat以監(jiān)控群集中節(jié)點(diǎn)的健康狀態(tài)。Linux-HA(.linux-ha.org)組提供了開放源碼群集軟件。他們軟件包的名稱是Heartbeat(目前是Heartbeat-0.4.9)。這可能導(dǎo)致一些可以理解的混淆(喔,它有時(shí)也使我糊涂)。在本文中,我們將把Linux-HA軟件包稱為Heartbeat,而把一般性的概念稱為heartbeat?! inux-HA項(xiàng)目作為Linux-HAHOilz撰寫)的產(chǎn)物于1998年啟動(dòng)。該項(xiàng)目目前由AlanRobertson和其他許多志愿開發(fā)人
5、員領(lǐng)導(dǎo)。版本0.4.9于2001年早期發(fā)布?! eartbeat通過通信媒介監(jiān)控節(jié)點(diǎn)的可用狀態(tài),媒介通常是串行線或以太網(wǎng)。最好有多個(gè)冗余媒介,因此我們使用了一條串行線和一個(gè)以太網(wǎng)鏈路。每個(gè)節(jié)點(diǎn)運(yùn)行一個(gè)守護(hù)程序進(jìn)程(名為heartbeat)。主守護(hù)程序派生子進(jìn)程以對(duì)每個(gè)heartbeat媒介進(jìn)行讀寫,并且派生狀態(tài)進(jìn)程。當(dāng)檢測(cè)到節(jié)點(diǎn)終止時(shí),Heartbeat運(yùn)行shell腳本以在輔助節(jié)點(diǎn)上啟動(dòng)(或停止)服務(wù)。在設(shè)計(jì)時(shí),規(guī)定這些腳本使用與系統(tǒng)init腳本(通常位于/etc/init.d)相同的語法。它還提供了用于文件系統(tǒng)、Web服
6、務(wù)器和虛擬IP故障轉(zhuǎn)移的缺省腳本。 假設(shè)有兩個(gè)匹配的LDAP服務(wù)器,我們可以使用幾種配置。首先,我們可以實(shí)現(xiàn)冷備用。主節(jié)點(diǎn)有一個(gè)虛擬IP和正在運(yùn)行的服務(wù)器。輔助節(jié)點(diǎn)處于空閑狀態(tài)。當(dāng)主節(jié)點(diǎn)出現(xiàn)故障時(shí),服務(wù)器實(shí)例和IP會(huì)轉(zhuǎn)移到冷節(jié)點(diǎn)。這是容易實(shí)現(xiàn)的,但主服務(wù)器和輔助服務(wù)器之間的數(shù)據(jù)同步卻是個(gè)問題。要解決這個(gè)問題,我們可以這樣配置群集,即在兩個(gè)節(jié)點(diǎn)上都配置處于運(yùn)行狀態(tài)的服務(wù)器。主節(jié)點(diǎn)運(yùn)行主LDAP服務(wù)器,輔助節(jié)點(diǎn)則運(yùn)行從實(shí)例。對(duì)主服務(wù)器的更新通過slurpd被立即傳遞到從服務(wù)器?! ≈鞴?jié)點(diǎn)的故障使得輔助節(jié)點(diǎn)要響應(yīng)查詢,但現(xiàn)在我們還
7、不能更新。為了提供更新,在故障轉(zhuǎn)移時(shí),我們要重新啟動(dòng)輔助服務(wù)器并將它提升為主服務(wù)器。 這給予我們完整的LDAP服務(wù),但卻增加了一個(gè)問1234下一頁....,。題如果向輔助服務(wù)器作出了更新,那么在允許它重新啟動(dòng)之前必須修復(fù)主服務(wù)器。Heartbeat支持nicefailback選項(xiàng),該選項(xiàng)禁止有故障的節(jié)點(diǎn)在故障轉(zhuǎn)移后重新獲得資源,這會(huì)更令人滿意。在本文中,我們手工演示重新啟動(dòng)。我們的樣本配置將使用Heartbeat提供的虛擬IP工具。如果需要支持較重的查詢負(fù)載,則會(huì)用同時(shí)向主從服務(wù)器分發(fā)查詢的IP發(fā)射器取代虛擬IP。在這一情況
8、中,對(duì)從服務(wù)器作出的更新請(qǐng)求會(huì)產(chǎn)生引用。對(duì)引用的跟蹤不是自動(dòng)的;必須將該功能構(gòu)建到客戶機(jī)應(yīng)用程序中。除了復(fù)制偽指令外,主節(jié)點(diǎn)和從節(jié)點(diǎn)是以完全相同的方式配置的。主服務(wù)器配置文件指明復(fù)制日志文件的位置(第16行),并且有一份從服務(wù)器的清單,這些從服務(wù)器是具有憑證信息的復(fù)制目標(biāo)(第