XigmaNAS 12.1を導入してみた 後編(RAID-Z2、SMB設定編)

自作PCNAS,XigmaNAS

先日に引き続き、XigmaNASをインストールしたので、各種設定をしてみました。

後編のこの記事は、HDD8台を使ってRAID-Z2を設定したり、Sambaを設定してファイルサーバーとして利用できるよう設定したりします。

ちなみに、前編ではXigmaNASの紹介、XigmaNASのインストール、初期設定、SSDのデータ用パーティションのマウント方法などを紹介しています。まだ前編をご覧になっていない方は、ぜひこちらもご覧ください。

HDD 8台でRAID-Z2を組む

前回の記事ではSSDの設定を行いましたが、続いてHDDの方も設定します。今回は3TBのHDDを8台使って、RAID-Z2を組みます(本来、RAID-Z2を8台で組むというのはキリが悪いようですが)。流れは次の通りです。

  • HDDをZFSストレージプール用にフォーマットする
  • フォーマットしたHDDを使って仮想デバイス(vdev)を作成する
  • 作成した仮想デバイスを使ってプールを作成する
  • プールにデータセットを作成する

以下、「AAG」というサフィックスを使っていますが、これはうちで使っている記号です。皆さんはサフィックスなし or 適宜決めていただければよいと思います。

ZFSストレージプール用にフォーマットする

まず、HDDをZFS用にフォーマットします。

上のメニューから、「ディスク → マネジメント」を開いて、続いて「HDDフォーマット」を開きます。

ファイルシステムでは「ZFSストレージプール」を選択し、下段でRAIDを組むHDDを選択します。Nextボタンを押します。

すると、上段に追加の設定項目が表示されますので、入力していきます。ここでは、ボリュームラベルは「HDD%」とし、続く二つはチェックなしにしました。ボリュームラベル欄で「%」と入力すると、連番に置き換えて設定してくれるようです。Nextをクリックします。

ボタンが変わりますので、続いて「フォーマット」ボタンを押します。

押したボタンの下部に、フォーマット結果が表示されます。8台分Doneと出ていれば終わりですので、OKボタンを押します。

ファイルシステムが「ZFS Strage Pool」になったことを確認します。

これで各HDDがZFSストレージプール用にフォーマットされました。

仮想デバイス(vdev)を作成する

先ほどフォーマットしたHDDのパーティションを使って、仮想デバイス(vdev)を作成します。

「ディスク → ZFS」を開き、続いて「プール → 仮想デバイス」を開きます。

表の下の「仮想デバイスの追加」ボタンを押します。

今回、仮想デバイスの名前は「vdev-AAG」としました。下のデバイスリストでは、RAID-Z2に使用するデバイスをすべて選択します。そうしたら、上部のRAID-Z2ボタンを押します。

ブラウザで確認メッセージが出てきますので、OKを押します。

「変更の適用」を押します。

これで仮想デバイスが作成されました。

プールの追加

前項で作成した仮想デバイスを使用し、プールを作成します。

先ほどのページから「マネジメント」を開きます。表の下の「プールの追加」をクリックします。

今回、プールの名前は「pool-AAG」としました。「仮想デバイスリスト」から、先ほど作成した仮想デバイスを選択します。そうしたら「追加」を押します。

「変更の適用」を押します。

これでプールが作成されました。

データセットを作成する

続いて、実際の保存領域となるデータセットを作成します。

前項のページから「データセット」を開きます。表の下の「データセットの追加」を押します。

データセットの新規作成画面になります。今回は下記のように設定しました。

  • 名前:dataset-AAG
  • プール:先ほど作成したプール「pool-AAG」
  • 圧縮:ON
  • 重複排除:Off
  • クォーター:12.5T

「重複排除」は、ZFSの特筆すべき機能で、状況によってはディスクの使用量をかなり減らせるものですが、その分かなりハイスペックなハードウェアが要求されます。よく調べた上で使用してください。今回のXigmaNAS機は、重複排除を使えるほどのスペックではありませんので、Offにしました。

「クォーター」では、そのデータセットで使用可能な最大容量を設定します。ZFSは、プールの使用容量が100%に近づくとパフォーマンスが落ちてしまうらしく、80%くらいに抑えておくのが良いそうです(ZFS 80%ルールなどと呼ばれてるみたいです)。そのため、ここでクォーターを設定して、80%を超過しないようにしておきます。

