VMware vSphere在使用FT,vMotion,HA的时候需要用到外置的存储,有些简易版的也能用,比如Openfiler的免费产品,但是实际使用上还是专业产品比较强,比如Dell的MD3200i,MD3200i已经不是很好的产品了,目前面临淘汰的边缘了。


MD3200i有两个控制器进行冗余,每个控制器上有4个千兆数据网络接口,一个用于控制的网络接口,一个命令行的console接口,一个扩展硬盘机的接口。就是数据网卡接口太多了,就比较麻烦。新型的 EqualLogic PS4100系列每个控制器上有两个数据接口。


VMware vSphere接续MD3200i当然使用iSCSI协议。

VMware vSphere的安装这里就不提了。本例用的是5.5版本。


先说MD3200i

新机器默认控制网卡IP已经配置了,上面是192.168.128.101,下面是192.168.128.102,在自己PC里安装随机光盘带的控制软件,也可以去dell网站下最新的Modular Disk Storage Manager Client。把自己PC的IP变成可以和其通信,打开控制软件,编辑-》添加存储阵列,使用带外管理,在RAID控制模块下填入默认的控制卡IP地址,添加就可以找到。在找到的阵列,右键点击,管理存储这列。

出现新的管理窗口,在右面的设置里,选择配置iSCSI主机端口。

VMware vSphere5.5连接MD3200i详解(一)_第1张图片

配置8个网卡IP地址,下面的启用ICMP响应要选上,可以让VMware探测到存储的状态。

这里配置:

控制0端口0 192.168.100.10/26

控制0端口1 192.168.100.70/26

控制0端口2 192.168.100.130/26

控制0端口3 192.168.100.200/26

控制1端口0 192.168.100.11/26

控制1端口1 192.168.100.71/26

控制1端口2 192.168.100.131/26

控制1端口3 192.168.100.201/26

均无网关,本来这个通信就要速度,如果过网关了那还有速度吗!不要去配高级IPv4设置,里面除了vlan就是ip优先级这类无用的东西,都是会影响速度的东西,怎么可能在网络存储里还跑ip优先级啊,你以为是互联网啊。在高级端口设置里,TCP监听端口就不要变了,巨帧是否开启就需要环境是否允许了,需要VMware的服务器是否能开启巨型帧,交换机支持巨型帧。所谓巨型帧,我们一般网卡默认接收的帧大小是MTU1500,巨型帧就是大于1500,一般如果用就用到最大9000

这些IP的配置和VMware的服务器,交换机有很大关系,是根据自己的环境需要斟酌。

环境里有3台VMware机,两台只有2个网卡,完全并入VMware分布式交换机里(vSphere Distributed Switch),没有独立的网卡和存储直接相连,一台有4网卡,2网卡并入VMware分布式交换机,2个网卡独立连接存储。所以构思一个控制卡上的4个接口,2个对应只有2个网卡的服务器,2个对应有独立网卡的服务器,有独立网卡的服务器对已外部存储负荷可以重一些。


这个MD3200i里只搞了4个硬盘,所以磁盘池无法用(记得要8个以上),只能建立磁盘组。

在MD3200i阵列管理窗口,选中存储和备份服务选项,右击未配置的总容量,点创建磁盘组,对磁盘组命名,选择使用哪个物理磁盘,这些磁盘使用RAID的0,1,5的那个级别。我把4个物理硬盘都做成RAID5了。合计容量是1.6TB,这个形成的逻辑磁盘组是不能提供服务的。对外界提供服务的是虚拟磁盘,右击可用容量,创建虚拟磁盘。

VMware vSphere5.5连接MD3200i详解(一)_第2张图片

