2007/08/05

ZFSを使いたい

ZFSが使いたくてNexentaOS Alpha 7をVMwareにインストールしてみました。
$ uname -a
SunOS julie 5.11 NexentaOS_20070402 i86pc i386 i86pc Solaris


NexentaOSはDebianベースのシステムで、OpenSolarisのカーネルとGNUのツールを使用しているらしいです。

ZFSで何がしたいという訳ではないのですが、ちょっと興味があったので使ってみることにしました。

そういえば昔、JFSやXFSのLinux kernel 2.2用のパッチが出た時も使ってみたなぁ。
本当に使ってみただけでしたが。


今回やったのは、

・ZFSストレージプールの作成
・ZFS ファイルシステムの作成

と、あとはZFSファイルシステムを作った後で諸々の事情でNexentaOSを再インストールしたので、

・既存のZFSファイルシステムのインポート

をしてみました。


○ 初めてZFS領域作成
root@julie:~# zpool create share c0d1
root@julie:~# df -h
Filesystem size used avail capacity Mounted on
/dev/dsk/c0d0s0 1.9G 1.6G 236M 88% /
/devices 0K 0K 0K 0% /devices
/dev 0K 0K 0K 0% /dev
ctfs 0K 0K 0K 0% /system/contract
proc 0K 0K 0K 0% /proc
mnttab 0K 0K 0K 0% /etc/mnttab
swap 694M 584K 694M 1% /etc/svc/volatile
objfs 0K 0K 0K 0% /system/object
/usr/lib/libc/libc_hwcap1.so.1
1.9G 1.6G 236M 88% /lib/libc.so.1
fd 0K 0K 0K 0% /dev/fd
/dev/dsk/c0d0s3 958M 75M 825M 9% /var
swap 694M 0K 694M 0% /tmp
swap 694M 160K 694M 1% /var/run
/dev/dsk/c0d0s4 4.5G 4.6M 4.4G 1% /opt
home 2.0G 1.2M 2.0G 1% /export/home
share 125G 18K 125G 1% /share

"zpool create"の実行だけで
・ストレージプールの作成
・プールと同じ名前のファイルシステムとマウントポイントを作成
・マウント
を自動で行うようです。
便利なような怖いような。

c0d1というのはVMwareの仮想ディスクではなく本物のハードディスクです。
shareはそのハードディスク全体にして、その下にユーザーのホームディレクトリやSamba/NFS共有ディレクトリを作ろうかと考えました。

で、Samba共有用のディレクトリshare/shareを作成しました。
root@julie:~# zfs create  share/share


share/shareをNFS共有ディレクトリにします。
root@julie:~# zfs set sharenfs=rw share/share


これだけで、NFSクライアントからshare/shareを共有でき、さらにNexenta再起動後も有効になってました。


○ 既存のZFS領域をインポート
上記の手順で一度ZFS領域を作成したのですが、ここでNexentaを再インストールしました。
諸々の事情です。

zpool importを使ってできたのですが、"-f"をつけないといけないみたいです。
root@julie:~# zpool import share
cannot import 'share': pool may be in use from other system
use '-f' to import anyway
root@julie:~# zpool import -f share


----
NexentaOS Alpha 7を使っての問題点
ひとつ大きな問題が発生しています。

ディスク「c0d1」は250GBくらいあるハードディスクなのですが、半分しか認識していません。
       Total disk size is 16709 cylinders
Cylinder size is 16065 (512 byte) blocks

Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
1 Linux native 0 30400 30401 100


ちなみに同じハードディスクをVMwareのDebianで認識させたところ全領域認識できたみたいです。
なお、最初は/dev/hdb2がありませんでした。
Debianで/dev/hdb2を作成し、typeに"ee"を指定しました。
Disk /dev/hdb: 250.0 GB, 250056737280 bytes
256 heads, 63 sectors/track, 30282 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 16644 134216459+ ee EFI GPT
/dev/hdb2 16644 30282 109977588 ee EFI GPT


上記のようにDebianで/dev/hdb2を作成した後Nexentaで参照すると、次のようになっていました。
       Total disk size is 16709 cylinders
Cylinder size is 16065 (512 byte) blocks

Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
1 EFI 0 16709 16710 100
2 EFI 16709 30400 13692 82


100% + 82%で182%ですか?
限界を越えたスーパーサイヤ人みたいです。

(2007/8/8 追記)
かなり怪しい感じですが、一応250GB位認識されるようになりました。
ZFSでハードディスクをフルに使えるようにする

0 件のコメント: