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
パッケージをインストールします。[user@node1 ~]$ sudo apt-get install ceph-mgr
/var/lib/ceph/mgr/ceph-hostname/
ディレクトリーを作成します。mkdir /var/lib/ceph/mgr/ceph-hostname
hostname を、
ceph-mgr
デーモンがデプロイされるノードのホスト名に置き換えます。以下に例を示します。[user@node1 ~]$ sudo mkdir /var/lib/ceph/mgr/ceph-node1
新しく作成されたディレクトリーで、
ceph-mgr
デーモンの認証キーを作成します。[user@node1 ~]$ sudo 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
に変更します。[user@node1 ~]$ sudo chown -R ceph:ceph /var/lib/ceph/mgr
ceph-mgr
ターゲットを有効にします。[user@node1 ~]$ sudo systemctl enable ceph-mgr.target
ceph-mgr
インスタンスを有効にして開始します。systemctl enable ceph-mgr@hostname systemctl start ceph-mgr@hostname
hostname を、
ceph-mgr
をデプロイするノードのホスト名に置き換えます。以下に例を示します。[user@node1 ~]$ sudo systemctl enable ceph-mgr@node1 [user@node1 ~]$ sudo 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 リポジトリーを有効にします。
$ sudo bash -c 'umask 0077; echo deb https://customername:customerpasswd@rhcs.download.redhat.com/3-updates/OSD $(lsb_release -sc) main | tee /etc/apt/sources.list.d/OSD.list' $ sudo bash -c 'wget -O - https://www.redhat.com/security/fd431d51.txt | apt-key add -' $ sudo apt-get update
root
で Ceph OSD ノードにceph-osd
パッケージをインストールします。$ sudo apt-get 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/default/ceph
ファイルに追加します。構文
$ sudo echo "CLUSTER=<custom_cluster_name>" >> /etc/default/ceph
例
$ sudo echo "CLUSTER=test123" >> /etc/default/ceph
OSD ノードは Ceph Storage クラスターの設定にあります。ただし、OSD デーモンは
down
およびin
です。新しい OSD は、データの受信開始前にup
である必要があります。root
として、OSD プロセスを有効にして開始します。構文
$ sudo systemctl enable ceph-osd.target $ sudo systemctl enable ceph-osd@<osd_id> $ sudo systemctl start ceph-osd@<osd_id>
例
$ sudo systemctl enable ceph-osd.target $ sudo systemctl enable ceph-osd@0 $ sudo 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 の追加」セクションを参照してください。