Konteinerite tiheduse suurendamine sÔlmes PFCACHE tehnoloogia abil

Konteinerite tiheduse suurendamine sÔlmes PFCACHE tehnoloogia abil

Üheks hostinguteenuse osutaja eesmĂ€rkidest on saavutada olemasoleva riistvara maksimaalne kasutamine, et pakkuda lĂ”ppkasutajatele kvaliteetset teenust. LĂ”ppserverite ressursid on alati piiratud, kuid paigutatud klienditeenuste arv, meie puhul VPS-id, vĂ”ib oluliselt erineda. Kuidas jĂ”uda kuusele ja sĂŒĂŒa burgerit, loe edasi.

VPS-ide tihedam paigutamine node'ile nii, et kliendid seda peaaegu ei tunneks, aitab tÔsta kÔigi hostinguteenuse osutajate majanduslikke nÀitajaid. Loomulikult ei tohiks node praguneda, kui sinna on mahutatud liiga palju konteinerite, ja iga koormuse tÔus on kohe tunda kÔigile klientidele.

C. palju VPS-e saab paigutada ĂŒhele node'ile, sĂ”ltub paljuski mitmest tegurist, sealhulgas:

1. Node'i riistvara omadused
2. VPS-i suurus
3. VPS-i koormuse iseloom
4. Tarkvaratehnoloogiad, mis aitavad optimeerida tihedust

Antud juhul jagame kogemusi Pfcache tehnoloogia kasutamisest Virtuozzo.
Kasutame 6. haru, kuid kÔik öeldud kehtib ka 7. versiooni kohta.

Pfcache – Virtuozzo mehhanism, mis aitab dedupktsioneerida IOPS ja RAMi konteinerites, eraldades samad failid konteinerites eraldi jagatud alasse.

Tegelikult koosneb see jÀrgmistest:
1. SĂŒdamikust
2. Kasutajaruumi demonist
3. Kasutajaruumi utiliidist

SÔlme poolt eraldame terve jaotuse, kus luuakse failid, mida kÔik VPS-id sÔlmes otse kasutavad. TÀnu sellele jaotusele monteeritakse plook-ise seadme plook. SeejÀrel, konteineri kÀivitamisel, saab ta viite sellele jaotusele:

[root@pcs13 ~]# cat /proc/mounts
...
/dev/ploop62124p1 /vz/pfcache ext4 rw,relatime,barrier=1,data=ordered,balloon_ino=12 0 0
...
/dev/ploop22927p1 /vz/root/418 ext4 rw,relatime,barrier=1,data=ordered,balloon_ino=12,pfcache_csum,pfcache=/vz/pfcache 0 0
/dev/ploop29642p1 /vz/root/264 ext4 rw,relatime,barrier=1,data=ordered,balloon_ino=12,pfcache_csum,pfcache=/vz/pfcache 0 0
...

Siin on umbkaudne statistika failide arvu kohta ĂŒhel meie sĂ”lmedest:

[root@pcs13 ~]# find /vz/pfcache -type f | wc -l
45851
[root@pcs13 ~]# du -sck -h /vz/pfcache
2.4G    /vz/pfcache
2.4G    kokku

Pfcache tööpÔhimÔte on jÀrgmine:
‱ Kasutajaruumi demon Pfcached kirjutab faili sha-1 rĂ€simi atribuudiks faili xattr. Faile töödeldakse mitte kĂ”iki, vaid ainult kaustades /usr, /bin, /usr/sbin, /sbin, /lib, /lib64.

‱ TĂ”enĂ€oliselt on nendes kataloogides olevad failid â€žĂŒhisfailid“ ja neid kasutavad mitmed konteinerid;

‱ Pfcached kogub perioodiliselt failide lugemise statistikat sĂŒdamikust, analĂŒĂŒsib seda ja lisab failid vahemĂ€llu, kui neid kasutatakse sageli;

