増設SATAカードでHDDの書込みスピードをテストしてみた

コンピューターとネットワーク

4000円のSata増設カードを10年物のマザーボードに増設して、iscsiターゲットにできるだろうか。

ASM1062 チップ搭載の8ポートSataカード(RAIDなし)で挑戦してみた。

テストは、「0x00」を連続的にディスクに書き込んで、そのスピードを計測する、というものです。

Sata 増設カード

PCIe x4 sata増設カード、8ポートです。

RAIDの機能はありません。

MB上にgen1とgen2のPCIeがあるので、gen2にSata増設カードを接続しています。

詳しくは、次の通り。

fumi@iss:~$ lspci
...
01:00.0 PCI bridge: ASMedia Technology Inc. Device 1806 (rev 01)
02:00.0 PCI bridge: ASMedia Technology Inc. Device 1806 (rev 01)
02:02.0 PCI bridge: ASMedia Technology Inc. Device 1806 (rev 01)
02:06.0 PCI bridge: ASMedia Technology Inc. Device 1806 (rev 01)
02:0e.0 PCI bridge: ASMedia Technology Inc. Device 1806 (rev 01)
03:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 02)
04:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 02)
05:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 02)
06:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 02)
07:00.0 PCI bridge: Integrated Device Technology, Inc. [IDT] PES12T3G2 PCI Express Gen2 Switch (rev 01)
08:02.0 PCI bridge: Integrated Device Technology, Inc. [IDT] PES12T3G2 PCI Express Gen2 Switch (rev 01)
08:04.0 PCI bridge: Integrated Device Technology, Inc. [IDT] PES12T3G2 PCI Express Gen2 Switch (rev 01)
...

PCIe gen1 x1 の転送は片方向 0.25GB/sです。

PCIe gen2 x1 の転送は片方向 0.5GB/sです。

当該のSata増設カードは外観 x4 ですが、実質的には x2 接続のようです。

0.5GB/s x 2 で、1.0GB/s ということで、つじつまが合う結果になるでしょうか?

CPU

ハイパースレッディング有効、4コア8スレッドです。

fumi@iss:~$ cat /proc/cpuinfo |grep "model name"
model name	: Intel(R) Xeon(R) CPU           X3450  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X3450  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X3450  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X3450  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X3450  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X3450  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X3450  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X3450  @ 2.67GHz

Memory

16GB

fumi@iss:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:          16031         740       14608         522         682       14523
Swap:             0           0           0

HDD

最近は5000円を切るようになった、1TB、7200rpm ×8玉。

メーカーはSeagate。

足りなかったので古いのが1つ入っています。

root@iss:~# cat /proc/partitions 
major minor  #blocks  name

   8        0    3910656 sda
   8        1     426976 sda1
   8        2       2880 sda2
   8       16  976762584 sdb
   8       32  976762584 sdc
   8       48  976762584 sdd
   8       64  976762584 sde
   8       80  976762584 sdf
   8       96  976762584 sdg
   8      112  976762584 sdh
   8      128  976762584 sdi
   7        0     358832 loop0

fumi@iss:~$ ls -l /dev/disk/by-id/
total 0
lrwxrwxrwx 1 root root  9 Jun 13 13:58 ata-ST1000DM003-*************** -> ../../sdi
lrwxrwxrwx 1 root root  9 Jun 13 13:58 ata-ST1000DM010-*************** -> ../../sdg
lrwxrwxrwx 1 root root  9 Jun 13 13:58 ata-ST1000DM010-*************** -> ../../sdb
lrwxrwxrwx 1 root root  9 Jun 13 13:58 ata-ST1000DM010-*************** -> ../../sdc
lrwxrwxrwx 1 root root  9 Jun 13 13:58 ata-ST1000DM010-*************** -> ../../sdh
lrwxrwxrwx 1 root root  9 Jun 13 13:58 ata-ST1000DM010-*************** -> ../../sde
lrwxrwxrwx 1 root root  9 Jun 13 13:58 ata-ST1000DM010-*************** -> ../../sdd
lrwxrwxrwx 1 root root  9 Jun 13 13:58 ata-ST1000DM010-*************** -> ../../sdf
....

