Sziasztok!
Freenas rendszerrel összeraktam egy storage szervert ami a a következőképpen néz ki:
HP DL380E G8
64GB DDR3 1333mhz memória
Xeon E5-2450L
LSI 9207-8i HBA
Qlogic QLE2562 FC
Merevlemezek:
3DB HGST 6TB 4Kn
2DB Seagate Enterprise capacity 6TB 512e
2DB Seagate EXOS 7E2 6TB 512e
A probléma a következő:
FC-n oda van adva egy ESxi host-nak egy zvol.
Ha szintetikus teszteket végzek rajta (RDM vagy VMFS-el) akkor teljesen rendben van a sebesség 820MB/s olvasás és írás (Q8 1MiB) Atto diskmark-al úgyszintén rendben vagyunk. [benchmarkok]
De ha elkezdek másolni rá fájlt egy ssd-ről akkor elindulunk szép nagy sebességgel majd lecsökkenünk folyamat 50-80MB/s közé de van, hogy ez alá is lemegy, szerintem többet kéne tudnia.
Nincsen SLOG/L2ARC beállítva most még csak szeretném ezek nélkül kipróbálni, hogy mit produkál.
Próbáltam már sync=disabled -el azzal nagyon halványan növekedett csak.
Valahogy ezt a sebességet kevésnek érzem ennyi merevlemeznél.
Köszönöm a segítséget
Hozzászólások
Az SSD fizikailag a gépben van amiről másolsz? A pool hogyan van szervezve amin a zvol van?
Próbáld ki a benchmark-ot nagyobb mérettel is, mondjuk 32GB-val, hogy akkor mit mond.
Egy, Egyből Kettő, Kettő meg Egy. Ez minden mérték alapja, minden élet csirája, számok, nevek építőköve.
Igen az ssd az esxi hostban van benne és egy virtuális gépnek van odaadva ahogy a zvol is RDM-el.
32GB-al
BIOSban SATA mód legyen AHCI ha nem az és próbáld meg úgy is.
AHCI-n van
Én azt mondanám lehet már kéne neki az a read cache, l2arc buff hogy azt is hozza.Annak ha jól tudom az lenne a szerepe hogy a kilens általi limitációkon dobjon. Mondjuk zfs nagy fileokkal sokaknak van gondja Linuxon az is gond, ott nem teljesít alapból csücskösen sajnos.
Próbáld meg kikapcsolni a primary cache-t, zfs set primarycache=none volname.
Hát elég érdekes eredmények vannak.
Kinyomtam
Ezek a tesztek semennyire sem relevánsak a rendszer teljesítményét tekintve. Mind 1 GB-os teszt-mérettel készült, ami úgy a host, mint a NAS oldalán bőven memóriából megy, így nem mutat kb. semmit. Azaz de, látod, hogy a 8Gb-es FC csatolód tudja amit ígért a két host között...
Olyan teszteket futtass, ahol a teszt-méret a két gép közül a több memóriával rendelkezőnek a memóriaméret kétszeresen-négyszerese. Tehát ha az ESXi 64GB, a NAS 32 GB, akkor a 64GBx2x/x4, 128GB vagy 256GB legyen a teszt éret. Az mutatja meg a diszk-alrendszer valódi teljesítményét. Ráadásul ebből a random IO lesz az érdekes, ha VM-eket akarsz futtatni, függetlenül a virtuális diszk méretétől.
Írd meg, milyen szervezésben van ez a 7 db 6 TB-os diszk. Tippre RaidZ2, ami IOPS-ben egyetlen HDD teljesítményét hozza (ami nem-SSD diszk esetén, random műveleteknél 100-200 IOPS), és igazából alkalmatlan VM diszkek tárolására, VM-ek futtatására, hiába kötötted be gyors FC-n a host-ot. Ezt mutatja a 0.44 MB/s Q1T1 mérés, ami reális érték.
Amennyiben RAID10 jellegű (2-way mirror VDEV-ek egy pool-ban) 6 diszkből, akkor már háromszoros lesz az IOPS, amivel kb. 3 db VM-et futtathatsz olyan minőségben, mintha local HDD-ről futnának.
Az L2ARC vagy az SLOG bevezetése ezeken a terheléseken mit sem segít, azok nem ilyen feladatok "gyorsítására" alkalmasak.
Én úgy variálnám át, hogy a 6TB-os HDD-kből lévő RaidZ2 pool legyen a VM-ek adat diszkjeinek fenntartva (ha nem DB vagy hasonló a terhelés, hanem mondjuk sima file share), és csinálnék egy RAID1 vagy RAID10 pool-t 2 vagy 4 db (vagy több) SSD-ből VM boot/rendszer diszkeknek.
Raidz2-ben vannak és nem VM futtatásra használnám őket egyáltalán csakis adatok tárolására és az onnan való elérésére a vmeken keresztül
Nemí derült ki pontosan a használat, ezért irta GGALLO a válaszát, kitűnően összefoglalva a lényeget, már már olyan jól mintha én írtam volna :-)
Én inkább fio-t használok (van windowsra is) , nálam is 100 iops a random, (400 kB/sec) egy HDD lemez ZFS alatt:
#fio --name=teszt_1 --filename=./testfile1 --size=100M --bs=4k --iodepth=1 --rw=randwrite --randrepeat=1 --sync=1 --fsync=1 |grep WRITE
WRITE: bw=432KiB/s (442kB/s), 432KiB/s-432KiB/s (442kB/s-442kB/s), io=100MiB (105MB), run=237268-237268msec
Nagy fájlok másolásakor ha elfogynak a pufferek, akkor kb. annyi a sebesség amit tapasztalsz.
Egy gyors mérés 6 db wd red , raidz2, nincs ssd - freeNAS,
windows alól gigabites háló:
SAMBA share:
PS R:\> fio --name=ssdtest --size=10G --bs=256k --iodepth=16 --rw=read
fio: this platform does not support process shared mutexes, forcing use of threads. Use the 'thread' option to get rid of this warning.
ssdtest: (g=0): rw=read, bs=(R) 256KiB-256KiB, (W) 256KiB-256KiB, (T) 256KiB-256KiB, ioengine=windowsaio, iodepth=16
fio-3.13
Starting 1 thread
ssdtest: Laying out IO file (1 file / 10240MiB)
Jobs: 1 (f=0): [f(1)][100.0%][r=67.9MiB/s][r=271 IOPS][eta 00m:00s]
ssdtest: (groupid=0, jobs=1): err= 0: pid=9112: Tue Mar 9 11:29:30 2021
read: IOPS=269, BW=67.5MiB/s (70.8MB/s)(10.0GiB/151742msec)
slat (usec): min=15, max=34390, avg=39.68, stdev=229.86
clat (msec): min=5, max=338, avg=59.22, stdev= 6.92
lat (msec): min=5, max=338, avg=59.26, stdev= 6.93
clat percentiles (msec):
| 1.00th=[ 57], 5.00th=[ 58], 10.00th=[ 58], 20.00th=[ 58],
| 30.00th=[ 58], 40.00th=[ 58], 50.00th=[ 58], 60.00th=[ 58],
| 70.00th=[ 59], 80.00th=[ 60], 90.00th=[ 63], 95.00th=[ 67],
| 99.00th=[ 82], 99.50th=[ 84], 99.90th=[ 92], 99.95th=[ 124],
| 99.99th=[ 334]
bw ( KiB/s): min= 762, max=71394, per=79.71%, avg=55081.33, stdev=27987.55, samples=201
iops : min= 2, max= 278, avg=214.50, stdev=109.23, samples=201
lat (msec) : 10=0.01%, 20=0.01%, 50=0.09%, 100=99.81%, 250=0.05%
lat (msec) : 500=0.04%
cpu : usr=0.00%, sys=0.66%, ctx=0, majf=0, minf=0
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=99.9%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.1%, 16=0.1%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=40960,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=16
Run status group 0 (all jobs):
READ: bw=67.5MiB/s (70.8MB/s), 67.5MiB/s-67.5MiB/s (70.8MB/s-70.8MB/s), io=10.0GiB (10.7GB), run=151742-151742msec
Milyen adatok? Kis vagy nagy állományok, kevés vagy sok darab? Egy-egy állományt szekvenciálisan olvasol vagy állományon belül random műveletek vannak?
Milyen jellegű eléréssel? Egymás után az állományokatbatch feldolgozás jelleggel, vagy össze-vissza mint egy hálózati file share?
Mennyi VM-ről egyszerre? Egyetlen VM mögé van téve bulk tárolónak vagy a ZFS pool-on több dataset van, amin párhuzamosan dolgoznak VM-ek? Vagy valami cluster FS-en keresztül egyszerre haszhálja több VM?