ラベル ZFS の投稿を表示しています。 すべての投稿を表示
ラベル ZFS の投稿を表示しています。 すべての投稿を表示

2011年12月21日水曜日

Debian/kFreeBSD(wheezy)に9.0のカーネルが登場

Debian流にFreeBSDが利用できることで期待のDebian/kFreeBSD。 そのテスト版に、そろそろ正式版リリース予定のFreeBSD 9.0のカーネル類が提供されたようなので、 早速試してみた。

まずはカーネル。直接wheezyをインストールしようと試したもののうまく行かず、 今回もsqueezeからのアップグレードでwheezyを入れた。 アップグレード方法はlinuxなdebianと同じく、sources.listを書き換えて更新するだけ。

FreeBSDといえばZFS。8.3以降はpoolのバージョンが28になるということで、 こちらもv28になっていることが確認できた。 zfsutilsをインストールすることで利用できるようになる。

FreeBSDといえばもうひとつ、jailがある。こちらも最近ようやくDebian/kFreeBSDに提供されて、 wheezy以降なら利用できる。debianなのでjail環境はdebootstrapで一発作成。

そして、BSDといえばpfも使える。まだpflogは使えない(?)ようだが、 とりあえずpfそのものを有効にすることはできる。

これ以外にも追加されつつある機能はいろいろとあるもよう。 ただ、testingだけあって安定性の面でやはりまだ難がある (この記事を書くにあたっても、1度ファイルシステムが壊れた) ようなので、常用するには難があるかもしれない。

2011年8月9日火曜日

FreeBSD 9.0-BETA1が登場したらしい

我が家のサーバとして活躍中のFreeBSD。
その最新バージョン9のBETA1版が登場したらしいので、早速ダウンロードしてインストールしてみた。

CDから起動

CDを入れて起動。なにやらBoot Loaderの雰囲気も8.0から変わっている。

インストールするか、Shellに落ちるか、LiveCDとして起動するかを選択できるらしい。 今回はinstallを選択する。

パーティショニング

パーティショニングには、Guided、Manual、Shellの3つのメニューがある。 Guidedはディスク全体または選択したパーティションを自動で割り当てる。Manualは自分でパーティションサイズやファイルシステムを選び割り当てる。

試しにfreebsd-zfsにしてみたが…

やはりインストーラを用いたManual設定ではZFSはうまくいかないようである。 Shellから直接叩くしか無いのだろうか…?

仕方がないので/をUFSとしファイルを展開する。

設定

展開終了後、引き続きシステムの設定を行う。設定項目は以下の通り。 基本的にFreeBSD 8と同じように見えるが、細かい変更がある部分もある。 ユーザアカウント設定は、useraddコマンドを実行しただけのようだったり、 それならOpenBSDっぽく全部CUIでいいじゃないかと言いたくなるところもあるが、 おそらくそのうち改善されるのであろう。

  • rootパスワード
  • NIC選択
  • IPv4/DHCP設定
  • IPv6/アドレス割り当て設定
  • DNS設定
  • タイムゾーン設定
  • サービス設定(sshd、moused、ntpd、powerd)
  • ユーザアカウント設定
設定が終了したらexitしてrebootする。

HDDから起動

CDをejectしてインストールしたHDDから起動。 ZFS filesystem versionは5、ZFS storage pool versionは28となっている。

BETA1ということもあり、kernel panicしたりstack trace吐いたりとまだいろいろと不具合は残っているようだが、 RELEASEに期待したい。

www.FreeBSD.org
http://www.freebsd.org/

2011年5月24日火曜日

FreeBSD 8.2とZFSでiSCSI targetを作る

SolarisのZFSではiSCSI targetを楽に作成できるらしいが、FreeBSDのZFSでは未だにiSCSI targetがサポートされていない…らしい。そこで、netbsd-iscsi-targetを利用し、FreeBSDのZFSでも似たようなことをできるようにしてみる。

iSCSI target用ツールをビルド

portsに入っているのは少々古いようなので、NetBSDからソースで持ってくる。
# cd /usr/miku/src
# fetch http://ftp.jaist.ac.jp/pub/NetBSD/packages/distfiles/netbsd-iscsi-20110222.tar.gz
# tar xzf netbsd-iscsi-20110222.tar.gz
# ./configure --prefix=/usr/miku
# make
おそらくfuseが入っておらずinitiatorのビルドに失敗するので、libiscsiとtargetのみを手動でインストールする。
# cd src/lib
# make install
# cd ../target
# make install
もしソース持ってきて野良ビルドするのが嫌であれば、pkgsrcを導入しnet/netbsd-iscsi-targetを入れるという手もある。

ZVOLを作成

iSCSI targetで利用するボリュームを作成する。 ZVOLはZFS上に置かれ、ZFS同様にリサイズや圧縮が可能で、かつ普通のHDDと同じようにパーティションを作成したりファイルシステムを作成できる。
プールksysに10GBのボリュームiscsivol0を作成するコマンドは以下のとおり。
# zfs create -V 10G ksys/iscsivol0
ここで作成したZVOLは、/dev/zvol/ksys/iscsivol0に置かれる。

iSCSI targetを設定

iSCSIの設定ファイルは/etc/iscsiに置かれるので、最初にmkdir /etc/iscsiしておく。その中にファイルtargetsを作成し、以下のように設定を書く。
extent0 /dev/zvol/ksys/iscsivol0 0 10G
target0 rw extent0 10.39.39.0/24
使用するボリュームの範囲をextent0で指定し、公開されるtarget0のオプションでそれを指定すればよい模様。 複数公開する場合は、extent1・target1、extent2・target2...と追加していく。

iSCSI targetの起動

iSCSI targetの起動は、rootでiscsi-targetを実行するだけ。
# iscsi-target
Reading configuration from `/etc/iscsi/targets'
target0:rw:10.39.39.0/24
        extent0:/dev/zvol/ksys/iscsivol0:0:10737418240
DISK: 1 logical unit (20971520 blocks, 512 bytes/block), type iscsi fs
DISK: LUN 0: 10240 MB disk storage for "target0"
TARGET: iSCSI Qualified Name (IQN) is iqn.1994-04.org.netbsd.iscsi-target

接続テスト

Debian側にopen-iscsiによるiSCSI initiatorを用意し、iSCSIを実際に利用してみる。Debianにはaptitude install open-iscsiでインストールできる。

まずiSCSI targetのリストを受け取る。
# iscsiadm -m discovery -t sendtargets -p 10.39.39.40
10.39.39.40:3260,1 iqn.1994-04.org.netbsd.iscsi-target:target0
そしてiSCSIにログインする。
# iscsiadm -m node -T iqn.1994-04.org.netbsd.iscsi-target:target0 -l
Logging in to [iface: default, target: iqn.1994-04.org.netbsd.iscsi-target:target0, portal: 10.39.39.40,3260]
Login to [iface: default, target: iqn.1994-04.org.netbsd.iscsi-target:target0, portal: 10.39.39.40,3260]: successful
また、ログアウトは以下のように行なう。
# iscsiadm -m node -T iqn.1994-04.org.netbsd.iscsi-target:target0 -u
Logging out of session [sid: 1, target: iqn.1994-04.org.netbsd.iscsi-target:target0, portal: 10.39.39.40,3260]
Logout of [sid: 1, target: iqn.1994-04.org.netbsd.iscsi-target:target0, portal: 10.39.39.40,3260]: successful
あとはいつも通りfdiskするなりmkfsするなりして使うだけ。

余談

本当は、以下のようにzfsのオプションでiscsiの共有を指定できればよいのだが、このとおり怒られてしまう。
# zfs set shareiscsi=on ksys/iscsivol0
property 'shareiscsi' not supported on FreeBSD: permission denied
そこで、ZVOL作成時にオプションとして付けたところ、
# zfs create -V 10G -o shareiscsi=on ksys/iscsivol2
# % zfs get shareiscsi ksys/iscsivol2
NAME            PROPERTY    VALUE       SOURCE
ksys/iscsivol2  shareiscsi  on          local
ONにできてしまった。これは一体…