書き込みテスト前のテスト

とりあえず古いディスクの性能をテストしてみます。

/dev/sdi は ST1000DM003 なので少し古い。

書き込むのは、1MBを102400回なので、100GBです。

root@iss:~# dd if=/dev/zero of=/dev/sdi bs=1M count=102400
102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 536.311 s, 200 MB/s

新しい ST1000DM010 はどうか?

/dev/sdb と /dev/sdc で確認してみます。

root@iss:~# dd if=/dev/zero of=/dev/sdb bs=1M count=102400
102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 525.546 s, 204 MB/s
root@iss:~# dd if=/dev/zero of=/dev/sdc bs=1M count=102400
102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 520.22 s, 206 MB/s

ST1000DM003 で 200MB/s、ST1000DM010 が 204MB/s ~ 206MB/s でした。

ST1000DM003は、さほど遜色はなさそうです。

「bs=1M」オプションで、書き込み単位を 1Mバイトにしているのは、実際の使用時と同じようにキャッシュが効いた状態で測定するためです。

だから、実装しているメモリの容量によって書き込みスピードが変わりますが、100GB書き込みするので、参考程度のデータはとれるというもくろみです。

キャッシュなしの、ハードディスク本来の性能が知りたい場合は、「oflag=direct」でテストしてください。

キャッシュを効かさない書き込み速度は、おそらくチンケな結果になるでしょう。

8本のHDDに一斉書き込みテスト

バックグラウンドで、HDD8本、同時に書き込んでみます。

dd if=/dev/zero of=/dev/sdb bs=1M count=102400 &
dd if=/dev/zero of=/dev/sdc bs=1M count=102400 &
dd if=/dev/zero of=/dev/sdd bs=1M count=102400 &
dd if=/dev/zero of=/dev/sde bs=1M count=102400 &
dd if=/dev/zero of=/dev/sdf bs=1M count=102400 &
dd if=/dev/zero of=/dev/sdg bs=1M count=102400 &
dd if=/dev/zero of=/dev/sdh bs=1M count=102400 &
dd if=/dev/zero of=/dev/sdi bs=1M count=102400 &

結果です。

102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 595.106 s, 180 MB/s
102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 978.64 s, 110 MB/s
102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 979.234 s, 110 MB/s
102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 979.314 s, 110 MB/s
102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 979.52 s, 110 MB/s
102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 979.773 s, 110 MB/s
102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 980.224 s, 110 MB/s
102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 992.553 s, 108 MB/s

1本目は、メモリキャッシュが効いて、1本単独で書き込むのとそれほど変わらない結果ですが、ほかのディスクはおよそ半分のスピードです。

topコマンドで、負荷の状態を見てみます。

root@iss:~# top

top - 03:40:15 up 15 min,  1 user,  load average: 16.13, 15.09, 9.43
Tasks: 188 total,   1 running, 187 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.4 us,  3.2 sy,  0.0 ni,  8.7 id, 82.3 wa,  0.0 hi,  5.4 si,  0.0 st
%Cpu1  :  0.0 us,  4.1 sy,  0.0 ni,  6.4 id, 88.0 wa,  0.0 hi,  1.5 si,  0.0 st
%Cpu2  :  0.0 us,  3.1 sy,  0.0 ni, 22.5 id, 74.4 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  3.3 sy,  0.0 ni,  1.2 id, 95.4 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.4 us,  8.2 sy,  0.0 ni,  2.0 id, 89.5 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.4 us,  6.0 sy,  0.0 ni,  0.4 id, 93.2 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  0.4 us,  4.3 sy,  0.0 ni,  4.3 id, 91.1 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  :  0.4 us,  5.2 sy,  0.0 ni, 16.3 id, 78.1 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  16031.8 total,    168.7 free,    322.5 used,  15540.6 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.  14775.2 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                  
   72 root      20   0       0      0      0 S  15.3   0.0   1:51.29 kswapd0                                                  
 1659 root      20   0    5124   2424   1436 D  11.0   0.0   1:28.19 dd                                                       
 1661 root      20   0    5124   2412   1428 D  11.0   0.0   1:28.21 dd                                                       
 1664 root      20   0    5124   2396   1396 D  11.0   0.0   1:28.66 dd                                                       
 1665 root      20   0    5124   2404   1416 D  11.0   0.0   1:28.51 dd                                                       
 1660 root      20   0    5124   2372   1388 D  10.6   0.0   1:28.37 dd                                                       
 1666 root      20   0    5124   2508   1520 D  10.6   0.0   1:28.57 dd                                                       
 1662 root      20   0    5124   2332   1344 D  10.3   0.0   1:30.00 dd                                                       
 1663 root      20   0    5124   2572   1596 D   9.6   0.0   1:27.71 dd                                                       
 1050 root      20   0 1489784  29168     24 S   3.3   0.2   0:28.54 containerd                                               
  201 root      20   0       0      0      0 D   3.0   0.0   0:20.73 kworker/u32:4+flush-8:96                                 
  215 root      20   0       0      0      0 D   3.0   0.0   0:20.74 kworker/u32:10+flush-8:80                                
  208 root      20   0       0      0      0 D   2.7   0.0   0:20.85 kworker/u32:7+flush-8:64                                 
  209 root      20   0       0      0      0 D   2.7   0.0   0:20.53 kworker/u32:8+flush-8:128                                
  214 root      20   0       0      0      0 D   2.7   0.0   0:20.66 kworker/u32:9+flush-8:16                                 
  220 root      20   0       0      0      0 D   2.7   0.0   0:20.75 kworker/u32:11+flush-8:112                               
  221 root      20   0       0      0      0 D   2.7   0.0   0:20.77 kworker/u32:12+flush-8:48                                
  226 root      20   0       0      0      0 D   2.7   0.0   0:20.67 kworker/u32:13+flush-8:32                                
   13 root      20   0       0      0      0 I   0.3   0.0   0:01.21 kworker/0:1-events                                       
 1679 root      20   0    9892   2968   2512 R   0.3   0.0   0:00.57 top                                                      
    1 root      20   0   22528   6528   3784 S   0.0   0.0   0:02.69 systemd                                                  
    2 root      20   0       0      0      0 S   0.0   0.0   0:00.00 kthreadd                                                 
    3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp                                                   
    4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp                                               
    6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-kblockd                                     
    8 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq                                             
    9 root      20   0       0      0      0 S   0.0   0.0   0:00.13 ksoftirqd/0            
...

CPUはどれほど使われていないので、Sata増設カードからHDDの間にボトルネックがあることがわかります。

書込みを100GBで止めずに、ディスクの最後まで書き込んでみます。

dd if=/dev/zero of=/dev/sdb bs=1M &
dd if=/dev/zero of=/dev/sdc bs=1M &
dd if=/dev/zero of=/dev/sdd bs=1M &
dd if=/dev/zero of=/dev/sde bs=1M &
dd if=/dev/zero of=/dev/sdf bs=1M &
dd if=/dev/zero of=/dev/sdg bs=1M &
dd if=/dev/zero of=/dev/sdh bs=1M &
dd if=/dev/zero of=/dev/sdi bs=1M &

結果です。

root@iss:~# dd: error writing '/dev/sdh': No space left on device
953870+0 records in
953869+0 records out
1000204886016 bytes (1.0 TB, 932 GiB) copied, 9725.12 s, 103 MB/s
dd: error writing '/dev/sde': No space left on device
dd: error writing '/dev/sdb': No space left on device
953870+0 records in
953869+0 records out
1000204886016 bytes (1.0 TB, 932 GiB) copied, 9735.45 s, 103 MB/s
dd: error writing '/dev/sdd': No space left on device
953870+0 records in
953869+0 records out
1000204886016 bytes (1.0 TB, 932 GiB) copied, 9740.71 s, 103 MB/s
dd: error writing '/dev/sdf': No space left on device
dd: error writing '/dev/sdg': No space left on device
953870+0 records in
953869+0 records out
1000204886016 bytes (1.0 TB, 932 GiB) copied, 9747.57 s, 103 MB/s
953870+0 records in
953869+0 records out
1000204886016 bytes (1.0 TB, 932 GiB) copied, 9747.65 s, 103 MB/s
dd: error writing '/dev/sdc': No space left on device
953870+0 records in
953869+0 records out
1000204886016 bytes (1.0 TB, 932 GiB) copied, 9756.06 s, 103 MB/s
953870+0 records in
953869+0 records out
1000204886016 bytes (1.0 TB, 932 GiB) copied, 9771.18 s, 102 MB/s
dd: error writing '/dev/sdi': No space left on device
953870+0 records in
953869+0 records out
1000204886016 bytes (1.0 TB, 932 GiB) copied, 9974.46 s, 100 MB/s

全体的に100MB/s出ていることがわかります。

合計すると800MB/sです。

PCIe gen2 x2 の 1.0GB/s スピードとのつじつまもあいます。

ビットに直すと6400Mb/sです。

iscsiのターゲットにする場合は、10Gb/sネットワークに収まる速度です。

RAID6 でスピードテスト

データを単体ディスクに保存するわけにはいかないので、ソフトウエアRAIDを構成します。

root@iss:~# mdadm -C /dev/md0 -l6 -n8 /dev/sd[bcdefghi]

1時間くらいでビルドが完了します。

dd if=/dev/zero of=/dev/md0 bs=1M count=102400 &

負荷状態は次の通りです。

書き込み始めてすぐに top したので、average が小さいのですが、徐々に増えていきます。

root@iss:~# top

top - 17:29:24 up 13:27,  1 user,  load average: 1.39, 0.36, 0.18
Tasks: 146 total,   2 running, 144 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.8 us,  8.7 sy,  0.0 ni, 75.4 id, 15.1 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  16031.8 total,    161.5 free,    891.6 used,  14978.7 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.  14287.5 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                  
 1732 root      20   0       0      0      0 D  26.7   0.0  90:59.14 md0_raid6                                                
20645 root      20   0    6336   2724   1684 R  26.7   0.0   0:10.12 dd                                                       
14956 root      20   0       0      0      0 D  13.3   0.0   0:08.91 kworker/u32:1+flush-9:0                                  
   72 root      20   0       0      0      0 S   6.7   0.0  25:29.66 kswapd0                                                  
    1 root      20   0  169960   5572   2832 S   0.0   0.0   0:06.60 systemd                                                  
    2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd                                                 


ボトルネックはSata増設カードから先です。

102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 250.086 s, 429 MB/s
[1]+  Done                    dd if=/dev/zero of=/dev/md0 bs=1M count=102400

420MB/s、3400Mb/sくらいです。

iscsiターゲットで使えるレベルでしょう。

暗号化する

md-cryptを載せてみます。

root@iss:~# cryptsetup luksFormat /dev/md0

WARNING!
========
This will overwrite data on /dev/md0 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase for /dev/md0: 
Verify passphrase: 
root@iss:~# cryptsetup luksOpen /dev/md0 md0c
Enter passphrase for /dev/md0: 

書き込み。

dd if=/dev/zero of=/dev/mapper/md0c bs=1M count=102400 &

CPUの負荷も相当なものになります。

system cpu time (下記 sy)が80%を超えます。

10年前のAES-NI無しCPUですから。

root@iss:~# top

