0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【2024年7月版】Ubuntu で Cephクラスタの構築、NFSからの利用メモ【分散ストレージ, CephFS, NFS, Ganesha】

Last updated at Posted at 2024-07-22

はじめに

3台のUbuntu22.04で、Cephのクラスタを構築して、NFSでクライアントのUbuntu22.04からマウントしてRead/Writeのパフォーマンスを計測してみたいな。。。

基本的なCephクラスタの構築と、NFSでのマウントをしてみたメモ

前提

  • Ubuntu22.04 x 3 でクラスタを構築
    • 192.168.120.141 ct1
    • 192.168.120.142 ct2
    • 192.168.120.143 ct3
  • Ubuntu22.04 のクライアントで、NFS経由でマウント
    • 192.168.120.144 ct4
  • NFSマウントしたディスクのパフォーマンスを計測

手順

Cephのクラスタ構築

以下の手順はすべてのクラスタノードで行います

hostsファイルの設定

クラスタのメンバーをhostsファイルに登録します

192.168.120.141 ct1
192.168.120.142 ct2
192.168.120.143 ct3
192.168.120.144 ct4

Cephのインストール

sudo apt update
sudo apt install -y cephadm

sshdの設定

Ubuntuではデフォルトの設定ではrootによるログインはできないようになっているので許可します。
PermitRootLogin yesの記述を、/etc/ssh/sshd_configに追記します。
その後、sudo systemctl restart sshd で設定を読み込ませます。

#PermitRootLogin prohibit-password
PermitRootLogin yes

クラスタのブートストラップ

以下の手順は、adminノードとなる、ct1 で行います。

$ sudo cephadm bootstrap --mon-ip 192.168.120.141
Verifying podman|docker is present...
Verifying lvm2 is present...
Verifying time synchronization is in place...
Unit systemd-timesyncd.service is enabled and running
Repeating the final host check...
docker (/usr/bin/docker) is present
systemctl is present
lvcreate is present
Unit systemd-timesyncd.service is enabled and running
Host looks OK
  :
  :
Ceph Dashboard is now available at:

    URL: https://ct1:8443/
    User: admin
  :
  :
Bootstrap complete.  

ブートストラップが完了したので、Cephのステータスを確認します。設定が完了していないので、HEALTH_WARNが表示されますが、続けます。

$ sudo cephadm shell -- ceph status
Inferring fsid 27cba866-476b-11ef-8d08-757740329b50
Inferring config /var/lib/ceph/27cba866-476b-11ef-8d08-757740329b50/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC
quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
  cluster:
    id:     27cba866-476b-11ef-8d08-757740329b50
    health: HEALTH_WARN
            OSD count 0 < osd_pool_default_size 3

  services:
    mon: 1 daemons, quorum ct1 (age 3m)
    mgr: ct1.kkgdsb(active, since 28s)
    osd: 0 osds: 0 up, 0 in

  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:

ブートストラップで表示されていたURLへUser/Passwordでログインできることも確認します。

image.png

image.png

OSDで利用できるデバイスの確認を行います

$ sudo cephadm shell -- ceph orch device ls
Inferring fsid 27cba866-476b-11ef-8d08-757740329b50
Inferring config /var/lib/ceph/27cba866-476b-11ef-8d08-757740329b50/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC
quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
HOST  PATH      TYPE  DEVICE ID                   SIZE  AVAILABLE  REFRESHED  REJECT REASONS  
ct1   /dev/sdb  hdd   QEMU_HARDDISK_drive-scsi1  10.0G  Yes        64s ago

/dev/sdb が利用可能なので追加します。

$ sudo cephadm shell -- ceph orch daemon add osd ct1:/dev/sdb
Inferring fsid dea53f62-4774-11ef-9306-31f86fedd53e
Inferring config /var/lib/ceph/dea53f62-4774-11ef-9306-31f86fedd53e/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC
quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
Created osd(s) 0 on host 'ct1'

追加された内容を確認します。

