摘要:基于iSCSI技術的gPXE無盤工作站,不僅可以使用預設置源盤的無盤工作站也可以在此基礎上實現個性化的需要。本文首先對基于iSCSI的Windows無盤網絡實現方式進行分析,然后通過實例講解如何實現個性化無盤工作站的方法。
關鍵詞:iSCSI gPXE 快照
1 個性化無盤實現方式
iSCSI的gPXE無盤網絡工作站啟動過程如下。
1.1 無盤工作站主機設置從網絡啟動后,BOOTROM芯片中的PXE啟動程序引導工作站啟動。
1.2 工作站通過DHCP請求廣播,查詢網絡中的DHCP服務器,安裝有gPXE的DHCP服務器在收到工作站請求后,根據工作站的MAC地址做出響應,并將FOUND幀發送回工作站,該幀中包含有相應的TCP/IP地址信息和gPXE無盤服務器中設置的啟動映象文件名。
1.3 PXE啟動程序根據幀中的信息從TFTP服務器下載啟動映像文件undionly.kpxe,并將此文件在工作站內存模擬成磁盤,從這個模擬磁盤啟動。
1.4 undionly.kpxe的引導程序,再次以廣播的方式與DHCP服務器聯系,通過DHCP服務器中的配置文件選擇相應的啟動配置文件,讀取iSCSI的訪問路徑,并使用該路徑連接iSCSI服務器,連接相對應的iSCSI Target,并將該iSCSI Target模擬為本地磁盤,然后讀取Target中的操作系統文件,將控制權交給操作系統,完成系統的啟動。
通過上述的啟動過程分析可以看出,無盤工作站使用哪一個iSCSI Target作為操作系統存儲磁盤是在DHCP服務器中為工作站配置的啟動配置文件文件中讀取的,因此只要在此過程中為每個用戶提供不同的啟動配置文件就可以實現無盤工作站個性化。
2 基于iSCSI的個性化無盤工作站構建方案
2.1 無盤網絡工作環境
服務器操作系統:Red Hat Enterprise Linux 5.5(IP:192.168.0.254),服務器上運行gPXE、DHCP服務和iscsitarget服務。
無盤工作站操作系統:Windows操作系統
2.2 服務器端安裝與配置
2.2.1 在服務器中安裝iscsitarget、DHCP和gPXE服務。
2.2.2 創建iSCSI Target,名為iqn.2011-03.com.example:linuxsrv.dlws,該Target用于管理無盤工作站安裝和更新快照源設備。
ietadm--op new --tid=300 --params Name=iqn. 2011-03.com.example:linuxsrv.dlws
2.2.3 創建iSCSI源盤的映像文件/srv/dlws/dlws.img,并使它與環回設備/dev/loop0關聯,然后為/dev/loop0建立快照源設備/dev/mapper/dlws_origin,基本命令如下。
dd if=/dev/zero of=/srv/dlws/dlws.img bs=1 count=0 seek=20G
losetup /dev/loop0 /srv/dlws/dlws.img
dmsetup create dlws_origin --table \"0 `blockdev --getsize /dev/loop0` snapshot-origin /dev/loop0\"
2.2.4 創建名為iqn.2011-03.com.example:linuxsrv.dlwssnapshot01的iSCSI Target,它用于普通無盤工作站的連接。
ietadm --op new --tid=1 --params Name=iqn.2011-03.com.example:linuxsrv.dlwssnapshot01
2.2.5 創建iSCSI快照的映像文件/srv/dlws/dlwssnapshot1.img,該文件用于用戶的數據寫入和保存。然后將它與環回設備/dev/loop1關聯,使用基本命令如下。
dd if=/dev/zero of=/srv/dlws/dlwssnapshot1.img bs=1 coun
t=0 seek=10G
losetup /dev/loop1 /srv/dlws/dlwssnapshot1.img
dmsetup create dlws_snapshot01 --table \"0 `blockdev --getsize /dev/loop0` snapshot /dev/loop0 /dev/loop1 n 64\"
2.2.6 為iqn.2011-03.com.example:linuxsrv.dlwssnapshot01Target創建一個新的LUN,使普通無盤工作站可以通過連接該LUN使用iSCSI源盤的數據。
ietadm --op new --tid=1 --lun=0 --params Path=/dev/mapper/dlws_snapshot01,Type=blockio
2.2.7 根據實際的需要,通過上述步驟建立多個iSCSI快照分配給不同的無盤工作站。
2.2.8 為iqn.2011-03.com.example:linuxsrv.dlws Target創建一個LUN,該LUN對應的設備為/dev/mapper/dlws_origin,然后使用管理工作站連接該LUN,并安裝好所需的操作系統和應用程序。
2.2.9 在/ tftpboot目錄中創建一個名為gpxe的文件夾,將gPXE服務中編譯好的undionly.kpxe文件拷貝到該目錄下,并在該目錄下分別創建名為menu.gpxeXX的啟動配置文件(XX表示是不同的無盤工作站),使每一個工作站能使用不同的iSCSI快照,事例語句如下。
#!gpxe chain
sanboot iscsi:192.168.0.254:::: iqn.2011-03.com.example:linuxsrv.dlwssnapshot01
2.2.10 修改DHCP服務配置文件/etc/dhcpd.conf,通過網卡的MAC地址設置工作站的保留IP,并指定啟動的菜單文件,使工作站啟動時能連接相應的iSCSI快照,主要配置文件如下。
……
option gpxe.keep-san 1;
subnet 192.168.0.0 netmask 255.255.255.0 {
……
next-server 192.168.0.254;
host pc1 {hardware ethernet 00:0c:29:6f:de:67;
fixed-address 192.168.0.100;
if not exists gpxe.bus-id { filename \"undionly.kpxe\";}
else {filename \"menu.gpxe01\";}}//為每個用戶分配不同的menu.gpxe文件
host pc2 {……
if not exists gpxe.bus-id { filename \"undionly.kpxe\"; }
else {filename \"menu.gpxe02\";}}……
通過上述的步驟,就能實現具有個性化的無盤工作站。當工作站發生中毒或文件損壞等問題,造成系統不能正常使用時,只需要將相應Target上的LUN刪除,然后重新生成對應的快照映像文件和快照設備,并建立LUN,就可以瞬間恢復工作站的系統到初始狀態。
3 結束語
企事業單位通過部署個性化的iSCSI無盤網絡,不僅可以滿足不同的辦公需求,費用低廉,并且可以極大地降低系統維護的成本。
參考文獻:
[1]鄧莉.淺談基于iSCSI的Windows7無盤工作站架設.《價值工程》2010年17期.
[2]姚全珠,李宏濤.改善iSCSI存儲系統性能的優化策略.《計算機工程與設計》2010年15期.