IO-DATA UIDE-133R(ITE8212) に4台のHDDを繋いで幾つかのベンチマークを取ってみた。
環境
毎度のこと検証環境は、
- Athlon64X2 3800+ (但し、Single CPUとして制限)
- M2NPV-VM(GeForce6150+nForce 430MCP)
- メモリは512M(カーネルパラメータで制限)
- システム用のHDDで Segate ST3500630AS, SATA
- Debian/etch Linux-2.6.16
- IO-DATA UIDE-133R(ITE8212)
- Seagate ST340015A, 40GB, PATA UDMA100, 2MBキャッシュ, 5400 rpm の4台
ITE8212は、430MCP配下のPCIバス(32bit/33Mhz)にぶら下がっている。
04:08.0 RAID bus controller: <pci_lookup_name: buffer too small> (rev 11)
Subsystem: Integrated Technology Express, Inc. IT/ITE8212 Dual channel ATA RAID controller
Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 209
I/O ports at 9c00 [size=8]
I/O ports at 9800 [size=4]
I/O ports at 9400 [size=8]
I/O ports at 9000 [size=4]
I/O ports at 8c00 [size=16]
Expansion ROM at fda00000 [disabled] [size=128K]
Capabilities: [80] Power Management version 2
測定
測定は、pass through mode で md を使ってRAIDを組んだ場合とsmart modeでBIOSでRAIDを定義した場合のそれぞれで下記構成のRAIDボリュームに対して、シーケンシャルなread/write の性能を 、bonnie++(1.03)を使い測定する。
- RAID0 のHDDx1台(1u)。
- RAID0 のHDDx 2 台(2u-2ch)。但し、IDEの2チャンネルにそれぞれにHDDを割り当てる。
- RAID0 のHDDx 2 台(2u-1ch)。但し、IDEの1チャンネルのみにHDDを割り当てる。
- RAID0 のHDDx 3 台(3u)。IDEの片方のチャンネルに2台で一方に1台を割り当てる。
- RAID0 のHDDx 4 台(4u)。IDEの両方のチャンネルに2台を割り当てる。
- linear のHDDx 4 台(4u)。IDEの両方のチャンネルに2台を割り当てる。
HDDの設定
HDDの設定は hdparm を使っても多く設定が出来ないので、デフォルト値のままにした。
# hdparm /dev/hda
/dev/hda:
multcount = 0 (off)
IO_support = 3 (32-bit w/sync)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 19462/255/63, sectors = 312661432, start = 0
# hdparm -i /dev/hda
/dev/hda:
Model=Integrated Technology Express Inc, FwRev=, SerialNo=%
Config={ }
RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=0kB, MaxMultSect=0
(maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=268435455
IORDY=no
PIO modes: pio0
DMA modes: mdma0 mdma1 mdma2
AdvancedPM=no
* signifies the current active mode
ファイルシステム
RAIDボリュームは 標準的な ext3 に初期化した。
# dumpe2fs -h /dev/hda1
dumpe2fs 1.39 (29-May-2006)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: a0060cd1-078c-4212-bc49-849077c18012
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal resize_inode dir_index filetype sparse_super large_file
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 19546112
Block count: 39082120
Reserved block count: 1954106
Free blocks: 38420585
Free inodes: 19546101
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1024
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 16384
Inode blocks per group: 512
Filesystem created: Fri Sep 22 03:17:52 2006
Last mount time: Fri Sep 22 03:19:57 2006
Last write time: Fri Sep 22 03:31:15 2006
Mount count: 1
Maximum mount count: 33
Last checked: Fri Sep 22 03:17:52 2006
Check interval: 15552000 (6 months)
Next check after: Wed Mar 21 03:17:52 2007
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
Journal inode: 8
Default directory hash: tea
Directory Hash Seed: e5fb4626-6e46-4fc3-b806-e372ee6acf41
Journal backup: inode blocks
Journal size: 128M
測定コマンド
bonnie については、下記のコマンドを使用(/mntに対象ボリュームをマウント)。
# bonnie -u root -d /mnt -n 0 -f -b
結果
Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
IT8212
md-raid0(1u) 1G 37720 9 18515 4 47306 4 174.0 0
md-raid0(2u-2ch) 1G 75696 21 30213 6 69912 6 261.6 0
md-raid0(2u-1ch) 1G 33420 8 14207 3 28919 2 170.7 0
md-raid0(3u) 1G 46685 12 19849 4 42009 3 249.1 0
md-raid0(4u) 1G 64778 15 25630 5 52087 5 280.2 0
md-linear(4u) 1G 37966 8 18337 4 47288 4 171.8 0
bios-raid0(2u-2ch)1G 60544 18 17886 4 36314 3 169.3 0
bios-raid0(2u-1ch)1G 36289 10 13280 3 30567 2 155.3 0
bios-raid0(3u) 1G 32204 9 15470 3 37817 3 164.9 0
bios-raid0(4u) 1G 39150 11 17373 4 42017 3 183.9 0
bios-linear(4u) 1G 38601 10 18587 4 47329 4 170.2 0
- mdの場合、2units(2channel)で明らかなRAID0性能向上の傾向がread/writeともに見られる。3units/4unitsは、RAID0性能向上の傾向が見られるが、2units(2channel)よりは性能向上は劣っている。
- md と smart modeのRAIDを比べると、md を使った方が性能が良い。
- 実際の2units(1channel)の性能は1unit比べてやはり劣化がある。
全体的にHDDの台数に性能があまりスケールしない。ただし、IDEの1チャンネルに1台のみぶら下がるようにした場合、台数に対する性能向上が見られる。やはり、IDEの1チャンネルに2台ぶらさがる事が、IDEバスかチップかLinuxのITE8212用のドライバかで並列化を妨げ「劣化」させる要因になっているようである。
結論
PATAでは1チャンネルに複数のデバイスをぶら下げるとRAIDの性能向上を妨げるので、1チャンネル1台にしよう。 姑息に性能を上げるためには、pass through mode で md ベースのRAIDを組もう。但し、過度の期待は禁物である。
0 件のコメント:
コメントを投稿