1.3. Ceph OSD
Red Hat Ceph Storage クラスターが稼働している場合は、ランタイム時に OSD をストレージクラスターに追加できます。
Ceph OSD は、通常 1 つのストレージドライブおよびノード内の関連付けられたジャーナル用に 1 つの ceph-osd
デーモンで設定されます。ノードに複数のストレージドライブがある場合は、ドライブごとに 1 つの ceph-osd
デーモンをマッピングします。
Red Hat は、クラスターの容量を定期的に確認して、ストレージ容量の最後に到達するかどうかを確認することを推奨します。ストレージクラスターが ほぼ完全
の比率に達すると、1 つ以上の OSD を追加してストレージクラスターの容量を拡張します。
Red Hat Ceph Storage クラスターのサイズを縮小したり、ハードウェアを置き換える場合は、ランタイム時に OSD を削除することも可能です。ノードに複数のストレージドライブがある場合には、そのドライブ用に ceph-osd
デーモンのいずれかを削除する必要もあります。通常、ストレージクラスターの容量を確認して、容量の上限に達したかどうかを確認することが推奨されます。ストレージクラスターが ほぼ完全
の比率ではないことを OSD を削除する場合。
OSD を追加する前に、ストレージクラスターが 完全な
比率を超えないようにします。ストレージクラスターが ほぼ完全な
比率に達した後に OSD の障害が発生すると、ストレージクラスターが 完全な
比率を超過する可能性があります。Ceph は、ストレージ容量の問題を解決するまでデータを保護するための書き込みアクセスをブロックします。完全な
比率の影響を考慮せずに OSD を削除しないでください。
1.3.1. Ceph OSD ノードの設定 リンクのコピーリンクがクリップボードにコピーされました!
同様に、Ceph OSD とサポートするハードウェアを、OSD を使用するプールのストレージストラテジーとして設定する必要があります。Ceph は、一貫性のあるパフォーマンスプロファイルを確保するために、プール全体でハードウェアを統一します。最適なパフォーマンスを得るには、同じタイプまたはサイズのドライブのある CRUSH 階層を検討してください。詳細は、Storage Strategiesを参照してください。
異なるサイズのドライブを追加する場合は、それに応じて重みを調整しなければならない場合があります。OSD を CRUSH マップに追加する場合は、新規 OSD の重みを考慮してください。ハードドライブの容量は、1 年あたり約 40% 増加するため、新しい OSD ノードはストレージクラスターの古いノードよりも大きなハードドライブを持つ可能性があります。つまり、重みが大きくなる可能性があります。
新規インストールを実行する前に、Installation Guide for Red Hat Enterprise Linux または UbuntuのRequirements for Installing Red Hat Ceph Storageの章を参照してください。
1.3.2. コンテナーの OSD ID のドライブへのマッピング リンクのコピーリンクがクリップボードにコピーされました!
場合によっては、コンテナー化された OSD が使用しているドライブを特定する必要がある場合があります。たとえば、OSD に問題がある場合には、ドライブのステータスを検証するために使用するドライブを把握しなければならない場合があります。また、コンテナー化されていない OSD の場合は、OSD ID を参照して開始および停止しますが、コンテナー化された OSD を開始および停止するには、使用するドライブを参照する必要があります。
前提条件
- コンテナー化環境で実行中の Red Hat Ceph Storage クラスター
-
コンテナーホストへの
root
アクセス権限があること。
手順
コンテナー名を見つけます。たとえば、
osd.5
に関連付けられたドライブを特定するには、osd.5
が実行中のコンテナーノードでターミナルを開き、docker ps
を実行してすべてのコンテナーを一覧表示します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow docker exec
を使用して、直前の出力から OSD コンテナー名上でceph-volume lvm list
を実行します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力から、
osd.5
が/dev/sdb
に関連付けられていることがわかります。
関連情報
- 詳細は、障害のある OSD ディスクの置き換えを参照してください。
1.3.3. 同じディスクトポロジーを持つ Ansible を使用した Ceph OSD の追加 リンクのコピーリンクがクリップボードにコピーされました!
同じディスクトポロジーを持つ Ceph OSD の場合には、Ansible は /usr/share/ceph-ansible/group_vars/osds
ファイルの devices:
セクションで指定されているのと同じデバイスパスを使用して、他の OSD ノードと同じ数の OSD を追加します。
新しい Ceph OSD ノードは、残りの OSD と同じ設定になります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスター。
- Installation Guide for Red Hat Enterprise Linux または Ubuntu の Requirements for Installing Red Hat Ceph Storage の章を参照してください。
-
新規ノードへの
root
アクセスがあること。 - ストレージクラスター内の他の OSD ノードと同じ数の OSD データドライブ。
手順
[osds]
セクションの下に Ceph OSD ノードを/etc/ansible/hosts
ファイルに追加します。例
[osds] ... osd06 $NEW_OSD_NODE_NAME
[osds] ... osd06 $NEW_OSD_NODE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible が Ceph ノードに到達できることを確認します。
ansible all -m ping
[user@admin ~]$ ansible all -m ping
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible 設定ディレクトリーに移動します。
cd /usr/share/ceph-ansible
[user@admin ~]$ cd /usr/share/ceph-ansible
Copy to Clipboard Copied! Toggle word wrap Toggle overflow add-osd.yml
ファイルを/usr/share/ceph-ansible/
ディレクトリーにコピーします。sudo cp infrastructure-playbooks/add-osd.yml .
[user@admin ceph-ansible]$ sudo cp infrastructure-playbooks/add-osd.yml .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph の通常のデプロイメントまたはコンテナー化されたデプロイメント向けに Ansible Playbook を実行します。
ansible-playbook add-osd.yml
[user@admin ceph-ansible]$ ansible-playbook add-osd.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OSD を追加する際に、
PGs were not reported as active+clean
で Playbook が失敗する場合は、all.yml
ファイルに以下の変数を設定し、再試行と遅延を調整します。OSD handler checks
# OSD handler checks handler_health_osd_check_retries: 50 handler_health_osd_check_delay: 30
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3.4. 異なるディスクトポロジーが設定された Ansible を使用した Ceph OSD の追加 リンクのコピーリンクがクリップボードにコピーされました!
異なるディスクトポロジーを持つ Ceph OSD については、新しい OSD ノードを既存のストレージクラスターに追加する 2 つの方法があります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスター。
- Installation Guide for Red Hat Enterprise Linux または Ubuntu の Requirements for Installing Red Hat Ceph Storage の章を参照してください。
-
新規ノードへの
root
アクセスがあること。
手順
最初の操作
[osds]
セクションの下に、新しい Ceph OSD ノードを/etc/ansible/hosts
ファイルに追加します。例
[osds] ... osd06 $NEW_OSD_NODE_NAME
[osds] ... osd06 $NEW_OSD_NODE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージクラスターに追加される新しい Ceph OSD ノードを
/etc/ansible/host_vars/
ディレクトリーに作成します。構文
touch /etc/ansible/host_vars/$NEW_OSD_NODE_NAME
touch /etc/ansible/host_vars/$NEW_OSD_NODE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
touch /etc/ansible/host_vars/osd07
[root@admin ~]# touch /etc/ansible/host_vars/osd07
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいファイルを編集し、
devices:
およびdedicated_devices:
セクションをファイルに追加します。以下の各セクションに、-
およびスペースを追加してから、この OSD ノードのブロックデバイス名への完全パスを追加します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible がすべての Ceph ノードに到達できることを確認します。
ansible all -m ping
[user@admin ~]$ ansible all -m ping
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ディレクトリーを Ansible 設定ディレクトリーに移動します。
cd /usr/share/ceph-ansible
[user@admin ~]$ cd /usr/share/ceph-ansible
Copy to Clipboard Copied! Toggle word wrap Toggle overflow add-osd.yml
ファイルを/usr/share/ceph-ansible/
ディレクトリーにコピーします。sudo cp infrastructure-playbooks/add-osd.yml .
[user@admin ceph-ansible]$ sudo cp infrastructure-playbooks/add-osd.yml .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook の実行:
ansible-playbook add-osd.yml
[user@admin ceph-ansible]$ ansible-playbook add-osd.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2 つ目の方法
新しい OSD ノード名を
/etc/ansible/hosts
ファイルに追加し、devices
オプションおよびdedicated_devices
オプションを使用して、異なるディスクトポロジーを指定します。例
[osds] ... osd07 devices="['/dev/sdc', '/dev/sdd', '/dev/sde', '/dev/sdf']" dedicated_devices="['/dev/sda', '/dev/sda', '/dev/sdb', '/dev/sdb']"
[osds] ... osd07 devices="['/dev/sdc', '/dev/sdd', '/dev/sde', '/dev/sdf']" dedicated_devices="['/dev/sda', '/dev/sda', '/dev/sdb', '/dev/sdb']"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible がすべての Ceph ノードに到達できることを確認します。
ansible all -m ping
[user@admin ~]$ ansible all -m ping
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ディレクトリーを Ansible 設定ディレクトリーに移動します。
cd /usr/share/ceph-ansible
[user@admin ~]$ cd /usr/share/ceph-ansible
Copy to Clipboard Copied! Toggle word wrap Toggle overflow add-osd.yml
ファイルを/usr/share/ceph-ansible/
ディレクトリーにコピーします。sudo cp infrastructure-playbooks/add-osd.yml .
[user@admin ceph-ansible]$ sudo cp infrastructure-playbooks/add-osd.yml .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook の実行:
ansible-playbook add-osd.yml
[user@admin ceph-ansible]$ ansible-playbook add-osd.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3.5. コマンドラインインターフェイスを使用した Ceph OSD の追加 リンクのコピーリンクがクリップボードにコピーされました!
OSD を Red Hat Ceph Storage に手動で追加するハイレベルのワークフローを以下に示します。
-
ceph-osd
パッケージをインストールして、新規 OSD インスタンスを作成します。 - OSD データおよびジャーナルドライブを準備してマウントします。
- 新規 OSD ノードを CRUSH マップに追加します。
- 所有者およびグループパーミッションを更新します。
-
ceph-osd
デーモンを有効にして起動します。
ceph-disk
コマンドは非推奨となりました。ceph-volume
コマンドは、コマンドラインインターフェイスから OSD をデプロイするのに推奨される方法です。現在、ceph-volume
コマンドは lvm
プラグインのみをサポートしています。Red Hat は、本ガイドで両方のコマンドを参照として使用している例を提供します。これにより、ストレージ管理者は ceph-disk
に依存するカスタムスクリプトを ceph-volume
に変換できます。
ceph-volume
コマンドの使用方法は、Red Hat Ceph Storage Administration Guideを参照してください。
カスタムストレージクラスター名の場合は、ceph
コマンドおよび ceph-osd
コマンドで --cluster $CLUSTER_NAME
オプションを使用します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスター。
- Installation Guide for Red Hat Enterprise Linux または Ubuntu の Requirements for Installing Red Hat Ceph Storage の章を参照してください。
-
新規ノードへの
root
アクセスがあること。
手順
Red Hat Ceph Storage 3 OSD ソフトウェアリポジトリーを有効にします。
Red Hat Enterprise Linux
subscription-manager repos --enable=rhel-7-server-rhceph-3-osd-els-rpms
[root@osd ~]# subscription-manager repos --enable=rhel-7-server-rhceph-3-osd-els-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ubuntu
sudo bash -c 'umask 0077; echo deb https://customername:customerpasswd@rhcs.download.redhat.com/3-updates/Tools $(lsb_release -sc) main | tee /etc/apt/sources.list.d/Tools.list' sudo bash -c 'wget -O - https://www.redhat.com/security/fd431d51.txt | apt-key add -'
[user@osd ~]$ sudo bash -c 'umask 0077; echo deb https://customername:customerpasswd@rhcs.download.redhat.com/3-updates/Tools $(lsb_release -sc) main | tee /etc/apt/sources.list.d/Tools.list' [user@osd ~]$ sudo bash -c 'wget -O - https://www.redhat.com/security/fd431d51.txt | apt-key add -'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/ceph/
ディレクトリーを作成します。mkdir /etc/ceph
# mkdir /etc/ceph
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい OSD ノードで、Ceph 管理キーリングと設定ファイルを Ceph Monitor ノードの 1 つからコピーします。
構文
scp $USER_NAME@$MONITOR_HOST_NAME:/etc/ceph/$CLUSTER_NAME.client.admin.keyring /etc/ceph scp $USER_NAME@$MONITOR_HOST_NAME:/etc/ceph/$CLUSTER_NAME.conf /etc/ceph
scp $USER_NAME@$MONITOR_HOST_NAME:/etc/ceph/$CLUSTER_NAME.client.admin.keyring /etc/ceph scp $USER_NAME@$MONITOR_HOST_NAME:/etc/ceph/$CLUSTER_NAME.conf /etc/ceph
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp root@node1:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ scp root@node1:/etc/ceph/ceph.conf /etc/ceph/
[root@osd ~]# scp root@node1:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ [root@osd ~]# scp root@node1:/etc/ceph/ceph.conf /etc/ceph/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-osd
パッケージを新しい Ceph OSD ノードにインストールします。Red Hat Enterprise Linux
yum install ceph-osd
[root@osd ~]# yum install ceph-osd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ubuntu
sudo apt-get install ceph-osd
[user@osd ~]$ sudo apt-get install ceph-osd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規 OSD について、ジャーナルを共存させるか、または専用のジャーナルを使用するかどうかを決定します。
注記--filestore
オプションが必要です。ジャーナルを共存させる OSD の場合:
構文
ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/$DEVICE_NAME
[root@osd ~]# ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/$DEVICE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/sda
[root@osd ~]# ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/sda
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 専用のジャーナルを持つ OSD の場合:
構文
ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/$DEVICE_NAME /dev/$JOURNAL_DEVICE_NAME
[root@osd ~]# ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/$DEVICE_NAME /dev/$JOURNAL_DEVICE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または
ceph-volume lvm prepare --filestore --data /dev/$DEVICE_NAME --journal /dev/$JOURNAL_DEVICE_NAME
[root@osd ~]# ceph-volume lvm prepare --filestore --data /dev/$DEVICE_NAME --journal /dev/$JOURNAL_DEVICE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/sda /dev/sdb
[root@osd ~]# ceph-disk --setuser ceph --setgroup ceph prepare --filestore /dev/sda /dev/sdb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-volume lvm prepare --filestore --data /dev/vg00/lvol1 --journal /dev/sdb
[root@osd ~]# ceph-volume lvm prepare --filestore --data /dev/vg00/lvol1 --journal /dev/sdb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
noup
オプションを設定します。ceph osd set noup
[root@osd ~]# ceph osd set noup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい OSD をアクティベートします。
構文
ceph-disk activate /dev/$DEVICE_NAME
[root@osd ~]# ceph-disk activate /dev/$DEVICE_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または
ceph-volume lvm activate --filestore $OSD_ID $OSD_FSID
[root@osd ~]# ceph-volume lvm activate --filestore $OSD_ID $OSD_FSID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph-disk activate /dev/sda
[root@osd ~]# ceph-disk activate /dev/sda
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-volume lvm activate --filestore 0 6cc43680-4f6e-4feb-92ff-9c7ba204120e
[root@osd ~]# ceph-volume lvm activate --filestore 0 6cc43680-4f6e-4feb-92ff-9c7ba204120e
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD を CRUSH マップに追加します。
構文
ceph osd crush add $OSD_ID $WEIGHT [$BUCKET_TYPE=$BUCKET_NAME ...]
ceph osd crush add $OSD_ID $WEIGHT [$BUCKET_TYPE=$BUCKET_NAME ...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph osd crush add 4 1 host=node4
[root@osd ~]# ceph osd crush add 4 1 host=node4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記複数のバケットを指定する場合、コマンドは OSD を指定したバケットから最も具体的なバケットに配置、および 指定した他のバケットに従ってバケットを移動します。
注記CRUSH マップを手動で編集することもできます。Red Hat Ceph Storage 3 の Storage Strategies ガイドの Editing a CRUSH map セクションを参照してください。
重要ルートバケットのみを指定する場合、OSD はルートに直接アタッチしますが、CRUSH ルールは OSD がホストバケット内に置かれることを想定します。
noup
オプションの設定を解除します。ceph osd unset noup
[root@osd ~]# ceph osd unset noup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規作成されたディレクトリーの所有者とグループのパーミッションを更新します。
構文
chown -R $OWNER:$GROUP $PATH_TO_DIRECTORY
chown -R $OWNER:$GROUP $PATH_TO_DIRECTORY
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
chown -R ceph:ceph /var/lib/ceph/osd chown -R ceph:ceph /var/log/ceph chown -R ceph:ceph /var/run/ceph chown -R ceph:ceph /etc/ceph
[root@osd ~]# chown -R ceph:ceph /var/lib/ceph/osd [root@osd ~]# chown -R ceph:ceph /var/log/ceph [root@osd ~]# chown -R ceph:ceph /var/run/ceph [root@osd ~]# chown -R ceph:ceph /etc/ceph
Copy to Clipboard Copied! Toggle word wrap Toggle overflow カスタム名のクラスターを使用する場合は、以下の行を適切なファイルに追加します。
Red Hat Enterprise Linux
echo "CLUSTER=$CLUSTER_NAME" >> /etc/sysconfig/ceph
[root@osd ~]# echo "CLUSTER=$CLUSTER_NAME" >> /etc/sysconfig/ceph
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ubuntu
sudo echo "CLUSTER=$CLUSTER_NAME" >> /etc/default/ceph
[user@osd ~]$ sudo echo "CLUSTER=$CLUSTER_NAME" >> /etc/default/ceph
Copy to Clipboard Copied! Toggle word wrap Toggle overflow $CLUSTER_NAME
は、カスタムクラスター名に置き換えます。新規 OSD が
起動
し、データを受信する準備ができていることを確認するには、OSD サービスを有効にして起動します。構文
systemctl enable ceph-osd@$OSD_ID systemctl start ceph-osd@$OSD_ID
systemctl enable ceph-osd@$OSD_ID systemctl start ceph-osd@$OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl enable ceph-osd@4 systemctl start ceph-osd@4
[root@osd ~]# systemctl enable ceph-osd@4 [root@osd ~]# systemctl start ceph-osd@4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3.6. Ansible を使用した Ceph OSD の削除 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage クラスターの容量をスケールダウンしないといけない場合があります。Ansible を使用して Red Hat Ceph Storage クラスターから OSD を削除するには、使用する OSD のシナリオに応じて、Playbook shrink-osd.yml
または shrink-osd-ceph-disk.yml
を実行します。osd_scenario
が collocated
または non-collocated
に設定されている場合には、Playbook shrink-osd-ceph-disk.yml
を使用します。osd_scenario
を lvm
に設定した場合は、Playbook shrink-osd.yml
を使用します。
ストレージクラスターから OSD を削除すると、その OSD に含まれるすべてのデータが破棄されます。
前提条件
- Ansible によりデプロイされた実行中の Red Hat Ceph Storage
- 実行中の Ansible 管理ノード
- Ansible 管理ノードへの root レベルのアクセス。
手順
/usr/share/ceph-ansible/
ディレクトリーに移動します。cd /usr/share/ceph-ansible
[user@admin ~]$ cd /usr/share/ceph-ansible
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Ceph Monitor ノードの
/etc/ceph/
から、削除する OSD が含まれるノードに管理キーリングをコピーします。 infrastructure-playbooks
ディレクトリーから現在のディレクトリーに、適切な Playbook をコピーします。cp infrastructure-playbooks/shrink-osd.yml .
[root@admin ceph-ansible]# cp infrastructure-playbooks/shrink-osd.yml .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または
cp infrastructure-playbooks/shrink-osd-ceph-disk.yml .
[root@admin ceph-ansible]# cp infrastructure-playbooks/shrink-osd-ceph-disk.yml .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ベアメタル または コンテナー のデプロイメントの場合は、適切な Ansible Playbook を実行します。
構文
ansible-playbook shrink-osd.yml -e osd_to_kill=$ID -u $ANSIBLE_USER
ansible-playbook shrink-osd.yml -e osd_to_kill=$ID -u $ANSIBLE_USER
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または
ansible-playbook shrink-osd-ceph-disk.yml -e osd_to_kill=$ID -u $ANSIBLE_USER
ansible-playbook shrink-osd-ceph-disk.yml -e osd_to_kill=$ID -u $ANSIBLE_USER
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を置き換えます。
-
$id
は、OSD の ID に置き換えます。複数の OSD を削除するには、OSD ID をコンマで区切ります。 -
$ANSIBLE_USER
は、Ansible ユーザーの名前に置き換えてください。
例
ansible-playbook shrink-osd.yml -e osd_to_kill=1 -u user
[user@admin ceph-ansible]$ ansible-playbook shrink-osd.yml -e osd_to_kill=1 -u user
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または
ansible-playbook shrink-osd-ceph-disk.yml -e osd_to_kill=1 -u user
[user@admin ceph-ansible]$ ansible-playbook shrink-osd-ceph-disk.yml -e osd_to_kill=1 -u user
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
OSD が正常に削除されていることを確認します。
ceph osd tree
[root@mon ~]# ceph osd tree
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- 詳細は、Red Hat Enterprise Linux または UbuntuのRed Hat Ceph Storage Installation Guideを参照してください。
1.3.7. コマンドラインインターフェイスを使用した Ceph OSD の削除 リンクのコピーリンクがクリップボードにコピーされました!
ストレージクラスターから OSD を削除するには、クラスターマップの更新、その認証キーの削除、OSD マップからの OSD の削除、および ceph.conf
ファイルからの OSD の削除を行う必要があります。ノードに複数のドライブがある場合は、この手順を繰り返して、それぞれのドライブについて OSD を削除する必要がある場合があります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
-
利用可能な OSD が十分になるようにして、ストレージクラスターが
ほぼ完全
な比率にならないようにしてください。 -
OSD ノードへの
root
アクセス権限があること。
手順
OSD サービスを無効にし、停止します。
構文
systemctl disable ceph-osd@$OSD_ID systemctl stop ceph-osd@$OSD_ID
systemctl disable ceph-osd@$OSD_ID systemctl stop ceph-osd@$OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl disable ceph-osd@4 systemctl stop ceph-osd@4
[root@osd ~]# systemctl disable ceph-osd@4 [root@osd ~]# systemctl stop ceph-osd@4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD が停止したら、
停止
します。ストレージクラスターから OSD を削除します。
構文
ceph osd out $OSD_ID
ceph osd out $OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph osd out 4
[root@osd ~]# ceph osd out 4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要OSD が削除されると、Ceph は再バランス調整を開始し、データをストレージクラスター内の他の OSD にコピーします。Red Hat は、次の手順に進む前に、ストレージクラスターが
active+clean
になるまで待つことを推奨します。データの移行を確認するには、以下のコマンドを実行します。ceph -w
[root@monitor ~]# ceph -w
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CRUSH マップから OSD を削除して、データを受信しないようにします。
構文
ceph osd crush remove $OSD_NAME
ceph osd crush remove $OSD_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph osd crush remove osd.4
[root@osd ~]# ceph osd crush remove osd.4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記CRUSH マップをコンパイルし、デバイス一覧から OSD を削除して、ホストバケットの項目としてデバイスを削除するか、またはホストバケットを削除することもできます。CRUSH マップにあり、ホストを削除するには、マップを再コンパイルしてからこれを設定します。詳細は、Storage Strategies Guide を参照してください。
OSD 認証キーを削除します。
構文
ceph auth del osd.$OSD_ID
ceph auth del osd.$OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph auth del osd.4
[root@osd ~]# ceph auth del osd.4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD を削除します。
構文
ceph osd rm $OSD_ID
ceph osd rm $OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
ceph osd rm 4
[root@osd ~]# ceph osd rm 4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージクラスターの設定ファイル (デフォルトでは
/etc/ceph.conf
) を編集して、OSD エントリーが存在する場合は削除します。例
[osd.4] host = $HOST_NAME
[osd.4] host = $HOST_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
OSD を手動で追加している場合は、
/etc/fstab
ファイルで OSD への参照を削除します。 更新された設定ファイルを、ストレージクラスター内の他のすべてのノードの
/etc/ceph/
ディレクトリーにコピーします。構文
scp /etc/ceph/$CLUSTER_NAME.conf $USER_NAME@$HOST_NAME:/etc/ceph/
scp /etc/ceph/$CLUSTER_NAME.conf $USER_NAME@$HOST_NAME:/etc/ceph/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
scp /etc/ceph/ceph.conf root@node4:/etc/ceph/
[root@osd ~]# scp /etc/ceph/ceph.conf root@node4:/etc/ceph/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3.8. コマンドラインインターフェイスを使用したジャーナルの置き換え リンクのコピーリンクがクリップボードにコピーされました!
ジャーナルとデータデバイスが同じ物理デバイスにある場合 (osd_scenario: collocated
を使用する場合など) にジャーナルを置き換えるには、OSD 全体を置き換える必要があります。ただし、ジャーナルがデータデバイスとは別の物理デバイスにある OSD では (osd_scenario: non-collocated
を使用する場合)、ジャーナルデバイスのみを置き換えることができます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスター
- 新しいパーティションまたはストレージデバイス。
手順
クラスターを
noout
に設定してバックフィルを防ぎます。ceph osd set noout
[root@osd1 ~]# ceph osd set noout
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ジャーナルが変更された OSD を停止します。
systemctl stop ceph-osd@$OSD_ID
[root@osd1 ~]# systemctl stop ceph-osd@$OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD のジャーナルをフラッシュします。
ceph-osd -i $OSD_ID --flush-journal
[root@osd1 ~]# ceph-osd -i $OSD_ID --flush-journal
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 古いジャーナルパーティションを削除して、パーティションの UUID が新しいパーティションと競合しないようにします。
sgdisk --delete=$OLD_PART_NUM -- $OLD_DEV_PATH
sgdisk --delete=$OLD_PART_NUM -- $OLD_DEV_PATH
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 置き換え
-
$OLD_PART_NUM
は、古いジャーナルデバイスのパーティション番号に置き換えます。 -
$OLD_DEV_PATH
は、古いジャーナルデバイスへのパスに置き換えます。
-
例
sgdisk --delete=1 -- /dev/sda
[root@osd1 ~]# sgdisk --delete=1 -- /dev/sda
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいデバイスに新しいジャーナルパーティションを作成します。この
sgdisk
コマンドは、次に利用可能なパーティション番号を自動的に使用します。sgdisk --new=0:0:$JOURNAL_SIZE -- $NEW_DEV_PATH
sgdisk --new=0:0:$JOURNAL_SIZE -- $NEW_DEV_PATH
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 置き換え
-
$JOURNAL_SIZE
は、環境に適したジャーナルサイズに置き換えます (例:10240M
)。 -
NEW_DEV_PATH
は、新規ジャーナルに使用するデバイスへのパスに置き換えます。
-
注記ジャーナルの最小デフォルトサイズは 5 GB です。通常、10 GB を超える値は必要ありません。詳細は、Red Hat サポート にお問い合わせください。
例
sgdisk --new=0:0:10240M -- /dev/sda
[root@osd1 ~]# sgdisk --new=0:0:10240M -- /dev/sda
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいパーティションに適切なパラメーターを設定します。
sgdisk --change-name=0:"ceph journal" --partition-guid=0:$OLD_PART_UUID --typecode=0:45b0969e-9b03-4f30-b4c6-b4b80ceff106 --mbrtogpt -- $NEW_DEV_PATH
sgdisk --change-name=0:"ceph journal" --partition-guid=0:$OLD_PART_UUID --typecode=0:45b0969e-9b03-4f30-b4c6-b4b80ceff106 --mbrtogpt -- $NEW_DEV_PATH
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 置き換え
-
$OLD_PART_UUID
は、関連する OSD のjournal_uuid
ファイルの UUID に置き換えます。たとえば、OSD が0
の場合は、/var/lib/ceph/osd/ceph-0/journal_uuid
の UUID を使用します。 -
NEW_DEV_PATH
は、新規ジャーナルに使用するデバイスへのパスに置き換えます。
-
例
sgdisk --change-name=0:"ceph journal" --partition-guid=0:a1279726-a32d-4101-880d-e8573bb11c16 --typecode=0:097c058d-0758-4199-a787-ce9bacb13f48 --mbrtogpt -- /dev/sda
[root@osd1 ~]# sgdisk --change-name=0:"ceph journal" --partition-guid=0:a1279726-a32d-4101-880d-e8573bb11c16 --typecode=0:097c058d-0758-4199-a787-ce9bacb13f48 --mbrtogpt -- /dev/sda
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の
sgdisk
コマンドを実行すると、新しいジャーナルパーティションが Ceph 用に準備され、ジャーナルを作成できます。重要sgdisk
の制限により、パーティションが正常に作成されないため、このコマンドをパーティション作成コマンドと組み合わせることはできません。新しいジャーナルを作成します。
ceph-osd -i $OSD_ID --mkjournal
[root@osd1 ~]# ceph-osd -i $OSD_ID --mkjournal
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OSD を起動します。
systemctl start ceph-osd@$OSD_ID
[root@osd1 ~]# systemctl start ceph-osd@$OSD_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
OSD で
noout
フラグを削除します。ceph osd unset noout
[root@osd1 ~]# ceph osd unset noout
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ジャーナルが正しいデバイスに関連付けられていることを確認します。
ceph-disk list
[root@osd1 ~]# ceph-disk list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3.9. データ移行の監視 リンクのコピーリンクがクリップボードにコピーされました!
OSD を CRUSH マップに追加または削除すると、Ceph は配置グループを新規または既存の OSD に移行してデータのリバランスを開始します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- 最近 OSD を追加または削除した。
手順
データの移行を確認するには、以下を実行します。
ceph -w
[root@monitor ~]# ceph -w
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
配置グループのステータスが
active+clean
からactive, some degraded objects
し、最後に移行の完了時にactive+clean
に変わるのを確認します。 -
ユーティリティーを終了するには、
Ctrl + C
を押します。