今回は前回までに構築したiSCSIとLinux環境でよく使用されるNFS、大規模な共有システムで使用されるSANの比較を色々行いたいと思います。
○比較のポイント
(1) 概要
(2) 性能
(3) 導入コスト
(4) 運用コスト
(1)概要
・NFS
NFSは、ローカルに接続されたストレージをネットワークを介してリモートのサーバーに提供する分散ファイルシステムとそのプロトコルである。マウントされたNFSボリュームは、ネットワーク上にあることを意識せずローカルと同じように利用出来る。ファイルロック機能、クォータ管理機能はNFSプロトコルには含まれないが、通常これらと連携して稼働し、ひとまとめにしてNFSと呼ぶことが多い。(一部wikipediaより抜粋)
・iSCSI
iSCSIプロトコルはそのデータ転送のためにTCP/IPを使う。ほとんどの SAN の基盤であるファイバーチャネルなどの他のネットワークストレージプロトコルと違って、iSCSIは単純でどこにでもあるイーサネットインタフェース(または他のTCP/IPが使用可能なネットワーク)があればよい。このことは、ファイバーチャネルによる SAN につきもののコストと非互換問題を味わうことなくストレージの集中化を低価格で可能とする。iSCSIプロトコルではファイルロック機能などを含まないため、共有ディスク環境を構築するためにはiSCSIで接続したデバイス上に共有ファイルシステムなどを構築する必要がある。(一部wikipediaより抜粋)
・SAN
SANは基本的にデバイスをサーバ間で共有するものであり、ボリュームの共有はサポートされない。SANに接続された複数のサーバ間で、あるボリューム内のデータ(ファイル)を共有したい場合は、単一ファイルサーバを通してLAN上でやり取りを行うか、SANファイルシステムを導入し共有を行うサーバ間で排他制御を行う必要がある。また、SAN環境の構築には専用の機材、専門的な技術が必要となるため、相対的にコストが高くなる。(一部wikipediaより抜粋)
(2)性能(NFSとiSCSIの比較)
○以下の条件で測定
・使用するサーバーはNFS(Server/Client)、iSCSI(Target/Client)とも同一機材
・NW環境は100Mbps環境、その他環境も同一
・それぞれに1GBのファイル書込みを3回繰り返し平均値を算出
(time dd if=/dev/zero of=/mnt/vol/testfile bs=128k count=8192)
で、実際測定した結果が以下。
(1)1073741824 bytes (1.1 GB) copied, 107.903 seconds, 10.0 MB/s
(2)1073741824 bytes (1.1 GB) copied, 161.972 seconds, 6.6 MB/s
(3)1073741824 bytes (1.1 GB) copied, 163.577 seconds, 6.6 MB/s
平均:7.73MB/s
(1)1073741824 bytes (1.1 GB) copied, 29.4537 seconds, 36.5 MB/s
(2)1073741824 bytes (1.1 GB) copied, 29.9452 seconds, 35.9 MB/s
(3)1073741824 bytes (1.1 GB) copied, 29.8378 seconds, 36.0 MB/s
平均:36.1MB/s
<ローカルHDD(参考)>
(1)1073741824 bytes (1.1 GB) copied, 7.62334 seconds, 141 MB/s
(2)1073741824 bytes (1.1 GB) copied, 7.45572 seconds, 144 MB/s
(3)1073741824 bytes (1.1 GB) copied, 7.36467 seconds, 146 MB/s
平均:143.6MB/s
NFSとiSCSIを比較するとiSCSIの転送速度はかなり早い。
実験環境は100MbpsのNW上だったが、すでに安価に構築できるGBイーサ環境で行うとローカルHDDと同じくらいの転送スピードを実現できるかもしれません。(そのうち実験してみます。)
次回は、それぞれのコスト比較を行い、どのようなシステムで最大メリットを発揮するのか考察してきます。
waka