He wheako me CEPH

Ina he nui ake nga raraunga kaore e taea te uru ki runga i te kōpae kotahi, kua tae ki te wa ki te whakaaro mo te RAID. I a au e tamariki ana, he maha nga wa ka rongo ahau i aku kaumātua: “tetahi ra ka waiho te RAID hei mea o mua, ka whakakiia te ao e te rokiroki taonga, kare koe e mohio he aha te CEPH,” na ko te mea tuatahi i roto i taku oranga motuhake. ko te hanga i taku ake tautau. Ko te kaupapa o te whakamatautau ko te mohio ki te hanganga o roto o te ceph me te mohio ki te whānuitanga o tana tono. He pehea te tika o te whakatinanatanga o te ceph i roto i nga umanga reo-rahi me nga pakihi iti? I muri i nga tau maha o te mahi me te rua o nga ngaronga raraunga kaore e taea te whakahoki, ka puta ake te maarama ki nga uauatanga kaore nga mea katoa i te ngawari. Ko nga ahuatanga motuhake o te CEPH he aukati i te whanuitanga o tana whakatamarikitanga, na enei mea kua tutuki nga whakamatautau. Kei raro nei te whakamaarama o nga mahi katoa i mahia, nga hua i puta me nga whakatau i mahia. Mena ka tohatoha nga tangata mohio i o raatau wheako me te whakamarama i etahi waahanga, ka mihi ahau.

Tuhipoka: Kua tautuhia e nga kai-korero etahi hapa nui i roto i etahi o nga whakapae e hiahia ana kia whakahouhia te tuhinga katoa.

Rautaki CEPH

Ko te huinga CEPH he whakakotahi i te tau K o nga kopae he nui noa te rahi me te penapena raraunga ki runga, ka kape i ia waahanga (4 MB te taunoa) he nama N nga wa.

Kia whai whakaaro tatou ki te keehi tino ngawari me nga kōpae rite e rua. Mai i a raatau ka taea e koe te kohi RAID 1, he tautau ranei me N=2 - ka rite te hua. Mēnā e toru ngā kōpae, ā, he rerekē te rahi, he māmā te whakahiato i tētahi kāhui me te N=2: ko ētahi o ngā raraunga kei runga i ngā kōpae 1 me te 2, ko ētahi kei te kōpae 1 me te 3, ko etahi ka i runga i te 2 me te 3, i te mea karekau a RAID (ka taea e koe te kohi i taua RAID, engari he mea kee). Mena he maha atu nga kopae, katahi ka taea te hanga RAID 5; Kei a CEPH he tairitenga - erasure_code, e whakahē ana i nga kaupapa tuatahi o nga kaihanga, na reira kaore e whakaarohia. Kei te whakaaro a RAID 5 he iti noa nga puku, kei te pai katoa. Ki te rahua tetahi, me pupuri etahi atu kia whakakapia ra ano te kōpae ka whakahokia mai nga raraunga ki a ia. Ko te CEPH, me te N>=3, e akiaki ana ki te whakamahi i nga kōpae tawhito, ina koa, ki te pupuri koe i etahi kōpae pai hei penapena i tetahi kape o nga raraunga, me te penapena i nga kape e rua, e toru ranei e toe ana ki runga i te maha o nga kopae tawhito, katahi ko nga korero ka noho haumaru, na te mea kei te ora tonu nga kopae hou - kaore he raru, a ki te pakaru tetahi, na te korenga o te wa kotahi o nga kōpae e toru me te ora mahi neke atu i te rima tau, he pai mai i nga kaiwhakarato rereke, he tino kore. takahanga.

He ngawari te tohatoha o nga kape. Ma te taunoa, ka whakaarohia kua wehea nga raraunga ki etahi atu (~ 100 mo ia kopae) nga roopu tohatoha PG, he taarua ia o enei ki runga i etahi kopae. Me kii atu ko K=6, N=2, ki te rahua etahi kopae e rua, ka tino ngaro nga raraunga, i te mea e ai ki te ariā tūponotanga, kotahi pea te PG ka noho ki runga i enei kōpae e rua. Na te ngaronga o tetahi roopu ka kore e waatea nga raraunga katoa o te puna. Mena ka wehea nga kopae kia toru nga takirua ka whakaaetia kia penapenahia nga raraunga ki runga i nga kopae i roto i te takirua kotahi, katahi ano te tohatoha o taua tuhatanga he atete ki te kore o tetahi kopae, engari ki te kore nga kōpae e rua, karekau pea te ngaronga raraunga. 100%, engari anake 3/15, a ahakoa i roto i te take o te kore e toru kōpae - anake 12/20. No reira, ko te entropy i roto i te tohatoha raraunga kaore e whai waahi ki te aukati i te he. Kia mahara hoki mo te kaituku konae, ko te RAM kore utu ka tino whakanui ake i te tere whakautu. Ko te nui ake o te mahara ki ia pona, me te nui ake o te mahara ki nga pona katoa, ka tere ake. Kare e kore he painga tenei mo te tautau ki runga i te tūmau kotahi, me te mea nui ake, he taputapu NAS, he iti rawa te mahara ka hangaia ki roto.

Ka whai ake ko te CEPH he huarahi pai ki te hanga i tetahi punaha rokiroki raraunga pono mo nga tekau o te TB me te kaha ki te tauine me te iti o te haumi mai i nga taputapu tawhito (i konei, ko te tikanga, ka hiahiatia nga utu, engari he iti noa iho ki nga punaha rokiroki hokohoko).

Te whakatinanatanga o te roopu

Mo te whakamatautau, me tango he rorohiko kua whakakorehia Intel DQ57TM + Intel matua i3 540 + 16 GB o RAM. Ka whakaritehia e matou nga kopae 2 TB e wha ki tetahi ahua penei i te RAID10, i muri i te whakamatautau angitu ka taapirihia e matou he waahanga tuarua me te maha o nga kōpae.

Tāuta Linux. Ko te tohatoha me kaha ki te whakarite me te pumau. Ka tutuki a Debian raua ko Suse i nga whakaritenga. Kei a Suse tetahi taputapu ngawari ake e taea ai e koe te whakakore i tetahi kete; Kia aroha mai, kare e taea e au te mohio ko wai nga mea ka peia atu me te kore e pakaru te punaha. Tāutahia a Debian ma te whakamahi i te debootstrap buster. Ko te kōwhiringa min-base ka whakauruhia he punaha pakaru kaore he taraiwa. Ko te rereketanga o te rahi ka whakaritea ki te putanga katoa kaore i te nui hei whakararuraru. I te mea ka mahia nga mahi i runga i te miihini tinana, ka hiahia ahau ki te tango whakaahua, penei i nga miihini mariko. Ko tenei whiringa ka tukuna e LVM, btrfs ranei (he xfs ranei, zfs ranei - kaore i te nui te rereketanga). Ko nga whakaahua LVM ehara i te mea kaha. Tāutahia btrfs. A ko te bootloader kei roto i te MBR. Karekau he take ki te kopikopiko i te kōpae 50 MB me te wehewehenga FAT ka taea e koe te pana ki roto i te rohe ripanga wehewehenga 1 MB me te tohatoha i nga waahi katoa mo te punaha. I tangohia te 700 MB i runga i te kōpae. Kaore au e mahara ki te nui o te whakaurunga taketake o te SUSE, ki taku whakaaro he 1.1, 1.4 GB ranei.

Tāuta CEPH. Ka warewarehia te putanga 12 i roto i te putunga debian ka hono tika mai i te pae 15.2.3. Ka whai matou i nga tohutohu mai i te waahanga "Tāutahia a-ringa CEPH" me nga whakatupato e whai ake nei:

  • I mua i te hono atu i te putunga, me whakauru koe i nga tiwhikete gnupg wget ca
  • Whai muri i te hono i te putunga, engari i mua i te whakauru i te tautau, ka whakakorehia te whakauru i nga kohinga: apt -y --no-install-recommends install ceph-common ceph-mon ceph-osd ceph-mds ceph-mgr
  • I te wa e whakauru ana i te CEPH, mo nga take e kore e mohiotia, ka ngana ki te whakauru i te lvm2. Ko te tikanga, ehara i te mea pouri, engari ka rahua te whakaurunga, na reira ka kore te CEPH e whakauru.

    I awhina tenei papaki:

    cat << EOF >> /var/lib/dpkg/status
    Package: lvm2
    Status: install ok installed
    Priority: important
    Section: admin
    Installed-Size: 0
    Maintainer: Debian Adduser Developers <[email protected]>
    Architecture: all
    Multi-Arch: foreign
    Version: 113.118
    Description: No-install
    EOF
    

Tirohanga roopu

ceph-osd - he kawenga mo te rokiroki raraunga ki runga kōpae. Mo ia kōpae, ka whakarewahia he ratonga whatunga e whakaae ana, e whakahaere ana i nga tono ki te panui, ki te tuhi ranei ki nga taonga. E rua nga wahanga ka hangaia ki te kōpae. Kei roto i tetahi o ratou nga korero mo te tautau, te nama kōpae, me nga taviri o te tautau. Ko enei korero 1KB he mea hanga kotahi i te wa e taapiri ana i te kōpae, kaore ano kia kitea kua huri. Ko te wehenga tuarua karekau he punaha konae me te penapena i nga raraunga takirua CEPH. Ko te whakaurunga aunoa i nga putanga o mua i hanga he wehewehenga 100MB xfs mo nga korero ratonga. I hurihia e ahau te kōpae ki te MBR ka tohatoha noa i te 16MB - kaore te ratonga e amuamu. Ki taku whakaaro ka taea te whakakapi i te xfs ki te ext kaore he raru. Ka whakairihia tenei wehewehenga ki /var/lib/…, ka panui te ratonga i nga korero mo te OSD, ka kitea hoki he tohutoro ki te taputapu poraka kei reira nga raraunga takirua. Ko te tikanga, ka taea e koe te whakanoho i nga konae awhina ki roto i te /var/lib/…, ka tohatoha i te kōpae katoa mo nga raraunga. I te wa e hanga ana he OSD ma te ceph-deploy, ka hangaia he ture hei whakanoho i te wehewehenga ki roto /var/lib/..., ka whakawhiwhia ano ki te kaiwhakamahi ceph nga mana ki te panui i te taputapu poraka e hiahiatia ana. Mena ka whakauru a ringa koe, me mahi koe i tenei; kaore nga tuhinga e kii ana i tenei. He mea tika ano kia tohua te tawhā taunga mahara osd kia nui ai te mahara tinana.

ceph-mds. I te taumata iti, ko te CEPH te rokiroki taonga. Ko te kaha ki te aukati i te rokiroki ka heke iho ki te penapena i ia poraka 4MB hei ahanoa. Ko te mahi rokiroki kōnae i runga i te kaupapa kotahi. E rua nga puna ka hangaia: tetahi mo te metadata, tetahi mo te raraunga. Ka honoa ki te punaha konae. I tenei wa, ka hangaia etahi momo rekoata, na mena ka mukua e koe te punaha konae, engari ka pupuri i nga puna e rua, kaore e taea e koe te whakahoki mai. He tikanga mo te tango i nga konae ma nga poraka, kaore au i whakamatau. Ko te ratonga ceph-mds te kawenga mo te uru ki te punaha konae. Me whai tauira motuhake mo ia punaha konae te ratonga. He whiringa "taupu", ka taea e koe te hanga i te ahua o te maha o nga punaha konae i roto i te kotahi - kaore ano i whakamatauria.

Ceph-mon - Ma tenei ratonga e penapena he mapi o te tautau. Kei roto i nga korero mo nga OSD katoa, he algorithm mo te tohatoha PG i roto i nga OSD, me te mea nui, ko nga korero mo nga mea katoa (kaore au i te marama ki ahau nga korero o tenei tikanga: he raarangi /var/lib/ceph/mon/…/ store.db, he nui kei roto ko te 26MB te konae, a, i roto i te kohinga o nga taonga 105K, ka puta he iti ake i te 256 paita mo ia ahanoa - Ki taku whakaaro kei te pupurihia e te kaitirotiro he rarangi o nga mea katoa me te PG kei roto. kei ratou). Ko te kino o tenei whaiaronga ka ngaro nga raraunga katoa i roto i te kohinga. No reira i whakatauhia ko CRUSH e whakaatu ana he pehea te noho o nga PG ki runga i te OSD, me te pehea o nga taonga kei runga i nga PG - kei roto tonu i te putunga korero, ahakoa pehea te karo a nga kaihanga i tenei kupu. Ko te mutunga, ko te tuatahi, kaore e taea e taatau te whakauru i te punaha ki runga i te puku kohiko i roto i te aratau RO, na te mea kei te tuhi tonu te paataka korero, ka hiahiatia he kopae taapiri mo enei (kaore i neke atu i te 1 GB), tuarua, me whai tārua i roto i te wā tūturu tenei turanga. Mena he maha nga kaitirotiro, katahi ka whakapumauhia te he o te he, engari i roto i ta maatau he kotahi anake te kaitirotiro, e rua te nuinga. He tikanga ariā mo te whakahoki mai i te kaitirotiro i runga i nga raraunga OSD, e toru nga wa i uru atu ahau ki a ia mo nga take rereke, e toru nga wa kaore he karere hapa, me te kore he raraunga. Kia aroha mai, kaore tenei tikanga e mahi. Ka whakahaerehia e matou he wehewehenga iti i runga i te OSD ka whakaemihia he RAID hei penapena i te paataka raraunga, he tino kino te paanga ki te mahi, ka toha ranei kia rua nga paapori tino pono, he pai ki te USB, kia kore ai e noho ki nga tauranga.

