搭建基于OpenWrt、gPXE和iSCSI的Windows无盘工作站
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
搭建基于OpenWrt、gPXE和iSCSI的Windows无盘工作
站
本文要介绍的是如何在OpenWrt平台上面搭建无盘工作站服务器以及Windows的iSCSI部署。
当然,由于OpenWrt也可以算得上一种Linux发行版了,所以本文所介绍的一些方法,在其它Linux发行版上面仍有一定的参考价值。
整个过程大概分为以下几步:
•给OpenWrt添加iSCSI Target支持
•创建并配置iSCSI Target
•获取gPXE并配置DHCP及TFTP服务
•通过iSCSI部署Windows
•测试
给OpenWrt添加iSCSI Target支持
到写作本文为止,貌似OpenWrt官方还没有添加iSCSI Target支持相关的软件包,所以我们需要自力更生。
然而幸运的是,已经有前人做过了类似的事情,我们只要采取“拿来主义”即可。
相关资源:
https:///tobiaswaldvogel/openwrt-
addpack/tree/master/scst
https:///tobiaswaldvogel/openwrt-
addpack/tree/master/luci-app-scst
上面分别是在OpenWrt的内核层面实现的iSCSI Target支持及其Luci配置界面,读者需要自行获取这两部分的源码然后进行交叉编译,这也是我最终选用的方案,下文关于iSCSI的内容均基于此。
另外还有一个在用户空间实现的方案,详情见:
无论上面哪种方案,就目前而言都需要读者自行编译,但是如何交叉编译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 T arget的Web管理界面(服务->iSCSI Target)。
先是“Global settings”(全局设置),里面只有一个“System ID”,就是iSCSI Qualified Name(即ipn)。
默认的设置是“.openwrt”,建议不要更改,至于其命名规范,可参考rfc3721中相关内容。
然后是“Devices”(设备),单击添加,添加一个Device,共享名
随意(如disk1),类型只有一个选项——“Image file”,“目录”即虚拟磁盘文件的路径(如/mnt/sda1/iscsi/disk1.vh)。
紧接着是“Tagets”,同样单击添加,共享名随意(如iscsiboot),“Lun”则需填写上面添加的Device的共享名(如disk1),设置好后别忘了点击保存&应用。
上面的设置,也可以通过编辑配置文件(/etc/config/scst)完成:
config global
option id '.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
未完待续……。