总容量是1.6TB,那么建立两个虚拟磁盘C0和C1,每个800GB,分别绑定两个控制器,可用实现控制器的分散流量。映射到主机,稍后在做。虚拟磁盘的I/O特性,选自定义,启用动态告诉缓存预读,分段大小,选用最高的512K,为什么选最大,因为是针对VMware服务器,对应的文件系统是VMFS5.60,它的块大小是1MB,如果能有1M,选1M也可以。如果直接提供给windows做NTFS磁盘,那就需要小一些。默认NTFS格式化只有4K,好在iSCSI的盘都有缓存支持。

建成两个虚拟磁盘后,右击该盘,更改-》所有权-》插槽,一个选0槽位,一个选1槽位。

然后查看细节,可以看到,一个是0模块,一个是1模块

首选所有者:以下插槽中的 RAID 控制器模块 0
当前所有者:以下插槽中的 RAID 控制器模块 0

读取高速缓存:已启用
写入高速缓存:已启用

无电池写入,是否启用要根据自己是否有UPS电源决定。有的话可以启用。

高速缓存直接影响读写效率,一定要开启。

阵列管理窗口点击主机映射选项,右击默认组选中定义主机组,创建一个名为VMWARE主机组,然后建立和虚拟磁盘的映射关系,把刚才做的两个虚拟磁盘C0和C1映射到VMWARE主机组。在未定义映射里找到做好的两个磁盘,右击,添加LUN映射。

VMware vSphere5.5连接MD3200i详解(一)_第3张图片

逻辑单元编号不要修改,默认就好,主机组或主机选刚才做好的主机组VMWARE,点击下面的虚拟磁盘,添加。点击左面的主机组VMWARE,右面就能显示出关联的虚拟磁盘了,这代表了这个主机组里的所有主机都可以访问这些虚拟磁盘,如果关联了主机而不是主机组,那么就只能单一的一台主机可以访问,这显然不符合VMware的各种功能的需要。

然后需要添加主机,右击主机组VMWARE,定义,主机。

VMware vSphere5.5连接MD3200i详解(一)_第4张图片

这里要暂停一下,从MD3200i上转到VMware上了。其实继续也可以配置,不过比较麻烦。在VMware里的存储适配器-》iSCSI Software Adapter,拷贝WWN值就可以,通过新建主机端口标识符进行添加。用户标签就是为了识别方便,起一个自己容易识别的就好。

VMware vSphere5.5连接MD3200i详解(一)_第5张图片


打开VMware的管理界面VMware vSphere Client,找到主机,配置,这里定义的ESXi3号机。

点击网络适配器,确认有4个网卡存在。

存在的实际情况是有两个PCI卡,Broadcom和Intel,一个是板载,一个是追加的。

因为牵扯到主机进入待机模式以及恢复的情况,其实原理就是利用IPMI/iLO启动服务器。

服务器的网络开机是靠板载的网卡去感知IPMI开机指令的,两个PCI卡,打算在PCI上冗余使用,原本服务器的BIOS配置是在板载的两个网卡上进行冗余,无论哪个接受到都可以开机,既然打算在PCI卡上冗余,板载为vmnic0,vmnic1,追加为vmnic2,vmnic3,vmnic0和vmnic2进入分布式交换机,vmnic1和vmnic3进入和存储连接的环境,BMC的IP冗余是在vmnic0和vmnic1之间任意,当BMC的IP到vmnic1时候,无法开机,因为这时候vmnic1驳接的物理交换机的环境是接受不到IPMI开机指令,所以在BIOS里面强制设定,开机的活动网卡为vmnic0,不进行冗余。


点击网络,进入标准交换机。

添加网络,类型为VMkernel,关联vmnic1,网络标签为MD3200iS0,目的是接续到MD3200i控制卡0

添加网络,类型为VMkernel,关联vmnic3,网络标签为MD3200iS1,目的是接续到MD3200i控制卡1

建成后打开属性,可以看到vSwitch,高级属性里面如果需要用巨型帧那么就把MTU改成9000

VMware vSphere5.5连接MD3200i详解(一)_第6张图片编辑标签MD3200iS0

VMware vSphere5.5连接MD3200i详解(一)_第7张图片