rados-gw - kaweake rokiroki ahanoa mā te kawa S3 me te rite. Ka waihangahia nga puna wai maha, kaore i te maarama he aha. Kaore au i tino whakamatau.

ceph-mgr - I te wa e whakauru ana i tenei ratonga, he maha nga waahanga ka whakarewahia. Ko tetahi o aua mea he tauine aunoa e kore e taea te mono. Ka whakapau kaha ki te pupuri i te rahinga tika o te PG/OSD. Mena kei te pirangi koe ki te whakahaere a-ringa i te ōwehenga, ka taea e koe te whakakore i te tauine mo ia puna, engari i tenei keehi ka pakaru te kōwae me te wehenga ma te 0, ka huri te mana kapoi ki te HAPA. Kua tuhia te kōwae ki te Python, a, ki te korero koe i te rarangi e tika ana i roto, ka arai atu ki te whakakore. He mangere ki te mahara ki nga korero.

Rarangi o nga puna i whakamahia:

Te whakaurunga o CEPH
Whakaoranga mai i te rahunga aroturuki katoa

Nga rarangi tuhinga:

Te whakauru i te punaha ma te debootstrap

blkdev=sdb1
mkfs.btrfs -f /dev/$blkdev
mount /dev/$blkdev /mnt
cd /mnt
for i in {@,@var,@home}; do btrfs subvolume create $i; done
mkdir snapshot @/{var,home}
for i in {var,home}; do mount -o bind @${i} @/$i; done
debootstrap buster @ http://deb.debian.org/debian; echo $?
for i in {dev,proc,sys}; do mount -o bind /$i @/$i; done
cp /etc/bash.bashrc @/etc/

chroot /mnt/@ /bin/bash
echo rbd1 > /etc/hostname
passwd
uuid=`blkid | grep $blkdev | cut -d """ -f 2`
cat << EOF > /etc/fstab
UUID=$uuid / btrfs noatime,nodiratime,subvol=@ 0 1
UUID=$uuid /var btrfs noatime,nodiratime,subvol=@var 0 2
UUID=$uuid /home btrfs noatime,nodiratime,subvol=@home 0 2
EOF
cat << EOF >> /var/lib/dpkg/status
Package: lvm2
Status: install ok installed
Priority: important
Section: admin
Installed-Size: 0
Maintainer: Debian Adduser Developers <[email protected]>
Architecture: all
Multi-Arch: foreign
Version: 113.118
Description: No-install

Package: sudo
Status: install ok installed
Priority: important
Section: admin
Installed-Size: 0
Maintainer: Debian Adduser Developers <[email protected]>
Architecture: all
Multi-Arch: foreign
Version: 113.118
Description: No-install
EOF

exit
grub-install --boot-directory=@/boot/ /dev/$blkdev
init 6

apt -yq install --no-install-recommends linux-image-amd64 bash-completion ed btrfs-progs grub-pc iproute2 ssh  smartmontools ntfs-3g net-tools man
exit
grub-install --boot-directory=@/boot/ /dev/$blkdev
init 6

Waihangahia he tautau

apt -yq install --no-install-recommends gnupg wget ca-certificates
echo 'deb https://download.ceph.com/debian-octopus/ buster main' >> /etc/apt/sources.list
wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add -
apt update
apt -yq install --no-install-recommends ceph-common ceph-mon

echo 192.168.11.11 rbd1 >> /etc/hosts
uuid=`cat /proc/sys/kernel/random/uuid`
cat << EOF > /etc/ceph/ceph.conf
[global]
fsid = $uuid
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
mon allow pool delete = true
mon host = 192.168.11.11
mon initial members = rbd1
mon max pg per osd = 385
osd crush update on start = false
#osd memory target = 2147483648
osd memory target = 1610612736
osd scrub chunk min = 1
osd scrub chunk max = 2
osd scrub sleep = .2
osd pool default pg autoscale mode = off
osd pool default size = 1
osd pool default min size = 1
osd pool default pg num = 1
osd pool default pgp num = 1
[mon]
mgr initial modules = dashboard
EOF

