検索

1.3. Ceph OSD

download PDF

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 または UbuntuRequirements for Installing Red Hat Ceph Storageの章を参照してください。

1.3.2. コンテナーの OSD ID のドライブへのマッピング

場合によっては、コンテナー化された OSD が使用しているドライブを特定する必要がある場合があります。たとえば、OSD に問題がある場合には、ドライブのステータスを検証するために使用するドライブを把握しなければならない場合があります。また、コンテナー化されていない OSD の場合は、OSD ID を参照して開始および停止しますが、コンテナー化された OSD を開始および停止するには、使用するドライブを参照する必要があります。

前提条件

  • コンテナー化環境で実行中の Red Hat Ceph Storage クラスター
  • コンテナーホストへの root アクセス権限があること。

手順

  1. コンテナー名を見つけます。たとえば、osd.5 に関連付けられたドライブを特定するには、osd.5 が実行中のコンテナーノードでターミナルを開き、docker ps を実行してすべてのコンテナーを一覧表示します。

    [root@ceph3 ~]# docker ps
    CONTAINER ID        IMAGE                                                     COMMAND             CREATED             STATUS              PORTS               NAMES
    3a866f927b74        registry.access.redhat.com/rhceph/rhceph-3-rhel7:latest   "/entrypoint.sh"    About an hour ago   Up About an hour                        ceph-osd-ceph3-sdd
    91f3d4829079        registry.access.redhat.com/rhceph/rhceph-3-rhel7:latest   "/entrypoint.sh"    22 hours ago        Up 22 hours                             ceph-osd-ceph3-sdb
    73dfe4021a49        registry.access.redhat.com/rhceph/rhceph-3-rhel7:latest   "/entrypoint.sh"    7 days ago          Up 7 days                               ceph-osd-ceph3-sdf
    90f6d756af39        registry.access.redhat.com/rhceph/rhceph-3-rhel7:latest   "/entrypoint.sh"    7 days ago          Up 7 days                               ceph-osd-ceph3-sde
    e66d6e33b306        registry.access.redhat.com/rhceph/rhceph-3-rhel7:latest   "/entrypoint.sh"    7 days ago          Up 7 days                               ceph-mgr-ceph3
    733f37aafd23        registry.access.redhat.com/rhceph/rhceph-3-rhel7:latest   "/entrypoint.sh"    7 days ago          Up 7 days                               ceph-mon-ceph3

  2. docker exec を使用して、直前の出力から OSD コンテナー名上で ceph-volume lvm list を実行します。

    [root@ceph3 ~]# docker exec ceph-osd-ceph3-sdb ceph-volume lvm list
    ====== osd.5 =======
    
      [journal]    /dev/journals/journal1
    
          journal uuid              C65n7d-B1gy-cqX3-vZKY-ZoE0-IEYM-HnIJzs
          osd id                    1
          cluster fsid              ce454d91-d748-4751-a318-ff7f7aa18ffd
          type                      journal
          osd fsid                  661b24f8-e062-482b-8110-826ffe7f13fa
          data uuid                 SlEgHe-jX1H-QBQk-Sce0-RUls-8KlY-g8HgcZ
          journal device            /dev/journals/journal1
          data device               /dev/test_group/data-lv2
          devices                   /dev/sda
    
      [data]    /dev/test_group/data-lv2
    
          journal uuid              C65n7d-B1gy-cqX3-vZKY-ZoE0-IEYM-HnIJzs
          osd id                    1
          cluster fsid              ce454d91-d748-4751-a318-ff7f7aa18ffd
          type                      data
          osd fsid                  661b24f8-e062-482b-8110-826ffe7f13fa
          data uuid                 SlEgHe-jX1H-QBQk-Sce0-RUls-8KlY-g8HgcZ
          journal device            /dev/journals/journal1
          data device               /dev/test_group/data-lv2
          devices                   /dev/sdb

    この出力から、osd.5/dev/sdb に関連付けられていることがわかります。

関連情報

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 または UbuntuRequirements for Installing Red Hat Ceph Storage の章を参照してください。
  • 新規ノードへの root アクセスがあること。
  • ストレージクラスター内の他の OSD ノードと同じ数の OSD データドライブ。