$ sudo cephadm shell -- ceph osd tree
Inferring fsid dea53f62-4774-11ef-9306-31f86fedd53e
Inferring config /var/lib/ceph/dea53f62-4774-11ef-9306-31f86fedd53e/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC
quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
ID  CLASS  WEIGHT   TYPE NAME      STATUS  REWEIGHT  PRI-AFF
-1         0.00980  root default                            
-3         0.00980      host ct1                            
 0    hdd  0.00980          osd.0      up   1.00000  1.00000

クラスタへのホストの追加

/etc/ceph/ceph.pub の内容を、各ホストのrootユーザ の .ssh/authorized_keys に追加します。
ct1 でブートストラップを行ったので、すでにrootユーザの .ssh/authorized_keys には追加されています。ct2, ct3 で追加を行います。

その後、以下の手順をct1で行います。

ct2 をクラスタへ追加します。

$ sudo cephadm shell -- ceph orch host add ct2 192.168.120.142
Inferring fsid dea53f62-4774-11ef-9306-31f86fedd53e
Inferring config /var/lib/ceph/dea53f62-4774-11ef-9306-31f86fedd53e/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC
quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
Added host 'ct2' with addr '192.168.120.142'

ct3 をクラスタへ追加します。

$ sudo cephadm shell -- ceph orch host add ct3 192.168.120.143
Inferring fsid dea53f62-4774-11ef-9306-31f86fedd53e
Inferring config /var/lib/ceph/dea53f62-4774-11ef-9306-31f86fedd53e/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC
quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
Added host 'ct3' with addr '192.168.120.143'

追加されたホストを確認します。

$ sudo cephadm shell -- ceph orch host ls
Inferring fsid dea53f62-4774-11ef-9306-31f86fedd53e
Inferring config /var/lib/ceph/dea53f62-4774-11ef-9306-31f86fedd53e/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC
quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
HOST  ADDR             LABELS  STATUS  
ct1   192.168.120.141  _admin          
ct2   192.168.120.142                  
ct3   192.168.120.143                  
3 hosts in cluster

ct1 と同様に、ct2ct3で、OSDの追加を行います。クラスタの設定が完了しているので、ct2ct3のOSDはct1から追加可能です。

$ sudo cephadm shell -- ceph orch device ls
Inferring fsid dea53f62-4774-11ef-9306-31f86fedd53e
Inferring config /var/lib/ceph/dea53f62-4774-11ef-9306-31f86fedd53e/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC
quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
HOST  PATH      TYPE  DEVICE ID                   SIZE  AVAILABLE  REFRESHED  REJECT REASONS                                                           
ct1   /dev/sdb  hdd   QEMU_HARDDISK_drive-scsi1  10.0G  No         2m ago     Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected  
ct3   /dev/sdb  hdd   QEMU_HARDDISK_drive-scsi1  10.0G  Yes        22s ago
$ sudo cephadm shell -- ceph orch daemon add osd ct3:/dev/sdb
Inferring fsid dea53f62-4774-11ef-9306-31f86fedd53e
Inferring config /var/lib/ceph/dea53f62-4774-11ef-9306-31f86fedd53e/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC
quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
Created osd(s) 1 on host 'ct3'
  :
  :
$ sudo cephadm shell -- ceph orch daemon add osd ct3:/dev/sdb
  :
  :
