2 Ceph Storage for Oracle Linuxのインストールまたはアップグレード

警告:

Oracle Linux 7は現在延長サポート中です。詳細は、Oracle Linux拡張サポートおよびOracleオープン・ソース・サポート・ポリシーを参照してください。

できるだけ早くアプリケーションとデータをOracle Linux 8またはOracle Linux 9に移行してください。

この章では、リポジトリでCeph Storage for Oracle Linuxパッケージをインストールできるようにする方法、これらのパッケージのインストールを実行する方法、およびアップグレードを実行する方法について説明します。

ハードウェアおよびネットワークの要件

Ceph Storage for Oracle Linuxでは特定のハードウェアは必要ありませんが、Ceph操作によっては、CPUとメモリーが集中的に消費されます。Oracle x86サーバーのX6およびX7ラインは、Cephノードのホストに適しています。Oracle x86サーバーの詳細は、次を参照してください。

https://www.oracle.com/servers/x86/index.html

最小ノード構成は次のようになります。

  • 4 CPUコア

  • 4GB RAM

  • 2 x 1GBイーサネットNIC

  • オブジェクト・データ用の1 TBストレージ

デプロイメントのニーズによっては、フットプリントがより大きいノードが必要になる場合があります。その他の考慮事項は、Cephアップストリームのドキュメントを参照してください。

オペレーティング・システムの要件

Ceph Storage for Oracle Linuxリリース3.0は、Unbreakable Enterprise Kernelリリース5 (UEK R5)が実行されているOracle Linux 7 (x86_64)で使用できます。少なくともOracle Linux 7.5が必要です。

Ceph Storage for Oracle Linuxパッケージへのアクセスの有効化

ceph-deployパッケージは、ol7_ceph30リポジトリのOracle Linux yumサーバー、またはol7_x86_64_ceph30チャネルのUnbreakable Linux Network (ULN)で使用できます。ただし、他のリポジトリおよびチャネルに対する依存関係もあるため、これらはCeph Storage Clusterに含まれる各システムで有効にする必要があります。

Oracle Linux yumサーバーを使用する場合は、次のリポジトリを有効にする必要があります。

  • ol7_ceph30

  • ol7_addons

  • ol7_latest

  • ol7_optional_latest

  • ol7_UEKR5

ULNを使用している場合は、次のチャネルを有効にする必要があります。

  • ol7_x86_64_ceph30

  • ol7_x86_64_addons

  • ol7_x86_64_latest

  • ol7_x86_64_optional_latest

  • ol7_x86_64_UEKR5

ULNを使用したリポジトリの有効化

ULNを使用するように登録した場合は、ULN Webインタフェースを使用して、システムで適切なチャネルをサブスクライブします。

  1. ULNユーザー名とパスワードを使用してhttps://linux.oracle.comにログインします。

  2. 「システム」タブの登録されたマシンのリストで、システムの名前が付いているリンクをクリックします。

  3. 「システム詳細」ページで、「サブスクリプションの管理」をクリックします。

  4. 「システム・サマリー」ページで、利用できるチャネルのリストから必要なチャネルを選択し、右矢印をクリックしてサブスクライブ済チャネルのリストに移動します。

    ol7_x86_64_ceph30ol7_x86_64_addonsol7_x86_64_latestol7_x86_64_optional_latestおよびol7_x86_64_UEKR5チャネルをシステムでサブスクライブします。

  5. 「サブスクリプションの保存」をクリックします。

Oracle Linux Yum Serverによるリポジトリの有効化

Oracle Linux yumサーバーで必要なリポジトリを有効にするには、システムが最新であることと、oraclelinux-release-el7パッケージをインストールし、/usr/bin/ol_yum_configure.shスクリプトを実行して、モジュール形式のyumリポジトリ構成を使用するように移行したことを確認します。

# yum install oraclelinux-release-el7
# /usr/bin/ol_yum_configure.sh

oracle-ceph-release-el7リリース・パッケージをインストールして、適切なyumリポジトリ構成をインストールします。

# yum install oracle-ceph-release-el7

次のリポジトリを有効にします。

  • ol7_ceph30

  • ol7_addons

  • ol7_latest

  • ol7_optional_latest

  • ol7_UEKR5

yum-config-managerツールを使用して、yumの構成を更新します。

# yum-config-manager --enable ol7_ceph30 ol7_latest ol7_optional_latest ol7_addons ol7_UEKR5

Ceph Storage ClusterノードをCeph Storage for Oracle Linuxパッケージのインストール用に準備できるようになりました。「Ceph Storage Clusterのインストールおよび構成」を参照してください。

 Ceph Storage Clusterのインストールおよび構成

Ceph Storage Clusterは、ノードと呼ばれる複数のシステムで構成されます。ノードでは、様々なソフトウェア・デーモンを実行します。

  • すべてのノードで、Cephオブジェクト・ストレージ・デバイス(OSD)デーモンを実行します。

  • 1つ以上のノードで、CephモニターおよびCephマネージャのデーモンを実行します。CephモニターとCephマネージャは、同じノードで実行する必要があります。

  • オプションで、1つ以上のノードでCeph Object Gatewayデーモンを実行します。

  • オプションで、1つ以上のノードでメタデータ・サーバー・デーモンを実行し、Cephファイル・システムを使用します。

1つのノードが管理ノードとして選択され、そのノードから、Cephコマンドを実行してクラスタを制御およびモニターできます。通常、管理ノードはデプロイメント・ノードとしても使用され、このノードから他のシステムを自動的に設定し、クラスタ内のノードとして構成できます。

データ整合性を実現するため、Ceph Storage Clusterには、オブジェクトのコピーを格納する2つ以上のノードが含まれている必要があります。高可用性を実現するため、Ceph Storage Clusterには、オブジェクトのコピーを格納する3つ以上のノードが含まれている必要があります。

次のステップで使用される例では、管理およびデプロイメント・ノードはceph-node1.example.comです。Ceph Storage Clusterで使用されるノードは、ceph-node2.example.comceph-node3.example.comおよびceph-node4.example.comです。

Ceph Storage Clusterノードの準備

Ceph Storage Clusterノードとして使用する各Oracle Linuxシステムには、いくつかの基本的な要件があります。それには次の項目が含まれ、デプロイメントを開始する前に準備作業が必要になる場合があります。

  1. 時刻が正確で、Ceph Storage Cluster内のすべてのノードで同期されている必要があります。これを実現するには、クラスタ内のノードとして実行する各システムでNTPをインストールして構成します。NTPサービスがまだ構成されていない場合、インストールして起動します。NTPの構成の詳細は、『Oracle® Linux 7: 管理者ガイド』を参照してください。

    ノート:

    クラスタ内のノードでhwclock --showコマンドを使用して、すべてのノードが時間において一致していることを確認します。ノードのクロックの差異が50ミリ秒を超えると、ceph healthコマンドによって警告が表示されます。

    health HEALTH_WARN clock skew detected on mon

  2. クラスタ内のノード間でCeph Storage Clusterネットワーク通信を実行できる必要があります。任意のノードでファイアウォール・ソフトウェアが動作している場合は、それを無効化するか、可能であれば必要なポート上でネットワーク・トラフィックが可能になるように構成する必要があります。

    可能であれば、ファイアウォールを実行したまま、次のルールを構成します。

    1. ポート6789上でTCPトラフィックを許可し、Cephモニターを有効にします。

      # firewall-cmd --zone=public --add-port=6789/tcp --permanent
    2. ポート6800から7300のTCPトラフィックを許可し、Ceph OSDデーモンのトラフィックを有効にします。

      # firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
    3. ポート7480上でTCPトラフィックを許可し、Ceph Object Gatewayを有効にします。

      # firewall-cmd --zone=public --add-port=7480/tcp --permanent
    4. Ceph iSCSI Gatewayノード上のポート3260および5000でTCPトラフィックを許可します。

      # firewall-cmd --zone=public --add-port=3260/tcp --add-port=5000/tcp --permanent
    5. 任意のNFSサーバー・ノード上のポート2049でTCPトラフィックを許可します。

      # firewall-cmd --zone=public --add-port=2049/tcp --permanent
    6. ファイアウォール・ルールを変更した後で、ファイアウォール・デーモン・サービスを再ロードおよび再起動します。

      # firewall-cmd --reload
      # systemctl restart firewalld.service

    または、Oracle Linux 7でファイアウォール・デーモンを停止および無効にします。

    # systemctl stop firewalld
    # systemctl disable firewalld
  3. Ceph Storage Clusterノードが、クラスタ内の各ノードの完全修飾ドメイン名を解決できる必要があります。そのためには、DNSを使用するか、各システムの/etc/hostsにエントリを入力します。DNSを使用する場合は、DNSに十分な冗長性があり、クラスタがいつでも名前解決を実行できるようにする必要があります。/etc/hostsを編集する場合は、たとえば次のように、Ceph Storage Cluster内のすべてのノードのIPアドレスとホスト名のエントリを追加します。

    192.168.1.51    ceph-node1.example.com ceph-node1
    192.168.1.52    ceph-node2.example.com ceph-node2
    192.168.1.53    ceph-node3.example.com ceph-node3
    192.168.1.54    ceph-node4.example.com ceph-node4

    ノート:

    DNSを使用してIPアドレス・マッピングへのホスト名を構成できますが、DNSサービスが使用できなくなる場合に備えて、/etc/hostsも構成することをお薦めします。

  4. デプロイメントを可能にするため、Ceph Storage Clusterデプロイメント・ノードがクラスタ内の各候補ノードにSSH経由で接続できる必要があります。そのためには、デプロイメント・ノードでSSHキーを生成し、その公開キーをCeph Storage Clusterの他の各ノードにコピーする必要があります。

    1. デプロイメント・ノード上で、空のパスフレーズを指定して、SSHキーを生成します。

      # ssh-keygen
    2. たとえば次のように、デプロイメント・ノードから、そのキーをCeph Storage Clusterの他のノードにコピーします。

      # ssh-copy-id root@ceph-node2
      # ssh-copy-id root@ceph-node3
      # ssh-copy-id root@ceph-node4
  5. パスワードなしのsudo権限を持つユーザーとして実行中に、ceph-deployでエラーが発生するのを防ぐためには、visudoを使用して/etc/sudoers内のDefaults requiretty設定をコメント・アウトする、またはその設定をDefaults:ceph !requirettyに変更します。

これで、Ceph Storage Clusterデプロイメント・ノード(通常は管理ノードと同じシステム)をインストールして構成できます。「デプロイメント・ノードのインストールおよび構成」を参照してください。

デプロイメント・ノードのインストールおよび構成

次のステップで使用される例では、デプロイメント・ノードはceph-node1.example.com (192.168.1.51)で、これは管理ノードと同じです。

デプロイメント・ノードで次のステップを実行します。

  1. ceph-deployパッケージをインストールします。

    # yum install ceph-deploy
  2. たとえば次のように、Ceph Storage ClusterのCeph構成ディレクトリを作成し、このディレクトリに変更します。

    # mkdir /var/mydom_ceph
    # cd /var/mydom_ceph

    これは、デプロイメント・ノードが構成変更をクラスタとクライアント・ノードおよびゲートウェイ・ノードにロール・アウトする場合に使用する作業用の構成ディレクトリです。今後、Ceph構成ファイルを変更する必要がある場合は、このディレクトリで変更してから、ceph-deploy config pushコマンドを使用して、クラスタ内の他のノードの構成を更新してください。

    すべてのceph-deployコマンドは、この作業ディレクトリから実行する必要があります。このガイドのこれ以降のコマンドでは、このディレクトリを表すために$CEPH_CONFIG_DIRという表記を使用します。

  3. たとえば次のように、ceph-deployコマンドを使用してCeph Storage Clusterのメンバーを定義します。

    # $CEPH_CONFIG_DIR/ceph-deploy new ceph-node2

    複数のノードを定義するには、たとえば次のように、それらをスペース区切りのリストに指定します。

    # $CEPH_CONFIG_DIR/ceph-deploy new ceph-node2 ceph-node3 ceph-node4
  4. (オプション) ceph-deployコマンドを初めて実行すると、Ceph Storage Clusterを構成するためにファイルのセットが作成されます。$CEPH_CONFIG_DIR/ceph.confを編集して、Ceph機能のオプションを設定できます。たとえば、数個のOSDのみを含むテスト環境を設定する場合は、レプリカのデフォルトの数を削減できます(デフォルトは3)。次に例を示します。

    osd pool default size = 2
  5. (オプション) BlueStoreは、新しいOSDのデフォルトのバックエンドです。Oracleでは、BlueStoreだけでなく、OSDでBtrfsまたはXFSファイル・システムを使用するFileStoreもサポートしています。Oracleワークロード用に、OSDでBtrfsまたはXFSファイル・システムを使用することをお薦めします。Ceph Storage Clusterでは、BlueStoreとFileStoreのOSDを組み合せて使用できます。

    OSDでBtrfsを使用するには、Ceph構成ファイルに次のエントリを追加します。

    enable experimental unrecoverable data corrupting features = btrfs

これで、残りのCeph Storage ClusterノードにCephをインストールできるようになります。「Ceph Storage Clusterノードのインストールおよび構成」を参照してください。

Ceph Storage Clusterノードのインストールおよび構成

Ceph Storage for Oracle Linuxデプロイメント・ノードをインストールして構成した後、このノードを使用して、Ceph Storage Clusterに参加している他のノードにCeph Storage for Oracle Linuxをインストールできます。

すべてのCeph Storage ClusterノードにCeph Storage for Oracle Linuxをインストールするには、デプロイメント・ノード上で次のコマンドを実行します。

# $CEPH_CONFIG_DIR/ceph-deploy install ceph-node2

複数のノードにソフトウェアをインストールするには、たとえば次のように、それらをスペース区切りのリストに指定します。

# $CEPH_CONFIG_DIR/ceph-deploy install ceph-node2 ceph-node3 ceph-node4

各ノードにCephパッケージをインストールした後、たとえば、各ノードのファイアウォール・ルールにCephサービスを追加することが必要になる場合があります。

# sudo firewall-cmd --zone=public --add-service=ceph-mon --permanent
# sudo firewall-cmd --zone=public --add-service=ceph --permanent
# sudo firewall-cmd --reload
# sudo systemctl restart firewalld.service

Ceph Storage Clusterを構成するには、管理ノード上で次のステップを実行します。

  1. Cephモニターを初期化します。

    # $CEPH_CONFIG_DIR/ceph-deploy mon create-initial
  2. たとえば次のように、Ceph Storage Clusterの1つ以上のノードにCephモニターをデプロイします。

    # $CEPH_CONFIG_DIR/ceph-deploy mon create ceph-node2

    複数のノードにCephモニターをデプロイするには、たとえば次のように、それらをスペース区切りのリストに指定します。

    # $CEPH_CONFIG_DIR/ceph-deploy mon create ceph-node2 ceph-node3 ceph-node4

    高可用性を実現するため、少なくとも3つのノードをCephモニターとして構成することをお薦めします。

  3. Cephマネージャ・デーモンをCeph Storage Clusterの1つ以上のノードにデプロイします。Cephマネージャ・デーモンをCephモニターとして使用するものと同じノードにデプロイすることをお薦めします。

    # $CEPH_CONFIG_DIR/ceph-deploy mgr create ceph-node2

    複数のノードにCephマネージャをデプロイするには、たとえば次のように、それらをスペース区切りのリストに指定します。

    # $CEPH_CONFIG_DIR/ceph-deploy mgr create ceph-node2 ceph-node3 ceph-node4
  4. たとえば次のように、Cephモニターの1つから、モニター・キー、およびOSDとMDSのブートストラップ・キーリングを収集します。

    # $CEPH_CONFIG_DIR/ceph-deploy gatherkeys ceph-node3
  5. Ceph Storage Clusterで使用するOSDノードを作成します。OSDの作成の詳細は、「オブジェクト・ストレージ・デバイス(OSD)ノードの作成」を参照してください。

  6. Cephモニタリングのコマンドライン・インタフェース(CLI) cephを使用してCeph Storage Clusterを管理する、管理ノードを作成します。管理ホストの作成の詳細は、「Ceph Storage Cluster管理ホストの作成」を参照してください。

  7. cephコマンドを使用して、クラスタのステータスと状態を確認できます。管理ノードで、次のように入力します。

    # ceph health
    # ceph status

    HEALTH_OKとして状態が表示され、クラスタが安定するまで、通常、数分かかります。クラスタ・クォーラム・ステータスを確認して、クラスタ・モニターのクォーラム・ステータスに関する指標を取得することもできます。

    # ceph quorum_status --format json-pretty

    クラスタの状態またはステータスに関する問題のトラブルシューティングの詳細は、アップストリームのCephドキュメントを参照してください。

  8. (オプション) Cephファイル・システム(Ceph FS)を使用する場合は、Ceph Metadata Server (MDS)をデプロイします。MDSサービスでは大容量のリソースを必要としないため、このサービスをCeph Storage Cluster内の既存のモニター・ノードにインストールできます。Ceph FSの設定の詳細は、「Ceph FSの設定および使用」を参照してください。

オブジェクト・ストレージ・デバイス(OSD)ノードの作成

この項では、Ceph Storage Clusterでのオブジェクト・ストレージ・デバイス(OSD)ノードの作成について説明します。

BlueStoreは、OSDのデフォルトのバックエンドです。Oracleでは、BlueStoreだけでなく、OSDでXFSおよびBtrfsファイル・システムを提供するFileStoreオプションもサポートしています。Oracleワークロード用に、OSDでXFSまたはBtrfsファイル・システムを使用することをお薦めします。

BlueStore OSDの作成

Ceph Storage ClusterにBlueStore OSDノードを追加する前に、まず、指定されたデバイス上のすべてのデータを削除する必要があります。

# $CEPH_CONFIG_DIR/ceph-deploy disk zap node device

nodeを、ディスクが配置されているノード名またはホスト名に置き換えます。deviceを、ディスクが存在するホスト上のデバイスへのパスに置き換えます。たとえば、Ceph Storage Clusterのceph-node2という名前のノードで/dev/sdbという名前のデバイス上のデータを削除するには、次のようにします。

# $CEPH_CONFIG_DIR/ceph-deploy disk zap ceph-node2 /dev/sdb

BlueStore OSDを作成するには、次のように入力します。

# $CEPH_CONFIG_DIR/ceph-deploy osd create --data device node

このコマンドにより、指定したディスクを使用して、ボリューム・グループおよび論理ボリュームが作成されます。データとジャーナルは同じ論理ボリュームに存在します。nodeを、ディスクが配置されているノード名またはホスト名に置き換えます。deviceを、ディスクが存在するホスト上のデバイスへのパスに置き換えます。たとえば、次を実行します。

# $CEPH_CONFIG_DIR/ceph-deploy osd create --data /dev/sdb ceph-node2

FileStore OSDの作成

FileStore OSDを作成するには、まず、必要なパーティション(データ用とジャーナル用)を作成する必要があります。これは、OSDノードで実行する必要があります。この例では、サイズが40GBのデータ・パーティションを/dev/sdb1に、およびサイズが12GBのジャーナル・パーティションを/dev/sdb2に作成します。

# parted /dev/sdb --script -- mklabel gpt 
# parted --script /dev/sdb mkpart primary 0MB 40000MB 
# parted --script /dev/sdb mkpart primary 42000MB 55000MB 
# dd if=/dev/zero of=/dev/sdb1  bs=1M count=1000
# sgdisk --zap-all --clear --mbrtogpt -g -- /dev/sdb2 
# ceph-volume lvm zap /dev/sdb2

デプロイメント・ノードで、FileStore OSDを作成します。OSDファイル・タイプを指定するには、OSDの作成時に--filestoreおよび--fs-typeパラメータを使用します。次の例は、XFSを使用してFileStore OSDを作成する方法を示しています。

# CEPH_CONFIG_DIR/ceph-deploy osd create --filestore --fs-type xfs \
   --data /dev/sdb1 --journal /dev/sdb2 ceph-node2

OSDでBtrfsを使用するには、たとえば次のように、OSDの作成時に--fs-type btrfsオプションを使用します。

# CEPH_CONFIG_DIR/ceph-deploy osd create --filestore --fs-type btrfs \
   --data /dev/sdb1 --journal /dev/sdb2 ceph-node2

Ceph Storage Cluster管理ホストの作成

Ceph Storage Clusterを設定したら、ホスト上のユーザーが管理ユーザーとしてcephコマンドラインを使用できるように、クライアント管理キーおよびCeph構成ファイルを別のホストに指定する必要があります。この例では、ceph-node1は、Cephコマンドライン・インタフェース(CLI)を使用してクラスタを管理するように構成されたクライアント・システムのホスト名です。このノードは、例のデプロイメント・ノードとしても使用されます。

デプロイメント・ノードで、たとえば次のように、ceph-deployを使用してCeph CLIをインストールします。

# $CEPH_CONFIG_DIR/ceph-deploy admin ceph-node1

別のホスト(これらの例で使用されているデプロイメント・ノードではない)を使用している場合は、さらにいくつかのステップがあります。

  1. デプロイメント・ノードで、たとえば次のように、Ceph管理に使用するホストにSSHキーをコピーします。

    # ssh-copy-id root@ceph-client

    この例では、DNSおよび/または/etc/hostsにCephクライアント・システム用のエントリを構成していることを前提としています。

  2. デプロイメント・ノードで、たとえば次のように、ceph-deployを使用してCeph Storage for Oracle Linuxパッケージをインストールします。

    # $CEPH_CONFIG_DIR/ceph-deploy install ceph-client
  3. デプロイメント・ノードで、たとえば次のように、Ceph構成ファイルおよびCephキーリングをコピーし、Ceph CLI (ceph)をインストールします。

    # $CEPH_CONFIG_DIR/ceph-deploy admin ceph-client

これで、Ceph CLI (ceph)を使用してCeph Storage Clusterを管理できるようになります。

Cephマネージャ・ダッシュボードのデプロイ

Cephマネージャ・サービス(ceph-mgr)には、Ceph Storage Clusterに関するモニタリング情報を表示するためのWebベースのユーザー・インタフェースが含まれています。Cephマネージャ・ダッシュボードは読取り専用です。

Cephマネージャ・ダッシュボードのセキュリティを強化する場合は、ローカル・ポートでリスニングするようにモジュールを構成し、プロキシ・サーバーを使用して、リモート・アクセスにTLSまたはアクセス制御を提供する必要があります。

Cephマネージャ・ダッシュボードをデプロイおよび接続するには:

  1. Cephマネージャ・ダッシュボードを有効にします。

    # ceph mgr module enable dashboard

    Cephデプロイメントの実行時にダッシュボードを有効にする場合は、$CEPH_CONFIG_DIR/ceph.confファイルに次を追加します。

    [mon]
            mgr initial modules = dashboard
  2. たとえば次のように、管理ノードでceph mgr servicesコマンドを実行して、ダッシュボードにアクセスするためのURLを表示します。

    # ceph mgr services
    {
        "dashboard": "http://ceph-node1.example.com:7000/"
    }

    Cephマネージャ・ダッシュボードは、デフォルトでポート7000で実行されます。Webブラウザを使用して表示されるURLに接続し、ダッシュボードにアクセスします。

Ceph Storage Clusterノードの削除

この項では、Ceph Storage ClusterからOSDおよびCephマネージャ・ノードを削除する方法について説明します。その他のノード・タイプの削除の詳細は、アップストリームCephのドキュメントを参照してください。

注意:

この項のステップを実行すると、Ceph Storage Clusterノード上のすべてのデータが削除されます。

OSDノードの削除

この項では、Ceph Storage ClusterからOSDノードを削除する方法について説明します。

OSDノードの削除

  1. OSDノードで、IDを検索します。

    # systemctl status ceph-osd@*

    結果には、次のような形式でノードのIDがリストされます。

    ceph-osd@1.service - Ceph object storage daemon osd.1

    この場合、IDは1です。

  2. 管理ノードで、クラスタからOSDを削除します。たとえば、次を実行します。

    # ceph osd out osd.1
  3. OSDノードで、IDを使用してサービスを停止および無効にします。たとえば、次を実行します。

    # systemctl stop ceph-osd@1.service
    # systemctl disable ceph-osd@1.service
  4. 管理ノードで、CRUSHマップからOSDを削除し、認可キーを削除して、クラスタからOSDを削除します。たとえば、次を実行します。

    # ceph osd crush remove osd.1
    # ceph auth del osd.1
    # ceph osd rm 1
  5. /var/lib/cephディレクトリのデータを削除してCephパッケージをアンインストールするには、デプロイメント・ノードから次を実行します。

    # $CEPH_CONFIG_DIR/ceph-deploy purge hostname

    または、/var/lib/cephディレクトリからすべてのデータを削除することもできますが、Cephパッケージはインストールしたままにします。これを行うには、デプロイメント・ノードから次を実行します。

    # $CEPH_CONFIG_DIR/ceph-deploy purgedata hostname
  6. OSDノードで、ディスク上のOSDに使用されるボリューム・グループおよびボリューム・ラベルを削除します。たとえば、ボリューム・ラベルを削除するには、lvdisplayコマンドを使用してボリューム・ラベルをリストし、任意のラベルを削除します。

    # lvdisplay
    ...
    # lvremove --force /dev/ceph-dc39f7cc-e423-48d3-a466-9701e7bf972a/osd-block-f7db38d2-...

    vgdisplayコマンドを使用してボリューム・グループをリストし、任意のグループを削除します。

    # vgdisplay
    ...
    # vgremove --force ceph-dc39f7cc-e423-48d3-a466-9701e7bf972a
  7. Ceph構成ファイルで削除するOSDに固有の構成エントリが存在する場合は、それらを削除する必要があります。デプロイメント・ノードで、$CEPH_CONFIG_DIR/ceph.confファイルを編集して、そのノードのすべてのエントリを削除します。

    デプロイメント・ノードで、残りのすべてのOSDノードに構成変更をプッシュします。たとえば、次のようになります。

    # $CEPH_CONFIG_DIR/ceph-deploy --overwrite-conf config push ceph-node2 ceph-node3 ceph-node4

    残りの各OSDノードで、ceph-osdデーモンを再起動します。

    # systemctl restart ceph-osd.target

Cephモニター・ノードの削除

この項では、Ceph Storage ClusterからCephモニター・ノードを削除する方法について説明します。

Cephモニター・ノードを削除するには:

  1. デプロイメント・ノードで、クラスタからCephモニター・ノードを削除します。たとえば、次を実行します。

    # $CEPH_CONFIG_DIR/ceph-deploy mon destroy hostname
  2. Cephモニター・ノードで、サービスを停止および無効にします。たとえば、次を実行します。

    # systemctl stop ceph-mon@hostname.service
    # systemctl disable ceph-mon@hostname.service
  3. /var/lib/cephディレクトリのデータを削除してCephパッケージをアンインストールするには、デプロイメント・ノードから次を実行します。

    # $CEPH_CONFIG_DIR/ceph-deploy purge hostname

    または、/var/lib/cephディレクトリからすべてのデータを削除することもできますが、Cephパッケージはインストールしたままにします。これを行うには、デプロイメント・ノードから次を実行します。

    # $CEPH_CONFIG_DIR/ceph-deploy purgedata hostname
  4. Ceph構成ファイルで削除するCephモニター・ノードに固有の構成エントリが存在する場合は、それらを削除する必要があります。デプロイメント・ノードで、$CEPH_CONFIG_DIR/ceph.confファイルを編集して、そのノードのすべてのエントリを削除します。

    デプロイメント・ノードで、残りのすべてのCephモニター・ノードに構成変更をプッシュします。たとえば、次を実行します。

    # $CEPH_CONFIG_DIR/ceph-deploy --overwrite-conf config push ceph-node2 ceph-node3 ceph-node4

    残りの各Cephモニター・ノードで、ceph-monデーモンを再起動します。

    # systemctl restart ceph-mon.target

Ceph Storage Clusterノードのアップグレード

この項では、Oracle Linuxオペレーティング・システムをアップグレードし、サポートされているUnbreakable Enterprise Kernelに更新する方法について説明します。Ceph Storage Cluster内の各ノードでオペレーティング・システムがアップグレードされると、各ノードでCeph Storage for Oracle Linuxをアップグレードできます。

Oracle Linuxのアップグレード

オペレーティング・システムは、Oracle Linux 7.5以降である必要があります。ステップに従って、Ceph Storage Clusterの各ノードでオペレーティング・システムをアップグレードします。

  1. ULNを使用している場合は、Oracle Linux 7 ol7_x86_64_latestチャネルをサブスクライブします。または、Oracle Linux yumサーバーを使用している場合は、Oracle Linux 7 ol7_latestリポジトリへのアクセスを有効にします。

  2. yum updateコマンドを実行して、パッケージを更新します。

    # yum update
  3. アップグレードが完了したら、システムを再起動します。

    # systemctl reboot
  4. デフォルトのブート・カーネルでない場合は、システムの起動時に新しいOracle Linux 7カーネル・バージョンを選択します。

Oracle Linux 7のアップグレードの詳細は、『Oracle® Linux 7: インストレーション・ガイド』を参照してください

Unbreakable Enterprise Kernelのアップグレード

Unbreakable Enterprise Kernelは、UEK R5以降である必要があります。ステップに従って、Ceph Storage Clusterの各ノードでUEK R5にアップグレードします。

  1. ULNを使用している場合は、UEK R5チャネルol7_x86_64_UEKR5をサブスクライブします。または、Oracle Linux yumサーバーを使用している場合は、UEK R5リポジトリol7_UEKR5へのアクセスを有効にします。UEK R4チャネルおよびyumリポジトリが有効化されている場合は、必ずそれらも無効にしてください。

  2. yum updateコマンドを実行して、パッケージを更新します。

    # yum update
  3. アップグレードが完了したら、システムを再起動します。

    # systemctl reboot
  4. デフォルトのブート・カーネルでない場合は、システムの起動時にUEK R5カーネル・バージョンを選択します。

UEK R5へのアップグレードの詳細は、Unbreakable Enterprise Kernel: リリース・ノートfor Unbreakable Enterprise Kernelリリース5を参照してください。また、Unbreakable Enterprise Kernelドキュメントのリリース・ノートで最新の更新リリースを確認してください。

Ceph Storage for Oracle Linuxのアップグレード

この項では、Ceph Storage for Oracle Linuxリリース2.0コンポーネントの現在のリリースへのアップグレードについて説明します。アップグレード中にCephデーモンを停止する必要はありませんが、アップグレード中にCeph Storage Clusterを使用しないことをお薦めします。アップグレード中にデータ整合性を保護するために、次のことをお薦めします。

  1. Ceph Storage Clusterを使用対象から削除します。

  2. Cephブロック・デバイス、Ceph Object GatewayおよびCephファイル・システム(Ceph FS)のファイル・システムを含め、クラスタ内のすべてのファイル・システムをアンマウントします。

  3. この項の手順を使用して、クラスタをアップグレードします。

  4. クラスタが正常であることを確認します。

  5. すべてのファイル・システムを再マウントします。

  6. クラスタを使用対象に戻します。

コンポーネント・アップグレードが必要な場合には、次の順序でアップグレードを実行することをお薦めします。

  1. Ceph Deployパッケージ

  2. Cephモニター

  3. Cephマネージャ(新しいデーモンをデプロイ)

  4. Ceph OSD

  5. Ceph Metadata Server

  6. Ceph Object Gateway

特定のタイプのデーモンをすべて一緒にアップグレードして、それらがすべて同じリリースであることを保証し、また、現在のリリースの新機能を構成または使用する前に、Ceph Storage Cluster内のすべてのコンポーネントがアップグレードされているようにすることをお薦めします。

次の手順では、Ceph Storage Clusterのアップグレードを実行するために必要な、いくつかの一般的ステップの概要を示します。

  1. アップグレード・プロセスを開始するには、「Ceph Storage for Oracle Linuxパッケージへのアクセスの有効化」の説明に従って、Ceph Storage Clusterに属しているすべてのシステムのyum構成を更新して、適切なyumリポジトリおよびチャネルにアクセスできるようにする必要があります。

  2. 管理ノードから、次のコマンドを使用してCeph Storage Clusterのステータスを確認します。

    # ceph health

    クラスタのhealthHEALTH_OKの場合は、アップグレードを続行します。そうでない場合は、すべてのクラスタ・ノードが安定しており、正常であることを確認します。

    モニターのアップグレード中は、新しい消去コード・プールを作成しないでください。

    各デーモンのCephバージョンをリストするceph versionsコマンドを使用して、アップグレードの進行状況をいつでもモニターできます。

  3. 管理ノードからsortbitwiseオプションを設定し、内部ソート・アルゴリズムを変更します。このオプションは、新しいオブジェクト列挙APIと新しいBlueStoreバックエンドで使用されます。

    # ceph osd set sortbitwise
  4. 管理ノードからnooutオプションを設定して、アップグレード時にCRUSHアルゴリズムによってクラスタのリバランスが試行されないようにします。

    # ceph osd set noout
  5. Ceph構成ファイルを編集し、Ceph Storage for Oracle Linuxリリース2.0で必要な回避策を削除します。

    rbd default features = 3
  6. デプロイメント・ノードから、たとえば次のように、更新されたCeph構成ファイルをクラスタ内のすべてのノードにプッシュします。

    # $CEPH_CONFIG_DIR/ceph-deploy --overwrite-conf config push ceph-node2 ceph-node3 ceph-node4
  7. デプロイメント・ノード(通常は管理ノードと同じ)から、ceph-deployパッケージをアップグレードします。

    # yum update ceph-deploy
  8. デプロイメント・ノードで、たとえば次のように、ceph-deployを使用して管理ノードでCephコマンドライン・インタフェース(CLI)をアップグレードします。

    # $CEPH_CONFIG_DIR/ceph-deploy admin ceph-node1

    この例では、ceph-node1は、Ceph CLIを使用してクラスタを管理するように構成されたクライアント・システムのホスト名です。このノードは、例のデプロイメント・ノードとしても使用されます。

  9. デプロイメント・ノードから、たとえば次のように、ceph-deployを使用してCeph Storage Clusterの各ノードでパッケージをアップグレードします。

    # $CEPH_CONFIG_DIR/ceph-deploy install ceph-node2 ceph-node3 ceph-node4

    ノート:

    アップストリームのドキュメントには、--releaseスイッチの記述があり、アップデートするリリースを制御できることが示唆されていますが、このスイッチをOracle Linux環境で使用した場合には効果がなく、パッケージはyumを使用して最新のバージョンがインストールされます。

  10. 各Cephモニター・ノードで、Cephモニター・デーモンを再起動します。

    # systemctl restart ceph-mon.target

    すべてのCephモニター・デーモンがアップグレードされたら、管理ノードで、モニターのアップグレードが完了していることを確認します。

    # ceph mon feature ls
    ...
    on current monmap (epoch 1)
    	persistent: [kraken,luminous]
    	required: [kraken,luminous]

    出力には、monmapリストのpersistent機能の下にluminousが含まれる必要があります。

  11. デプロイメント・ノードで、たとえば次のように、Cephモニター・ノードの1つから、モニター・キー、およびOSDとMDSのブートストラップ・キーリングを収集します。

    # $CEPH_CONFIG_DIR/ceph-deploy gatherkeys ceph-node2
  12. デプロイメント・ノードから、たとえば次のように、Cephモニター・デーモンを実行する各ノードに新しいCephマネージャ・デーモンをデプロイします。

    # $CEPH_CONFIG_DIR/ceph-deploy --overwrite-conf mgr create ceph-node2 ceph-node3 ceph-node4

    管理ノードで、次のコマンドを使用して、Cephマネージャ・デーモンが実行されていることを確認できます。

    # ceph -s
    ... 
      services:
        mon: 3 daemons, quorum ceph-node2,ceph-node3,ceph-node4
        mgr: ceph-node2(active), standbys: ceph-node3, ceph-node4
        osd: 3 osds: 3 up, 3 in
    ...

    このコマンドにより、monmgrおよびosdデーモンがリストされます。

    ceph-mgrデーモンが各Cephマネージャ・ノードで実行されていることを確認することもできます。たとえば、Cephマネージャ・デーモンを含むceph-node2という名前のノードの場合で、次のようにします。

    [ceph-node2 ~]# systemctl status ceph-mgr@ceph-node2
    ● ceph-mgr@ceph-node2.service - Ceph cluster manager daemon
       Loaded: loaded (/usr/lib/systemd/system/ceph-mgr@.service; enabled; vendor preset: disabled)
       Active: active (running) since <date>
     Main PID: 4902 (ceph-mgr)
       CGroup: /system.slice/system-ceph\x2dmgr.slice/ceph-mgr@ceph-node2.service
               └─4902 /usr/bin/ceph-mgr -f --cluster ceph --id ceph-node2 --setuser ceph --setgroup ceph...
    ...
  13. 各OSDノードで、ceph-osdデーモンを再起動します。

    # systemctl restart ceph-osd.target

    管理ノードから、たとえば次のように、ceph osd versionsコマンドを使用してOSDアップグレードの進行状況をモニターできます。

    # ceph osd versions
    {
       "ceph version 12.2.4 (...) luminous (stable)": 2,
       "ceph version 10.2.6 (...)": 1,
    }

    出力には、2つのOSDがLuminousにアップグレードされ、1つのOSDがまだアップグレードされていないことが表示されます。

  14. Ceph Metadata Serverデーモンを実行する各ノードで、ceph-mdsデーモンを再起動します。

    # systemctl restart ceph-mds.target
  15. Ceph Object Gatewayデーモンを実行する各ノードで、radosgwデーモンを再起動します。

    # systemctl restart radosgw.target
  16. 管理ノードで、古い(Luminousより前の) OSDノードがCeph Storage Clusterに追加されないようにします。

    # ceph osd require-osd-release luminous
  17. 次のコマンドを使用して、Ceph Storage Clusterのステータスを確認します。

    # ceph health

    クラスタの状態がHEALTH_OKである場合は、nooutオプションの設定を解除して、クラスタのバランスを調整するCRUSHアルゴリズムの機能を再度有効にします。

    # ceph osd unset noout
  18. (オプション) BlueStoreは、Ceph Storage for Oracle Linuxリリース3.0の新しいOSDのデフォルト・バックエンドです。FileStoreバックエンドは、アップグレードされたOSDで使用でき、BlueStoreとFileStoreのOSDの組合せがサポートされています。OSDをFileStoreからBlueStoreに移行する場合は、次の場所でアップストリームのドキュメントを参照してください。

    https://docs.ceph.com/en/latest/rados/operations/bluestore-migration/