‱ Nende kataloogide asukohad vĂ”ivad olla erinevad ning need seadistatakse konfiguratsioonifailides.

‱ Faili lugemise korral kontrollitakse, kas see sisaldab mÀÀratud hajuarvutust xattr. Kui jah, avatakse â€žĂŒhisfail“ konteinerifaili asemel. See asendamine toimub konteineri koodi jaoks mĂ€rkamatult ja peidetakse sĂŒdamikus;

‱ Faili kirjutamisel invaliditakse hajuarvutus. Nii avatakse jĂ€rgmine kord otse konteinerifail, mitte selle vahemĂ€lu.

Hoides lehekĂŒlje vahemĂ€lu ĂŒhiseid faile /vz/pfcache’s, saavutame selle vahemĂ€lu kokkuhoiu ning sÀÀstame ka IOPS-i. Selle asemel, et lugeda kĂŒmmet faili kettalt, loeme ĂŒhe, mis lĂ€heb kohe lehekĂŒlje vahemĂ€lu.

struct inode {
...
 struct file             *i_peer_file;
...
};
struct address_space {
...
 struct list_head        i_peer_list;
...
}

VMA nimekirja fail jÀÀb ĂŒhtseks (de-duplication mĂ€lu) ja lugemine kettalt toimub harvem (sÀÀstame iops). Meie â€žĂŒhing” asub SSD-l – lisavĂ”it kiirusest.

NÀide faili /bin/bash vahemÀlast:

[root@pcs13 ~]# ls -li /vz/root/2388/bin/bash
524650 -rwxr-xr-x 1 root root 1021112 Oct  7  2018 /vz/root/2388/bin/bash
[root@pcs13 ~]# pfcache dump /vz/root/2388 | grep 524650
8e3aa19fdc42e87659746f6dc8ea3af74ab30362 i:524650      g:1357611108  f:CP
[root@pcs13 ~]# sha1sum /vz/root/2388/bin/bash
8e3aa19fdc42e87659746f6dc8ea3af74ab30362  /vz/root/2388/bin/bash
[root@pcs13 /]# getfattr -ntrusted.pfcache /vz/root/2388/bin/bash
# file: vz/root/2388/bin/bash
trusted.pfcache="8e3aa19fdc42e87659746f6dc8ea3af74ab30362"
[root@pcs13 ~]# sha1sum /vz/pfcache/8e/3aa19fdc42e87659746f6dc8ea3af74ab30362
8e3aa19fdc42e87659746f6dc8ea3af74ab30362  /vz/pfcache/8e/3aa19fdc42e87659746f6dc8ea3af74ab30362

Arvutamise efektiivsus valmis skripti jÀrgi.

See skript kontrollib kÔiki konteineri node, arvutades iga konteineri vahemÀlus olevaid faile.

[root@pcs16 ~]# /pcs/distr/pfcache-examine.pl
...
Pfcache vahemÀlu kasutab 831 MB mÀlu
Pfcached failide kogukasutus konteinerites on 39837 MB mÀlu
Pfcache efektiivsus: 39006 MB

Seega sÀÀstame mÀlu ligikaudu 40 gigabaiti faile konteinerites, need laaditakse vahemÀlust.

Selle mehhanismi paremini toimimiseks tuleks nodides paigutada maksimaalselt "ĂŒhesuguseid" VPS-e. NĂ€iteks selliseid, millele kasutajal pole root-juurdepÀÀsu ja kus on seadistatud keskkond lahti vĂ”etud pildilt.

pfcache'i töötamist saab hÀÀlestada konfigureerimisfaili kaudu
/etc/vz/pfcache.conf

MINSIZE, MAXSIZE – faili minimaalne/maksimaalne suurus vahemĂ€luks
TIMEOUT – vahemaa ajavahemik vahemĂ€lu katsetamisbetween

TĂ€ieliku parameetrite nimekirjaga saab tutvuda lingi kaudu.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster