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.

  1. /dev/sda për ndarjen rrënjë.
  2. /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:

  1. /dev/sdb1 - Ceph Data
  2. /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/