Ceph入门到精通-使用 Ceph 编排器管理 OSD

这篇具有很好参考价值的文章主要介绍了Ceph入门到精通-使用 Ceph 编排器管理 OSD。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第6章.使用 Ceph 编排器管理 OSD

作为存储管理员,您可以使用 Ceph 编排器来管理红帽 Ceph 存储集群的 OSD。

6.1. Ceph OSD

当红帽 Ceph 存储集群启动并运行时,您可以在运行时将 OSD 添加到存储集群。

Ceph OSD 通常由一个存储驱动器的一个守护进程及其节点中的关联日志组成。如果节点有多个存储驱动器,则为每个驱动器映射一个守护程序。ceph-osdceph-osd

红帽建议定期检查集群的容量,以查看其是否达到其存储容量的上限。当存储集群达到其比率时,添加一个或多个 OSD 以扩展存储集群的容量。near full

如果要减小红帽 Ceph 存储集群的大小或更换硬件,还可以在运行时移除 OSD。如果节点具有多个存储驱动器,则可能还需要删除该驱动器的守护程序之一。通常,最好检查存储集群的容量,以查看是否达到其容量的上限。确保在移除 OSD 时存储集群未达到其比率。ceph-osdnear full

重要

在添加 OSD 之前,请勿让存储集群达到该比率。存储集群达到该比率后发生的 OSD 故障可能会导致存储集群超过该比率。Ceph 会阻止写入访问以保护数据,直到您解决存储容量问题。不要在没有先考虑对比率的影响的情况下删除 OSD。fullnear fullfullfull

6.2. Ceph OSD 节点配置

将 Ceph OSD 及其支持硬件配置为将使用 OSD 的池的存储策略。Ceph 更喜欢跨池使用统一的硬件,以获得一致的性能配置文件。为了获得最佳性能,请考虑具有相同类型或大小的驱动器的 CRUSH 层次结构。

如果添加不同大小的驱动器,请相应地调整其权重。将 OSD 添加到 CRUSH 映射时,请考虑新 OSD 的权重。硬盘容量每年增长约 40%,因此较新的 OSD 节点可能比存储集群中的旧节点具有更大的硬盘驱动器,也就是说,它们可能具有更大的权重。

在进行新安装之前,请查看《安装指南》中的安装红帽 Ceph 存储的要求一章。

6.3. 自动调整 OSD 内存

OSD 守护程序根据配置选项调整内存消耗。该选项根据系统中的可用 RAM 设置 OSD 内存。osd_memory_targetosd_memory_target

如果红帽 Ceph 存储部署在不与其他服务共享内存的专用节点上, 会根据 RAM 总量和部署的 OSD 数量自动调整每个 OSD 的消耗量。cephadm

重要

默认情况下,该参数在红帽 Ceph 存储 5.1 中设置为。osd_memory_target_autotunetrue

语法

<span style="background-color:#f8f8f8"><span style="color:#151515">ceph config set osd osd_memory_target_autotune true</span></span>

将存储集群升级到红帽 Ceph 存储 5.0 后,对于集群维护(例如添加 OSD 或更换 OSD),红帽建议将参数设置为 根据系统内存自动调整 osd 内存。osd_memory_target_autotunetrue

Cephadm 以分数开头,默认为系统中的总 RAM,减去非自动调整守护程序(如非 OSD)和 OSD 为 false 消耗的任何内存,然后除以剩余的 OSD。mgr/cephadm/autotune_memory_target_ratio0.7osd_memory_target_autotune

默认情况下,对于超融合基础架构为 0.2,对于其他环境为 0.7。autotune_memory_target_ratio

参数计算如下:osd_memory_target

语法

<span style="background-color:#f8f8f8"><span style="color:#151515">osd_memory_target = <em>TOTAL_RAM_OF_THE_OSD_NODE</em> (in Bytes) * (autotune_memory_target_ratio) / <em>NUMBER_OF_OSDS_IN_THE_OSD_NODE</em> - (<em>SPACE_ALLOCATED_FOR_OTHER_DAEMONS</em> (in Bytes))</span></span>

SPACE_ALLOCATED_FOR_OTHER_DAEMONS可以选择包括以下守护程序空间分配:

  • 警报管理器:1 GB
  • 格拉法纳: 1 GB
  • Ceph 管理器:4 GB
  • Ceph 监视器:2 GB
  • 节点导出器:1 GB
  • 普罗米修斯: 1 GB

例如,如果节点有 24 个 OSD 并具有 251 GB RAM 空间,则为 。osd_memory_target7860684936

最终目标反映在带有选项的配置数据库中。您可以从“下”列下的输出中查看每个守护程序消耗的限制和当前内存。ceph orch psMEM LIMIT

注意