top - 19:40:10 up 15:37,  1 user,  load average: 12.10, 4.95, 1.85
Tasks: 162 total,  19 running, 143 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us, 85.7 sy,  0.0 ni,  9.0 id,  4.7 wa,  0.0 hi,  0.7 si,  0.0 st
%Cpu1  :  0.0 us, 81.4 sy,  0.0 ni, 14.6 id,  3.7 wa,  0.0 hi,  0.3 si,  0.0 st
%Cpu2  :  0.0 us, 84.1 sy,  0.0 ni, 15.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us, 86.0 sy,  0.0 ni,  7.7 id,  6.4 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.0 us, 84.8 sy,  0.0 ni,  7.7 id,  7.4 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.0 us, 81.0 sy,  0.0 ni, 17.0 id,  2.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  0.0 us, 85.0 sy,  0.0 ni, 14.0 id,  1.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  :  0.0 us, 81.6 sy,  0.0 ni, 15.7 id,  2.7 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  16031.8 total,    239.5 free,   1926.2 used,  13866.1 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.  13253.6 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                        
21357 root       0 -20       0      0      0 R  78.8   0.0   1:45.29 kworker/u33:0+kcryptd                                          
21364 root       0 -20       0      0      0 R  70.9   0.0   1:40.39 kworker/u33:3+kcryptd                                          
21373 root       0 -20       0      0      0 R  70.9   0.0   1:42.15 kworker/u33:8+kcryptd                                          
21369 root       0 -20       0      0      0 R  68.2   0.0   1:41.38 kworker/u33:5+kcryptd                                          
21363 root       0 -20       0      0      0 R  66.9   0.0   1:40.72 kworker/u33:2+kcryptd                                          
21370 root       0 -20       0      0      0 R  63.6   0.0   1:41.39 kworker/u33:6+kcryptd                                          
21371 root       0 -20       0      0      0 R  60.6   0.0   1:41.43 kworker/u33:7+kcryptd                                          
21362 root       0 -20       0      0      0 R  57.6   0.0   1:39.62 kworker/u33:1+kcryptd                                          
 1732 root      20   0       0      0      0 D  37.1   0.0  93:04.95 md0_raid6                                                      
21372 root      20   0       0      0      0 R  28.1   0.0   0:11.31 kworker/u32:3-bond0                                            
21367 root      20   0    6336   2680   1640 R  20.5   0.0   0:31.03 dd                                                             
21359 root      20   0       0      0      0 D  16.6   0.0   0:26.76 dmcrypt_write                                                  
21368 root       0 -20       0      0      0 I  16.2   0.0   0:14.24 kworker/u33:4-kcryptd                                          
   72 root      20   0       0      0      0 R   7.6   0.0  25:53.21 kswapd0                                                        
   92 root      20   0       0      0      0 I   1.0   0.0   0:40.55 kworker/0:2-events                                             
  454 root      20   0       0      0      0 R   0.7   0.0   0:16.22 kworker/7:2-events                                             
21374 root      20   0       0      0      0 R   0.7   0.0   0:00.51 kworker/6:0-events                                             
   65 root      20   0       0      0      0 R   0.3   0.0   0:12.53 kworker/1:1-events                                             
   67 root      20   0       0      0      0 R   0.3   0.0   0:15.62 kworker/3:1-events                                             
   69 root      20   0       0      0      0 R   0.3   0.0   0:14.93 kworker/5:1-events                                             
  229 root      20   0       0      0      0 R   0.3   0.0   0:16.39 kworker/4:2-events                                             
21376 root      20   0   11100   3488   3004 R   0.3   0.0   0:00.08 top                                                            
    1 root      20   0  169960   5616   2876 S   0.0   0.0   0:07.38 systemd                                                        
...                                                  

結果です。

102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 361.071 s, 297 MB/s

[1]+  Done                    dd if=/dev/zero of=/dev/mapper/md0c bs=1M count=102400

300MB/s、2400Mb/s。

データ専用なら、ターゲットで使えます。

LVM on Md-Crypt

LVMを載せます。

root@iss:~# pvcreate /dev/mapper/md0c 
  Physical volume "/dev/mapper/md0c" successfully created.
root@iss:~# vgcreate vg /dev/mapper/md0c 
  Volume group "vg" successfully created
root@iss:~# lvcreate -l"100%free" -nlv vg
  Logical volume "lv" created.
dd if=/dev/zero of=/dev/vg/lv bs=1M count=102400 &

負荷。

root@iss:~# top

