Výkon NFS nad Cephem

Výkon NFS nad Cephem
« kdy: 26. 08. 2019, 18:03:23 »
Ahoj,

testuju minimalni redundantni reseni hyperconverged reseni PVE6 + Ceph. Presne je to popsane v https://forum.proxmox.com/threads/nfs-vm-over-ceph.57227/ . Zajimalo by me, zda ma nekdo pristup k nejakemu mensimu clusteru a mohl by mi udelat pro srovnani ty fio testy - cekal jsem mensi vykon nez u DRBD, ale ne az tak hrozny, ze nfs bude defacto nepouzitelne.

Kdyby byly nejake pripominky, tak sem s nimi. Ten test je delany proto, aby se odhadlo, zda vubec bude mit smysl kupovat obdobny HW (levnejsi starsi HW ve vice kusech) pro takovy cluster v 3/2 setupu a 3-4 node s mensim poctem disku (max 2-4 per node).

Diky
« Poslední změna: 26. 08. 2019, 20:49:46 od Petr Krčmář »


Jose D

  • *****
  • 889
    • Zobrazit profil
Re:Vykon NFS nad cephem
« Odpověď #1 kdy: 26. 08. 2019, 18:29:11 »
bude ti k něčemu když to sjedu přímo na libvirt+qemu/kvm?
S ceph jsem si chtěl stejně pohrát, jen to nebude hned, zrovna pracuju na nějaký automation deploymentu VM..

Jinak mých 50c: proč tam dáváš virtuály? Když na to stejně máš dedikované železo? Kvůli orchestraci?
Já měl dojem že NFS se vždycky strká na železo, když to jde, protože na té spoustě syscallů je znát overhead VM?

Re:Vykon NFS nad cephem
« Odpověď #2 kdy: 27. 08. 2019, 00:47:13 »
bude ti k něčemu když to sjedu přímo na libvirt+qemu/kvm?
S ceph jsem si chtěl stejně pohrát, jen to nebude hned, zrovna pracuju na nějaký automation deploymentu VM..

Jinak mých 50c: proč tam dáváš virtuály? Když na to stejně máš dedikované železo? Kvůli orchestraci?
Já měl dojem že NFS se vždycky strká na železo, když to jde, protože na té spoustě syscallů je znát overhead VM?

Nebude vadit, kdyz to bude pokud mozno proti Nautilusu s bluestore.
I nfs/samba se virtualizuje...teoreticky bych mohl udelat primo ceph/nfs bez virtualizace, ale v pripade tohoto testu a predpokladane podobe clusteru nebude oddeleny ceph a hypervizor, to uz by se ohnulo drbd pro proxmox. Zkousim to proto, ze bych se rad uz zbavil drbd a do datacentra by se mi hodil lepe skalovatelny system pro VM obrazy pro nove clustery.

Re:Výkon NFS nad Cephem
« Odpověď #3 kdy: 27. 08. 2019, 08:37:11 »
tento nebo příští týden budu přesně takový cluster instalovat. Zatim jen v každém stroji 2x 4tb sata disk, takže rychlost nebude nic moc, ale pro představu bych to asi mohl vyzkoušet. Pravděpodobně na tom budu zkoušet cephfs, který ale bude součástí těch proxmox strojů. Ten je mnohem rychlejší než nfs.
Ty disky budu měnit pak za 4tb nvme disky ale až později protože nevim kde přijdou.

A nebo pak ještě místo sdíleného fs na těch proxmox strojích, kdyby se ti z nějakého důvodu nelíbil cephfs, tak tam zkusit narvat s3 od cephu radosgw

Re:Výkon NFS nad Cephem
« Odpověď #4 kdy: 27. 08. 2019, 11:35:08 »
Super, snad se zde objevi tedy par porovnani.

Nyni jsem zkusil ten cephfs jako kernel mount. Vykonem se to blizi vykonu rbd, coz je prijemne. Hrube srovnani testu:

drbd 100%
nfs over ceph: 10%
cephfs (kernel mount): 40-50%


Re:Výkon NFS nad Cephem
« Odpověď #5 kdy: 27. 08. 2019, 13:24:56 »
je dost možné, že ten cephfs půjde vyladit. On má spoustu možností na nastavování různých cachí atd.
Sám jsem zvědav jak to bude fungovat, jelikož doporučená konfigurace od cephu je mít ty servery jednotlivě (osd mon mds)

Re:Výkon NFS nad Cephem
« Odpověď #6 kdy: 29. 08. 2019, 19:09:42 »
Nejsem si uplne jistej, ale do jiste miry mi prijde ze srovnavate jablka s hruskama, nebo alespon co se toho testovani tyce.

Muzete jsem hodit nejakej "base setup"?

2core, 2gb ram, Cento 7 na KVM, virtio net+drive?
nfs v3 default mount options
swappiness, dirty pages, ethtool -i eth0
ssd/hdd? jaky?

fio proc ne, ale uprime porovnavam radsi i klasicky kopirovani 1,10 a 100GB souboru

Je to hodne o nastaveni systemu a vime vsichni, ze default neni rozhodne optimalni a porovnavat dve default konfigurace asi neni uplne koser. a jak se tu pise, je to na LVM? je na tom luks bo ne? jak jsou nastaveny cache na jednotlivejch layerech? Kdyz byste mel treba sw raid 10 na baremetalu pres 8 ssd, tak default a tweaked rozdil v r/w je klidne i 3x tolik. Otazka pak je prave networking.

Pro referenci prikladam:
https://medium.com/walmartlabs/building-object-store-storing-images-in-cassandra-walmart-scale-a6b9c02af593

PS: ceph je object storage ne file storage, drbd je low level block replika (nevi s cim pracuje), dokazu si predstavit ze NFS nad DRBD je rychlejsi, bo to cte jen z jednoho zarizeni, nikoliv z repliky/clusteru (coz je asi ten rozdil v testech).

Rad se priucim.



Re:Výkon NFS nad Cephem
« Odpověď #7 kdy: 30. 08. 2019, 09:40:23 »
ceph je object storage. Nicméně tazatel má ceph jako object storage pro VM a v tom VM má až řešený nfs
Já jsem zmiňoval cephfs....

Tazatel se snaží zjistit v čem může být háček, že to má pomalé, když nfs provozuje až ve virtuálu, kde ten virtuál má disk na rbd imagi.

Re:Výkon NFS nad Cephem
« Odpověď #8 kdy: 30. 08. 2019, 14:17:41 »
Muzete jsem hodit nejakej "base setup"?

Base setup pro VM na Proxmoxu je: 2x cpu (host), 4GB RAM, 10GB disk, Debian 10, nfs4.2, vse v defaultu, zadne security upravy. Co je tam za HW, je v tom linku na Proxmox foru.

Umyslne je to vse v defaultu, protoze ladenim konfigurace se da nekam zvednout, ale pokud uz default ukaze prilisny propad, tak to ladeni uz vetsinou nezachrani.


Re:Výkon NFS nad Cephem
« Odpověď #9 kdy: 30. 08. 2019, 16:26:30 »
Prihodim sem tu konfiguraci z toho proxmox fora cos sem pastnul v dotazu.

Kód: [Vybrat]
HW: 2x HP DL380p G8, every node has 2x E5-2690 2.9GHz, 96GB RAM, SmartArray P430, 1x Intel S4610 2TB, 1x Kingston DC500m, 10Gbps optical. PVE is installed on dedicated ssds. Ceph OSDs are as raid0 no P430 - 1x ssd per bluestore OSD. So 4x OSDs total on 2 nodes 2/2 replica.

Now, some ceph fio tests from VM (Debian10 defaults), all VMs on same host:
1x VM: read 28k, write 10k, readwrite 14k/5k iops <-- thats acceptalbe
1x VM (nfs server) + 1x VM (nfs client): read 11.1k, write 0.8k, readwrite 1.8k/0.6k iops (from client) <-- this looks very bad

For example drbd (VMs as raw files):
1x VM: read 45k, write 21k, readwrite 28/10 <-- thats semiexpected
1x VM (nfs server) + 1x VM (nfs client): read 31k, write 4.8k, readwrite 11.6/3.8k (from client) <-- thats acceptable

No snad sem nenapisu nejakou blbost tedka, ale "zkus to po jednom" s tim fio.

Muj test plan by byl asi nasledujici (abych mel co porovnavat):

Jakej mas r/w kdyz pustis primo na hostu, na ten disk kde mas ty VM image bo jestli to mas pres LVM? Ciste jako kdyz bys to bezel na notesu kdyz si testujes novej disk treba.

Jakej mas r/w kdyz pustis to samy, ale na guestech na root partition? Zkus to na obou.

Jakej mas r/w kdyz pustits fio na guestech, ale do te primountene partition (resp. tam kde mas ten nfs export / data)?

Zkus udelat nejakej 4+gb file a skopci ho pres rsync z "guest server" na "guest client", zkus to samy i pres scp at vidis pripadny rozdil (rsync -e "ssh ...), vynech kompresi pro rsync i pro ssh.

Mountni si to nfsko / ceph a zkus skopcit ten 4gb file jeste jednou. Jestli tam budes mit fakt znatelny rozdily, je jasny, ze to je konfigurace nfs/ceph popr. sysctl net, dirty pages ....


Proc tohle pisu? Kdyz nainstalujes defaultni apache2 a defaultni nginx, tak nginx je v defaultu nasobne rychlejsi. Neboli apache je na houby, no  je protoze v defaultu pouziva worker a ne event. Kdyz to zmenis, je to srovnatelne s nginx.

Dalsi vec, ktera se muze dost podepsat na iopsech je nastaveni v kvm/qemu. Jedine virtio a pak si muzes pohrat s cachovanim/zapisem v qemu, dela to opravdu hodne. Treba ty 4k sektory co tam mas se mi moc nelibi, delalo mi to fakt bordel, ale ve vm byly widle. Dalsi veci muze byt sitovka pro vm (zase virtio).

Jako referenci prikladam:

https://www.slashroot.in/how-do-linux-nfs-performance-tuning-and-optimization
https://www.cyberciti.biz/faq/linux-unix-tuning-nfs-server-client-performance/
https://cromwell-intl.com/open-source/performance-tuning/nfs.html


A jeste jedna vec, co by te mohla potrapit:
https://cromwell-intl.com/open-source/performance-tuning/disks.html

Re:Výkon NFS nad Cephem
« Odpověď #10 kdy: 30. 08. 2019, 17:17:56 »
Jakej mas r/w kdyz pustis to samy, ale na guestech na root partition? Zkus to na obou.

Jakej mas r/w kdyz pustits fio na guestech, ale do te primountene partition (resp. tam kde mas ten nfs export / data)?

Tohle mas primo v tom, co jsi prihodil z toho proxmox fora. Prvni radek - root ceph disk v guestu, druhy radek - pripojeny nfs disk v guestu.

Problem tech optimalizaci (viz ty linky) je ten, ze na ne neni v prvni fazi cas, navic, nemaji vliv na vysledek, protoze ruzne testy pouzivaji presne tu samou sadu parametru - tomto pripade se nemeni sluzba/os, ale meni se jen storage pod tim vsim.

Co se ti nelibi na tech 4k?

Testy s kopirovanim si zkusim pozdeji, tenhle tyden na to uz nesahnu.

Re:Výkon NFS nad Cephem
« Odpověď #11 kdy: 30. 08. 2019, 17:43:20 »
Chapu, klasicky problem s casem :)

Co se tech sektoru tyce: https://unix.stackexchange.com/questions/497063/partitioning-and-formatting-a-4k-emulated-512e-hdd


Hral jsem si s tim samym HP DL380 uz si nepamatuju serii. Prvni co jsem udelal, ze jsem vykopnul ten HW raid a udeal si vlastni mdadm RAID1+0 pres 8 SSD disku. Coz nebyl uplne dobrej napad. Protoze to melo bejt RAID0+1, dochazelo k rozjizdeni parity.

Dalsi vec co jsem resil, byly prave sektory, byl tam cca ~20% rozdil, podle toho jak sis to "nalajnoval". SSDcka nebyly enterprise grade a vim, ze tam byl nejakej bug ve firmwaru. Pak jsem testoval rozdily v zapisech LVM vs qcow2. U linuxu defakto zadny zasadni rozdil nebo minimalni, ale u Windowsu to bylo znatelny az moc. Ta nejvetsi sranda prisla s "cache, io, discard, drive" modama v qemu, to udelalo nejvic. Pak ty srandy s sysctl hodnotama a samo s virtio sitovou kartou. No a nakonec jak spravne nastavit trim, protoze qcow2 s tim uplne happy nebyl a windows server ve vmku taky ne. Nakonec to litalo jak sileny.

Zkus mmj. do fstabu kde mas ten nfs pridat noatime pokud mozno.

Re:Výkon NFS nad Cephem
« Odpověď #12 kdy: 31. 08. 2019, 12:15:51 »
Ono to je docela logické ne? Z principu se každá write operace musí minimálně 2x potvrdit a následně ještě potřetí dokopírovat. Při čtení se také ověřuje integrita dat a data jsou rozšmelcovaná na malé kousky napříč celým clusterem.

Výkon tedy jde cca 2-3x dolu, latence disků je kritická - tedy SSD disky jsou asi minimální konfigurace.
Rotující disky jsou vhodné na archivaci, nikoliv na běh OS.
Nicméně nic horšího se pak už neděje, ztratit data je téměř nemožné, přidat kapacitu otázkou sekund. CEPH si vše hlídá sám navíc počet replik lze pro klid v duši dynamicky měnit za chodu.

Je to pomalejší, to je prostě daň za tu flexibilitu, kterou vám asi nic jiného ani nenabídne. Nebo to bude stát hodně na 5M Kč a pomalé to bude podobně.
Výkon stoupá s počtem SSD disků a rychlou sítí, ale nikdy to nebude nativní rychlost to je jasné...
Mě to stačí, kritické věci ukládám tam, ostatní do normálního pole nebo prostě na jeden disk se zálohou (pokud je mi jedno, že to nebude mít aktuální data).
„Řemeslo se naučí každý. Umění nikdo.“
„Jednoduchost je nejvyšší úroveň sofistikovanosti.“
- Leonardo Da Vinci

Re:Výkon NFS nad Cephem
« Odpověď #13 kdy: 19. 09. 2019, 11:20:29 »
Tak jsem se pustil do toho co jsi chtěl. Příkazy beru tak jak jsi je dal na proxmox forum
1vm
Kód: [Vybrat]
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randwrite

Run status group 0 (all jobs):
  WRITE: bw=75.9MiB/s (79.6MB/s), 75.9MiB/s-75.9MiB/s (79.6MB/s-79.6MB/s), io=4096MiB (4295MB), run=53979-53979msec

Disk stats (read/write):
  vda: ios=0/1047834, merge=0/23336, ticks=0/3065952, in_queue=597436, util=87.32%

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randread

Run status group 0 (all jobs):
   READ: bw=278MiB/s (292MB/s), 278MiB/s-278MiB/s (292MB/s-292MB/s), io=4096MiB (4295MB), run=14733-14733msec

Disk stats (read/write):
  vda: ios=1044944/3, merge=0/1, ticks=770811/7, in_queue=832, util=99.57%

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75

Run status group 0 (all jobs):
   READ: bw=149MiB/s (156MB/s), 149MiB/s-149MiB/s (156MB/s-156MB/s), io=3070MiB (3219MB), run=20582-20582msec
  WRITE: bw=49.8MiB/s (52.3MB/s), 49.8MiB/s-49.8MiB/s (52.3MB/s-52.3MB/s), io=1026MiB (1076MB), run=20582-20582msec

Disk stats (read/write):
  vda: ios=781215/261079, merge=0/4, ticks=555460/588911, in_queue=130816, util=92.45%

 a 2VM přes nfs (tady moje trpělivost nevydržela a velikost souborů jsem rapidně zmenšil a stejně jsem u toho zestárl)
Kód: [Vybrat]
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name test --filename=test --bs=4k --iodepth=64 --size=512M --readwrite=randwrite

Run status group 0 (all jobs):
  WRITE: bw=5269KiB/s (5396kB/s), 5269KiB/s-5269KiB/s (5396kB/s-5396kB/s), io=512MiB (537MB), run=99503-99503msec

čtení jakš takš ale stejně nic moc
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name test --filename=test --bs=4k --iodepth=64 --size=2G --readwrite=randread

Run status group 0 (all jobs):
   READ: bw=120MiB/s (126MB/s), 120MiB/s-120MiB/s (126MB/s-126MB/s), io=2048MiB (2147MB), run=17004-17004msec

Run status group 0 (all jobs):
   READ: bw=35.2MiB/s (36.9MB/s), 35.2MiB/s-35.2MiB/s (36.9MB/s-36.9MB/s), io=768MiB (805MB), run=21790-21790msec
  WRITE: bw=11.8MiB/s (12.3MB/s), 11.8MiB/s-11.8MiB/s (12.3MB/s-12.3MB/s), io=256MiB (269MB), run=21790-21790msec


a ještě přikládám výsledky cephfs který je připojený na 2VM
příkazy teď pouze zkopírovány a puštěny
Kód: [Vybrat]
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randwrite

Run status group 0 (all jobs):
WRITE: bw=76.5MiB/s (80.2MB/s), 76.5MiB/s-76.5MiB/s (80.2MB/s-80.2MB/s), io=4096MiB (4295MB), run=53532-53532msec

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randread

Run status group 0 (all jobs):
   READ: bw=196MiB/s (205MB/s), 196MiB/s-196MiB/s (205MB/s-205MB/s), io=4096MiB (4295MB), run=20942-20942msec

Run status group 0 (all jobs):
   READ: bw=110MiB/s (115MB/s), 110MiB/s-110MiB/s (115MB/s-115MB/s), io=3070MiB (3219MB), run=27951-27951msec
  WRITE: bw=36.7MiB/s (38.5MB/s), 36.7MiB/s-36.7MiB/s (38.5MB/s-38.5MB/s), io=1026MiB (1076MB), run=27951-27951msec

disky jsou SAMSUNG MZ7LH3T8HMLT-00005

Re:Výkon NFS nad Cephem
« Odpověď #14 kdy: 19. 09. 2019, 12:43:18 »
Dik za testy. Nemas je ulozene? Zajimaly by me vice ty read/write kiops, nez bandwith, ale uz toho BW je videt, ze ten nfs byl fakt smutny. Aspon, ze to uz dohnal cephfs.