Výkonné QNAP NAS servery nabízí všestranné použití a různorodé možnosti nastavení RAIDových polí a mnozí z uživatelů dochází k otázce, jak otestovat interní rychlosti RAID svazků v QNAP NAS.
Na začátek je vhodné připomenout, že test výkonů jednotlivých disků (klasické 3,5“ SATA, SAS nebo 2,5“ SSD disky, M.2 SATA či M.2 NVMe moduly) lze spustit přímo v QTS systému. Konkrétně v části „Úložiště s snímky“ -> Disky/VJBOD -> tlačítko „Test výkonu“, kde můžete spustit test výkonu v rámci nabídky Postupné čtení (Sequential read) a také Čtení IOPs (IOPs read result).
Pokud vás ale zajímá, jak je na tom výkonově váš RAIDový svazek, pak musíme sáhnout na příkazovou řádku.
- Nejprve povolíme SSH přístup k NAS (až dokončíte testování, nezapomeňte SSH přístup kvůli bezpečnosti zase zrušit).
V QTS klikneme na ikonu Ovládací panely a v části Síťové a souborové služby pak zvolíme Telnet / SSH. Zde povolíme SSH spojení, nastavíme port na 2222 a klikneme na tlačítko „Použít“.
- Spustíme příkazovou řádku na vašem počítači a pro spojení použijeme ssh příkaz:
ssh admin@IP_NAS -p 2222
Pokud tedy má vaše NAS IP např. 192.168.0.10, pak příkaz bude v praktické formě:ssh Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript. -p 2222
- Pro zajímavost, pokud již používáte QuTS hero na QNAP NAS, pak jako uvítací zprávu uvidíte níže uvedené menu, nicméně, zde vložíme písmeno „Q“ a potvrdíme návrat do klasické příkazové řádky (ve standardním QTS systému toto menu není k dispozici).
+--------------------------------------------------------------------------+
| Console Management - Main menu |
| |
| 1: Show network settings |
| 2: System event logs |
| 3: Reset to factory default (password required) |
| 4: Activate/ deactivate a license |
| 5: App management |
| 6: Reboot in Rescue mode (w/o configured disk) |
| 7: Reboot in Maintenance Mode |
| Q: Quit (return to normal shell environment) |
+--------------------------------------------------------------------------+ - Ke spuštění testu propustnosti (čtení) RAID polí použijeme tento příkaz:
qcli_storage -t force=1
Výsledkem by pak měl být výpis s konkrétními hodnotami, viz tyto příklady:QNAP NAS TVS-1282T3 (QuTS hero)
fio test command for File system: /sbin/fio --filename=test_device/qcli_storage --direct=0 --rw=read --bs=1M --runtime=15 --name=test-read --ioengine=libaio --iodepth=32 --size=128m &>/tmp/qcli_storage.log
Start testing!
Performance test is finished 100.000%...
VolID SharedFolderName Pool Mapping_Name Mount_Path FS_Throughput
2 Web 1 zpool1/zfs2 /share/ZFS2_DATA 2.19 GB/s
3 Public 1 zpool1/zfs3 /share/ZFS3_DATA 5.43 GB/s
4 homes 1 zpool1/zfs18 /share/ZFS18_DATA 5.68 GB/s
5 Virtual 2 zpool2/zfs19 /share/ZFS19_DATA 1.37 GB/s
6 Data 3 zpool3/zfs20 /share/ZFS20_DATA 4.46 GB/s
7 Multimedia 3 zpool3/zfs21 /share/ZFS21_DATA 5.43 GB/s
(Poznámka: zpool1 -> 2x M.2 NVMe v RAID1, zpool2 -> 3x 2,5“ SSD v RAID0, zpool3 -> 8x SATA disky v RAID5. Vyšší hodnoty čtení jdou na vrub ZFS cache.)
QNAP NAS TS-871 (QTS 4.4.2)
fio test command for LV layer: /sbin/fio --filename=test_device --direct=0 --rw=read --bs=1M --runtime=15 --name=test-read --ioengine=libaio --iodepth=32 &>/tmp/qcli_storage.log
fio test command for File system: /sbin/fio --filename=test_device/qcli_storage --direct=0 --rw=read --bs=1M --runtime=15 --name=test-read --ioengine=libaio --iodepth=32 --size=128m &>/tmp/qcli_storage.log
Start testing!
Performance test is finished 100.000%...
VolID VolName Pool Mapping_Name Throughput Mount_Path FS_Throughput
1 DataVol1 288 /dev/mapper/cachedev1 798.48 MB/s /share/CACHEDEV1_DATA 1.09 GB/s - Dále, prakticky test zápisu na RAID pole spustíme v určité části, která se nachází v konkrétním svazku, tzn. použijeme příkaz:
cd /share/Multimedia
pro přístup do složky Multimedia (případně jiné složky, které máte situované na různých RAID polí) a nyní již můžeme spustit samotný příkaz testu:dd if=/dev/zero of=test.10G bs=1M count=10000
Opět by výsledkem měl být výpis s konkrétními hodnotami, viz tyto příklady:TVS-1282T3 (QuTS hero)
2x M.2 NVMe v RAID1 -> 10485760000 bytes (9.8GB) copied, 2.563685 seconds, 3.8GB/s
3x 2,5“ SSD v RAID0 -> 10485760000 bytes (9.8GB) copied, 2.709943 seconds, 3.6GB/s
8x SATA disky v RAID5 -> 10485760000 bytes (9.8GB) copied, 9.457306 seconds, 1.0GB/s
TVS-871 (QTS 4.4.2)
8x SATA disky v RAID5 -> 10485760000 bytes (9.8GB) copied, 11.589377 seconds, 862.9MB/s - Ke zjištění RAIDových IOPs rychlostí v rámci zápisu a čtení nám pak poslouží níže uvedené příkazy.
RAID IOPS zápis (pro random zápis můžete využít -rw=randwrite):fio -filename=fiotest -numjobs=8 -iodepth=64 -size=1G -bs=4K -rw=write -ramp_time=30s -runtime=1m -time_based -ioengine=libaio -group_reporting -name=test
RAID IOPS čtení:fio -filename=fiotest -numjobs=8 -iodepth=64 -size=1G -bs=4K -rw=read -ramp_time=30s -runtime=1m -time_based -ioengine=libaio -group_reporting -name=test
A opět by výsledkem měl být podrobný výpis s konkrétními hodnotami, viz tyto příklady:... (IOPs zápis)
Tedy v souhrnu:
fio-2.2.10
Starting 8 processes
test: Laying out IO file(s) (1 file(s) / 1024MB)
Jobs: 8 (f=8): [W(8)] [100.0% done] [0KB/757.6MB/0KB /s] [0/194K/0 iops] [eta 00m:00s]
test: (groupid=0, jobs=8): err= 0: pid=2972: Wed Jul 1 13:56:36 2020
write: io=44382MB, bw=757435KB/s, iops=189350, runt= 60001msec
slat (usec): min=6, max=110923, avg=38.74, stdev=205.65
clat (usec): min=1, max=109052, avg=2662.62, stdev=1824.74
lat (usec): min=11, max=109103, avg=2703.39, stdev=1839.79
clat percentiles (usec):
| 1.00th=[ 956], 5.00th=[ 1432], 10.00th=[ 1672], 20.00th=[ 1992],
| 30.00th=[ 2192], 40.00th=[ 2352], 50.00th=[ 2480], 60.00th=[ 2608],
| 70.00th=[ 2768], 80.00th=[ 3024], 90.00th=[ 3504], 95.00th=[ 4080],
| 99.00th=[ 7264], 99.50th=[10304], 99.90th=[20608], 99.95th=[31104],
| 99.99th=[68096]
bw (KB /s): min= 3, max=104784, per=12.38%, avg=93781.35, stdev=12786.61
lat (usec) : 2=0.01%, 4=0.01%, 20=0.01%, 50=0.01%, 100=0.01%
lat (usec) : 250=0.01%, 500=0.01%, 750=0.10%, 1000=1.12%
lat (msec) : 2=19.29%, 4=73.99%, 10=4.96%, 20=0.43%, 50=0.08%
lat (msec) : 100=0.02%, 250=0.01%
cpu : usr=5.54%, sys=73.81%, ctx=14793572, majf=0, minf=219
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=157.2%
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.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued : total=r=0/w=11361216/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
WRITE: io=44382MB, aggrb=757435KB/s, minb=757435KB/s, maxb=757435KB/s, mint=60001msec, maxt=60001msec
-----------------
... (IOPS čtení)
fio-2.2.10
Starting 8 processes
Jobs: 8 (f=8): [R(8)] [100.0% done] [2094MB/0KB/0KB /s] [536K/0/0 iops] [eta 00m:00s]
test: (groupid=0, jobs=8): err= 0: pid=20935: Wed Jul 1 14:12:30 2020
read : io=133542MB, bw=2225.7MB/s, iops=569761, runt= 60001msec
slat (usec): min=2, max=49467, avg=12.80, stdev=142.60
clat (usec): min=1, max=39390, avg=884.91, stdev=1231.09
lat (usec): min=6, max=39399, avg=897.80, stdev=1240.21
clat percentiles (usec):
| 1.00th=[ 572], 5.00th=[ 628], 10.00th=[ 644], 20.00th=[ 660],
| 30.00th=[ 676], 40.00th=[ 684], 50.00th=[ 692], 60.00th=[ 700],
| 70.00th=[ 716], 80.00th=[ 740], 90.00th=[ 828], 95.00th=[ 1384],
| 99.00th=[ 6816], 99.50th=[10816], 99.90th=[16064], 99.95th=[18816],
| 99.99th=[24704]
bw (KB /s): min= 3, max=365400, per=12.38%, avg=282248.34, stdev=40355.27
lat (usec) : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.01%, 50=0.01%
lat (usec) : 100=0.01%, 250=0.01%, 500=0.06%, 750=81.97%, 1000=11.49%
lat (msec) : 2=3.96%, 4=0.99%, 10=0.89%, 20=0.60%, 50=0.04%
cpu : usr=9.87%, sys=104.97%, ctx=456535, majf=0, minf=735
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=150.4%
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.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued : total=r=34186285/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: io=133542MB, aggrb=2225.7MB/s, minb=2225.7MB/s, maxb=2225.7MB/s, mint=60001msec, maxt=60001msecTVS-1282T3 (QuTS hero)
2x M.2 NVMe v RAID1 (sdílená složka: 128k bloky) -> iops zápis: 189350, iops čtení: 564068
3x 2,5“ SSD v RAID0 (sdílená složka: 128k bloky) -> iops zápis: 139661, iops čtení: 569761
(pro VM na SSD poli to vypadá, že 4k bloky by byly lepší, ale bohužel nemám na ZFS nyní vytvořenou sdílenou složku na základě 4k bloků, nicméně, pokusím se v blízké době to také otestovat a dopsat sem hodnoty)
Po ukončení testu zápisu (bod č.5) nezapomeňte smazat 10GB testovací soubor, který jsme tímto procesem vytvořili ve složce.
No a na konec článku je nutno podotknout, že pokud jste firma, která pracuje s obsáhlými mediálními soubory, pak QNAP NAS s RAID poli je obecně velmi výkonné řešení, na kterém úpravy velkých souborů můžete provádět přímo na NAS, aniž byste data museli kopírovat tam a zpátky (z NAS na PC či macbook/iMac a naopak). V případě použití QNAP NAS s operačním systémem QuTS hero, jenž je postavené na 128bitovém ZFS, to platí dvojnásob.
Máte nějaké další dotazy? Anebo byste rádi komentovali tento článek? Pokračujte na komunitní fórum do sekce: Turbo station - Instalace a nastavení.
* Update: 1. července 2020:
Provedena aktualizace článku: přidán bod.6 (testování IOPsů).