第 12 章 替换失败的磁盘
如果其中一个磁盘在 Ceph 集群中失败,请完成以下步骤来替换它:
- 确定是否存在设备名称更改,请参阅 第 12.1 节 “确定设备名称是否有变化”。
- 确保 OSD 已关闭并销毁,请参阅 第 12.2 节 “确保 OSD 已关闭并销毁”。
- 从系统中删除旧磁盘并安装替换磁盘,请参阅 第 12.3 节 “从系统中删除旧磁盘并安装替换磁盘”。
- 验证磁盘替换是否成功,请参阅 第 12.4 节 “验证磁盘替换是否成功”。
12.1. 确定设备名称是否有变化 复制链接链接已复制到粘贴板!
在替换磁盘前,请确定替换 OSD 的替换磁盘在操作系统中是否与您要替换的设备不同。如果替换磁盘具有不同的名称,您必须更新 devices 列表的 Ansible 参数,以便后续运行 ceph-ansible,包括 director 运行 ceph-ansible 时不会因为更改而失败。有关使用 director 时必须更改的设备列表示例,请参阅 第 5.3 节 “映射 Ceph Storage 节点磁盘布局”。
如果设备名称更改,并且您按照以下流程在 ceph-ansible 或 director 之外更新您的系统,则配置管理工具不会与它们管理的系统不同步,直到您更新系统定义文件并重新处理配置,且配置没有错误。
存储设备的持久性命名
sd 驱动程序管理的存储设备在重启后可能并不总是有相同的名称。例如,通常由 /dev/sdc 识别的磁盘可能命名为 /dev/sdb。即使您希望将一个磁盘作为 /dev/sdc 的替换磁盘,对于替换磁盘 /dev/sdc 在操作系统中也可以显示为 /dev/sdd。要解决这个问题,请使用持久且与以下模式匹配的名称: /dev/disk/by the。如需更多信息,请参阅 Red Hat Enterprise Linux (RHEL) 7 存储管理指南 中的 持久 命名。
根据您用于部署 Ceph 的命名方法,您可能需要在替换 OSD 后更新 devices 列表。使用以下命名方法列表来确定是否必须更改 devices 列表:
- 主号和次号范围方法
如果您使用
sd并希望在安装新磁盘后继续使用它,请检查名称是否已改变。如果名称没有改变,例如,如果与/dev/sdd正确出现相同的名称,则不需要在完成磁盘替换过程后更改名称。重要不建议使用这个命名方法,因为名称仍然会在一段时间内不一致。如需更多信息,请参阅 RHEL 7 存储管理指南中的持久命名。
by-path方法如果您使用此方法,且在同一插槽中添加替换磁盘,则路径一致,且不需要更改。
重要虽然这种命名方法优先于主号和次号范围方法,但请谨慎操作以确保目标号不会改变。例如,如果主机适配器移到不同的 PCI 插槽,则使用持久性绑定和更新名称。另外,如果 HBA 无法探测到,或者如果在系统中安装了新的 HBA,则 SCSI 主机号可能会改变。在 RHEL7 和 RHEL8 之间,
by-path命名方法也有所不同。如需更多信息,请参阅:- 文章 [在 RHEL8 和 RHEL7 中创建"by-path"链接之间有什么区别 https://access.redhat.com/solutions/5171991
- RHEL 8 管理文件系统 指南中的 持久性命名属性概述。
by-uuid方法-
如果使用此方法,您可以使用
blkid实用程序将新磁盘设置为具有与旧磁盘相同的 UUID。如需更多信息,请参阅 RHEL 7 存储管理指南中的持久命名。 by-id方法- 如果使用这个方法,您必须更改 devices 列表,因为这个标识符是该设备的属性,设备已被替换。
将新磁盘添加到系统时,如果可以根据 RHEL7 Storage 管理员指南 修改持久命名属性,请参阅 持久性命名 机制,以便设备名称保持不变,则不需要更新设备列表并重新运行 ceph-ansible,或者触发 director 重新运行 ceph-ansible,您可以继续磁盘替换过程。但是,您可以重新运行 ceph-ansible,以确保更改不会产生任何不一致。
确认替换磁盘的大小与原始磁盘相同,以确保 Red Hat Ceph Storage 性能一致。如果同一大小的磁盘不可用,请在继续磁盘替换前联系 Red Hat Ceph Storage 支持。