2010年6月 のアーカイブ

isboot (iSCSI boot driver) version 0.1.3

2010年6月27日 日曜日

リカバリモードの処理を改善しました。
ターゲットの消失が一時的に起きても依然のように即パニックになる可能性が
ほぼなくなったと思います。
現在はCAM用mtxとタスク用mtxの取得順序の問題で、根本的なレース状態の
解決にはなっていません。今後の検討課題です。

CAMをロックしたままタスク用mtxをmsleepで待ちたいです。
根本的にこのロジックがダメなのでしょうか?
カーネルランドに詳しい人で、もしここを見ている人がいたら教えてください(切実)

作成・アップグレード方法:

# cd /usr/src
# tar xvf /path/to/iscsi-2.2.4.tar.gz
# tar xvf /path/to/isboot-0.1.3.tar.gz

# make buildkernel
# make installkernel
or
# cd /usr/src/sys/modules/iscsi/isboot
# make obj
# make depend
# make clean
# make all
# make install

インストール後に、新モジュールを適用する為にサーバを再起動してください。
ログで iSCSI boot driver version 0.1.3 が表示される事を確認してください。

主な修正点:
セッションリカバリの処理方法を改善しました。
ソケット消失時に処理がストールする事があったのを修正しました。

ダウンロードリンク:
http://www.peach.ne.jp/archives/isboot/isboot-0.1.3.tar.gz

ダウンロードリンク(for testing purpose only):
http://www.peach.ne.jp/archives/isboot/demo/FreeBSD-7.3-RELEASE-amd64-isboot-0.1.3.iso
http://www.peach.ne.jp/archives/isboot/demo/FreeBSD-7.3-RELEASE-i386-isboot-0.1.3.iso
http://www.peach.ne.jp/archives/isboot/demo/FreeBSD-8.1-RC1-amd64-isboot-0.1.3.iso
http://www.peach.ne.jp/archives/isboot/demo/FreeBSD-8.1-RC1-i386-isboot-0.1.3.iso
http://www.peach.ne.jp/archives/isboot/demo/unionfs-mkisboot.sh

isboot-0.1.1はバグがありました

2010年6月26日 土曜日

動かないとか思った人すみません。修正版を即上げなおしたので、
不幸にもダウンロードしてしまった人は闇に葬ってください(汗)

それだけではなんですから、FreeBSD 7.2 および 8.1-RC1のISOイメージに
isboot-0.1.2を統合した版を作りましたので、良かったら試してみてください。
作成スクリプトも上げておきますが、自己責任でよろしくお願いします。

IntelのiSCSI機能(iBFT)サポートNICはここで調べてください。
http://www.intel.com/support/network/adapter/pro100/sb/CS-028681.htm

起動に成功するとこんな感じのログ画面になります。

Boot NIC: em0 と Boot device: da1 の行にに注目。

この例だと em0 をiBFTで設定されたNIC0を用いて初期化します。
iBFTの仕様上IPv6でもIPv4でも行けるはずですが、IPv6は未確認です。
そしてda1を起動用として認識しているので、ここにインストールすれば、
NICのBIOSから起動して、isboot.koが引き継いで、OSを起動という
流れになります。
最終的にはisboot.koからiscsi_initiator.koに引き継ぎを出来ると
完璧なのだけど、現時点では出来ません。理由は前回書いた通り。

既存環境をiSCSIターゲットに移すにはloader.confで指定するか、
シェルから kldload isboot.ko を実行すると、設定がロードされて
デバイスが使えるようになるのでdump/restoreなどの方法でコピーします。

注意点としては、インストール中に起動NIC(例の場合はem0)にIPアドレス等を
設定しない事です。問題が発生する可能性があります。
isboot.koが作成するTCPコネクションはクリティカルパスですので、
経路消失した場合の動作は保障できません。
—————————————————————
iSCSI boot driver version 0.1.2
IS: Initiator name: iqn.2007-09.jp.ne.peach:pluto
NIC0: IP address: 192.168.3.48
NIC0: Prefix: 24
NIC0: Gateway: 0.0.0.0
NIC0: MAC address: 00:15:17:97:85:ab
TGT0: Target IP address: 192.168.3.36
TGT0: Target Port: 3260
TGT0: Target LUN: 2
TGT0: Target name: iqn.2007-09.jp.ne.peach:isboot1
Boot NIC: em0
Configure IPv4 by NIC0
Attempting to login to iSCSI target and scan all LUNs.
… cut …
da0 at isboot0 bus 0 scbus0 target 0 lun 0
da0: <FreeBSD iSCSI DISK 0001> Fixed Direct Access SCSI-5 device
da0: 40960MB (83886080 512 byte sectors: 255H 63S/T 5221C)
da1 at isboot0 bus 0 scbus0 target 0 lun 2
da1: <FreeBSD iSCSI DISK 0001> Fixed Direct Access SCSI-5 device
da1: 10240MB (20971520 512 byte sectors: 255H 63S/T 1305C)
da2 at isboot0 bus 0 scbus0 target 0 lun 3
da2: <FreeBSD iSCSI DISK 0001> Fixed Direct Access SCSI-5 device
da2: 1024MB (2097152 512 byte sectors: 64H 32S/T 1024C)
… cut …
Boot device: da1
—————————————————————

ダウンロードリンク:
http://www.peach.ne.jp/archives/isboot/demo/FreeBSD-7.3-RELEASE-amd64-isboot-0.1.2.iso

http://www.peach.ne.jp/archives/isboot/demo/FreeBSD-7.3-RELEASE-i386-isboot-0.1.2.iso

http://www.peach.ne.jp/archives/isboot/demo/FreeBSD-8.1-RC1-amd64-isboot-0.1.2.iso

http://www.peach.ne.jp/archives/isboot/demo/FreeBSD-8.1-RC1-i386-isboot-0.1.2.iso

http://www.peach.ne.jp/archives/isboot/demo/unionfs-mkisboot.sh

最新版をご利用ください。

動作確認用のFreeNAS 0.7.2(7S-5226-p4)版をアップしました

2010年6月25日 金曜日

 更新>FreeNAS 0.7.2 5252版

isboot-0.1.1 のデモを兼ねて作成しました。
ActiveDirectory問題を修正中です。先が長いです。

変更点:
arc_max < 1024MB の領域で arc_min = arc_max / 4 に再調整
ユーザ・グループの作成・更新ができない問題修正
ActiveDirectory認証を使うとsshdがクラッシュする問題修正
isboot-0.1.1を同梱(おそらくiBFT対応FreeBSD起動イメージは世界初です)
iSCSIターゲットへのインストール、起動を暫定的に対応。
(iSCSIの不具合等ありましたら報告お願いします)

SVN変更点は以下を参照してください。
http://freenas.svn.sourceforge.net/viewvc/freenas/branches/0.7/?view=log

あくまで動作確認用ですのでテスト環境以外への導入はサポートできません。
SVN5226版にHVパッチと以下の新チップ識別用コードの追加および
以下のバックポートドライバが含まれています。
なにか問題があれば報告をお願いします。

This unofficial version is using for test only.
It includes SVN r5226 + Hyper-V patch + identifier fix
+ backport drivers + some ATA fixes.
If you have a problem, please report me about it.

Unofficial only:
ATI IXP700/IXP800 AHCI, IXP700 IDE
Intel ICH10 AHCI
NVIDIA MCP65/MCP67/MCP77/MCP79/MCP89 AHCI, MCP79 IDE
Realtek 8102EL/8168DP/8111DP/8168E/8111E GbE
Marvell 88SX6042/88SX7042/88SX6102/88SX6111/88SX6141

em driver 7.0.5/1.0.1 (Intel PRO/1000 family)
ixbge driver 2.2.0 (Intel 10 Gigabit family)
re 2010/05/07 (Realtek 8169/8111 etc.)
msk 2010/05/04 (Marvell Yukon)

ntfs-3g 2010.3.6

警告:ZFS version 13 にアップグレードすると過去の版で利用不可になります。
WARNING: If upgraded to ZFS version 13, you can not use from old version.

for 32bit version
7S-FreeNAS-i386-LiveCD-0.7.2.5226-p4.iso
7S-FreeNAS-i386-LiveCD-0.7.2.5226-p4a.iso

修正版をご利用ください。

for 64bit version
7S-FreeNAS-amd64-LiveCD-0.7.2.5226-p4.iso
7S-FreeNAS-amd64-LiveCD-0.7.2.5226-p4a.iso

修正版をご利用ください。

※アップグレード手順はこちらを参考にしてください。
http://shell.peach.ne.jp/aoyama/archives/1038

MD5 (7S-FreeNAS-i386-LiveCD-0.7.2.5226-p4.iso) = 778b088edf3b414e03eaa70762dcdcf2
SHA256 (7S-FreeNAS-i386-LiveCD-0.7.2.5226-p4.iso) = 5e9e4afc82a5bcfc45ef61f32cf46e7f99a8aa656edd35c41b40ca392e8dbc53
MD5 (7S-FreeNAS-amd64-LiveCD-0.7.2.5226-p4.iso) = a87c36dc0de83421d9ac162930fbd500
SHA256 (7S-FreeNAS-amd64-LiveCD-0.7.2.5226-p4.iso) = 8f25513d7b0e8afb2ce95541ddc9d38201d6b3f82d2c745288ba14cd1d02ccfb

追記:
i386版でloader.confから読むとクラッシュする問題があったため
isboot-0.1.2に差し替えました。

MD5 (7S-FreeNAS-i386-LiveCD-0.7.2.5226-p4a.iso) = e2db342d6e2130ef911b1089de167a67
SHA256 (7S-FreeNAS-i386-LiveCD-0.7.2.5226-p4a.iso) = 642e9c30af3c555f9d1ea435d88ebbb8f3ce0d3bb12b5530c76a524f6e63541a
MD5 (7S-FreeNAS-amd64-LiveCD-0.7.2.5226-p4a.iso) = 174de4a193cb0b8f42b9a08c5351ad10
SHA256 (7S-FreeNAS-amd64-LiveCD-0.7.2.5226-p4a.iso) = 92def87652e90b7907dd0ebb851e3580bf813f1f7cda9a9d72463ff7efc9f90f

(おそらく)世界初のiBFT対応のFreeBSD起動ドライバの試作品ができました!

2010年6月25日 金曜日

これはWindowsで言う所のF6ドライバと言えば一部の人にはわかるでしょうか?
iBFTとは iSCSI Boot Firmware Table の略で見ての通りiSCSIで起動する為の
情報を詰め込んだものです。通常はNICのファームとして搭載されています。
未確認ですがgPXEでも使えるかと。

iBFTの仕様の詳細については Microsoft のサイトを参照してください。
http://www.microsoft.com/whdc/system/platform/firmware/ibft.mspx

Intel の CTデスクトップも対応しています。これについては少し前の
Windows7を起動させるブログエントリも参照してください。
NICのFirmware(BIOS)に情報を持つので、iSCSIターゲットがすでに存在すれば、
簡単にディスクレス構成が作れるようになります。
TFTP, NFS, DHCP, PXEといった特殊な設定は一切不要で、
NICの設定を間違えていなければローカルのSCSIハードディスクと同じように
アクセスすることが可能になります。

isboot.ko のモジュールはiBFTの処理部分および機能限定iSCSIイニシエータ
から成ります。イニシエータは、当初iscsi_initiator.koの機能を利用するのを
前提でのほほんとお手軽に作成してみましたが、カーネルモードからの
効率的なアクセス方法がわからず、結局自作する羽目に。
初回特典?ってことでしばらくはソース内に残して置くのでカーネルランド
開発の初心者がもがいた苦肉の策をご覧ください(笑)

なお、このイニシエータはキューイングも非同期アクセスもしない原始的な
1個づつ処理するタイプです。ただし、istgtで使っているノウハウを投入して
作ってあるので、普通に使う分には大丈夫かと思います。今後時間があれば
少しづつ改良していきます。

とりあえず、KLDを使ってやりたい事は他にあるので、これは通過点でしかないと
思って頂ければ幸いです。

作成方法ですが、上記のとおりiscsi_initiator.koに依存する予定だった為に
一部のデータ保持・処理方法がiscsi-2.2.4のヘッダファイルに依存しています。
iscsi_initiator.koを利用する、しないにかかわらず、ソースファイルを一緒に
展開しておく必要があります。
コンパイルしてできた isboot.ko 自体は単独で利用する事ができますので、
必要なマシンにコピーしても問題ありません。

