Ceph is the future of storage : Açık kaynak kodlu, dağıtık, yazılım tabanlı storage sistemidir. Object, block ve file-level storage desteklemektedir. Geleneksel depolama sistemlerinin kısıtlarına karşın Ceph ölçeklenebilir, esnek ve donanım bağımsızlığı sayesinde ekonomikliliğide beraberinde getirir. Ayrıca dağıtık yapıda çalışması sayesinde olası bir arızayı karşın otomatik onarım işlemlerini başlatması, exabyte seviyelerine kadar çıkabilmesi ve 3-in-1 protokol desteği Ceph'i bu denli zevkle kullanılabilir ve göz bebeği haline getirmiştir.
Yapımız kısaca aşağıdaki gibi;
1 node Ceph servisleri(Monitör, Management, Rados Gateway, Admin client) + 3 OSD node toplam 4 node.
Her OSD node’sinde storage cluster için 3’er ayrı disk(/dev/sdb, dev/sdc, dev/sdd gibi).
Siz kendi yapınız için yatayda OSD ve dikeyde disk yapınızı çoğaltabilirsiniz.
Her OSD sunucusunda diskler herhangi bir yere mount edilmemiş ve lvm yapılmamış olmalıdır. Ben 100GB alan verdim.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk |-sda1 8:1 0 99G 0 part / |-sda2 8:2 0 1K 0 part `-sda5 8:5 0 975M 0 part [SWAP] sdb 8:16 0 100G 0 disk sdc 8:32 0 100G 0 disk sdd 8:48 0 100G 0 disk sr0 11:0 1 1024M 0 rom
Bütün node'lerde çalıştırılmalı;
sudo apt update #ubuntu 16 sudo apt install chrony python-minimal -y #ubuntu 20 sudo apt install chrony python3-pip -y
sudo sed -i 's/pool 2.debian.pool.ntp.org offline iburst/server $NTP_ADDRESS iburst/g' /etc/chrony/chrony.conf sudo systemctl restart chrony.service
sudo useradd -d /home/cephuser -m cephuser sudo passwd cephuser #enter a password: 'Complex_Pass' echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser sudo chmod 0440 /etc/sudoers.d/cephuser
sudo vi /etc/hosts 10.10.10.201 ceph-ops 10.10.10.202 ceph-stgx 10.10.10.203 ceph-stgy 10.10.10.204 ceph-stgz
Sadece Admin node'de çalıştırılmalı(yani ceph servislerinin kurulacağı ceph-ops node'si);
ssh-keygen ssh-copy-id cephuser@ceph-ops ssh-copy-id cephuser@ceph-stgx ssh-copy-id cephuser@ceph-stgy ssh-copy-id cephuser@ceph-stgz
sudo vi ~/.ssh/config Host ceph-ops Hostname ceph-ops User cephuser Host ceph-stgx Hostname ceph-stgx User cephuser Host ceph-stgy Hostname ceph-stgy User cephuser Host ceph-stgz Hostname ceph-stgz User cephuser
#ubuntu 16 wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add - echo deb https://download.ceph.com/debian-mimic/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list #ubuntu 20 #NoT: U20 için repoya source'ye eklerken sources.list.d'ye eklemek yerine direkt olarak "/etc/apt/source.list" altına eklemeniz daha uygun olabilir. #Çünkü özellikle bu kurulum sırasında pasific kurmak isterken ceph sources.list.d'nin altındaki ceph.list source'sini octopus'a çekiyor. #Fakat source.list altına eklediğinizde, burda yetkisi olmadığından ve değiştiremediğinden pacific versiyonunda kurulum sağlayabiliyorsunuz. "deb https://download.ceph.com/debian-pacific/ focal main" wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add - echo deb https://download.ceph.com/debian-octopus/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list sudo apt update #ubuntu 16 sudo apt install ceph-deploy -y #ubuntu 20 pip3 install git+https://github.com/ceph/ceph-deploy.git PATH=$PATH:/home/$USER/.local/bin mkdir mycluster cd mycluster ceph-deploy new ceph-ops
vi ceph.conf osd pool default pg num = 8 osd pool default pgp num = 8 mon_initial_members = ceph-ops mon_host = 10.10.10.201 public network = 10.10.10.0/24 cluster network = 10.10.20.0/24 rgw_override_bucket_index_max_shards = 500 mon_pg_warn_max_object_skew = 0
ceph-deploy install ceph-ops ceph-stgx ceph-stgy ceph-stgz ceph-deploy mon create-initial ceph-deploy admin ceph-ops ceph-deploy mgr create ceph-ops ceph-deploy rgw create ceph-ops
#Fiziksel osd'lerde öncesinde yapılandırlmış LVM varsa tespit edilip, temizlenmelidir. ceph-deploy osd create ceph-stgx --data /dev/sdb ceph-deploy osd create ceph-stgx --data /dev/sdc ceph-deploy osd create ceph-stgx --data /dev/sdd ceph-deploy osd create ceph-stgy --data /dev/sdb ceph-deploy osd create ceph-stgy --data /dev/sdc ceph-deploy osd create ceph-stgy --data /dev/sdd ceph-deploy osd create ceph-stgz --data /dev/sdb ceph-deploy osd create ceph-stgz --data /dev/sdc ceph-deploy osd create ceph-stgz --data /dev/sdd
#Ceph kurulumlarında OSD başına 50 ila 100 arasında PG düşmeli, bundan dolayı OSD sayısıyla 50 ve 100 çarpılarak minumum ve maksimum PG değerleri elde edilir. #Örnek olarak 9 OSD'li bir kurulumda açılacak pool'ların PG değerlerinin toplamı 9x50=450 ile 9x100=900 arasında olmalıdır. #default.rgw.buckets.data pool'una 450 ile 900 arasındaki 2'nin katı olan 512 değeri verilir, böylece ceph'in açma potansiyeli olan diğer pool'lar için verilen 8 default pg num(ceph.conf'da verildi) değeriyle bu eşik aşılmamış olur. sudo ceph osd pool create default.rgw.buckets.data 512 512 replicated replicated_rule 20000000
#Swift user oluşturuyorum, siz isterseniz s3 user oluşturabilirsiniz. sudo radosgw-admin --uid "ceph-demo" --display-name "Ceph Demo Kurulum Kullanıcısı" --subuser=ceph-demo:swift --key-type swift --access full user create sudo radosgw-admin --uid "ceph-demo" --max-buckets=0 user modify #Uygulama bağlantısı için kullanılabilecek bilgiler ceph.username = ceph-demo:swift ceph.password = W2ocBJ4WwWvHfsARsO9PtD9HbFmJNKI4CYEZFACQ ceph.endpoint = http://10.10.10.201:7480/swift/v1 ceph.auth.url = http://10.10.10.201:7480/auth/1.0
Ceph dashboard'ı aktif edebilirsiniz.
#ubuntu 16 sudo ceph mgr module enable dashboard sudo ceph dashboard create-self-signed-cert sudo ceph config set mgr mgr/dashboard/server_addr ceph-ops sudo ceph config set mgr mgr/dashboard/server_port 8443 sudo ceph mgr services #service url check sudo ceph dashboard set-login-credentials admin admin #ubuntu 20 sudo apt install ceph-mgr-dashboard sudo ceph mgr module enable dashboard sudo ceph dashboard create-self-signed-cert sudo ceph config set mgr mgr/dashboard/server_addr ceph-ops sudo ceph config set mgr mgr/dashboard/server_port 8443 sudo ceph mgr services #service url check #Set the login credentials. Password read from -i <file> sudo ceph dashboard set-login-credentials admin -i admin.txt
Aşağıdaki komutlarla da Ceph'i kontol edebilirsiniz.
sudo ceph osd pool ls / sudo ceph osd pool ls detail sudo ceph df detail sudo ceph osd status sudo ceph health detail sudo ceph -s
cluster: id: 9c2bdf0d-528a-47c0-b466-4ed3b404162c health: HEALTH_OK services: mon: 1 daemons, quorum ceph-ops (age 40m) mgr: ceph-ops(active, since 4m) osd: 9 osds: 9 up (since 37m), 9 in (since 37m) rgw: 1 daemon active (ceph-ops) task status: data: pools: 6 pools, 138 pgs objects: 189 objects, 5.1 KiB usage: 11 GiB used, 79 GiB / 278 GiB avail pgs: 137 active+clean
Top comments (0)