五、搭建Window Server 2012虚拟化的存储网络
前文我们讨论了Window Server 2012支持的各种与存储相关的技术,接下来我们通过实践对其中的一些技术进行检验。实际上Window Server 2012虚拟化并不一定需要诸如NAS或者SAN之类的第三方存储,利用服务器的内的本地磁盘也同样可以部署Window Server 2012虚拟化的基础架构SCVMM(System Center Virtual Machine Manger)。但是虚拟化本质上追求的是可伸缩性和高可用性,而这些在将本地磁盘直接作为虚拟机的存储时是无法实现的。虚拟化所依赖的存储需要更高层级的抽象。但与采用分布式存储的不同,Window Server 2012虚拟化更多使用的是第三方的存储(个人称之为集中式存储)。这带来的性能的提升和复杂度的降低,但同时也限制了其扩展的规模。无论如何,Window Server 2012虚拟化对于中小型规模的应用还是具有相当优势的。
那么为了实现可伸缩性和高可用性,我们需要可共享的第三方存储,可以是SAN或者Windows File Server(利用over SMB技术),企业级应用一般会选择FC SAN。
这里我们以1台IBM DS3512存储,1台IBM光纤交换机,8台IBM X3550 M4服务器,来构建Windows Server 2012 虚拟化的基础设施。主要有两个工作要完成,第一完成所有硬件连接,第二配置光纤交换机和存储。
1、硬件连接
由于只有1台光纤交换机,无法实现在交换机层次的高可用性,就是如果光纤交换机损坏的话,存储将无法提供服务。但是对于非核心服务来说应该是足够的,要知道光纤交换机价格高昂。根据上图的方式,每台服务器上的FC HBA卡通过光纤连接至光纤交换机,存储的两个控制器都连接至光纤交换机。
IBM DS3512存储(正面)
IBM DS3512存储(上)和IBM 2498-B24光纤交换机(下)
下图是包含更多设备的较为全景的图片:
IBM DS3512存储(上)、IBM 2498-B24光纤交换机(中上)、KVM(中下)和IBM X3550 M4服务器(下)
在上图可以发现每条光纤其实连接的是光纤模块,而光纤模块插入光纤交换机或者FC HBA卡上的插槽中。光纤模块实现了光电信号的转换,光纤模块要与插槽匹配,光纤线也要与光纤模块匹配。这里我们选择多模的光纤和SFP光纤模块。
另外,上图的连接并不规范,存储的两个控制器上分别连接了两条光纤,其中一条与光纤交换机连接,另一条与一台服务器的FC HBA卡直接连接。原因是IBM的光纤交换机是按插槽口数量授权的,也就是说目前这台光纤交换机只授权的8个插槽口,其中2个用于连接存储的2个控制器,剩余只够连接6台服务器,剩余2台服务器只能直接连接到存储上,这样这两台服务器将无法实现多路径IO(MPIO),即在存储的两个控制器之间实现冗余。不过大家明白有这样的缺点即可,有时考虑成本,妥协也在所难免。
上图存储两个控制器上分别连接的黑色网线是控制线,用于通过以太网对存储进行配置,下文将涉及。
2、配置光纤交换机和存储
(1)配置光纤交换机
初次配置可以使用putty连接IBM 2498-B24光纤交换机的COM口,找到该光纤交换机的默认静态IP地址,以方便今后使用IP在浏览器中进行连接和配置。根据如下图参数连接COM口(注意如果通过COM转USB连接线连接的话,可以在设备管理器中查看模拟出的串口号,这里连接的是COM4)。
使用用户名admin和密码password登录。登陆后会要求重设各类用户的初始密码,最后使用命令ipaddrshow显示默认IP地址,也可以通过命令ipaddrset进行修改。输入help命令可以获得更多帮助。
IBM_2498_B24 login: admin
Password:
Please change passwords for switch default accounts now.
...
IBM_2498_B24:admin> ipaddrshow SWITCH
Ethernet IP Address: 10.77.77.77
Ethernet Subnetmask: 255.255.255.0
Gateway IP Address: none
DHCP: Off
IBM_2498_B24:admin>
通过上面的方法找到的交换机的IP地址为10.77.77.77,那么接下来使用网线连接交换机的管理网口,在浏览器中访问 http://10.77.77.77 ,提示要求安装java运行库,但是由于机器年份比较早,跳转的地址仍然是sun.com的地址(sun公司目前已经被oracle收购),现在无法知道需要安装的java jre的版本了,但通过研究跳转前的页面中的验证java版本的JavaScript脚本可知,需要安装java jre 1.6 32位。到oracle官网下载jre-6u43-windows-i586.exe安装。终于看到交换机的管理登录界面。
使用admin和之前在putty里修改的密码登录。
主要的配置集中在Zone Admin,主要配置逻辑是:
a. 在Alias选项卡内为每个需要连接的端口(含每台服务器的FC HBA卡和存储的2个控制器)建立别名,以方便后续配置。
b. 在Zone选项卡内将需要连接的端口,划归在一个Zone里。左侧是可选的对象,右侧是加入的对象,这里我们加入别名即可。
c. 在Zone Config选项卡内将需要启用的Zone加入右侧Zone Members。这样就完成的基本的交换机端口映射。
(2)配置存储
完成了光纤交换机的配置,其实已经打通的服务器与存储之间的通道。接下来就需要对存储进行规划和配置,以便服务器能够正常访问。我们可以简单的认为外部存储即是服务器外置的几块大硬盘,只不过这些大硬盘是通过光纤的方式连接的。我们可以使用IBM的存储管理软件IBM System Storage DS Storage Manager对存储进行管理,将安装有IBM的存储管理软件的计算机通过网线同时连接存储的两个控制器上的管理网口,这中间需要加交换机,管理软件可以自动发现存储。
在规划存储时,我们需要考虑该存储未来的应用。当一切尘埃落定后存储将无法重新调整,即使可以调整也将面临较大风险。我们的存储将是整个虚拟化的基石,其上需要构建Windows Server故障转移集群,需要提供集群共享卷功能,以放置具有高可用的虚拟机。那么有几个方面需要考虑:
a. 对物理磁盘进行分组创建热备磁盘,创建磁盘阵列Raid,选择Raid的类型。如下图在Hardware选项卡中,右键图中的磁盘创建热备盘和磁盘阵列。
b. 对磁盘阵列划分逻辑磁盘(在服务器操作系统中表现为一个磁盘),其中为Windows Server故障转移集群创建见证磁盘。如下图在Storage & Copy Services选项卡中可以看见创建了2个的磁盘阵列,一个是Raid10类型,另一个是Raid5类型,可以在每个磁盘阵列下创建逻辑磁盘。其中在名为RAID5这个磁盘阵列下我创建了两个1-2Gb大小的逻辑磁盘,这两个磁盘将作为故障转移集群的见证磁盘。
c. 为服务器分配逻辑磁盘。在Host Mappings选项卡中可以通过host port identifier(每个光纤网口唯一的标识)定义所有的允许连接存储的服务器,可以对这些服务器进行分组,并为它们分配逻辑磁盘。如下图定义了8个服务器,分为一组,组名为Host Group 02,并将大部分逻辑磁盘分配给该组。
(3)配置服务器
进行如上配置后,在服务器的磁盘管理工具中就可以看见分配给服务器的那些逻辑磁盘了。这里我们还需要配置多路径IO(MPIO),实现服务器在存储的两个控制器之间实现路径冗余,即如果一个存储控制器坏了,服务器将自动使用另一个。当然多路径IO不仅止于此,如果每台服务器有两个FC HBA卡,并分别连接两台光纤交换机,每台光纤交换机分别连接两个存储控制器,那么这将实现真正的冗余,当然成本也不菲。在Windows Server 2012 R2中配置多路径IO,需要做两件事:
a. 安装IBM多路径IO的驱动,可以在官网下载对应存储的驱动,这里安装驱动为MPIO Device Specific Module(DSM),其文件名类似SMIA-WinX64-01.03.1305.0050.exe。
b. 在服务器管理器中添加服务器特性Multipath I/O。
完成后我们可以在磁盘管理器Disk Management中,看到到原来冗余的磁盘都合并在一起,并且右键Disk属性,可以看到多出了MPIO的选项卡。
至此,我们已经完成了构建虚拟化所需要的最重要的部分——存储的配置。过程中需要注意的细节非常多,但许多问题几乎可以通过Google解决。这里只描述了大体过程和方向,基本上类似的不同型号的存储的配置应该也差不太多。下面我们将继续搭建虚拟化的基础设施,安装相关虚拟化的软件,实现存储虚拟化,网络虚拟化和计算虚拟化。