詳談Linux NFS的問題
Linux,以其開源的特性,和友好的親和性得到很多企業(yè)的喜愛。那么隨著對(duì)其技術(shù)的要求,Linux NFS的問題也越來(lái)越突出。Linux NFS系統(tǒng)對(duì)于電腦使用的玩家的常用軟件,然后我就學(xué)習(xí)及深入的研究Linux NFS系統(tǒng),在這里和大家一起探討Linux NFS系統(tǒng)的使用方法,希望對(duì)大家有用。
項(xiàng)目需求
在生產(chǎn)環(huán)境中我們有時(shí)候需要部署大量系統(tǒng)相同的服務(wù)器,當(dāng)數(shù)量達(dá)到一定程度的時(shí)候,給每臺(tái)服務(wù)器專門單獨(dú)安裝是非常耗時(shí)且枯燥的重復(fù)勞動(dòng),所以網(wǎng)絡(luò)引導(dǎo)自動(dòng)安裝是我們解決問題的重要方法。
項(xiàng)目分析
想要實(shí)現(xiàn)網(wǎng)絡(luò)無(wú)人職守的安裝,首先需要這些計(jì)算機(jī)之間網(wǎng)絡(luò)沒有故障并且都能從網(wǎng)絡(luò)引導(dǎo),接下來(lái)我們需要一臺(tái)放置安裝源文件的服務(wù)器,由它提供DHCP、PXE、TFTP、Linux NFS、Kickstart、HTTP(可選)、DNS(可選)這些服務(wù)。 下面列出每個(gè)服務(wù)在這個(gè)項(xiàng)目中發(fā)揮的作用:
PXE:工作于C/S的網(wǎng)絡(luò)模式,支持工作站通過網(wǎng)絡(luò)從遠(yuǎn)端服務(wù)器下載映像,并由此支持來(lái)自網(wǎng)絡(luò)的操作系統(tǒng)的啟動(dòng)過程。(這里默認(rèn)由我們客戶機(jī)的網(wǎng)卡提供了該服務(wù))DHCP:由于客戶使用了PXE是基于TCP/IP協(xié)議的,所以必須分配IP地址給客戶機(jī),而且這里還告訴了客戶機(jī)TFTP Server的位置。
TFTP:PXE引導(dǎo)的過程需要使用TFTP協(xié)議下載我們的kernel和initrd文件以及相關(guān)的啟動(dòng)選擇配置文件菜單等,我們的服務(wù)器TFTP 服務(wù)提供了這兩個(gè)文件。有了這兩個(gè)文件,我們就能引導(dǎo)起系統(tǒng)來(lái),通過網(wǎng)絡(luò)安裝(FTP,NFS等方式)。
Kickstart:Linux NFS系統(tǒng)安裝配置文件,當(dāng)我們手動(dòng)安裝的時(shí)候,每一步的配置最終會(huì)保存為一個(gè)ks文件,里面記錄了整個(gè)系統(tǒng)安裝需要的一些設(shè)置,其中包括安裝的包以及分區(qū)等等大量信息,當(dāng)客戶機(jī)安裝系統(tǒng)的時(shí)候有了這個(gè)配置文件我們就能不必每次手動(dòng)配置來(lái)完成安裝了。
Linux NFS:當(dāng)系統(tǒng)引導(dǎo)起來(lái)開始安裝后,我們是使用了Linux NFS作為安裝來(lái)源(配置方便并且容易使用),只需要選擇在服務(wù)器上用Linux NFS共享出安裝文件目錄即可。DNS:如果我們想要每臺(tái)客戶機(jī)裝好以后都自動(dòng)設(shè)置好了它的hostname,我們可以利用DNS的反向解析讓客戶機(jī)獲取自己的hostname。HTTP:這里為了多練習(xí)我們這里是使用了HTTP方式來(lái)提供了客戶機(jī)ks文件的獲取,如果你覺得麻煩,可以就使用NFS的方式。
實(shí)現(xiàn)過程
配置DHCP首先保證你的DHCP服務(wù)已經(jīng)安裝,我們vim打開/etc/dhcpd.conf,在里面加入以下內(nèi)容:allow bootp;allow booting; #其實(shí)這里不加也沒有關(guān)系,默認(rèn)就有
- option domain-name "lenovo.cn";
- option domain-name-servers ns.lenovo.cn;
- default-lease-time 600; #默認(rèn)租約時(shí)間
- max-lease-time 7200; #最大租約時(shí)間
- next-server 192.168.0.32 ; #TFTP服務(wù)器地址,這里還是指定為本機(jī)
- filename "pxelinux.0"; #網(wǎng)卡ROM加載的一個(gè)配置文件
- subnet 192.168.0.0 netmask 255.255.255.0 {
- range 192.168.0.100 192.168.0.110; #分配IP的范圍
- option domain-name-servers 192.168.0.32; #DNS服務(wù)器地址
- option routers 192.168.0.1; #網(wǎng)關(guān)地址}
配置TFTP首先必須安裝TFTP服務(wù): tftp.i386 0:0.49-1.fc10 tftp-server-0.49-1.fc10.i386由于會(huì)默認(rèn)去到/tftpboot下找文件,所以我們發(fā)現(xiàn)沒有該目錄則創(chuàng)建之。首先我們復(fù)制一個(gè)文件:/usr/lib/syslinux/pxelinux.0 到 /tftpboot下面。
接下來(lái),我們將光盤目錄下isolinux內(nèi)的文件全部都復(fù)制到/ftpboot目錄下,并且修改兩個(gè)文件名(為了以后拓展功能,改名把各個(gè)系統(tǒng)內(nèi)核區(qū)分開)。mv initrd.img initrd.fc10.img mv vmlinuz vmlinuz.fc10
然后,創(chuàng)建/tftpboot/pexlinux.cfg目錄,在下面創(chuàng)建default文件并編輯之:default bootlocal #默認(rèn)從本地啟動(dòng)
- prompt 1
- timeout 60 #超時(shí)時(shí)間
- label bootlocal
- localboot 0
- label fedora
kernel vmlinuz.fc10 #內(nèi)核以及初始化鏡像append initrd=initrd.fc10.img ramdisk_size=65536 ks=http://192.168.0.32/fc10Install.ks #指定ks文件獲取路徑這里我做了個(gè)簡(jiǎn)單的配置。
具體寫法可以去參照網(wǎng)上的wiki最后,我們需要讓TFTP服務(wù)啟動(dòng),去修改/etc/xinetd.d/tftp這個(gè)文件,修改其中兩 項(xiàng): disable = no #打開TFTP服務(wù)的啟用
server_args = -s /tftpboot #服務(wù)器的根目錄設(shè)為/tftpboot
配置NFS NFS在這里負(fù)責(zé)共享安裝需要的文件,需要共享下安裝文件的目錄(拷貝光盤下所有文件到那個(gè)目錄),配置如下:/FC10Install 192.168.0.0/24(ro,sync) 配置DNS(可選)在DNS里面對(duì)DHCP分配出去那個(gè)網(wǎng)段進(jìn)行反向解析,具體內(nèi)容參見DNS服務(wù)搭建部分。
制作ks文件在我們的系統(tǒng)安裝好以后在root的家目錄下有個(gè)anaconda-ks.cfg,我們安裝個(gè)配置工具system-config-kickstart。使用這個(gè)工具打開我們現(xiàn)有的anaconda-ks.cfg這個(gè)文件,進(jìn)去后注意選中文字安裝界面和安裝好后自動(dòng)重啟。
另外,如果安裝好后需要運(yùn)行一些腳本可以修改Post-Installation部分。修改完后我們另存為一個(gè)文件,這里如果使用HTTP提供給客戶可保存到/var/www/html/ 目錄下,注意權(quán)限修改為644。這里是我的一個(gè)ks文件示例:
6.配置apache(可選)如果以前做過虛擬主機(jī)或者改過默認(rèn)網(wǎng)站主目錄,改回去成默認(rèn)狀態(tài)即可。
7.啟動(dòng)各類服務(wù):
- service dhcpd restart
- service xinetd restart
- service nfs restart
- service named restart
- service httpd restart
測(cè)試將客戶機(jī)重啟并設(shè)置BIOS從網(wǎng)絡(luò)啟動(dòng),觀察啟動(dòng)過程??偨Y(jié)本文描述了如何搭建一個(gè)基于網(wǎng)絡(luò)的Linux系統(tǒng)自動(dòng)安裝過程,在實(shí)際生產(chǎn)環(huán)境下比較使用而且能節(jié)省大量的人力資源,并且還能拓展開來(lái)搭建網(wǎng)絡(luò)的系統(tǒng)救援模式,甚至搭建從網(wǎng)絡(luò)啟動(dòng)的Linux系統(tǒng)無(wú)盤工作站。