5.8. 升级存储集群后重新部署 OSD


本节介绍了在从 Red Hat Ceph Storage 3 升级到 Red Hat Ceph Storage 4 后,如何在专用设备上使用 block.db 的 OSD,使用 block.db 来重新部署 OSD,而无需升级操作系统。

除非另有指定,否则此流程适用于裸机和容器部署。

升级后,重新部署 OSD 的 playbook 可能会失败,并显示出错信息:

GPT headers found, they must be removed on: /dev/vdb

您可以通过在 block.db 设备中创建分区并运行 Ansible playbook 来重新部署 OSD。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • Ansible 管理节点的 root 级别访问权限。
  • Ansible 用户帐户已创建。

流程

  1. block.db 设备上创建分区。这个 sgdisk 命令自动使用下一个可用分区号:

    语法

    sgdisk --new=0:0:_JOURNAL_SIZE_ -- NEW_DEVICE_PATH

    示例

    [root@admin ~]# sgdisk --new=0:0:+2G -- /dev/vdb

  2. 创建 host_vars 目录:

    [root@admin ~]# mkdir /usr/share/ceph-ansible/host_vars
  3. 进入 host_vars 目录:

    [root@admin ~]# cd /usr/share/ceph-ansible/host_vars
  4. 在存储集群的所有主机上创建 hosts 文件:

    语法

    touch NEW_OSD_HOST_NAME

    示例

    [root@admin host_vars]# touch osd5

  5. 在 hosts 文件中定义数据设备:

    语法

    lvm_volumes:
    - data: DATA_DEVICE_PATH
      journal: NEW_DEVICE_PARTITION_PATH
    - data: RUNNING_OSD_DATA_DEVICE_PATH
        journal: PARTITION_PATH
    - data: RUNNING_OSD_DATA_DEVICE_PATH
        journal: PARTITION_PATH

    示例

    lvm_volumes:
    - data: /dev/vdd
      journal: /dev/vdb2
    - data: /dev/sdb
      journal: /dev/sdc1
    - data: /dev/sdb
      journal: /dev/sdc2

  6. 切换到 Ansible 用户,验证 Ansible 能否访问所有 Ceph 节点:

    [admin@admin ~]$ ansible all -m ping
  7. 将目录改为 Ansible 配置目录:

    [admin@admin ~]$ cd /usr/share/ceph-ansible
  8. 使用 --limit 选项运行以下 Ansible playbook:

    • 裸机部署:

      [admin@admin ceph-ansible]$ ansible-playbook site.yml --limit osds -i hosts
    • 容器部署:

      [admin@admin ceph-ansible]$ ansible-playbook site-container.yml --limit osds -i hosts

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.