How to Install Ceph Storage on Centos 8

Şakir DEMİRER
Turk Telekom Bulut Teknolojileri
5 min readJun 10, 2023

Ceph Storage blok, nesne ve dosya sistemi tipi depolama ortamlarının hepsini bir arada sunan açık kaynak kodlu depolama platformudur. İlk olarak 2003 yılında California Üniversitesinde bir öğrencinin doktora tezi olarak ortaya çıkmış olup ilgili toplulukların destekleriyle geliştirilmiştir ve birçok projenin ilk akla gelen depolama çözümü haline gelmiştir. Özellikle OpenStack sanallaştırma ortamı kullanılan projelerde depolama çözümü olarak Ceph kullanılmaktadır. Ceph’in kurulması için tavsiye edilen yöntem cephadm’dir. Cephadm, Python3 ve podman (veya docker) desteği gerektirir.

Öncelikle sanallaştırma ortamımız olan VirtualBox üzerinde 3 sanal makine oluşturulmalı ve her sunucuya 3’er tane 6 GB’lık disk alanı ayrılmalıdır. Ben kaynakları kısıtlı kullanmak için 2 GB yer ayırdım.

Sunucu kaynak bilgileri aşağıdaki gibidir:

Ceph01 sanal sunucuda yapılan işlemler aşağıdaki gibidir:

- /etc/hosts dosyasına aşağıdaki satırlar eklenmelidir.

[root@ceph01 ~]# nano /etc/hosts

192.168.1.101 ceph01 ceph01.localdomain

192.168.1.102 ceph02 ceph02.localdomain

192.168.1.103 ceph03 ceph03.localdomain

- 3 node’li ceph kümesi için hostnameler girilir.

[root@ceph01 ~]# hostname ceph01

[root@ceph01 ~]# ssh ceph02 hostname ceph02

[root@ceph01 ~]# ssh ceph03 hostname ceph03

- Şifresiz geçişler için keygen kullanılır.

[root@ceph01 ~]# ssh-keygen

[root@ceph01 ~]# ssh-copy-id ceph01

[root@ceph01 ~]# ssh-copy-id ceph02

[root@ceph01 ~]# ssh-copy-id ceph03

- Sunucu güncellemeleri tamamlanır. (Her sunucu için)

[root@ceph01 ~]# dnf update -y; dnf upgrade -y

- Python3, lvm2 ve podman kurulumları tamamlanır. (Her sunucu için)

[root@ceph01 ~]# dnf install -y python3 lvm2 podman

- Curl tabanlı kurulum methoduyla Cephadm kurulum adımları aşağıdaki gibidir.

[root@ceph01 ~]# curl — silent — remote-name — location https://github.com/ceph/ceph/raw/pacific/src/cephadm/cephadm

[root@ceph01 ~]# chmod +x cephadm

[root@ceph01 ~]# ./cephadm add-repo — release pacific

[root@ceph01 ~]# ./cephadm install

[root@ceph01 ~]# dnf install -y ceph-common

- Monitor arka plan programının kurulumu için aşağıdaki komut kullanılır.

[root@ceph01 ~]# cephadm bootstrap — mon-ip 192.168.1.101

Ceph kontrol paneli için “https:192.168.1.101:8443” adresine giriş yapıp parolayı yenilememiz gerekmektedir.

- Ceph versiyonu kontrol edilir.

[root@ceph01 ~]# ceph -v

ceph version 16.2.13 (5378749ba6be3a0868b51803968ee9cde4833a3e) pacific (stable)

- Diğer node’lar ceph ortamına dahil edilir.

[root@ceph01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph02

[root@ceph01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph03

[root@ceph01 ~]# ceph orch host add ceph02 192.168.1.102

Error EINVAL: Host ceph02 (192.168.1.102) failed check(s): [‘No time synchronization is active’]

- Bu hatanın giderilmesi için sunucularda ntp service aktif edilmelidir.

[root@ceph02 ~]# timedatectl set-ntp yes

[root@ceph03 ~]# timedatectl set-ntp yes

- Komut tekrarlanır.

[root@ceph01 ~]# ceph orch host add ceph02 192.168.1.102

Added host ‘ceph02’ with addr ‘192.168.1.102’

[root@ceph01 ~]# ceph orch host add ceph03 192.168.1.103

Added host ‘ceph03’ with addr ‘192.168.1.103’

- Cluster üzerindeki hostlar listelenir.

[root@ceph01 ~]# ceph orch host ls

HOST ADDR LABELS STATUS

ceph01 192.168.1.101 _admin

ceph02 192.168.1.102

ceph03 192.168.1.103

3 hosts in cluster

- Cluster içerisindeki disk envanterin listesi için aşağıdaki komut kullanılır.

[root@ceph01 ~]# ceph orch device ls

Burada Insufficient space yani yetersiz alan uyarısı verdi. Çünkü biz en başta 2 GB olarak vermiştik.

- Ceph üzerinde kullanmak üzere mevcutta ve kullanılmayan cihazların aktif edilmesi için aşağıdaki komut çalıştırılmalıdır.

[root@ceph01 ~]# ceph orch apply osd — all-available-devices

Scheduled osd.all-available-devices update…

[root@ceph01 ~]# ceph -s

Eğer verdiğimiz disk alanları 5 GB ve üzeri olsaydı osd kısmında hepsi görülecekti.

Örnek çıktı :

[root@ceph01 ~]# ceph -s

cluster:

id:

health: HEALTH_OK

services:

mon: 3 daemons, quorum ceph01,ceph02,ceph03 (age 5m)

mgr: ceph01.wgdjcn(active, since 41m), standbys: ceph02.rmltzq

osd: 9 osds: 0 up, 9 in (since 10s)

- Ek olarak kullanılan osd’leri host host listelemek için aşağıdaki komut kullanılır.

[root@ceph01 ~]# ceph osd tree

ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF

-1 0.08817 root default

-5 0.02939 host ceph01

1 ssd 0.00980 osd.1 up 1.00000 1.00000

4 ssd 0.00980 osd.4 up 1.00000 1.00000

7 ssd 0.00980 osd.7 up 1.00000 1.00000

-7 0.02939 host ceph02

0 ssd 0.00980 osd.0 up 1.00000 1.00000

3 ssd 0.00980 osd.3 up 1.00000 1.00000

6 ssd 0.00980 osd.6 up 1.00000 1.00000

-3 0.02939 host ceph03

2 ssd 0.00980 osd.2 up 1.00000 1.00000

5 ssd 0.00980 osd.5 up 1.00000 1.00000

8 ssd 0.00980 osd.8 up 1.00000 1.00000

- Mon ve Mgr programları apply edilir.

[root@ceph01 ~]# ceph orch apply mon — placement=”ceph01,ceph02,ceph03"

Scheduled mon update…

[root@ceph01 ~]# ceph orch apply mgr — placement=”ceph01,ceph02,ceph03"

Scheduled mgr update…

  • Label’lar tüm hostlarda set edilir.

- Container adı, id, status’u, host’u, vs. bilgilieri görüntülemek için aşağıdaki komut çalıştırılmalıdır.

[root@ceph01 ~]# ceph orch ps

Gui üzerinden ise Cluster, Pools, Block, NFS, File Systems ve Object Gateway kısımları incelenebilir.

Faydası olması dileğiyle,

İyi çalışmalar…

Kaynakça :

https://docs.ceph.com/en/latest/cephadm/install/

https://www.server-world.info/

https://achchusnulchikam.medium.com/deploy-ceph-cluster-with-cephadm-on-centos-8-257b300e7b42

--

--