$ sudo cephadm shell -- ceph orch device ls
Inferring fsid dea53f62-4774-11ef-9306-31f86fedd53e
Inferring config /var/lib/ceph/dea53f62-4774-11ef-9306-31f86fedd53e/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC
quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
HOST  PATH      TYPE  DEVICE ID                   SIZE  AVAILABLE  REFRESHED  REJECT REASONS                                                           
ct1   /dev/sdb  hdd   QEMU_HARDDISK_drive-scsi1  10.0G  No         9m ago     Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected  
ct2   /dev/sdb  hdd   QEMU_HARDDISK_drive-scsi1  10.0G  No         13s ago    Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected  
ct3   /dev/sdb  hdd   QEMU_HARDDISK_drive-scsi1  10.0G  No         6m ago     Has a FileSystem, Insufficient space (<10 extents) on vgs, LVM detected
$ sudo cephadm shell -- ceph osd tree
Inferring fsid dea53f62-4774-11ef-9306-31f86fedd53e
Inferring config /var/lib/ceph/dea53f62-4774-11ef-9306-31f86fedd53e/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC
quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
ID  CLASS  WEIGHT   TYPE NAME      STATUS  REWEIGHT  PRI-AFF
-1         0.02939  root default                            
-3         0.00980      host ct1                            
 0    hdd  0.00980          osd.0      up   1.00000  1.00000
-7         0.00980      host ct2                            
 2    hdd  0.00980          osd.2      up   1.00000  1.00000
-5         0.00980      host ct3                            
 1    hdd  0.00980          osd.1      up   1.00000  1.00000

ステータスで、問題がないことを確認します。

$ sudo cephadm shell -- ceph status
Inferring fsid dea53f62-4774-11ef-9306-31f86fedd53e
Inferring config /var/lib/ceph/dea53f62-4774-11ef-9306-31f86fedd53e/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC

quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
  cluster:
    id:     dea53f62-4774-11ef-9306-31f86fedd53e
    health: HEALTH_OK
  services:
    mon: 3 daemons, quorum ct1,ct2,ct3 (age 2m)
    mgr: ct1.xnsnuz(active, since 59m), standbys: ct2.edmzbz
    osd: 3 osds: 3 up (since 94s), 3 in (since 116s)
  data:
    pools:   1 pools, 1 pgs
    objects: 2 objects, 577 KiB
    usage:   873 MiB used, 29 GiB / 30 GiB avail
    pgs:     1 active+clean

image.png

CephFSの作成

CephFSを作成して、ステータスを確認します。

$ sudo cephadm shell -- ceph fs volume create ctcephfs
Inferring fsid dea53f62-4774-11ef-9306-31f86fedd53e
Inferring config /var/lib/ceph/dea53f62-4774-11ef-9306-31f86fedd53e/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC
quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
$ sudo cephadm shell -- ceph fs status
Inferring fsid dea53f62-4774-11ef-9306-31f86fedd53e
Inferring config /var/lib/ceph/dea53f62-4774-11ef-9306-31f86fedd53e/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC
quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
ctcephfs - 0 clients
========
RANK  STATE           MDS             ACTIVITY     DNS    INOS   DIRS   CAPS  
 0    active  ctcephfs.ct3.imtgwz  Reqs:    0 /s    10     13     12      0   
        POOL            TYPE     USED  AVAIL  
cephfs.ctcephfs.meta  metadata  96.0k  9432M  
cephfs.ctcephfs.data    data       0   9432M  
    STANDBY MDS      
ctcephfs.ct2.jxafvw  
MDS version: ceph version 17.2.7 (b12291d110049b2f35e32e0de30d70e9a4c060d2) quincy (stable)

NFS-Ganeshaの設定

CephにNFS経由でアクセスする場合、nfs-ganeshaを利用します。以下の手順は ct1 で行います。

NFS-Ganeshaのインストール

$ sudo apt install nfs-ganesha nfs-ganesha-ceph

シークレットキーの取得

$ sudo cephadm shell -- ceph auth get-key client.admin
Inferring fsid dea53f62-4774-11ef-9306-31f86fedd53e
Inferring config /var/lib/ceph/dea53f62-4774-11ef-9306-31f86fedd53e/mon.ct1/config
Using ceph image with id 'ff4519c9e0a2' and tag 'v17' created on 2024-05-21 16:09:44 +0000 UTC
quay.io/ceph/ceph@sha256:d26c11e20773704382946e34f0d3d2c0b8bb0b7b37d9017faa9dc11a0196c7d9
*************** secret ****************

