五、搭建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解决。这里只描述了大体过程和方向,基本上类似的不同型号的存储的配置应该也差不太多。下面我们将继续搭建虚拟化的基础设施,安装相关虚拟化的软件,实现存储虚拟化,网络虚拟化和计算虚拟化。

Windows Server 2012 虚拟化实战:存储(二)的更多相关文章

  1. Windows Server 2012 虚拟化实战:网络(二)

    关于Windows Server的虚拟化网络,前文描述了在操作系统层面上的出现的配置变化.其中的一些配置通过Windows Server提供的小工具即可实现,如网卡组的配置,而有些需要安装Window ...

  2. Windows Server 2012 虚拟化实战:存储(一)

    在计算机世界我们随处可以见的一种方法,那就是抽象.1946年冯诺依曼提出了计算机的基本结构包含:计算器,存储器和I/O设备.这可能是对计算机这一新生事物最重要的一次抽象,它直接影响了今后几十年计算机软 ...

  3. Windows Server 2012 虚拟化实战:网络(一)

    虚拟化对于计算的抽象,大家可能相对熟悉,也许都有在单机使用诸如Virtual PC或者Virtual Box的经验.使用的这些虚拟化软件的第一印象就是我们的CPU可以同时运行多套不同的操作系统,并且其 ...

  4. Windows Server 2012 虚拟化实战:域

    在Windows Server系统中,一些服务必需要构建在域的环境中,这不仅是为了统一验证和资源共享,同时也是为了网络安全.为构建虚拟化测试,我们需要先搭建域环境.之前先来大概了解一下域. 在使用工作 ...

  5. Windows Server 2012 虚拟化实战:SCVMM的安装和部署

    本篇大概介绍一下在Windows Server 2012 R2上安装和部署SCVMM的过程及其注意事项.下图是我们数据中心SCVMM的基本架构,其中 SCVMM Database 是用于存储了所有配置 ...

  6. 在Windows Server 2012 R2中搭建SQL Server 2012故障转移集群

    需要说明的是我们搭建的SQL Server故障转移集群(SQL Server Failover Cluster)是可用性集群,而不是负载均衡集群,其目的是为了保证服务的连续性和可用性,而不是为了提高服 ...

  7. VMware workstation 9.0中安装Windows server 2012 和 Hyper-v

    一.准备工作 首先下载和安装和安装VMware workstation 9.0 下载Windows server 2012 iso镜像文件 二.安装Windows server 2012虚拟机 1.新 ...

  8. 基于windows server 2012 的微软桌面虚拟化实战教程

    http://abool.blog.51cto.com/8355508/1587489/ Windows Server2012 中的“远程桌面服务”服务器角色中就提供了允许用户连接到虚拟机.Remot ...

  9. Windows Server 2012 R2超级虚拟化之七 远程桌面服务的增强

    Windows Server 2012 R2超级虚拟化之七  远程桌面服务的增强 在Windows Server 2012提供的远程桌面服务角色,使用户能够连接到虚拟桌面. RemoteApp程序.基 ...

随机推荐

  1. MySQL中You can't specify target table for update in FROM clause一场

    mysql中You can't specify target table <tbl> for update in FROM clause错误的意思是说,不能先select出同一表中的某些值 ...

  2. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(13)-系统日志和异常的处理③

    系列目录 上一节我们讲了如何捕获异常和记录日志,这一节我们讲,没有捕获的或者忘记捕获的异常包括404错误等,我们统一处理这个异常. 这一讲是利用 Application_Error 捕获所有异常,全局 ...

  3. webapi+Task并行请求不同接口实例

    标题的名称定义不知道是否准确,不过我想表达的意思就是使用Task特性来同时请求多个不同的接口,然后合并数据:我想这种场景的开发对于对接过其他公司接口的人不会陌生,本人也是列属于之内,更多的是使用最原始 ...

  4. PHP的学习--新特性

    最近做的项目使用了 php7,但感觉有很多新特性没有用起来.就想总结一下,一些可能会用到的新特性.之前使用的环境是 php5.4,所有也会有 php5.5 和 php5.6 的特性总结进来,这里只列出 ...

  5. spring源码分析之<context:component-scan/>vs<annotation-config/>

    1.<context:annotation-config/> xsd中说明: <xsd:element name="annotation-config"> ...

  6. CSS3中的动画效果记录

    今天要记录的是CSS3中的三种属性transform.transition以及animation,这三个属性大大提升了css处理动画的能力. 一.Transform 变形 CSS中transform ...

  7. jquery获取dropdownlist的value和text值

    1.jquery //获取value值 $("#ddlSubmodel").val(); //获取text值 $("#ddlSubmodel").find(&q ...

  8. win2008R2 下解决关于mysql odbc无法正常工作问题

    1.安装 mysql-connector-odbc-5.1.1-win32 下载 2.确保IIS中“启用32位应用程序”为True 3.连接字符串: mysql_connstr="Drive ...

  9. python 数据类型---布尔型& 字符串

    python数据类型-----布尔型 真或假=>1或0 >>> 1==True True >>> 0==False True python 数据类型----- ...

  10. c语言实现输入一组数自动从大到小排列

    #include <stdio.h>main(){    int x;    printf("请输入要排序数字个数:");    scanf("%d" ...