0x01 前言

vmware esxi集群支持热迁移与HA,在没有共享存储的情况下的热迁移会产生大量IO且对网络产生极大压力,因为数据需要从一台服务器中的存储转移到另一台服务器中,如果服务器使用机械硬盘,还会影响其他虚拟机,导致IO延迟极具增加。另外,在没有共享存储的情况下,当遇到计算节点突然宕机的情况,HA将无法保护宕机节点上的虚拟机。

所以有一个或多个共享存储对esxi集群来说是必不可少的,这个共享存储可以是各种物理SAN甚至vSAN,该选用何种共享存储,则需要根据实际业务继续求进行选择。比如我当前遇到的情况:对计算资源要求较高,大部分服务都是以集群模式运行且IO要求不高的,则选用入门级的硬盘柜,在必要时扩容简单,必要时还可以增购高级功能包以启用SSD缓存层。

0x02 Dell MD3200i

这个存储是Dell很久以前出品的,直至今天,性能依旧强悍,此前我也有一台,具体请留意以下文章:

上面链接的型号是MD3200,属于直连式存储,需要使用SAS线直连HBA卡。而今天这篇文章所写的是MD3200i,是通过iSCSI与esxi互联。设备正面如下:

正面和其他型号无异,后面也一样,只有左右两个PSU以及中间的控制器:

MD3200i与MD3200的控制器有所不同,主要是MD3200i有4个GE电口,而MD3200则是2个SAS接口。

检查完外观后,可以看需要检查控制器内部,主要检查缓存容量与电池,如果买二手设备则需要却惹电池的出厂日期以及是否有鼓包,如果年代久远则建议更换,如果有鼓包则一定要更换。

在继续之前需要买以下线缆:

  • PS/2转串口线
  • 串口转USB线

购买的时候注意串口线的公母口,不要买成同样是公或同样是母口。将PS/2接口插入控制器最右侧的PS/2孔即可,随后打开putty或其他支持串口通讯的软件并配置以下参数:

  • speed:115200
  • data bits:8
  • stop bits:1

0x02.1 重置lockdown模式

可以先接上串口线与PSU,确认联通后再打开PSU上的电源开关即可,如果一切正常,则可以看到串口线所连接的控制器开始自检。因为是二手设备,通电后发现两个控制器存在配置且配置不一样,导致两个控制器都处于lockdown模式,此时需要手动reset。

右击putty的标题栏并选择发送break信号,如果使用笔记本或有Fn键的键盘,可以按以下组合键:

  • Ctrl+Fn+B

然后按2次Esc键并输入以下用户信息,注意区分大小写:

  • 用户名:shellUsr
  • 密码:wy3oo&w4

成功后即可看到以下界面:

输入以下命令并会车,随后控制器会自动重启:

  • lemClearLockdown

另一个控制器也需要检查是否处于lockdown模式,在必要的时候重复上面操作即可。如果一切正常,结果如下:

0x02.2 配置OOB IP

用同样的方法按下break,并在出现提示后按下大写字母S,输入以下默认密码以进入services模式:

  • supportDell

这部分配置比较简单,只需要配置IP地址、电子掩码以及网关即可。完成后选择1即可检查配置信息:

最后通过ping确认是否能联通,另一个控制器也需要同样的操作。

0x02.3 Dell MDSDM

MDSDM是一个管理MD系列存储的软件,软件包可以从以下页面中下载:

完成安装后即可运行并添加存储,添加时建议将两个控制器都加入以提高可用性:

添加后双击存储阵列即可打开该阵列的配置界面:

首先确认所有组件都处于正常的状态:

新电池可能会报异常,请耐心等待它完成一个充放电周期,这预计需要3天~1周的时间,如果此后依旧告警,则需要更换电池。

0x02.4 建立磁盘组并授权

因为我只有一台MD3200i与12块1.2T SAS的硬盘,所以我的规划是建立1个磁盘组,然后在该磁盘组上组建1个虚拟磁盘并配置为Raid6+1热备,总可用容量为11T。

首先来到存储和备份服务标签,右击磁盘组并按提示组建即可。完成后即可在该磁盘组下创建虚拟磁盘,最终结果如下:

完成磁盘组的创建后会自动开始初始化,磁盘的大小,初始化所需要的时间也各不相同,我这12块1.2T 1.5k RPM的机械硬盘一共使用7小时进行初始化。

在初始化的同时,可以来到主机映射标签配置主机组及添加服务器:

先添加主机组,该主机组会占用整个虚拟磁盘,然后在该主机组下添加主机即可。添加主机之后还需要添加lun映射,而主机端口标识符我们稍后回来添加。

0x02.5 配置iSCSI端口

最后来到硬件标签,单击选中控制器并右击,进入iSCSI端口配置窗口:

这一步也较为简单,但需要提前完成8个端口的IP分配再注意配置即可:

 

0x03 vmware

0x03.1 网络配置

vmware这一侧的网络架构如下:

esxi vDS配置如下:

服务器上有4个千兆口,其中一个配置为esxi的mgmt口,其余三个与交换机互联并配置链路聚合并配置为trunk模式,OOB、esxi mgmt、iSCSI以及业务流量分别用vlan相互隔离。

注意在0x02.5中配置的iSCSI端口IP时填写vlan ID:

而相关的DPG需要注意配置vlan ID以及选择正确的上行链路:

完成vSW与DPG的配置后,来到主机的vmkernel适配器配置界面添加一个适配器,在选择DPG的时候注意选择iSCSI的DPG。另因该DPG的上联口有3G带宽,还可以打开vmotion。同时因为vlan 901主要用于iSCSI,如果不想在交换机上配置vlan interface,可以不填写网关。最终结果如下:

交换机一侧是这样的,这里展示web GUI界面:

交换机的web GUI在日常可用于巡检,但配置还是得使用CLI,在实际使用中发现web GUI有一些功能会出现异常。而交换机的配置在此不做讲解,将另行撰写文章说明。

上图中的G0/0/1 to G0/0/4和G1/0/1 to G1/0/4的对端为MD3200i两个控制器的8个网口;而其他的eth-trunk分别对应各个esxi节点;5、7、9。。。这些端口则是esxi mgmt;最后的两对光口为堆叠口。

其中一个eth-trunk信息如下:

[storage switch00]dis int Eth-Trunk 1
Eth-Trunk1 current state : UP
Line protocol current state : UP
Description:to-Storage_iSCSI_n1c1
Switch Port, Link-type : trunk(configured),
PVID :    1, Hash arithmetic : According to SIP-XOR-DIP,Maximal BW: 3G, Current BW: 2G, The Maximum Frame Length is 9216
IP Sending Frames' Format is PKTFMT_ETHNT_2, Hardware address is 4846-fb8e-b982
Current system time: 2020-11-22 18:25:29+08:00
Last 300 seconds input rate 29007264 bits/sec, 7431 packets/sec
Last 300 seconds output rate 25428968 bits/sec, 8144 packets/sec
Input:  13802642651 packets, 12330214804913 bytes
  Unicast:                13801629825,  Multicast:                      150774
  Broadcast:                   862051,  Jumbo:                               0
  Discard:                          0,  Pause:                               0
  Frames:                           0

  Total Error:                      1
  CRC:                              0,  Giants:                              0
  Jabbers:                          0,  Fragments:                           0
  Runts:                            0,  DropEvents:                          0
  Alignments:                       0,  Symbols:                             1
  Ignoreds:                         0

Output:  14177375994 packets, 10030350956922 bytes
  Unicast:                14168376489,  Multicast:                     2623431
  Broadcast:                  6376074,  Jumbo:                               0
  Discard:                     121320,  Pause:                               0

  Total Error:                      0
  Collisions:                       0,  ExcessiveCollisions:                 0
  Late Collisions:                  0,  Deferreds:                           0
  Buffers Purged:                   0

    Input bandwidth utilization  : 1.45%
    Output bandwidth utilization : 1.27%
-----------------------------------------------------
PortName                      Status      Weight
-----------------------------------------------------
GigabitEthernet0/0/6          UP          1
GigabitEthernet1/0/5          UP          1
GigabitEthernet1/0/6          DOWN        1
-----------------------------------------------------
The Number of Ports in Trunk : 3
The Number of UP Ports in Trunk : 2

交换机堆叠口的信息如下:

[storage switch00]dis stack channel
!     : Port have received packets with CRC error.
L-Port: Logic stack port
P-Port: Physical port
Slot  L-Port  P-Port        Speed  State  ||  P-Port        Speed  State  L-Port  Slot
---------------------------------------------------------------------------------------
0     0/1     GE0/0/49      2.5G   UP         GE1/0/51      2.5G   UP     1/2     1
0     0/1     GE0/0/50      2.5G   UP         GE1/0/52      2.5G   UP     1/2     1
---------------------------------------------------------------------------------------

0x03.2 添加iSCSI

首先来到存储适配器的配置界面并添加一个软件适配器:

稍等几秒后单击新增的iSCSI适配器,单击动态发现标签并添加两个控制器中任意一个端口的IP:

紧接着单击上方的重新扫描存储,稍等片刻后即可从静态发现标签中找到自动发现的其他端口IP以及对应的标识符:

目前还看不到MD3200i上的虚拟磁盘,因为我们还没有在存储控制器里添加esxi iSCSI适配器的标识符。再次回到Dell MDSDM,右击主机并单击管理主机端口标识符,然后单击添加:

选择通过已知的无关联端口标识符进行添加并选择对应的标识符,然后填写用户标签,用户标签主要用于区分识别该标识符所对应的服务器,可自定义。而标识符则可以从esxi iSCSI适配器信息中找到。

完成添加后再回到esxi刷新存储,紧接着通过新建存储的选项创建数据存储即可。需要注意的是:新建存储的操作只需要在初次添加的时候进行,同一个esxi集群下的其他节点完成标识符相关的配置并刷新存储后稍等片刻即可看到存储已经自动挂载到节点中。

如果挂载失败、者一直挂载不成功甚至无法发现所有iSCSI端口,则需要检查网络配置是否有异常。

如果一切正常,可以从路径标签中查看当前使用的控制器:

0x04 其他

如果购买的是二手设备,务必要测试一周再使用,尤其是双控制器的情况下,需要测试长时间读写以便确认缓存功能正常。

二手设备的缓存及电池容器出问题,一旦缓存有故障会导致控制器挂起并进入lockdown模式。如果打开缓存镜像功能,当缓存不同步时还会发生两个控制器同时挂起的情况,极有可能因IO异常导致数据丢失的问题。如果通过监控程序发现控制器的OOB端口无法访问,且发现控制器的指示灯如下图所示,基本可以确认控制器已经处于lockdown模式:

因为esxi主机与MD3200i到交换机的链路都是冗余的,所以断开一两根网线也不影响使用,但不能完全断开。

注意不能直接拔出控制器,必须通过MDSDM将控制器设为服务模式而后通过准备移除功能确认是否可以移除:

0x05 结语

使用起来一切正常,如果可以,建议购买高级功能包以启用SSD缓存层,对高IO的使用场景有极大好处。