1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Cephが使えるようになるまで(CephFS編)

Last updated at Posted at 2022-03-31

cephadmを使ったCeph構築

#環境(事前準備するもの)
・ubuntu20.04(Hyper-Vで用意)×3
・docker
・chrony

ubuntuの構成について

Hyper-Vデフォルトから、の変更点
CPU:1→2
メモリ:512MB→4096MB(動的メモリ切)
HDDの追加:デフォルトの127GB
image.png

#インストール
apt install -y cephadm

ceph1で実行

192.168.1.240は、自分のIP
sudo cephadm bootstrap --mon-ip 192.168.1.240

しばらく待つと、下のようなメッセージが出るので、URLにアクセスしましょう。

Ceph Dashboard is now available at:

             URL: https://ceph1:8443/
            User: admin
        Password: vyy4auyzrr

You can access the Ceph CLI with:

        sudo /usr/sbin/cephadm shell --fsid 73a78d66-4978-11ec-a72c-39d22931f602 -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring

Please consider enabling telemetry to help improve Ceph:

        ceph telemetry on

For more information see:

        https://docs.ceph.com/docs/master/mgr/telemetry/

Bootstrap complete.

上のURLの部分のceph1は、host名になります。
Passwordは毎回違うものが生成されるのでログを必ず見てください。

名前解決できていない場合は、URLを下のように自分で書き換えてください。
https://192.168.1.240:8443/

ブラウザでURLを見ると
image.png
こんな感じで見えます。
先ほどのUserとPasswordを入れます。(今回の場合は、User: admin、Password: vyy4auyzrrです)
image.png
もう一度パスワードを入れて、自分の好きなパスワードに書き換えましょう。

ログインできますが、このままでは何も使えません。
image.png

まずは、ほかの2台も参加させます。

root@ceph1:~# sshpass -p "password" ssh-copy-id -f -i /etc/ceph/ceph.pub root@192.168.1.241 -o StrictHostKeyChecking=no
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/etc/ceph/ceph.pub"

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh -o 'StrictHostKeyChecking=no' 'root@192.168.1.241'"
and check to make sure that only the key(s) you wanted were added.

root@ceph1:~# ./cephadm shell -- ceph orch host add ceph2 192.168.1.241
Inferring fsid 173f9dc8-b02c-11ec-9dae-cd5183c0b4c4
Inferring config /var/lib/ceph/173f9dc8-b02c-11ec-9dae-cd5183c0b4c4/mon.ceph1/config
Using recent ceph image quay.io/ceph/ceph@sha256:1b0ceef23cbd6a1af6ba0cbde344ebe6bde4ae183f545c1ded9c7c684239947f
Error EINVAL: New host ceph2 (192.168.1.241) failed check: ['podman|docker (/usr/bin/docker) is present', 'systemctl is present', 'lvcreate is present', 'Unit chrony.service is enabled and running', 'Hostname "ceph2" matches what is expected.', 'ERROR: hostname "ceph02" does not match expected hostname "ceph2"']
root@ceph1:~# ./cephadm shell -- ceph orch host add ceph02 192.168.1.241
Inferring fsid 173f9dc8-b02c-11ec-9dae-cd5183c0b4c4
Inferring config /var/lib/ceph/173f9dc8-b02c-11ec-9dae-cd5183c0b4c4/mon.ceph1/config
Using recent ceph image quay.io/ceph/ceph@sha256:1b0ceef23cbd6a1af6ba0cbde344ebe6bde4ae183f545c1ded9c7c684239947f
Added host 'ceph02'

root@ceph1:~# sshpass -p "password" ssh-copy-id -f -i /etc/ceph/ceph.pub root@192.168.1.242 -o StrictHostKeyChecking=no
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/etc/ceph/ceph.pub"

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh -o 'StrictHostKeyChecking=no' 'root@192.168.1.242'"
and check to make sure that only the key(s) you wanted were added.

root@ceph1:~# ./cephadm shell -- ceph orch host add ceph03 192.168.1.242
Inferring fsid 173f9dc8-b02c-11ec-9dae-cd5183c0b4c4
Inferring config /var/lib/ceph/173f9dc8-b02c-11ec-9dae-cd5183c0b4c4/mon.ceph1/config
Using recent ceph image quay.io/ceph/ceph@sha256:1b0ceef23cbd6a1af6ba0cbde344ebe6bde4ae183f545c1ded9c7c684239947f
Added host 'ceph03'

OSDの追加をします。
デバイスの確認(必須ではない)

root@ceph1:~# ./cephadm shell -- ceph orch device ls
Inferring fsid 173f9dc8-b02c-11ec-9dae-cd5183c0b4c4
Inferring config /var/lib/ceph/173f9dc8-b02c-11ec-9dae-cd5183c0b4c4/mon.ceph1/config
Using recent ceph image quay.io/ceph/ceph@sha256:1b0ceef23cbd6a1af6ba0cbde344ebe6bde4ae183f545c1ded9c7c684239947f
Hostname  Path      Type  Serial                            Size   Health   Ident  Fault  Available  
ceph02    /dev/sda  hdd   600224805e15af604d8afc01f5cbaf8d   136G  Unknown  N/A    N/A    Yes        
ceph02    /dev/fd0  hdd                                     4096   Unknown  N/A    N/A    No         
ceph03    /dev/sdb  hdd   600224805e15af604d8afc01f5cbaf8d   136G  Unknown  N/A    N/A    Yes        
ceph03    /dev/fd0  hdd                                     4096   Unknown  N/A    N/A    No         
ceph1     /dev/sdb  hdd   600224805e15af604d8afc01f5cbaf8d   136G  Unknown  N/A    N/A    Yes        
ceph1     /dev/fd0  hdd                                     4096   Unknown  N/A    N/A    No
root@ceph1:~# ceph orch apply osd --all-available-devices
Scheduled osd.all-available-devices update...

