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

  1. 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
...
  1. 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
  1. Cek connectivity passwordless node
ssh student@alfian-node1 "whoami; hostname"
ssh student@alfian-node2 "whoami; hostname"
ssh student@alfian-node3 "whoami; hostname"
  1. Konfigurasi chronyd
sudo apt update -y
sudo apt-get install chrony -y
sudo timedatectl set-timezone Asia/Jakarta
  1. Konfigurasi system
sudo vim  /etc/sysctl.conf
...
kernel.pid_max = 4194303
fs.aio-max-nr=1048576
sudo sysctl -p
  1. 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
  1. 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
  1. Install cephadm
sudo apt install cephadm
  1. 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
  1. Install ceph-common untuk berinteraksi cluster ceph
sudo cephadm install ceph-common
  1. 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
  1. Tambah node ke cluster
sudo ceph orch host add alfian-node2
sudo ceph orch host add alfian-node3
  1. Apply ceph monitor ke semua node
sudo ceph orch apply mon "alfian-node1,alfian-node2,alfian-node3"
  1. 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
  1. 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
  1. 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:

0
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

Muhammad Alfian Tirta Kusuma
Muhammad Alfian Tirta Kusuma