Ellinikonblue.com Weblog

夢は夢のまま終わらせない…

Posted on Jun 02, 2014 at 20:29

NAS4Free で ZFS を使う #2

 AC アダプタの初期不良でいきなり頓挫しましたが、 ロジテック のサポートに切り分け結果を伝えると (装填したハードディスクをまた取り出すのめんどくさかったので) 「 AC アダプタだけ送って」と言うわがままに二つ返事で応えてくれ、 しかも代替の AC アダプタが翌日には到着すると言うすばらしい対応で、 購入した LHR-4BNHEU3 への移行を 早々と始めることができることになりました。
 Good Job です (^^)b > ロジテック

 と言うことで、装填した HDD を個々に認識させるシングルモードがないために コレガ CG-HDC4EU3500 の ハードウェア RAID 機能を使って冗長化し UFS でフォーマットしている 我が家では最大サイズのストレージを、 LHR-4BNHEU3 に 3TB HDD を四発装填して移行作業を開始しました。

 HDD は以前、NAS4Free の本番環境への移行の際に、 ラトックシステム RS-EC32-U3R へ 突っ込んでストライピングを組んだ時に使った 3TB HDD 二発と新規に購入した 3TB HDD 二発、 この計四発で RAID-Z を組みました。

 以前、ラトックシステムRS-EC32-U3R を使ったミラーリング構成で ZFS を構築したときの手順をまとめてあったので、 これに従ってディスクの追加→仮想デバイスの作成→ ZFS プールの作成とすればできた …ら、こんな記事にはしません (^-^;A

 今回もやっぱり一筋縄ではいきませんでした orz
 どうしても ZFS プールを作成した後、 作成したプールが「初期化中」のまま、最後に 「変更の適用」をしようとするとエラーになります。
 初期化に時間がかかるのかな?と思って、丸 2 日くらい放っておいたのですが まったく変わりません。  結論から言うと、一度、 ZFS strage pool device としてフォーマットして使っていた HDD を使い回したのが原因でした。
 ZFS プールを作成する場合、完全に初期化が施された HDD を用意することが鉄則だそうです。

 HDD の初期化は以下のように行いました。
 HDD を認識させた NAS4Free が動作するサーバーに SSH でログインします。
 その上で、 su で root ユーザー切り替えてその権限で以下のコマンドを実行します。
# dd if=/dev/zero of=/dev/da2 bs=1k count=1
 上記は初期化する HDD が /dev/da2 として認識されている場合の例です。 またディスクを初期化することが目的ですから、 同じことができるなら NAS4Free でなくとも Linux などでも作業が可能です。
 このおまじないを作成する ZFS プールに使用する HDD すべて(まったく新品の HDD なら必要ありません)に施してから、 ディスクの追加→仮想デバイスの作成→ ZFS プールの作成を順序通りに行うと、 無事、 RAID-Z の新しい ZFS プールを作成することができました (^O^)

 データセットを作成して、データのコピーに丸三日以上かかりましたが、 おかげで CG-HDC4EU3500 を完全に休止させることができました。

 さて、次は CG-HDC4EU3500 に装填していた 2TB の HDD を使って、 ミラーリングしている RS-EC32-U3R の 1TB HDD を置き換えて、 容量拡張にチャレンジしたいと思います。

Ellinikonblue.com Weblog
「 NAS4Free でディスクを追加する」
「 NAS4Free で ZFS を使う #0 」
「 NAS4Free で ZFS を使う #1 」
「 ロジテック LHR-4BNHEU3 をご購入」

Posted on May 04, 2014 at 16:41

NAS4Free 9.2.0.1.972: これだめ…

 偶然気がついたのですが、 4 月 28 日に NAS4Free の 9.2.0.1.972 がリリースされてました。

 一つ前のリリース 9.2.0.1.943 が GIGABYTE GB-BXCE-2955 の ネットワークインターフェイス (Realtek 8111G) を 認識してくれず、さんざん苦労したのですが、 今回の 9.2.0.1.972 も FreeBSD の 9-STABLE を ベースにしてくれていないようなので、 アップグレードするとおそらくネットワーク I/F を認識しなくなります。  と言うことで、今回のアップグレードはパス。
 FreeBSD 10 ベースになるまでおとなしくしてるか… (_ _;>
Posted on Apr 29, 2014 at 16:37

【暫定版】 NAS4Free で ZFS ストレージを移行する

 今回、我が家のストレージを集約する際、 デル Inspiron Zino HD で 一通り NAS4Free を試してから、 GIGABYTE GB-BXCE-2955 へ ZFS (ミラーリング)でフォーマットしたストレージを移行する際に、 いろいろガチャガチャやって、何とか移行できましたが、 ちょっとしたトラブルもあって、これが確証の持てる ZFS ストレージの移行手順とは言い切れないのですが、 一応、これと思われる手順をまとめておくことにします。

 Oracle のドキュメントによると、 まずは移行する ZFS プールに対してプールの情報すべてディスクに書き込むよう エクスポートを行った方がいいらしいのですが、 NAS4Free の GUI からは実行できないので、 移行元のサーバーの電源を落とします。
# コマンドラインからならたぶんできます。

 そうしてから移行先へ ZFS ストレージをつなぎ替えてから、 移行先のサーバーでディスクを認識させます。
 NAS4Free の管理画面のメニューから 「ディスク」 - 「マネージメント」を選んで、「ディスクのインポート」を押します。
Image:UNIX/20140313NAS4FreeAddDisk-0.jpg
 移行してきた ZFS ストレージのディスクがインポートされたことが確認できたら、 次にメニューから「ディスク」 - 「 ZFS 」を選んで遷移した画面で、 「設定」タブをクリックします。

 ここで先に認識させたディスクから ZFS プールの情報を検出していると、 下図のように「ディスク上の ZFS 設定をインポート」できるはずなので、 これをクリックして実行します。
Image:UNIX/20140421NAS4FreeZFSMove.jpg
 うまくインポートできたら、 「ディスク| ZFS |設定|検出」画面で、 「設定」タブ以下の「同期」を選んで遷移した画面で「同期」をクリックして 実行すれば完了です。

…のはずです m(_ _)m
 次回、ZFS ストレージを移行しなくてはならない事態が発生したら、 この暫定版の手順を検証してみます。
 それまではこの手順はあくまで暫定版と言うことでご容赦ください。
Posted on Apr 28, 2014 at 16:57

さて次はどの Linux を使おうか…

「 Ubuntu 14.04 LTS リリース、高解像度化とマルチタッチに対応した長期サポート版」Engadget 日本版 より)

 4 月の 17 日に事前にあった予告通り二年ぶりとなる長期サポート版 Ubuntu 14.04 LTS(Trusty Tahr) が リリースされました。

 先般、GIGABYTE GB-BXCE-2955NAS4Free を動かすために、 それまで一つ前の Ubuntu 12.04 LTS(Precise Pangolin) で 機嫌良く動いていた 東芝 dynabook UXFreeBSD をインストールしたのですが、 この子 (dynabook UX) は 32bit 版しか動かないために結局、役には立てませんでした。
 そのまま FreeBSD で使おうかとも思ったのですが、 昨今のよくできたデスクトップ環境が付属する Linux で甘やかされた人間にはとても耐えきれず (_ _;>、 ならば PC-BSD があるじゃないか!とも思ったのですが、 残念ながら公式の最新版は 32bit 版が存在しませんでした。

 14.04 LTS もリリースされたし、 Ubuntu に戻すか…と考えたのですが、 せっかくなら違う Linux も使ってみたい。。。 っていうか、ibus-mozc と Dropbox が使えた Ubuntu はあまりにもお気楽だったので、 これから派生したものを…と Ubuntu GNOME とか Linux Mint とかいろいろ考えたのですが、 今回は Xubuntu で (^^)b
Image:UNIX/20140426Xubuntu.jpg
 XubuntuXfce をデスクトップ環境とする Ubuntu から公式に派生したディストリビューションです。
 Xubuntu 14.04 LTS は Ubuntu 14.04 LTS と 同じ長期サポート版で、 Xfce を採用するため、 動作が軽いのが特徴で、ネットブックごとき (^^; にはちょうどいいかと。

 リリース直前にインストールセットから IBus が削除されたりと、 以前、 Ubuntu 12.04 LTS で実現していた 環境に近づけるには多少苦労しそうですが、 ものは試しということで… 挫折したら即座に Ubuntu を入れなおすことにします w Ellinikonblue.com Weblog
「 Ubuntu 14.04 LTS (Trusty Tahr) リリース間近か…」
「 Ubuntu でチャレンジ! dynabook UX 環境構築」
Posted on Apr 16, 2014 at 20:32

NAS4Free で ZFS データセットを作成する

 前回で ZFS プールを作成してマウントし、 ZFS ファイルシステムでストレージを使えるようにまでしましたが、 NAS4Free で ZFS を使う場合、 マウントした ZFS プール上に、データセットもしくはボリュームを作成して使用すると 冗長化以外の ZFS の便利な機能が使えるようになります。

 正確な定義ではないかと思いますが、 データセットは単に ZFS プール上にディレクトリを作成するものだと思ってください。 ボリュームは ZFS プール上にブロックデバイスを作成する、 つまりパーティションを作成するものだと思ってください。

 当方ではまだデータセットの方しか試したことがないので、 こちらの作成方法をまとめておきます。

 まずは NAS4Free の管理画面で、 メニューから「ディスク」 - 「 ZFS 」を選択すると、 「ディスク| ZFS |プール|マネージメント」画面に遷移します。

 ここで「データセット」タブを選択すると、 定義されているデータセットの一覧が表示される画面になります。
 ここで例のごとく、「+」のアイコンをクリックすると、 データセットの追加画面になります。
Image:UNIX/20140412NAS4FreeZFSDataset.jpg
 ここではまずデータセットの名前と、 データセットを作成するプールを指定します。
 以下はデフォルトでもかまわないのですが、 データセットを作成する目的は、主に以下の三つの機能を使えることにあります。
  • 圧縮
  • 重複排除
  • クォータ
「圧縮」は文字通り記録されるデータを圧縮して記録します。
 基本、「 ON 」を設定すればよいかと思いますが、 圧縮形式に gzip を指定して 1 (最速)~ 9 (最高圧縮率)まで 圧縮レベルを指定することができます。
 ただし、記録するデータによっては効果が薄い、 たとえば、そもそもデータ圧縮がかかっているデータ形式である JPEG 画像などの写真を保存するフォルダでは必然あまり効果が得られません。
 しかし、うちの MacBook Air の Time Machine データストアのデータセットなどでは x1.4 程度の容量が記録できています ( 60% 弱程度のサイズまで圧縮される)。
 この設定はあとでも変更できますし、ひとまず「 ON 」にしとくというのはありかと思います。
# GIGABYTE GB-BXCE-2955 ( Haswell 版 Celeron 2955U(1.4GHz)/8GB DDR3L )で 動作させている分には気になるほどパフォーマンスは落ちませんし、負荷もかかっていないようです。

「重複排除」はデータブロック単位(ファイル単位ではありません)で 重複しているデータを削除し、さらに容量を節約するためのものですが、 実メモリーをかなり消費する(らしい)ので当方では使っていません。

 次に「クォータ」はそのデータセットが利用できる最大容量を設定するものです。
 Time Machine 用のデータストアなどではこれを設定しておかないと プールの最大容量までバックアップしてしまいますので、 搭載されている 256GB SSD を半分くらい使っているうちの MacBook Air のための Time Machine 用データセットでは「 200G 」と設定して、 一ヶ月分以上のバックアップを記録できています(もちろん、圧縮は「 ON 」の設定です)。

 これらの設定と、あとお好みで「概要」を設定するほかは、 デフォルトの設定でかまわないかと思います。 「アクセス制限」以下の項目も触らない方がいいでしょう。

 以上の設定が終わって「保存」をクリックすると、 「ディスク| ZFS |データセット|データセット」画面に戻って、 追加したデータセットが一覧に表示されているはずですので、 あとは「変更の適用」をクリックすれば、データセット作成の完了です。

 データセットは ZFS 上のディレクトリとして見えますので、 これを NFS や CIFS の設定で指定して使うなり、 AFP を設定で指定して Time Machine のデータストアに使うなりしてください。

 以上 (^^)>

Ellinikonblue.com Weblog
「 NAS4Free で ZFS を使う #0 」
「 NAS4Free で ZFS を使う #1 」
「 NAS4Free で Time Machine サーバーを実現する」
Posted on Apr 07, 2014 at 18:56

NAS4Free で ZFS を使う #1

 前回用意した ZFS storage pool device でフォーマットした 複数のディスクを使って、今回は「仮想デバイス」を作って、 最終的に ZFS プールを作成します。

 まず NAS4Free の管理画面にアクセスして、 メニューから「ディスク」 - 「 ZFS 」を選択します。
 「ディスク| ZFS |プール|マネージメント」画面に遷移したところで、 「プール」タブ以下のタブの中から「仮想デバイス」を選択すると仮想デバイスの一覧を表示する画面になります。
Image:UNIX/20140330NAS4FreeZFS-1.jpg
 ここで仮想デバイスを追加するために右隅にある「+」のアイコンをクリックします。 すると仮想デバイス追加画面に遷移します。
# 次の図は仮想デバイスの編集画面ですが、追加時でも画面構成はほぼ一緒です。
Image:UNIX/20140330NAS4FreeZFS-2.jpg
 ここでは適当なデバイス名を設定して、 仮想デバイスのタイプを選択します。
 仮想デバイスのタイプとは主にディスクを冗長化する方法のことで、 ストライピング (RAID 0) やミラーリング (RAID 1) 、 RAID-Z (シングルパリティーからトリプルパリティーまで)などが指定できます。
 作成する仮想デバイスに対して冗長化を施して運用するためには、 ディスクを最低 2 つ(ミラーリングの場合)、 RAID-Z (シングルパリティー)で運用するのであれば 3 つ以上指定する必要があります。
 Advanced Format を有効にするかはお好みで。概要については適当に (^^;A

 以上を設定して「追加」をクリックすると仮想デバイスの設定が追加されます。
 「ディスク| ZFS |プール|マネージメント」画面に戻って、 今し方、作成した仮想デバイスが一覧に追加されているはずです。
 しかし、「設定は変更されました。 変更された設定は適用するまで効果は出ません。」と表示されているはずなので、 「変更の適用」をクリックしてできあがりです。
 ここまでで作成した仮想デバイスを使って、 次に ZFS プールを作成してマウントします。

 メニューから「ディスク」 - 「 ZFS 」を選択して 「ディスク| ZFS |プール|マネージメント」画面に戻ります。
Image:UNIX/20140330NAS4FreeZFS-3.jpg
 ここでも右隅の「+」アイコンをクリックして、プールの追加画面に遷移します。
# 次の図はプールの編集画面ですが、追加時でも画面構成はほぼ一緒です。
Image:UNIX/20140330NAS4FreeZFS-4.jpg
 プールの名前を適宜設定し、先ほど作成した仮想デバイスを指定します。
 次にマウントポイントを指定します。
 以前、 UFS のディスクをマウントするときは、 /mnt 以下に作成するディレクトリ名をマウントポイント名として指定しましたが、 今回はマウントするディレクトリをフルパスで指定できます。
 うちでは /mnt 以下にディスクがすべてマウントされるようにしたかったので、 ここを /mnt 以下のディレクトリをフルパスで指定しました。
# あらかじめマウントポイントとなるディレクトリを作成しておく必要はありません。

 以上の設定を済ませて「追加」をクリックすると、 「ディスク| ZFS |プール|マネージメント」画面に戻り、 作成したプールが追加されているはずです。
 ここでも「変更の適用」をクリックしてできあがりです。

 これで ZFS でフォーマットされたディスクが使用可能になり、 このままで使ってもいいのですが、 ZFS の便利な機能を使うためには、 作成したプールに対して「データセット」もしくは「ボリューム」を作成して 利用することをお勧めします。

 と言うことで、次回はそのデータセットの作成についてまとめたいと思います。

Ellinikonblue.com Weblog 「 NAS4Free でディスクを追加する」

-----
【 4/8 修正】
 初出時、ZFS プールのマウントポイントの設定を省略すると 「同名のディレクトリをルートディレクトリに作成して、 そこにマウントされてしまいます」としていましたが、 デフォルトの動作としては正しくありません。 正確には省略時の動作は当方では未確認です。
 訂正してお詫びします m(_ _)m
Posted on Apr 02, 2014 at 20:42

NAS4Free で ZFS を使う #0

 ストレージサーバーとして、 NAS4Free を運用する以上、 ZFS を使ってこそその真価が発揮されると思います (そう信じてます (^^;A )。

 ZFS を運用するにあたって、 ZFS で運用するメディアはできるだけ大容量のものを複数用意すること。
 冗長化して使ってこその ZFS ですから、最低ミラーリングで運用するにしても 2 発、 RAID-Z で運用するのであれば 3 発以上のできるだけ大容量のディスクを用意してこそ、 ZFS は真価を発揮します(と思っています)。

 さて、いよいよ ZFS で運用する記憶領域を作成します。
 手順は以下のようになります。
  1. ZFS storage pool device でフォーマットしたディスクを作成する
  2. ZFS で使用する仮想デバイスを作成する
  3. ZFS プールを作成する
  4. 必要に応じて ZFS プール上にデータセット、もしくはボリュームを作成する
 まずは複数本用意したメディア(ディスク)を、 すべて NAS4Free に認識させて、 「 ZFS storage pool device 」としてフォーマットします。
 ここまでは以前、紹介した ディスクを追加する手順 と 同じです。

 さてこれらを使って、次回は実際に ZFS で、 これらのディスクを利用できるようにするまでの手順をまとめておくことにします。

Ellinikonblue.com Weblog 「 NAS4Free でディスクを追加する」
Posted on Mar 28, 2014 at 21:34

GIGABYTE GB-BXCE-2955 で動く NAS4Free での問題点

 NAS4Free を動かすにあたって、 GIGABYTE GB-BXCE-2955 には 十分すぎるほどにパワーがあるのですが、 まだ実は困ったことがいくつかあります。  まずは ラトックシステム RS-EC32-U3R と USB 3.0 でつながってくれないこと。
 どうも FreeBSD 9.2 ベースの NAS4Free の問題らしいのですが、 ネットワークインターフェイスを認識させたときと同様、 9-STABLE のコードと入れ替えて何とかしてやろうかと一瞬考えたのですが、 ちょっと見ても、どの部分のコードが問題かわからず、 やってみて動かないとまたショックですし、 ひとまず USB 2.0 でつながって運用できているので、 次の瞬間にはやめることを決めました (^^;A

 技術屋の悪い癖ですが、完璧なシステムを作り出すことが目的ではありません。 機能そこそこでも、それによって生み出される便利さを享受することこそ目的なので、 ここは早々に妥協しました (^^;  ただ他にも問題があります。
 これは GB-BXCE-2955 の問題ではなく、 つなぎ込んだ コレガ CG-HDC4EU3500 の問題。

 RS-EC32-U3R にはシングルモードという 装填した HDD 各々を認識する(つまり 2 発装填すれば 2 つのハードディスクとして見える) モードがあり、こういうハードディスクケースって必ずこのモードがあると思い込んでいたのですが、 どうも CG-HDC4EU3500 には このシングルモードにあたる設定がないようなのです。

 仕方なく現状の RAID 5 の設定のまま、 GB-BXCE-2955 につないで、 UFS でフォーマットし直して使っています。
 従って、CG-HDC4EU3500 の電源や 制御用ボードが逝かれた時点で復旧に困難になりそうなので、 できるだけ早い時期にシングルモードがあり 4 発以上 HDD が装填できるケースを購入しようと思います。

 えぇ、もう目星はつけています w
 その際にはぜひあと 2 発 3TB HDD を買って RAID-Z で実容量 9TB を 手に入れてやろうという妄想まで膨らましています ww
Image:UNIX/20140327NAS4FreePoweredbyGB-BXCE-2955.jpg
Ellinikonblue.com Weblog 「 GIGABYTE GB-BXCE-2955 で動く NAS4Free の使い心地」
Posted on Mar 27, 2014 at 20:12

GIGABYTE GB-BXCE-2955 で動く NAS4Free の使い心地

 ずいぶんと苦労して、 GIGABYTE GB-BXCE-2955NAS4Free がやっと動き出して、 早速、環境の移行を始めました。

 年末に買った 2TB HDD を四発装填し、我が家の Linux サーバーにつながっていた コレガ CG-HDC4EU3500 の中身を、 ひとまず以前使っていた ラトックシステム RS-EC32-U3R を シングルモードにして、これも以前使っていた 3TB HDD を装填、 NAS4Free でストライピングを組んで、 6TB のディスクを用意し、これに一旦コピー。
 それから CG-HDC4EU3500NAS4Free につないでフォーマットし直し、 再びこちらにコピー。
 これだけでほぼ一週間かかりました (> <)
 おまけに後半の 3 日間は、 ストライピングを組んだ RS-EC32-U3R の中の HDD が 飛ばないか気が気ではなく、精神的にもかなりきました orz  次に デル Inspiron Zino HD で 試験的に NAS4Free を 動かしていたときの HDD ( ZFS でミラーリングした 1TB HDD x2 )を RS-EC32-U3R に差し戻し、 GB-BXCE-2955 で ZFS をインポートして、 やっと引っ越し作業完了。

 GB-BXCE-2955 上で動く NAS4Free に NFS サーバーをさせて、 Linux サーバーのシステム以外のディスクはすべてこれへマウントして、 ひとまず思い描いていたストレージの集約は完了しました。
Image:20140312NAS4FreeCompile-2.jpg
 GB-BXCE-2955 につながっているディスクは、 RS-EC32-U3RCG-HDC4EU3500 で それぞれ冗長化が施され、容量的にも当面は安心してられそうです。  GB-BXCE-2955 で ZFS を運用するために必要な マシンパワーは十分なのか?と思っていたのですが、 8GB もメモリーを積んだ Celeron とはいえ Haswell ベース CPU なので十分すぎるくらいです。
 CPU パワーだけなら今のところ、 MAX まで振り切ったことがありません。
 まだ ZFS を運用を始めたとは言え、ミラーリングだけで RAID-Z を組んでいないこともあるかもしれません。

 なぜ NAS4Free に それだけのディスクをつないで RAID-Z で運用しないのか?と言うと、 理想には近づきましたが、まだ完璧ではないんです。
 いろいろと問題が…つづくw
Posted on Mar 23, 2014 at 10:04

NAS4Free で SSH を有効にする

 NAS4Free は基本、 GUI 管理画面で運用ができるようになっていますが、 効率を考えると CUI でやった方がいいこともあります。
 たとえば NAS4Free サーバーで管理する ディスク間での大量のファイルの移動などが考えられます。

 そこで SSH でアクセスできるようにします。
 その前に SSH でアクセスするユーザーは事前に作成しておいてください。 その際、作成したユーザーを「グループの追加」項目で「 wheel 」グループに設定しておくと、 そのユーザーが su コマンドが使えるようになるため、何かと便利です。

 ユーザーの追加が事前に終わっていれば、 SSH を有効にするといっても「サービス」 - 「 SSH 」を選んで遷移する画面で、 「有効」にして「保存して再起動」を押すだけです。
 設定は初期設定で設定されている部分以外、何も設定する必要はありません。 これでログインの際のパスワード認証(キーボードインタラクティブでの認証)で 使えるようになります。
Image:UNIX/20140322NAS4FreeSSH.jpg
 パッケージでコマンドなどを追加できない Embedded 版でも、 元から tmux などは含まれていますので、 CUI で簡単なことなら処理できるようになります。

Ellinikonblue.com Weblog 「 NAS4Free でグループとユーザーを作成する」