集群環(huán)境下維護(hù)各節(jié)點(diǎn) Linux 軟件包的方法 |
發(fā)布時(shí)間: 2012/6/28 17:02:27 |
前言 目前,越來越多的網(wǎng)站采用 Linux 操作系統(tǒng),提供郵件、Web、文件存儲(chǔ)、數(shù)據(jù)庫等服務(wù)。也有非常多的公司在企業(yè)內(nèi)部網(wǎng)中利用 Linux 服務(wù)器提供這些服務(wù)。隨著人們對(duì) Linux 服務(wù)器依賴的加深,對(duì)其可靠性、負(fù)載能力和計(jì)算能力也倍加關(guān)注。Linux 集群技術(shù)應(yīng)運(yùn)而生,可以以低廉的成本,很好地滿足人們的這些需要。隨著 Linux 集群環(huán)境的使用越來越廣泛,管理員維護(hù)集群各個(gè)節(jié)點(diǎn)的軟件面臨著越來越大的問題,例如如何在節(jié)點(diǎn)安裝新的軟件、如何維護(hù)各節(jié)點(diǎn)軟件版本的一致性,等等。如果讓管理員一個(gè)個(gè)節(jié)點(diǎn)的安裝、更新,那將會(huì)是一項(xiàng)非常繁重并且容易出錯(cuò)的工程。為了充分發(fā)揮 Linux 集群系統(tǒng)的潛在性能,我們需要有更好的方法來維護(hù)集群節(jié)點(diǎn)的軟件包。本文將會(huì)介紹幾種常用的軟件維護(hù)工具,最后還將給出集群環(huán)境下實(shí)現(xiàn)節(jié)點(diǎn)軟件包自動(dòng)維護(hù)的方法。 Linux 集群環(huán)境手工維護(hù)軟件存在的問題 Linux 操作系統(tǒng)跟微軟操作系統(tǒng)不同,它都是一個(gè)個(gè)相對(duì)獨(dú)立的軟件所構(gòu)成的一個(gè)操作系統(tǒng),一個(gè)軟件包完成一項(xiàng)單獨(dú)的功能。為此 Linux 系統(tǒng)管理員平時(shí)大部分時(shí)間都在跟 Linux 系統(tǒng)軟件包打交道。系統(tǒng)管理員要根據(jù)企業(yè)員工的需要,選擇并安裝恰當(dāng)?shù)能浖?/p> Linux 服務(wù)器的軟件包也如同 Windows 操作系統(tǒng)的補(bǔ)丁一樣在不斷的升級(jí)。Linux 服務(wù)器軟件的升級(jí)主要有兩個(gè)目的。一是增強(qiáng)軟件的功能,二是解決一些已知的安全漏洞。如 RedHat 公司在知道新的安全漏洞之后,就會(huì)馬上研究開發(fā)出相應(yīng)的解決方案,然后在新版本的軟件包中進(jìn)行解決。為此系統(tǒng)管理員必須及時(shí)的了解軟件包的最新信息并及時(shí)的對(duì)軟件包進(jìn)行升級(jí),讓軟件包保持最新的版本。 在 Linux 系統(tǒng)中,軟件包的依賴關(guān)系讓人很是頭疼。如在安裝 Linux 系統(tǒng)時(shí),不是選擇安裝所有的軟件包。在安裝完 Linux 系統(tǒng)后,若再進(jìn)行軟件安裝的話,就可能會(huì)遇到一些依賴關(guān)系的問題,如在安裝 PHP 軟件包時(shí),系統(tǒng)就可能會(huì)提示一些錯(cuò)誤信息。說需要其他的一些軟件包的支持。其實(shí)類似的情況在 Windows 中也會(huì)遇到。如有時(shí)候安裝一些應(yīng)用軟件可能對(duì)瀏覽器的版本會(huì)有要求或者要求操作系統(tǒng)的補(bǔ)丁達(dá)到 SP2 以上等等。不過在微軟操作系統(tǒng)上這種軟件依賴關(guān)系要比在 Linux 系統(tǒng)中少見的多,而且處理起來也方便一些。 Linux 環(huán)境下維護(hù)軟件工具介紹 Linux 環(huán)境下軟件包的維護(hù)工具有很多種,本文中我們只簡單介紹一下 RPM,YUM 和 AutoUpdate 三種工具。 RPM RPM 源自 Red Hat Package Manager 的縮寫,最初在 Red Hat Linux 中被用作軟件包管理。在眾多的 Linux 發(fā)行版中均有應(yīng)用,如 Fedora 、RedHat、Mandriva、SuSE、YellowDog 等,還有一些非 Linux 平臺(tái),如 Novell 的 NetWare、IBM 的 AIX 等。 軟件在 RPM 中是以包的形式存在的,包括可執(zhí)行程序以及運(yùn)行時(shí)所需要的文件。用戶可以使用 RPM 用來處理如下的任務(wù): 管理軟件的安裝、刪除、升級(jí)等。 查詢軟件信息,如軟件內(nèi)容、版本、文件歸屬等。 依賴性檢查 生成軟件包,進(jìn)行軟件包的驗(yàn)證和簽名等。 RPM 不只是一個(gè)包管理工具,更是文件格式和標(biāo)準(zhǔn)。因?yàn)?RPM 應(yīng)用的廣泛性,有眾多的包管理軟件是基于 RPM 做的二次開發(fā)。 RPM 在軟件包依賴性上存在弱點(diǎn),這使其受人詬病。這一點(diǎn)在其他一些包管理工具中得到了解決。 YUM YUM 源自 Yellowdog Updater, Modified,這是一個(gè)開源并且與 RPM 兼容的包管理工具。2007 年,YUM 應(yīng)用到了 RedHat 平臺(tái),并且成為了很多 Linux 發(fā)行版的標(biāo)準(zhǔn)功能。 YUM 有一個(gè)簡單的插件接口,開發(fā)人員可以方便的通過接口增加新的功能。YUM 的數(shù)據(jù)庫采用了 xml 格式,這使其很快成為了一個(gè)標(biāo)準(zhǔn)。另外,.sqlite meta-data 格式也在引入,也提供了更好的性能。 YUM 的最大好處就是能自動(dòng)的解決軟件包依賴性問題,使得軟件包的管理更加的自動(dòng)化和方便。特別是如果需要管理一大批的計(jì)算機(jī),比起 RPM,使用 YUM 會(huì)方便許多。YUM 還可以提供服務(wù)緩沖功能,在管理一批機(jī)器的時(shí)候,可以指定其中某一臺(tái)為鏡像服務(wù)器,其他機(jī)器從鏡像服務(wù)器上進(jìn)行下載而不是通過 Internet,這樣不但可以節(jié)省帶寬和資源,對(duì)于管理員來說,也可以方便的讓一批機(jī)器保持一致性。 AutoUpdate AutoUpdate 是一個(gè)由 Perl 腳本編寫的包管理工具,功能類似 RedHat 的 up2date 或者 autorpm(這兩個(gè)基本已停止了開發(fā))。AutoUpdate 可以自動(dòng)的從不同的 ftp 或者 http 站點(diǎn)下載和安裝 rpm 包;也可以用于讓多臺(tái)機(jī)器與某一臺(tái)自定義的服務(wù)器保持軟件包的同步。AutoUpdate 從一開始就被設(shè)計(jì)為不僅僅運(yùn)行于 RedHat 平臺(tái),所有 RPM 兼容的 Linux 發(fā)行版都可以用。 與其他的包管理工具相比,AutoUpdate 有如下的特點(diǎn): 與 up2date 等類型的工具相比,AutoUpdate 可以同時(shí)支持 RedHat 或者第三方的 rpm 包。另外,還可以通過設(shè)置一臺(tái)服務(wù)器,其他機(jī)器從服務(wù)器獲取包的方式來節(jié)省總體的帶寬。 AutoUpdate 能自動(dòng)處理依賴性問題,特別是有多個(gè)可選依賴樹存在的情況下。 做版本比較的時(shí)候僅僅根據(jù)文件名,而不是整個(gè) rpm 的頭。 AutoUpdate 被設(shè)計(jì)為以計(jì)劃任務(wù)的模式自動(dòng)運(yùn)行。另外,沒有交互式或者圖形化的界面。 AutoUpdate 有 5 種獨(dú)立的工作模式:download、get、Update/Install、Merge、Purge。 1. download 模式 AutoUpdate 連接到遠(yuǎn)程服務(wù)器,比較服務(wù)器和本機(jī)上軟件包版本的差異,下載并安裝所有需要升級(jí)的軟件包。遠(yuǎn)程服務(wù)器可以在命令行中指定,支持本地文件、ftp、http、https、sftp 等。 autodld 命令可用于 download 模式,下面是一個(gè)調(diào)用的例子: 清單 1. autodld 調(diào)用示范
服務(wù)器被配置為:ftp.mat.univie.ac.at。autodld 從服務(wù)器上發(fā)現(xiàn)了新的 rpm 包 rsync-2.-13.i386.rpm 之后,進(jìn)行了下載、升級(jí)和刪除安裝文件的操作。 2. get 模式 get 模式與 download 模式類似,不同之處在于 get 模式可以指定需要更新的軟件包名。如想要安裝某服務(wù)器上的 zip 包,可用下面的命令:
3. Update/Install 模式 update 模式用于將已安裝過的軟件包升級(jí)到新的版本。軟件包名稱由命令行指定,或者搜索升級(jí)目錄中存在的。install 模式與 update 模式類似,區(qū)別在于即使系統(tǒng)中沒有舊版本,也會(huì)進(jìn)行安裝。 AutoUpdate 的工作順序如下:首先,所有的 rpm 包(kernel 包除外)會(huì)被升級(jí),如果存在沒有解決的依賴問題,autoupdate 會(huì)檢查是否 rpm 的目錄中存在滿足條件的 rpm 包;然后新的 kernel 包會(huì)被安裝,并且根據(jù)用戶的需要,將新的 kernel image 加入到啟動(dòng)中。 例如,如果升級(jí)包在當(dāng)前目錄下,可以用命令:autoupd *.rpm 對(duì)系統(tǒng)進(jìn)行升級(jí)。如果想要重新安裝,則可以用命令:autoins *.rpm。 4. Merge 模式 Merge 模式用于將 update 目錄中新的 rpm 包合并到 rpm 目錄中去(移除舊的版本),使用 automrg 命令。 5. Purge 模式 Purge 模式用于刪除舊的軟件包,使用 autoprg 命令。 6. 配置文件 AudoUpdate 有很多配置文件用來給用戶更多的自定義選擇,這些文件都放置在 /etc 目錄下。 7. 單機(jī)模式 對(duì)于單機(jī)應(yīng)用,主要的配置文件是 autoupdate.conf、*.dld 和 *.get。 autoupdate.conf 是最主要的配置文件,在 /etc/autoupdate.d 目錄下,對(duì)于簡單應(yīng)用來說不需要做什么改動(dòng)。 用戶至少需要一個(gè) .dld 文件來讓 AutoUpdate 正常工作,幾個(gè)主要項(xiàng)的內(nèi)容如下: 清單 2. .dld 配置文件
dld 文件可以是多個(gè),用戶只要執(zhí)行 autodld 即可根據(jù)所有的 dld 文件進(jìn)行升級(jí)。 如果用戶想使用 get 模式,就需要配置 *.get 文件。 清單 3. .get 配置文件
8. 服務(wù)器 - 客戶端模式 假設(shè)有一批機(jī)器需要做更新,但是如果都從 Internet 上下載會(huì)很慢并且占用帶寬。使用 AutoUpdate 可以設(shè)置其中一臺(tái)為服務(wù)器,其他機(jī)器為客戶端的方式,服務(wù)器下載完成后,其他所有客戶端從這臺(tái)服務(wù)器上下載 rpm 包。這樣可以保證速度并且節(jié)省帶寬。 設(shè)置為服務(wù)器模式很簡單,我們先考慮服務(wù)器和客戶端完全同配置的情況: 在 autoupdate.conf 中配置:CleanUp=0。這樣,充當(dāng)服務(wù)器的機(jī)器更新之后不會(huì)刪除下載的 rpm 包。 將服務(wù)器的 rpm 包下載目錄以某種方式 export 出去,如 ftp、http、nfs 等,使得其他客戶端機(jī)器可以訪問。 在客戶端機(jī)器上的 *.dld 文件中,將 Host 設(shè)置為服務(wù)器即可。 如果服務(wù)器和客戶端 CPU 體系結(jié)構(gòu)不一致,則需要在 autoupdate.conf 中配置:BestMatch=0。這樣服務(wù)器會(huì)下載所有體系結(jié)構(gòu)的包,而不只是服務(wù)器本身的。各客戶端會(huì)在服務(wù)器上下載符合自己 CPU 的 rpm 包。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |