TOP
«
»

FreeBSD/ZFSでPB(ペタバイト)ファイルをiSCSIに使ってHyper-Vで利用してみる

PBとはなんぞと言うとただの単位です。
1PB=1024TBとテラバイトのひとつ上の単位です。
当然というか現時点でそんなアレイはそうそうないので、
スパースファイル(穴あきファイル)を使います。
さらにZFS圧縮をオンにして急激にデータが増えた場合に死に難くしました。

# zfs create -o atime=off -o compression=on tank/iscsiz
# zfs create -o atime=off -o compression=gzip-9 tank/iscsiz9

# extents       file                            start   length
extent0         /tank/iscsiz/istgt-test-2PB-1MB 0       2147483647MB
extent1         /tank/iscsiz9/istgt-test-1EB    0       1EB
extent2         /tank/iscsiz9/istgt-test-1PB    0       1PB
extent3         /tank/iscsiz9/istgt-test-2PB    0       2PB
extent4         /tank/iscsiz9/istgt-test-256PB  0       256PB
extent5         /tank/iscsiz9/istgt-test-2TB    0       2TB
extent6         /tank/iscsiz9/istgt-test-200GB  0       200GB
#

今回はターゲットの設定を上記のように行い、
WS2008(64ビット版)に持ってきました。

ディスクの初期化では必ずGPTを指定します。
そうしないと2TB止まりなので。
パーティションを作成するのですが、GUIの作成ウィザードが
MB単位で要求してくるからGB以上の計算をするのがめんどくさい。
今は単一ユニットで1TBの時代だから、
そろそろGB単位で指定してもよいのではとか思ったり。
続いてNTFSフォーマットですが、
アロケーションユニットを64Kに明示しないと失敗します。

Windows Server 2008 64ビット版で作成できるNTFS最大サイズは268435455MBです。
これは256TB(=268435456MB)-1MBですね。
試してみると2PB以上はあきらかに表示がおかしい。
よくよく見てみると、MB単位の表示部分が符号付き32ビットじゃないのだろうか(汗)

  

現状だとこうなる↓
GUI上の最大ディスクサイズ 2147483647MB (=2PB-1MB)
NTFS最大サイズ 268435455MB (=256TB-1MB)

#数値の計算はFreeBSD上でbcを使って行いました

さて、256TB-1MBをクイックフォーマットしたらすぐに戻ってこない。
さすがにかなり時間かかるものなのね。
接続して認識するまでだけでもデバッグログが4GB超えちゃう(汗汗)
メモリ8GBとかぜんぜん足りないいいいいいいっ。
正常マウントするのに約1分かかります。
2PBに比べたら2TBのディスクとかはかわいいものですね(笑)

さらにHyper-V用に1024GBの仮想イメージを作成する。
容量固定1TBを作成しました。
作成時間はおよそ6時間ぐらい。
スループットにして3GB/min, 50MB/secぐらいか。

作成した時の環境は
FreeBSD 7.1(2008/12/14に取得) ZFS 圧縮ON、
データ・ヘッダダイジェスト共に有効、
2本のMCSラウンドロビン接続(+管理用1本の計3系統)
(それぞれのLANにNETGEAR GS116を配備)
この時のCPU使用率はだいたい15~20%ぐらい。

  

作成できたらHyper-Vに設定してFreeBSD 7.1 RC1 amd64を導入します。
DHCPが・・・というコメントを頂いたので、
今回はDHCPでセットアップしてみました。

Hyper-Vマネージャでレガシーネットワークアダプタを追加して、
上記で作成した仮想HDDを追加して、仮想マシンを起動!
FreeBSDのネットワークの設定ではExtra Options to ifconfigの欄に
media 100baseTX mediaopt full-duplex
といれます。

インストール後のリセットで停止するのでタスクマネージャから終了させて、
自作パッチを適用する。
(このあたりの手順については以前の投稿1投稿2をご覧くださいな)

FreeBSDに限って言えばVirtualServerやVirtualPCと比べるとHyper-Vの方が
だいぶ安定している感じがします。
というかVirtualServerがダメダメすぎる。
個人的印象は Hyper-V > VirtualPC >>> VirtualServer

インストールが終わったら、portsnap fecth/extractで最新portsにして
mgとかbashとかちょこっと入れてみた。
他にもいろいろやっていたらiscsi-targetが死んでしまった(汗)
ああっ、バグありますね。はい。ごめんなさいZzz。

[root@pb ~]# uname -a
FreeBSD pb.peach.ne.jp.private 7.1-RC1 FreeBSD 7.1-RC1 #0: Mon Dec 22 19:10:59 J
ST 2008     root@pb.peach.ne.jp.private:/usr/obj/usr/src/sys/GENERIC  amd64
[root@pb ~]# ifconfig -a
de0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:15:5d:02:21:1f
        inet 192.168.2.166 netmask 0xffffff00 broadcast 192.168.2.255
        media: Ethernet 100baseTX <full-duplex>
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
[root@pb ~]# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad0s1a    989M    412M    498M    45%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad0s1e    989M    1.7M    908M     0%    /tmp
/dev/ad0s1f     19G    1.9G     16G    11%    /usr
/dev/ad0s1g    959G     58M    882G     0%    /usr/local
/dev/ad0s1d    7.7G     76M    7.1G     1%    /var
[root@pb ~]#

タグ: , , , , ,

コメントをどうぞ