B.2. Red Hat Ceph Storage の手動インストール


重要

Red Hat は、手動でデプロイしたクラスターのアップグレードをサポートしたり、テストしたりしません。したがって、Red Hat は、Ansible を使用して Red Hat Ceph Storage 4 で新規クラスターをデプロイすることを推奨します。詳細は5章Ansible を使用した Red Hat Ceph Storage のインストール をご覧ください。

Yum などのコマンドラインユーティリティーを使用して、手動でデプロイされたクラスターをアップグレードすることができますが、Red Hat ではこのアプローチのサポートまたはテストを行いません。

すべての Ceph クラスターにはモニターが少なくとも 1 つ、最低でも OSD がクラスターに保存されているオブジェクトのコピーとして必要になります。Red Hat は、実稼働環境に 3 台のモニターを使用し、少なくとも 3 つのオブジェクトストレージデバイス (OSD) を使用することを推奨します。

初期モニターのブートストラップは、Ceph ストレージクラスターをデプロイする最初のステップです。Ceph monitor デプロイメントは、以下のようなクラスター全体の重要な基準も設定します。

  • プールのレプリカ数
  • OSD ごとの配置グループ数
  • ハートビートの間隔
  • 認証要件

これらの値の多くはデフォルトで設定されるため、実稼働環境用のクラスターを設定する際に便利です。

コマンドラインインターフェイスを使用して Ceph Storage クラスターをインストールするには、以下の手順を行います。

ブートストラップの監視

Monitor のブートストラップおよび Ceph Storage クラスターの拡張には、以下のデータが必要です。

一意識別子
ファイルシステム識別子 (fsid) はクラスターの一意の識別子です。fsid は、Ceph ストレージクラスターが Ceph ファイルシステムに主に使用する場合に使用されていました。Ceph はネイティブのインターフェイス、ブロックデバイス、およびオブジェクトストレージゲートウェイのインターフェイスもサポートするようになり、fsid は一部の誤検出になります。
監視名
クラスター内の各 Monitor インスタンスには一意の名前があります。一般的には、Ceph Monitor 名はノード名です。Red Hat では、ノードごとに Ceph Monitor を 1 つ推奨していますが、Ceph OSD デーモンを Ceph Monitor デーモンと同じ場所に配置しないことを推奨します。短いノード名を取得するには、hostname -s コマンドを使用します。
マップの監視

初期モニターのブートストラップでは、モニターマップを生成する必要があります。Monitor マップには以下が必要です。

  • ファイルシステム識別子 (fsid)
  • クラスター名、または ceph のデフォルトのクラスター名が使用されます。
  • 1 つ以上のホスト名とその IP アドレス
キーリングの監視
モニターは、秘密鍵を使用して相互に通信します。Monitor 秘密鍵でキーリングを生成し、初期 Monitor のブートストラップ時にこれを提供する必要があります。
管理者キーリング
ceph コマンドラインインターフェイスユーティリティーを使用するには、client.admin ユーザーを作成し、そのキーリングを生成します。また、client.admin ユーザーを Monitor キーリングに追加する必要があります。

前述の要件は、Ceph 設定ファイルの作成を意味するものではありません。ただし、Red Hat では、Ceph 設定ファイルを作成し、少なくとも fsidmon initial members、および mon host の設定で設定することを推奨します。

実行時にすべての Monitor 設定を取得および設定できます。ただし、Ceph 設定ファイルには、デフォルト値を上書きする設定のみが含まれる場合があります。Ceph 設定ファイルに設定を追加すると、デフォルト設定が上書きされます。Ceph 設定ファイルでこれらの設定を維持すると、クラスターを簡単に維持できます。

初期モニターをブートストラップするには、以下の手順を実行します。

  1. Red Hat Ceph Storage 4 Monitor リポジトリーを有効にします。

    [root@monitor ~]# subscription-manager repos --enable=rhceph-4-mon-for-rhel-8-x86_64-rpms
    Copy to Clipboard
  2. 初期 Monitor ノードで、rootceph-mon パッケージをインストールします。

    # yum install ceph-mon
    Copy to Clipboard
  3. root で、/etc/ceph/ ディレクトリーに Ceph 設定ファイルを作成します。

    # touch /etc/ceph/ceph.conf
    Copy to Clipboard
  4. root でクラスターの一意の識別子を生成し、一意の ID を Ceph 設定ファイルの [global] セクションに追加します。

    # echo "[global]" > /etc/ceph/ceph.conf
    # echo "fsid = `uuidgen`" >> /etc/ceph/ceph.conf
    Copy to Clipboard
  5. 現在の Ceph 設定ファイルを表示します。

    $ cat /etc/ceph/ceph.conf
    [global]
    fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993
    Copy to Clipboard
  6. root として、最初の Monitor を Ceph 設定ファイルに追加します。

    構文

    # echo "mon initial members = <monitor_host_name>[,<monitor_host_name>]" >> /etc/ceph/ceph.conf
    Copy to Clipboard

    # echo "mon initial members = node1" >> /etc/ceph/ceph.conf
    Copy to Clipboard

  7. root として、初期 Monitor の IP アドレスを Ceph 設定ファイルに追加します。

    構文

    # echo "mon host = <ip-address>[,<ip-address>]" >> /etc/ceph/ceph.conf
    Copy to Clipboard

    # echo "mon host = 192.168.0.120" >> /etc/ceph/ceph.conf
    Copy to Clipboard

    注記

    IPv6 アドレスを使用するには、ms bind ipv6 オプションを true に設定します。詳細は、Red Hat Ceph Storage 4 の設定ガイドの バインド セクションを参照してください。

  8. root として、クラスターのキーリングを作成し、Monitor シークレットキーを生成します。

    # ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
    creating /tmp/ceph.mon.keyring
    Copy to Clipboard
  9. root で管理者キーリングを生成し、ceph.client.admin.keyring ユーザーを生成し、ユーザーをキーリングに追加します。

    構文

    # ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon '<capabilites>' --cap osd '<capabilites>' --cap mds '<capabilites>'
    Copy to Clipboard

    # ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow'
    creating /etc/ceph/ceph.client.admin.keyring
    Copy to Clipboard

  10. rootceph.client.admin.keyring キーを ceph.mon.keyring に追加します。

    # ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
    importing contents of /etc/ceph/ceph.client.admin.keyring into /tmp/ceph.mon.keyring
    Copy to Clipboard
  11. Monitor マップを生成します。初期 Monitor のノード名、IP アドレス、および fsid を使用して指定し、/tmp/monmap として保存します。

    構文

    $ monmaptool --create --add <monitor_host_name> <ip-address> --fsid <uuid> /tmp/monmap
    Copy to Clipboard

    $ monmaptool --create --add node1 192.168.0.120 --fsid a7f64266-0894-4f1e-a635-d0aeaca0e993 /tmp/monmap
    monmaptool: monmap file /tmp/monmap
    monmaptool: set fsid to a7f64266-0894-4f1e-a635-d0aeaca0e993
    monmaptool: writing epoch 0 to /tmp/monmap (1 monitors)
    Copy to Clipboard

  12. 初期モニターノードで、root としてデフォルトのデータディレクトリーを作成します。

    構文

    # mkdir /var/lib/ceph/mon/ceph-<monitor_host_name>
    Copy to Clipboard

    # mkdir /var/lib/ceph/mon/ceph-node1
    Copy to Clipboard

  13. root として、最初の Monitor デーモンに Monitor マップとキーリングを設定します。

    構文

    # ceph-mon --mkfs -i <monitor_host_name> --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
    Copy to Clipboard

    # ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
    ceph-mon: set fsid to a7f64266-0894-4f1e-a635-d0aeaca0e993
    ceph-mon: created monfs at /var/lib/ceph/mon/ceph-node1 for mon.node1
    Copy to Clipboard

  14. 現在の Ceph 設定ファイルを表示します。

    # cat /etc/ceph/ceph.conf
    [global]
    fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993
    mon_initial_members = node1
    mon_host = 192.168.0.120
    Copy to Clipboard

    さまざまな Ceph 設定に関する詳細は、Red Hat Ceph Storage 4 の 設定ガイド を参照してください。Ceph 設定ファイルの例では、最も一般的な設定の一部を示しています。

    [global]
    fsid = <cluster-id>
    mon initial members = <monitor_host_name>[, <monitor_host_name>]
    mon host = <ip-address>[, <ip-address>]
    public network = <network>[, <network>]
    cluster network = <network>[, <network>]
    auth cluster required = cephx
    auth service required = cephx
    auth client required = cephx
    osd journal size = <n>
    osd pool default size = <n>  # Write an object n times.
    osd pool default min size = <n> # Allow writing n copy in a degraded state.
    osd pool default pg num = <n>
    osd pool default pgp num = <n>
    osd crush chooseleaf type = <n>
    Copy to Clipboard

  15. root として、done ファイルを作成します。

    構文

    # touch /var/lib/ceph/mon/ceph-<monitor_host_name>/done
    Copy to Clipboard

    # touch /var/lib/ceph/mon/ceph-node1/done
    Copy to Clipboard

  16. root として、新しく作成されたディレクトリーおよびファイルで所有者とグループのアクセス権を更新します。

    構文

    # chown -R <owner>:<group> <path_to_directory>
    Copy to Clipboard

    # chown -R ceph:ceph /var/lib/ceph/mon
    # chown -R ceph:ceph /var/log/ceph
    # chown -R ceph:ceph /var/run/ceph
    # chown ceph:ceph /etc/ceph/ceph.client.admin.keyring
    # chown ceph:ceph /etc/ceph/ceph.conf
    # chown ceph:ceph /etc/ceph/rbdmap
    Copy to Clipboard

    注記

    Ceph Monitor ノードが OpenStack Controller ノードと同じ場所にある場合、Glance および Cinder キーリングファイルは、それぞれ glance および cinder によって所有されている必要があります。以下に例を示します。

    # ls -l /etc/ceph/
    ...
    -rw-------.  1 glance glance      64 <date> ceph.client.glance.keyring
    -rw-------.  1 cinder cinder      64 <date> ceph.client.cinder.keyring
    ...
    Copy to Clipboard
  17. root として、初期モニターノードで ceph-mon プロセスを開始して有効にします。

    構文

    # systemctl enable ceph-mon.target
    # systemctl enable ceph-mon@<monitor_host_name>
    # systemctl start ceph-mon@<monitor_host_name>
    Copy to Clipboard

    # systemctl enable ceph-mon.target
    # systemctl enable ceph-mon@node1
    # systemctl start ceph-mon@node1
    Copy to Clipboard

  18. root として、monitor デーモンが実行していることを確認します。

    構文

    # systemctl status ceph-mon@<monitor_host_name>
    Copy to Clipboard

    # systemctl status ceph-mon@node1
    ● ceph-mon@node1.service - Ceph cluster monitor daemon
       Loaded: loaded (/usr/lib/systemd/system/ceph-mon@.service; enabled; vendor preset: disabled)
       Active: active (running) since Wed 2018-06-27 11:31:30 PDT; 5min ago
     Main PID: 1017 (ceph-mon)
       CGroup: /system.slice/system-ceph\x2dmon.slice/ceph-mon@node1.service
               └─1017 /usr/bin/ceph-mon -f --cluster ceph --id node1 --setuser ceph --setgroup ceph
    
    Jun 27 11:31:30 node1 systemd[1]: Started Ceph cluster monitor daemon.
    Jun 27 11:31:30 node1 systemd[1]: Starting Ceph cluster monitor daemon...
    Copy to Clipboard

Red Hat Ceph Storage Monitor をストレージクラスターに追加するには、Red Hat Ceph Storage 4 の管理ガイドの モニターの追加 セクションを参照してください。

OSD ブート制約

モニターを最初に実行したら、オブジェクトストレージデバイス (OSD) の追加を開始できます。オブジェクトのコピー数を処理するのに十分な OSD があるまで、クラスターは active + clean 状態に到達できません。

オブジェクトのデフォルトのコピー数は 3 です。少なくとも 3 つの OSD ノードが必要です。ただし、オブジェクトのコピーを 2 つだけ使用する場合には、OSD ノードを 2 つだけ追加してから、Ceph 設定ファイルの osd pool default size および osd pool default min size 設定を更新します。

詳細は、Red Hat Ceph Storage 4 の設定OSD 設定参照 セクションを参照してください。

初期モニターのブートストラップ後に、クラスターにはデフォルトの CRUSH マップがあります。ただし、CRUSH マップには Ceph ノードにマッピングされた Ceph OSD デーモンがありません。

OSD をクラスターに追加し、デフォルトの CRUSH マップを更新するには、各 OSD ノードで以下のコマンドを実行します。

  1. Red Hat Ceph Storage 4 OSD リポジトリーを有効にします。

    [root@osd ~]# subscription-manager repos --enable=rhceph-4-osd-for-rhel-8-x86_64-rpms
    Copy to Clipboard
  2. root で Ceph OSD ノードに ceph-osd パッケージをインストールします。

    # yum install ceph-osd
    Copy to Clipboard
  3. Ceph 設定ファイルと管理キーリングファイルを初期 Monitor ノードから OSD ノードにコピーします。

    構文

    # scp <user_name>@<monitor_host_name>:<path_on_remote_system> <path_to_local_file>
    Copy to Clipboard

    # scp root@node1:/etc/ceph/ceph.conf /etc/ceph
    # scp root@node1:/etc/ceph/ceph.client.admin.keyring /etc/ceph
    Copy to Clipboard

  4. OSD 用の Universally Unique Identifier (UUID) を生成します。

    $ uuidgen
    b367c360-b364-4b1d-8fc6-09408a9cda7a
    Copy to Clipboard
  5. root として、OSD インスタンスを作成します。

    構文

    # ceph osd create <uuid> [<osd_id>]
    Copy to Clipboard

    # ceph osd create b367c360-b364-4b1d-8fc6-09408a9cda7a
    0
    Copy to Clipboard

    注記

    このコマンドは、後続のステップに必要な OSD 番号識別子を出力します。

  6. root として、新規 OSD のデフォルトディレクトリーを作成します。

    構文

    # mkdir /var/lib/ceph/osd/ceph-<osd_id>
    Copy to Clipboard

    # mkdir /var/lib/ceph/osd/ceph-0
    Copy to Clipboard

  7. root として、OSD として使用するドライブを準備し、作成したディレクトリーにマウントします。Ceph データおよびジャーナル用にパーティションを作成します。ジャーナルとデータパーティションは同じディスクに配置できます。以下の例では、15 GB のディスクを使用しています。

    構文

    # parted <path_to_disk> mklabel gpt
    # parted <path_to_disk> mkpart primary 1 10000
    # mkfs -t <fstype> <path_to_partition>
    # mount -o noatime <path_to_partition> /var/lib/ceph/osd/ceph-<osd_id>
    # echo "<path_to_partition>  /var/lib/ceph/osd/ceph-<osd_id>   xfs defaults,noatime 1 2" >> /etc/fstab
    Copy to Clipboard

    # parted /dev/sdb mklabel gpt
    # parted /dev/sdb mkpart primary 1 10000
    # parted /dev/sdb mkpart primary 10001 15000
    # mkfs -t xfs /dev/sdb1
    # mount -o noatime /dev/sdb1 /var/lib/ceph/osd/ceph-0
    # echo "/dev/sdb1 /var/lib/ceph/osd/ceph-0  xfs defaults,noatime 1 2" >> /etc/fstab
    Copy to Clipboard

  8. root として、OSD データディレクトリーを初期化します。

    構文

    # ceph-osd -i <osd_id> --mkfs --mkkey --osd-uuid <uuid>
    Copy to Clipboard

    # ceph-osd -i 0 --mkfs --mkkey --osd-uuid b367c360-b364-4b1d-8fc6-09408a9cda7a
    ... auth: error reading file: /var/lib/ceph/osd/ceph-0/keyring: can't open /var/lib/ceph/osd/ceph-0/keyring: (2) No such file or directory
    ... created new key in keyring /var/lib/ceph/osd/ceph-0/keyring
    Copy to Clipboard

  9. root として、OSD 認証キーを登録します。

    構文

    # ceph auth add osd.<osd_id> osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-<osd_id>/keyring
    Copy to Clipboard

    # ceph auth add osd.0 osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-0/keyring
    added key for osd.0
    Copy to Clipboard

  10. root として、OSD ノードを CRUSH マップに追加します。

    構文

    # ceph osd crush add-bucket <host_name> host
    Copy to Clipboard

    # ceph osd crush add-bucket node2 host
    Copy to Clipboard

  11. root で OSD ノードを default の CRUSH ツリーに配置します。

    構文

    # ceph osd crush move <host_name> root=default
    Copy to Clipboard

    # ceph osd crush move node2 root=default
    Copy to Clipboard

  12. root として、OSD ディスクを CRUSH マップに追加します。

    構文

    # ceph osd crush add osd.<osd_id> <weight> [<bucket_type>=<bucket-name> ...]
    Copy to Clipboard

    # ceph osd crush add osd.0 1.0 host=node2
    add item id 0 name 'osd.0' weight 1 at location {host=node2} to crush map
    Copy to Clipboard

    注記

    CRUSH マップを逆コンパイルし、OSD をデバイスリストに追加することもできます。OSD ノードをバケットとして追加してから、デバイスを OSD ノードの項目として追加し、OSD に重みを割り当て、CRUSH マップを再コンパイルし、CRUSH マップを設定します。詳細は、Red Hat Ceph Storage 4 のストレージ戦略ガイドのセクション CRUSH マップの編集 を参照してください。

  13. root として、新しく作成されたディレクトリーおよびファイルで所有者とグループのアクセス権を更新します。

    構文

    # chown -R <owner>:<group> <path_to_directory>
    Copy to Clipboard

    # chown -R ceph:ceph /var/lib/ceph/osd
    # chown -R ceph:ceph /var/log/ceph
    # chown -R ceph:ceph /var/run/ceph
    # chown -R ceph:ceph /etc/ceph
    Copy to Clipboard

  14. OSD ノードは Ceph Storage クラスターの設定にあります。ただし、OSD デーモンは down および in です。新しい OSD は、データの受信開始前に up である必要があります。root として、OSD プロセスを有効にして開始します。

    構文

    # systemctl enable ceph-osd.target
    # systemctl enable ceph-osd@<osd_id>
    # systemctl start ceph-osd@<osd_id>
    Copy to Clipboard

    # systemctl enable ceph-osd.target
    # systemctl enable ceph-osd@0
    # systemctl start ceph-osd@0
    Copy to Clipboard

    OSD デーモンを起動すると、これが up および in になります。

モニターと一部の OSD が稼働しています。以下のコマンドを実行して、配置グループピアを監視できます。

$ ceph -w
Copy to Clipboard

OSD ツリーを表示するには、以下のコマンドを実行します。

$ ceph osd tree
Copy to Clipboard

ID  WEIGHT    TYPE NAME        UP/DOWN  REWEIGHT  PRIMARY-AFFINITY
-1       2    root default
-2       2        host node2
 0       1            osd.0         up         1                 1
-3       1        host node3
 1       1            osd.1         up         1                 1
Copy to Clipboard

OSD をストレージクラスターに追加してストレージ容量を拡張するには、Red Hat Ceph Storage 4 管理ガイドOSD の追加 セクションを参照してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat