Ceph
Koostamisel 2017-12-05
Autor
Sissejuhatus
Ceph on vabavaraline tarkvara mis võimaldab luua luua serverite vahel tarkvaralise salvestusseadme, mida on võimalik kasutada nii blokkseadmena kui ka objekti põhise andmekandjana. Lisaks on võimaliks andmete replikeerimine serverite vahel , hetktõmmissed (snapshots), veaparandus ja palju muud. Edaspidine kirjatükk kirjeldab Cephi klastri paigaldamist Debian 9 virtuaalmasinatele.
Mõisted
- OSD
- MON/Monitor
- MDS
- CephFS
- RBD
Paigaldamine
Eeldused
Praktumi läbiviimiseks kasutame kolme Debian 9 virtuaalmasinat mis lihtsuse huvides asu samas võrgus ning mille tulemüüridest on kõik sisse ja väljatulev liiklus lubatud. Lisaks on virtuaalmasinatel server{2-4} lisatud 1GB ekstra virtuaalne kõvaketas
Võrk: 192.168.122.0/24
Virtuaalmasinatele määratud staatilised IP aadressid
Nimi | IP | Roll |
---|---|---|
server-1 | 192.168.122.100 | Deploy |
server-2 | 192.168.122.101 | OSD,Monitor |
server-3 | 192.168.122.102 | OSD |
server-4 | 192.168.122.103 | OSD |
Paigaldus
Paigaldada on võimalik käsitsi igale masinale üskhaaval vajalikud teenused, kasutada oma eelistatud konfiguratsioonihaldus tarkvara nagu nt Saltstack, Ansible või Puppet millele kõigile on kogukonna poolt loodud valmis mooduleid või siis kasutada Ceph-i enda poolt pakutavat ceph-deploy utiliiti, mis võimalda kesksest serverist üle SSH ühenduse serveritesse paigaldust teha.
Järgnevas juhendis kasutamegi ceph-deploy utiliiti.
ceph-deploy
Selleks, et üle SSH paigaldada peame looma kasutaja ning andma talle õiguse paroolita ( võtmega ) üle SSH sisse logida.
Paigaldame Server-1 ceph-deploy tööriista
sudo apt-get install python-pip
Loome Kõigis serverites Ceph'i paigalduse tarvis kasutaja.
useradd -m -s /bin/bash ceph-deploy
passwd ceph-deploy # Määrame kontole salasõna
Anname loodud kasutajale ruudu õigused
echo "ceph-deploy ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph-deploy
sudo chmod 0440 /etc/sudoers.d/ceph-deploy
Loome Server-1 mida plaanime kasutada paigaldamiseks kasutada ssh võtmepaari
sudo -iu ceph-deploy # Vahetame kasutajat
ssh-keygen -t rsa # loome võtmepaari
Paigaldame loodud avaliku võtme kõigisse serveritesse
ssh-copy-id ceph-deploy@192.168.122.101
ssh-copy-id ceph-deploy@192.168.122.102
ssh-copy-id ceph-deploy@192.168.122.103
Järgnevad käsud käivitame ainult Server-1 peal.
Loome uue ceph-i klastri
su -c cephuser
ceph-deploy new server-2
Paigaldame serveritesse ceph-i tarkvarapaketid
ceph-deploy install server-2 server-3 server-4
Seadistame montitooringu masina. Toodangus soovitatakse jooksutada vähemalt 3 monitooringu masinat + ei soovitada seda teha sama masina peal kus ka OSD jookse.
ceph-deploy mon create-initial
ceph-deploy gatherkeys server-2
Kustutame lisaketaste mida soovime cephi jaoks kasutada partitsiooni tabelid tühjaks (Veendu ,et tegu õige kettaga! )
ceph-deploy disk zap server-2:/dev/vdb server-3:/dev/vdb server-4:/dev/vdb
Seadistame OSD'd. See loob vajalikud partitsioonid, seadista failissüteemi ja haagi loodud partitsioonid külge.
ceph-deploy osd prepare server-2:/dev/vdb server-3:/dev/vdb server-4:/dev/vdb
Aktiveerime eelpool loodud OSD'd
ceph-deploy osd activate server-2:/dev/vdb server-3:/dev/vdb server-4:/dev/vdb
Kui nüüd vaadata kas cepj-deployha või siis siis masinasse käsitsi sisse logida ja nt fdisk'iga uurida peaks näha olema, et on loodud 2 uut partitsiooni
ceph-deploy disk list server-2 server-3 server-4 ... ... [server-4][DEBUG ] /dev/vdb2 ceph journal, for /dev/vdb1 [server-4][DEBUG ] /dev/vdb1 ceph data, active, cluster ceph, osd.2, journal /dev/vdb2 fdisk -l ... ... Device Start End Sectors Size Type /dev/vdb1 10487808 20971486 10483679 5G Ceph OSD /dev/vdb2 2048 10487807 10485760 5G Ceph Journal
Jagame admin-võtmed teistele masinatel, et saaksime ceph-i käsurea haldustööriista misthahes masinast kasutada
ceph-deploy admin ceph-admin server-2 server-3 server-4
Testime
Veendume, et klaster töötab. Logime sisse nt server-2 ja käivitame käsud
ceph health
ja ceph -s
veendumaks, et kõik on töökorras ja korrektselt paigaldatud. Oodatud tulemus oleks:
# ceph health HEALTH_OK # ceph -s cluster 8054565c-d01f-4dee-8c9e-b32cd1243129 health HEALTH_OK monmap e1: 1 mons at {server-2=192.168.122.101:6789/0} election epoch 3, quorum 0 server-2 osdmap e15: 3 osds: 3 up, 3 in flags sortbitwise,require_jewel_osds pgmap v27: 64 pgs, 1 pools, 0 bytes data, 0 objects 105 MB used, 15221 MB / 15326 MB avail 64 active+clean