在红帽 Ceph 存储 5.1 中,默认设置 不适用于计算和 Ceph 存储服务共存的超融合基础架构。在超融合基础架构中,可以设置为 以减少 Ceph 的内存消耗。osd_memory_target_autotunetrueautotune_memory_target_ratio0.2

<span style="background-color:#f4f4f4"><span style="color:#151515"><span style="background-color:#ffffff"><span style="color:#151515">[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/autotune_memory_target_ratio 0.2</span></span></span></span>

您可以手动为存储集群中的 OSD 设置特定的内存目标。

<span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph config set osd.123 osd_memory_target 7860684936</span></span>

您可以手动为存储集群中的 OSD 主机设置特定的内存目标。

语法

<span style="background-color:#f8f8f8"><span style="color:#151515">ceph config set osd/host:<em>HOSTNAME</em> osd_memory_target <em>TARGET_BYTES</em></span></span>

<span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph config set osd/host:host01 osd_memory_target 1000000000</span></span>
注意

启用将覆盖现有的手动 OSD 内存目标设置。要防止在启用该选项或其他类似选项的情况下调整守护程序内存,请在主机上设置标签。osd_memory_target_autotuneosd_memory_target_autotune_no_autotune_memory

语法

<span style="background-color:#f4f4f4"><span style="color:#151515"><span style="background-color:#ffffff"><span style="color:#151515">ceph orch host label add <em>HOSTNAME</em> _no_autotune_memory</span></span></span></span>

您可以通过禁用自动调谐选项并设置特定内存目标,从内存自动整定中排除 OSD。

<span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph config set osd.123 osd_memory_target_autotune false
[ceph: root@host01 /]# ceph config set osd.123 osd_memory_target 16G</span></span>

6.4. 列出用于 Ceph OSD 部署的设备

在使用 Ceph 编排器部署 OSD 之前,您可以查看可用设备列表。这些命令用于打印 Cephadm 可发现的设备列表。如果满足以下所有条件,则认为存储设备可用:

  • 设备不得有分区。
  • 设备不得具有任何 LVM 状态。
  • 不得安装设备。
  • 设备不得包含文件系统。
  • 设备不得包含 Ceph BlueStore OSD。
  • 设备必须大于 5 GB。
注意

Ceph 不会在不可用的设备上预置 OSD。

先决条件

  • 正在运行的红帽 Ceph 存储集群。
  • 主机将添加到群集中。
  • 部署所有管理器和监视器守护程序。

程序

  1. 登录 Cephadm shell:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[root@host01 ~]# cephadm shell</span></span>
  2. 列出可用于部署 OSD 的设备:

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph orch device ls [--hostname=<em>HOSTNAME_1</em> <em>HOSTNAME_2</em>] [--wide] [--refresh]</span></span>

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch device ls --wide --refresh</span></span>

    使用该选项可提供与设备相关的所有详细信息,包括设备可能不符合用作 OSD 条件的任何原因。此选项不支持 NVMe 设备。--wide

  3. 可选:要在 的输出中启用运行状况标识故障字段,请运行以下命令:ceph orch device ls

    注意

    这些字段受库支持,目前支持 SCSI、SAS 和 SATA 设备。libstoragemgmt

    1. 作为 Cephadm shell 之外的 root 用户,请检查硬件与库的兼容性,以避免服务意外中断:libstoragemgmt

      <span style="background-color:#f8f8f8"><span style="color:#151515">[root@host01 ~]# cephadm shell lsmcli ldl</span></span>

      在输出中,您会看到运行状况“良好”,并具有相应的 SCSI VPD 0x83 ID。

      注意

      如果未获得此信息,则启用这些字段可能会导致设备行为不稳定。

    2. 重新登录 Cephadm shell 并启用支持:libstoragemgmt

      <span style="background-color:#f8f8f8"><span style="color:#151515">[root@host01 ~]# cephadm shell
      [ceph: root@host01 /]# ceph config set mgr mgr/cephadm/device_enhanced_scan true</span></span>

      启用此功能后,将“运行状况”字段的输出显示为“良好”。ceph orch device ls

验证

  • 列出设备:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch device ls</span></span>

6.5. 用于 Ceph OSD 部署的设备

在部署 OSD 之前,您需要检查可用设备的列表。如果设备上没有可用空间,您可以通过对设备进行电击来清除设备上的数据。

先决条件

  • 正在运行的红帽 Ceph 存储集群。
  • 主机将添加到群集中。
  • 部署所有管理器和监视器守护程序。

程序

  1. 登录 Cephadm shell:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[root@host01 ~]# cephadm shell</span></span>
  2. 列出可用于部署 OSD 的设备:

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph orch device ls [--hostname=<em>HOSTNAME_1</em> <em>HOSTNAME_2</em>] [--wide] [--refresh]</span></span>

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch device ls --wide --refresh</span></span>
  3. 清除设备的数据:

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph orch device zap <em>HOSTNAME</em> <em>FILE_PATH</em> --force</span></span>

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch device zap host02 /dev/sdb --force</span></span>

验证

  • 验证设备上的空间是否可用:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch device ls</span></span>

    您将看到“可用”下的字段为“是”。

其他资源文章来源地址https://www.toymoban.com/news/detail-451260.html

  • 有关更多信息,请参阅《红帽 Ceph 存储操作指南》中的列出用于 Ceph OSD 部署的设备部分。

6.6. 在所有可用设备上部署 Ceph OSD

您可以在所有可用设备上部署所有 OSDS。Cephadm 允许 Ceph 编排器在任何可用和未使用的存储设备上发现和部署 OSD。

先决条件

  • 正在运行的红帽 Ceph 存储集群。
  • 主机将添加到群集中。
  • 部署所有管理器和监视器守护程序。

程序

  1. 登录 Cephadm shell:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[root@host01 ~]# cephadm shell</span></span>
  2. 列出可用于部署 OSD 的设备:

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph orch device ls [--hostname=<em>HOSTNAME_1</em> <em>HOSTNAME_2</em>] [--wide] [--refresh]</span></span>

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch device ls --wide --refresh</span></span>
  3. 在所有可用设备上部署 OSD:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch apply osd --all-available-devices</span></span>

    的影响是持久的,这意味着业务流程协调程序会自动查找设备,将其添加到集群,并创建新的 OSD。这在以下情况下发生:ceph orch apply

    • 新磁盘或驱动器将添加到系统中。
    • 现有磁盘或驱动器已销毁。
    • 将删除 OSD 并销毁设备。

      您可以使用该参数禁用在所有可用设备上自动创建 OSD。--unmanaged

      <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch apply osd --all-available-devices --unmanaged=true</span></span>

      将参数设置为 将禁用 OSD 的创建,并且如果应用新的 OSD 服务,也不会发生任何更改。--unmanagedtrue

      注意

      该命令创建新的 OSD,但不添加 OSD 服务。ceph orch daemon add

验证

  • 列出服务:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch ls</span></span>
  • 查看节点和设备的详细信息:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph osd tree</span></span>

其他资源

  • 请参阅《红帽 Ceph 存储操作指南》中的列出用于 Ceph OSD 部署的设备部分。

6.7. 在特定设备和主机上部署 Ceph OSD

您可以使用 Ceph 编排器在特定设备和主机上部署所有 Ceph OSD。

先决条件

  • 正在运行的红帽 Ceph 存储集群。
  • 主机将添加到群集中。
  • 部署所有管理器和监视器守护程序。

程序

  1. 登录 Cephadm shell:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[root@host01 ~]# cephadm shell</span></span>
  2. 列出可用于部署 OSD 的设备:

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph orch device ls [--hostname=<em>HOSTNAME_1</em> <em>HOSTNAME_2</em>] [--wide] [--refresh]</span></span>

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch device ls --wide --refresh</span></span>
  3. 在特定设备和主机上部署 OSD:

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph orch daemon add osd <em>HOSTNAME</em>:<em>DEVICE_PATH</em></span></span>

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch daemon add osd host02:/dev/sdb</span></span>

    要在没有 LVM 层的原始物理设备上部署 ODS,请使用该选项。--method raw

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph orch daemon add osd --method raw <em>HOSTNAME</em>:<em>DEVICE_PATH</em></span></span>

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch daemon add osd --method raw host02:/dev/sdb</span></span>
    注意

    如果您有单独的数据库或 WAL 设备,则块与数据库或 WAL 设备的比例必须为 1:1。

验证

  • 列出服务:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch ls osd</span></span>
  • 查看节点和设备的详细信息:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph osd tree</span></span>
  • 列出主机、守护程序和进程:

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph orch ps --service_name=<em>SERVICE_NAME</em></span></span>

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch ps --service_name=osd</span></span>

其他资源

  • 请参阅《红帽 Ceph 存储操作指南》中的列出用于 Ceph OSD 部署的设备部分。

6.8. 用于部署 OSD 的高级服务规范和过滤器

OSD 类型的服务规范是一种使用磁盘属性描述群集布局的方法。它为用户提供了一种抽象的方式来告诉 Ceph 哪些磁盘应该转换为具有所需配置的 OSD,而无需知道设备名称和路径的细节。对于每个设备和每个主机,定义一个文件或文件。yamljson

OSD 规范的常规设置

  • service_type:“osd”:这是创建 OSDS 所必需的
  • service_id:使用您喜欢的服务名称或标识。使用规范文件创建一组 OSD。此名称用于一起管理所有 OSD,并表示业务流程协调程序服务。
  • 放置:用于定义需要部署 OSD 的主机。

    您可以使用以下选项:

    • host_pattern:“*” - 用于选择主机的主机名模式。
    • label:“osd_host” - 需要部署 OSD 的主机中使用的标签。
    • hosts:“host01”、“host02” - 需要部署 OSD 的主机名的显式列表。
  • 设备选择:创建 OSD 的设备。这允许将 OSD 与不同的设备分开。您只能创建具有三个组件的 BlueStore OSD:

    • OSD 数据:包含所有 OSD 数据
    • WAL:BlueStore 内部日志或预写日志
    • DB:BlueStore 内部元数据
  • data_devices:定义要部署 OSD 的设备。在这种情况下,OSD 是在并置架构中创建的。您可以使用过滤器来选择设备和文件夹。
  • wal_devices:定义用于 WAL OSD 的设备。您可以使用过滤器来选择设备和文件夹。
  • db_devices:定义数据库 OSD 的设备。您可以使用过滤器选择设备和文件夹。
  • 加密:用于加密 OSD 上信息的可选参数,可以设置为 或TrueFalse
  • 非托管:可选参数,默认设置为 False。如果不希望业务流程协调程序管理 OSD 服务,则可以将其设置为 True。
  • block_wal_size:用户定义的值,以字节为单位。
  • block_db_size:用户定义的值,以字节为单位。
  • osds_per_device:用户定义的值,用于为每个设备部署多个 OSD。
  • method:一个可选参数,用于指定是否使用 LVM 层创建 OSD。如果要在不包含 LVM 层的原始物理设备上创建 OSD,请设置为 。如果您有单独的数据库或 WAL 设备,则块与数据库或 WAL 设备的比例必须为 1:1。raw

用于指定设备的筛选器

筛选器与 和 参数结合使用。data_deviceswal_devicesdb_devices

筛选器的名称

描述

语法

以特定磁盘为目标。您可以通过运行命令或lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE,MODELsmartctl -i /DEVIVE_PATH

型号: DISK_MODEL_NAME

型号: MC-55-44-XZ

供应商

以特定磁盘为目标

供应商: DISK_VENDOR_NAME

供应商:供应商 C

尺寸规格

包括确切大小的磁盘

尺寸:精确

尺寸:“10G”

尺寸规格

包括磁盘大小在范围内

尺寸:低:高

尺寸: “10G:40G”

尺寸规格

包括小于或等于大小的磁盘

尺寸: :高

尺寸: “:10G”

尺寸规格

包括等于或大于大小的磁盘

尺寸: 低:

尺寸: “40G:””

旋转

磁盘的旋转属性。1 匹配所有旋转磁盘,0 匹配所有非旋转磁盘。如果旋转 =0,则 OSD 配置为 SSD 或 NVME。如果旋转=1,则 OSD 配置了硬盘。

旋转:0 或 1

旋转: 0

考虑所有可用磁盘

全部:真

全部:真

限幅器

当您指定了有效的过滤器但想要限制匹配磁盘的数量时,可以使用“limit”指令。它只能作为最后的手段使用。

限制:数字

限制: 2

注意

要在同一主机中创建具有非并置组件的 OSD,您必须指定所使用的不同类型的设备,并且这些设备应位于同一主机上。

注意

用于部署 OSD 的设备必须受 支持。libstoragemgmt

其他资源

  • 请参阅《红帽 Ceph 存储操作指南》中的使用高级规范部署 Ceph OSD 部分。
  • 有关 的更多信息,请参阅《红帽 Ceph 存储操作指南》中的列出用于 Ceph OSD 部署的设备部分。libstoragemgmt

6.9. 使用高级服务规范部署 Ceph OSD

OSD 类型的服务规范是一种使用磁盘属性描述群集布局的方法。它为用户提供了一种抽象的方式来告诉 Ceph 哪些磁盘应该转换为具有所需配置的 OSD,而无需知道设备名称和路径的细节。

您可以通过定义文件或文件为每个设备和每个主机部署 OSD。yamljson

先决条件

  • 正在运行的红帽 Ceph 存储集群。
  • 主机将添加到群集中。
  • 部署所有管理器和监视器守护程序。

程序

  1. 在监视器节点上,创建文件:osd_spec.yaml

    <span style="background-color:#f8f8f8"><span style="color:#151515">[root@host01 ~]# touch osd_spec.yaml</span></span>
  2. 编辑文件以包含以下详细信息:osd_spec.yaml

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">service_type: osd
    service_id: <em>SERVICE_ID</em>
    placement:
      host_pattern: '*' # optional
    data_devices: # optional
      model: <em>DISK_MODEL_NAME</em> # optional
      paths:
      - /<em>DEVICE_PATH</em>
    osds_per_device: <em>NUMBER_OF_DEVICES</em> # optional
    db_devices: # optional
      size: # optional
      all: true # optional
      paths:
       - /<em>DEVICE_PATH</em>
    encrypted: true</span></span>
    1. 简单方案:在这些情况下,所有节点都具有相同的设置。

      <span style="background-color:#f8f8f8"><span style="color:#151515">service_type: osd
      service_id: osd_spec_default
      placement:
        host_pattern: '*'
      data_devices:
        all: true
        paths:
        - /dev/sdb
      encrypted: true</span></span>

      <span style="background-color:#f8f8f8"><span style="color:#151515">service_type: osd
      service_id: osd_spec_default
      placement:
        host_pattern: '*'
      data_devices:
        size: '80G'
      db_devices:
        size: '40G:'
        paths:
         - /dev/sdc</span></span>
    2. 简单场景:在这种情况下,所有节点都具有相同的设置,OSD 设备在原始模式下创建,没有 LVM 层。

      <span style="background-color:#f8f8f8"><span style="color:#151515">service_type: osd
      service_id: all-available-devices
      encrypted: "true"
      method: raw
      placement:
        host_pattern: "*"
      data_devices:
        all: "true"</span></span>
    3. 高级方案:这将通过使用所有 HDD 创建所需的布局,就像分配为专用 DB 或 WAL 设备的两个 SSD 一样。其余的 SSD 将 NVME 供应商分配为专用数据库或 WAL 设备。data_devicesdata_devices

      <span style="background-color:#f8f8f8"><span style="color:#151515">service_type: osd
      service_id: osd_spec_hdd
      placement:
        host_pattern: '*'
      data_devices:
        rotational: 0
      db_devices:
        model: Model-name
        limit: 2
      ---
      service_type: osd
      service_id: osd_spec_ssd
      placement:
        host_pattern: '*'
      data_devices:
        model: Model-name
      db_devices:
        vendor: Vendor-name</span></span>
    4. 具有非统一节点的高级方案:这会根据host_pattern密钥将不同的 OSD 规范应用于不同的主机。

      <span style="background-color:#f8f8f8"><span style="color:#151515">service_type: osd
      service_id: osd_spec_node_one_to_five
      placement:
        host_pattern: 'node[1-5]'
      data_devices:
        rotational: 1
      db_devices:
        rotational: 0
      ---
      service_type: osd
      service_id: osd_spec_six_to_ten
      placement:
        host_pattern: 'node[6-10]'
      data_devices:
        model: Model-name
      db_devices:
        model: Model-name</span></span>
    5. 具有专用 WAL 和 DB 设备的高级方案:

      <span style="background-color:#f8f8f8"><span style="color:#151515">service_type: osd
      service_id: osd_using_paths
      placement:
        hosts:
          - host01
          - host02
      data_devices:
        paths:
          - /dev/sdb
      db_devices:
        paths:
          - /dev/sdc
      wal_devices:
        paths:
          - /dev/sdd</span></span>
    6. 每个设备具有多个 OSD 的高级方案:

      <span style="background-color:#f8f8f8"><span style="color:#151515">service_type: osd
      service_id: multiple_osds
      placement:
        hosts:
          - host01
          - host02
      osds_per_device: 4
      data_devices:
        paths:
          - /dev/sdb</span></span>
    7. 对于预先创建的卷,请编辑文件以包含以下详细信息:osd_spec.yaml

      语法

      <span style="background-color:#f8f8f8"><span style="color:#151515">service_type: osd
      service_id: <em>SERVICE_ID</em>
      placement:
        hosts:
          - <em>HOSTNAME</em>
      data_devices: # optional
        model: <em>DISK_MODEL_NAME</em> # optional
        paths:
        - /<em>DEVICE_PATH</em>
      db_devices: # optional
        size: # optional
        all: true # optional
        paths:
         - /<em>DEVICE_PATH</em></span></span>

      <span style="background-color:#f8f8f8"><span style="color:#151515">service_type: osd
      service_id: osd_spec
      placement:
        hosts:
          - machine1
      data_devices:
        paths:
          - /dev/vg_hdd/lv_hdd
      db_devices:
        paths:
          - /dev/vg_nvme/lv_nvme</span></span>
  3. 将 YAML 文件挂载到容器中的目录下:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[root@host01 ~]# cephadm shell --mount osd_spec.yaml:/var/lib/ceph/osd/osd_spec.yaml</span></span>
  4. 导航到目录:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# cd /var/lib/ceph/osd/</span></span>
  5. 在部署 OSD 之前,请执行试运行:

    注意

    此步骤提供部署的预览,而不部署守护程序。

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 osd]# ceph orch apply -i osd_spec.yaml --dry-run</span></span>
  6. 使用服务规范部署 OSD:

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph orch apply -i <em>FILE_NAME</em>.yml</span></span>

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 osd]# ceph orch apply -i osd_spec.yaml</span></span>

