第 12 章 替换失败的磁盘


如果 Ceph 集群中有一个磁盘失败,请完成以下步骤以替换它:

  1. 确定设备名称是否有变化,请参阅 第 12.1 节 “确定是否存在设备名称更改”
  2. 确保 OSD 已关闭并销毁,请参阅 第 12.2 节 “确保 OSD 已关闭并销毁”
  3. 从系统中删除旧磁盘并安装替换磁盘,请参阅 第 12.3 节 “从系统中删除旧磁盘并安装替换磁盘”
  4. 验证磁盘替换是否成功,请参阅 第 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-*。如需更多信息,请参阅 Red Hat Enterprise Linux (RHEL) 7 存储管理指南中的 持久性命名

根据您用于部署 Ceph 的命名方法,您可能需要在替换 OSD 后更新 devices 列表。使用以下命名方法列表来确定是否必须更改设备列表:

主号码和次号范围方法

如果您使用 sd 并想继续使用它,请在安装新磁盘后检查名称是否已改变。如果名称没有改变,例如,如果与 /dev/sdd 正确显示相同的名称,则不需要在完成磁盘替换步骤后更改名称。

重要

不建议此命名方法,因为仍存在名称随时间不一致的风险。如需更多信息,请参阅 RHEL 7 存储管理指南 中的 持久性命名

by-path 方法

如果您使用这个方法,且在同一插槽中添加替换磁盘,则路径一致,且不需要更改。

重要

虽然这种命名方法最好使用主号和次号范围方法,但要小心谨慎,以确保目标号不会改变。例如,如果主机适配器被移到不同的 PCI 插槽,请使用持久性绑定和更新名称。另外,如果以不同顺序载入驱动程序,或者系统上安装了新的 HBA,则 SCSI 主机号可能会改变,如果 HBA 无法探测。by-path 命名方法在 RHEL7 和 RHEL8 之间也有所不同。如需更多信息,请参阅:

by-uuid 方法
如果使用此方法,您可以使用 blkid 实用程序将新磁盘设置为与旧磁盘具有相同的 UUID。如需更多信息,请参阅 RHEL 7 存储管理指南 中的 持久性命名
by-id 方法
如果使用这个方法,您必须更改 devices 列表,因为此标识符是设备的属性,且设备已被替换。

当您向系统添加新磁盘时,如果可以根据 RHEL7 Storage Administrator 指南 修改持久性命名属性,请参阅 Persistent Naming,以便设备名称保持不变,则不需要更新 devices 列表并重新运行 ceph-ansible,或者触发 director 重新运行 ceph-ansible,以重新运行 ceph-ansible,您可以继续执行磁盘替换过程。但是,您可以重新运行 ceph-ansible 以确保更改不会导致任何不一致。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat