ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

DELL SC存储扩容:6Gb与12Gb扩展柜混插实战与避坑指南

DELL SC存储扩容:6Gb与12Gb扩展柜混插实战与避坑指南 1. 存储扩容这件事为什么DELL SC的扩展柜混插总让人心里没底DELL SCStorage Center系列存储在企业级SAN环境里摸爬滚打这么多年存量装机量相当大。很多机房里的SC4020、SC5020、SC7020甚至更早的SC8000系列跑了五六年之后容量告急几乎是必然的事。这时候最省钱的做法就是加扩展柜而不是整机替换。但问题来了你手头可能有一批6Gb SAS的旧扩展柜比如SC200、SC220、SC280同时供应商那边12Gb的SC400、SC420、SC460价格也下来了于是“混插”这个念头就冒出来了。我见过太多人在这件事上翻车。有人直接把12Gb柜接到6Gb链路上以为能跑有人把6Gb柜和12Gb柜串在同一条链路上结果部分盘位识别异常还有人扩容完之后性能不升反降排查了半个月才发现是扩展柜协商速率的问题。这些坑官方文档里不会写得那么直白只有真正在机房里蹲过、被报警灯折磨过的人才知道。这篇内容就是把我自己在DELL SC存储扩容中关于6Gb和12Gb扩展柜混插的经验整理出来。不管你是刚接手SC存储的运维新手还是正在规划扩容方案的老手我都会把链路协商、柜体兼容、盘位识别、性能影响这几个核心问题讲透。你看完之后至少能判断自己手里的SC控制器到底能不能带12Gb柜混插的时候该怎么接、怎么配、怎么验证以及哪些情况下干脆别混插。2. 先搞清楚DELL SC的扩展柜体系与SAS链路逻辑2.1 6Gb和12Gb扩展柜到底差在哪DELL SC的扩展柜按SAS代际分主要就是6Gb和12Gb两代。6Gb的代表型号是SC200、SC220、SC28012Gb的代表型号是SC400、SC420、SC460。这里的“6Gb”和“12Gb”指的是SAS链路的单通道速率不是硬盘本身的速率。很多人会混淆这一点以为6Gb柜里装的盘就是6Gb的12Gb柜里装的盘就是12Gb的其实不完全对。扩展柜的本质是一个带背板和SAS扩展器Expander的盘位容器。真正决定链路速率的是扩展器芯片和控制器端的SAS HBA。6Gb柜的扩展器是6Gb规格12Gb柜的扩展器是12Gb规格。当你把12Gb柜接到只支持6Gb的控制器端口上时链路会协商到6Gb这时候12Gb柜里的12Gb SAS盘也只能跑在6Gb速率下。反过来6Gb柜接到12Gb控制器端口上链路同样协商到6Gb因为柜体扩展器上限就是6Gb。这里有个关键点DELL SC的控制器对扩展柜的支持是有代际限制的。SC4020、SC5020这些中端型号控制器上的SAS端口速率和可管理的扩展柜类型跟SC7020、SC9000这些高端型号不一样。你不能只看“接口能插进去”就认为能用。2.2 SC控制器端的SAS端口能力差异我整理了一个常见SC型号的SAS端口能力对照这个表你在规划扩容时一定要先看控制器型号SAS端口速率官方支持的扩展柜代际最大扩展柜数量备注SC40206Gb6GbSC200/220/2804不支持12Gb柜SC502012Gb6Gb和12Gb6混插需注意链路SC702012Gb6Gb和12Gb8混插需注意链路SC900012Gb6Gb和12Gb8混插需注意链路SC80006Gb6Gb8不支持12Gb柜这张表是基于我实际接触过的机型和DELL官方兼容性矩阵整理的。SC4020和SC8000这两代控制器SAS端口物理上是6Gb的你插12Gb柜上去链路能协商到6Gb但控制器固件层面可能直接不认这个柜或者认了但报兼容性告警。SC5020之后的型号控制器端口是12Gb向下兼容6Gb柜这才有了混插的可能性。注意控制器固件版本对扩展柜的支持影响很大。同样是SC5020早期固件可能只认6Gb柜升级到较新固件后才加入12Gb柜支持。扩容前务必查当前固件版本的Release Notes。2.3 混插的本质链路协商与扩展器级联混插有两种典型场景。第一种是同一条SAS链路上既有6Gb柜又有12Gb柜比如控制器端口0出来先接一个SC220再从SC220的OUT端口接一个SC420。第二种是不同链路分别接不同代际的柜比如端口0接6Gb柜端口1接12Gb柜。第一种场景问题最大。SAS链路是级联的整条链路的速率由最慢的那个设备决定。你前面挂一个6Gb柜后面接12Gb柜整条链路都会协商到6Gb。这本身不是故障但如果你指望12Gb柜里的盘跑出12Gb的性能那就是做梦。更麻烦的是有些旧款6Gb扩展器的SAS OUT端口对12Gb柜的兼容性不好可能出现链路不稳定、柜体掉线、盘位随机丢失。第二种场景相对安全因为每条链路独立协商。控制器端口0的6Gb链路跑6Gb端口1的12Gb链路跑12Gb互不影响。但前提是控制器固件能同时管理两种代际的柜并且盘位映射不会乱。3. 混插之前必须确认的兼容性清单3.1 控制器固件与扩展柜固件版本匹配这是最容易被忽略的一步。DELL SC的扩展柜有自己的固件主要是扩展器固件和盘固件控制器也有固件。两者之间有兼容性矩阵。我遇到过SC5020控制器固件是7.3版本接SC420柜死活认不全盘位升级控制器固件到7.4之后问题消失。也遇到过SC220柜的扩展器固件太旧接在12Gb链路下频繁报CRC错误升级柜体固件后稳定。实操建议扩容前先在DELL支持网站上查当前控制器固件版本对应的Supported Enclosure列表。如果列表里没有你要加的柜型号先升级控制器固件。柜体固件如果太旧也要通过控制器管理界面里的“Update Enclosure Firmware”功能升级。注意柜体固件升级过程中不要断电不要拔盘否则可能变砖。3.2 盘位与硬盘类型兼容性扩展柜混插不只是柜体的事盘也有讲究。6Gb柜里通常装的是6Gb SAS盘12Gb柜里装12Gb SAS盘。你把6Gb盘插到12Gb柜里链路会协商到6Gb盘能用但性能受限。反过来12Gb盘插到6Gb柜里同样协商到6Gb能用但浪费盘的能力。更关键的是DELL SC对硬盘有严格的兼容性列表。不是随便一块SAS盘插进去就能用。SC存储要求盘上有DELL认证的固件否则可能不识别或者报错。混插场景下如果你从旧6Gb柜拆盘插到12Gb柜或者反过来一定要确认盘在目标柜体的兼容列表里。盘类型插入6Gb柜插入12Gb柜备注6Gb SAS DELL认证盘正常协商到6Gb可用性能受限12Gb SAS DELL认证盘协商到6Gb可用正常浪费盘性能非DELL认证SAS盘可能不识别可能不识别强烈不建议SATA盘通过interposer视柜体支持视柜体支持需查兼容矩阵3.3 链路拓扑与线缆规格SAS线缆也有代际。6Gb时代常用的是SFF-8088到SFF-8088的线12Gb时代是SFF-8644到SFF-8644。物理接口不一样你没法直接把12Gb柜用旧线接到6Gb控制器上。但SC5020之后的控制器通常配的是SFF-8644端口可以向下兼容6Gb柜的SFF-8088接口前提是线缆转接正确。我建议混插时尽量让同一条链路只接同代际的柜。如果非要级联把6Gb柜放在链路末端12Gb柜靠近控制器。这样控制器到12Gb柜这一段是12Gb协商只有最后一段降到6Gb。虽然整条链路还是6Gb但至少12Gb柜的扩展器不会因为前面挂了个慢速设备而出现奇怪的协商问题。提示级联深度不要超过官方限制。一般建议单条链路不超过4个柜混插时不超过3个留出余量。4. 实操6Gb与12Gb扩展柜混插的完整配置流程4.1 扩容前的信息收集与规划动手之前先把这些信息记下来当前控制器型号、固件版本、已接扩展柜型号和数量、每条SAS链路的拓扑、空闲盘位数量、计划新增的柜型号和数量、新增柜里要插的盘型号和数量。这些信息在SC管理界面Unisphere for SC或DSM里都能查到。然后画一张链路规划图。比如你有SC5020端口0和端口1各接了一条链路。端口0上已有两个SC220级联端口1空闲。现在要加一个SC420。最稳妥的方案是SC420单独接在端口1上不跟SC220混在一条链路。这样端口0跑6Gb端口1跑12Gb互不干扰。如果端口不够用必须级联那就把SC420接在端口0的SC220后面接受整条链路6Gb的现实。但你要确认SC220的OUT端口能正常对接SC420的IN端口有些旧款SC220的OUT端口对12Gb柜兼容性差可能需要加一个SAS扩展器或者换用不同端口。4.2 物理连接与上电顺序物理连接看起来简单但顺序有讲究。我的习惯是先关控制器如果是双控逐个关再关旧扩展柜然后接线最后先开扩展柜等柜体自检完成再开控制器。这样控制器启动时能重新扫描SAS拓扑识别新柜。接线时注意IN和OUT方向。控制器端口是IN方向扩展柜有IN和OUT。级联时控制器→柜1 IN柜1 OUT→柜2 IN以此类推。不要接反接反了链路不通。12Gb柜的SFF-8644接口有防呆设计但6Gb柜的SFF-8088没有插反了可能损坏针脚。上电后观察扩展柜前面板的LED。正常状态是电源灯常亮链路灯闪烁或常亮故障灯不亮。如果有琥珀色灯先别急着开控制器查线缆和柜体。4.3 控制器端识别与配置控制器启动完成后登录管理界面。在“Hardware”或“Enclosures”页面应该能看到新柜。如果没看到先执行一次“Rediscover”或“Rescan”。SC管理界面里通常有“Update Hardware”或“Scan for New Hardware”的选项。识别到柜之后检查这几项柜体型号是否正确、盘位数量是否正确、每块盘的状态是否正常、链路速率显示是多少。如果链路速率显示6Gb而你接的是12Gb柜说明协商到了6Gb这可能是正常的如果链路上有6Gb设备也可能是有问题如果整条链路都是12Gb设备但协商失败。然后创建新的磁盘组Disk Group或者扩展现有磁盘组。混插场景下我建议新柜的盘单独建磁盘组不要和旧柜的盘混在一个磁盘组里。因为不同代际的盘性能和延迟特性不同混在一个RAID组里可能导致性能波动。SC的RAID是分布式RAID跨柜建组虽然支持但混插时跨柜RAID的稳定性需要观察。4.4 扩容后的验证与性能测试扩容完成不等于万事大吉。必须做这几项验证第一链路稳定性。在管理界面里查看SAS链路的CRC错误计数、链路重置计数。如果这些计数在持续增长说明链路有问题。正常情况应该是0或者增长极慢。第二盘位识别完整性。逐个盘位确认状态确保没有“Missing”或“Foreign”状态的盘。如果有尝试重新插拔或者换盘位。第三性能测试。用Iometer或者fio对新磁盘组做一次顺序和随机读写测试。对比旧柜磁盘组的性能看看是否符合预期。如果新12Gb柜跑出来的性能和旧6Gb柜差不多那说明链路协商到了6Gb你需要检查拓扑。第四故障切换测试。如果是双控模拟一个控制器故障看新柜的盘是否能正常切换到另一个控制器。混插场景下双控路径的兼容性也需要验证。5. 常见问题与排查技巧实录5.1 扩展柜识别不到或盘位不全这是混插后最常见的问题。表现是管理界面里看不到新柜或者看到了但只识别到部分盘位。排查思路按这个顺序来先查物理层。线缆是否插紧、IN/OUT方向是否正确、柜体电源是否正常、LED状态是否正常。我遇到过线缆没插到底看起来插了但实际接触不良换了根线就好了。再查固件兼容性。控制器固件是否支持该柜型号、柜体固件是否太旧。升级固件往往能解决大部分识别问题。然后查链路速率协商。如果控制器端口是6Gb接12Gb柜有些固件版本会直接拒绝识别。这时候要么换到12Gb端口要么升级控制器。最后查盘位映射。SC存储的盘位映射是控制器分配的有时候需要手动“Clear Foreign Configuration”或者“Recreate Disk Group”。5.2 链路降速与性能不达预期混插后性能不达预期十有八九是链路协商到了6Gb。确认方法在管理界面里查看扩展柜的“Link Speed”或“Phy Speed”。如果显示6.0 Gbps而你期望12.0 Gbps那就是链路里有6Gb设备。解决方案把12Gb柜单独接一条链路不跟6Gb柜级联。如果控制器端口不够考虑加SAS HBA或者换控制器。另一个方案是接受6Gb但把对性能要求高的负载放在12Gb柜的独立链路上。还有一种情况是盘本身是6Gb的插在12Gb柜里链路协商到6Gb。这种只能换盘。5.3 混插后的报警与日志分析SC存储的报警系统比较敏感混插后可能出现各种告警。常见的包括Enclosure Compatibility Alert、Link Speed Mismatch、Unexpected Enclosure Type。这些告警有些是信息性的有些是真正的故障。我的经验是先看告警的严重级别。Warning级别的可以先观察Error级别的必须处理。然后看日志里的详细描述SC的日志会给出具体的柜体ID、盘位号、错误码。根据错误码去查DELL的支持文档比盲目猜测高效得多。告警类型可能原因处理建议Enclosure Compatibility Alert控制器固件不支持该柜升级控制器固件Link Speed Mismatch链路中有低速设备检查拓扑隔离低速柜Unexpected Enclosure Type柜体型号与预期不符确认柜体型号检查固件Disk Foreign盘来自其他系统Clear Foreign ConfigCRC Error Increasing线缆或接口故障换线缆检查接口5.4 独家避坑技巧第一个技巧混插前先用一台测试环境验证。如果没有测试环境至少在业务低峰期操作并且做好回滚预案。回滚预案包括记录原始拓扑、备份配置、准备好旧柜的替换方案。第二个技巧不要迷信“接口能插就能用”。SAS接口物理兼容不代表逻辑兼容。控制器固件、柜体固件、盘固件三者之间的兼容性必须同时满足。第三个技巧混插后至少观察一周。有些问题不是立刻出现的比如链路在负载高的时候才出现CRC错误或者柜体在温度升高后才掉线。观察期内每天检查一次日志和告警。第四个技巧如果混插后问题太多果断放弃混插。把12Gb柜单独接到支持12Gb的控制器上或者把6Gb柜淘汰掉。混插省下的钱可能不够你排查故障的时间成本。6. 到底该不该混插我的实际经验与建议6.1 什么情况下可以混插如果你的控制器是SC5020及之后的型号固件版本较新并且你能把6Gb柜和12Gb柜分别接在不同的SAS链路上那么混插是可行的。这种情况下每条链路独立协商互不影响控制器也能同时管理两种柜。我实际在SC5020上混插过SC220和SC420分别接在两个端口上跑了半年多没出过稳定性问题。另外如果你对性能没有极致要求只是要容量那么把12Gb柜接在6Gb链路上接受6Gb速率也是可以的。但你要清楚你花的12Gb柜的钱只买到了6Gb的性能。6.2 什么情况下坚决不要混插SC4020和SC8000这两代6Gb控制器坚决不要接12Gb柜。我试过控制器根本不认或者认了之后频繁报错。这种控制器就老老实实用6Gb柜或者整体升级控制器。如果控制器端口不够必须把6Gb柜和12Gb柜级联在同一条链路上我也不建议。级联后的链路速率降到6Gb不说旧款6Gb扩展器的OUT端口对12Gb柜的兼容性参差不齐出问题的概率很高。还有一种情况是业务对延迟极其敏感。混插后如果链路协商到6Gb延迟会比纯12Gb链路高。这种场景下宁可多花钱上纯12Gb方案也不要混插。6.3 扩容规划的几个实用原则原则一同代际优先。能买同代际的柜就买同代际的省去兼容性烦恼。6Gb柜虽然慢但便宜且稳定。12Gb柜快但贵且对控制器有要求。原则二链路隔离。不同代际的柜尽量接不同链路不要级联。控制器端口不够就加HBAHBA不够就换控制器。原则三固件先行。扩容前先把控制器固件和柜体固件升级到兼容矩阵里的推荐版本。这一步花的时间比出问题后排查的时间少得多。原则四小步验证。先接一个柜验证稳定后再接第二个。不要一次性把所有柜都接上出了问题不好定位。原则五留有余量。SAS链路的带宽是共享的混插后带宽更紧张。规划时留出至少30%的带宽余量避免高峰期性能瓶颈。我在实际扩容中最大的体会是DELL SC存储的扩展柜混插技术上可行但工程上麻烦。如果你时间充裕、愿意折腾混插能省一笔钱。如果你追求稳定、不想半夜被报警叫醒那就老老实实同代际扩容或者整体升级。存储这东西稳定比省钱重要。扩容方案定下来之前多花点时间查兼容矩阵、多问几个做过类似项目的人比事后救火强得多。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进