手順

  1. [osds] セクションの下に Ceph OSD ノードを /etc/ansible/hosts ファイルに追加します。

    [osds]
    ...
    osd06
    $NEW_OSD_NODE_NAME

  2. Ansible が Ceph ノードに到達できることを確認します。

    [user@admin ~]$ ansible all -m ping
  3. Ansible 設定ディレクトリーに移動します。

    [user@admin ~]$ cd /usr/share/ceph-ansible
  4. add-osd.yml ファイルを /usr/share/ceph-ansible/ ディレクトリーにコピーします。

    [user@admin ceph-ansible]$ sudo cp infrastructure-playbooks/add-osd.yml .
  5. Ceph の通常のデプロイメントまたはコンテナー化されたデプロイメント向けに Ansible Playbook を実行します。

    [user@admin ceph-ansible]$ ansible-playbook add-osd.yml
    注記

    OSD を追加する際に、PGs were not reported as active+clean で Playbook が失敗する場合は、all.yml ファイルに以下の変数を設定し、再試行と遅延を調整します。

    # OSD handler checks
    handler_health_osd_check_retries: 50
    handler_health_osd_check_delay: 30

1.3.4. 異なるディスクトポロジーが設定された Ansible を使用した Ceph OSD の追加

異なるディスクトポロジーを持つ Ceph OSD については、新しい OSD ノードを既存のストレージクラスターに追加する 2 つの方法があります。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスター。
  • Installation Guide for Red Hat Enterprise Linux または UbuntuRequirements for Installing Red Hat Ceph Storage の章を参照してください。
  • 新規ノードへの root アクセスがあること。

手順

  1. 最初の操作

    1. [osds] セクションの下に、新しい Ceph OSD ノードを /etc/ansible/hosts ファイルに追加します。

      [osds]
      ...
      osd06
      $NEW_OSD_NODE_NAME

    2. ストレージクラスターに追加される新しい Ceph OSD ノードを /etc/ansible/host_vars/ ディレクトリーに作成します。

      構文

      touch /etc/ansible/host_vars/$NEW_OSD_NODE_NAME

      [root@admin ~]# touch /etc/ansible/host_vars/osd07

    3. 新しいファイルを編集し、devices: および dedicated_devices: セクションをファイルに追加します。以下の各セクションに、- およびスペースを追加してから、この OSD ノードのブロックデバイス名への完全パスを追加します。

      devices:
        - /dev/sdc
        - /dev/sdd
        - /dev/sde
        - /dev/sdf
      
      dedicated_devices:
        - /dev/sda
        - /dev/sda
        - /dev/sdb
        - /dev/sdb

    4. Ansible がすべての Ceph ノードに到達できることを確認します。

      [user@admin ~]$ ansible all -m ping
    5. ディレクトリーを Ansible 設定ディレクトリーに移動します。

      [user@admin ~]$ cd /usr/share/ceph-ansible
    6. add-osd.yml ファイルを /usr/share/ceph-ansible/ ディレクトリーにコピーします。

      [user@admin ceph-ansible]$ sudo cp infrastructure-playbooks/add-osd.yml .
    7. Ansible Playbook の実行:

      [user@admin ceph-ansible]$ ansible-playbook add-osd.yml
  2. 2 つ目の方法

    1. 新しい 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']"

    2. Ansible がすべての Ceph ノードに到達できることを確認します。

      [user@admin ~]$ ansible all -m ping
    3. ディレクトリーを Ansible 設定ディレクトリーに移動します。

      [user@admin ~]$ cd /usr/share/ceph-ansible
    4. add-osd.yml ファイルを /usr/share/ceph-ansible/ ディレクトリーにコピーします。

      [user@admin ceph-ansible]$ sudo cp infrastructure-playbooks/add-osd.yml .
    5. Ansible Playbook の実行:

      [user@admin ceph-ansible]$ ansible-playbook add-osd.yml

1.3.5. コマンドラインインターフェイスを使用した Ceph OSD の追加

OSD を Red Hat Ceph Storage に手動で追加するハイレベルのワークフローを以下に示します。

  1. ceph-osd パッケージをインストールして、新規 OSD インスタンスを作成します。
  2. OSD データおよびジャーナルドライブを準備してマウントします。
  3. 新規 OSD ノードを CRUSH マップに追加します。
  4. 所有者およびグループパーミッションを更新します。
  5. 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 または UbuntuRequirements for Installing Red Hat Ceph Storage の章を参照してください。
  • 新規ノードへの root アクセスがあること。