不配置vlan,vMotion不选,FT也不要选,iSCSI默认就强制绑定了。MTU同上。

vMotion和FT选的话,就造成迁移很可能失败。原因我想了很久才清晰,太复杂,这里就不说了。

然后配置IP为192.168.100.31/26,其它默认就好。

然后重复以上做业,配置IP为192.168.100.73/26


下面必须描述一下物理线路的驳接情况了。

两台思科的catalyst3560做存储交换机,之间用Port-channel连接。

建立4个专门做存储的vlan

vlan 200 //SW3560G-A

 name SAN0
 mtu 9000
!
vlan 201 //SW3560G-B

 name SAN1
 mtu 9000
!
vlan 202 //SW3560G-A

 name SAN2
 mtu 9000
!
vlan 203 //SW3560G-B

 name SAN3
 mtu 9000

!

interface GigabitEthernet0/10
 description MD3200iC0S0 //SW3560G-B MD3200iC0S1

 switchport access vlan 200 //SW3560G-B vlan 201

 switchport mode access
 storm-control broadcast level 10.00
 storm-control multicast level 5.00
 storm-control action shutdown
 spanning-tree portfast

!

interface GigabitEthernet0/18
 description MD3200iC1S0 //SW3560G-B MD3200iC1S1

 switchport access vlan 200 //SW3560G-B vlan 201

 switchport mode access
 storm-control broadcast level 10.00
 storm-control multicast level 5.00
 storm-control action shutdown
 spanning-tree portfast
!

interface GigabitEthernet0/20
 description ESXi03vmnic1 //另外一台交换机ESXi03vmnic3

 switchport access vlan 200 //另外一台交换机vlan 201

 switchport mode access
 storm-control broadcast level 10.00
 storm-control multicast level 5.00
 storm-control action shutdown
 spanning-tree portfast

!
interface GigabitEthernet0/16
 description ESXi03vmnic0 //另外一台交换机ESXi03vmnic2

 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 5-12,100,101
 switchport mode trunk
 storm-control broadcast level 10.00
 storm-control multicast level 5.00
 storm-control action shutdown
 spanning-tree portfast trunk
!

从上面的配置可以看出,MD3200iC0S0和MD3200iC0S1在同一个网段vlan200,接ESXi03vmnic1,MD3200iC1S0和MD3200iC1S1在同一个网段vlan201,接ESXi03vmnic3

控制0端口0 192.168.100.10/26 vlan200

控制1端口0 192.168.100.11/26 vlan200

ESXi03vmnic1 192.168.100.31/26 vlan200

控制0端口1 192.168.100.70/26 vlan201

控制1端口1 192.168.100.71/26 vlan201

ESXi03vmnic3 192.168.100.73/26 vlan201

这是整个文章的核心,esxi连接md3200i中文的文章有一些,但是没有说出如何冗余、如何负载平衡、如何增加带宽,把几个网卡接口的容量合并使用。起决定作用的是VMware的负载自动平衡策略,md3200i只是接受体。md3200i能决定的是哪块虚拟磁盘挂载在那个控制器上,进行两个控制器流量的负载手动平衡。

在VMware主页的知识库里有这样的说明,负载平衡使用的是Round-Robin,轮询法,在VMware管理界面直接就写的循环。该法进行轮询通信的时候,不能在同一网段进行。所以ESXi03vmnic1和ESXi03vmnic3必须分别属于两个网段。当通信包产生的时候,比如1,2,3,4包,1、3包顺序走ESXi03vmnic1,2、4并行顺序走ESXi03vmnic3,充分发挥网卡带宽,实际输出可达单接口的近2倍。当然也需要MD3200i可以接受这样的轮询法,不然也是死。这也是为什么要使用分属两个PCI卡的网卡进行轮询通信,可以极大调动两个PCI卡的效率,因为存储的流量一般较大,而对外服务的流量一般较小,如果不分离使用,造成对外服务的PCI卡流量很小,连接存储的PCI卡拥塞,不效率。