FreeNAS

Top/FreeNAS

概要

FreeNAS っていう、FreeBSD ベースの NAS 構築用ディストリビューションがある。お決まりの CIFS だけでなくて NFS も AFP も吐けるし iSCSI までできるので、お勉強用にはよさげなものです。

個人的な動機は NAS 環境そのものではなくて、ぐるっとまわって ESXi にあるのでした。iSCSI で RDM なマシンを組みたいけど RDM って自宅だとリソースが潤沢にないからあんまりいろいろ試せないわけで、何かの NAS に iSCSI 喋らせて自由に LUN 切り出せるようになったら楽しそうだなあ、という発想。

インストール

ESXi 上に仮想マシンを作っても良いのだけど、ESXi ホストがまだできていないので先行して VMware Workstation 8 につくる。

VMware Workstation 8 上の仮想マシンへのインストール

用意するもの

  • インストール用の ISO イメージ
    • http://www.freenas.org/ からダウンロード
    • 執筆時点では [8.0.4-RELEASE-p2] が最新。x86 でも x64 でも良いけどなんとなく格好良いので x64

VM 作成

ルータ VM とか NAS VM って、どれだけのリソースを握らせるかの判断が難しい。公式の Hardware Requirements を読むと、たとえば RAM の割り当ては

The best way to get the most out of your FreeNAS™ system is to install as much RAM as possible.

とかこわいことが書いてあるので、経験と勘でてきとうにつくる。ひとまずお勉強ができれば良いので、わりと最小構成。

OS 領域を 1 GB にしてインストールしたら、インストールは成功と表示されたものの再起動後に起動しない状態に。2 GB にしたらできた。

複数のネットワークに足を出したければ NIC を増やせばよいだけ。

  • ひとまず作ってみた構成
    構成
    OS[その他] > [FreeBSD 64 ビット]
    プロセッサ1 プロセッサ、1 コア
    メモリ512 MB
    SCSI コントローラLSI Logic
    仮想ディスクタイプSCSI
    仮想ディスク2 GB(OS 用。2 GB 程度ないとダメっぽい?)
    10 GB(データ用)
    10 GB(データ用)
    10 GB(データ用)
    10 GB(データ用)

インストール

ISO イメージから起動させて、ウィザードに従えばひとまずは入る。インストール先ディスクが何故か降順で表示されるのでそこだけ注意かも。

  1. [Install/Upgrade to hard drive/flash device, etc.] 選択
  2. 目的のインストール先を選択
  3. パーティション消えちゃうよ、インストール先ディスクは共有ディスクにできないよ、との確認。[Yes] 選択
  4. 数十秒で完了。ISO イメージのマウントを解除して、[OK] 選択、再起動

NIC の設定

ブラウザベースの GUI があるからそこでもできるんだけど、IP アドレスを固定でふるところくらいまでは CUI でやりたい(ただのこだわり)。

  1. メニューで [1] を入力し [Enter]、ウィザードに従って固定 IP アドレスを設定
  2. メニューで [4] を入力し [Enter]、デフォルトルート(デフォルトゲートウェイ)を設定

初期設定

ブラウザで設定画面にアクセスする。

  1. http://<ip_addr>/ にアクセス
  2. [Settings] > [Language] を [Japanese] に変更
  3. [Timezone] を [Asia/Tokyo] に変更
  4. [Save] 押下
  5. [Log Out] > [もう一度ログイン] から再ログイン
  6. [アカウント] > [マイアカウント] > [パスワードの変更] からパスワードを新規作成("古いパスワード" は空欄)
  7. [管理パスワードの変更] クリック
  8. [ネットワーク] に移動、ホスト名やドメイン名、ネームサーバを適宜変更

ZFS の構成

ZFS 概要

UNIX の場合、古くは UFS っていうファイルシステムが主流だったのだけど、Oracle Solaris 上で比較的最近登場したのがこの ZFS。 詳しくは知らないけど、ファイルシステム自身が冗長化機構を持っていて、データが壊れにくい、らしい。でもディスク障害で危ない感じになると復旧も難しいとかなんとか。 ZFS 管理下の物理ディスクの全量で『プール』をつくって、そこから固定容量の仮想ディスクである『ボリューム』や、共有単位のディレクトリになる『データセット』を切り出して使う。

ストレージプールの作成

画面では『ボリューム』だけど、ZFS でいうところの『プール』をまずつくる。ZFS 管理下に置く物理ディスクの全量を、ストレージプールとして登録する。

  1. [ストレージ] > [ボリューム] > [ボリュームの作成]
  2. 適当なボリューム名を付与、メンバディスクを任意にチェック
  3. ファイルシステムや冗長化構成を選択。仮に [ZFS]、[stripe] とした
    • 使うディスク数によって ZFS 自体が持つ RAID 機構を使える(RAID-Z、RAID-Z2)
  4. [ストレージ] > [ボリューム] > [/mnt/<volume_name>] > [パーミッションの変更] で適宜ボリューム全体のパーミッションを変更

ボリュームの作成

プールから任意の固定容量を切り出して、仮想ディスクとして利用する場合。おもに iSCSI のときとか。

  1. [ZFS ボリュームの作成] からボリューム名、サイズを入力して作成

データセットの作成

プールから容量を決めずにファイルシステムを切り出して、マウントポイントとして使う場合。CIFS や NFS の共有はデータセット単位での設定。

  1. [ZFS データセットの作成] からデータセット名を入力して作成。必要に応じてクォータを切る

CIFS の構成

概要

いわゆる Windows ファイル共有。

構築手順

ZFS から共有単位になるデータセットを切り出して、CIFS でそこを吐かせる。

  1. [ZFS データセットの作成] から任意のデータセット名でデータセットを切る
  2. [共有] > [CIFS Shares] > [Add CIFS Share] を選択
  3. [名前] に任意の共有名、[パス] に切り出したデータセットのパスを入力。その他のオプションは適宜設定
    • 必要に応じて [ゲストアクセスの許可] をチェック
  4. [サービス] > [CIFS] の横の [CIFS の設定] で NetBIOS 名やワークグループ名を設定
  5. [CIFS] の [OFF] スイッチをクリックして [ON] に変更

NFS の構成

概要

いわゆる Linux ファイル共有。

構築手順

ZFS から共有単位になるデータセットを切り出して、NFS でそこを吐かせる。

  1. [ZFS データセットの作成] から任意のデータセット名でデータセットを切る
  2. [共有] > [NFS Shares] > [Add NFS Share] を選択
  3. パス(データセットを選択)を設定、あとは適宜
  4. [サービス] > [NFS] の [OFF] スイッチをクリックして [ON] に変更

iSCSI の構成

概要

iSCSI 概要

SCSI コマンドを TCP/IP のパケットでラップしてやりとりする。既存の GbE 環境がそのまま使えるし、結局は SCSI なのでその領域から起動もできる。

iSCSI 用語

  • ポータル
    • iSCSI ターゲットの IP アドレスとポート番号
  • イニシエータ
    • iSCSI ターゲットへの接続元の設定
  • エクステント
    • iSCSI 経由で触らせるデバイス
  • ターゲット
    • iSCSI ターゲットの名前とか

構築手順

概要

  1. ポータルを追加する
  2. 接続を許可するイニシエータを追加する
  3. ターゲットを追加する
    1. エクステントを追加する
    2. ターゲットを追加する
    3. エクステントとターゲットを紐付ける
  4. サービスを開始する

手順

  1. ポータルの追加
    1. [サービス] > [iSCSI] > [ポータルs] > [Add ポータル] を選択
    2. [ポータル] 欄のデフォルト [0.0.0.0:3260] のまま [OK]
      • 0.0.0.0 だと 自分自身の IP アドレスで待ち受けるようになる。複数の NIC がある場合など、待ち受ける口を固定したい場合は手動で指定する
  2. 接続を許可するイニシエータの追加
    1. [サービス] > [iSCSI] > [イニシエーターs] > [Add イニシエーター] を選択
    2. 2 つの欄のデフォルト [ALL] のまま [OK]
      • 許可するイニシエータを絞りたい場合は適宜変更
  3. ターゲットの追加
    1. エクステントの追加
      1. [サービス] > [iSCSI] > [デバイスエクステント] > [Add Device Extent] を選択(仮想ハードディスク的な感じで使いたいならデバイスエクステント。共有フォルダ的なのならふつうのエクステント。前者なら ZFS ボリュームをあらかじめ切り出しておくこと)
      2. 適当なエクステント名を入力、[OK]
    2. ターゲットの追加
      1. [サービス] > [iSCSI] > [ターゲットs] > [Add ターゲット] を選択
      2. ターゲット名(任意文字列)、タイプ(今回は仮想ハードディスク用途なのでディスク)、ポータルグループ ID(1)、イニシエータグループ ID(1)を入力、[OK]
    3. ターゲットとエクステントのひもづけ
      1. [サービス] > [iSCSI] > [ターゲット/エクステント] > [Add ターゲット/エクステント] を選択
      2. 追加したターゲットと追加したエクステントを選択、[OK]
  4. サービスの開始
    1. [サービス] > [iSCSI] > [iSCSI 設定] > [Target Global Configuration] で [ベースネーム] をてきとうに変更
      • ほんとは命名規則があるんだけどよくわからないし自宅だしなんでもいいや
    2. [サービス] > [iSCSI] を [ON] に変更

確認

Windows 7 から確認

  1. [管理ツール] > [iSCSI イニシエータ] を起動
  2. [ターゲット] 欄に、設定したポータルの IP アドレスを入力、[クイック接続]
  3. 自動でターゲットが認識されるので確認して [完了]
  4. [コンピュータの管理] > [ディスクの管理] で認識を確認

ESXi 5.0 から確認

  1. (ハードウェア iSCSI アダプタがない場合は)[構成] > [ストレージアダプタ] > [追加] からソフトウェア iSCSI アダプタを追加
  2. iSCSI アダプタの [プロパティ] > [動的検出] > [追加]
  3. 設定したポータルの IP アドレスとポート番号を入れて [OK]、[閉じる]
  4. 再スキャンの確認がくるので [はい]
  5. [構成] > [ストレージ] > [デバイス]

Last-modified: 2012-05-25 (金) 13:25:45