4.3. ストレージクラスターのアップグレード


手順

Ansible の管理ノードから以下のコマンドを使用します。

  1. root ユーザーとして、/usr/share/ceph-ansible/ ディレクトリーにナビゲートします。

    [root@admin ~]# cd /usr/share/ceph-ansible/
  2. Red Hat Ceph Storage バージョン 3.x から最新バージョンにアップグレードする場合は、この手順をスキップします。group_vars/all.yml ファイルおよび group_vars/osds.yml ファイルをバックアップします。

    [root@admin ceph-ansible]# cp group_vars/all.yml group_vars/all_old.yml
    [root@admin ceph-ansible]# cp group_vars/osds.yml group_vars/osds_old.yml
    [root@admin ceph-ansible]# cp group_vars/clients.yml group_vars/clients_old.yml
  3. Red Hat Ceph Storage バージョン 3.x から最新バージョンにアップグレードする場合は、この手順をスキップします。Red Hat Ceph Storage 2.x から 3.x にアップグレードする場合は、group_vars/all.yml.samplegroup_vars/osds.yml.samplegroup_vars/clients.yml.sample ファイルの新しいコピーを作成して、それぞれ group_vars/all.ymlgroup_vars/osds.ymlgroup_vars/clients.yml に名前を変更します。それらを開いて編集します。詳しくは、付録A バージョン 2 と 3 の間の Ansible 変数の変更「コンテナーへの Red Hat Ceph Storage Cluster のインストール」 をご覧ください。

    [root@admin ceph-ansible]# cp group_vars/all.yml.sample group_vars/all.yml
    [root@admin ceph-ansible]# cp group_vars/osds.yml.sample group_vars/osds.yml
    [root@admin ceph-ansible]# cp group_vars/clients.yml.sample group_vars/clients.yml
  4. Red Hat Ceph Storage バージョン 3.x から最新バージョンにアップグレードする場合は、この手順をスキップします。Red Hat Ceph Storage 2.x から 3.x にアップグレードする場合は、group_vars/clients.yml ファイルを開き、以下の行をアンコメントします。

    keys:
      - { name: client.test, caps: { mon: "allow r", osd: "allow class-read object_prefix rbd_children, allow rwx pool=test" },  mode: "{{ ceph_keyring_permissions }}" }
    1. client.test を実際のクライアント名に置き換え、クライアントキーをクライアント定義の行に追加します。以下に例を示します。

      key: "ADD-KEYRING-HERE=="

      これで、行全体の例は次のようになります。

      - { name: client.test, key: "AQAin8tUMICVFBAALRHNrV0Z4MXupRw4v9JQ6Q==", caps: { mon: "allow r", osd: "allow class-read object_prefix rbd_children, allow rwx pool=test" },  mode: "{{ ceph_keyring_permissions }}" }
      注記

      クライアントキーを取得するには、ceph auth get-or-create コマンドを実行して、指定されたクライアントのキーを表示します。

  5. 2.x から 3.x にアップグレードする場合、group_vars/all.yml ファイルで ceph_docker_image パラメーターを変更して、Ceph 3 コンテナーのバージョンを指すようにします。

    ceph_docker_image: rhceph/rhceph-3-rhel7
  6. group_vars/all.yml ファイルに fetch_directory パラメーターを追加してください。

    fetch_directory: <full_directory_path>

    以下を置き換えます。

    • <full_directory_path> を、書き込み可能な場所 (Ansible ユーザーのホームディレクトリーなど) に置き換えます。ストレージクラスターの初期インストール時に使用した既存のパスを入力してください。

    既存のパスが失われていたり、なくなっていたりする場合は、まず次のことを行ってください。

    1. 既存の group_vars/all.yml ファイルに以下のオプションを追加します。

      fsid: <add_the_fsid>
      generate_fsid: false
    2. take-over-existing-cluster.yml Ansible playbook を実行します。

      [user@admin ceph-ansible]$ cp infrastructure-playbooks/take-over-existing-cluster.yml .
      [user@admin ceph-ansible]$ ansible-playbook take-over-existing-cluster.yml
  7. アップグレードするクラスターに Ceph Object Gateway ノードが含まれている場合は、radosgw_interface パラメーターを group_vars/all.yml ファイルに追加します。

    radosgw_interface: <interface>

    以下を置き換えます。

    • Ceph Object Gateway がリッスンするインターフェースを使用する <interface>
  8. Red Hat Ceph Storage 3.2 から、デフォルトの OSD オブジェクトストアは BlueStore です。従来の OSD オブジェクトストアを維持するには、osd_objectstore オプションを group_vars/all.yml ファイルの filestore に明示的に設定する必要があります。

    osd_objectstore: filestore
    注記

    osd_objectstore オプションを filestore に設定し、OSD を置き換えると BlueStore ではなく FileStore が使用されます。

  9. /etc/ansible/hosts にある Ansible インベントリーファイルで、[mgrs] セクションの下に Ceph Manager (ceph-mgr) ノードを追加します。Ceph Manager デーモンを Monitor ノードにコロケーションします。バージョン 3.x から最新のバージョンにアップグレードする場合は、この手順をスキップします。

    [mgrs]
    <monitor-host-name>
    <monitor-host-name>
    <monitor-host-name>
  10. infrastructure-playbooks ディレクトリーから現在のディレクトリーに、rolling_update.yml をコピーします。

    [root@admin ceph-ansible]# cp infrastructure-playbooks/rolling_update.yml .
  11. /var/log/ansible/ ディレクトリーを作成し、ansible ユーザーに適切な権限を割り当てます。

    [root@admin ceph-ansible]# mkdir /var/log/ansible
    [root@admin ceph-ansible]# chown ansible:ansible  /var/log/ansible
    [root@admin ceph-ansible]# chmod 755 /var/log/ansible
    1. 次のように log_path 値を更新して、/usr/share/ceph-ansible/ansible.cfg ファイルを編集します。

      log_path = /var/log/ansible/ansible.log
  12. Ansible ユーザーとして、Playbook を実行します。

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

    Ansible インベントリーファイルの特定のノードグループにのみ Playbook を使用するには、--limit オプションを使用します。詳細は、limit オプションについて」 を参照してください。

  13. RBD ミラーリングデーモンノードに root ユーザーとしてログインしているときに、rbd-mirror を手動でアップグレードします。

    # yum upgrade rbd-mirror

    デーモンを再起動します。

    # systemctl restart  ceph-rbd-mirror@<client-id>
  14. クラスターの健全性に問題がないことを確認します。

    1. root ユーザーとしてモニターノードにログインし、実行中のすべてのコンテナーをリストします。

      [root@monitor ~]# docker ps
    2. クラスターの正常性が正常であることを確認します。

      [root@monitor ~]# docker exec ceph-mon-<mon-id> ceph -s

      以下を置き換えます。

      • <mon-id> は、最初の手順で見つかった Monitor コンテナーの名前に置き換えます。

      以下は例になります。

      [root@monitor ~]# docker exec ceph-mon-monitor ceph -s
  15. OpenStack 環境で動作する場合には、すべての cephx ユーザーがプールに RBD プロファイルを使用するように更新します。以下のコマンドは root ユーザーとして実行する必要があります。

    • Glance ユーザー

      ceph auth caps client.glance mon 'profile rbd' osd 'profile rbd pool=<glance-pool-name>'

      [root@monitor ~]# ceph auth caps client.glance mon 'profile rbd' osd 'profile rbd pool=images'

    • Cinder ユーザー

      ceph auth caps client.cinder mon 'profile rbd' osd 'profile rbd pool=<cinder-volume-pool-name>, profile rbd pool=<nova-pool-name>, profile rbd-read-only pool=<glance-pool-name>'

      [root@monitor ~]# ceph auth caps client.cinder mon 'profile rbd' osd 'profile rbd pool=volumes, profile rbd pool=vms, profile rbd-read-only pool=images'

    • OpenStack の一般ユーザー

      ceph auth caps client.openstack mon 'profile rbd' osd 'profile rbd-read-only pool=<cinder-volume-pool-name>, profile rbd pool=<nova-pool-name>, profile rbd-read-only pool=<glance-pool-name>'

      [root@monitor ~]# ceph auth caps client.openstack mon 'profile rbd' osd 'profile rbd-read-only pool=volumes, profile rbd pool=vms, profile rbd-read-only pool=images'

      重要

      ライブクライアントの移行を実行する前に、これらの CAPS 更新を行います。これにより、クライアントがメモリーで実行している新しいライブラリーを使用でき、古い CAPS 設定がキャッシュから破棄され、新しい RBD プロファイル設定が適用されるようになります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.