MicroServer N40L(RAM 8GB、HDD 4TB×4、USBメモリ 16GB)にXigmaNAS 11.2.0.4.6154をインストールしてみた。HDD 4TB×4をRAID-Z1でまとめて12TBのWindows共有フォルダにした。ネットワークドライブに割り当てて、CrystalDiskMarkで速度を測ってみたところ、100MB/秒ほど出ているので良いカンジ。
----------------------------------------------------------------------- CrystalDiskMark 6.0.2 x64 (C) 2007-2018 hiyohiyo Crystal Dew World : https://crystalmark.info/ ----------------------------------------------------------------------- * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s] * KB = 1000 bytes, KiB = 1024 bytes Sequential Read (Q= 32,T= 1) : 118.343 MB/s Sequential Write (Q= 32,T= 1) : 97.254 MB/s Random Read 4KiB (Q= 8,T= 8) : 29.552 MB/s [ 7214.8 IOPS] Random Write 4KiB (Q= 8,T= 8) : 10.873 MB/s [ 2654.5 IOPS] Random Read 4KiB (Q= 32,T= 1) : 28.637 MB/s [ 6991.5 IOPS] Random Write 4KiB (Q= 32,T= 1) : 10.871 MB/s [ 2654.1 IOPS] Random Read 4KiB (Q= 1,T= 1) : 7.871 MB/s [ 1921.6 IOPS] Random Write 4KiB (Q= 1,T= 1) : 5.302 MB/s [ 1294.4 IOPS] Test : 1024 MiB [Z: 0.0% (0.0/10450.9 GiB)] (x5) [Interval=5 sec] Date : 2018/11/06 15:45:52 OS : Windows 10 Professional [10.0 Build 17134] (x64)
インストール
LAN接続にしたいHDDを取り付けた適当なPCと2つのUSBメモリを用意する
XigmaNASの最新版のLiveUSBイメージのGPT版をRawrite32でUSBメモリに書き込む
作成したUSBメモリと、空のUSBメモリを取り付けて、作成したUSBメモリから起動する
- Console Menuが出たら、9) Install/Upgrade from LiveCD/LiveUSBを選択するために9を入力する
- XigmaNAS Install & Upgrade Menuが出たら、1 Install 'Embedded' OS on HDD/SSD/CF/USB (Preferred)を選択して、OK
- XigmaNAS Embedded Install Option Menuが出たら、1 Install 'Embedded' OS/GPT on HDD/SSD/CF/USB (Preferred)を選択してOK
- XigmaNAS Embedded Installationが出たら、OK
- Choose Sourceが出たら、作成したUSBメモリが選択されているので、OK
- Choose Destinationが出たら、空のUSBメモリを選択して、OK
- Enter the size of the OS partitionが出たら、適切に入力されているので、OK
- Enter the size of the SWAP partitionが出たら、適切に入力されているので、OK
- Enter the size of the DATA partition or enter 'ALL' to take what's availableが出たら、ALLと入力して、OK
- Press ENTER to continue.が出たら、Enterキーを押す
- XigmaNAS Install & Upgrade Menuが出たら、Exit
- Console Menuが出たら、8) Shutdown Serverを選択するために8を入力する
- Do you really want to shutdown the server?が出たら、Yes
電源が切れたら、作成したUSBメモリを取り外して、電源を入れる
初期設定
- Console Menuが出たら、WebGUI AddressをWebブラウザで開く
- ユーザ名にadmin、パスワードにxigmanasを入力して、ログイン
- システム→基本
- タイムゾーンをAsia/Tokyoに変更
- 日付のフォーマットを2018-10-08 23:47:40に変更(日時部分には現在日時が入る)
- NTPを有効化にチェックを入れる
- NTP Time Serverをntp.nict.jpに書き換える
- ホスト名を適当に書き換える(xigmanasなど)
- 保存
- パスワード(もしくは、システム→基本、パスワード)
- 現在のパスワードにxigmanasを入力
- New Passwordに新しいパスワードを入力
- 新しいパスワードの確認に新しいパスワードを入力
- 保存
- サービス→CIFS/SMB
- Common Internet File Systemの有効にチェックを入れる
- NetBIOS Nameを適当に書き換える(xigmanasなど)
- Dos CharsetからCP932 (日本語 Shift-JIS)を選択
- Time ServerからNoを選択
- Null Passwordsにチェックを入れる
- 保存して再起動
ディスクの登録
ディスクのマウント(複数のHDDを結合して使う場合は不要)
複数のHDDを結合して使う
- ディスク→ZFS
- 仮想デバイス
- +(仮想デバイスを追加)
- 名前を適当に入力(tankなど)
- 4KBラッパーにチェックを入れる(AFTなHDDの場合)
- デバイスリストから結合して使うHDD/SSD/USBメモリ等のデバイスにチェックを入れる
- RAID-Z1(もしくはSTRIPE、MIRROR、RAID-Z2、RAID-Z3など)
- Do you want to create a RAID-Z1 from selected disks?が出るので、OK
- 変更の適用
- プール(もしくは、ディスク→ZFS)
- +(プール追加)
- 名前を適当に入力(shareなど)
- 仮想デバイスリストから先ほど作成した仮想デバイスの名前にチェックを入れる
- 追加
- 変更の適用
Windows共有フォルダの作成
- サービス→CIFS/SMB
- 共有
- +(Samba 共有追加)
- 名前を適当に入力(shareなど)
- コメントを適当に入力(Shared Folderなど)
- パスの「…」から先ほど設定したマウントポイント名やプールの名前を選択して、OK
- Recycle Binのチェックをはずす
- Hide Dot Filesのチェックをはずす
- シャドウコピーのチェックをはずす
- 追加
- 変更の適用
DLNAサーバを動かす
ユーザの作成
ユーザが作成したファイルをすべてのユーザーで読み書きできるようにする
- システム→高度な設定
- コマンドスクリプト
- +(コマンドを追加)
- コマンドに「echo 'umask 0000' > /mnt/.profile」を入力
- タイプから初期化後を選択
- 追加
- 変更の適用
※要再起動
再起動
- システム→リブート
- Yes
Webサーバを動かす
メールの設定
- システム→高度な設定
- メール
- From Email Addressに送信元メールアドレスを入力
- To Email Addressに送信先メールアドレスを入力
- SMTP ServerにSMTPサーバを入力(Gmailの場合はsmtp.gmail.com)
- ポートをSMTPサーバのポート番号に書き換える(Gmailの場合は587)
- 認証はSMTPサーバに認証が必要な場合にチェックを入れる(Gmail以外の場合はチェックを入れる)
- ユーザ名にSMTPサーバのユーザ名を入力(Gmailの場合はアカウント名を入力)
- パスワードにSMTPサーバのユーザ名に対するパスワードを2箇所に入力(Gmailの場合はアカウント名に対するパスワードを入力)
- 認証方法をSMTPサーバに合わせて選択(Gmailの場合はログインを選択)
- Use TLSはSMTPサーバがTLS対応ならばチェックを入れる(Gmailの場合はチェックを入れる)
- Enable STARTTLSはSMTPサーバがSTARTTLS対応ならばチェックを入れる(Gmailの場合はチェックを入れる)
- Use Default TLS Trust FileはSMTPサーバがTLS対応もしくはSTARTTLS対応ならばチェックを入れる(Gmailの場合はチェックを入れる)
- テストメールの送信(メールが届くことを確認する)
- 保存
HDDエラー発生時のメール通知
- ディスク→マネージメント
- S.M.A.R.T.
- セルフモニタリング、分析及びレポートの有効にチェックを入れる
- S.M.A.R.T. MonitoringのEnable S.M.A.R.T. monitoring of S.M.A.R.T. capable devices when they are added to the configuration.にチェックを入れる
- レポートメールの有効化にチェックを入れる
- To Email Addressに送信先メールアドレスを入力
- Test Emailにチェックを入れる
- 保存して再起動(メールが届くことを確認する)
ポート開放とダイナミックDNSの更新
USBメモリのデータパーティションを/mnt/publicにマウントした上で行う
- ツール→コマンド
- コマンドに「mkdir /mnt/public/.cust」を入力して、実行
- コマンドに「chmod 700 /mnt/public/.cust」を入力して、実行
- システム→高度な設定
- コマンドスクリプト
- +(コマンドを追加)
- コマンドに「/usr/local/sbin/pkg install -y /mnt/public/.cust/miniupnpc* /mnt/public/.cust/wget* || /usr/local/sbin/pkg install -y miniupnpc wget && cp -R /var/cache/pkg/* /mnt/public/.cust」を入力
- タイプから初期化後を選択
- 追加
- 変更の適用
- ツール→ファイルエディタ
- ファイルパスに「/mnt/public/.cust/upnpcd.sh」を入力、下記内容を入力して、保存(UPnPで開放するポートはfor port inに続けて内部ポート:外部ポートで、MyDNS.JPのユーザー情報はwget -O - https://に続けてID:パスワードで指定する)
#!/bin/sh tmpfile=`mktemp` upnpc -l > $tmpfile nowip=`sed -n -e "s/Local LAN ip address : //p" $tmpfile` for port in 22:22 8080:80; do oldip=`sed -n -e "s/.*TCP *${port#*:}->\([0-9.]*\).*/\1/p" $tmpfile` if [ -n "$oldip" -a "$oldip" != "$nowip" ]; then upnpc -d ${port#*:} TCP > /dev/null; fi upnpc -a $nowip ${port%:*} ${port#*:} TCP > /dev/null done wget -q -O /dev/null "https://mydns012345:abCDefGHijK@ipv4.mydns.jp/login.html" wget -q -O /dev/null "https://mydns012345:abCDefGHijK@ipv6.mydns.jp/login.html" rm $tmpfile
oldipを求める際に誤って内部ポート番号を指定していたので外部ポート番号に訂正(2019/03/07更新)
MyDNS.JPではなく、GnuDIPを使ったダイナミックDNSサービスを使う場合は、上記内容の代わりに下記内容を入力する(UPnPで開放するポートの変更は上記と同じ、GnuDIPサービスのUsername/Hostname、Domain、Password、URLはuser=、domn=、pass=、host=に続けて指定する)
#!/bin/sh user="bar" domn="example.com" pass="foobar" host="http://www.example.com/gnudip/cgi-bin/gnudip.cgi" tmpfile=`mktemp` upnpc -l > $tmpfile nowip=`sed -n -e "s/Local LAN ip address : //p" $tmpfile` extip=`sed -n -e "s/ExternalIPAddress = //p" $tmpfile` for port in 22:22 8080:80; do oldip=`sed -n -e "s/.*TCP *${port#*:}->\([0-9.]*\).*/\1/p" $tmpfile` if [ -n "$oldip" -a "$oldip" != "$nowip" ]; then upnpc -d ${port#*:} TCP > /dev/null; fi upnpc -a $nowip ${port%:*} ${port#*:} TCP > /dev/null done curip=`ping -c 1 $user.$domn 2>&1 | head -n 1 | sed -e 's/^.*(//' -e 's/).*$//'` if [ "$curip" != "$extip" ]; then wget -q -O $tmpfile "${host%/*}/gdipupdt.cgi" salt=`sed -n -e 's/<meta name="salt" content="\([^"]*\)">/\1/p' $tmpfile` time=`sed -n -e 's/<meta name="time" content="\([^"]*\)">/\1/p' $tmpfile` sign=`sed -n -e 's/<meta name="sign" content="\([^"]*\)">/\1/p' $tmpfile` text=`echo -n "$pass" | md5` hash=`echo -n "$text.$salt" | md5` wget -q -O /dev/null "${host%/*}/gdipupdt.cgi?salt=$salt&time=$time&sign=$sign&user=$user&pass=$hash&domn=$domn&reqc=0&addr=$extip" fi rm $tmpfile
- ツール→コマンド
- コマンドに「chmod 700 /mnt/public/.cust/upnpcd.sh」を入力して、実行
- システム→高度な設定
- Cron
- +(ジョブの追加)
- コマンドに「/mnt/public/.cust/upnpcd.sh」を入力
- 概要にUPnP port open scriptを入力
- スケジュール時刻の分から0、5、10、15、20、25、30、35、40、45、50、55を選択
- 追加
- 変更の適用