Si të ndërtoni një grup ruajtjeje të shpërndarë Ceph në CentOS 7
Ceph është një platformë ruajtjeje me burim të hapur e përdorur gjerësisht. Ofron performancë të lartë, besueshmëri dhe shkallëzim. Sistemi i ruajtjes së shpërndarë falas Ceph ofron një ndërfaqe për ruajtjen e objektit, bllokut dhe skedarit në nivel. Ceph është ndërtuar për të siguruar një sistem ruajtjeje të shpërndarë pa një pikë të vetme dështimi.
Në këtë tutorial, unë do t'ju udhëzoj të instaloni dhe ndërtoni një grup Ceph në CentOS 7. Një grup Ceph kërkon këto komponentë Ceph:
- Ceph OSD (ceph-osd) - Trajton ruajtjen e të dhënave, riprodhimin dhe rikuperimin e të dhënave. Një grup Ceph ka nevojë për të paktën dy serverë Ceph OSD. Këtu do të përdor tre serverë CentOS 7 OSD.
- Ceph Monitor (ceph-mon) - Monitoron gjendjen e grupit, hartën OSD dhe hartën CRUSH. Unë do të përdor një server.
- Serveri i të dhënave meta të Ceph (ceph-mds) - Ky është i nevojshëm për të përdorur Ceph si një sistem skedari.
Parakushtet
- 6 nyje serveri, të gjitha me CentOS 7 të instaluar.
- Privilegjet e rrënjës në të gjitha nyjet.
Serverët në këtë tutorial do të përdorin emrat dhe adresat IP të mëposhtme.
emri i hostit Adresa IP
ceph-admin 10.0.15.10
mon1 10.0.15.11 . 10.0.15.11. 2 . 1 . 1 . 1 . 0 osd1 10.0.15.10. d2 10.0.15.22
osd3 10.0.15.23
klient 10.0.15.15
Të gjitha nyjet OSD kanë nevojë për dy ndarje, një ndarje rrënjë (/) dhe një ndarje boshe që përdoret si ruajtje e të dhënave Ceph më vonë.
Hapi 1 - Konfiguro të gjitha nyjet
Në këtë hap, ne do të konfigurojmë të 6 nyjet për t'i përgatitur ato për instalimin e Ceph Cluster. Ju duhet të ndiqni dhe ekzekutoni të gjitha komandat më poshtë në të gjitha nyjet. Dhe sigurohuni që serveri ssh të jetë i instaluar në të gjitha nyjet.
Krijo një përdorues Ceph
Krijo një përdorues të ri me emrin cephuser në të gjitha nyjet.
useradd -d /home/cephuser -m cephuser
passwd cephuser
Pas krijimit të përdoruesit të ri, ne duhet të konfigurojmë sudo për cephuser. Ai duhet të jetë në gjendje të ekzekutojë komanda si rrënjë dhe të marrë privilegje root pa një fjalëkalim.
Ekzekutoni komandën më poshtë për të krijuar një skedar sudoers për përdoruesin dhe modifikoni skedarin /etc/sudoers me sed.
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
Instaloni dhe konfiguroni NTP
Instaloni NTP për të sinkronizuar datën dhe kohën në të gjitha nyjet. Ekzekutoni komandën ntpdate për të vendosur një datë dhe orë nëpërmjet protokollit NTP, ne do të përdorim serverin NTP të grupit të SHBA. Pastaj filloni dhe aktivizoni serverin NTP që të funksionojë në kohën e nisjes.
yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd.service
Instaloni Open-vm-tools
Nëse po ekzekutoni të gjitha nyjet brenda VMware, duhet të instaloni këtë mjet virtualizimi. Përndryshe, kaloni këtë hap.
yum install -y open-vm-tools
Çaktivizo SELinux
Çaktivizoni SELinux në të gjitha nyjet duke redaktuar skedarin e konfigurimit SELinux me redaktuesin e transmetimit sed.
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
Konfiguro skedarin e hosteve
Ndryshoni skedarin /etc/hosts në të gjitha nyjet me redaktorin vim dhe shtoni linja me adresën IP dhe emrat e hosteve të të gjitha nyjeve të grupimit.
vim /etc/hosts
Ngjitni konfigurimin më poshtë:
10.0.15.10 ceph-admin
10.0.15.11 mon1
10.0.15.21 osd1
10.0.15.22 osd2
10.0.15.23 osd3
10.0.15.15 client
Ruani skedarin dhe dilni nga vim.
Tani mund të provoni të bëni ping midis serverëve me emrin e hostit të tyre për të testuar lidhjen e rrjetit. Shembull:
ping -c 5 mon1
Hapi 2 - Konfiguro serverin SSH
Në këtë hap, unë do të konfiguroj nyjen ceph-admin. Nyja admin përdoret për konfigurimin e nyjes së monitorit dhe nyjeve osd. Hyni në nyjen ceph-admin dhe bëhuni cephuser.
ssh
su - cephuser
Nyja admin përdoret për instalimin dhe konfigurimin e të gjitha nyjeve të grupimit, kështu që përdoruesi në nyjen ceph-admin duhet të ketë privilegje për t'u lidhur me të gjitha nyjet pa fjalëkalim. Ne duhet të konfigurojmë qasjen SSH pa fjalëkalim për cephuser në nyjen ceph-admin.
Gjeneroni çelësat ssh për cephuser.
ssh-keygen
lëre frazën e kalimit bosh/bosh.
Më pas, krijoni skedarin e konfigurimit për konfigurimin ssh.
vim ~/.ssh/config
Ngjitni konfigurimin më poshtë:
Host ceph-admin
Hostname ceph-admin
User cephuser
Host mon1
Hostname mon1
User cephuser
Host osd1
Hostname osd1
User cephuser
Host osd2
Hostname osd2
User cephuser
Host osd3
Hostname osd3
User cephuser
Host client
Hostname client
User cephuser
Ruani skedarin.
Ndryshoni lejen e skedarit të konfigurimit.
chmod 644 ~/.ssh/config
Tani shtoni çelësin SSH në të gjitha nyjet me komandën ssh-copy-id.
ssh-keyscan osd1 osd2 osd3 mon1 client >> ~/.ssh/known_hosts
ssh-copy-id osd1
ssh-copy-id osd2
ssh-copy-id osd3
ssh-copy-id mon1
ssh-copy-id client
Shkruani fjalëkalimin tuaj të cephuser-it kur të kërkohet.
Kur të keni mbaruar, provoni të hyni në serverin osd1 nga nyja ceph-admin.
ssh osd1
Hapi 3 - Konfiguro Firewalld
Ne do të përdorim Firewalld për të mbrojtur sistemin. Në këtë hap, ne do të aktivizojmë firewald-in në të gjitha nyjet, më pas do të hapim portat e nevojshme për ceph-admon, ceph-mon dhe ceph-osd.
Hyni në nyjen ceph-admin dhe filloni murin e zjarrit.
ssh
systemctl start firewalld
systemctl enable firewalld
Hapni portin 80, 2003 dhe 4505-4506 dhe më pas rifreskoni murin e zjarrit.
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2003/tcp --permanent
sudo firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent
sudo firewall-cmd --reload
Nga nyja ceph-admin, identifikohuni në nyjen e monitorit mon1 dhe filloni murin e zjarrit.
ssh mon1
sudo systemctl start firewalld
sudo systemctl enable firewalld
Hapni portin e ri në nyjen e monitorit Ceph dhe ringarkoni murin e zjarrit.
sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent
sudo firewall-cmd --reload
Më në fund, hapni portin 6800-7300 në secilën prej nyjeve osd - osd1, osd2 dhe os3.
Hyni në çdo nyje osd nga nyja ceph-admin.
ssh osd1
sudo systemctl start firewalld
sudo systemctl enable firewalld
Hapni portet dhe ringarkoni murin e zjarrit.
sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
sudo firewall-cmd --reload
Konfigurimi i murit të zjarrit është kryer.
Hapi 4 - Konfiguro nyjet OSD Ceph
Në këtë tutorial, ne kemi 3 nyje OSD dhe secila nyje ka dy ndarje.
- /dev/sda për ndarjen rrënjë.
- /dev/sdb është një ndarje bosh - 30 GB në rastin tim.
Ne do të përdorim /dev/sdb për diskun Ceph. Nga nyja ceph-admin, identifikohu në të gjitha nyjet OSD dhe formato ndarjen /dev/sdb me XFS.
ssh osd1
ssh osd2
ssh osd3
Kontrolloni ndarjen me komandën fdisk.
sudo fdisk -l /dev/sdb
Formatoni ndarjen /dev/sdb me sistemin e skedarëve XFS dhe me një tabelë ndarjeje GPT duke përdorur komandën parted.
sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
sudo mkfs.xfs /dev/sdb -f
Tani kontrolloni ndarjen dhe do të merrni ndarjen xfs /dev/sdb.
sudo blkid -o value -s TYPE /dev/sdb
Hapi 5 - Ndërtoni grupin Ceph
Në këtë hap, ne do të instalojmë Ceph në të gjitha nyjet nga nyja ceph-admin.
Hyni në nyjen ceph-admin.
ssh
su - cephuser
Instaloni ceph-deploy në nyjen ceph-admin
Shtoni depon e Ceph dhe instaloni mjetin e vendosjes Ceph ceph-deploy me komandën yum.
sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
sudo yum update -y && sudo yum install ceph-deploy -y
Sigurohuni që të gjitha nyjet të jenë përditësuar.
Pasi të jetë instaluar mjeti ceph-deploy, krijoni një direktori të re për konfigurimin e grupit ceph.
Krijo konfigurimin e grupit të ri
Krijo drejtorinë e re të grupimit.
mkdir cluster
cd cluster/
Më pas, krijoni një konfigurim të ri grupi me komandën ceph-deploy, përcaktoni nyjen e monitorit të jetë mon1.
ceph-deploy new mon1
Komanda do të gjenerojë skedarin e konfigurimit të grupit Ceph ceph.conf në drejtorinë e grupit.
Redaktoni skedarin ceph.conf me vim.
vim ceph.conf
Nën bllokun [global], ngjitni konfigurimin më poshtë.
# Your network address
public network = 10.0.15.0/24
osd pool default size = 2
Ruani skedarin dhe dilni nga vim.
Instaloni Ceph në të gjitha nyjet
Tani instaloni Ceph në të gjitha nyjet e tjera nga nyja ceph-admin. Kjo mund të bëhet me një komandë të vetme.
ceph-deploy install ceph-admin mon1 osd1 osd2 osd3
Komanda do të instalojë automatikisht Ceph në të gjitha nyjet: mon1, osd1-3 dhe ceph-admin - Instalimi do të marrë pak kohë.
Tani vendosni ceph-mon në nyjen mon1.
ceph-deploy mon create-initial
Komanda do të krijojë çelësin e monitorit, do të kontrollojë dhe do të marrë çelësat me komandën ceph.
ceph-deploy gatherkeys mon1
Shtimi i OSDS në grup
Kur Ceph të jetë instaluar në të gjitha nyjet, atëherë ne mund të shtojmë demonët OSD në grup. OSD Daemons do të krijojnë ndarjen e të dhënave dhe ditarit të tyre në diskun /dev/sdb.
Kontrolloni që ndarja /dev/sdb të jetë e disponueshme në të gjitha nyjet OSD.
ceph-deploy disk list osd1 osd2 osd3
Do të shihni diskun /dev/sdb me format XFS.
Më pas, fshini tabelat e ndarjes /dev/sdb në të gjitha nyjet me opsionin zap.
ceph-deploy disk zap osd1:/dev/sdb osd2:/dev/sdb osd3:/dev/sdb
Komanda do të fshijë të gjitha të dhënat në /dev/sdb në nyjet Ceph OSD.
Tani përgatitni të gjitha nyjet OSDS. Sigurohuni që të mos ketë gabime në rezultate.
ceph-deploy osd prepare osd1:/dev/sdb osd2:/dev/sdb osd3:/dev/sdb
Nëse shihni se osd1-3 është gati për rezultatin e përdorimit të OSD, atëherë vendosja ishte e suksesshme.
Aktivizoni OSD-të me komandën e mëposhtme:
ceph-deploy osd activate osd1:/dev/sdb1 osd2:/dev/sdb1 osd3:/dev/sdb1
Kontrolloni daljen për gabime përpara se të vazhdoni. Tani mund të kontrolloni diskun sdb në nyjet OSD me komandën e listës.
ceph-deploy disk list osd1 osd2 osd3
Rezultati është që /dev/sdb tani ka dy ndarje:
- /dev/sdb1 - Ceph Data
- /dev/sdb2 - Ceph Journal
Ose mund ta kontrolloni atë direkt në nyjen OSD me fdisk.
ssh osd1
sudo fdisk -l /dev/sdb
Më pas, vendosni çelësin e menaxhimit në të gjitha nyjet e lidhura.
ceph-deploy admin ceph-admin mon1 osd1 osd2 osd3
Ndryshoni lejen e skedarit kyç duke ekzekutuar komandën më poshtë në të gjitha nyjet.
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
Është krijuar grupi Ceph në CentOS 7.
Hapi 6 - Testimi i konfigurimit të Ceph
Në hapin 4, ne kemi instaluar dhe krijuar grupin tonë të ri Ceph, më pas kemi shtuar nyjet OSDS në grup. Tani mund të testojmë grupin dhe të sigurohemi që nuk ka gabime në konfigurimin e grupit.
Nga nyja ceph-admin, identifikohu te serveri i monitorit ceph mon1.
ssh mon1
Ekzekutoni komandën më poshtë për të kontrolluar shëndetin e grupit.
sudo ceph health
Tani kontrolloni statusin e grupit.
sudo ceph -s
Dhe ju duhet të shihni rezultatet më poshtë:
Sigurohuni që shëndeti i Ceph është OK dhe ka një nyje monitorimi mon1 me adresë IP 10.0.15.11. Duhet të ketë 3 serverë OSD dhe të gjithë duhet të jenë në funksion dhe duhet të ketë një disk të disponueshëm prej rreth 75 GB - 3x25 GB ndarje Ceph Data .
Urime, ju keni ndërtuar me sukses një Cluster të ri Ceph.
Në pjesën tjetër të tutorialit të Ceph, unë do t'ju tregoj se si ta përdorni Ceph si një pajisje bllokimi ose si ta montoni atë si një sistem skedari.
Referenca
- https://access.redhat.com/documentation/en/red-hat-ceph-storage/