top - 19:53:50 up 15:51,  1 user,  load average: 9.50, 4.53, 3.38
Tasks: 164 total,  14 running, 150 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us, 92.6 sy,  0.0 ni,  6.0 id,  1.3 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us, 88.6 sy,  0.0 ni, 11.1 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
%Cpu2  :  0.0 us, 89.3 sy,  0.0 ni,  7.0 id,  3.7 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.3 us, 90.9 sy,  0.0 ni,  7.4 id,  1.3 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.0 us, 88.0 sy,  0.0 ni,  6.7 id,  5.0 wa,  0.0 hi,  0.3 si,  0.0 st
%Cpu5  :  0.0 us, 88.0 sy,  0.0 ni, 10.0 id,  2.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  0.0 us, 94.6 sy,  0.0 ni,  5.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  :  0.0 us, 88.6 sy,  0.0 ni, 10.7 id,  0.7 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  16031.8 total,    183.0 free,   1907.1 used,  13941.7 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.  13272.4 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                        
21399 root       0 -20       0      0      0 R  78.1   0.0   1:08.56 kworker/u33:5+kcryptd                                          
21364 root       0 -20       0      0      0 R  76.2   0.0   5:27.16 kworker/u33:3+kcryptd                                          
21405 root       0 -20       0      0      0 R  74.8   0.0   1:08.71 kworker/u33:8+kcryptd                                          
21363 root       0 -20       0      0      0 R  74.2   0.0   5:23.74 kworker/u33:2+kcryptd                                          
21386 root       0 -20       0      0      0 R  72.2   0.0   1:08.00 kworker/u33:1+kcryptd                                          
21387 root       0 -20       0      0      0 R  69.5   0.0   1:07.66 kworker/u33:4+kcryptd                                          
21402 root       0 -20       0      0      0 R  69.2   0.0   1:08.32 kworker/u33:6+kcryptd                                          
21385 root       0 -20       0      0      0 R  54.6   0.0   1:05.68 kworker/u33:0+kcryptd                                          
 1732 root      20   0       0      0      0 R  41.7   0.0  95:03.74 md0_raid6                                                      
21372 root      20   0       0      0      0 I  38.4   0.0   0:41.03 kworker/u32:3-bond0                                            
21401 root      20   0    6336   2792   1756 R  22.5   0.0   0:21.09 dd                                                             
21359 root      20   0       0      0      0 D  18.9   0.0   1:27.13 dmcrypt_write                                                  
21404 root       0 -20       0      0      0 I  18.5   0.0   0:10.81 kworker/u33:7                                                  
   72 root      20   0       0      0      0 S   7.6   0.0  26:09.83 kswapd0                                                        
21392 root      20   0       0      0      0 R   1.0   0.0   0:00.59 kworker/5:2-events                                             
...                                                

結果です。

102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 367.608 s, 292 MB/s

[1]+  Done                    dd if=/dev/zero of=/dev/vg/lv bs=1M count=102400

300MB/sを少し切りましたが、LVMによる損失は、ほとんどありません。

ファイルシステム on LVM

LVMをフォーマットします。

root@iss:~# mkfs.xfs /dev/vg/lv 
meta-data=/dev/vg/lv             isize=512    agcount=32, agsize=45779456 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=1464939520, imaxpct=5
         =                       sunit=128    swidth=768 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

マウント。

root@iss:~# mount /dev/vg/lv /mnt/

書き込み。

dd if=/dev/zero of=/mnt/TF bs=1M count=102400 &

負荷。

root@iss:~# top

top - 20:17:25 up 16:15,  1 user,  load average: 6.84, 2.21, 2.49
Tasks: 172 total,  15 running, 157 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us, 82.5 sy,  0.0 ni, 16.9 id,  0.3 wa,  0.0 hi,  0.3 si,  0.0 st
%Cpu1  :  0.0 us, 84.1 sy,  0.0 ni, 13.6 id,  2.3 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us, 82.4 sy,  0.0 ni, 13.6 id,  4.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us, 83.0 sy,  0.0 ni, 11.3 id,  5.7 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.0 us, 84.1 sy,  0.0 ni,  9.9 id,  6.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.3 us, 82.4 sy,  0.0 ni, 16.9 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  0.0 us, 83.2 sy,  0.0 ni, 14.2 id,  2.6 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  :  0.0 us, 82.7 sy,  0.0 ni, 12.6 id,  4.7 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  16031.8 total,    173.8 free,   1116.4 used,  14741.7 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.  14104.9 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                        
21387 root       0 -20       0      0      0 R  79.4   0.0   4:48.87 kworker/u33:4+kcryptd                                          
21418 root       0 -20       0      0      0 R  78.7   0.0   0:29.29 kworker/u33:1+kcryptd                                          
21417 root       0 -20       0      0      0 R  78.4   0.0   0:30.10 kworker/u33:0+kcryptd                                          
21444 root       0 -20       0      0      0 R  75.4   0.0   0:28.95 kworker/u33:8+kcryptd                                          
21420 root       0 -20       0      0      0 R  74.4   0.0   0:29.49 kworker/u33:5+kcryptd                                          
21442 root       0 -20       0      0      0 R  70.1   0.0   0:28.74 kworker/u33:6+kcryptd                                          
21419 root       0 -20       0      0      0 R  67.8   0.0   1:01.63 kworker/u33:3+kcryptd                                          
21443 root       0 -20       0      0      0 R  58.5   0.0   0:28.91 kworker/u33:7+kcryptd                                          
 1732 root      20   0       0      0      0 D  34.9   0.0  97:13.95 md0_raid6                                                      
21441 root      20   0    6336   2828   1804 R  18.3   0.0   0:08.40 dd                                                             
21425 root      20   0       0      0      0 I  11.3   0.0   0:01.28 kworker/u32:1-flush-253:1                                      
21359 root      20   0       0      0      0 D  10.0   0.0   2:24.19 dmcrypt_write                                                  
   67 root      20   0       0      0      0 R   2.3   0.0   0:18.70 kworker/3:1-events                                             
21379 root      20   0       0      0      0 I   2.0   0.0   0:02.09 kworker/6:1-events                                             
   72 root      20   0       0      0      0 R   1.3   0.0  26:26.20 kswapd0                                                        
   65 root      20   0       0      0      0 I   0.7   0.0   0:14.89 kworker/1:1-events                                             
21363 root       0 -20       0      0      0 I   0.7   0.0   8:34.20 kworker/u33:2-kcryptd                                          
21383 root      20   0       0      0      0 R   0.7   0.0   0:01.90 kworker/7:0-events                                             
  229 root      20   0       0      0      0 R   0.3   0.0   0:19.36 kworker/4:2-events                                             
  247 root      20   0       0      0      0 I   0.3   0.0   0:16.14 kworker/2:2-events                                             
21449 root      20   0       0      0      0 R   0.3   0.0   0:00.11 kworker/0:0-events                                             
    1 root      20   0  169960   5756   3016 S   0.0   0.0   0:07.62 systemd                                                        
    2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd                                                       
...

結果です。

102400+0 records in
102400+0 records out
107374182400 bytes (107 GB, 100 GiB) copied, 342.172 s, 314 MB/s

[1]+  Done                    dd if=/dev/zero of=/mnt/TF bs=1M count=102400

ファイルシステムでキャッシュが効率的に効いて、パフォーマンスが上がっています。

300MB/s。

これくらいのスピードなら、iscsiターゲットで使うことも可能かもしれません。

最近は10TB超えのHDDもざらになりましたので、データ専用なら、十分に使えそうです。

4000円のSata増設カード、恐るべし。

まとめ

「xfs」on「LVM」on「md-crypt暗号化」on「md-raid6」with「ディスク8本」。

それぞれの段階で書き込み速度をテストしてみました。

結果は以下の通りでした。

構成速度
ハードディスク1本に書き込む      200メガバイト/秒         
構成速度
ハードディスク8本に一斉に書き込む800メガバイト/秒(8本合計)
 ※100メガバイト/秒(1本あたり)
8ディスクでRAID6を組んだ場合の書き込み420メガバイト/秒
RAID6を暗号化した場合の書き込み300メガバイト/秒
LVMを追加した場合の書き込み290メガバイト/秒
ファイルシステムを追加した場合の書き込み300メガバイト/秒

暗号化導入以降、システムCPU時間の90%を使っています。

この構成では用途を限定する必要があるかもしれません。

データバックアップ用の「iscsiターゲット」として使ってみようと思います。

タイトルとURLをコピーしました