ceph-authtool --create-keyring ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
ceph-authtool --create-keyring ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
cp ceph.client.admin.keyring /etc/ceph/
ceph-authtool --create-keyring bootstrap-osd.ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
cp bootstrap-osd.ceph.keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
ceph-authtool ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
ceph-authtool ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
monmaptool --create --add rbd1 192.168.11.11 --fsid $uuid monmap
rm -R /var/lib/ceph/mon/ceph-rbd1/*
ceph-mon --mkfs -i rbd1 --monmap monmap --keyring ceph.mon.keyring
chown ceph:ceph -R /var/lib/ceph
systemctl enable ceph-mon@rbd1
systemctl start ceph-mon@rbd1
ceph mon enable-msgr2
ceph status

# dashboard

apt -yq install --no-install-recommends ceph-mgr ceph-mgr-dashboard python3-distutils python3-yaml
mkdir /var/lib/ceph/mgr/ceph-rbd1
ceph auth get-or-create mgr.rbd1 mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-rbd1/keyring
systemctl enable ceph-mgr@rbd1
systemctl start ceph-mgr@rbd1
ceph config set mgr mgr/dashboard/ssl false
ceph config set mgr mgr/dashboard/server_port 7000
ceph dashboard ac-user-create root 1111115 administrator
systemctl stop ceph-mgr@rbd1
systemctl start ceph-mgr@rbd1

Te taapiri OSD (waahanga)

apt install ceph-osd

osdnum=`ceph osd create`
mkdir -p /var/lib/ceph/osd/ceph-$osdnum
mkfs -t xfs /dev/sda1
mount -t xfs /dev/sda1 /var/lib/ceph/osd/ceph-$osdnum
cd /var/lib/ceph/osd/ceph-$osdnum
ceph auth get-or-create osd.0 mon 'profile osd' mgr 'profile osd' osd 'allow *' > /var/lib/ceph/osd/ceph-$osdnum/keyring
ln -s /dev/disk/by-partuuid/d8cc3da6-02  block
ceph-osd -i $osdnum --mkfs
#chown ceph:ceph /dev/sd?2
chown ceph:ceph -R /var/lib/ceph
systemctl enable ceph-osd@$osdnum
systemctl start ceph-osd@$osdnum

Whakarāpopoto

Ko te painga hokohoko matua o CEPH ko CRUSH - he algorithm mo te tatau i te waahi o nga raraunga. Ka tohatohahia e nga kaitirotiro tenei algorithm ki nga kaihoko, ka tono tika nga kaihoko ki te node e hiahiatia ana me te OSD e hiahiatia ana. Ko te CRUSH te whakarite kia kore he whakaurunga. He konae iti ka taea e koe te tuhi me te whakairi ki te pakitara. Kua whakaatuhia e te parakatihi ehara a CRUSH i te mapi katoa. Mena ka whakangaro koe, ka hanga ano i nga kaitirotiro, me te pupuri i te OSD me te CRUSH katoa, kare e ranea hei whakaora i te tautau. Mai i tenei ka whakatauhia ko ia kaitirotiro e rongoa ana etahi metadata mo te roopu katoa. Ko te iti o tenei metadata kaore e herea te rahi o te kohinga, engari me whakarite i to raatau haumaru, e whakakore ana i nga penapena kōpae ma te whakauru i te punaha ki runga i te puku kohiko me te whakakore i nga tautau he iti ake i te toru nga waahanga. Ko te kaupapa here pukuriri a te kaiwhakawhanake e pa ana ki nga waahanga whiriwhiri. Matara atu i te minimalism. Ko nga tuhinga kei te taumata "whakawhetai mo nga mea kei a matou, engari he iti rawa." Ko te kaha ki te mahi tahi me nga ratonga i te taumata iti ka tukuna, engari ko nga tuhinga e pa ana ki tenei kaupapa he papaku rawa, no reira he kore ake i te ae. Karekau he tupono ki te whakaora raraunga mai i tetahi ahuatanga ohorere.

Ko nga whiringa mo etahi atu mahi: whakarerea te CEPH me te whakamahi i nga btrfs multi-disk banal (xfs, zfs ranei), rapua nga korero hou mo te CEPH, ka taea e koe te whakahaere i raro i nga tikanga kua tohua, ngana ki te tuhi i to ake rokiroki hei mea matatau. whakangungu.

Source: will.com

Tāpiri i te kōrero