以下に作成例を示します。

# cd /usr/src
# tar xvf /path/to/iscsi-2.2.4.tar.gz
# tar xvf /path/to/isboot-0.1.1.tar.gz

# make buildkernel
# make installkernel
or
# cd /usr/src/sys/modules/iscsi/isboot
# make obj
# make depend
# make all
# make install

以上で、/boot/kernel/isboot.ko が出来ているはずです。
モジュールとして使うには、/boot/loader.conf に、

isboot_load=”YES”

という行を追加するだけでOKです。
あとは、iSCSIターゲットを適当なマシンに作成して、NICのBIOSで
そのiSCSIターゲットの名前、IPアドレス等を設定すれば完了です。
マシンを再起動してNICがiSCSIターゲットを発見できれば、その後の処理は
isboot.koが全自動でよろしくやってくれます。

利用するiSCSIターゲットは特にこだわりがなければ、動作確認の取れている
istgt-20100407 以降をお勧めしておきます。

参考までに、
FreeNAS 0.7.1 5127 安定版 には istgt-20100407 が同梱、
FreeNAS 0.7.2 5226 p3 には istgt-20100606 が同梱されています。
FreeNAS 0.7.2 5226 p4 には istgt-20100606 + isboot-0.1.1 が同梱されています。

なお、直接インストールを試すにはOSインストーラにisboot.koの組み込みを
する必要があります。現時点でFreeBSD用イメージは作成していません。
FreeNAS 0.7.2 5226 p4 としてどういう感じになるのかと言う
デモストレーション用を作成しましたのでこちらもお試しください。
FreeNAS 0.7.2 5226 p4 をディスクレスのマシンで起動させれば、
インストールから起動まで試す事ができます。インストール後は、
もちろんFreeNASとしての機能を使えます。

isboot.ko が iBFTを発見してシステムに組み込まれると、以下のような
sysctl MIBが参照できるようになります。現在はすべて読み込み専用です。

net.isboot.version
net.isboot.nic
net.isboot.device
hw.ibft.nic_gateway
hw.ibft.nic_prefix
hw.ibft.target_lun
hw.ibft.target_port
hw.ibft.target_address
hw.ibft.target_name
hw.ibft.initiator_address
hw.ibft.initiator_name

sysctl実行例としてはこんな感じになります。
hw.ibftにNICで設定した値が、net.isbootにFreeBSDが割り当てたデバイス名が
見えるようになります。それぞれの値の意味は書くまでもないですよね…。

net.isboot.version: 0.1
net.isboot.nic: em0
net.isboot.device: da3
hw.ibft.nic_gateway: 0.0.0.0
hw.ibft.nic_prefix: 24
hw.ibft.target_lun: 2
hw.ibft.target_port: 3260
hw.ibft.target_address: 192.168.3.36
hw.ibft.target_name: iqn.2007-09.jp.ne.peach:isboot1
hw.ibft.initiator_address: 192.168.3.48
hw.ibft.initiator_name: iqn.2007-09.jp.ne.peach:pluto

さて、気になるパフォーマンスはというと、こんな感じでした。
Intel PRO/1000 PT Server Adapter を使って接続し、リード動作をさせると、

istgt 20100606 + isboot 0.1 ヘッダとデータダイジェスト双方(CRC32C)を有効
# dd if=/dev/da6 of=/dev/null bs=1m count=1k
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 20.452429 secs (52499477 bytes/sec)

istgt 20100606 + isboot 0.1 ヘッダダイジェストのみ有効
# dd if=/dev/da6 of=/dev/null bs=1m count=1k
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 17.684945 secs (60715022 bytes/sec)

istgt 20100606 + isboot 0.1 ダイジェスト無し
# dd if=/dev/da6 of=/dev/null bs=1m count=1k
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 17.508400 secs (61327239 bytes/sec)

見ての通り52MB/s~61MB/s程度がでます。原始的な試作品としてはまずまずの
結果ではないかと思いますがどうでしょうか?

現在の仕様・制限など:
最初の起動や再接続(接続からLUNの検索)に時間がかかることがある。
ifconfig(8),route(8)などで起動NICの値を修正するべきではないです。
ターゲットへのクリティカルパスが落ちるとどうにもならなくなります。
モジュールのアンロード機能を使うと死ぬ事が多いです。
IPv6機能はテストされていません。
DNSアドレスなどiBFTに規定されている値を設定しません。
現時点ではキューイングやCHAP認証機能がついていません。
静的データによる認証ぐらいはやるべきかも?
iSCSIのパラメータの調整がソース修正以外にできません。
ソケット接続が消失時に運悪く実行中だったXPTコマンドがたぶん停止できません。
iscsi_initiator.koとのセッション委譲などができません。
ソースコードがiscsi_initiator.koの構造体に依存しています。
(最初はこんな予定じゃなかったのですよ!まぁ、あきらめた。)
iscontrol(8)みたいな制御コマンドが付属しません。
接続したら最後、マシンをシャットダウンするか5時間ぐらい?経過するまで、
再接続要求を出しまくります。(デフォルトでは2秒の待機時間で9999回)
なにかしら致命的なエラーが出たら停止する可能性はありますが、
その場合はOSごとハングアップするかpanicしている可能性の方が高いです。
例によってドキュメントがまったくありません。構造と値の取扱いについては
RFC3720を見てください。
最後だけど、カーネルランド初心者なので、おかしい部分とかあったり、
こうしたほうが良いとか何かあれば教えてください。

ダウンロードはこちらから
isboot-0.1.1.tar.gz

http://www.peach.ne.jp/archives/isboot/isboot-0.1.1.tar.gz

isboot-0.1.2.tar.gz

http://www.peach.ne.jp/archives/isboot/isboot-0.1.2.tar.gz

最新版を使ってください。

FreeNAS 0.7.2 5226 p4
http://shell.peach.ne.jp/aoyama/archives/1181

danny さん作のiscsi initiator モジュール:
ftp://ftp.cs.huji.ac.il/users/danny/freebsd/iscsi-2.2.4.tar.gz

※補足※公開前にバグが出てしまった為に0.1から0.1.1にあがりました。

追記:
i386版でloader.confから読むとクラッシュする問題があったため
isboot-0.1.2に差し替えました。

カーネルランドってなに?

2010年6月21日 月曜日

今回、初めてKLDなモジュールを作成しているわけですが、
Load/Unloadの機能とか便利だけど作るのが大変です。。。
ええ、Unloadするには当然メモリ参照を0にする必要があるわけで、
変なスレッドが掴んでいると即パニック=サーバ再起動になる。
これは当然の話ではあるけども。
おかげでuptime五分ぐらいでパニック再起動が続く。
あ、もちろんロジック自体はユーザランドで仮作成して仮想マシンで
検証しています。

そんなわけで、
1.KLDモジュールの試作。
2.とある機能の実験。
3.某所からの要望(謎)。
などを少しづつ進めています。

カーネルランドの進捗は基本パーツ(例外処理を除く)の移植完了で4割程度
といった感じですかね。このノウハウはistgtの今後の展開にも役立つと思う
のでじっくり取り組んでみたいところ。
来月末ぐらいには実験リリースできるようにがんばりたい。

FreeBSDで物理メモリを参照する方法

2010年6月16日 水曜日

任意のページを参照する方法はよくわかりません(汗)
下位メモリ(BIOSがある領域)は machine/vmparam.h にある KERNBASE から
直接参照できるようです。
たとえば、paddrに物理アドレスのオフセットが入っていると仮定すると、

vaddr = paddr + KERNBASE

これで vaddr にポインタでアクセスできるアドレスが返ってくるようです。
(実際はvaddrの型にキャストが必要でしょう)
逆に仮想アドレスから戻す場合は KERNBASE を引いて、uintptr_t/intptr_tで
キャストすると物理オフセットになります。

適当な例:

#include <sys/types.h>
#include <vm/vm.h>
#include <vm/pmap.h>
#include <machine/vmparam.h>

uint32_t paddr;
uint8_t *vaddr;

paddr = 0x80000;
vaddr = (uint8_t *)(paddr + KERNBASE);
paddr = (uint32_t)(uintptr_t)(vaddr - KERNBASE);

