ふたつの川うるおう日記
2007-05-25 (Fri)
_ [大学][Linux][Admin] GFSの性能
一昨日適当に測ったのを掲載。会話の途中でいきなし測ってみるかってことになったので、適当に測ってみました。
- 他にも同一ネットワークの利用者がそれなりにいた状態
- ddだと1回目と2回以降で速度変わっちゃったりするらしいけどそこは気にしない
- bashのtimeで計測、結果は小数点第3位を四者五入
- 8GBの1ファイルに対する計測
- 小さいファイルたくさんで計測したらまた違うかもね
構成とスペック
- SANストレージ1台: IBM System Storage DS4700
- RAID-5 2TBのファイルシステムがGFSの同一論理領域をファイルサーバ3台で接続
- ファイルサーバ3台でロック情報を共用
- RAID-5 1.7TBのファイルシステムがext3の論理領域をファイルサーバ1台で接続
- 2つあるコントローラに4 Gbps ファイバーチャネルでSANスイッチ経由でファイルサーバ3台に2本ずつ接続
- それぞれ1本はスタンバイ
- RAID-5 2TBのファイルシステムがGFSの同一論理領域をファイルサーバ3台で接続
- ファイルサーバ3台: IBM System x 3550
- OS: CentOS 4.4 64-bit (RDACがCentOS5にまだ対応していないため)
- CPU: Intel Xeon 5160 3.0GHz
- MEM: 4GB
- HDD: SAS 160GB 15,000rpm (RAID-1)
- シェルサーバ (Xen上): IBM System x 3550
- OS: CentOS 5.0 64-bit
- Xen: xen-3.0.3-25.0.3.el5 (CentOS 5.0付属)
- ゲストOS: 3台稼働中。シェルサーバはその内の1台。
- CPU: Intel Xeon 5160 3.0GHz
- MEM: 4GB
- Xen上のゲストOSへの割り当て容量: 1GB
- HDD: SAS 160GB 15,000rpm (RAID-1)
- ファイルサーバのGFS領域をNFSマウント
- ネットワーク: 1000Mbps
テスト内容: 8GBのファイルの作成、コピー、削除の速度と適当に計測
- シェルサーバ上のNFSマウント領域
- ファイルサーバ上のGFSのSANストレージ領域
- ファイルサーバ上のext3のSANストレージ領域
- ファイルサーバ上のext3のローカルHDD領域
- 1. シェルサーバ上のNFSマウント領域
- シェルサーバ(NFS) -> (Xenホスト) -> ファイルサーバ -> SANストレージ
$ time dd if=/dev/zero of=/home/users/*****/BigZero8G bs=1024 count=8000000 8000000+0 records in 8000000+0 records out real 2m21.375s user 0m3.600s sys 0m23.869s 結果: 57.95 MB/s
$ time cp BigZero8G BigZero8G_2 real 5m4.968s user 0m0.460s sys 0m14.337s 結果: 26.69 MB/s
$ time rm BigZero8G -rf real 0m0.541s user 0m0.000s sys 0m0.132s
- 2. ファイルサーバ上のGFSのSANストレージ領域
- ファイルサーバ -> SANストレージ
$ time dd if=/dev/zero of=/home/users/*****/BigZero8G bs=1024 count=8000000 8000000+0 records in 8000000+0 records out real 1m28.606s user 0m1.291s sys 1m2.863s 結果: 92.45 MB/s
$ time cp BigZero8G BigZero8G_2 real 2m13.240s user 0m0.374s sys 0m43.967s 結果: 61.48 MB/s
$ time rm BigZero8G_2 -rf real 0m0.237s user 0m0.000s sys 0m0.212s
- 3. ファイルサーバ上のext3のSANストレージ領域
- ファイルサーバ -> SANストレージ
$ time dd if=/dev/zero of=/home/backup/BigZero8G bs=1024 count=8000000 8000000+0 records in 8000000+0 records out real 1m16.306s user 0m0.946s sys 0m16.891s 結果: 107.36 MB/s
$ time cp BigZero8G BigZero8G_2 real 2m25.014s user 0m0.376s sys 0m17.820s 結果: 56.49 MB/s
$ time rm BigZero8G -rf real 0m2.017s user 0m0.000s sys 0m0.535s
- 4. ファイルサーバ上のext3のローカルHDD領域
- ファイルサーバ -> ローカルHDD
$ time dd if=/dev/zero of=/tmp/BigZero8G bs=1024 count=8000000 8000000+0 records in 8000000+0 records out real 1m32.946s user 0m0.981s sys 0m16.132s 結果: 88.13 MB/s
$ time cp BigZero8G BigZero8G_2 real 3m22.509s user 0m0.354s sys 0m17.396s 結果: 40.45 MB/s
$ time rm BigZero8G -rf real 0m2.612s user 0m0.001s sys 0m0.567s
表
| テスト実施環境 / テスト項目 | 書き込み速度(MB/s) | コピー速度(Read+Write)(MB/s) | 削除(秒) |
| 1. シェルサーバ上のNFSマウント領域 | 57.95 MB/s | 26.69 MB/s | 0m0.541s |
| 2. ファイルサーバ上のGFSのSANストレージ領域 | 92.45 MB/s | 61.48 MB/s | 0m0.237s |
| 3. ファイルサーバ上のext3のSANストレージ領域 | 107.36 MB/s | 56.49 MB/s | 0m2.017s |
| 4. ファイルサーバ上のext3のローカルHDD領域 | 88.13 MB/s | 40.45 MB/s | 0m2.612s |
まとめ
- 1: シェルサーバ上での作成とコピーの値がほぼ2倍になっているので、これはNFSの処理速度とネットワークの限界で、SANストレージは足を引っ張ってなさそう。
- 2,3: SANストレージのGFSはSANストレージのext3の86.11%のファイル書き込みパフォーマンスだった。
- 2,3: ファイルのコピーはSANストレージのext3よりSANストレージのGFSの方が早かった。
- 2,4: GFS経由でもローカルHDDより早い -> たぶんファイバチャネルが早いから。
- 2,3,4: ファイバチャネルはやっぱし早い
- 1,2,3,4: 削除は早い順でGFS(SAN) > NFS-GFS(SAN) >>>> ext3(SAN) > ローカルHDD。GFSとNFSはたぶん実際に削除する前にレスポンス返してるので早いっぽい。
という結果でした。GFSはext3と比べて大きな差もなくかなり早いという印象です。GFSに似たとある商用分散ファイルシステムはなぜかファイルの削除に2分以上かかるらしい。たぶんロック情報の共有の仕方がおかしいんだと思う。
ただし、GFSなのかSANストレージなのか判ってないけど、このGFS環境には罠が1個あって、dfした時の現容量の表示が2秒ぐらい掛かる。ファイバーチャネルの接続構成変えても治らなかった。
[]



ちなみに、Fiber は 2G ですよね。GFS の結果は興味深いです。こういうのを見ると、ついうっかり random read/write の結果とか知りたくなりますね。まだ私も試したことないですが、iozone というベンチマークツールは比較的色々な事が出来そうでよさげです。
どうもです。ついうっかり今晩あたりiozoneを走らせてしまいそうです(゜ー゜)。<br>Fiberはdmesgで下記のように出てたので4Gだと思ったんですが違いますかね?(アレイマネージャでどうだったか覚えてなかったり汗。<br>qla2400 0000:14:01.0: LOOP UP detected (4 Gbps).<br>QLogic QLA2462 - PCI-X 2.0 to 4Gb FC, Dual Channel
おぉ、知らぬ間に世の中 4G になっていますか。。。<br>dd で seq write で、ブロックサイズ 1k ならこれ位、というのは良い指標かもしれないです。もちっとブロックサイズあげたら、もう少し速度は出るかもしれないですね。<br># H/W 側の RAID のチャンクサイズで、ちょびっと値が変わる事があったような記憶もありますが。。。