Red Hat Training
A Red Hat training course is available for Red Hat Ceph Storage
付録B Red Hat Ceph Storage の手動インストール
Red Hat は、手動でデプロイしたクラスターのアップグレードをサポートしたり、テストしたりしません。したがって、Red Hat は、Ansible を使用して Red Hat Ceph Storage 3 で新規クラスターをデプロイすることを推奨します。詳しくは 3章Red Hat Ceph Storage の導入 をご覧ください。
Yum などのコマンドラインユーティリティーを使って、手動でデプロイされたクラスターをインストールすることができます。
すべての Ceph クラスターにはモニターが少なくとも 1 つ、最低でも OSD がクラスターに保存されているオブジェクトのコピーとして必要になります。Red Hat は、実稼働環境に 3 台のモニターを使用し、少なくとも 3 つのオブジェクトストレージデバイス (OSD) を使用することを推奨します。
コマンドラインインターフェースを使用して Ceph Storage クラスターをインストールするには、以下の手順を行います。
B.1. 前提条件
Red Hat Ceph Storage のネットワークタイムプロトコルの設定
すべての Ceph Monitor および OSD ノードでは、ネットワークタイムプロトコル (NTP) を構成する必要があります。Ceph ノードが NTP ピアであることを確認します。NTP は、クロックドリフトから発生する問題を先取りするのに役立ちます。
Ansible を使用して Red Hat Ceph Storage クラスターをデプロイする場合、Ansible は NTP を自動的にインストール、構成、および有効にします。
前提条件
- 有効なタイムソースへのネットワークアクセス。
手順: RHCS のネットワークタイムプロトコルを構成する
ストレージクラスターのすべての RHCS ノードで、 root ユーザーとして以下の手順を実行します。
ntpパッケージをインストールします。# yum install ntp
NTP サービスを起動し、再起動後も持続するようにします。
# systemctl start ntpd # systemctl enable ntpd
NTP が正しくクロックを同期していることを確認してください。
$ ntpq -p
関連情報
- Red Hat Enterprise Linux7 の システム管理者ガイドのntpd を使用した NTP の設定の章。
ブートストラップの監視
Monitor のブートストラップおよび Ceph Storage クラスターの拡張には、以下のデータが必要です。
- 一意識別子
-
ファイルシステム識別子 (
fsid) はクラスターの一意の識別子です。fsidは、Ceph ストレージクラスターが Ceph ファイルシステムに主に使用する場合に使用されていました。Ceph はネイティブのインターフェース、ブロックデバイス、およびオブジェクトストレージゲートウェイのインターフェースもサポートするようになり、fsidは一部の誤検出になります。 - クラスター名
Ceph クラスターにはクラスター名があり、これはスペースを含まないシンプルな文字列です。デフォルトのクラスター名は
cephですが、別のクラスター名を指定することもできます。デフォルトのクラスター名を上書きすることは、複数のクラスターを扱う場合に特に有効です。マルチサイトアーキテクチャーで複数のクラスターを実行する場合、クラスター名 (
us-west、us-eastなど) は、現在のコマンドラインセッションのクラスターを識別します。注記コマンドラインインターフェイスでクラスター名を識別するには、クラスター名を使用して Ceph 構成ファイルを指定します (例:
ceph.conf、us-west.conf、us-east.confなど)。たとえば、以下のようになります。
# ceph --cluster us-west.conf ...
- 監視名
-
クラスター内の各 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 設定ファイルを作成し、少なくとも fsid、mon initial members、および mon host の設定で設定することを推奨します。
実行時にすべての Monitor 設定を取得および設定できます。ただし、Ceph 設定ファイルには、デフォルト値を上書きする設定のみが含まれる場合があります。Ceph 設定ファイルに設定を追加すると、デフォルト設定が上書きされます。Ceph 設定ファイルでこれらの設定を維持すると、クラスターを簡単に維持できます。
初期モニターをブートストラップするには、以下の手順を実行します。
Red Hat Ceph Storage 3 Monitor リポジトリーを有効にします。
[root@monitor ~]# subscription-manager repos --enable=rhel-7-server-rhceph-3-mon-els-rpms
初期 Monitor ノードで、
rootでceph-monパッケージをインストールします。# yum install ceph-mon
rootで、/etc/ceph/ディレクトリーに Ceph 設定ファイルを作成します。デフォルトでは、Ceph はceph.confを使用します。ここで、cephはクラスター名を反映します。構文
# touch /etc/ceph/<cluster_name>.conf
例
# touch /etc/ceph/ceph.conf
rootでクラスターの一意の識別子を生成し、一意の ID を Ceph 設定ファイルの[global]セクションに追加します。構文
# echo "[global]" > /etc/ceph/<cluster_name>.conf # echo "fsid = `uuidgen`" >> /etc/ceph/<cluster_name>.conf
例
# echo "[global]" > /etc/ceph/ceph.conf # echo "fsid = `uuidgen`" >> /etc/ceph/ceph.conf
現在の Ceph 設定ファイルを表示します。
$ cat /etc/ceph/ceph.conf [global] fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993
rootとして、最初の Monitor を Ceph 設定ファイルに追加します。構文
# echo "mon initial members = <monitor_host_name>[,<monitor_host_name>]" >> /etc/ceph/<cluster_name>.conf
例
# echo "mon initial members = node1" >> /etc/ceph/ceph.conf
rootとして、初期 Monitor の IP アドレスを Ceph 設定ファイルに追加します。構文
# echo "mon host = <ip-address>[,<ip-address>]" >> /etc/ceph/<cluster_name>.conf
例
# echo "mon host = 192.168.0.120" >> /etc/ceph/ceph.conf
注記IPv6 アドレスを使用するには、
ms bind ipv6オプションをtrueに設定します。詳細は、Red Hat Ceph Storage 3 の『設定ガイド』の「バインド」セクションを参照してください。rootとして、クラスターのキーリングを作成し、Monitor シークレットキーを生成します。構文
# ceph-authtool --create-keyring /tmp/<cluster_name>.mon.keyring --gen-key -n mon. --cap mon '<capabilites>'
例
# ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *' creating /tmp/ceph.mon.keyring
rootで管理者キーリングを生成し、<cluster_name>.client.admin.keyringユーザーを生成し、ユーザーをキーリングに追加します。構文
# ceph-authtool --create-keyring /etc/ceph/<cluster_name>.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon '<capabilites>' --cap osd '<capabilites>' --cap mds '<capabilites>'
例
# 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
rootとして、<cluster_name> .client.admin.keyringキーを<cluster_name>.mon.keyringに追加します。構文
# ceph-authtool /tmp/<cluster_name>.mon.keyring --import-keyring /etc/ceph/<cluster_name>.client.admin.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
Monitor マップを生成します。初期 Monitor のノード名、IP アドレス、および
fsidを使用して指定し、/tmp/monmapとして保存します。構文
$ monmaptool --create --add <monitor_host_name> <ip-address> --fsid <uuid> /tmp/monmap
例
$ 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)
初期モニターノードで、
rootとしてデフォルトのデータディレクトリーを作成します。構文
# mkdir /var/lib/ceph/mon/<cluster_name>-<monitor_host_name>
例
# mkdir /var/lib/ceph/mon/ceph-node1
rootとして、最初の Monitor デーモンに Monitor マップとキーリングを設定します。構文
# ceph-mon [--cluster <cluster_name>] --mkfs -i <monitor_host_name> --monmap /tmp/monmap --keyring /tmp/<cluster_name>.mon.keyring
例
# 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
現在の Ceph 設定ファイルを表示します。
# cat /etc/ceph/ceph.conf [global] fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993 mon_initial_members = node1 mon_host = 192.168.0.120
さまざまな Ceph 構成設定に関する詳細は、Red Hat Ceph Storage 3 の 『設定ガイド』 を参照してください。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>
rootとして、doneファイルを作成します。構文
# touch /var/lib/ceph/mon/<cluster_name>-<monitor_host_name>/done
例
# touch /var/lib/ceph/mon/ceph-node1/done
rootとして、新しく作成されたディレクトリーおよびファイルで所有者とグループのアクセス権を更新します。構文
# chown -R <owner>:<group> <path_to_directory>
例
# 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
注記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 ...
カスタム名を持つストレージクラスターの場合、
rootとして次の行を追加します。構文
# echo "CLUSTER=<custom_cluster_name>" >> /etc/sysconfig/ceph
例
# echo "CLUSTER=test123" >> /etc/sysconfig/ceph
rootとして、初期モニターノードでceph-monプロセスを開始して有効にします。構文
# systemctl enable ceph-mon.target # systemctl enable ceph-mon@<monitor_host_name> # systemctl start ceph-mon@<monitor_host_name>
例
# systemctl enable ceph-mon.target # systemctl enable ceph-mon@node1 # systemctl start ceph-mon@node1
rootとして、monitor デーモンが実行していることを確認します。構文
# systemctl status ceph-mon@<monitor_host_name>
例
# 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...
Red Hat Ceph Storage Monitor をストレージクラスターに追加するには、Red Hat Ceph Storage 3 の『管理ガイド』の「モニターの追加」セクションを参照してください。