Centos 7.2 Ceph Kurulum

Ceph’in network mimarisi tamamlandıktan sonra sunucularda yaptığım işlemleri anlatacağım. Bizim mimaride 3 adet Monitör node, 4 adet OSD node ve 1 adet de mds olmak üzere toplamda 8 adet node var. Ceph’i MDS olarak kullanacağımız makineden cephdeploy ile kurduk. Sunucu isimlerini şu şekilde verdik;

cephdeploy
csmon1
csmon2
csmon3
csnode1
csnode2
csnode3
cdnode4

Öncelikle tüm node’ların güncellemeleri yapıldı. Selinux disabled edildi. /etc/hosts dosyaları düzenlendi. Iptables’ın kapalı olduğu kontrol edildi. Her node’da ceph kullanıcısı açıldı ve password’e ihtiyaç olmadan root olacak şekilde ayarlandı. cephdeploy sunucusunda ssh-keygen üretilip diğer sunuculara gönderildi. Bu sayede cephdeploy sunucusu diğer tüm sunuculara şifresiz olarak erişebilecek duruma geldi.

Tüm node’larda gerekli rpm key’leri yüklüyoruz.

sudo rpm --import 'https://download.ceph.com/keys/release.asc'
sudo rpm --import 'https://download.ceph.com/keys/autobuild.asc'

Tüm node’lara ntp kuruyoruz. Konfigürasyonunu yaptıktan sonra servisini başlatıyoruz.

sudo yum install ntp ntpdate ntp-doc
sudo systemctl start ntpd

Bütün node’larda /etc/sudoers dosyasındaki Defaults requiretty satırını kapatıyoruz. Yine tüm node’larda /etc/yum.repos.d/ceph.repo dosyasını aşağıdaki şekilde oluşturuyoruz.

[ceph]
name=Ceph packages for $basearch
baseurl=http://download.ceph.com/rpm-infernalis/el7/$basearch
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

[ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-infernalis/el7/noarch
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

[ceph-source]
name=Ceph source packages
baseurl=http://download.ceph.com/rpm-infernalis/el7/SRPMS
enabled=0
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

Ceph deploy olarak kullanacağım node’da ceph kullanıcı ile girdikten sonra mkdir dosyaismi diyerek bir klasör oluşturuyorum ve cd ile bu klasör içerisine giriyorum. Bundan sonra yapacağım bütün işlemleri bu klasör içerisindeyken yapacağım. yum install ceph-deploy diyerek, ceph-deploy aracını kuruyoruz.

Daha sonra başlangıç için bir monitör seçiyoruz. Biz bunun için csmon2 node’unu seçtik. ceph-deploy new csmon2 komutunu çalıştırıyoruz. Başlangıç monitörü oluşturulduktan sonra içinde bulunduğumuz klasörde ceph.conf dosyası oluşmuş olacaktır. Bu dosyayı aşağıdaki gibi düzenliyoruz.

[global]
fsid = 148f06d8-bb31-4344-b6cf-ccaefc8f6184
mon_initial_members = csmon2
mon_host = 192.168.1.7
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
filestore_xattr_use_omap = true
public_network = 192.168.1.0/24
cluster_network = 192.168.2.0/24
osd_journal_size = 23000
osd_pool_default_size = 3
osd_pool_default_min_size = 2

Biz osd_journal_size‘i 23000 olarak (yaklaşık 23 GB) verdik. Kendi istediğiniz miktarı belirtebilirsiniz. osd_pool_default_size replika sayısını belirtiyor. Biz bir dosyanın üç kopyasının tutulmasını istediğimizden dolayı 3 olarak belirttik. Konfigürasyonu kaydedip kapatıyoruz. Daha sonra aşağıdaki komut satırıyla tüm node’lara ceph-deploy ile ceph’i kuruyoruz. ceph-deploy new csmon2 komutu hata verip tamamlanamadı ise önce aşağıdaki komut satırı ile ceph’i kurup sonrasında tekrar deneyebilirsiniz.

ceph-deploy install cephdeploy csnode1 csnode2 csnode3 csnode4 csmon1 csmon2 csmon3

Ceph kurulduktan sonra ceph-deploy mon create-initial komutu ile tüm sunuculara monitör nodu deploy ediyoruz.

Bu aşamada osd-node’ları tanımlayacağız. Sırasıyla aşağıdaki işlemleri yapıyoruz.

ceph-deploy disk zap <ceph-node>:<data-drive>
ceph-deploy disk zap csnode1:/dev/sdc csnode1:/dev/sdd csnode1:/dev/sde ...
ceph-deploy disk zap csnode2:/dev/sdc csnode2:/dev/sdd csnode2:/dev/sde ...
ceph-deploy disk zap csnode3:/dev/sdc csnode3:/dev/sdd csnode3:/dev/sde ...
ceph-deploy disk zap csnode4:/dev/sdc csnode4:/dev/sdd csnode4:/dev/sde ...

ceph-deploy osd prepare <ceph-node>:<data-drive>:<journal-partition> [<ceph-node>:<data-drive>:<journal-partition>]
ceph-deploy osd prepare csnode1:/dev/sdc1:/dev/sda5 csnode1:/dev/sdd1:/dev/sda6 csnode1:/dev/sde1:/dev/sda7 ...
ceph-deploy osd prepare csnode2:/dev/sdc1:/dev/sda5 csnode2:/dev/sdd1:/dev/sda6 csnode2:/dev/sde1:/dev/sda7 ...
ceph-deploy osd prepare csnode3:/dev/sdc1:/dev/sda5 csnode3:/dev/sdd1:/dev/sda6 csnode3:/dev/sde1:/dev/sda7 ...
ceph-deploy osd prepare csnode4:/dev/sdc1:/dev/sda5 csnode4:/dev/sdd1:/dev/sda6 csnode4:/dev/sde1:/dev/sda7 ...
ceph-deploy osd activate <ceph-node>:<data-drive>:<journal-partition> [<ceph-node>:<data-drive>:<journal-partition>]
ceph-deploy osd activate csnode1:/dev/sdc1:/dev/sda5 csnode1:/dev/sdd1:/dev/sda6 csnode1:/dev/sde1:/dev/sda7 ...
ceph-deploy osd activate csnode2:/dev/sdc1:/dev/sda5 csnode2:/dev/sdd1:/dev/sda6 csnode2:/dev/sde1:/dev/sda7 ...
ceph-deploy osd activate csnode3:/dev/sdc1:/dev/sda5 csnode3:/dev/sdd1:/dev/sda6 csnode3:/dev/sde1:/dev/sda7 ...
ceph-deploy osd activate csnode4:/dev/sdc1:/dev/sda5 csnode4:/dev/sdd1:/dev/sda6 csnode4:/dev/sde1:/dev/sda7 ...

Hata vermeden osd’ler oluşmuş ise ceph osd tree komutu ile osd’lerin durumunu görebilirsiniz. Yukarıdaki işlemleri hatasız tamamlamışsanız şimdi sıra pool oluşturmakta. ceph osd lspool komutu oluşturulan pool’ları gösteriyor. Default olarak rbd pool’u oluşmuş olacaktır. Aşağıdaki komut ile mypool adında pg_num ve pgp_num değeri 768 olan pool oluşturulmuş olacak.

ceph osd pool create <pool-name> <pg-num> [<pgp-num>] [replicated] [crush-ruleset-name]
ceph osd pool create mypool 768 768

Sonrasında admin node’u belirliyoruz.

ceph-deploy admin cephdeploy
sudo chmod +r /etc/ceph/ceph.client.admin.keyring

ceph health komutu ile ceph’in durumunu kontrol ederek kurulumu bitiriyoruz. HEALTH_OK şeklinde çıktı vermeli.

Kaynaklar:

Yorum yaz

0 Yorumlar.

Yorum Yap


Not - Bunları KullanabilirsinizHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>