验证

  • 列出服务:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch ls osd</span></span>
  • 查看节点和设备的详细信息:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph osd tree</span></span>

其他资源

  • 请参阅《红帽 Ceph 存储操作指南》中的用于部署 OSD 的高级服务规范和过滤器部分。

6.10. 使用 Ceph 编排器删除 OSD 守护进程

您可以使用 Cephadm 从集群中删除 OSD。

从集群中删除 OSD 涉及两个步骤:

  1. 从集群中撤出所有归置组 (PG)。
  2. 从群集中删除无 PG 的 OSD。

先决条件

  • 正在运行的红帽 Ceph 存储集群。
  • 主机将添加到群集中。
  • Ceph Monitor、Ceph Manager 和 Ceph OSD 守护进程部署在存储集群上。

程序

  1. 登录 Cephadm shell:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[root@host01 ~]# cephadm shell</span></span>
  2. 检查必须从中删除 OSD 的设备和节点:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph osd tree</span></span>
  3. 删除 OSD:

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph orch osd rm <em>OSD_ID</em> [--replace] [--force]</span></span>

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch osd rm 0</span></span>
    注意

    如果从存储集群中移除 OSD,而不带选项(例如 ),则会从存储簇中完全移除设备。如果要使用同一设备部署 OSD,必须先销毁设备,然后再将其添加到存储集群。--replace

  4. 可选:要从特定节点中删除多个 OSD,请运行以下命令:

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph orch osd rm <em>OSD_ID</em> <em>OSD_ID</em></span></span>

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch osd rm 2 5</span></span>
  5. 检查 OSD 移除的状态:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch osd rm status
    OSD_ID  HOST     STATE     PGS       REPLACE  FORCE  DRAIN_STARTED_AT
    2       host01  draining  124       False    False  2021-09-07 16:26:07.142980
    5       host01  draining  107       False    False  2021-09-07 16:26:08.330371</span></span>

    当 OSD 上没有剩余的 PG 时,它将停用并从集群中删除。