なぜこんな事をやっているかと言えば、FreeBSDのカーネルモジュールを
作ってみようと思ったからなのです。こちらは、

# man module

で必要な情報が得られますし、/usr/share/examples/kld/cdev/module に
サンプルも入っているので作成には困らないと思います。

動作確認用のFreeNAS 0.7.2(7S-5226-p3)版をアップしました

2010年6月13日 日曜日

現在、WS2008R2(Active Directory) + Win7の構成で動作確認を行って
います。それ以外の構成での確認がまったく出来ていないので、上記以外の
環境をお持ちであればp3での動作確認をお願いします。

変更点:
geom_nopが起動時にロードされない問題修正
最初のプールにAFTを利用できなかった問題修正
ZFSミラー化ログデバイスの対応
Samba3.5向けに設定を調整
ActiveDirectory用設定の改善(未完成)

SVN変更点は以下を参照してください。
http://freenas.svn.sourceforge.net/viewvc/freenas/branches/0.7/?view=log

あくまで動作確認用ですのでテスト環境以外への導入はサポートできません。
SVN5226版にHVパッチと以下の新チップ識別用コードの追加および
以下のバックポートドライバが含まれています。
なにか問題があれば報告をお願いします。

This unofficial version is using for test only.
It includes SVN r5226 + Hyper-V patch + identifier fix
+ backport drivers + some ATA fixes.
If you have a problem, please report me about it.

Unofficial only:
ATI IXP700/IXP800 AHCI, IXP700 IDE
Intel ICH10 AHCI
NVIDIA MCP65/MCP67/MCP77/MCP79/MCP89 AHCI, MCP79 IDE
Realtek 8102EL/8168DP/8111DP/8168E/8111E GbE
Marvell 88SX6042/88SX7042/88SX6102/88SX6111/88SX6141

em driver 7.0.5/1.0.1 (Intel PRO/1000 family)
ixbge driver 2.2.0 (Intel 10 Gigabit family)
re 2010/05/07 (Realtek 8169/8111 etc.)
msk 2010/05/04 (Marvell Yukon)

ntfs-3g 2010.3.6

警告:ZFS version 13 にアップグレードすると過去の版で利用不可になります。
WARNING: If upgraded to ZFS version 13, you can not use from old version.

for 32bit version
7S-FreeNAS-i386-LiveCD-0.7.2.5226-p3.iso

for 64bit version
7S-FreeNAS-amd64-LiveCD-0.7.2.5226-p3.iso

※アップグレード手順はこちらを参考にしてください。
http://shell.peach.ne.jp/aoyama/archives/1038

MD5 (7S-FreeNAS-i386-LiveCD-0.7.2.5226-p3.iso) = a3b6f837b58222929468745880431c14
SHA256 (7S-FreeNAS-i386-LiveCD-0.7.2.5226-p3.iso) = 6c67166361566f690742039069393b3be670606b51e252759faab286d55c64c5
MD5 (7S-FreeNAS-amd64-LiveCD-0.7.2.5226-p3.iso) = 7334338f28490b45fb773d4b2705d20a
SHA256 (7S-FreeNAS-amd64-LiveCD-0.7.2.5226-p3.iso) = 8f04a5912cb7788672d5fae8210696f66d4899953ef76a2e09317e06200da5d2

動作確認用のFreeNAS 0.7.2(7S-5226-p2)版をアップしました

2010年6月11日 金曜日

コミット前に動作確認およびバグ出しの為に公開します。

WebGUIから既存プールへキャッシュデバイスを追加、削除するコマンドを
新設しました。(ディスク|ZFS|プール|ツール)

また、仮想デバイスの作成時に4KBセクタで利用するかどうかを選択できるように
なりました。このチェックをONにしておくとプールの作成・破棄などのWebGUI
からの操作が4KBセクタであると仮定して動作するようになります。
(まだ不具合があるかもしれません)

それから、zfskerntuneパッケージで提供しているkmemおよびarc_max /
arc_minの調整をカーネルレベルで修正するパッチを適用しました。
ただし、デフォルトで設定する値はパッケージ版より甘い設定ですので、従来の
パッケージを使っている人は設定しなおした方が良いと思います。

