Dell Compellent存储实践:存储池、数据分层与日常巡检

发布时间:2026/9/17 23:06:52
Dell Compellent存储实践:存储池、数据分层与日常巡检 简介Dell Compellent 存储用户手册是一份面向存储管理员与运维人员的中文操作指南覆盖系统登录、逻辑卷管理、服务器管理、卷映射、持续数据保护等基础运维场景也涉及 Dynamic Capacity 高级精简配置、恢复点、MPIO、设备开关机与软硬件监控等进阶话题适合刚接触 Compellent 阵列的团队快速建立管理认知。资源包为 docx 文档格式包含 1 个文件整体大小约 1.6MB内容按章节组织便于在内部培训或项目现场查阅、批注和打印。目前已有 252 人学习下载。手册的实用价值在于存储规划部分给出卷文件夹和存储模板的配置思路服务器接入部分说明如何通过 HBA 卡识别服务器并完成卷到服务器的映射数据保护部分则介绍了 Data Instant Replay 等特性。读者按章节操作可以完成从首次登录、创建卷、映射卷到服务器再到配置 Dynamic Capacity 高级精简配置的完整流程同时获得日常巡检和设备监控的基本方法。1. Dell Compellent 存储用户手册到底在讲什么存储管理员第一次接触 Dell Compellent现在叫 SC 系列时翻用户手册往往只盯着两个问题下一步点哪里参数填多少。这份手册表面上在讲 UI实际上把 SCOS 存储操作系统里最核心的数据路径讲透了存储池怎么建、卷怎么分、映射怎么给主机、数据靠什么自动分层以及快照和远程复制该按什么节奏做。它不教 RAID 组怎么从零拼而是让磁盘先加入池再由系统按 IO 特点决定数据落在哪一层。最适合刚接手阵列的运维也适合做巡检和容量规划的乙方工程师。2. 存储池与卷Dell Compellent 存储的创建流程和页面大小选择2.1 为什么 Compellent 一上来就让你建存储池传统存储创建一个 LUN 之前要先定 RAID 级别、要选磁盘数量、要算热备盘。Dell Compellent 把这个顺序彻底反过来所有磁盘初始化后先放进 Disk Folder磁盘文件夹Disk Folder 再放进 Storage Pool存储池。创建卷时不再指定 RAID 和磁盘只指定卷大小和页面大小RAID 策略由存储池统一托管。这套思路的收益在运维侧非常明显。加新磁盘进池后系统自动把容量池变大不需要手动迁移卷数据热了会自动往 SSD 层迁凉了会落回低速盘。代价是容量计算不能再按“物理盘容量 × 磁盘数”去预估必须看存储池的可用空间同时预留一定比例的 Data Progression 迁移空间。我一般会预留 20% 的池容量不分配给任何卷否则分层在夜间跑起来后池可用空间下降会很快。另一个要注意的是 Dynamic Capacity也就是精简配置。创建卷时给一个逻辑大小但这个大小只有真正写入才会消耗池空间。给 VMFS 或 NTFS 这类文件系统用没有问题但给数据库裸设备用要盯住文件系统的实际使用率避免卷逻辑大小小于数据增长预期。2.2 在 Storage Manager 里新建存储池的完整步骤Storage Manager 是 Compellent 的图形管理端日常创建池和卷都在这里完成。连接上 Storage Center 后按下面步骤执行左侧导航进入 Storage → Storage Pools点击 Create Storage Pool。输入存储池名称建议按“POOL_业务名_层级”命名例如 POOL_ERP_MIXED。勾选要加入的 Disk Folder一般把 SSD、15K SAS、7.2K NL-SAS 三类盘全部勾入让 Data Progression 自动调度。设置容量告警阈值默认是 80%生产环境建议改成 70%给运维留出响应时间。确认磁盘数量和池总容量点击完成。新池建成后不需要手动做 RAID 初始化Compellent 会在第一次写入数据时按策略自动构建 RAID 集。这个特性对交付速度很友好但排障时容易让人误以为没有 RAID后面说巡检时会再提到。表 2-1 是我在配置存储池时习惯记录的参数清单参数建议值说明Storage Pool NamePOOL_业务名支持中文但不建议Disk Folder勾选全部已初始化磁盘让分层有数据可搬Volume Folder/业务目录顶级目录透传方便后续授权Alert Threshold70% 或 80%超过阈值发邮件告警Replay Reserve10% 池容量给快照预留副本空间2.3 用 REST API 创建卷把“手动建卷”变成脚本存储池稳定运行后日常开卷如果还靠鼠标点就太慢了。SCOS 提供 REST API通过 Storage Manager 控制器的 443 端口就能调用。下面是我在测试环境整理出的一个最小脚本用 requests 直接创建卷import requests from requests.auth import HTTPBasicAuth base https://192.0.2.20 auth HTTPBasicAuth(admin, YourPassword) headers {Content-Type: application/json} payload { Name: OLTP_DATA, Size: 200, SizeUnit: GB, StoragePool: POOL_ERP_MIXED, PageSize: 2MB, VolumeFolder: /ERP } resp requests.post( f{base}/api/types/volume/instances, jsonpayload, headersheaders, authauth, verifyFalse ) print(resp.status_code) print(resp.text)这段脚本的逻辑是向 volume 资源类型发一个 POST 请求创建名为 OLTP_DATA 的卷逻辑大小 200GB归属到 POOL_ERP_MIXED 这个存储池页面大小 2MB。verifyFalse是为了跳过自签名证书的校验生产环境应该换成 CA 证书或者关闭该选项后放到内网调用网段。参数里最关键的是PageSize。它是 Compellent 做数据迁移的最小单位直接决定分层效率和快照元数据开销。表 2-2 给出一般选型参考PageSize适用负载注意事项512B数据库日志、高频小写入元数据开销大池容量损耗明显2MBOLTP、虚拟化、通用文件系统最常规的选择适用面最宽4MB备份、视频监控、顺序大 IO单卷吞吐更好但热数据搬移效率略低提示数据库数据文件建议 2MB归档日志可以单独建一个 512B 的小卷。拿不准时先用 2MB后续页大小不能在线改只能在迁移卷到新卷时变。3. 卷映射与主机访问Dell Compellent 存储上线的常见配置3.1 在 Linux 主机上确认 HBA WWPN 和 iSCSI IQN卷创建完成不等于主机能看到盘。Compellent 里必须先定义一个 Server 对象把主机的 HBA 标识绑进去再把卷映射给这个对象。所以第一步是在主机侧拿到准确的标识。FC 环境要看 HBA 的 WWPN命令如下# 查看 FC 端口的 WWPN cat /sys/class/fc_host/host*/port_name # 查看 iSCSI initiator IQN cat /etc/iscsi/initiatorname.iscsi # 查看当前已连接的多路径设备 multipath -llport_name输出格式通常是0x20000000xxxxx把0x去掉后填写到 Storage Manager 里。iSCSI 环境则看 IQN 字符串格式类似iqn.1994-05.com.redhat:xxxx。multipath -ll会列出已经识别的磁盘路径和 WWID这个 WWID 后面在挂载时要用到。在定义 Server 之前建议先把主机的 HBA 驱动和多路径软件装好。Compellent 对多路径的常规要求是每个卷至少两个活跃路径如果主机侧只识别到一个路径先在主机上排查光纤线、交换机 zone再回来看映射配置。3.2 创建服务器对象并映射卷的流程拿到 WWPN 后在 Storage Manager 中创建服务器的路径是Storage → Servers → Add Server填写名称后逐个添加 HBA。一个物理主机如果有两个 FC 口的 WWPN都加到同一个 Server 下。集群环境要把每个节点的 HBA 全部加进去但卷映射时可以选择只映射给需要的节点。映射卷的路径是Volumes → 选中卷 → Map Volume to Server → 勾选目标 Server。映射完成后系统会自动给该卷下发一个一致性的 LUN ID主机侧重新扫描后就能看到盘。表 3-1 是映射前建议逐项确认的清单我在交付时都会先过一遍检查项要求说明FC Zone主机 HBA 能看到两个阵列端口单链路不满足冗余要求多路径软件multipathd 或厂商 DSM不装多路径会出现盘符漂移文件系统类型与卷大小匹配超过 16TB 的卷要用 XFS 或 GPFS 类文件系统集群环境是否所有节点需要一致 LUN ID不一致时锁盘文件会认错盘3.3 映射后主机侧必做的四个动作映射在阵列侧完成后Linux 主机默认不会立刻发现新盘。需要按顺序执行以下操作# 1. 重新扫描 FC 总线 for host in /sys/class/scsi_host/host*; do echo 1 $host/issue_lip; done # 2. 重新扫描单个 SCSI 设备 echo 1 /sys/class/scsi_device/0:0:0:0/device/rescan # 3. 查看多路径识别结果 multipath -ll # 4. 查看新盘符 lsblkissue_lip是强制让 FC 端口重新登录交换机生产环境在业务低峰执行。扫描完成后multipath -ll应能看到路径数量为 2 或 4状态为 active。如果看到 rub 开头的盘说明映射成功如果卡在 md 或 dm-0需要继续排查。新盘识别后不建议直接用/dev/sdX挂载而要用/dev/mapper/wwid或者通过/dev/disk/by-id/路径挂载。用multipath -r重载配置后确认盘符不会在重启后变化再进行分区和格式化。提示映射给 Windows 主机时别忘在 SAN 交换机上确认双控制器链路都被 Zone 放通。Array 侧映射只要做一次但 Windows 的磁盘管理里要等磁盘初始化完成可提前做好 GPT 分区规划避免用 MBR 导致卷上限错乱。4. 数据分层与数据保护Data Progression、快照和远程复制的参数建议4.1 Data Progression 分层SSD、15K、7.2K 怎么放Data Progression 是 Compellent 最值得花时间理解的功能。它每隔一段时间扫描卷上的数据页按 IO 频率把热数据迁移到 SSD 层冷数据落到 7.2K 大容量盘。默认策略会按照页面大小把数据分成多个 RAID 级别来存放。表 4-1 是常见的层级和 RAID 对应关系层级磁盘类型常见 RAID 策略典型应用Tier 1SSDRAID 10数据库索引、高活跃数据页Tier 215K SASRAID 10 或 RAID 5普通 OLTP、虚拟化模板Tier 37.2K NL-SASRAID 6备份、归档、冷卷创建卷时如果没有锁定层级Data Progression 会优先把数据页放在 Tier 1。等数据温度下降夜间调度会把它们搬到低层。这个机制的好处是容量规划不用再精确到每一块盘但也要注意两点一是 Tier 1 磁盘不要被 SLA 要求很高的库全部占据二是每日迁移会占用存储池 IO建议把 DP 调度窗口设置在业务低谷。锁定层级的场景我见得多的是合规归档卷直接把卷锁定到 Tier 3防止系统因为读操作把归档数据又炒热了。Storage Manager 里对应选项是 Data Progression Settings 里的卷级策略选择“锁定到某层”即可。4.2 快照规划与预定义快照Compellent 快照本质上不是完整拷贝而是记录数据页变化前的原数据块。没有数据变化时快照几乎不占空间写越频繁快照占用的预留空间越大。因此我在建池时会单独设定 Replay Reserve默认给到池容量的 10%并提醒业务方快照保留天数不要超过一周。创建快照可以通过 GUI 右键卷创建也可以在自动化脚本里调用 REST APIimport requests from requests.auth import HTTPBasicAuth snap_payload { Name: SNAP_OLTP_DAILY, Volume: OLTP_DATA, ExpireDays: 7 } resp requests.post( https://192.0.2.20/api/types/replay/instances, jsonsnap_payload, authHTTPBasicAuth(admin, YourPassword), verifyFalse ) print(resp.status_code)Name建议带上日期或备份任务标识ExpireDays让快照到期自动过期删除。生产库的快速恢复场景里快照可以在分钟级把数据库回滚到某个时间点但它不是备份的替代品。存储备份通常结合快照加带外拷贝来做夜间先打快照再把快照导出到独立池或远程容量层最后同步到备份系统。快照本身存在同一套阵列里阵列整体故障时快照同样不可用。4.3 远程复制与 Live Volume 选型跨机房容灾场景下Compellent 提供远程复制Remote Replication和 Live Volume 两种方案。远程复制是传统主备模式生产卷复制到灾备中心切换时由灾备卷接管RPO 依赖复制间隔Live Volume 做成双活卷两个站点的主机同时访问同一个卷由阵列处理数据一致性RPO 可以做到接近零。选型参数可以参考表 4-2方案RPO 量级网络要求适用场景远程复制分钟级10Gb 以上普通链路异地备份、容灾演练Live Volume接近零低时延专线建议 RTT 小于 5ms同城双活、数据库双中心配置远程复制的常规步骤是在两端 Storage Center 之间建立复制关系然后给卷创建 Remote Replication 规则选择复制目标和 RPO 时间。带宽小的链路建议手动设置复制限速避免复制流量挤占生产 IO。提示远程复制的故障切换不是自动的演练时必须先断开复制关系再激活灾备卷否则两侧同时写会造成数据分叉后续无法重新同步。Live Volume 虽然能自动切换但要求两端硬件型号和固件基本一致混合型号部署前先确认兼容矩阵。5. Dell Compellent 存储的日常巡检技巧一条命令查出容量与健康状态5.1 用 API 汇总存储池容量和磁盘状态每周巡检时我习惯用脚本把所有存储池的容量拉到一个文件里再根据TotalSize和AvailableSize的差值判断容量趋势。SCOS REST API 的 storagePool 资源可以直接返回这些字段脚本如下import requests from requests.auth import HTTPBasicAuth base https://192.0.2.20 auth HTTPBasicAuth(admin, YourPassword) resp requests.get( f{base}/api/types/storagePool/instances?compacttrue, authauth, verifyFalse ) pools resp.json() for p in pools: # 这里 TotalSize 和 AvailableSize 在不同固件下 # 可能是整数也可能是带单位的字符串先打印再判断 print(p[Name], p.get(TotalSize), p.get(AvailableSize))将这段脚本放进 cron 每天执行输出追加到带日期的文件里能用两周数据画出容量增长曲线。比在 GUI 里逐池截图更省事故障排查时还能回溯“哪天开始容量突变”。compacttrue参数是让 API 只返回基础字段避免一次拉取太多负载信息。5.2 更换故障硬盘时的四个确认点磁盘坏道是 Compellent 阵列最常见的硬件故障。Storage Manager 里确认磁盘状态为 Failed 后更换前先做四个确认在 Storage Manager 的 Disk Folder 视图里记录故障盘槽位和序列号别靠机身贴纸判断防止拔错盘。确认池里没有正在进行的 Data Progression 或 Rebuild 任务否则新盘插入后会叠加负载。拔出故障盘后插入新盘新盘会自动加入 Disk Folder 并开始重建。等待 Rebuild 到 100%再检查存储池状态必要时手动触发一次 Data Progression让数据重新均衡。替换完成后用上面 5.1 的容量脚本对比替换前后的 TotalSize确认池容量没有下降同时观察 24 小时内是否有新的 Failed 盘告警。本文还有配套的精品资源点击获取