Persiapan
Saya menggunakan tiga node VM untuk proyek lab rumah ini dengan 8 Core, 8GB Memori, dan 20GB untuk root disk. Pada interface ClusterNet menggunakan Jumbo Frame dengan sistem operasi Rocky Linux 8.10.
| Hostname Node | vCPU | Memori | RootDisk | PublicNet | ClusterNet |
|---|---|---|---|---|---|
| btnlab01ceph01 | 8 Core | 8GB | 20GB | 10.78.78.221 | 10.79.79.221 |
| btnlab01ceph02 | 8 Core | 8GB | 20GB | 10.78.78.222 | 10.79.79.222 |
| btnlab01ceph03 | 8 Core | 8GB | 20GB | 10.78.78.223 | 10.79.79.223 |
Kemudian saya menambahkan 4 hard disk masing-masing berkapasitas 50GB yang digunakan untuk OSD.
Semua operasi menggunakan user
root, harap berhati-hati saat menjalankan perintah!
Opsional: Setel SElinux ke mode permissive untuk lingkungan pengembangan
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
Instalasi paket dan dependensi
dnf install -y epel-release
dnf install -y bash-completion tmux nano htop iftop iotop podman lvm2
Unduh file binary cephadm dan tambahkan repository ceph reef
CEPH_RELEASE=18.2.0
curl --silent --remote-name --location https://download.ceph.com/rpm-${CEPH_RELEASE}/el9/noarch/cephadm
mv cephadm /usr/bin; chmod +x /usr/bin/cephadm
cephadm add-repo --release $CEPH_RELEASE
Bootstrapping Cluster Dengan cephadm
Jalankan di node pertama
Mapping hostname statis di /etc/hosts
cat <<EOF | tee -a /etc/hosts
10.78.78.221 btnlab01ceph01 btnlab01ceph01.homelab.is-a.dev
10.78.78.222 btnlab01ceph02 btnlab01ceph02.homelab.is-a.dev
10.78.78.223 btnlab01ceph03 btnlab01ceph03.homelab.is-a.dev
EOF
cephadm install
cephadm install ceph-common
cephadm bootstrap --mon-ip=10.78.78.221 \
--skip-mon-network --allow-fqdn-hostname | tee cephadm-bootstrap.log
Pesan sukses bootstrap selesai

Salin ssh public key ke semua node
for node in btnlab01con0{2..3}; do
ssh-copy-id -f -i /etc/ceph/ceph.pub root@$node
sleep 2
done
Setelah bootstrap selesai, tambahkan public network ceph dengan perintah berikut.
ceph config set host public_network 10.79.79.0/24
Tambahkan node lain lalu sesuaikan placement pgs
ceph orch host add btnlab01ceph02 10.78.78.222
ceph orch host add btnlab01ceph03 10.78.78.223
ceph orch apply mgr --placement="3 btnlab01ceph01 btnlab01ceph02 btnlab01ceph03"
ceph orch apply mon --placement="btnlab01ceph01,btnlab01ceph02,btnlab01ceph03"
Label semua node
for node in btnlab01ceph0{1..3}; do
ceph orch host label add $node mon
ceph orch host label add $node mgr
ceph orch host label add $node osd
done
Tambahkan osd dari semua disk yang tersedia
ceph orch apply osd --all-available-devices --method raw
ceph orch host ls
ceph orch device ls
Sekarang kita bisa memonitor cluster ceph dengan perintah ceph -s

Membuat pool dan ceph keyring untuk beberapa layanan
- Cinder
- Cinder Backup
for pool_name in cinder cinder-backup; do
ceph osd pool create $pool_name
rbd pool init $pool_name
done

ceph auth get-or-create client.cinder \
mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=cinder, allow rwx pool=nova' \
-o /etc/ceph/ceph.client.cinder.keyring
ceph auth get-or-create client.cinder-backup \
mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=cinder-backup' \
-o /etc/ceph/ceph.client.cinder-backup.keyring

Keyring ini akan digunakan untuk cluster openstack yang akan kita buat pada postingan Openstack 2024.2 dengan Kolla Ansible.
Sekarang kita bisa mengakses dashboard ceph melalui browser https://btnlab01ceph01.homelab.is-a.dev:8443 dengan kredensial yang didapatkan dari proses bootstrap.