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
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
sgdisk --new=0:0:_JOURNAL_SIZE_ -- NEW_DEVICE_PATH
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
sgdisk --new=0:0:+2G -- /dev/vdb
[root@admin ~]# sgdisk --new=0:0:+2G -- /dev/vdb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
host_vars
目录:mkdir /usr/share/ceph-ansible/host_vars
[root@admin ~]# mkdir /usr/share/ceph-ansible/host_vars
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 进入
host_vars
目录:cd /usr/share/ceph-ansible/host_vars
[root@admin ~]# cd /usr/share/ceph-ansible/host_vars
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在存储集群的所有主机上创建 hosts 文件:
语法
touch NEW_OSD_HOST_NAME
touch NEW_OSD_HOST_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
touch osd5
[root@admin host_vars]# touch osd5
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 hosts 文件中定义数据设备:
语法
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 切换到 Ansible 用户,验证 Ansible 能否访问所有 Ceph 节点:
ansible all -m ping
[admin@admin ~]$ ansible all -m ping
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将目录改为 Ansible 配置目录:
cd /usr/share/ceph-ansible
[admin@admin ~]$ cd /usr/share/ceph-ansible
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
--limit
选项运行以下 Ansible playbook:裸机部署:
ansible-playbook site.yml --limit osds -i hosts
[admin@admin ceph-ansible]$ ansible-playbook site.yml --limit osds -i hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 容器部署:
ansible-playbook site-container.yml --limit osds -i hosts
[admin@admin ceph-ansible]$ ansible-playbook site-container.yml --limit osds -i hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow