本文署名作者:杨溢,戴尔科技集团大中华区存储产品市场部PowerStore 资深产品市场经理
借助原生双活城域卷(Metro Volume)支持,PowerStoreOS 3.0新增一个功能,有助于防止生产因VMware vSphere Metro Storage Cluster (vMSC) 环境的故障而中断。城域卷功能在PowerStore上可免费使用,可用于保护VMFS datastores。
vMSC配置是一个延伸集群架构,ESXi主机可在城域距离[100公里 (取决于链路质量)] 内的两个不同的站点,同时访问一个同步复制的存储资源。PowerStore 城域卷功能可在两个参与的PowerStore集群配置上,提供并发的完全双活的主机IO。
虽然这会增加额外的延迟,但PowerStore城域卷可确保在主机收到I/O写入的确认之前,所有主机I/O都在城域卷的两个镜像卷上提交。为应对灾难事件,把生产受到的影响降到最低,甚至是不受影响,PowerStore内置了一种机制,可保护数据在发生故障或灾难时不会出现“脑裂”(split-brain)现象。当数据可在两个PowerStore集群上的城域卷镜像之间进行复制时,PowerStore被设计为允许在城域卷两边只运行双活的工作负载。
从拓扑结构的角度看,PowerStore支持两种不同的配置方案。一种是非统一配置,主机只能访问本地的PowerStore系统:
还有一种是统一 配置,主机可以同时访问本地和远程的PowerStore。
尽管它们看起来很相似,但不同拓扑结构的优势在于细节的处理。
非统一主机配置降低了复杂性,因其只需较少的配置,且只提供对两个站点之间链路利用率最低的卷的本地访问。然而,在本地PowerStore阵列出现故障的情况下,或者在链接故障期间,本地主机可能无法访问城域卷。在这种情况下,VMware HA需要使用对面站点上幸存的主机来重启受影响的datastore上的任意虚机。每个站点都应该有足够的主机资源,以便在对等站点不可用时运行最关键的虚机。
在统一主机配置中,主机与远程PowerStore集群有额外的链接,在故障情况下可以使用该链接。如果由于故障或链接中断,在本地PowerStore集群上无法访问城域卷时,主机就可以利用交叉链接来访问远程站点上的卷。在这种情况下,虚机可在故障中幸存下来,因为主机可把工作路径切换到远程系统上。在正常操作下,主机I/O应保持在本地站点内,以避免在站点之间的链路上为工作负载使用不必要的带宽,并尽量减少延迟。
现在快速展示一个例子,我们假设本地理论延迟为0.5毫秒,两个站点之间的理论延迟为2毫秒。
1. 主机使用指向本地阵列的链接作为写入城域卷的主要路径。I/O的理论延迟值如下:
a. 将工作负载从主机写入到本地存储5毫秒
b.将工作负载复制到远程存储2毫秒。工作负载使用站点之间的链接。
c.在本地存储上接收来自远程存储的提交2毫秒
d.提交到主机5毫秒
总的来说,我们会看到I/O的延迟为5毫秒,且工作负载仅通过站点之间的链接发送一次以进行复制(A-B)。
2.当主机使用到远程阵列的链接作为主要路径时,我们会看到以下情况:
a.发送工作负载至远程存储2毫秒。工作负载使用站点之间的链接。
b.将工作负载复制到一个对等点2毫秒。工作负载使用站点之间的链接。
c.从对等阵列提交到远程存储2毫秒
d.提交到主机2毫秒
总的来说,我们会看到同样的I/O的理论延迟为8毫秒,因为工作负载和提交总是利用站点之间的链接:一次是当主机将数据写入远程阵列(A到B)时,另一次是当写入数据被复制到对等存储(B-A)以及所需的提交时。
为了确保选择最佳路径,PowerStore使用异步逻辑单元访问(ALUA)协议提供最佳路径选择信息。为获得正确的ALUA状态,必须使用它们与每个PowerStore集群的本地或远程关系注册统一主机。在PowerStore Manager中注册主机时有四个选项:
a.仅限本地——用于非统一城域卷和仅服务于标准卷的主机。
b.主机与PowerStore系统位于同一地点——表示主机是PowerStore的本地主机(低延迟),应该获得ALUA的主动/优化路径。
c.主机与远程PowerStore系统位于同一地点——表示该主机是远程主机(高延迟),主机应该获得ALUA主动/非优化路径。
d.主机与PowerStore本地及远程系统均位于同一地点——表示所有主机和PowerStore集群位于相同位置,具有相同的延迟。
当主机配置了统一城域卷的城域连接选项时,PowerStore会为非城域卷的标准卷提供默认的ALUA路径信息。
借助本机多路径(NMP)的”轮询调度”(RR)默认路径选择策略(PSP),ESXi主机使用所提供的ALUA路径信息来确定连接到卷的最佳工作路径。当有多个主动/优化路径可用时,ESXi PSP 通过轮询调度(round robin)测算卷的延迟,以选择最佳工作路径。当前的工作路径在vCenter中显示为 “主动(I/O)”状态,而其他路径只显示为 “主动”状态。下图显示了城域卷配置完成后,统一主机配置中的ESXi主机的路径状态。
在PowerStore Manager中设置好主机后就可以开始配置城域卷。这在单个PowerStore集群上只需几个步骤即可完成:
1.与对等的PowerStore建立一个远程系统关系,请选择保护>添加远程系统。
2.使用添加卷向导来创建和映射标准卷。
3.在卷页面,单击六次即可配置城域卷。
a.选择新的卷。
b.点击保护。
c.配置城域卷
d.点击远程系统下拉菜单
e.选择一个现有的远程系统(或者与另一个PowerStore集群建立一个新的远程系统关系)。
f.点击配置按钮,开始配置。
4.在对等的PowerStore集群上,将新的城域卷映射到主机上。
5.使用新的城域卷来创建一个VMFS datastore。
除了使用PowerStore Manager以外,还可以使用PowerStore REST API或PowerStore CLI,只需几个步骤即可设置城域卷。在这篇博客中,我想向大家展示在PowerStore CLI会话(pstcli -d <PowerStore> -session)中在PowerStore上设置城域卷的必要步骤,以便在配置好的一对PowerStore系统上(如上图所示)进行统一的主机连接:
1.在PowerStore Manager PowerStore-A上
a.创建远程系统关系:
x509_certificate exchange -service Replication_HTTP -address <IP-Address PowerStore-B> -port 443 -username admin -password <YourSecretPassword>
remote_system create -management_address <IP-Address PowerStore-B> -management_port 443 -remote_username admin -remote_password <YourSecretPassword> -type PowerStore -data_network_latency Low
b.注册ESXi主机用于统一主机连接:
host create -name esx-a.lab -os_type ESXi -initiators -port_name iqn.1998-01.com.vmware:esx-a:<…>:65 -port_type iSCSI -host_connectivity Metro_Optimize_Localhost create -name esx-b.lab -os_type ESXi -initiators -port_name iqn.1998-01.com.vmware:esx-b:<…>:65 -port_type iSCSI -host_connectivity Metro_Optimize_Remote
c. 准备和映射标准卷:
volume create -name MetroVolume-Uniform -size 1T
volume -name MetroVolume-Uniform -attach esx-a.lab
volume -name MetroVolume-Uniform -attach esx-b.lab
d.将卷配置为一个城域卷:
volume -name MetroVolume-Uniform configure_metro -remote_system_name PowerStore-B
2.在PowerStore Manager PowerStore-B上
a.注册ESXi主机用于统一主机连接:
host create -name esx-a.lab -os_type ESXi -initiators -port_name iqn.1998-01.com.vmware:esx-a:<…>:65 -port_type iSCSI -host_connectivity Metro_Optimize_Remotehost create -name esx-b.lab -os_type ESXi -initiators -port_name iqn.1998-01.com.vmware:esx-b:<…>:65 -port_type iSCSI -host_connectivity Metro_Optimize_Local
b.将卷映射到ESXi主机上:
volume -name MetroVolume-Uniform -attach esx-a.lab
volume -name MetroVolume-Uniform -attach esx-b.lab
c.监测城域卷(可选):
replication_session show -query type=Metro_Active_Active -select state,progress_percentage,data_transfer_state
3.在vCenter中
4.重新扫描SCSI总线。
5.用新的城域卷配置VMFS datastore。