iSCSI引导过程
iSCSI引导一共有两个主要过程:
1. 预引导过程
2. Windows系统引导过程
预启动过程实际上就是我们在第一部分介绍的可以通过网卡,HBA卡(硬件启动加载器)或者软件启动加载器boot loader实现的。
- 对于硬件,启动加载器就是卡里面的固件程序,用于连接iSCSI目标并且挂载包含Windows 操作系统的文件系统VHD映像文件。
- 对于软件,可以通过USB或者光盘用于启动介质,当然在BIOS启动项里请设置该介质用于Windows 的引导阶段。
需要额外说明的根据上图可以看到,在预启动阶段实际已经完整了运行了实模式的网络驱动堆栈,并且加载器中已经包含了iSCSI发起器用于连接iSCSI目标设备和挂载程序。另外一个重要的组成部分是iSCSI启动固件表(iBFT),这个表很重要,因为在引导阶段和系统引导阶段过渡时需要这个表保存引导参数和会话。
SAN引导方式
1. 采用网卡或HBA卡硬件引导方式
*要求:这种方式要求硬件支持iSCSI Boot模式。
1) 当无盘系统引导时会读取目标iSCSI IP地址和IQN信息并用此加载iSCSI目标设备。
2) iSCSI目标验证并建立连接,客户端看到VHD盘并进行加载。
3) 引导过程如同在本地硬盘引导一样开始,所不同的是Windows系统启动后会启动iSCSI发起器程序并利用iBFT中的参数用于iSCSI的目标连接。
2. 采用软件引导器组合DHCP和TFTP的方式
*这种方式要求无盘引导主机支持PXE模式。
服务器要求部署DHCP服务和WDS角色(Windows 部署服务并且此服务包括了TFTP服务)
1) 无盘服务器启动并通过网卡 PXE引导。需要指定通过DHCP服务器参数配置IP地址,TFTP服务器和iSCSI目标连接信息。
2) DHCP服务器响应请求。
3) 无盘服务器从TFTP服务器获取启动加载器软件。
4) 无盘服务器通过启动加载器包含的iSCSI启动器连接和登录iSCSI目标,加载目标VHD磁盘。
5) 启动过程如同本地启动一样,所不同的是Windows系统启动后会启动iSCSI发起器程序并利用iBFT中的参数用于iSCSI的目标连接。
3. 最后一种就是我在Technet网络广播里面介绍和演示的方式,不需要DHCP和TFTP服务器相对比较简单,因为启动加载器就在启动介质里面(确切的说偷换了概念,无盘引导没有启动盘,但是有启动U盘或光盘,实际上不能算绝对意义上的无“盘” :P)
1) 设置BIOS从U盘或光盘启动,启动介质包含了软件启动加载器。
2)当无盘服务器启动后,启动加载器会使用iSCSI目标IP地址和IQN信息建立连接。(在我演示的环境里用的是iPXE,并且在交互式界面或配置文件里指定SANboot参数,我用的方式是交互式提供参数:sanboot iscsi:0.1.1.5::::iqn.1991-05.com.microsoft:DC-boot-target 关于iPXE使用方法,可以参考http://ipxe.org/)
3)iSCSI目标验证和建立连接后,提供VHD文件用户无盘服务器加载。
4)启动过程如同本地启动一样,所不同的是Windows系统启动后会启动iSCSI发起器程序并利用iBFT中的参数用于iSCSI的目标连接。
总算洋洋洒洒介绍完了关于零接触式的无盘引导数据中心所用到的技术和方法, 希望对大家有所帮助和启发。
最后,如果你实践了上述方法并且觉得很好,想尝试规模化部署,这里给个配置最佳实践供参考: