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 の管理ガイドの モニターの追加 セクションを参照してください。