上のコマンドでAvailableがYesのhdd(ssd)がOSDに入ります。
少し時間がかかる(5分ぐらい?)ので、待ちましょう
image.png
すべてのOSDが追加されました。
OSDを追加後
ディスクの状態を見ると、AvailableがNoになってます。

root@ceph1:~# ./cephadm shell -- ceph orch device ls
Inferring fsid 4e517a28-afb6-11ec-a140-6b57f3dd59e4
Inferring config /var/lib/ceph/4e517a28-afb6-11ec-a140-6b57f3dd59e4/mon.ceph1/config
Using recent ceph image quay.io/ceph/ceph@sha256:1b0ceef23cbd6a1af6ba0cbde344ebe6bde4ae183f545c1ded9c7c684239947f
Hostname  Path      Type  Serial                            Size   Health   Ident  Fault  Available
ceph02    /dev/fd0  hdd                                     4096   Unknown  N/A    N/A    No
ceph02    /dev/sda  hdd   600224805e15af604d8afc01f5cbaf8d   136G  Unknown  N/A    N/A    No
ceph03    /dev/fd0  hdd                                     4096   Unknown  N/A    N/A    No
ceph03    /dev/sdb  hdd   600224805e15af604d8afc01f5cbaf8d   136G  Unknown  N/A    N/A    No
ceph1     /dev/fd0  hdd                                     4096   Unknown  N/A    N/A    No
ceph1     /dev/sdb  hdd   600224805e15af604d8afc01f5cbaf8d   136G  Unknown  N/A    N/A    No

ここからは、CephFSの構築です。
cephfsVolという名前のCephFSを作ります。

root@ceph1:~# cephadm shell -- ceph fs volume create cephfsVol
Inferring fsid 4e517a28-afb6-11ec-a140-6b57f3dd59e4
Inferring config /var/lib/ceph/4e517a28-afb6-11ec-a140-6b57f3dd59e4/mon.ceph1/config
Using recent ceph image quay.io/ceph/ceph@sha256:1b0ceef23cbd6a1af6ba0cbde344ebe6bde4ae183f545c1ded9c7c684239947f

一度Cluster StatusがERRORになります。(MDS_ALL_DOWNになりますが、10分ぐらい待ちましょう。待ち時間はそれぞれのディスクの速さによるのかもしれません)
Cluster StatusがHEALTH_OKになったら、下の手順に移りましょう。

adminという名前でキーを取得します。

echo $(sed -n 's/.*key *= *\([^ ]*.*\)/\1/p' < /etc/ceph/ceph.client.admin.keyring) > /etc/ceph/admin.secret
cat /etc/ceph/admin.secret
chmod 600 /etc/ceph/admin.secret

次にマウントするためのディレクトリを作り、マウントします。

mkdir -p /mnt/mycephfs
mount -t ceph ceph1:6789:/ /mnt/mycephfs -o name=admin,secretfile=/etc/ceph/admin.secret

エラーが起きずに何も返ってこなければ接続成功です。

#失敗例
ubuntuの構成を1PCでHDD3台でやったら、マウント時にエラーになりました。
image.png
OSDの構成

root@ceph1:~# ./cephadm shell -- ceph orch device ls
Inferring fsid 0c17298c-ac87-11ec-b1ee-31bc59826852
Inferring config /var/lib/ceph/0c17298c-ac87-11ec-b1ee-31bc59826852/mon.ceph1/config
Using recent ceph image quay.io/ceph/ceph@sha256:1b0ceef23cbd6a1af6ba0cbde344ebe6bde4ae183f545c1ded9c7c684239947f
Hostname  Path      Type  Serial                            Size   Health   Ident  Fault  Available
ceph1     /dev/sda  hdd   6002248081e48dce650d598ad6425c43   136G  Unknown  N/A    N/A    Yes
ceph1     /dev/sdb  hdd   600224805e15af604d8afc01f5cbaf8d   136G  Unknown  N/A    N/A    Yes
ceph1     /dev/sdc  hdd   6002248038598ea95ae6f4d90b62641c   136G  Unknown  N/A    N/A    Yes
ceph1     /dev/fd0  hdd                                     4096   Unknown  N/A    N/A    No
mkdir -p /mnt/mycephfs
mount -t ceph ceph1:6789:/ /mnt/mycephfs -o name=admin,secretfile=/etc/ceph/admin.secret
mount error: no mds server is up or the cluster is laggy

おそらく、1台のHDD
HDDで構成してしまったため、それぞれが遅すぎた。(SSDとかでやったらできるかもしれません)
マウント前から、Cluster StatusがHEALTH_WARNから30分ぐらい待ってもOKになっていませんでした。

#追記
何度か作り直しもあり、ログのfsidが合っていませんがご容赦ください。

コマンド「ceph orch device ls」を実行しても、ディスクが表示されないことがありました。
cephadmを入れる前に、HDDを追加しとくのが個人的にはポイントです。

動的メモリをOFFにしたのは、私のPCのメモリが少ないためなので、参考程度にお願いいたします。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?