手順

  1. Red Hat Ceph Storage 3 OSD ソフトウェアリポジトリーを有効にします。

    Red Hat Enterprise Linux

    [root@osd ~]# subscription-manager repos --enable=rhel-7-server-rhceph-3-osd-els-rpms

    Ubuntu

    [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 -'

  2. /etc/ceph/ ディレクトリーを作成します。

    # mkdir /etc/ceph
  3. 新しい 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

    [root@osd ~]# scp root@node1:/etc/ceph/ceph.client.admin.keyring /etc/ceph/
    [root@osd ~]# scp root@node1:/etc/ceph/ceph.conf /etc/ceph/

  4. ceph-osd パッケージを新しい Ceph OSD ノードにインストールします。

    Red Hat Enterprise Linux

    [root@osd ~]# yum install ceph-osd

    Ubuntu

    [user@osd ~]$ sudo apt-get install ceph-osd

  5. 新規 OSD について、ジャーナルを共存させるか、または専用のジャーナルを使用するかどうかを決定します。

    注記

    --filestore オプションが必要です。

    1. ジャーナルを共存させる OSD の場合:

      構文

      [root@osd ~]# ceph-disk --setuser ceph --setgroup ceph prepare  --filestore /dev/$DEVICE_NAME

      [root@osd ~]# ceph-disk --setuser ceph --setgroup ceph prepare  --filestore /dev/sda

    2. 専用のジャーナルを持つ OSD の場合:

      構文

      [root@osd ~]# ceph-disk --setuser ceph --setgroup ceph prepare  --filestore /dev/$DEVICE_NAME /dev/$JOURNAL_DEVICE_NAME

      または

      [root@osd ~]# ceph-volume lvm prepare  --filestore --data /dev/$DEVICE_NAME --journal /dev/$JOURNAL_DEVICE_NAME

      [root@osd ~]# ceph-disk --setuser ceph --setgroup ceph prepare  --filestore /dev/sda /dev/sdb

      [root@osd ~]# ceph-volume lvm prepare  --filestore --data /dev/vg00/lvol1 --journal /dev/sdb
  6. noup オプションを設定します。

    [root@osd ~]# ceph osd set noup
  7. 新しい OSD をアクティベートします。

    構文

    [root@osd ~]# ceph-disk activate /dev/$DEVICE_NAME

    または

    [root@osd ~]# ceph-volume lvm activate --filestore $OSD_ID $OSD_FSID

    [root@osd ~]# ceph-disk activate /dev/sda

    [root@osd ~]# ceph-volume lvm activate --filestore 0 6cc43680-4f6e-4feb-92ff-9c7ba204120e
  8. OSD を CRUSH マップに追加します。

    構文

    ceph osd crush add $OSD_ID $WEIGHT [$BUCKET_TYPE=$BUCKET_NAME ...]

    [root@osd ~]# ceph osd crush add 4 1 host=node4

    注記

    複数のバケットを指定する場合、コマンドは OSD を指定したバケットから最も具体的なバケットに配置、および 指定した他のバケットに従ってバケットを移動します。

    注記

    CRUSH マップを手動で編集することもできます。Red Hat Ceph Storage 3 の Storage Strategies ガイドの Editing a CRUSH map セクションを参照してください。

    重要

    ルートバケットのみを指定する場合、OSD はルートに直接アタッチしますが、CRUSH ルールは OSD がホストバケット内に置かれることを想定します。

  9. noup オプションの設定を解除します。

    [root@osd ~]# ceph osd unset noup
  10. 新規作成されたディレクトリーの所有者とグループのパーミッションを更新します。

    構文

    chown -R $OWNER:$GROUP $PATH_TO_DIRECTORY

    [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

  11. カスタム名のクラスターを使用する場合は、以下の行を適切なファイルに追加します。

    Red Hat Enterprise Linux

    [root@osd ~]# echo "CLUSTER=$CLUSTER_NAME" >> /etc/sysconfig/ceph

    Ubuntu

    [user@osd ~]$ sudo echo "CLUSTER=$CLUSTER_NAME" >> /etc/default/ceph

    $CLUSTER_NAME は、カスタムクラスター名に置き換えます。

  12. 新規 OSD が 起動 し、データを受信する準備ができていることを確認するには、OSD サービスを有効にして起動します。

    構文

    systemctl enable ceph-osd@$OSD_ID
    systemctl start ceph-osd@$OSD_ID

    [root@osd ~]# systemctl enable ceph-osd@4
    [root@osd ~]# systemctl start ceph-osd@4

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_scenariocollocated または non-collocated に設定されている場合には、Playbook shrink-osd-ceph-disk.yml を使用します。osd_scenariolvm に設定した場合は、Playbook shrink-osd.yml を使用します。

重要

ストレージクラスターから OSD を削除すると、その OSD に含まれるすべてのデータが破棄されます。

前提条件

  • Ansible によりデプロイされた実行中の Red Hat Ceph Storage
  • 実行中の Ansible 管理ノード
  • Ansible 管理ノードへの root レベルのアクセス。

手順

  1. /usr/share/ceph-ansible/ ディレクトリーに移動します。

    [user@admin ~]$ cd /usr/share/ceph-ansible
  2. Ceph Monitor ノードの /etc/ceph/ から、削除する OSD が含まれるノードに管理キーリングをコピーします。
  3. infrastructure-playbooks ディレクトリーから現在のディレクトリーに、適切な Playbook をコピーします。

    [root@admin ceph-ansible]# cp infrastructure-playbooks/shrink-osd.yml .

    または

    [root@admin ceph-ansible]# cp infrastructure-playbooks/shrink-osd-ceph-disk.yml .
  4. ベアメタル または コンテナー のデプロイメントの場合は、適切な Ansible Playbook を実行します。

    構文

    ansible-playbook shrink-osd.yml -e osd_to_kill=$ID -u $ANSIBLE_USER

    または

    ansible-playbook shrink-osd-ceph-disk.yml -e osd_to_kill=$ID -u $ANSIBLE_USER

    以下を置き換えます。

    • $id は、OSD の ID に置き換えます。複数の OSD を削除するには、OSD ID をコンマで区切ります。
    • $ANSIBLE_USER は、Ansible ユーザーの名前に置き換えてください。

    [user@admin ceph-ansible]$ ansible-playbook shrink-osd.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
  5. OSD が正常に削除されていることを確認します。

    [root@mon ~]# ceph osd tree

関連情報

1.3.7. コマンドラインインターフェイスを使用した Ceph OSD の削除

ストレージクラスターから OSD を削除するには、クラスターマップの更新、その認証キーの削除、OSD マップからの OSD の削除、および ceph.conf ファイルからの OSD の削除を行う必要があります。ノードに複数のドライブがある場合は、この手順を繰り返して、それぞれのドライブについて OSD を削除する必要がある場合があります。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • 利用可能な OSD が十分になるようにして、ストレージクラスターが ほぼ完全 な比率にならないようにしてください。
  • OSD ノードへの root アクセス権限があること。

手順

  1. OSD サービスを無効にし、停止します。

    構文

    systemctl disable ceph-osd@$OSD_ID
    systemctl stop ceph-osd@$OSD_ID

    [root@osd ~]# systemctl disable ceph-osd@4
    [root@osd ~]# systemctl stop ceph-osd@4

    OSD が停止したら、停止 します。

  2. ストレージクラスターから OSD を削除します。

    構文

    ceph osd out $OSD_ID

    [root@osd ~]# ceph osd out 4

    重要

    OSD が削除されると、Ceph は再バランス調整を開始し、データをストレージクラスター内の他の OSD にコピーします。Red Hat は、次の手順に進む前に、ストレージクラスターが active+clean になるまで待つことを推奨します。データの移行を確認するには、以下のコマンドを実行します。

    [root@monitor ~]# ceph -w
  3. CRUSH マップから OSD を削除して、データを受信しないようにします。

    構文

    ceph osd crush remove $OSD_NAME

    [root@osd ~]# ceph osd crush remove osd.4

    注記

    CRUSH マップをコンパイルし、デバイス一覧から OSD を削除して、ホストバケットの項目としてデバイスを削除するか、またはホストバケットを削除することもできます。CRUSH マップにあり、ホストを削除するには、マップを再コンパイルしてからこれを設定します。詳細は、Storage Strategies Guide を参照してください。

  4. OSD 認証キーを削除します。

    構文

    ceph auth del osd.$OSD_ID

    [root@osd ~]# ceph auth del osd.4

  5. OSD を削除します。

    構文

    ceph osd rm $OSD_ID

    [root@osd ~]# ceph osd rm 4

  6. ストレージクラスターの設定ファイル (デフォルトでは /etc/ceph.conf) を編集して、OSD エントリーが存在する場合は削除します。

    [osd.4]
    host = $HOST_NAME

  7. OSD を手動で追加している場合は、/etc/fstab ファイルで OSD への参照を削除します。
  8. 更新された設定ファイルを、ストレージクラスター内の他のすべてのノードの /etc/ceph/ ディレクトリーにコピーします。

    構文

    scp /etc/ceph/$CLUSTER_NAME.conf $USER_NAME@$HOST_NAME:/etc/ceph/

    [root@osd ~]# scp /etc/ceph/ceph.conf root@node4:/etc/ceph/

1.3.8. コマンドラインインターフェイスを使用したジャーナルの置き換え

ジャーナルとデータデバイスが同じ物理デバイスにある場合 (osd_scenario: collocated を使用する場合など) にジャーナルを置き換えるには、OSD 全体を置き換える必要があります。ただし、ジャーナルがデータデバイスとは別の物理デバイスにある OSD では (osd_scenario: non-collocated を使用する場合)、ジャーナルデバイスのみを置き換えることができます。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスター
  • 新しいパーティションまたはストレージデバイス。

手順

  1. クラスターを noout に設定してバックフィルを防ぎます。

    [root@osd1 ~]# ceph osd set noout
  2. ジャーナルが変更された OSD を停止します。

    [root@osd1 ~]# systemctl stop ceph-osd@$OSD_ID
  3. OSD のジャーナルをフラッシュします。

    [root@osd1 ~]# ceph-osd -i $OSD_ID --flush-journal
  4. 古いジャーナルパーティションを削除して、パーティションの UUID が新しいパーティションと競合しないようにします。

    sgdisk --delete=$OLD_PART_NUM -- $OLD_DEV_PATH
    置き換え
    • $OLD_PART_NUM は、古いジャーナルデバイスのパーティション番号に置き換えます。
    • $OLD_DEV_PATH は、古いジャーナルデバイスへのパスに置き換えます。

    [root@osd1 ~]# sgdisk --delete=1 -- /dev/sda

  5. 新しいデバイスに新しいジャーナルパーティションを作成します。この sgdisk コマンドは、次に利用可能なパーティション番号を自動的に使用します。

    sgdisk --new=0:0:$JOURNAL_SIZE -- $NEW_DEV_PATH
    置き換え
    • $JOURNAL_SIZE は、環境に適したジャーナルサイズに置き換えます (例: 10240M)。
    • NEW_DEV_PATH は、新規ジャーナルに使用するデバイスへのパスに置き換えます。
    注記

    ジャーナルの最小デフォルトサイズは 5 GB です。通常、10 GB を超える値は必要ありません。詳細は、Red Hat サポート にお問い合わせください。

    [root@osd1 ~]# sgdisk --new=0:0:10240M -- /dev/sda

  6. 新しいパーティションに適切なパラメーターを設定します。

    sgdisk --change-name=0:"ceph journal" --partition-guid=0:$OLD_PART_UUID --typecode=0:45b0969e-9b03-4f30-b4c6-b4b80ceff106 --mbrtogpt -- $NEW_DEV_PATH
    置き換え
    • $OLD_PART_UUID は、関連する OSD の journal_uuid ファイルの UUID に置き換えます。たとえば、OSD が 0 の場合は、/var/lib/ceph/osd/ceph-0/journal_uuid の UUID を使用します。
    • NEW_DEV_PATH は、新規ジャーナルに使用するデバイスへのパスに置き換えます。

    [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

    上記の sgdisk コマンドを実行すると、新しいジャーナルパーティションが Ceph 用に準備され、ジャーナルを作成できます。

    重要

    sgdisk の制限により、パーティションが正常に作成されないため、このコマンドをパーティション作成コマンドと組み合わせることはできません。

  7. 新しいジャーナルを作成します。

    [root@osd1 ~]# ceph-osd -i $OSD_ID --mkjournal
  8. OSD を起動します。

    [root@osd1 ~]# systemctl start ceph-osd@$OSD_ID
  1. OSD で noout フラグを削除します。

    [root@osd1 ~]# ceph osd unset noout
  2. ジャーナルが正しいデバイスに関連付けられていることを確認します。

    [root@osd1 ~]# ceph-disk list

1.3.9. データ移行の監視

OSD を CRUSH マップに追加または削除すると、Ceph は配置グループを新規または既存の OSD に移行してデータのリバランスを開始します。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • 最近 OSD を追加または削除した。

手順

  1. データの移行を確認するには、以下を実行します。

    [root@monitor ~]# ceph -w
  2. 配置グループのステータスが active+clean から active, some degraded objects し、最後に移行の完了時に active+clean に変わるのを確認します。
  3. ユーティリティーを終了するには、Ctrl + C を押します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.