Konténersűrűség növelése egy csomóponton PFCACHE technológia segítségével

Konténersűrűség növelése egy csomóponton PFCACHE technológia segítségével

A tárhelyszolgáltató egyik célja a meglévő berendezések maximális kihasználása a végfelhasználók magas színvonalú kiszolgálása érdekében. A végszerverek erőforrásai mindig korlátozottak, de a hosztolt kliens szolgáltatások száma, és esetünkben VPS-ről beszélünk, jelentősen eltérhet. Olvassa el, hogyan mászhat fel a fára, és hogyan egyen egy hamburgert a vágás alatt.

Ha a VPS-t úgy tömörítik egy csomóponton, hogy az ügyfelek egyáltalán ne érezzék azt, ez nagyban hozzájárul bármely tárhelyszolgáltató gazdasági teljesítményének növeléséhez. Természetesen egy csomópont nem repedhet ki a varratoknál, ha tele van konténerekkel, és a terhelés megugrását minden ügyfél azonnal érezheti.

Az, hogy hány VPS tárolható egy csomóponton, számos tényezőtől függ, például:

1. Magának a csomópontnak a hardverének jellemzői
2. VPS méret
3. A VPS terhelésének jellege
4. A sűrűség optimalizálását segítő szoftvertechnológiák

Ebben az esetben megosztjuk tapasztalatainkat a Pfcache technológia használatáról a Virtuozzo számára.
Mi a 6. ágat használjuk, de a 7. ágra is igaz minden, ami elmondott.

Pfcache – Virtuozzo mechanizmus, amely segít deduplikálni az IOPS-t és a RAM-ot a tárolókban, és a konténerekben lévő azonos fájlokat külön közös területhez rendeli.

Valójában a következőkből áll:
1. Kernel kód
2. Felhasználói tér démon
3. Felhasználói tér segédprogramok

A csomópont oldalon egy teljes szakaszt osztunk ki, amelyben a fájlok létrejönnek, amelyeket a csomóponton lévő összes VPS közvetlenül használni fog. Ebben a szakaszban egy blokk-blokkoló eszköz van felszerelve. Ezután, amikor a tároló elindul, hivatkozást kap erre a szakaszra:

[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
...

Íme hozzávetőleges statisztika az egyik csomópontunkon található fájlok számáról:

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

A pfcache elve a következő:
• A Pfcached user-space démon a fájl sha-1 hash-jét a fájl xattr attribútumába írja. Nem minden fájl kerül feldolgozásra, csak a /usr, /bin, /usr/sbin, /sbin, /lib, /lib64 könyvtárban

• A legvalószínűbb, hogy az ezekben a könyvtárakban lévő fájlok „megosztva” lesznek, és több konténer fogja használni;

• A Pfcached időszakonként statisztikát gyűjt a fájlok kernelből való beolvasásáról, elemzi azokat, és ha gyakran használják, fájlokat ad hozzá a gyorsítótárhoz;

• Ezek a könyvtárak eltérőek lehetnek, és konfigurációs fájlokban vannak konfigurálva.

• Egy fájl beolvasásakor a rendszer ellenőrzi, hogy az tartalmazza-e a megadott hash-t az xattr kiterjesztett attribútumokban. Ha tartalmazza, akkor a konténerfájl helyett az „általános” fájl nyílik meg. Ez a helyettesítés a konténer kódja által észrevétlenül történik, és el van rejtve a kernelben;

• Fájlba írásakor a hash érvénytelenné válik. Így a következő megnyitáskor maga a tárolófájl nyílik meg, nem pedig a gyorsítótár.

Azzal, hogy a /vz/pfcache megosztott fájljait az oldal gyorsítótárában tartjuk, megtakarítást érünk el magában ebben a gyorsítótárban, valamint megtakarítást az IOPS-ben.Tíz fájl lemezről való kiolvasása helyett egyet olvasunk, ami azonnal az oldal gyorsítótárába kerül.

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

A fájl VMA-listája egyetlen marad (deduplikáljuk a memóriát), és ritkábban kerül kiolvasásra a lemezről (iops mentése). Közös alapunk SSD-n található, ami további sebességnövekedést jelent.

Példa a /bin/bash fájl gyorsítótárazására:

[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

Kiszámoljuk a felhasználás hatékonyságát kész forgatókönyv.

Ez a szkript végigmegy a csomópont összes tárolóján, és kiszámítja az egyes tárolók gyorsítótárazott fájljait.

[root@pcs16 ~]# /pcs/distr/pfcache-examine.pl
...
Pfcache cache uses 831 MB of memory
Total use of pfcached files in containers is 39837 MB of memory
Pfcache effectiveness: 39006 MB

Így a memóriából körülbelül 40 gigabájtnyi fájlt mentünk el konténerekbe, amelyek a gyorsítótárból töltődnek be.

Ahhoz, hogy ez a mechanizmus még jobban működjön, a „legazonosabb” VPS-t kell elhelyezni a csomóponton. Például azok, amelyekhez a felhasználónak nincs root hozzáférése, és amelyeken a telepített lemezkép környezete konfigurálva van.

A pfcache-t a konfigurációs fájlon keresztül hangolhatja
/etc/vz/pfcache.conf

MINSIZE, MAXSIZE – minimális/maximális fájlméret a gyorsítótárazáshoz
TIMEOUT – időtúllépés a gyorsítótárazási kísérletek között

Megtekintheti a paraméterek teljes listáját по ссылке.

Forrás: will.com

Hozzászólás