こんな出力
Aug 31 05:03:23 ceph01 sudo[4739]: ceph : PWD=/ ; USER=root ; COMMAND=/usr/sbin/nvme qemu smart-log-add --json /dev/sdb
Aug 31 05:03:23 ceph01 sudo[4739]: pam_systemd(sudo:session): Failed to connect to system bus: No such file or directory
Aug 31 05:03:23 ceph01 sudo[4739]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=167)
Aug 31 05:03:23 ceph01 sudo[4739]: pam_unix(sudo:session): session closed for user rootこれはユーザ「ceph」が cron, systemd, あるいは 非対話シェルから「sudo /usr/sbin/nvme」を実行したが、セッションパス(DBus)やユーザセッション情報がないので
PAMが反応して記録を残している模様. 無視しても構わない. どうしてもなら authselect の段階でそれ向けのプロファイルを作るとかになる
[root@ceph-osd1 ~]# authselect current <-- いま使っているプロファイルを提示. 「No existing configuration detected.」ならsssd.
[root@ceph-osd1 ~]# authselect create-profile custom-pam --base-on sssd <-- 「sssd」プロファイルからコピー(custom-pam)を作成します
[root@ceph-osd1 ~]# authselect select custom/custom-pam --force <-- 作ったcustom-pamプロファイル(custom/custom-pam)を適用します. sssdと同じです
[root@ceph-osd1 ~]# ls -l /etc/authselect/custom/custom-pam/
:
-rw-r--r--. 1 root root 2355 Aug 31 05:42 smartcard-auth
-rw-r--r--. 1 root root 4778 Aug 31 05:42 system-auth
:
[root@ceph-osd1 ~]# vi /etc/authselect/custom/custom-pam/system-auth
:
-session optional pam_systemd.so
↓
#-session optional pam_systemd.so <-- 先頭行に「#」を入れて無効化
:
[root@ceph-osd1 ~]#
[root@ceph-osd1 ~]# authselect apply-changes <-- 変更を適用これでログに記載されなくなります
PG(Placement Group)に対して定期的に行われる scrub / deep-scrub がスケジュール内に完了していないとの意
そもそも scrub とは複数ノードに分散したメタデータの整合性チェック. deep-scrub は実データの整合性チェックを行う. deep-scrubはIO処理が重い.
ceph health detailは残っている scrub 対象のリストがでます。遅いなら早くすればいいので並列を上げます。上げすぎると問題っぽいけど
ceph config set osd osd_max_scrubs 5 <-- 「ceph config get osd osd_max_scrubs」で確認あるPGのscrubが終わって、osd_scrub_max_interval の時間が経過後に次のosd_scrub_begin_hourが来ればスケジュールされるみたい.
当然 rebalancing / recovery / backfill が起こっていれば scrub は遅くなる
「libcrypto.so.3(OPENSSL_3.5.0)(64bit)」の提供は rockylinux10 からみたい。なので、、
作るしかない
dnf install perl-Digest-SHA perl-FindBin perl-IPC-Cmd perl-Module-Load-Conditional perl-Pod-Html perl-Test-Harness perl-Time-HiRes perl-Time-Piece perl-Test-Simple perl-bignum
wget https://mirror.stream.centos.org/9-stream/BaseOS/source/tree/Packages/openssl-3.5.1-2.el9.src.rpm
rpmbuild --rebuild ./openssl-3.5.1-2.el9.src.rpmできた
openssl-libs-3.5.1-2.el9.x86_64.rpm
openssl-fips-provider-3.5.1-2.el9.x86_64.rpm
openssl-3.5.1-2.el9.x86_64.rpm
を一斉にインストールします
「dnf --showduplicates search」で古いバージョンを見つけて、それを指定します
[root@rockylinux9 ~]# dnf install centos-release-ceph-squid epel-release -y
[root@rockylinux9 ~]# dnf --showduplicates search ceph-common
Last metadata expiration check: 0:00:30 ago on Fri 12 Sep 2025 06:24:52 PM JST.
============================== Name Exactly Matched: ceph-common ===============================
ceph-common-2:19.2.0-1.el9s.x86_64 : Ceph Common
ceph-common-2:19.2.0-2.el9s.x86_64 : Ceph Common
ceph-common-2:19.2.1-1.el9s.x86_64 : Ceph Common
ceph-common-2:19.2.2-1.el9s.x86_64 : Ceph Common
ceph-common-2:19.2.3-1.el9s.x86_64 : Ceph Common
================================== Name Matched: ceph-common ===================================
python3-ceph-common-2:19.2.0-1.el9s.x86_64 : Python 3 utility libraries for Ceph
python3-ceph-common-2:19.2.0-2.el9s.x86_64 : Python 3 utility libraries for Ceph
python3-ceph-common-2:19.2.1-1.el9s.x86_64 : Python 3 utility libraries for Ceph
python3-ceph-common-2:19.2.2-1.el9s.x86_64 : Python 3 utility libraries for Ceph
python3-ceph-common-2:19.2.3-1.el9s.x86_64 : Python 3 utility libraries for Ceph
[root@rockylinux9 ~]#と表示される。ここで 19.2.1 の「ceph-common」を入れるなら
[root@rockylinux9 ~]# dnf install ceph-common-2:19.2.1-1.el9s.x86_64とする。
各mgrデーモンのログ制御は「debug_mgr」、monデーモンは「debug_mon」、mdsデーモンは「debug_mds」、osdデーモンは「debug_osd」と、他には「debug_client」「debug_rados」「debug_bluestore」「debug_rocksdb」で行う
フォーマットは「ceph config set mon debug_mon <stderr>/<file>」で行い、<stderr>と<file>はloglevelの指定. 「0: エラーのみ、1: 警告、2: 情報、20: デバッグ」を指定する.
[root@ceph01 ~]# ceph config set global debug_mgr 0/0
[root@ceph01 ~]# ceph config set global debug_mon 0/0
[root@ceph01 ~]# ceph config set global debug_osd 0/0
[root@ceph01 ~]# ceph config set global debug_bluestore 0/0
[root@ceph01 ~]# ceph config set global debug_rocksdb 0/0
[root@ceph01 ~]# ceph config set global debug_client 0/0
[root@ceph01 ~]# ceph config set global debug_rados 0/0確認は「ceph config get mon debug_mon」「ceph config get osd debug_osd」「ceph config get osd debug_bluestore」
「global」を「osd.2」とか特定でも構わない.
出力先は3つ用意されて ceph のファイル、journal、messages の3つ
[root@ceph01 ~]# ceph config set global log_to_file false * trueなら「log_file」で指定したファイルに書かれる
[root@ceph01 ~]# ceph config set global log_to_journald false * systemd 経由で journal に書かれる
[root@ceph01 ~]# ceph config set global log_to_stderr false * journal からrsyslogを経て /var/log/messages に書かれる上記は各ノードで働く各デーモンについて。
ceph全体のclusterログは「mon_cluster_log_to_level 」で定める
[root@ceph01 ~]# ceph config set global mon_cluster_log_level info
[root@ceph01 ~]# ceph config set global mon_cluster_log_to_file false
[root@ceph01 ~]# ceph config set global mon_cluster_log_to_stderr false
[root@ceph01 ~]# ceph config set global mon_cluster_log_to_journald false問題が既に対処済みであるならクリアする
[root@ceph01 ~]# ceph -s
:
health: HEALTH_WARN
1 mgr modules have recently crashed
:
[root@ceph01 ~]# ceph health detail
HEALTH_WARN 1 mgr modules have recently crashed
[WRN] RECENT_MGR_MODULE_CRASH: 1 mgr modules have recently crashed
mgr module cephadm crashed in daemon mgr.ceph01.cammqz on host ceph01 at 2025-05-06T08:48:40.736559Z
[root@ceph01 ~]# ceph crash ls
ID ENTITY NEW
2025-05-06T08:48:40.736559Z_4ad1da23-f2ea-4a4d-9b11-f68bd71109be mgr.ceph01.cammqz *
[root@ceph01 ~]#
[root@ceph01 ~]# ceph crash rm 2025-05-06T08:48:40.736559Z_4ad1da23-f2ea-4a4d-9b11-f68bd71109be
[root@ceph01 ~]# ceph -s
:
health: HEALTH_OK
:
[root@ceph01 ~]#monitorを「"--cpus=4"」としたが本当に機能しているか確かめてみた
ここでは「"--cpus=2"」としてmonitorを作って、そのなかに入って単純なコマンド「yes」を回してみた。それをceph01上でどのように観測されるか確かめた
[root@ceph01 ~]# vi mon.yaml
:
extra_container_args:
- "--cpus=2"
[root@ceph01 ~]# ceph orch apply -i mon.yaml
[root@ceph01 ~]# podman container inspect <CONTAINER ID> | less
:
"CpuPeriod": 100000, -> 「--cpus」の指定がないと「"CpuPeriod":0」「"CpuQuota": 0」と無制限になる.
"CpuQuota": 200000,
:
[root@ceph01 ~]# podman ps
CONTAINER ID IMAGE COMMAND (略
:
a47e3a21247c quay.io/ceph/ceph@sha256:8214ebff6133ac27d20659038df6962dbf9d77da21c9438a296b2e2059a56af6 -n mon.ceph01 (略
[root@ceph01 ~]# podman exec -u root -it a47e3a21247c /bin/bash
[root@ceph01 /]#
[root@ceph01 /]# (timeout 15s yes > /dev/null & ) ; (timeout 15s yes > /dev/null & ) ; (timeout 15s yes > /dev/null & ) ; (timeout 15s yes > /dev/null & )大本のceph01のtopからは 各yesコマンドのプロセスが50%で動き、それが合計200%なので「--cpus=2」は有効なのかなと思える

[root@ceph01 ~]# ceph orch status
Backend: cephadm
Available: Yes
Paused: No
[root@ceph01 ~]#https://docs.ceph.com/en/reef/rados/configuration/bluestore-config-ref/
cephのストレージデバイスの定義方法.
メインのHDD/SSDストーレジ(プライマリ デバイス)に1つまたは2つの追加デバイスを付けられる.
DBデバイスのサイズはプライマリ デバイスの1%-4%ほどで. cephfs,rdb,rgwと使用するワークロードで異なるようで、cephfsでは4%みたい. ただ、各種"説"があるようで、、
DBデバイスとWALデバイスを1つのデバイスに割り当てても構わない.

いわゆるストレージの利用制限.
https://docs.ceph.com/en/latest/cephfs/quota/
xfs/ext4なら uid/gid/project とかでそのファイルし済む全体を容量制限できるけど、cephは無理. 特定のフォルダ配下の容量制限、ファイル数制限ができるだけみたい.
「/emfs/user/ABC」に10TiBの制限を掛けたければ「setfattr -n ceph.quota.max_bytes -v 10Ti /emfs/user/ABC」で適用される。
解除はサイズを0にする。「setfattr -n ceph.quota.max_bytes -v 0 /emfs/user/ABC」
ファイル数はceph.quota.max_bytes の代わりに ceph.quota.max_files を適用します
様々なワーニングが発生するかと思いますが、基本dashboardに対処が表示される
デーモンが起動してなくて起こるワーニング
[root@ceph01 ~]# ceph health detail
HEALTH_WARN 3 failed cephadm daemon(s); insufficient standby MDS daemons available
[WRN] CEPHADM_FAILED_DAEMON: 3 failed cephadm daemon(s)
daemon mgr.ceph01.ocyoth on ceph01 is in error state
daemon ceph-exporter.ceph01 on ceph01 is in error state
daemon mds.emfs.ceph01.etimbe on ceph01 is in error state
[WRN] MDS_INSUFFICIENT_STANDBY: insufficient standby MDS daemons available
have 0; want 1 more
[root@ceph01 ~]# ceph -s
:
health: HEALTH_WARN
3 failed cephadm daemon(s)
insufficient standby MDS daemons available
:
[root@ceph01 ~]#この場合はceph health detailのデーモンを起動せよとdashboardに記載されてるので下記を実施
[root@ceph01 ~]# ceph orch daemon start mgr.ceph01.ocyoth
[root@ceph01 ~]# ceph orch daemon start ceph-exporter.ceph01
[root@ceph01 ~]# ceph orch daemon start mds.emfs.ceph01.etimbeで対処
[root@ceph01 ~]# ceph config dump
WHO MASK LEVEL OPTION VALUE RO
global advanced cluster_network 10.10.10.0/24 *
global basic container_image quay.io/ceph/ceph@sha256:41d3f5e46ff7de28544cc8869fdea13fca824dcef83936cb3288ed9de935e4de *
mon advanced auth_allow_insecure_global_id_reclaim false
mon advanced mon_allow_pool_delete true
mon advanced public_network 192.168.0.0/24 *
mgr advanced mgr/cephadm/container_init True *
mgr advanced mgr/cephadm/migration_current 7 *
mgr advanced mgr/dashboard/ALERTMANAGER_API_HOST http://ceph01.sybyl.local:9093 *
mgr advanced mgr/dashboard/GRAFANA_API_SSL_VERIFY false *
mgr advanced mgr/dashboard/GRAFANA_API_URL https://ceph01.sybyl.local:3000 *
mgr advanced mgr/dashboard/PROMETHEUS_API_HOST http://ceph01.sybyl.local:9095 *
mgr advanced mgr/dashboard/ssl_server_port 8443 *
mgr advanced mgr/orchestrator/orchestrator cephadm
osd host:ceph-osd1 basic osd_memory_target 1237406515
osd host:ceph-osd2 basic osd_memory_target 1182852573
osd host:ceph-osd3 basic osd_memory_target 1182775159
osd advanced osd_memory_target_autotune true
osd.0 basic osd_mclock_max_capacity_iops_ssd 17326.774918
osd.1 basic osd_mclock_max_capacity_iops_ssd 17013.178805
osd.6 basic osd_mclock_max_capacity_iops_ssd 11841.277433
mds.emfs basic mds_join_fs emfs
[root@ceph01 ~]#
[root@ceph01 ~]# ceph config get osd osd_op_num_shards_hdd
1
[root@ceph01 ~]# ceph config get osd osd_op_num_threads_per_shard_hdd
5
[root@ceph01 ~]#https://docs.ceph.com/en/reef/start/hardware-recommendations/#write-caches
dnf install smartmontools hdparm
hdparm -W0 /dev/sda <-- 書き込み (揮発性) キャッシュを無効にして
echo "write through" > /sys/class/scsi_disk/0\:0\:0\:0/cache_type <-- ライトスルー にする「hdparm -W0 /dev/sda」で書き込みキャッシュは無効になるが、「wite back」のままである. なので直接「write through」に変更させる
ノードに入ってcephadmを入れる
[root@ceph-osd1 ~]# dnf install centos-release-ceph-squid.noarch -y
[root@ceph-osd1 ~]# dnf install cephadm python3-jinja2 python3-pyyaml -y
[root@ceph-osd1 ~]# cephadm shell
[ceph: root@ceph-osd1 /]# ceph daemon osd.0 perf dump | jq .'bluefs'
{
"db_total_bytes": 53682888704,
"db_used_bytes": 27656192,
"wal_total_bytes": 0,
"wal_used_bytes": 0,
"slow_total_bytes": 0,
"slow_used_bytes": 0,
:
[ceph: root@ceph-osd1 /]#基本Ceph/windowsでいいのかなと思いますが、sambaで提供することで認証が組める. この辺が楽かなと思えます.
っでここではCeph/cephadmで mgr を担っている ceph01 にsmbを話させてみた.
クライアント接続に既に用意した「client.emfs」を外だしします
[root@ceph01 ~]# ceph auth get client.emfs | tee /etc/ceph/ceph.client.emfs.keyring
[client.emfs]
key = AQDTBbJnouWUBxAAhy6T8A6w8nTxcqDZrAaUhA==
caps mds = "allow rwp fsname=emfs"
caps mon = "allow r fsname=emfs"
caps osd = "allow rw tag cephfs data=emfs"
[root@ceph01 ~]# ls -l /etc/ceph/
total 20
-rw-------. 1 root root 151 Feb 17 01:50 ceph.client.admin.keyring
-rw-r--r--. 1 root root 176 Feb 19 00:56 ceph.client.emfs.keyring
-rw-r--r--. 1 root root 271 Feb 17 01:50 ceph.conf
-rw-r--r--. 1 root root 595 Feb 15 04:54 ceph.pub
-rw-r--r--. 1 root root 92 Feb 7 23:15 rbdmap
[root@ceph01 ~]#その上で
[root@ceph01 ~]# mount -t ceph emfs@.emfs=/ /emfs
[root@ceph01 ~]# df -Tht ceph
Filesystem Type Size Used Avail Use% Mounted on
emfs@4ce725c6-eb0d-11ef-980a-bc24112ffd94.emfs=/ ceph 254G 0 254G 0% /emfs
[root@ceph01 ~]#あとはsmbを入れて
[root@ceph01 ~]# dnf install samba
[root@ceph01 ~]# vi /etc/samba/smb.conf
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
[emfs]
path = /emfs
browseable = yes
read only = No
inherit acls = Yes
[root@ceph01 ~]# systemctl enable smb --now
[root@ceph01 ~]# firewall-cmd --add-service=samba --zone=public --permanent
[root@ceph01 ~]# firewall-cmd --reload
(selinuxが有効なら)
[root@ceph01 ~]# dnf install policycoreutils-python-utils
[root@ceph01 ~]# semanage fcontext -a -t samba_share_t "/emfs"
[root@ceph01 ~]# restorecon -R -v /emfs
(aclを付与して使えるようにします)
[root@ceph01 ~]# setfacl -m user:saber:rwx /emfs
[root@ceph01 ~]# setfacl -dm user:saber:rwx /emfssmartの値とかで微妙なHDDが存在したとする. これを抜き取ってより健全なHDDに置き換える. そんなお話.
まず微妙はHDDをoutにします
[root@ceph01 ~]# ceph osd out osd.3
marked out osd.3.
[root@ceph01 ~]#
(暫くして)
[root@ceph01 ~]# ceph osd safe-to-destroy osd.3
OSD(s) 3 are safe to destroy without reducing data durability.
[root@ceph01 ~]# ceph osd tree
:
2 hdd 0.04880 osd.2 up 1.00000 1.00000
3 hdd 0.04880 osd.3 up 0 1.00000 <- REWEIGHT 値が0になる
:
[root@ceph01 ~]#とosd.3を外しても問題ないと確認してから、osd.3を外してdaemonを停止させます(コンテナですが)
[root@ceph01 ~]# ceph osd out osd.3
osd.3 is already out.
[root@ceph01 ~]# ceph orch daemon stop osd.3
Scheduled to stop osd.3 on host 'ceph-osd2'
(osd.3を持つceph-osd2では)
[root@ceph-osd2 ~]# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
:
8021d6fd6825 quay.io/ceph/ceph@sha256:41d3f5e46ff7de28544cc8869fdea13fca824dcef83936cb3288ed9de935e4de -n osd.2 -f --set... 15 hours ago Up 15 hours ceph-4ce725c6-eb0d-11ef-980a-bc24112ffd94-osd-2
20fd50080cdc quay.io/ceph/ceph@sha256:41d3f5e46ff7de28544cc8869fdea13fca824dcef83936cb3288ed9de935e4de -n osd.3 -f --set... 15 hours ago Up 15 hours ceph-4ce725c6-eb0d-11ef-980a-bc24112ffd94-osd-3 <--このコンテナが消えます
28137df48c7e quay.io/ceph/ceph@sha256:41d3f5e46ff7de28544cc8869fdea13fca824dcef83936cb3288ed9de935e4de -n osd.7 -f --set... 15 hours ago Up 15 hours ceph-4ce725c6-eb0d-11ef-980a-bc24112ffd94-osd-7
↓
8021d6fd6825 quay.io/ceph/ceph@sha256:41d3f5e46ff7de28544cc8869fdea13fca824dcef83936cb3288ed9de935e4de -n osd.2 -f --set... 15 hours ago Up 15 hours ceph-4ce725c6-eb0d-11ef-980a-bc24112ffd94-osd-2
28137df48c7e quay.io/ceph/ceph@sha256:41d3f5e46ff7de28544cc8869fdea13fca824dcef83936cb3288ed9de935e4de -n osd.7 -f --set... 15 hours ago Up 15 hours ceph-4ce725c6-eb0d-11ef-980a-bc24112ffd94-osd-7
[root@ceph-osd2 ~]#そうしてceph-osd2で抜き取ったHDDと同じ場所に新しいHDDを植える場合は「--replace」を用いる
[root@ceph01 ~]# ceph orch osd rm osd.3 --replace
[root@ceph01 ~]# ceph orch osd rm status
No OSD remove/replace operations reported
[root@ceph01 ~]# ceph device ls-lights <-- HDDスロットのランプが使えるか、確認
[root@ceph01 ~]# ceph device ls <-- HDDのデバイス一覧物理的にHDDを交換して
[root@ceph01 ~]# ceph orch daemon add osd ceph-osd2:/dev/sdb検証環境は Proxmox です. OSDのホスト ceph-osd3 のHDD(data) を1つ外して再起動させた.
当然ながら
[root@ceph01 ~]# ceph -s
cluster:
id: 4ce725c6-eb0d-11ef-980a-bc24112ffd94
health: HEALTH_WARN
1 failed cephadm daemon(s)
services:
mon: 3 daemons, quorum ceph01,ceph02,ceph-osd1 (age 2h)
mgr: ceph01.ocyoth(active, since 2h), standbys: ceph02.uuiyno
mds: 1/1 daemons up, 1 standby
osd: 8 osds: 7 up (since 35m), 7 in (since 26m)
data:
volumes: 1/1 healthy
pools: 3 pools, 66 pgs
objects: 24 objects, 587 KiB
usage: 604 MiB used, 349 GiB / 350 GiB avail
pgs: 66 active+clean
[root@ceph01 ~]#と警告になる.
どこか問題なのかは
[root@ceph01 ~]# ceph osd tree down
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.39038 root default
-7 0.14639 host ceph-osd3
1 hdd 0.04880 osd.1 down 0 1.00000
[root@ceph01 ~]# ceph orch ps --service_name osd --sort_by status
NAME HOST PORTS STATUS REFRESHED AGE MEM USE MEM LIM VERSION IMAGE ID CONTAINER ID
osd.1 ceph-osd3 error 5m ago 41h - 1128M <unknown> <unknown> <unknown>
osd.4 ceph-osd1 running (2h) 5m ago 43h 62.1M 1180M 19.2.1 f2efb0401a30 24a40935de09
osd.6 ceph-osd1 running (2h) 5m ago 40h 53.5M 1180M 19.2.1 f2efb0401a30 d4c35e3b2434
:
[root@ceph01 ~]#で見れて、ceph-osd3の osd.1 が問題と.
このHDDを交換してみる.
まずは交換対象の osd.1 のデータが他に回るように手配します
[root@ceph01 ~]# ceph osd out 1
osd.1 is already out.
[root@ceph01 ~]#と既に他に回っているようなので停止させ、HDD交換手続きを行う.
[root@ceph01 ~]# ceph orch daemon stop osd.1
Scheduled to stop osd.1 on host 'ceph-osd3'
[root@ceph01 ~]# ceph orch osd rm 1 --replace
Scheduled OSD(s) for removal.
VG/LV for the OSDs won't be zapped (--zap wasn't passed).
Run the `ceph-volume lvm zap` command with `--destroy` against the VG/LV if you want them to be destroyed.
[root@ceph01 ~]#* 注意: block.dbやwalを使ってosdを構成していて osd を外すと block.db と wal 領域も消えます.
なので交換したHDDを組み込むには block.db 、wal 領域を再作成して構築する必要があります.
実体としてHDDを交換して
[root@ceph-osd3 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
(略
mqceph--465e1cab--73d2--4083--95ff--b33bed556c53-osd--block--72c87975--6920--4a7f--8a6b--4b594a4bb62c 253:0 0 50G 0 lvm
sdc 8:32 0 50G 0 disk
mqceph--19239b39--3cd8--4024--91f5--f42239c0e257-osd--block--1951d075--b65d--4c2e--a4a2--fe393621a0f3 253:1 0 50G 0 lvm
sdd 8:48 0 50G 0 disk <-- 交換したHDD
[root@ceph-osd3 ~]#
(block.dbとwalを作り直す)
lvcreate -n sdc-db -l 100%FREE ceph-66205364-530c-4132-a1b7-f8b9f00194d1
lvcreate -n sdc-wal -l 100%FREE ceph
その上で
ceph orch daemon add osd ceph-osd3:/dev/sdc,db_devices=/dev/mapper/ceph--66205364--530c--4132--a1b7--f8b9f00194d1-sdc--db,wal_devices=/dev/ceph/sdc-walここでは追加した /dev/sdd をcephに加える
[root@ceph01 ~]# ceph orch daemon add osd ceph-osd3:/dev/sdd
[root@ceph01 ~]# ceph osd tree
:
-7 0.14639 host ceph-osd3
0 hdd 0.04880 osd.0 up 1.00000 1.00000
1 hdd 0.04880 osd.1 destroyed 0 1.00000
5 ssd 0.04880 osd.5 up 1.00000 1.00000
[root@ceph01 ~]#
(暫くすると)
[root@ceph01 ~]# ceph osd tree
:
-7 0.14639 host ceph-osd3
0 hdd 0.04880 osd.0 up 1.00000 1.00000
1 hdd 0.04880 osd.1 up 1.00000 1.00000
5 ssd 0.04880 osd.5 up 1.00000 1.00000
[root@ceph01 ~]#と回復する.
Squid(19.x)のrockylinux8向けパッケージが用意されていない. なので作ってみた.
[root@rockylinux8 ~]# cat /etc/redhat-release
Rocky Linux release 8.10 (Green Obsidian)
[root@rockylinux8 ~]# dnf install epel-release -y
[root@rockylinux8 ~]# dnf --enablerepo=devel install CUnit-devel cmake cryptsetup-devel expat-devel fmt-devel fuse-devel gperf gperftools-devel json-devel \
libaio-devel libatomic libbabeltrace-devel libblkid-devel libcap-devel libcap-ng-devel libcurl-devel libevent-devel libibverbs-devel \
libicu-devel libnl3-devel liboath-devel librabbitmq-devel librdkafka-devel librdmacm-devel libxml2-devel lmdb-devel lttng-ust-devel \
lua-devel lz4-devel nasm ncurses-devel ninja-build nss-devel openldap-devel perl python3-Cython python3-devel python3-prettytable \
python3-sphinx re2-devel selinux-policy-devel snappy-devel sqlite-devel thrift-devel xfsprogs-devel xmlstarlet yaml-cpp-devel \
gcc-toolset-11 gcc-toolset-11-build gcc-toolset-11-gcc-c++ gcc-toolset-11-libatomic-devel systemd-devel -y
[root@rockylinux8 ~]# dnf install -y python3-jenkins
[root@rockylinux8 ~]# wget https://download.ceph.com/rpm-squid/el9/SRPMS/ceph-19.2.1-0.el9.src.rpm
[root@rockylinux8 ~]# rpmbuild --rebuild ceph-19.2.1-0.el9.src.rpm
:
(紅茶とケーキの時間)
:
[root@rockylinux8 ~]#構築が終わったらceph-commonを入れます. 関連パッケージが沢山つきますが、ceph-commonが入ればいいです.
下記の実行で「/usr/bin/ceph」「/usr/sbin/mount.ceph」がインストールされます
[root@rockylinux8 ~]# cd rpmbuild/RPMS/x86_64
[root@rockylinux8 x86_64]# dnf localinstall \
ceph-common-19.2.1-0.el8.x86_64.rpm \
python3-ceph-argparse-19.2.1-0.el8.x86_64.rpm \
python3-ceph-common-19.2.1-0.el8.x86_64.rpm \
python3-cephfs-19.2.1-0.el8.x86_64.rpm \
python3-rados-19.2.1-0.el8.x86_64.rpm \
python3-rbd-19.2.1-0.el8.x86_64.rpm \
python3-rgw-19.2.1-0.el8.x86_64.rpm \
libcephfs2-19.2.1-0.el8.x86_64.rpm \
librados2-19.2.1-0.el8.x86_64.rpm \
libradosstriper1-19.2.1-0.el8.x86_64.rpm \
librbd1-19.2.1-0.el8.x86_64.rpm \
librgw2-19.2.1-0.el8.x86_64.rpm
[root@rockylinux8 x86_64]#現状確認、「ceph fs ls」でファイルシステム名称と使用しているpool(データとメタ)が判明する
[root@ceph01 ~]# ceph fs ls
name: emfs, metadata pool: emfs-meta, data pools: [emfs-data ]
[root@ceph01 ~]# ceph fs status
emfs - 0 clients
====
RANK STATE MDS ACTIVITY DNS INOS DIRS CAPS
0 active cephfs.ceph-osd2.tjxksw Reqs: 0 /s 10 13 12 0
POOL TYPE USED AVAIL
emfs-meta metadata 96.0k 47.4G
emfs-data data 0 252G
STANDBY MDS
cephfs.ceph01.ejtdsq
MDS version: ceph version 19.2.1 (58a7fab8be0a062d730ad7da874972fd3fba59fb) squid (stable)
[root@ceph01 ~]#STATEが「active」となっている。停止にはまず
[root@ceph01 ~]# ceph fs set emfs down true
emfs marked down.
[root@ceph01 ~]# ceph fs status
emfs - 0 clients
====
POOL TYPE USED AVAIL
emfs-meta metadata 96.0k 47.4G
emfs-data data 0 252G
STANDBY MDS
cephfs.ceph01.ejtdsq
cephfs.ceph-osd2.tjxksw
MDS version: ceph version 19.2.1 (58a7fab8be0a062d730ad7da874972fd3fba59fb) squid (stable)
[root@ceph01 ~]# ceph fs rm emfs --yes-i-really-mean-itと停止させる. っがまだmdsが残っているのでこれも削除/停止させます
[root@ceph01 ~]# ceph orch ps --daemon_type=mds
NAME HOST PORTS STATUS REFRESHED AGE MEM USE MEM LIM VERSION IMAGE ID CONTAINER ID
mds.emfs.ceph01.magcmf ceph01 running (9m) 4m ago 9m 14.8M - 19.2.1 f2efb0401a30 53d4887fd871
mds.emfs.ceph02.nuleix ceph02 running (9m) 9m ago 9m 15.3M - 19.2.1 f2efb0401a30 0808d4835824
[root@ceph01 ~]# ceph orch rm mds.emfs
[root@ceph01 ~]# ceph orch ps --daemon_type=mds
No daemons reported
[root@ceph01 ~]#これで削除は完了です.
未完成
https://heiterbiswolkig.blogs.nde.ag/2020/12/18/cephadm-changing-a-monitors-ip-address/
具体的には
| ホスト名 | 役目 | IPアドレス | backend | OS | ストレージ | CPU threads |
| ceph01 | Ceph Manager Ceph Metadata Server Ceph Monitor | 192.168.0.47/24 -> 172.16.0.1 | 10.10.10.47/24 | Rockylinux9.4 | system(16GB) /var/lib/ceph(8GB,monitor) | 8 threads(monitor:4+metadata:2+manager:1+ ほか) |
| ceph02 | Ceph Manager Ceph Metadata Server Ceph Monitor | 192.168.0.48/24 -> 172.16.0.2 | 10.10.10.48/24 | system(16GB) /var/lib/ceph(8GB,monitor) | 8 threads(monitor:4+metadata:2+manager:1+ ほか) | |
| ceph-osd1 | Ceph OSDs Ceph Monitor | 192.168.0.49/24 -> 172.16.0.3 | 10.10.10.49/24 | system(24GB: os[16GB]+wal[8GB]) /var/lib/ceph(8GB,monitor) block.db(16GB) OSD(50GB) | 6 threads(moitor:4t+osd:2) | |
| ceph-osd2 | Ceph OSDs | 192.168.0.50/24 -> 172.16.0.4 | 10.10.10.50/24 | system(16GB) block.db(32GB) OSD(50GB)+OSD(50GB) | 4 threads(OSD:2+OSD:2) | |
| ceph-osd3 | Ceph OSDs | 192.168.0.51/24 -> 172.16.0.5 | 10.10.10.51/24 | system(16GB) OSD(50GB)+OSD(50GB) | 4 threads(OSD:2+OSD:2) |
ってな感じに.
[root@ceph01 ~]# ceph osd set noout
[root@ceph01 ~]# ceph osd set norecover
[root@ceph01 ~]# ceph osd set norebalance
[root@ceph01 ~]# ceph osd set nobackfill
[root@ceph01 ~]# ceph osd set nodown
[root@ceph01 ~]# ceph osd set pause[root@ceph-osd3 ~]# systemctl stop ceph.target
[root@ceph-osd3 ~]# systemctl disable ceph.target
[root@ceph-osd2 ~]# systemctl stop ceph.target
[root@ceph-osd2 ~]# systemctl disable ceph.target
[root@ceph-osd1 ~]# systemctl stop ceph.target
[root@ceph-osd1 ~]# systemctl disable ceph.target
[root@ceph02 ~]# systemctl stop ceph.target
[root@ceph02 ~]# systemctl disable ceph.target
[root@ceph01 ~]# systemctl stop ceph.target
[root@ceph01 ~]# systemctl disable ceph.targetこの後、各ノードをshutdownして移設して新規ネットワーク(172.16.0.0/24)に繋げて dns/ntpを調整します.
っでup.
https://docs.ceph.com/en/reef/cephadm/services/#extra-container-arguments
キーワード:cephadm osd "extra_container_args" cpus
[root@ceph01 ~]# ceph orch host ls
HOST ADDR LABELS STATUS
ceph01 192.168.0.47 _admin
ceph02 192.168.0.48
ceph-osd1 192.168.0.49
ceph-osd2 192.168.0.50
ceph-osd3 192.168.0.51
5 hosts in cluster
[root@ceph01 ~]# ceph osd lspools
1 .mgr
[root@ceph01 ~]# ceph config set mon mon_allow_pool_delete true
[root@ceph01 ~]# ceph osd pool delete .mgr .mgr --yes-i-really-really-mean-it
[root@ceph01 ~]# ceph osd tree
[root@ceph01 ~]# ceph orch osd rm 4 --zap --force
[root@ceph01 ~]# ceph orch osd rm status (OSD 状態の監視)
[root@ceph01 ~]# ceph orch ps (cephで動いているcontainerの全部)
[root@ceph01 ~]# ceph orch host drain ceph-osd3 (cephから ceph-osd3 の container を削除)
[root@ceph01 ~]# ceph orch ps ceph-osd3 (containerがあるか確認)
[root@ceph01 ~]# ceph orch host rm ceph-osd3 (ceph-osd3 の削除)
[root@ceph01 ~]# ceph orch host drain ceph-osd2
[root@ceph01 ~]# ceph orch ps ceph-osd2
[root@ceph01 ~]# ceph orch host rm ceph-osd2
[root@ceph01 ~]# ceph orch apply mon --placement="ceph01" --dry-run
[root@ceph01 ~]# ceph orch apply mon --placement="ceph01" (monをceph01のみに変更)
[root@ceph01 ~]# ceph orch host drain ceph-osd1
[root@ceph01 ~]# ceph orch ps ceph-osd1
[root@ceph01 ~]# ceph orch host rm ceph-osd1
[root@ceph01 ~]# ceph orch apply mgr --placement="ceph01"
[root@ceph01 ~]# ceph orch host drain ceph02
[root@ceph01 ~]# ceph orch daemon rm mon.ceph02 --force
[root@ceph01 ~]# ceph orch host rm ceph02「cephadm bootstrap」の後に取り消して無効にするには
[root@ceph01 ~]# systemctl list-unit-files |grep ceph
var-lib-ceph.mount generated -
ceph-9ab38ad2-e6a9-11ef-9ba5-bc24112ffd94@.service indirect disabled
ceph-9ab38ad2-e6a9-11ef-9ba5-bc24112ffd94.target enabled disabled
ceph.target enabled disabled
[root@ceph01 ~]# systemctl disable ceph-9ab38ad2-e6a9-11ef-9ba5-bc24112ffd94@.service ceph-9ab38ad2-e6a9-11ef-9ba5-bc24112ffd94.target ceph.target
[root@ceph01 ~]# reboot
[root@ceph01 ~]# ls -l /etc/systemd/system/ceph*
-rw-r--r--. 1 root root 1181 Feb 9 14:51 /etc/systemd/system/ceph-9ab38ad2-e6a9-11ef-9ba5-bc24112ffd94@.service
-rw-r--r--. 1 root root 157 Feb 9 14:51 /etc/systemd/system/ceph-9ab38ad2-e6a9-11ef-9ba5-bc24112ffd94.target
-rw-r--r--. 1 root root 88 Feb 9 15:18 /etc/systemd/system/ceph.target
[root@ceph01 ~]# rm -rf /etc/systemd/system/ceph*
[root@ceph01 ~]# rm -rf /var/lib/ceph/* /etc/ceph/*これで「cephadm bootstrap」がチャラになります.
https://docs.ceph.com/en/reef/cephadm/services/#extra-container-arguments
キーワード:cephadm osd "extra_container_args" cpus
[root@ceph01 ~]# ceph orch host ls
HOST ADDR LABELS STATUS
ceph01 192.168.0.47 _admin
ceph02 192.168.0.48
ceph-osd1 192.168.0.49
ceph-osd2 192.168.0.50
ceph-osd3 192.168.0.51
5 hosts in cluster
[root@ceph01 ~]# ceph osd lspools
1 .mgr
[root@ceph01 ~]# ceph config set mon mon_allow_pool_delete true
[root@ceph01 ~]# ceph osd pool delete .mgr .mgr --yes-i-really-really-mean-it
[root@ceph01 ~]# ceph osd tree
[root@ceph01 ~]# ceph orch osd rm 4 --zap --force
[root@ceph01 ~]# ceph orch osd rm status (OSD 状態の監視)
[root@ceph01 ~]# ceph orch ps (cephで動いているcontainerの全部)
[root@ceph01 ~]# ceph orch host drain ceph-osd3 (cephから ceph-osd3 の container を削除)
[root@ceph01 ~]# ceph orch ps ceph-osd3 (containerがあるか確認)
[root@ceph01 ~]# ceph orch host rm ceph-osd3 (ceph-osd3 の削除)
[root@ceph01 ~]# ceph orch host drain ceph-osd2
[root@ceph01 ~]# ceph orch ps ceph-osd2
[root@ceph01 ~]# ceph orch host rm ceph-osd2
[root@ceph01 ~]# ceph orch apply mon --placement="ceph01" --dry-run
[root@ceph01 ~]# ceph orch apply mon --placement="ceph01" (monをceph01のみに変更)
[root@ceph01 ~]# ceph orch host drain ceph-osd1
[root@ceph01 ~]# ceph orch ps ceph-osd1
[root@ceph01 ~]# ceph orch host rm ceph-osd1
[root@ceph01 ~]# ceph orch apply mgr --placement="ceph01"
[root@ceph01 ~]# ceph orch host drain ceph02
[root@ceph01 ~]# ceph orch daemon rm mon.ceph02 --force
[root@ceph01 ~]# ceph orch host rm ceph02「cephadm bootstrap」の後に取り消して無効にするには
[root@ceph01 ~]# systemctl list-unit-files |grep ceph
var-lib-ceph.mount generated -
ceph-9ab38ad2-e6a9-11ef-9ba5-bc24112ffd94@.service indirect disabled
ceph-9ab38ad2-e6a9-11ef-9ba5-bc24112ffd94.target enabled disabled
ceph.target enabled disabled
[root@ceph01 ~]# systemctl disable ceph-9ab38ad2-e6a9-11ef-9ba5-bc24112ffd94@.service ceph-9ab38ad2-e6a9-11ef-9ba5-bc24112ffd94.target ceph.target
[root@ceph01 ~]# reboot
[root@ceph01 ~]# ls -l /etc/systemd/system/ceph*
-rw-r--r--. 1 root root 1181 Feb 9 14:51 /etc/systemd/system/ceph-9ab38ad2-e6a9-11ef-9ba5-bc24112ffd94@.service
-rw-r--r--. 1 root root 157 Feb 9 14:51 /etc/systemd/system/ceph-9ab38ad2-e6a9-11ef-9ba5-bc24112ffd94.target
-rw-r--r--. 1 root root 88 Feb 9 15:18 /etc/systemd/system/ceph.target
[root@ceph01 ~]# rm -rf /etc/systemd/system/ceph*
[root@ceph01 ~]# rm -rf /var/lib/ceph/* /etc/ceph/*これで「cephadm bootstrap」がチャラになります.
https://yourcmc.ru/wiki/Ceph_performance
SSDなフラッシュストレージを作るなら、コンシューマー向けのSSDではなくデータセンター向けのSSDを使うべきみたい.
HDDがdataで、blockdb/walがコンシューマーなSSDでもいいとは書いていないけど、トランザクション云々からSSDをdataにした場合かなと思っている