※補足※
現時点ではすべてのデバイスが4KBであるか、そうでないかしか見ていません。
混在はできないのでまとめてAFT指定してください。
このため既存プールに対しては現時点では未対応です。
そもそも混在できても最大速度を得られないような気がする。

キャッシュデバイスの追加と削除方法:
1.ディスク|マネージメント で追加したいデバイスを「ファイルシステム事前
  フォーマット」を「ZFS storage pool device」で追加します。
2.ディスク|ZFS|プール|仮想デバイス でキャッシュデバイスタイプとして
  追加します。
3.ディスク|ZFS|プール|ツール でコマンドに「cache add」または
  「cache remove」を選び、追加・削除するプール、および、ステップ2で
  追加したデバイスを選択します。
4.「コマンド送信」ボタンを押すと実行されます。

変更点:
ZFSキャッシュデバイスをWebGUIから追加削除できるようになりました。
ZFSプールに対して4KBセクタを考慮するようになりました。
i386版でデフォルトで割り当てるkmem最大値を増加しました。
zfskerntune.phpの機能を一部取り入れました。(デフォルトは甘め設定)
ローカルリビジョンを内部表記に追加するようにしました。(暫定)

SVN変更点は以下を参照してください。
http://freenas.svn.sourceforge.net/viewvc/freenas/branches/0.7/?view=log

あくまで動作確認用ですのでテスト環境以外への導入はサポートできません。
SVN5226版にHVパッチと以下の新チップ識別用コードの追加および
以下のバックポートドライバが含まれています。
なにか問題があれば報告をお願いします。

This unofficial version is using for test only.
It includes SVN r5226 + Hyper-V patch + identifier fix
+ backport drivers + some ATA fixes.
If you have a problem, please report me about it.

Unofficial only:
ATI IXP700/IXP800 AHCI, IXP700 IDE
Intel ICH10 AHCI
NVIDIA MCP65/MCP67/MCP77/MCP79/MCP89 AHCI, MCP79 IDE
Realtek 8102EL/8168DP/8111DP/8168E/8111E GbE
Marvell 88SX6042/88SX7042/88SX6102/88SX6111/88SX6141

em driver 7.0.5/1.0.1 (Intel PRO/1000 family)
ixbge driver 2.2.0 (Intel 10 Gigabit family)
re 2010/05/07 (Realtek 8169/8111 etc.)
msk 2010/05/04 (Marvell Yukon)

ntfs-3g 2010.3.6

警告:ZFS version 13 にアップグレードすると過去の版で利用不可になります。
WARNING: If upgraded to ZFS version 13, you can not use from old version.

for 32bit version
7S-FreeNAS-i386-LiveCD-0.7.2.5226-p2.iso

for 64bit version
7S-FreeNAS-amd64-LiveCD-0.7.2.5226-p2.iso

※アップグレード手順はこちらを参考にしてください。
http://shell.peach.ne.jp/aoyama/archives/1038

MD5 (7S-FreeNAS-i386-LiveCD-0.7.2.5226-p2.iso) = 3bdeb7fe543d718d924f55df57848a96
SHA256 (7S-FreeNAS-i386-LiveCD-0.7.2.5226-p2.iso) = d507e94f4c3d42cc82ab8c2cbdf083b64c2e3ee12ab7112a898b62cde4c5fa6f
MD5 (7S-FreeNAS-amd64-LiveCD-0.7.2.5226-p2.iso) = b377965684c45a758a30b40a672e3251
SHA256 (7S-FreeNAS-amd64-LiveCD-0.7.2.5226-p2.iso) = a827adc9ca4d5b2f5426a798ae9975d5adaacf27d828d06622c13675978330d6

ZFS用カーネルメモリの設定をWebGUIから簡単に行うパッケージ(お試し版)

2010年6月9日 水曜日

現在、カーネルメモリとarc設定の機能をカーネル側に埋め込む為の準備を
しています。おそらく次の7S版で実装できると思います。

FreeNASマシンの物理メモリを選択してSaveをクリックするだけです。
もちろんマシン自体を再起動しないと設定は有効になりません。

なおVirtualBoxを併用する場合は仮想マシン用に利用するメモリを差し引いて設定してください。

