ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ESXi接入V3700 FC存储:从划分Zone到创建VMFS完整指南

ESXi接入V3700 FC存储:从划分Zone到创建VMFS完整指南 帮一个客户机房把新采购的IBM Storwize V3700接入到了现有的ESXi集群里。前后折腾了大半天从存储端划分卷、光纤交换机划Zone到ESXi主机侧认出LUN、建VMFS数据存储中间还踩了几个坑。今天把这条完整的“为ESXi Host添加v3700 FC存储”链路整理出来包括每一步的操作细节、参数规划以及排查思路给后面要接FC存储的兄弟们一个可以直接照着做的参考。先说清楚这里面的事儿是什么。ESXi Host就是跑VMware ESXi的物理服务器v3700是IBM Storwize V3700这款中端存储阵列FC指的是光纤通道协议整个任务就是让ESXi主机通过光纤通道网络把V3700上分出来的存储空间用起来形成虚拟机的数据存储。适用人群是虚拟化运维、数据中心管理员或者正在公司里做存储改造的朋友。整个过程不复杂但涉及存储端、交换机端、主机端三个环节任何一个地方断了主机就看不到盘这也是很多人卡住的原因。1. 项目背景与整体方案拆解1.1 为什么要给ESXi主机接FC存储大多数情况下ESXi主机的本地磁盘只是为了跑ESXi系统和少量临时文件真正放虚拟机数据的地方应该交给共享存储。共享存储带来的最直接好处是两个一是虚拟机可以跨物理机漂移也就是vMotion二是当某台ESXi主机宕机时集群里的其他主机能通过HA功能把虚拟机拉起来。之前客户的环境里虚拟机全放在各台主机本地磁盘上经常出现某台主机磁盘快要塞满、但其他主机还有大量剩余空间的情况想迁移虚拟机还得先折腾vMotion网络。这次加V3700 FC存储目的就是把所有虚拟机数据统一收拢到存储阵列上从根上解决空间利用率不均的问题。选择FC而不是iSCSI主要是考虑到业务场景对延迟和稳定性的要求。FC走的是专用的光纤通道网络相比跑在万兆以太网上的iSCSI延迟更低、丢包率更低适合数据库这类对IO敏感的应用。V3700本身也支持iSCSI但如果线上有大IO的虚拟机FC仍然是更稳妥的选择。1.2 FC存储的整体架构一套完整的FC存储接入链路从存储端到主机端依次是V3700存储阵列的FC端口、光纤交换机、服务器上的HBA卡最后是ESXi系统里的存储适配器。V3700这一类中端存储阵列控制器上会带若干个FC口每个FC口都有自己的WWPN类似于网卡的MAC地址服务器侧的HBA卡也有自己的WWPN只是通常叫WWN或Node WWN端口级叫Port WWPN。光纤交换机介于两者之间它不像以太网交换机那样靠“即插即用”就能通必须人为地把存储端口和主机端口放到同一个Zone里两个端口才允许互相通信。FC环境里有一句老话“No Zoning, No Storage”说的就是这个道理很多人忘划Zone或者Zone里的端口加错主机端永远看不到LUN。V3700把物理磁盘先做成RAID阵列这个阵列在存储术语里叫Mdisk多个Mdisk组合成一个存储池再从存储池里切分出卷最后把卷映射给主机。主机看到这个卷就是一块未初始化的裸盘。ESXi在这块裸盘上创建VMFS文件系统就变成了数据存储。1.3 全流程操作清单接FC存储这件事最忌讳没有规划上来就直接操作。我习惯先列一份清单把整个流程走一遍再动手。在V3700上完成初始化创建Mdisk阵列创建存储池。创建需要的主机对象把ESXi服务器HBA卡的WWPN加进去。从存储池中划分卷映射给主机。在光纤交换机上创建Zone把存储控制器FC端口和主机HBA端口划到一起。在ESXi主机上重新扫描FC存储适配器确认能看到新的LUN。检查多路径状态设置合适的路径策略。创建VMFS数据存储开始使用。这份清单里的步骤如果全部完成从V3700到ESXi的链路就算正式打通了。下面每一步我都会拆开讲包括为什么这么做。2. 环境准备与存储端基础配置2.1 本次环境的硬件清单与规划我这次操作的环境是典型的小型生产环境硬件和网络规划如下大家在实施前可以参照这个表格先把自己环境里的信息填好。项目配置说明存储阵列IBM Storwize V3700双控制器每控制器2个FC端口管理IP 192.168.10.10光纤交换机Brocade G6108Gb/16Gb自适应按Zone划分服务器三台Dell R740每台配置双端口FC HBA卡QLogicESXi 7.0 Update 3卷规划VMFS_DATA_A 2TB、VMFS_DATA_B 3TB、VMFS_DATA_C 1TB全部映射给三台主机网段规划存储管理网段 192.168.10.0/24与业务网、vMotion网隔离这里要特别强调的是一定要先在表格里写清楚每个端口对应的物理位置。尤其是HBA卡的WWPN每台服务器有两个FC口如果不止一台服务器很容易把两个WWPN填反轻则发现不了LUN重则把存储映射给错误的主机。2.2 V3700存储端初始化与创建阵列拿到一台新的V3700第一次登录管理界面时系统会要求初始化。初始化的核心操作包括设置管理IP、创建管理员密码、确认系统时间和邮件告警。初始化向导里的“自动配置”选项我一般直接跳过因为它会按默认方式把所有可用磁盘做成一个大池和若干卷这种方式不适合生产环境还是手动配置更可控。登录V3700图形管理界面后在“存储 MDisk”菜单里开始创建阵列。V3700把不同RAID类型的阵列都称为MDisk常见的选择有RAID 10、RAID 5、RAID 6。如果磁盘数量在8块以下我会优先选择RAID 10性能和重建速度都相对可接受如果磁盘数量多要兼顾空间利用率RAID 5是常规选择但要注意单块盘重建期间的风险磁盘数量充足且对数据安全要求极高时RAID 6更合适。实际创建时选择几块同类型的磁盘比如8块1.2TB的10K SAS盘RAID类型选“RAID 10”阵列就建好了。阵列建成后还需要建存储池。在“存储 池”菜单里新建一个池把刚建好的MDisk添加进去存储池才算可用。V3700支持Easy Tier自动分层有条件可以把SSD盘加到另一个MDisk里再把两个MDisk都放进同一个池系统会自动把热数据放到SSD层这里就不展开说了。2.3 光纤交换机Zone规划与创建看完了存储端再回头看光纤交换机。Brocade交换机上Zone创建的规则我习惯是一个主机端口对应一组存储端口尽量避免把多个主机端口同时放进同一个Zone。原因很简单多个主机在同一个Zone里会自动发现对方一些存储系统会因此产生不必要的告警甚至在某些环境下会引起SCSI预留冲突。本次环境是双控制器每个控制器有2个FC端口。为了让多路径效果最佳我把每个HBA端口与两台控制器的存储端口分别建立Zone。举例来说服务器01的第一个HBA端口WWPN为“10:00:00:00:c9:xx:xx:01”存储控制器1的端口1A WWPN为“50:00:00:00:00:00:00:01”那Zone A就包含这两个端口同一块HBA再与控制器2的端口2A建立另一个Zone。这样即使一个控制器故障主机仍然可以通过另一个控制器访问存储。创建Zone的命令在Brocade交换机的SSH管理界面里执行cfgcreate ESX_Zone1, 10:00:00:00:c9:xx:xx:01; 50:00:00:00:00:00:00:01 cfgenable ESX_Zone1创建完Zone后用cmshow或switchshow检查Zone是否生效同时确认端口状态是“Online”。这一步看着简单实际排查LUN不可见问题时Zone配置占了一半以上的原因。2.4 收集HBA卡WWPN如果Zone配置是FC链路的第一道关卡那WWPN就是第二道。V3700把卷映射给主机靠的是识别主机的WWPNWWPN写错一个字符主机都认不到盘。在ESXi主机上可以通过命令行查看HBA卡的WWPNesxcli storage san fc list输出里能看到每个FC端口的Port WWPN和Node WWPN记录Port WWPN即可。比如vmhba2 Adapter: QLogic Corp. ISP2532-based 8Gb Fibre Channel Port WWPN: 10:00:00:00:c9:xx:xx:01 Node WWPN: 20:00:00:00:c9:xx:xx:01建议把每台主机的两个FC口的Port WWPN都收集好整理成一个文本后续在V3700上添加主机时直接复制粘贴减少手写错误。3. V3700存储侧主机定义与卷映射3.1 在V3700上定义主机到这一步存储阵列、存储池都已经准备好了接下来就是让V3700认识ESXi主机。在V3700界面中进入“主机”菜单新建一个主机。创建主机时有三个关键点需要注意。第一主机类型一定选“VMware ESXi”V3700会根据这个信息调整一些SCSI相关参数让它在ESXi下表现更稳定。第二把前面收集的所有HBA端口WWPN一次全部添加到这台主机里这样多路径才有基础。第三如果有多台ESXi主机需要访问同一批卷最好每台主机单独定义而不是把多个WWPN全部堆到一个主机对象里否则后续做迁移或者回收卷时会非常难管理。当时客户环境有三台ESXi主机我在V3700上创建了三台主机对象分别命名为ESX01、ESX02、ESX03每台主机各加入两个WWPN。3.2 创建卷并映射在V3700的“存储 卷”菜单中选择刚才创建的存储池右键新建卷。创建卷时需要填写卷名称和容量V3700支持精简配置、压缩等高级功能生产环境如果预算和性能允许可以考虑开启压缩但一般情况下我会选择“Generic”类型避免精简配置带来的容量回收复杂性和小概率的写性能损耗。卷创建完成后就要映射给主机。选中卷选择“映射”然后勾选要映射的主机对象。这里需要注意卷映射时可以一次性映射给多个主机这样几台ESXi都共用同一个卷后面建集群时需要这种共享卷。本次我把三个卷都同时映射给了三台主机这样三台主机都可以访问相同的数据存储。映射完成后在“映射”列表里能清晰看到每一块卷和主机之间的对应关系。我习惯把“卷名—用途—大小—映射主机”记录在文档里这能让后续排查和回收都轻松很多。3.3 多路径与ALUA机制V3700支持ALUA非对称逻辑单元访问这个机制在存储接入中非常关键。简单来说在双控制器架构下一个卷会有一个“优先”控制器负责处理IO另一个控制器作为备用或协同。ALUA让ESXi能够识别出哪个路径是Active的、哪个是Standby的从而正确做出多路径策略。在ESXi上如果存储支持ALUA系统会自动选择VMW_SATP_ALUA作为SATP规则路径策略默认可能为“最近使用”或“轮询”取决于ESXi版本。接V3700这类中端存储时我通常会把路径策略手动改为VMW_PSP_RR轮询让多条链路都能分担IO而不是只走其中一个控制器。3.4 用CLI完成同样的操作V3700的图形界面很直观但如果在批量部署或机房只有命令行环境时CLI也很重要。下面是一组常用的CLI命令操作效果和GUI完全一样# 创建存储池 mkarray -level raid10 -disk 0,1,2,3,4,5,6,7 -name MDisk_R10 # 创建卷 mkvdisk -pool Pool0 -size 2TB -name VMFS_DATA_A -unit tb # 创建主机 mkhost -name ESX01 -hbawwpn 10:00:00:00:c9:xx:xx:01 -hbawwpn 10:00:00:00:c9:xx:xx:02 -type vmware # 映射卷到主机 mapvdisk -host ESX01 -vdisk VMFS_DATA_ACLI的好处是可以通过脚本批量执行和记录减少手动点击出错的可能坏处是每条命令的参数太多容易看花眼所以生产环境我一般还是优先GUICLI常用于故障时的备选操作。4. ESXi主机侧接入数据存储实操4.1 重新扫描FC存储适配器存储端映射完了光纤交换机的Zone也划好并启用了接下来轮到ESXi这一侧发挥。这里有一个小知识点在FC环境里Zone的变更、存储卷的新增ESXi不会自动感知必须手动重新扫描存储适配器。在vSphere Client里点击目标主机进入“配置 存储适配器”找到FC适配器比如vmhba2、vmhba3右键选择“重新扫描存储适配器”。扫描时默认会同时扫描存储和FC设备注意弹窗里的两个选项一个是扫描SCSI控制器一个是扫描存储设备一般全选。如果你更喜欢命令行扫描的ESXi命令也很简单esxcli storage core adapter rescan --all扫描完成后在“配置 存储 设备”里就能看到新出现的磁盘设备设备名通常是naa.600507680...或者eui.xxx开头这是V3700这个卷的SCSI唯一标识。多路径状态下同一个卷会显示为一条设备记录下面挂多个路径。4.2 确认多路径与调整路径策略设备被发现后先别急着建数据存储最好先确认多路径是否正常。在vSphere Client的“存储设备”列表里双击新设备可以查看路径信息正常情况下一个设备下会有4条路径对应双控制器双端口。路径状态应该是Active或Standby如果只剩下一条Active路径说明Zone或者映射配置缺了一半需要回到前面的章节去排查。命令行检查多路径的方式esxcli storage nmp device list | grep -A 10 naa.600507680这个命令能看到设备的当前路径策略和所有路径状态。如果策略不是RR可以手动设置esxcli storage nmp psp roundrobin device set --devicenaa.600507680... --iops1其中--iops1表示每处理1个IO就切换一次路径适合中等负载的常规应用。如果虚拟机里跑的是高队列深度数据库测试可以改为--iops10或针对性测试避免频繁切换带来的主机端CPU开销。4.3 创建VMFS6数据存储多路径确认没问题后回到vSphere Client的“存储 数据存储”菜单点击“新建数据存储”。选择刚才那个naa.开头的磁盘文件系统版本选VMFS 6填写数据存储名称比如“V3700_DATA_A”确认分区大小后点击完成。VMFS 6相比VMFS 5单个数据存储最大支持扩大也使用了更小的子块更适配现在大容量虚拟磁盘的场景。如果主机是ESXi 6.5以上版本建议一律用VMFS 6。命令行创建也可以用下面的命令vmkfstools -C vmfs6 -S V3700_DATA_A /vmfs/devices/disks/naa.600507680...创建完成后V3700_DATA_A就会出现在“数据存储”列表里。这时候可以新建一台测试虚拟机或者使用vMotion把现有虚拟机迁移到这个新数据存储验证存储数据面是否正常。4.4 存储状态验证与性能快照数据存储建好只能代表链路通了但生产环境不能这么草率就上线。我会做三轮验证第一轮确认数据存储的容量显示和卷大小一致。比如V3700上分配了2TBESXi数据存储里应该显示约2TB可用如果有明显偏差有可能是精简配置卷实际空间或文件系统开销导致的需要核对。第二轮在数据存储上创建一台临时虚拟机安装系统或执行fio写入测试观察V3700界面里的IO延迟和吞吐。V3700能够展示每个卷的实时IOPS和响应时间如果延迟超过20ms以上就要分析存储池背书盘数量、FC链路带宽和HBA队列深度是否足够。第三轮重启一台ESXi主机确认重启后数据存储能自动重新挂载路径恢复为Active状态虚拟机可以正常启动。这一步常常被人忽略等到真正断电重启时才暴露问题。5. 常见问题与排查技巧实录5.1 主机扫描不到LUN从哪下手这是FC存储接入最常见的问题初期排查建议按照下面的顺序从下往上查逻辑清晰也不容易漏。检查项操作方式和判定标准存储端映射在V3700“映射”中确认卷已经映射给该主机且主机WWPN正确光纤交换机Zone用switchshow查看Zone内端口是否Onlinezoneshow检查Zone是否包含正确的WWPNHBA卡状态esxcli storage san fc list查看HBA端口是否OnlineLink是否有速率存储设备状态在vSphere Client存储适配器里查看是否有设备出现必要时清除存储资源再重新扫描实际项目中有两次都是因为V3700上主机定义时把WWPN粘贴错了导致映射后一直看不到LUN。后来我都是先复制WWPN到文本编辑器里用等宽字体数一遍字符再粘贴到存储端避免手误。5.2 路径不全或状态Degraded路径状态如果是Degraded多半意味着某个控制器或链路失效。先检查光纤交换机上对应端口是否在线再看V3700控制器端口是否有故障灯。如果链路全部正常那很可能是映射时主机对象只添加了一个控制器的路径比如忘记了给主机加第二个控制器的WWPN。V3700的卷映射以主机对象为单位只要主机对象里包含的所有WWPN对应的链路正常路径数就是完整的。ESXi命令行检查路径名esxcli storage core path list查看每个路径的OperationalStatus出现Dead或Down就说明该路径不可用要具体分析是交换机上哪个端口出了问题。5.3 重启后数据存储丢失或不可访问ESXi主机重启后某个数据存储挂不上大概率不是存储坏了而是ESXi没能重新连接上目标LUN。排查思路是先确认重启后HBA卡的驱动加载是否正常然后在存储适配器里重新扫描一次看设备是否重新出现。如果扫描后设备能看到但数据存储还是灰色不可访问可以在命令行里esxcli storage filesystem list看看数据存储对应的挂载路径是否存在。如果设备存在但VMFS卷无法识别考虑主机端是否有残留的路径状态可以尝试esxcli storage core device list确认设备状态必要时重启主机的storage stack但这在在线环境里慎用。5.4 性能与预期差距大存储性能不达标有几种常见的隐藏原因。一是多路径策略不是RRIO全部挤在一条链路上二是FC链路协商速率不匹配本来16Gb的HBA被协商成8Gb甚至4Gb三是存储池里物理磁盘数量太少RAID 5只有4块盘IOPS上限摆在那里四是ESXi主机的HBA队列深度设置太低在ESXi 7.0里可以通过esxcli storage core adapter list查看队列深度一般QLogic HBA默认队列深度可以调到1024具体以厂商驱动建议为准。调整HBA队列深度的命令示例esxcli storage core adapter set --adaptervmhba2 --queue-depth256调整完成后重新跑一轮fio测试观察V3700的吞吐和延迟数据确认瓶颈是否解除。6. 实操心得与后续扩容建议6.1 几次踩坑后的血泪经验这次给V3700接ESXi FC存储之后我发现有几个环节是最容易出问题的写出来给大家提个醒。第一规划阶段一定要把所有WWPN收集成表格并和物理位置对应。很多看不到LUN的问题根源不是操作复杂而是WWPN对不上。第二V3700创建主机时主机类型一定选“VMware ESXi”不要图省事选Generic。这一项直接影响到存储和ESXi之间的多路径协调选错可能出现无法进入ALUA模式的奇怪现象。第三生产环境中存储端配置完卷映射和Zone后在ESXi上扫描前最好先排查一遍Zone状态不要急着扫描。反复扫描会生成很多无用的SCSI设备记录如果设备数量特别多ESXi的存储设备列表会显得很乱。第四创建VMFS数据存储之前把新LUN的磁盘分区和对齐检查一遍。ESXi创建VMFS时默认会正确对齐但如果是手工用命令或其他系统处理过的磁盘则需要注意分区起始位置。6.2 后续容量扩容和集群使用建议V3700接入ESXi只是第一步后续扩容也是必考内容。当数据存储空间不够时可以方便的在线扩容。在V3700上先扩展对应卷的容量比如从2TB扩到3TB然后在vSphere Client中选择数据存储点击“增加容量”扩展VMFS卷整个过程虚拟机不需要停机。集群共享存储还有一个重要的点如果后续要启用vSphere HA或DRS需要确认V3700的卷映射给了集群内的所有ESXi主机否则故障转移时会因为部分主机访问不到数据存储而失败。本次的卷是映射给三台主机正好满足规则。最后再分享一个小技巧V3700支持导出配置和备份配置。完成存储接入后我会习惯性地在V3700上导出一份配置文件备份同时记录当前的所有卷映射关系。存储阵列一旦出现需要迁移或更换控制器的情况有这份记录能少走很多弯路。
返回列表