下にスクロールし、データセットへのアクセス権を設定します。ここでは下記のように設定しました。

  • オーナー:smbuser(最初に作成した一般利用ユーザー)
  • グループ:wheel(管理者グループ)
  • モード:全員にrwx

設定が終わったら「保存」を押します。

「Apply Changes」を押します。

これで、ファイル共有に使うパーティションが作成できました。このパーティションは、/mnt/pool-AAG/dataset-AAG/にマウントされています。

Sambaの共有設定をする

Windows機とファイルの共有をするため、Sambaの設定を行います。

Samba自体の設定

上部のメニューから「サービス → SMB」を開きます。

Sambaの設定画面になります。編集するには、まず最下部の「編集」ボタンを押します。今回は、以下のように設定しました。

  • 表の右上の「有効」にチェックする(smbdを動かします)
  • NetBIOS名:f2a85v(初期設定時のホスト名に合わせておきました)
  • ワークグループ:HOME(Windows側で設定しているワークグループ名と同じにします)
  • DOS Charset:CP932(日本語ファイル名を扱う際は設定しておきます)
  • Map to Guest:Never(ゲストアクセスを無効にします)

設定が終わったら、下部の「適用」を押します。

続いて「Apply Changes」を押します。

ここまで設定すると、Windowsクライアントから\\サーバー名\(ここでは\\f2a85v\)にアクセスできるようになります。(Windows 10では、「ネットワーク」のフォルダを開いても出てこないと思います。アドレスバーに直接サーバー名を入力します)

アクセスしてみると、下記のメッセージが出ると思います。ここで、共有フォルダアクセス用に作成したユーザー名とパスワードを入力します。ユーザーは、Windows側ではなく、XigmaNAS側のものですので、ドメインも入力する必要があります。今回の例では、ユーザー名は「f2a85v\smbuser」で、パスワードは一般利用ユーザー(smbuser)を作成したときに設定したものです(資格情報を記憶する、にチェックすると、次回から聞かれなくなります)。

ただ、まだフォルダの共有設定をしていませんので、開いても何も表示されません。

フォルダを共有する

続いて、フォルダに対して共有設定します。今回はシステムSSDのデータ用パーティションと、RAID-Z2を組んだHDDのパーティションがありますので、それら二つを設定します。

前項のページで「共有」を押します。表の下の「Samba 共有追加」を押します。

まずは、システムSSDデータ用パーティションの方を設定します。下記のように設定しました。

  • 名前:ssd(任意で。共有フォルダのパスになります)
  • コメント:System SSD(任意)
  • パス:/mnt/ssd(XigmaNAS機でマウントしている、SSDデータ用パーティションを入力)
  • ゲスト:チェックを外す
  • 他はそのままにしました

設定が終わったら、「適用」を押します。

「Apply Changes」を押します。

ここまで設定が終わると、Windowsから、共有フォルダ(今回の例では\\f2a85v\ssd\)にアクセスできるようになります。

次に、HDDの方も設定するため、もう一度Samba 共有追加を押します。同様に、下記のように設定しました。

  • 名前:AAG(任意で。共有フォルダのパスになります)
  • コメント:3TBx8 RAID-Z2(任意)
  • パス:/mnt/pool-AAG/dataset-AAG(RAID-Z2設定時のデータセットのパスを入力)
  • ゲスト:チェックを外す

設定が終わったら、「追加」を押します。

「Apply Changes」を押す

以上で共有の設定は終了です。

Windowsからアクセスしてみて、ファイルの作成・編集・削除等ができるか確認しておきます。権限がないなどのエラーが出る場合は、アクセスする際に入力したアカウント(今回の例ではsmbuserユーザー)に対する、XigmaNAS側のパーミッションの設定ミスなどが考えられます。

wsddで「ネットワーク」に表示されるようにする

ここまででファイルサーバーとしての設定は終わりで、通常通り使用することができます。

が、Windows 10上で「ネットワーク」を開いても、このXigmaNAS機が表示されない場合があります。これは、Windows 10ではSMBv1が初期設定でオフになっており、これによってNetBIOS検出ができないためだそうです。

直接ファイルサーバーのアドレスを入力すればアクセスできるものの不便なため、「ネットワーク」に表示されるよう設定してみたいと思います。

