テスト用のFreeNASのダウンロードはこちらから。
http://sourceforge.net/project/showfiles.php?group_id=151951&package_id=229704
以下の情報はnightly build 0.7.4541に基づいています。
ZFSでメモリが明らかに足りないのでKVA_PAGESを増加してもらいました。
r4537においてコミットされたので、それ以降であれば2GBがカーネル空間に
割り当てられます。
また、r4539において新バージョンのistgtに変更してもらいました。
この版はFreeBSD initiatorで発現するバグを修正したバージョンです。
1.カーネルメモリの増加(i386版の必須事項)
まず事前準備として、設定を変更します。
この変更はi386版ではメモリ搭載量にかかわらずZFSを利用する場合は必要になります。
高度な設定>ファイルエディタから
embeddedの場合は /cf/boot/loader.confをロードします。
追記:fullインストールの場合は /boot/loader.conf をロードします。
vm.kmem_size_max=”1400M”
vm.kmem_size=”1400M”
vfs.zfs.arc_max=”350M”
メモリ2GBの場合は最低上記のような設定を追加して保存して再起動します。
再起動後に再度ロードして正しい値か確認しておきます。
※メモリ1GB以下ではおそらく制限された速度しかでませんが、
まったく利用できないわけではないです。
1GBの場合:
vm.kmem_size_max=”700M”
vm.kmem_size=”700M”
vfs.zfs.arc_max=”175M”
追記:
ZFSv6版(7.2RELEASE)の場合、vfs.zfs.arc_maxはkmem_sizeの1/4程度を指定したほうが良いみたい。
amd64版を使う場合は遠慮なく限界まで確保します。
4GB(amd64)の場合:
vm.kmem_size=”3072M”
vfs.zfs.arc_min=”768M”
vfs.zfs.arc_max=”768M”
ZFSv13版(7.2STABLE)の場合、vfs.zfs.arc_maxはkmem_sizeの1/2程度を指定します。
物理メモリ512MB+FreeBSD7.0での運用参考値:
vfs.zfs.arc_max=”40M”
vfs.zfs.vdev.cache.size=”5M”
vm.kmem_size_max=”384M”
vm.kmem_size=”384M”
2.ZFSプール及びファイルシステムを構成する
ディスク>マネージメントから
利用するHDDを事前フォーマットを「ZFS storage pool device」で追加します。
テストマシンはZFSに利用できるHDDが1個しかない為Stripeで単体指定です。
ディスク>ZFS>Pools/Virtual deviceから
プールに追加するHDDのタイプを選び追加します。
ディスク>ZFS>Pools/マネージメントから
作成したHDDの組を使ってプールを作成します。
※この名前がプール名になります。
ここではtankとしました。
ディスク>ZFS>Datasets/Datasetから
プール内にファイルシステムを作成します。
ここでは/mnt/tank/iscsiとして作成しました。
3.iSCSIターゲットを構成する
この手順は以前書きましたのでそちらを見てください。
FreeNAS 0.7 を使って iSCSI Target を構成する
ここでは/mnt/tank/iscsi/test-disk0として作成しました。
テスト用ハード構成:
ASUS M2A-VM (AMD 690G chipset) + Athlon X2 5200+ (2.7GHz/DualCore)
Hitachi HDP725050GLAT80 (U133 500GB) x 1
Seagate ST380815AS (SATAII 80GB) x 1
UMAX DDR2-800 2GB x 1
Intel PRO1000/PT Server Adapter x 2
テスト用iSCSIターゲット:
ZFS上のファイル形式
QueueDepth 32
(その他デフォルト値)
このFreeNASを使ってWindowsServer2008からiSCSIドライブで
CrystalDiskMark2.2を100MBで走らせた時のNIC(em1)とCPU負荷はこんな感じ。
書き込みが遅いのはistgtの仕様(キャッシュ無/シングルI/O/排他ロック)
なので効率アップはもう少しお待ちを。
追記:
上記では単体ドライブのZFS領域ですが、後日ドライブを増設した場合に、
# zpool attach tank /dev/ad1 /dev/ad3
(ad1が既存ドライブ、ad3が増設ドライブと仮定)
のようにすると、簡単にZFSミラーを作成することができます。
また、ミラー化が完了すればデータを保持したまま旧ドライブを
いつでも交換する事が可能になります。(容量の大きい物へも可能)
# zpool replace tank /dev/ad1
やっぱり気が変わってミラーを止めたいと思った場合は、
# zpool detach tank /dev/ad3
とすると、ミラーが解除されて元の単体ドライブのZFS領域に戻ります。
このように単体でもZFSにしておくと後々の管理が楽になるのです。
※attach/detachは現時点のWebGUIからは操作できないようです。
※RAIDZではattach/detachはできませんが当然replaceは可能です。


[...] 参考:FreeNAS 0.7 で ZFS と iSCSI Target を構成する « 環境さんぷる [...]