Deploy Ceph dengan Cephadm
Dalam dunia IT pasti akan selalu berkaitan dengan storage, kita memerlukan tools untuk mengelola storage tersebut, tentunya yang high availability dan bisa di intergrasikan dengan tools lainnya. Salah satu tools untuk mengelola storage adalah Ceph dan salah satu deployment tools ceph adalah Cephadm.
Apa itu Ceph?
Ceph adalah software opensource yang digunakan untuk mengelola storage dengan high availability dan dapat diskalakan hingga exabyte bahkan lebih tinggi. Ceph juga merupakan distributed storage.
Apa maksudnya high availability? data yang dikelola atau disimpan di ceph akan di replika sesuai dengan jumlah yang kita inginkan (defaultnya 3 replika), jadi ketika terdapat disk yang menyimpan data error maka datanya masih aman, dan ceph akan akan mendistribukan datanya ke berbagai vm atau server dalam cluster ceph.
Apa maksudnya dapat diskalakan atau scalable? dalam cluster ceph kita bisa menambah disk dari banyak server yang kita miliki, jadi storage yang ada di ceph bisa mencapai exabyte jika kita memiliki disk walaupun ada di berbagai vm atau server.
Data yang disimpan didalam ceph direpresentasikan dalam sebuah object, yang digunakan untuk kebutuhan storage data yang tidak terstruktur, jadi ceph tidak terikat pada physical path yang menjadikan fleksibel dan tidak bergantung pada lokasi.
Komponenpembentuk backend Ceph:
RADOS
Ceph Monitors (MONs)
OSDs
Ceph Manager (MGRs)
RGW
Service yang disediakan Ceph:
Block Storage
Object Storage
File Storage
Jadi, itu saja penjelasan singkat mengenai ceph.
Apa itu Cephadm?
Cephadm merupakan salah satu deployment tools ceph yang men-deploy dan mengelola cluster ceph menggunakan container dan systemd, yang bisa kita kelola melalui CLI maupun dashboard GUI.
Cephadm hanya untuk versi ceph Octopus ke atas dan membutuhkan dukungan container (podman/docker) dan Python3.
Untuk deployment tools lain seperti Rook, ceph-ansible, ceph-salt, Juju, Puppet, dll.
Langsung kita mulai saja untuk langkah-langkah deploymentnya. Gasss....
Deployment Ceph
- Setup hostname untuk mempermudah mengenali node
sudo hostnamectl set-hostname alfian-node1
sudo hostnamectl set-hostname alfian-node2
sudo hostnamectl set-hostname alfian-node3
sudo vi /etc/hosts
...
10.7.7.10 alfian-node1
10.7.7.20 alfian-node2
10.7.7.30 alfian-node3
...
- Setup SSH untuk passwordless antar node
ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub student@alfian-node1
ssh-copy-id -i .ssh/id_rsa.pub student@alfian-node2
ssh-copy-id -i .ssh/id_rsa.pub student@alfian-node3
- Cek connectivity passwordless node
ssh student@alfian-node1 "whoami; hostname"
ssh student@alfian-node2 "whoami; hostname"
ssh student@alfian-node3 "whoami; hostname"
- Konfigurasi chronyd
sudo apt update -y
sudo apt-get install chrony -y
sudo timedatectl set-timezone Asia/Jakarta
- Konfigurasi system
sudo vim /etc/sysctl.conf
...
kernel.pid_max = 4194303
fs.aio-max-nr=1048576
sudo sysctl -p
- Setup user ceph-adm
sudo useradd -d /home/ceph-adm -m ceph-adm -s /bin/bash
sudo passwd ceph-adm
New password: adinusa88
echo "ceph-adm ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph-adm
sudo chmod 0440 /etc/sudoers.d/ceph-adm
- Setup SSH user ceph-adm
su - ceph-adm
ssh-keygen
ssh-copy-id -i .ssh/id_rsa.pub ceph-adm@alfian-node1
ssh-copy-id -i .ssh/id_rsa.pub ceph-adm@alfian-node2
ssh-copy-id -i .ssh/id_rsa.pub ceph-adm@alfian-node3
- Install cephadm
sudo apt install cephadm
- Bootstrap cluster ceph
mkdir /etc/ceph
sudo cephadm bootstrap --mon-ip 10.7.7.10 --initial-dashboard-user alfian88 --initial-dashboard-password alfian88 --dashboard-password-noupdate
- Install ceph-common untuk berinteraksi cluster ceph
sudo cephadm install ceph-common
- Copy public key ceph
ssh-copy-id -f -i /etc/ceph/ceph.pub root@alfian-node1
ssh-copy-id -f -i /etc/ceph/ceph.pub root@alfian-node2
ssh-copy-id -f -i /etc/ceph/ceph.pub root@alfian-node3
- Tambah node ke cluster
sudo ceph orch host add alfian-node2
sudo ceph orch host add alfian-node3
- Apply ceph monitor ke semua node
sudo ceph orch apply mon "alfian-node1,alfian-node2,alfian-node3"
- Tambah label pada node/host
sudo ceph orch host label add alfian-node1 mon
sudo ceph orch host label add alfian-node2 mon
sudo ceph orch host label add alfian-node3 mon
- Tambah osd dari disk yang ada di node
sudo ceph orch daemon add osd alfian-node1:/dev/vdb
sudo ceph orch daemon add osd alfian-node2:/dev/vdb
sudo ceph orch daemon add osd alfian-node3:/dev/vdb
- Verifikasi cluster ceph
sudo ceph orch ps
NAME HOST PORTS STATUS REFRESHED AGE MEM USE MEM LIM VERSION IMAGE ID CONTAINER ID
alertmanager.alfian-node1 alfian-node1 *:9093,9094 running (6d) 5m ago 6d 18.2M - 0.25.0 c8568f914cd2 72e05b1a6336
crash.alfian-node2 alfian-node2 running (2h) 2m ago 6d 22.2M - 17.2.7 89d8d0b224fc 4f9ea58977ad
crash.alfian-node3 alfian-node3 running (2h) 43s ago 6d 24.8M - 17.2.7 89d8d0b224fc cfebfd9c6446
crash.alfian-node1 alfian-node1 running (6d) 5m ago 6d 7144k - 17.2.7 89d8d0b224fc 23b6edd960cd
grafana.alfian-node1 alfian-node1 *:3000 running (6d) 5m ago 6d 94.5M - 9.4.7 954c08fa6188 68b4da08d417
mgr.alfian-node2.eupklb alfian-node2 *:8443,9283 running (2h) 2m ago 6d 214M - 17.2.7 89d8d0b224fc 31fcf5450c1d
mgr.alfian-node1.ayovsn alfian-node1 *:9283 running (6d) 5m ago 6d 570M - 17.2.7 89d8d0b224fc d31fcb9a31b9
mon.alfian-node2 alfian-node2 running (2h) 2m ago 6d 111M 2048M 17.2.7 89d8d0b224fc d58752545fee
mon.alfian-node3 alfian-node3 running (2h) 43s ago 6d 110M 2048M 17.2.7 89d8d0b224fc 29ed93997b77
mon.alfian-node1 alfian-node1 running (6d) 5m ago 6d 433M 2048M 17.2.7 89d8d0b224fc 5b2d813ceaa7
node-exporter.alfian-node2 alfian-node2 *:9100 running (2h) 2m ago 6d 19.1M - 1.5.0 0da6a335fe13 5561a4df2a12
node-exporter.alfian-node3 alfian-node3 *:9100 running (2h) 43s ago 6d 18.1M - 1.5.0 0da6a335fe13 f5cc35a6ae1a
node-exporter.alfian-node1 alfian-node1 *:9100 running (6d) 5m ago 6d 11.3M - 1.5.0 0da6a335fe13 9a7c1b4df7db
osd.0 alfian-node1 running (6d) 5m ago 6d 778M 4096M 17.2.7 89d8d0b224fc 94a3e62cf8c1
osd.1 alfian-node2 running (2h) 2m ago 6d 206M 4096M 17.2.7 89d8d0b224fc 2b75ca0abca3
osd.2 alfian-node3 running (2h) 43s ago 6d 205M 4096M 17.2.7 89d8d0b224fc 38e027aff681
prometheus.alfian-node1 alfian-node1 *:9095 running (6d) 5m ago 6d 101M - 2.43.0 a07b618ecd1d fc0862808b14
sudo ceph -s
cluster:
id: da2d6a6c-e767-11ee-8db1-9311691e7f08
health: HEALTH_OK
services:
mon: 3 daemons, quorum alfian-node1,alfian-node2,alfian-node3 (age 2h)
mgr: alfian-node1.ayovsn(active, since 6d), standbys: alfian-node2.eupklb
osd: 3 osds: 3 up (since 6m), 3 in (since 2h)
data:
pools: 5 pools, 129 pgs
objects: 12 objects, 449 KiB
usage: 2.5 GiB used, 28 GiB / 30 GiB avail
pgs: 129 active+clean
sudo ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.02939 root default
-5 0.00980 host alfian-node2
1 hdd 0.00980 osd.1 up 1.00000 1.00000
-7 0.00980 host alfian-node3
2 hdd 0.00980 osd.2 up 1.00000 1.00000
-3 0.00980 host alfian-node1
0 hdd 0.00980 osd.0 up 1.00000 1.00000
Referensi:
Subscribe to my newsletter
Read articles from Muhammad Alfian Tirta Kusuma directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by