本文要介紹的是如何在 OpenWrt 平臺上面搭建無盤工作站服務器以及 Windows 的 iSCSI 部署。
當然,由于 OpenWrt 也可以算得上一種 Linux 發行版了,所以本文所介紹的一些方法,在其它 Linux 發行版上面仍有一定的參考價值。
整個過程大概分為以下幾步:給 OpenWrt 添加 iSCSI Target 支持
創建并配置 iSCSI Target
獲取 gPXE 并配置 DHCP 及 TFTP 服務
通過 iSCSI 部署 Windows
測試
給 OpenWrt 添加 iSCSI Target 支持
到寫作本文為止,貌似 OpenWrt 官方還沒有添加 iSCSI Target 支持相關的軟件包,所以我們需要自力更生。然而幸運的是,已經有前人做過了類似的事情,我們只要采取“拿來主義”即可。
無論上面哪種方案,就目前而言都需要讀者自行編譯,但是如何交叉編譯 OpenWrt 所需的軟件包不在本文的討論范圍。
采用第一種方案,進行交叉編譯后,會得到以下幾個軟件包:kmod-iscsi-scst
kmod-scst
kmod-scst-vdisk
scst
luci-app-scst
把它們安裝到 OpenWrt,這樣第一步添加 iSCSI Target 支持就算完成了。
創建并配置 iSCSI Target
要創建 iSCSI Target 需要路由器有足夠大的存儲空間,最好是在路由器上掛載移動硬盤,如果是U盤則最小需要 16G 的 U 盤,而且 U 盤的性能可能會差很多。
在進入下面的配置之前,我們需要創建一個固定大小的虛擬磁盤文件,你可以將移動硬盤連接到電腦上進行創建( Windows 下創建一個 VHD 虛擬磁盤文件即可,至于要不要初始化該虛擬磁盤,則需要根據下面的操作決定,所以我建議先不要初始化),也可以直接在路由器上面創建,直接在路由器上面創建需要使用 dd 命令,假設你的移動硬盤被掛載到 /mnt/sda1 ,則可以使用下面的命令創建一個 15G 的文件:mkdir /mnt/sda1/iscsi
dd if=/dev/zero of=/mnt/sda1/iscsi/disk1.vhd bs=1M count=15360
創建文件的過程需要較長時間,請耐心等待,同時你可以另開一個終端登錄路由器,并使用du -h /mnt/sda1/iscsi/disk1.vhd
查看文件大小。
虛擬磁盤文件創建完成后,進入 iSCSI Target 的 Web 管理界面(服務->iSCSI Target)。
先是“Global settings”(全局設置),里面只有一個“System ID”,就是 iSCSI Qualified Name(即 ipn)。
默認的設置是“iqn.2012-12.org.openwrt”,建議不要更改,至于其命名規范,可參考rfc3721中相關內容。
然后是“Devices”(設備),單擊添加,添加一個 Device,共享名隨意(如disk1),類型只有一個選項——“Image file”,“目錄”即虛擬磁盤文件的路徑(如/mnt/sda1/iscsi/disk1.vh)。
緊接著是“Tagets”,同樣單擊添加,共享名隨意(如 iscsiboot),“Lun”則需填寫上面添加的 Device 的共享名(如 disk1),設置好后別忘了點擊保存&應用。
上面的設置,也可以通過編輯配置文件(/etc/config/scst)完成:config global
option id 'iqn.2012-12.org.openwrt'
config target
option name 'iscsiboot'
list lun 'disk1'
config device
option type 'file'
option blocksize '512'
option name 'disk1'
option path '/mnt/sda1/iscsi/disk1.vhd'
最后,需要開啟scst服務:/etc/init.d/scst enable
/etc/init.d/scst start
如果start失敗的話,可能需要重啟路由器:reboot
未完待續……