検索

18.5. Red Hat Ceph Storage のアップグレードと cephadm の導入

download PDF

環境に Red Hat Ceph Storage デプロイメントが含まれている場合は、デプロイメントを Red Hat Ceph Storage 5 にアップグレードする必要があります。バージョン 5 へのアップグレードにより、cephadm は、ceph-ansible の代わりに Red Hat Ceph Storage を管理するようになりました。

手順

  1. ceph-admin-user-playbook.yaml という名前の Ansible Playbook ファイルを作成して、オーバークラウドノードに ceph-admin ユーザーを作成します。
  2. 次の設定を ceph-admin-user-playbook.yaml ファイルに追加します。

    - hosts: localhost
      gather_facts: false
      tasks:
        - name: set ssh key path facts
          set_fact:
            private_key: "{{ lookup('env', 'HOME') }}/.ssh/{{ tripleo_admin_user }}-id_rsa"
            public_key: "{{ lookup('env', 'HOME') }}/.ssh/{{ tripleo_admin_user }}-id_rsa.pub"
          run_once: true
        - name: stat private key
          stat:
            path: "{{ private_key }}"
          register: private_key_stat
        - name: create private key if it does not exist
          shell: "ssh-keygen -t rsa -q -N '' -f {{ private_key }}"
          no_log: true
          when:
            - not private_key_stat.stat.exists
        - name: stat public key
          stat:
            path: "{{ public_key }}"
          register: public_key_stat
        - name: create public key if it does not exist
          shell: "ssh-keygen -y -f {{ private_key }} > {{ public_key }}"
          when:
            - not public_key_stat.stat.exists
    
    - hosts: overcloud
      gather_facts: false
      become: true
      pre_tasks:
        - name: Get local private key
          slurp:
            src: "{{ hostvars['localhost']['private_key'] }}"
          register: private_key_get
          delegate_to: localhost
          no_log: true
        - name: Get local public key
          slurp:
            src: "{{ hostvars['localhost']['public_key'] }}"
          register: public_key_get
          delegate_to: localhost
      roles:
        - role: tripleo_create_admin
          tripleo_admin_user: "{{ tripleo_admin_user }}"
          tripleo_admin_pubkey: "{{ public_key_get['content'] | b64decode }}"
          tripleo_admin_prikey: "{{ private_key_get['content'] | b64decode }}"
          no_log: true
  3. Playbook を openstackclient コンテナーにコピーします。

    $ oc cp -n openstack ceph-admin-user-playbook.yml openstackclient:/home/cloud-admin/ceph-admin-user-playbook.yml
  4. openstackclient コンテナーで Playbook を実行します。

    $ oc rsh -n openstack openstackclient
    $ ansible-playbook -i /home/cloud-admin/ctlplane-ansible-inventory -e tripleo_admin_user=ceph-admin -e distribute_private_key=true /home/cloud-admin/ceph-admin-user-playbook.yml
  5. デプロイメントで使用する Red Hat Ceph Storage のバージョンに合わせて、containers-prepare-parameter.yaml ファイル内の Red Hat Ceph Storage コンテナーイメージのパラメーターを更新します。

    ceph_namespace: registry.redhat.io/rhceph
    ceph_image: <ceph_image_file>
    ceph_tag: latest
    ceph_grafana_image: <grafana_image_file>
    ceph_grafana_namespace: registry.redhat.io/rhceph
    ceph_grafana_tag: latest
    • <ceph_image_file> は、デプロイメントで使用する Red Hat Ceph Storage のバージョンのイメージファイルの名前に置き換えます。

      • Red Hat Ceph Storage 5: rhceph-5-rhel8
    • <grafana_image_file> をデプロイメントで使用する Red Hat Ceph Storage のバージョンのイメージファイルの名前に置き換えます。

      • Red Hat Ceph Storage 5: rhceph-5-dashboard-rhel8
  6. デプロイメントに HCI が含まれている場合は、compute-hci.yamlCephAnsibleRepo パラメーターを "rhelosp-ceph-5-tools" に更新します。
  7. upgrade.yaml という名前の環境ファイルを作成し、そのファイルに次の設定を追加します。

    parameter_defaults:
      UpgradeInitCommand: |
        sudo subscription-manager repos --disable *
        if $( grep -q 9.2 /etc/os-release )
        then
          sudo subscription-manager repos --enable=rhel-9-for-x86_64-baseos-eus-rpms --enable=rhel-9-for-x86_64-appstream-eus-rpms --enable=rhel-9-for-x86_64-highavailability-eus-rpms --enable=openstack-17.1-for-rhel-9-x86_64-rpms --enable=fast-datapath-for-rhel-9-x86_64-rpms
            sudo podman ps | grep -q ceph && subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
            sudo subscription-manager release --set=9.2
        else
          sudo subscription-manager repos --enable=rhel-8-for-x86_64-baseos-tus-rpms --enable=rhel-8-for-x86_64-appstream-tus-rpms --enable=rhel-8-for-x86_64-highavailability-tus-rpms --enable=openstack-17.1-for-rhel-8-x86_64-rpms --enable=fast-datapath-for-rhel-8-x86_64-rpms
            sudo podman ps | grep -q ceph && subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms
            sudo subscription-manager release --set=8.4
        fi
        sudo dnf -y install cephadm
  8. ceph-upgrade という名前の新しい OpenStackConfigGenerator CR を作成して、更新した環境ファイルと tripleo-tarball ConfigMap を含めます。
  9. ワークステーション上に openstack-ceph-upgrade.yaml という名前のファイルを作成して、Red Hat Ceph Storage 4 から 5 へのアップグレード用の OpenStackDeploy CR を定義します。

    apiVersion: osp-director.openstack.org/v1beta1
    kind: OpenStackDeploy
    metadata:
      name: ceph-upgrade
    spec:
      configVersion: <config_version>
      configGenerator: ceph-upgrade
      mode: externalUpgrade
      advancedSettings:
        skipTags:
        - ceph_health
        - opendev-validation
        - ceph_ansible_remote_tmp
        tags:
        - ceph
        - facts
  10. openstack-ceph-upgrade.yaml ファイルを保存します。
  11. OpenStackDeploy リソースを作成します。

    $ oc create -f openstack-ceph-upgrade.yaml -n openstack
  12. デプロイが完了するまで待ちます。
  13. ワークステーション上に openstack-ceph-upgrade-packages.yaml という名前のファイルを作成して、Red Hat Ceph Storage パッケージをアップグレードする OpenStackDeploy CR を定義します。

    apiVersion: osp-director.openstack.org/v1beta1
    kind: OpenStackDeploy
    metadata:
      name: ceph-upgrade-packages
    spec:
      configVersion: <config_version>
      configGenerator: ceph-upgrade
      mode: upgrade
      advancedSettings:
        limit: ceph_osd,ceph_mon,Undercloud
        playbook:
        - upgrade_steps_playbook.yaml
        skipTags:
        - ceph_health
        - opendev-validation
        - ceph_ansible_remote_tmp
        tags:
        - setup_packages
  14. openstack-ceph-upgrade-packages.yaml ファイルを保存します。
  15. OpenStackDeploy リソースを作成します。

    $ oc create -f openstack-ceph-upgrade-packages.yaml -n openstack
  16. デプロイが完了するまで待ちます。
  17. ワークステーション上に openstack-ceph-upgrade-to-cephadm.yaml という名前のファイルを作成して、cephadm の導入を実行する OpenStackDeploy CR を定義します。

    apiVersion: osp-director.openstack.org/v1beta1
    kind: OpenStackDeploy
    metadata:
      name: ceph-upgrade-to-cephadm
    spec:
      configVersion: <config_version>
      configGenerator: ceph-upgrade
      mode: externalUpgrade
      advancedSettings:
        skipTags:
        - ceph_health
        - opendev-validation
        - ceph_ansible_remote_tmp
        tags:
        - cephadm_adopt
  18. openstack-ceph-upgrade-to-cephadm.yaml ファイルを保存します。
  19. OpenStackDeploy リソースを作成します。

    $ oc create -f openstack-ceph-upgrade-to-cephadm.yaml -n openstack
  20. デプロイが完了するまで待ちます。
  21. openstackclient CR から現在の imageURL を削除して、openstackclient イメージを RHEL9 コンテナーイメージに更新します。

    $ oc patch openstackclient -n openstack openstackclient --type=json -p="[{'op': 'remove', 'path': '/spec/imageURL'}]"
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.