
Ă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.
â 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 .
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 .
Allikas: habr.com
