このドキュメントで説明されているソフトウェアはサポートされていないか、拡張サポートが提供されています。
現在サポートされているリリースにアップグレードすることをお薦めします。

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

Ceph Storage Clusterは、ノードと呼ばれる複数のシステムで構成され、各ノードではCeph OSD (オブジェクト・ストレージ・デバイス)デーモンが実行されています。 また、Ceph Storage Clusterでは、1つ以上のノード上でCephモニター・デーモンが実行されている必要もあり、オプションのCeph Object Gatewayが1つ以上のノード上で実行されている場合もあります。 1つのノードが管理ノードとして選択され、そのノードからコマンドを実行してクラスタを制御できます。 通常、管理ノードはデプロイメント・ノードとしても使用され、このノードから他のシステムを自動的に設定し、クラスタ内の追加ノードとして構成することができます。

注意

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

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

次の手順で使用される例では、管理およびデプロイメント・ノードはceph-node1.example.com (192.168.1.51)です。

1.3.1 Cephのインストール前のストレージ・クラスタ・ノードの準備

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

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

    注意

    hwclock --showコマンドを使用して、すべてのノードが時間において一致していることを確認します。 デフォルトで、ノード上のクロックが50ミリ秒を超えて異なる場合、Cephモニターはhealth HEALTH_WARN clock skew detected on monエラーを報告します。

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

    Oracle Linux 7でファイアウォール・デーモンを停止して無効化するには、次を実行します。

    # systemctl stop firewalld
    # systemctl disable firewalld

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

    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. ファイアウォール・ルールを変更した後で、ファイアウォール・デーモン・サービスを再起動します。

      # systemctl restart firewalld.service
  3. クラスタ・ノードが、クラスタ内の各ノードの完全修飾ドメイン名を解決できる必要があります。 そのためには、DNSを使用するか、各システムの/etc/hostsにエントリを入力します。 DNSを使用する場合は、DNSに十分な冗長性があり、クラスタがいつでも名前解決を実行できるようにする必要があります。 /etc/hostsを編集する場合は、たとえば次のように、ストレージ・クラスタ内のすべてのノードの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鍵を生成し、その公開鍵をストレージ・クラスタの他の各ノードにコピーする必要があります。

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

      # ssh-keygen
    2. たとえば次のように、デプロイメント・ノードから、その鍵をストレージ・クラスタの他のノードにコピーします。

      # 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に変更します。

これで、ストレージ・クラスタ・デプロイメント・ノード(通常は管理ノードと同じシステム)をインストールおよび構成できるようになります。 1.3.2項 「ストレージ・クラスタ・デプロイメント・ノードでのCephのインストールおよび構成」を参照してください。