Red Hat Training
A Red Hat training course is available for Red Hat Ceph Storage
B.2. Ceph Manager の手動インストール
通常、Ansible 自動化ユーティリティーは、Red Hat Ceph Storage クラスターをデプロイする際に Ceph Manager デーモン (ceph-mgr) をインストールします。ただし、Ansible を使用して Red Hat Ceph Storage を管理しない場合は、Ceph Manager を手動でインストールすることができます。Red Hat は、Ceph Manager デーモンと Ceph Monitor デーモンを同じノードに配置することを推奨します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスター
-
rootまたはsudoアクセス -
rhel-7-server-rhceph-3-mon-els-rpmsリポジトリーが有効 -
ファイアウォールを使用している場合は、パブリックネットワーク上でポート
6800-7300を開く
手順
ceph-mgr がデプロイされるノードで、root ユーザーまたは sudo ユーティリティーで以下のコマンドを使用します。
ceph-mgrパッケージをインストールします。[root@node1 ~]# yum install ceph-mgr
/var/lib/ceph/mgr/ceph-hostname/ディレクトリーを作成します。mkdir /var/lib/ceph/mgr/ceph-hostnamehostname を、
ceph-mgrデーモンがデプロイされるノードのホスト名に置き換えます。以下に例を示します。[root@node1 ~]# mkdir /var/lib/ceph/mgr/ceph-node1
新しく作成されたディレクトリーで、
ceph-mgrデーモンの認証キーを作成します。[root@node1 ~]# ceph auth get-or-create mgr.`hostname -s` mon 'allow profile mgr' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mgr/ceph-node1/keyring
/var/lib/ceph/mgr/ディレクトリーの所有者とグループをceph:cephに変更します。[root@node1 ~]# chown -R ceph:ceph /var/lib/ceph/mgr
ceph-mgrターゲットを有効にします。[root@node1 ~]# systemctl enable ceph-mgr.target
ceph-mgrインスタンスを有効にして開始します。systemctl enable ceph-mgr@hostname systemctl start ceph-mgr@hostname
hostname を、
ceph-mgrをデプロイするノードのホスト名に置き換えます。以下に例を示します。[root@node1 ~]# systemctl enable ceph-mgr@node1 [root@node1 ~]# systemctl start ceph-mgr@node1
ceph-mgrデーモンが正常に起動していることを確認します。ceph -s
出力には、
services:セクションの下に以下の行と同様の行が含まれます。mgr: node1(active)
-
追加の
ceph-mgrデーモンをインストールして、現在のアクティブなデーモンに障害が発生した場合にアクティブになるスタンバイデーモンとして機能します。
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 3 の『設定』の「OSD 設定参照」セクションを参照してください。
初期モニターのブートストラップ後に、クラスターにはデフォルトの CRUSH マップがあります。ただし、CRUSH マップには Ceph ノードにマッピングされた Ceph OSD デーモンがありません。
OSD をクラスターに追加し、デフォルトの CRUSH マップを更新するには、各 OSD ノードで以下のコマンドを実行します。
Red Hat Ceph Storage 3 OSD リポジトリーを有効にします。
[root@osd ~]# subscription-manager repos --enable=rhel-7-server-rhceph-3-osd-els-rpms
rootで Ceph OSD ノードにceph-osdパッケージをインストールします。# yum install ceph-osd
Ceph 設定ファイルと管理キーリングファイルを初期 Monitor ノードから OSD ノードにコピーします。
構文
# scp <user_name>@<monitor_host_name>:<path_on_remote_system> <path_to_local_file>
例
# scp root@node1:/etc/ceph/ceph.conf /etc/ceph # scp root@node1:/etc/ceph/ceph.client.admin.keyring /etc/ceph
OSD 用の Universally Unique Identifier (UUID) を生成します。
$ uuidgen b367c360-b364-4b1d-8fc6-09408a9cda7a
rootとして、OSD インスタンスを作成します。構文
# ceph osd create <uuid> [<osd_id>]
例
# ceph osd create b367c360-b364-4b1d-8fc6-09408a9cda7a 0
注記このコマンドは、後続のステップに必要な OSD 番号識別子を出力します。
rootとして、新規 OSD のデフォルトディレクトリーを作成します。構文
# mkdir /var/lib/ceph/osd/<cluster_name>-<osd_id>
例
# mkdir /var/lib/ceph/osd/ceph-0
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/<cluster_name>-<osd_id> # echo "<path_to_partition> /var/lib/ceph/osd/<cluster_name>-<osd_id> xfs defaults,noatime 1 2" >> /etc/fstab
例
# 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
rootとして、OSD データディレクトリーを初期化します。構文
# ceph-osd -i <osd_id> --mkfs --mkkey --osd-uuid <uuid>
例
# 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
注記--mkkeyオプションを指定してceph-osdを実行する前に、ディレクトリーを空にする必要があります。カスタムのクラスタ名を使用する場合、ceph-osdユーティリティーには--clusterオプションが必要です。rootとして、OSD 認証キーを登録します。クラスター名がcephと異なる場合は、代わりにクラスター名を挿入してください。構文
# ceph auth add osd.<osd_id> osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/<cluster_name>-<osd_id>/keyring
例
# ceph auth add osd.0 osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-0/keyring added key for osd.0
rootとして、OSD ノードを CRUSH マップに追加します。構文
# ceph [--cluster <cluster_name>] osd crush add-bucket <host_name> host
例
# ceph osd crush add-bucket node2 host
rootで OSD ノードをdefaultの CRUSH ツリーに配置します。構文
# ceph [--cluster <cluster_name>] osd crush move <host_name> root=default
例
# ceph osd crush move node2 root=default
rootとして、OSD ディスクを CRUSH マップに追加します。構文
# ceph [--cluster <cluster_name>] osd crush add osd.<osd_id> <weight> [<bucket_type>=<bucket-name> ...]
例
# 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注記CRUSH マップを逆コンパイルし、OSD をデバイス一覧に追加することもできます。OSD ノードをバケットとして追加してから、デバイスを OSD ノードの項目として追加し、OSD に重みを割り当て、CRUSH マップを再コンパイルし、CRUSH マップを設定します。詳細は、Red Hat Ceph Storage 3 の『ストレージ戦略ガイド』のセクション「CRUSH マップの編集」を参照してください。
rootとして、新しく作成されたディレクトリーおよびファイルで所有者とグループのアクセス権を更新します。構文
# chown -R <owner>:<group> <path_to_directory>
例
# 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
カスタム名を持つストレージクラスターの場合は、
rootとして、次の行を/etc/sysconfig/cephファイルに追加します。構文
# echo "CLUSTER=<custom_cluster_name>" >> /etc/sysconfig/ceph
例
# echo "CLUSTER=test123" >> /etc/sysconfig/ceph
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>
例
# systemctl enable ceph-osd.target # systemctl enable ceph-osd@0 # systemctl start ceph-osd@0
OSD デーモンを起動すると、これが
upおよびinになります。
モニターと一部の OSD が稼働しています。以下のコマンドを実行して、配置グループピアを監視できます。
$ ceph -w
OSD ツリーを表示するには、以下のコマンドを実行します。
$ ceph osd tree
例
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
OSD をストレージクラスターに追加してストレージ容量を拡張するには、Red Hat Ceph Storage 3 『管理ガイド』の「OSD の追加」セクションを参照してください。