ZFS kernel tune (WebGUI extension)
http://www.peach.ne.jp/archives/freenas/test/zfskerntune-20100609.tar.gz

インストール例:

# mkdir /mnt/data/zfskerntune
# cd /mnt/data/zfskerntune
# fetch http://www.peach.ne.jp/archives/freenas/test/zfskerntune-20100609.tar.gz
# tar xvf zfskerntune-20100609.tar.gz
# cd zfskerntune
# ./zfskerntune-install.php
 

変更点:
4GB以上のメモリ時の設定を調整しました。
prefetchの設定がv6で表示されない問題を修正しました。
vfs.zfs.zil_disable を変更可能にしました。
(ZILを無効にすると同期書き込みが保障されないのでUPSがない場合は
書き込みしたはずのデータが無くなる可能性が高い事に注意)

※再起動するとWebGUIは消えるので必要になったら再インストールしてください。
※バージョンは依存しないはずですが、4967以降をサポート対象にします。

動作確認用のFreeNAS 0.7.2(5226)版をアップしました

2010年6月6日 日曜日

istgt-20100606を同梱したバージョンです。
キャッシュとログデバイスをWebGUIから構成できるようになりました。
これはSSDを用いて高速化する為のもので、
キャッシュデバイスは読み込み100MB/s以上、
ログデバイスは書き込み100MB/s以上、
は出せないとあまり意味はないと思われます。

補足:
WebGUIから既存プールへの追加はまだサポートされていません。
また、ログデバイスは削除できませんのでご注意ください。
# zpool add POOLNAME cache adXXX
のようなコマンドで追加できます。

以下のバージョンにアップデートされました。
istgt 20100606
HV patch 20100528

変更点:
ZFS キャッシュとログデバイスのサポートを開始しました。

SVN変更点は以下を参照してください。
http://freenas.svn.sourceforge.net/viewvc/freenas/branches/0.7/?view=log

あくまで動作確認用ですのでテスト環境以外への導入はサポートできません。
SVN5226版にHVパッチと以下の新チップ識別用コードの追加および
以下のバックポートドライバが含まれています。
なにか問題があれば報告をお願いします。

This unofficial version is using for test only.
It includes SVN r5226 + Hyper-V patch + identifier fix
+ backport drivers + some ATA fixes.
If you have a problem, please report me about it.

Unofficial only:
ATI IXP700/IXP800 AHCI, IXP700 IDE
Intel ICH10 AHCI
NVIDIA MCP65/MCP67/MCP77/MCP79/MCP89 AHCI, MCP79 IDE
Realtek 8102EL/8168DP/8111DP/8168E/8111E GbE
Marvell 88SX6042/88SX7042/88SX6102/88SX6111/88SX6141

em driver 7.0.5/1.0.1 (Intel PRO/1000 family)
ixbge driver 2.2.0 (Intel 10 Gigabit family)
re 2010/05/07 (Realtek 8169/8111 etc.)
msk 2010/05/04 (Marvell Yukon)

ntfs-3g 2010.3.6

警告:ZFS version 13 にアップグレードすると過去の版で利用不可になります。
WARNING: If upgraded to ZFS version 13, you can not use from old version.

for 32bit version
7S-FreeNAS-i386-LiveCD-0.7.2.5226.iso

for 64bit version
7S-FreeNAS-amd64-LiveCD-0.7.2.5226.iso

※アップグレード手順はこちらを参考にしてください。
http://shell.peach.ne.jp/aoyama/archives/1038

MD5 (7S-FreeNAS-i386-LiveCD-0.7.2.5226.iso) = 1f38b4b609e22ec47016d7f2cede175c
SHA256 (7S-FreeNAS-i386-LiveCD-0.7.2.5226.iso) = 6201e37fbc345417c7ebfd9ca5a6cb93eb1f771fa55676f5bb1bd66798a023cc
MD5 (7S-FreeNAS-amd64-LiveCD-0.7.2.5226.iso) = 856e7908c3f228548a7380bb64f1baf7
SHA256 (7S-FreeNAS-amd64-LiveCD-0.7.2.5226.iso) = 2651061bc17d2152cc6ce7a4d1ea60ea039e72ed82c02c1ebf79c106793f6012