CephFS Client
CephにMDSを組み込むと POSIX準拠のファイルシステムとして利用できる.
参照先https://ceph.readthedocs.io/en/latest/cephfs/mount-prerequisites/

MDSを有したCephはファイルシステムとして利用可能となる
そしてそのCephFSへのアクセスには

  • カーネルベース(mount.cephコマンド)
  • FUSEベース

の2種類がある.

事前に

Cephの構成ファイル(/etc/ceph/ceph.conf)とMDSへアクセスするキーリングを用意する

Cephの構成ファイルは単にMonitor、Metadataとかから/etc/ceph/ceph.confをより寄せればいいのだが、
全部は必要ない。必要な分だけ貰えればいい

その必要な分だけ貰う方法が下記となる

[root@client ~]# ssh root@mds "sudo ceph config generate-minimal-conf" | sudo tee /etc/ceph/ceph.conf
root@mds's password:
 
[root@client ~]# cat /etc/ceph/ceph.conf
# minimal ceph.conf for 95f5eb4a-2ea2-4539-b0a3-bda3b6358ba5
[global]
        fsid = 95f5eb4a-2ea2-4539-b0a3-bda3b6358ba5
        mon_host = [v2:192.168.0.47:3300/0,v1:192.168.0.47:6789/0] [v2:192.168.0.112:3300/0,v1:192.168.0.112:6789/0] (略
 
[root@client ~]#

次にCephFS/MDS#e2ceb9bcで作ったファイルシステム(cephfs)へのアクセスキーを作ります.
ここでは目印「foo」は「/(root)」でrw(読み書き)権限を持つキー(ceph.client.foo.keyring)を作ります

[root@client ~]# ssh root@mds "sudo ceph fs authorize cephfs client.foo / rw" | sudo tee /etc/ceph/ceph.client.foo.keyring
root@mds's password:
 
 
[root@client ~]# chmod 600 /etc/ceph/ceph.client.foo.keyring
 
[root@client ~]# cat /etc/ceph/ceph.client.foo.keyring
[client.foo]
        key = AQDU6iNgpM21ExAAKvMwC5FhXtsaF1JNwkC4HQ==
 
[root@client ~]#

これでCephFSのファイルシステムをmountする準備は整った

カーネルベース

CephFSのマウントポイントを作って、mountコマンドでマウントします
https://ceph.readthedocs.io/en/latest/cephfs/mount-using-kernel-driver/

既に「/etc/ceph/ceph.client.foo.keyring」とfooキーリングを持っているので

[root@client ~]# mkdir /em
[root@client ~]# mount -t ceph :/ /em -o name=foo               # 「-t」でファイルシステムのタイプを指定しています

としてmountを行います.

/etc/fstabへの記載は

[root@client ~]# cat /etc/fstab
:/     /em    ceph    name=foo,noatime,_netdev    0       2
[root@client ~]#

を末尾に加えます
autofsでmountする方法が分からない...

mount確認すると下記のような具合である.

[root@client ~]# df -h
Filesystem                                                 Size  Used Avail Use% Mounted on
devtmpfs                                                   909M     0  909M   0% /dev
tmpfs                                                      920M     0  920M   0% /dev/shm
tmpfs                                                      920M  8.8M  911M   1% /run
tmpfs                                                      920M     0  920M   0% /sys/fs/cgroup
/dev/sda3                                                  3.0G  1.9G  1.2G  61% /
/dev/sda1                                                  509M  213M  297M  42% /boot
tmpfs                                                      184M     0  184M   0% /run/user/0
192.168.0.47:6789,192.168.0.112:6789,192.168.0.113:6789:/   23T     0   23T   0% /em
 
 
[root@client ~]# mount | grep ceph
192.168.0.47:6789,192.168.0.112:6789,192.168.0.113:6789:/ on /em type ceph (rw,noatime,name=foo,secret=<hidden>,acl,wsize=16777216)
 
[root@client ~]#

FUSE

いわゆるユーザランドでのmountになります
既に/etc/ceph/ceph.confとキーリングがあるのなら

[root@client ~]# ceph-fuse --id foo /em
 
ceph-fuse[12018]: starting fuse
[root@client ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        909M     0  909M   0% /dev
tmpfs           920M     0  920M   0% /dev/shm
tmpfs           920M  8.8M  911M   1% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
/dev/sda3       3.0G  1.9G  1.2G  61% /
/dev/sda1       509M  213M  297M  42% /boot
tmpfs           184M     0  184M   0% /run/user/0
ceph-fuse        23T     0   23T   0% /em
 
[root@client ~]#

となります。/etc/fstabに記載するなら

none    /em  fuse.ceph ceph.id=foo,_netdev,defaults  0 0

を/etc/fstabの末尾に加えます

monitor側では

この時のmsでは下記のような状態.

[root@ceph-mgr ~]# ceph -s
  cluster:
    id:     95f5eb4a-2ea2-4539-b0a3-bda3b6358ba5
    health: HEALTH_WARN
            Module 'restful' has failed dependency: No module named 'pecan'
            Degraded data redundancy: 32 pgs undersized
            1 daemons have recently crashed
 
  services:
    mon: 3 daemons, quorum ceph-mgr,ceph-mon1,ceph-mon2 (age 3d)
    mgr: ceph-mgr(active, since 4d)
    mds: cephfs:1 {0=ceph-mds=up:active}
    osd: 3 osds: 3 up (since 4d), 3 in (since 4d)
 
  data:
    pools:   3 pools, 65 pgs
    objects: 22 objects, 3.9 KiB
    usage:   3.0 GiB used, 48 TiB / 48 TiB avail
    pgs:     33 active+clean
             32 active+undersized
 
[root@ceph-mgr ~]#

healthで問題が出てますが、、

48TiBなのに dfでみると半分の 23TiBになっています.
3つのOSDノードを拵え、各ノードに16TBのHDDをcephに供出しました. 16TB*3 = 48TB
VMwareで16TBなHDDを仮想化したのに16TiBで作り出された?

ここでosdノードで1つHDDを増やしてみます

[root@ceph-osd1 ~]# ceph-volume lvm create --bluestor --data /dev/sdc

すると「ceph -s」で状態を見ると自動的に re-balancing が始まる

 :
  data:
    pools:   3 pools, 65 pgs
    objects: 22 objects, 3.9 KiB
    usage:   4.0 GiB used, 64 TiB / 64 TiB avail
    pgs:     34 active+clean
             22 active+undersized
             9  active+clean+remapped
 
  io:
    recovery: 89 B/s, 1 objects/s
 
  progress:
    Rebalancing after osd.3 marked in (5s)
      [=============...............] (remaining: 5s)

ストレージは 16*4 --> 64TBに膨れる. またclient側では

[root@client ~]# df -ht fuse.ceph-fuse
Filesystem      Size  Used Avail Use% Mounted on
ceph-fuse        31T     0   31T   0% /em
[root@client ~]#

と23->31. 増分8となる。


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2021-03-10 (水) 03:40:19 (38d)