web-dev-qa-db-ja.com

断続的に遅いRAIDデータ転送速度を診断する方法は?

Centos5.5に暗号化されたRAID6をセットアップしました。大きな10GBのファイルをレイドからコンピューターに転送すると、約4〜5 GBで一時停止し、再び9GBで一時停止します。データ転送は、約30〜60秒間、25mb /秒から<1mb /秒に低下します。

ストリーミングHDビデオは、数分ごとに途切れたりフリーズしたりします。

転送はsamba経由です。同じことがrsyncでも起こりますが(rsyncデーモンを使用)、転送速度はわずかに高くなります。

誰かが問題を追跡する方法を教えてもらえますか?ボトルネックがどこにあるかを見つける方法がわかりません。


背景情報:

  • サーバー:CPUは1つのIntel(R)Core(TM)2 CPU 6300 @ 1.86GHz
  • RAM:4GB
  • イーサネット:マザーボード上のギガビット
  • SATA:オンボードx8、1つのコントローラーに6つのポート、別のコントローラーに2つのポート

レイドからデータを転送している間、CPU使用率は1つのコアで約45%です。

レイドの作成方法:

レイドスタックは次のとおりです。

disk-> RAID-> dm-crypt-> LVM-> fs

私は7x2TBのディスクを持っています。それぞれに1つの「fd」(RAID)パーティションがあります(/ dev/sdb->/dev/sdh)注/ dev/sdaはOSを含むSSDです

これが私がそれを作成した方法です

レイドデバイスを作成する

mdadm --create /dev/md0 --level=6 --raid-devices=7 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1

暗号化された配列を開く

cryptsetup --key-file /mnt/usbstick/img_0768.jpg luksOpen /dev/md0 md0encrypted

LVMを作成する

pvcreate /dev/mapper/md0encrypted

ボリュームグループを作成します-256Mを使用します。これにより、約16.7TBが可能になります。 2の累乗でなければなりません

vgcreate -s 256M VolGroupRaid /dev/mapper/md0encrypted

ボリュームを作成します。 (vgdisplay-vから合計PE37260を取得しました)

lvcreate -l 37260 VolGroupRaid --name raidvol

を使用してフォーマットします

mkfs.ext3 /dev/VolGroupRaid/raidvol

マウントする

mount /dev/VolGroupRaid/raidvol /mnt/raid

システム情報

lspci

00:00.0 Host bridge: Intel Corporation 82P965/G965 Memory Controller Hub (rev 02)
00:01.0 PCI bridge: Intel Corporation 82P965/G965 PCI Express Root Port (rev 02)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 02)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 02)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 02)
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 02)
00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev f2)
00:1f.0 ISA bridge: Intel Corporation 82801HB/HR (ICH8/R) LPC Interface Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA AHCI Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation G84 [GeForce 8600 GT] (rev a1)
03:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 22)
04:00.0 SATA controller: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 02)
04:00.1 IDE interface: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 02)

dmesg | grep -i raid

device-mapper: dm-raid45: initialized v0.2594l
md: Autodetecting RAID arrays.
raid5: automatically using best checksumming function: generic_sse
raid5: using function: generic_sse (6816.000 MB/sec)
raid6: int64x1   1558 MB/s
raid6: int64x2   1937 MB/s
raid6: int64x4   1765 MB/s
raid6: int64x8   1468 MB/s
raid6: sse2x1    3308 MB/s
raid6: sse2x2    4863 MB/s
raid6: sse2x4    5582 MB/s
raid6: using algorithm sse2x4 (5582 MB/s)
md: raid6 personality registered for level 6
md: raid5 personality registered for level 5
md: raid4 personality registered for level 4
raid5: device sdh1 operational as raid disk 6
raid5: device sdg1 operational as raid disk 5
raid5: device sdf1 operational as raid disk 4
raid5: device sde1 operational as raid disk 3
raid5: device sdd1 operational as raid disk 2
raid5: device sdc1 operational as raid disk 1
raid5: device sdb1 operational as raid disk 0
raid5: allocated 7412kB for md0
raid5: raid level 6 set md0 active with 7 out of 7 devices, algorithm 2
RAID5 conf printout:

cat/proc/mdstat

Personalities : [raid6] [raid5] [raid4] 
md0 : active raid6 sdh1[6] sdg1[5] sdf1[4] sde1[3] sdd1[2] sdc1[1] sdb1[0]
      9767559680 blocks level 6, 64k chunk, algorithm 2 [7/7] [UUUUUUU]

unused devices: <none>
3
zio

それを診断する方法は、コンポーネントを削除/置換することです。完全なセットアップは次のとおりです。

 centos(disk-->RAID-->dm-crypt-->LVM-->fs)-->network->mycomputer

別の目的地を試してください:

 centos(disk-->RAID-->dm-crypt-->LVM-->fs)-->network->anothercomputer

ネットワークを排除します。

 centos(disk-->RAID-->dm-crypt-->LVM-->fs)-->centos

すべてのスタックを削除して、ネットワークかどうかを確認します。

 centos(disk(one disk)-->fs)-->network->mycomputer

ネットワークだけではない場合は、コンポーネントの追加を開始します。

 centos(disk-->RAID-->fs)-->network->mycomputer
 centos(disk-->RAID-->LVM-->fs)-->network->mycomputer

これらは私が考えることができるすべての組み合わせについてです。

2
Mark Wagner

最良の場合の転送速度でさえかなり悪いように見えますが、7ドライブのRAID 6から大きなファイルを読み取ると、GigEリンクが簡単に飽和する可能性があるため、SAMBAのオーバーヘッドがあっても、25Meg /秒よりもはるかに優れているはずです。

暗号化のオーバーヘッドは、一般的な原則としてあなたを妨げるべきではありません。暗号化/復号化(AESを使用)100Meg /秒以上は、最新のCPUのシングルコアの機能の範囲内ですが、 dm-に関するこのメッセージcrypt は、セットアップによってトリガーされる可能性のあるボトルネックである可能性があり、比較的最近のものであるため、まだ問題であると思われます。

あなたがあなたのコンピュータに転送していると言うとき-そこのスペックは何ですか-どのOS、どれくらいRAMそしてあなたが書いているドライブサブシステムはどれくらい速いですか、すなわちそれは25Megに追いつくことができますか/秒?

1
Helvick