Mac で ZFS(iSCSI) を使ってみた。

前回はフォーマットしていたので、せっかくなので ZFS でマウントさせてみました。

んー勘違いしている気がしてきた、これ単にブロックデバイスを zpool に追加してるだけで、
ZFS をそのまま使っているワケじゃないですね、あほだな自分。

目的

SolarisZFSiSCSI を有効にして Mac から認識させてそのまま Mac で ZFS ファイルシステムとして使う。

準備

VMware で HD を追加する
VMware で HD を追加する posted by (C)voluntas

  • Mac で ZFS を使えるように設定しておく

この3点だけで出来ました。

Solaris

bash-3.2# iostat -En
c1t0d0           Soft Errors: 0 Hard Errors: 0 Transport Errors: 0 
Vendor: VMware,  Product: VMware Virtual S Revision: 1.0  Serial No:  
Size: 10.74GB <10737418240 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0 
Illegal Request: 0 Predictive Failure Analysis: 0 
c0t0d0           Soft Errors: 0 Hard Errors: 9 Transport Errors: 0 
Vendor: NECVMWar Product: VMware IDE CDR10 Revision: 1.00 Serial No:  
Size: 0.00GB <0 bytes>
Media Error: 0 Device Not Ready: 9 No Device: 0 Recoverable: 0 
Illegal Request: 0 Predictive Failure Analysis: 0 
c1t1d0           Soft Errors: 0 Hard Errors: 0 Transport Errors: 0 
Vendor: VMware,  Product: VMware Virtual S Revision: 1.0  Serial No:  
Size: 1.07GB <1073741824 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0 
Illegal Request: 0 Predictive Failure Analysis: 0 
c1t2d0           Soft Errors: 0 Hard Errors: 0 Transport Errors: 0 
Vendor: VMware,  Product: VMware Virtual S Revision: 1.0  Serial No:  
Size: 1.07GB <1073741824 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0 
Illegal Request: 0 Predictive Failure Analysis: 0 
c1t3d0           Soft Errors: 0 Hard Errors: 0 Transport Errors: 0 
Vendor: VMware,  Product: VMware Virtual S Revision: 1.0  Serial No:  
Size: 1.07GB <1073741824 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0 
Illegal Request: 0 Predictive Failure Analysis: 0 


bash-3.2# zpool create -f tank raidz c1t1d0 c1t2d0 c1t3d0

bash-3.2# zpool list
NAME    SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
rpool  9.94G  6.04G  3.89G    60%  ONLINE  -
tank   2.95G  1.37M  2.95G     0%  ONLINE  -

bash-3.2# zfs list
NAME                USED  AVAIL  REFER  MOUNTPOINT
rpool              6.44G  3.34G    36K  /rpool
rpool/ROOT         5.44G  3.34G    18K  legacy
rpool/ROOT/snv_97  5.44G  3.34G  5.44G  /
rpool/dump          512M  3.34G   512M  -
rpool/export         38K  3.34G    19K  /export
rpool/export/home    19K  3.34G    19K  /export/home
rpool/swap          512M  3.74G   106M  -
tank                102K  1.94G  24.0K  /tank

bash-3.2# zfs create -V 1g tank/zfs
bash-3.2# zfs list
NAME                USED  AVAIL  REFER  MOUNTPOINT
rpool              6.44G  3.34G    36K  /rpool
rpool/ROOT         5.44G  3.34G    18K  legacy
rpool/ROOT/snv_97  5.44G  3.34G  5.44G  /
rpool/dump          512M  3.34G   512M  -
rpool/export         38K  3.34G    19K  /export
rpool/export/home    19K  3.34G    19K  /export/home
rpool/swap          512M  3.74G   106M  -
tank               1.00G   958M  24.0K  /tank
tank/zfs              1G  1.94G  21.3K  -

bash-3.2# zfs get all tank/zfs
NAME      PROPERTY         VALUE                    SOURCE
tank/zfs  type             volume                   -
tank/zfs  creation         木  9月  4 12:45 2008  -
tank/zfs  used             1G                       -
tank/zfs  available        1.94G                    -
tank/zfs  referenced       21.3K                    -
tank/zfs  compressratio    1.00x                    -
tank/zfs  reservation      none                     default
tank/zfs  volsize          1G                       -
tank/zfs  volblocksize     8K                       -
tank/zfs  checksum         on                       default
tank/zfs  compression      off                      default
tank/zfs  readonly         off                      default
tank/zfs  shareiscsi       on                       local
tank/zfs  copies           1                        default
tank/zfs  refreservation   1G                       local
tank/zfs  primarycache     all                      default
tank/zfs  secondarycache   all                      default

bash-3.2# iscsitadm list target -v 
Target: tank/zfs
    iSCSI Name: iqn.xxxx-xx.com.sun:xx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    Alias: tank/zfs
    Connections: 0
    ACL list:
    TPGT list:
    LUN information:
        LUN: 0
            GUID: 0
            VID: SUN
            PID: SOLARIS
            Type: disk
            Size: 1.0G
            Backing store: /dev/zvol/rdsk/tank/zfs
            Status: online

Mac 側(ZFS が使えるようになっていること前提)

iSCSI
iSCSI posted by (C)voluntas

disk1 を確認。

$ sudo zpool create tank /dev/disk1
$ zpool list
NAME                    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
tank                   1016M    553K   1015M     0%  ONLINE     -
$ zfs list
NAME   USED  AVAIL  REFER  MOUNTPOINT
tank   548K   983M   462K  /Volumes/tank

まうんとした ZFS
まうんとした ZFS posted by (C)voluntas

読み書き無事に出来ます。

感想

あとは権限を少し変更してやれば気軽に使えるようになりました。
毎回マウントするのは結構面倒ですけどね ... Snow Leopard ではこの手間が無くなると信じたい。

しかしこれでは zvol を使ってるので、あまり嬉しくはないですね。 zvol 使わないで .... できるのかな。むしろ zvol 使わない方法をやりたいのであって、今回のエントリーはただ回りくどいだけだな。まだまだ勉強せねば。

ん...? 普通に zpool してるだけで zfs list に追加されているから一応は問題ないのか?やばいわからないくなってきた。ZFS 詳しい人に是非聞きたいなぁ。

要調査