5.8. ストレージクラスターのアップグレード後の OSD の再デプロイ
本セクションでは、オペレーティングシステムをアップグレードせずに、Red Hat Ceph Storage 3 から専用のデバイスに block.db
を使用する OSD 用の配置されていないデーモンを持つ Red Hat Ceph Storage 4 にアップグレードした後に OSDS を再デプロイする方法を説明します。
この手順は、指定しない限り、ベアメタルおよびコンテナーのデプロイメントの両方に適用されます。
アップグレード後は、OSD を再デプロイする Playbook が以下のエラーメッセージと共に失敗する可能性があります。
GPT headers found, they must be removed on: /dev/vdb
block.db
デバイスにパーティションを作成し、Ansible Playbook を実行して OSD を再デプロイできます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスター。
- Ansible 管理ノードへのルートレベルのアクセス。
- Ansible ユーザーアカウントが作成されている。
手順
block.db
デバイスにパーティションを作成します。このsgdisk
コマンドは、次に利用可能なパーティション番号を自動的に使用します。Syntax
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 ファイルを作成します。
Syntax
touch NEW_OSD_HOST_NAME
例
[root@admin host_vars]# touch osd5
hosts ファイルで、データデバイスを定義します。
Syntax
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 Guideの Handling a disk failure セクションを参照してください