验证

  • 验证从中移除 Ceph OSD 的设备和节点的详细信息:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph osd tree</span></span>

其他资源

  • 有关更多信息,请参阅《红帽 Ceph 存储操作指南》中的在所有可用设备上部署 Ceph OSD 部分。
  • 有关更多信息,请参阅《红帽 Ceph 存储操作指南》中的在特定设备和主机上部署 Ceph OSD 部分。
  • 有关清理设备空间的更多信息,请参阅《红帽 Ceph 存储操作指南》中的用于 Ceph OSD 部署的 Zapping 设备部分。

6.11. 使用 Ceph 编排器替换 OSD

当磁盘发生故障时,您可以更换物理存储设备并重复使用相同的 OSD ID,以避免重新配置 CRUSH 映射。

您可以使用该选项替换集群中的 OSD。此选项使用命令保留 OSD ID。OSD 不会从 CRUSH 层次结构中永久删除,但会分配标志。此标志用于确定可在下一个 OSD 部署中重复使用的 OSD ID。该标志用于确定在下一个 OSD 部署中重复使用哪个 OSD 标识。--replaceceph orch rmdestroyeddestroyed

与命令类似,从集群替换 OSD 涉及两个步骤:rm

  • 从集群中撤出所有归置组 (PG)。
  • 从群集中删除无 PG 的 OSD。

如果使用 OSD 规范进行部署,则会为新添加的磁盘分配其替换对应磁盘的 OSD ID。

注意

卸下 OSD 后,如果部署 OSD 的驱动器再次可用,如果这些驱动器与现有驱动器组规范匹配,则可能会自动尝试在这些驱动器上部署更多 OSD。如果您部署了使用规范删除的 OSD,并且不希望在删除后在驱动器上部署任何新 OSD,请在删除之前修改驱动器组规范。部署 OSD 时,如果您使用了选项,请设置为完全阻止它拾取新驱动器。对于其他部署,请修改规范。有关更多详细信息,请参阅使用高级服务规范部署 Ceph OSD。cephadm`--all-available-devicesunmanaged: true

先决条件

  • 正在运行的红帽 Ceph 存储集群。
  • 主机将添加到群集中。
  • 监控器、管理器和 OSD 守护程序部署在存储集群上。
  • 必须在从中移除 OSD 的同一主机上创建替换已移除 OSD 的新 OSD。

程序

  1. 登录 Cephadm shell:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[root@host01 ~]# cephadm shell</span></span>
  2. 检查必须更换 OSD 的设备和节点:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph osd tree</span></span>
  3. 更换 OSD:

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph orch osd rm <em>OSD_ID</em> --replace [--force]</span></span>

    当存储集群上存在正在进行的操作时,可以使用该选项。--force

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch osd rm 0 --replace</span></span>
  4. 检查 OSD 更换的状态:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch osd rm status</span></span>

验证

  • 验证更换 Ceph OSD 的设备和节点的详细信息:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph osd tree</span></span>

    您可以看到与替换的 OSD 具有相同 ID 的 OSD 在同一主机上运行。

其他资源

  • 有关更多信息,请参阅《红帽 Ceph 存储操作指南》中的在所有可用设备上部署 Ceph OSD 部分。
  • 有关更多信息,请参阅《红帽 Ceph 存储操作指南》中的在特定设备和主机上部署 Ceph OSD 部分。

6.12. 停止使用 Ceph 编排器删除 OSD

您只能停止删除排队等待删除的 OSD。这将重置 OSD 的初始状态,并将其从删除队列中删除。

如果 OSD 正在删除过程中,则无法停止该过程。

先决条件

  • 正在运行的红帽 Ceph 存储集群。
  • 主机将添加到群集中。
  • 监控器、管理器和 OSD 守护程序部署在集群上。
  • 删除已启动的 OSD 进程。

程序

  1. 登录 Cephadm shell:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[root@host01 ~]# cephadm shell</span></span>
  2. 检查要从中启动 OSD 的设备和节点:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph osd tree</span></span>
  3. 停止删除排队的 OSD:

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph orch osd rm stop <em>OSD_ID</em></span></span>

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch osd rm stop 0</span></span>
  4. 检查 OSD 移除的状态:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch osd rm status</span></span>

验证

  • 验证 Ceph OSD 排队等待移除的设备和节点的详细信息:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph osd tree</span></span>

其他资源

  • 有关更多信息,请参阅《红帽 Ceph 存储操作指南》中的使用 Ceph 编排程序删除 OSD 守护程序部分。

6.13. 使用 Ceph 编排器激活 OSD

在重新安装主机的操作系统时,您可以在集群中激活 OSD。

先决条件

  • 正在运行的红帽 Ceph 存储集群。
  • 主机将添加到群集中。
  • 监控器、管理器和 OSD 守护程序部署在存储集群上。

程序

  1. 登录 Cephadm shell:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[root@host01 ~]# cephadm shell</span></span>
  2. 重新安装主机的操作系统后,激活 OSD:

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph cephadm osd activate <em>HOSTNAME</em></span></span>

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph cephadm osd activate host03</span></span>

验证

  • 列出服务:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch ls</span></span>
  • 列出主机、守护程序和进程:

    语法

    <span style="background-color:#f8f8f8"><span style="color:#151515">ceph orch ps --service_name=<em>SERVICE_NAME</em></span></span>

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph orch ps --service_name=osd</span></span>

6.13.1. 观察数据迁移

当您在 CRUSH 映射中添加或移除 OSD 时,Ceph 会通过将归置组迁移到新的或现有的 OSD 来开始重新平衡数据。您可以使用命令观察数据迁移。ceph-w

先决条件

  • 正在运行的红帽 Ceph 存储集群。
  • 最近添加或删除了 OSD。

程序

  1. 要观察数据迁移,请执行以下操作:

    <span style="background-color:#f8f8f8"><span style="color:#151515">[ceph: root@host01 /]# ceph -w</span></span>
  2. 观察归置组状态从 更改为 ,最后在迁移完成时发生变化。active+cleanactive, some degraded objectsactive+clean
  3. 要退出该实用程序,请按 。Ctrl + C

6.14. 重新计算归置组

归置组 (PG) 定义任何池数据在可用 OSD 中的分布。归置组基于要使用的给定冗余算法构建。对于 3 向复制,冗余定义为使用三个不同的 OSD。对于纠删码存储池,要使用的 OSD 数由区块数定义。

定义存储池时,归置组的数量决定了数据在所有可用 OSD 中的粒度等级。数字越大,容量负载的均衡性越好。但是,由于在重建数据时处理归置组也很重要,因此需要预先仔细选择该数字。为了支持计算,可以使用工具来生成敏捷环境。

在存储集群的生命周期内,池可能会增长到超出最初预期的限制。随着驱动器数量的增加,建议重新计算。每个 OSD 的归置组数量应在 100 个左右。向存储集群添加更多 OSD 时,每个 OSD 的 PG 数量将随着时间的推移而减少。从存储集群中的最初 120 个驱动器开始,将池设置为 4000,最终每个 OSD 将产生 100 个 PG,复制因子为 <>。随着时间的推移,当 OSD 数量增长到 <> 倍时,每个 OSD 的 PG 数量将仅减少到 <> 倍。由于每个 OSD 的 PG 数量较少会导致容量分布不均匀,因此请考虑调整每个池的 PG。pg_num

可以在线调整归置组的数量。重新计算不仅是PG数字的重新计算,而且将涉及数据重新定位,这将是一个漫长的过程。但是,将随时保持数据可用性。

应避免每个 OSD 的 PG 数量过多,因为故障 OSD 上所有 PG 的重建将立即开始。需要大量 IOPS 才能及时执行重建,这可能不可用。这将导致深度 I/O 队列和高延迟,使存储集群不可用或将导致较长的修复时间。

其他资源

  • 请参阅 PG 计算器,了解按给定用例计算值。
  • 有关更多信息,请参阅《红帽 Ceph 存储策略指南》中的纠删码池章节。

到了这里,关于Ceph入门到精通-使用 Ceph 编排器管理 OSD的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ceph入门到精通- Linux 磁盘管理(block 与 inode)

    1)  硬盘的最小存储单位:sector(扇区),每个扇区储存 512 字节;操作系统会一次性连续读取多个扇区,即一次性读取多个扇区称为一个 block(块) 2)  文件存取的最小单位:block(块),由多个扇区组成;block 的大小常见的有 1KB、2KB、4KB,在 linux 中常见设置为 4KB,即连

    2024年02月14日
    浏览(50)
  • Ceph入门到精通-远程开发Windows下使用SSH密钥实现免密登陆Linux服务器

    工具: win10、WinSCP 打开终端,使账号密码登录,输入命令 Downloading WinSCP-6.1.1-Setup.exe :: WinSCP 打开powershell  ssh-keygen -t rsa 注意路径 点击高级 工具有个向服务器推送公钥 powershell ssh root@192.xxxx        

    2024年02月14日
    浏览(57)
  • Ceph入门到精通-ceph 源码编译

    Please see https://ceph.com/ for current info. Most of Ceph is dual licensed under the LGPL version 2.1 or 3.0. Some miscellaneous code is under a BSD-style license or is public domain. The documentation is licensed under Creative Commons Attribution Share Alike 3.0 (CC-BY-SA-3.0). There are a handful of headers included here that are licensed under the GP

    2024年02月12日
    浏览(40)
  • Ceph入门到精通-Ceph版本升级命令

    Cephadm 可以安全地将 Ceph 从一个错误修复版本升级到下一个错误修复版本。为 例如,你可以从v15.2.0(第一个八达通版本)升级到下一个 点发布,v15.2.1。 自动升级过程遵循 Ceph 最佳实践。例如: 升级顺序从管理器、监视器开始,然后是其他守护程序。 每个守护程序仅在 Ce

    2024年02月10日
    浏览(46)
  • Ceph入门到精通-podman 入门实战

    目录 podman安装 podman制作本地镜像 podman(docker)命令回顾 podman快速入门 一入编程深似海,从此节操是路人。 最近使用podman,就想着写一篇总结性的笔记,以备后续参考。就如同写代码,不写注释,过了一段时间可能会想这是我写的吗?不会吧,还要理一下逻辑才能读懂,不利

    2023年04月24日
    浏览(43)
  • Ceph入门到精通-Ceph PG状态详细介绍(全)

    本文主要介绍PG的各个状态,以及ceph故障过程中PG状态的转变。 Ceph is still creating the placement group. Ceph 仍在创建PG。 activating The placement group is peered but not yet active. PG已经互联,但是还没有active。 active Ceph will process requests to the placement group. Ceph 可处理到此PG的请求。 clean Ceph re

    2024年02月14日
    浏览(36)
  • 存储重启后,ceph挂载信息没了,手动定位osd序号并挂载到对应磁盘操作流程、ceph查看不到osd信息处理方法

    我们的一个存储节点莫名其妙的重启了,不知道咋回事 但这样的问题就是,所有osd都down了 因为挂载信息没有写到fstab里面,所以不会自动up,并且没有挂载信息,并且也看不到osd信息了,需要手动一一挂载后才能正常up和看到osd信息

    2024年02月15日
    浏览(43)
  • Ceph入门到精通-创建存储桶通知

    在存储桶级别创建存储桶通知。这些需要 与发送存储桶通知的目标一起发布。桶 通知是 S3 操作。 父主题: 存储桶管理 运行 IBM Storage Ceph 集群,带有 Ceph Object Gateway。 正在运行的 HTTP 服务器、RabbitMQ 服务器或 Kafka 服务器。 根级访问。 用户访问密钥和私有密钥。 终结点参数

    2024年02月15日
    浏览(83)
  • Ceph入门到精通-sysctl参数优化

    sysctl.conf  是一个文件,通常用于在 Linux 操作系统中配置内核参数。这些参数可以控制网络、文件系统、内存管理等各方面的行为。 99-xx.yml  可能是一个文件名,其中  99-  是一个特定的命名约定。在  sysctl.conf  文件中,通常会有一个特定的顺序来加载配置项。通常,以 

    2024年02月10日
    浏览(38)
  • ceph写满,nearfull osd解决思路

    现象:ceph写满,ceph-s 中nearfull osd 办法:调整osd weight权重,进行数据均衡 步骤:1,执行ceph osd df可以看到当前的pg在osd上分布情况以及使用率情况 2,防止数据均衡过程中,其他osd 数据out,及deep-scrub操作出现大量block IO。设置集群noout以及nodeep-scrub标签: ceph osd set noout ceph

    2024年01月18日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包