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 用户帐户已创建。
流程
在
block.db
设备上创建分区。这个sgdisk
命令自动使用下一个可用分区号:语法
sgdisk --new=0:0:_JOURNAL_SIZE_ -- NEW_DEVICE_PATH
示例
[root@admin ~]# sgdisk --new=0:0:+2G -- /dev/vdb
创建
host_vars
目录:[root@admin ~]# mkdir /usr/share/ceph-ansible/host_vars
进入
host_vars
目录:[root@admin ~]# cd /usr/share/ceph-ansible/host_vars
在存储集群的所有主机上创建 hosts 文件:
语法
touch NEW_OSD_HOST_NAME
示例
[root@admin host_vars]# touch osd5
在 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
切换到 Ansible 用户,验证 Ansible 能否访问所有 Ceph 节点:
[admin@admin ~]$ ansible all -m ping
将目录改为 Ansible 配置目录:
[admin@admin ~]$ cd /usr/share/ceph-ansible
使用
--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
其它资源
- 如需有关部署 OSD 的更多信息 ,请参阅 Red Hat Ceph Storage Operations 指南中的 处理磁盘失败 部分。