一つの対策としては、「Windows 10の設定を変え、SMB v1を有効にする」というのがありますが、セキュリティーの観点から好ましくありません。そこで別案、XigmaNASにwsddをインストールします。参考にしたのはこちらのページです。

簡単に言うと、wsdd.pyファイルをダウンロードしてXigmaNAS機で実行すると、Windowsの「ネットワーク」に表示されるようになります。なので、XigmaNAS起動時にwsdd.pyを実行するよう設定すれば解決できます。

まず、https://github.com/christgau/wsddから、wsddをダウングレードします。(右側やや上にあるClone or Downloadから、Download ZIPをクリックするとダウンロードできます)

ダウンロードしたZIPを解凍し、srcフォルダのwsdd.pyを取り出します。

これをXigmaNASからアクセスできる所に保存します。今回は、前項で設定した共有フォルダ中の「\\f2a85v\ssd\XigmaNAS\wsdd.py」に保存しました。

続いて、保存したwsdd.pyを、起動時に実行するよう設定します。「システム → 高度な設定」を開き、「コマンドスクリプト」を開きます。表の下の「Add Command」ボタンを押します。

コマンド自動実行の設定画面になりますので、下記のように設定します。

  • 名前:適宜(wsdd.pyとしました)
  • コマンド:下記のようにコマンドを入力します。後述の説明もご覧ください。
    nohup python3.7 /mnt/ssd/XigmaNAS/wsdd.py -d HOME > /mnt/ssd/XigmaNAS/wsdd.py.log 2>&1 &
  • タイプ:初期化後(起動が終わった直後に実行されます)

コマンドについて、wsdd.pyのファイルパスは、実際の保存先に合わせて変更してください。-d HOMEは、ワークグループが「HOME」の場合ですので、Sambaの設定に合わせて変更してください。コマンドの出力をログファイルに書き出していますが、不要ならリダイレクトはなくて良いでしょう(リダイレクトなしの場合、XigmaNAS機につないでいるディスプレイに出力されます)。末尾の&は、バックグラウンドで実行する指示ですので、残しておいてください。ネットワーク欄に表示されるのは、初期設定の際に設定したホスト名です。

設定が終わったら、「追加」を押します。

「Apply Changes」を押します。

以上で設定が完了しました。XigmaNASサーバーを再起動すると、Windowsの「ネットワーク」にXigmaNASが表示されると思います。(XigmaNASの再起動は、「システム → シャットダウン」からできます)

また、ブラウザからWeb GUIにアクセスする際、IPを入力していましたが、この段階ではサーバー名でもアクセスできようになっているはずです。(今回の例では「http://f2a85v/」です)

設定のバックアップ

最後に、トラブルに備えて設定をバックアップしておきます。

メニューから「システム → バックアップ/リストア」を開きます。

設定ファイルを暗号化する場合はチェックを入れて、暗号化パスワードを入力します。

「設定のダウンロード」を押します。

ZIPファイルがダウンロードされますので、どこかに保存しておきましょう。

おわりに

以上で、XigmaNASを使ったファイルサーバーの構築ができました。

FreeNASと比べるとUIがイマイチな感じがしますが、Web GUIで設定が完結し、RAID-Z2も扱えるなど、機能は充分だと思います。

運用中は基本的にWeb GUIで管理を行うと思いますので、XigmaNAS機に接続しているキーボードやディスプレイなどは外しておいてもOKです。電源とLANケーブルだけ繋げておけば大丈夫です。(一部のマザーボードでは、キーボードがつながっていないと起動処理を中断する場合があります。その場合は、UEFI(BIOS)から設定を変えておいてください)

おまけ:ファイルコピーの速度

早速WindowsからXigmaNASへファイルのコピーをしてみましたが、転送速度は100~110MB/sほどでした。このXigmaNAS機は、マザーボードのGbEに接続していますので、おそらくそこがネックになっているのかと思います。

おまけ:1台HDDを外してみた

RAID-Z2は、同時に2台までなら故障してもデータはロストしません。

ということで、試しにHDDを一つ外してみました。外して起動すると、Web GUI上でプールのステータスが「DEGRADED」になり、赤い表示になります。もう一度接続して起動すると、ステータスが「ONLINE」に戻りました。もちろん、この間もデータのロストはしませんでした。