NFS-Ganeshaの設定ファイルを編集

/etc/ganesha/ganesha.conf
EXPORT
{
    Export_ID=1;  # 識別子。必要に応じて変更
    Path = "/";  # エクスポートするCephFSのパス。通常は"/"
    Pseudo = "/cephfs";  # NFSクライアントがマウントするパス。この例では"/cephfs"
    Access_Type = RW;  # 読み書き可能な設定
    Squash = No_Root_Squash;  # Root権限のSquash設定。必要に応じて変更
    Attr_Expiration_Time = 0;  # 属性のキャッシュ時間。0はキャッシュしない設定
    FSAL {
        Name = CEPH;  # CephFSを使用するためのFSALモジュール
        User_Id = "admin";  # CephクラスターにアクセスするユーザーID。管理者のユーザー名に変更
        Secret_Access_Key = "*************** secret ****************";  # Cephユーザーのシークレットキー。対応するシークレットキーに変更。ceph auth get-keyで取得。
        Ceph_Cluster = "ceph";  # Cephクラスター名。通常は"ceph"
    }
    CLIENT {
        Clients = *;  # クライアントのIPアドレスまたはネットワーク。例: "192.168.1.0/24"。すべてのクライアントにアクセスを許可する場合は"*"
        Access_Type = RW;  # クライアントのアクセス権。読み書き可能な設定
    }
}

NFS-Ganeshaの再起動

設定を反映させるため、サービスを再起動します。

sudo systemctl restart nfs-ganesha

マウントリストの確認

NFSが公開されているか確認します。

$ showmount -e localhost
Export list for localhost:
/ *

クライアントからのNFSマウント

以下の手順は クライアントである、ct4 上で行います。

NFSクライアントのインストール

$ sudo apt update
$ sudo apt install nfs-common

NFS共有のマウント

NFS-Ganeshaが動作しているサーバーのIPアドレスを使用して、NFS共有をマウントします。

マウントディレクトリの作成

sudo mkdir -p /mnt/cephfs

マウント

$ sudo mount -t nfs 192.168.120.141:/cephfs /mnt/cephfs

確認

$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                               96M  1.1M   95M   2% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   38G  4.9G   32G  14% /
  :
  :
192.168.120.141:/cephfs            9.3G     0  9.3G   0% /mnt

CephFSをNFSマウントしたパフォーマンス

作業ディレクトリを作成

$ sudo mkdir -p /mnt/cephfs/ptest
$ cd /mnt/cephfs/ptest

パフォーマンスの計測

dd で、1GBを書き込みしてみます。この環境では45.8MB/sぐらいでているようです。

$ sudo dd if=/dev/zero of=/mnt/cephfs/ptest/test.dat bs=10M count=100 status=progress
1048576000 bytes (1.0 GB, 1000 MiB) copied, 22 s, 48.5 MB/s
100+0 records in
100+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 22.8911 s, 45.8 MB/s

f3 で、3GBを書き込みして、読込してみます。この環境では、Write 36.14MB/s、Read 104.51MB/s ぐらいでているようです。

$ sudo f3write . --end-at=3
F3 write 8.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

Free space: 9.20 GB
Creating file 1.h2w ... OK!                         
Creating file 2.h2w ... OK!                         
Creating file 3.h2w ... OK!                        
Free space: 6.37 GB
Average writing speed: 36.14 MB/s
dev@ubuntu04:/mnt/cephfs/ptest$ sudo f3read .
F3 read 8.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

                  SECTORS      ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2097152/        0/      0/      0
Validating file 2.h2w ... 2097152/        0/      0/      0
Validating file 3.h2w ... 2097152/        0/      0/      0

  Data OK: 3.00 GB (6291456 sectors)
Data LOST: 0.00 Byte (0 sectors)
           Corrupted: 0.00 Byte (0 sectors)
    Slightly changed: 0.00 Byte (0 sectors)
         Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 104.51 MB/s

さいごに

かんたんでしたね

参考リンク

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?