[root@ceph-mgr ~]# ceph fs set emfs down true
[root@ceph-mgr ~]# ceph fs rm emfs --yes-i-really-mean-it
https://docs.ceph.com/en/latest/rados/operations/placement-groups/
[root@mds ~]# ceph osd pool autoscale-status
POOL SIZE TARGET SIZE RATE RAW CAPACITY RATIO TARGET RATIO EFFECTIVE RATIO BIAS PG_NUM NEW PG_NUM AUTOSCALE
device_health_metrics 0 3.0 499.9G 0.0000 1.0 1 on
cephfs_data 0 2.0 499.9G 0.0000 1.0 32 on
cephfs_metadata 0 3.0 499.9G 0.0000 1.0 64 on
[root@mds ~]#
[root@ceph-mgr ~]# ceph fs set emfs down true
emfs marked down.
[root@mds ~]# ceph fs set emfs down false
emfs marked up, max_mds = 1
[root@mds ~]#
階層化ストレージにも出来るみたい. っが必ず速くなるものでもないようで、要取り扱い注意な様子.
https://docs.ceph.com/en/latest/rados/operations/cache-tiering/
下記の場合はHDDのみで構成されているが、SSDのみで「ceph-volume lvm create」すると、「CLASS」欄に「SSD」なosdが表示される。
[root@mgr ~]# ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.68381 root default
-3 0.19537 host osd1
0 hdd 0.09769 osd.0 up 1.00000 1.00000
3 hdd 0.09769 osd.3 up 1.00000 1.00000
-5 0.19537 host osd2
1 hdd 0.09769 osd.1 up 1.00000 1.00000
4 hdd 0.09769 osd.4 up 1.00000 1.00000
-7 0.19537 host osd3
2 hdd 0.09769 osd.2 up 1.00000 1.00000
5 hdd 0.09769 osd.5 up 1.00000 1.00000
-9 0.09769 host osd4
6 hdd 0.09769 osd.6 up 1.00000 1.00000
[root@mgr ~]#
SSDだけで作ったpool、HDDだけで作ったpoolを作るには
[root@mgr ~]# ceph osd crush rule create-replicated highcapacitypool default host hdd
[root@mgr ~]# ceph osd crush rule create-replicated highspeedpool default host ssd
(確認)
[root@mgr ~]# ceph osd crush rule ls
replicated_rule
erasure-code
cephfs_data
highcapacitypool
[root@mgr ~]# ceph osd crush rule dump highcapacitypool
{
"rule_id": 3,
"rule_name": "highcapacitypool",
"ruleset": 3,
"type": 1,
"min_size": 1,
"max_size": 10,
"steps": [
{
"op": "take",
"item": -2,
"item_name": "default~hdd"
},
{
"op": "chooseleaf_firstn",
"num": 0,
"type": "host"
},
{
"op": "emit"
}
]
}
[root@mgr ~]#
とする。
作った「crush-rule-name」を使ってpoolを作成する
(メタデータ向けのpoolでssh由来のみにするなら)
[root@mds ~]# ceph osd pool create cephfs_metadata 64 highspeedpool
「erasure-code」の場合は「erasure-code」のプロファイルで「crush-device-class」(「ceph osd crush class ls」の値)で定義できる
参照先https://access.redhat.com/documentation/ja-jp/red_hat_ceph_storage/4/html/storage_strategies_guide/device_classes
[root@mds ~]# ceph osd erasure-code-profile set {name} \
plugin=jerasure \
k={data-chunks} \
m={coding-chunks} \
technique={reed_sol_van|reed_sol_r6_op|cauchy_orig|cauchy_good|liberation|blaum_roth|liber8tion} \
[crush-root={root}] \
[crush-failure-domain={bucket-type}] \
[crush-device-class={device-class}] \
[directory={directory}] \
[--force]
色んなタイプのpoolが作れます. 前段ではssdから構成されるpool、圧縮機能をもったpoolなどなど.
これらpoolをファイルシステムに組み込ませ、subvolumeで特定のpoolをあてがう事ができる
まずは圧縮機能が働くpoolを作ってみる
[root@mds ~]# ceph osd pool create cephfs_data_compress erasure test
pool 'cephfs_data_compress' created
[root@mds ~]# ceph osd pool set cephfs_data_compress allow_ec_overwrites true <-- 「erasure-code」なpoolなので「allow_ec_overwrites」を有効にする
[root@mds ~]# ceph osd pool application enable cephfs_data_compress cephfs <-- poolの関連付け
[root@mds ~]# ceph osd pool set cephfs_data_compress compression_algorithm snappy
[root@mds ~]# ceph osd pool set cephfs_data_compress compression_mode aggressive
参照先https://documentation.suse.com/ja-jp/ses/5.5/html/ses-all/ceph-pools.html#sec-ceph-pool-compression
っで作ったpool「cephfs_data_compress」を既設のファイルシステム「emfs」に加える
(確認)
[root@mds ~]# ceph fs ls
name: emfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
(poolの追加)
[root@mds ~]# ceph fs add_data_pool emfs cephfs_data_compress
(確認)
[root@mds ~]# ceph fs ls
name: emfs, metadata pool: cephfs_metadata, data pools: [cephfs_data cephfs_data_compress ] <-- data poolとして追加された
[root@mds ~]#
ここから次第にややこしくなるのだが,,,ファイルシステム「emfs」を作った段階で「Ceph File System ボリューム」は決まっている
[root@mds ~]# ceph fs volume ls
[
{
"name": "emfs"
}
]
[root@mds ~]#
ファイルシステム名と同じ.
次に「ファイルシステムサブボリュームグループ」を用意します.
ここで「em」グループを作ってここにはpool「cephfs_data」
もう一つ「Movies」グループを作ってここにはpool「cephfs_data_compress」を割り当ててみる
[root@mds ~]# ceph fs subvolumegroup create emfs em --pool_layout cephfs_data_compress
[root@mds ~]# ceph fs subvolumegroup create emfs movies --pool_layout cephfs_data
するとclientでマウントしている場所にフォルダ「volumes/{em,movies}」フォルダが追加されます
[root@client ~]# ls -l /em/volumes/
total 0
drwxr-xr-x 1 root root 0 Mar 10 20:40 em
drwxr-xr-x 1 root root 0 Mar 10 20:41 movies
[root@client ~]#
「ceph fs subvolumegroup create」と連動してフォルダが作られます.
ぅーん. brtfsやzfsの香り
参照先https://docs.ceph.com/en/latest/cephfs/file-layouts/#adding-a-data-pool-to-the-file-system
ceph fs add_data_pool cephfs cephfs_data_ssd
mkdir /mnt/cephfs/myssddir
setfattr -n ceph.dir.layout.pool -v cephfs_data_ssd /mnt/cephfs/myssddir
[root@client volumes]# getfattr -n ceph.dir.layout.pool em
# file: em
ceph.dir.layout.pool="cephfs_data_compress"
[root@client volumes]#