はじめに
Synology NASにデータを集めて大容量なプライベートクラウドを構築しています。ネットがある限りどこにいてもデータにアクセスできる様になってSynologyを導入して本当に良かったと思います。それだけ重要なシステムとなってきましたので、バックアップにも注力しています。その甲斐あって、5年近くも安全に運用する事が出来ていました。
そんな毎日は一つのメールで壊れてしまいます…なんてドラマの始まりみたいな感じですが、とうとうバックアップ失敗のメールが飛んできました。何事かと調べてみると、(HyperBackupの)バックアップ先であるUSB接続型ハードディスク(HDD)が切断されている様です。ハードディスクの健康状態を確認してみると代替えセクターが発生しています。このハードディスクはそろそろ寿命なのでしょう。
まぁ新しいハードディスクに変えればいいだけなのですが、いい機会なのでもう少しシステムを見直すことにしました。もちろん新しいSynology NASを導入するのが簡単で確実なのですが、お財布事情がそれを許しません。ありていの部品を使って、お安く、プライベートクラウドにぴったりなバックアップサービスを立ち上げます。
rsyncサーバーの構築
バックアップ先を単なるハードディスクから耐障害特性を持つネットワークストレージにランクアップします。幸いHyperBackup/Synology-NASはrsyncに対応しています。
rsyncはメジャーなサーバー間同期ツールなので、差分をとりながらのバックアップであるHyperBackupとも最適です。独立運用できるので省電力の工夫もいろいろと検討できそうです。
- 壊れたら終わり
- 電源入れっぱなしで非効率
- 壊れてもワンチャンあり
- 電源制御可能
ごちゃつくケーブルも一掃できますし、一石三鳥くらい効果がありそうです。
rsyncとは
Linux系のオペレーティングシステムで使用されるファイル同期ツールです。
リモートとローカルのファイルやディレクトリをインクリメンタル転送技術を使用して、変更された部分だけを転送することで効率的なバックアップや同期が可能です。
機材をあつめる
バックアップ用サーバーを構築に新たな投資は行えません。お財布事情は非常に厳しいのです。押し入れに眠っている機材を漁るとちょうど良いPCが見つかりました。処分しなくてよかったです。見つけたのは「HP ProLiant MicroServer」という古いサーバー向けPCです。Windowsも動かせて、4台のハードディスクが搭載できて、なのに値段は2万程度という、今ではありえない高コスパなPCでした。
SynologyでNASを構築したのでお役御免となっていたのですが、rsyncサーバーとして現役復帰してもらいます。健全な状態のハードディスクも4台調達できましたし、5インチベイ用のハードディスクマウンターも見つかりました。これでrsyncサーバーの構築準備は万端です。
CPU | x64-embedded @ AMD Turion(tm) II Neo N54L Dual-Core Processor |
メモリ | DDR3 4GB*2 |
3.5インチハードディスク | 3Tバイト×4台 |
5インチベイハードディスクマウンター | 3.5インチハードディスク、2.5インチハードディスクを搭載可能です。 内部SATA及びeSATAを取り込んで利用可能にしています。 ホットリペアやSSDキャッシュなどに利用可能です。(今回は使っていませんけどw) |
起動ストレージ | 8G USBメモリ |
rsyncはさまざまなプラットフォームで稼働しています。それこそRasoberryPIでも十分に構築が可能なので、眠っているジャンクPCの再活用にはもってこいです。
XigmaNASの導入
機材が決まったので次はNAS-OSです。今回は非力なレトロPCなので軽くて評判な「XigmaNAS」を選択しました。もちろんrsyncサービスも搭載しています。
余談ですが、最初はTrueNASを選択して構築を進めていました。ですが、今回のような使い方にはオーバースペックと感じました。
最新のNAS向けテクノロジーには興味はありましたが、それはまた別の機会でチャレンジです。
XigmaNASはUSBメモリにインストールして運用することができるのも地味にポイントが高いです。またMicroServerは筐体内にUSB-Aコネクタが搭載されているので非常にスマートに組み込めます。実際稼働してみても、少々起動に時間がかかるくらいで不都合はあまり感じません。これは良いですね!
CPUはヨワヨワですが、ストレージはハードディスクベイの4台+内臓SATA+eSATAの計6台(3.5インチ5台、2.5インチ1台)をフル活用した、結構パワフルなストレージサーバーが構築できます。XigmaNASの導入自体は非常に簡単です。サクサクっと導入しましょう。
インストール用USBメモリーの作成
「USB Image Tool」であればimg.gzファイルをダイレクトに展開してくれます。このツールはRaspberryPIの起動SDの作成でお世話になっています。メディアの作成やバックアップに重宝しますのでお勧めです。
XigmanNSAのサイトからLiveCDイメージをダウンロードしインストール用USBメモリを作成します。私はimg.gz形式のファイルをダウンロードしました。ダウンロードしたファイルからUSBメモリを作成します。
XigmaNASのインストール
インストール用USBメモリをフロントパネルに装着し、筐体内にある内臓USBコネクタに起動用USBメモリを装着したら電源を入れましょう。まずはBIOS設定にて接続したインストール用USBメモリを1stBootデバイスに設定して再起動します。
あとはXigmaNASのLiveCDが起動しますので、起動が完了したら起動用USBメモリにXigmaNASをインストールします。ひととおりの作業が終わったらリブートして、再度BIOS設定にて「起動用USBメモリ」を1stBootデバイスにしたらXigmaNASの導入は完了です。
XigmaNASを起動
初回起動時は以下の設定になっています。
接続先 | https://192.168.1.255 |
ユーザー | admin |
パスワード | xigmanas |
ログインが完了すると構築したサーバーのダッシュボードが表示されます。これでインストールは無事完了です。早速、rsyncを格納するストレージを構成しましょう。
rsyncサーバーの構築
折角ストレージサービスを提供するので、ハードディスクトラブル時にワンチャンス期待できるよう冗長性を組み込みます。XigmaNASは耐障害性に優れた高機能なストレージシステム「ZFS」を利用する事ができます。とはいえ、今回はありていのジャンクなPCに機材を集めて構築するので、SynologyNASの様に入れたら完成というわけにはいきません。組み上げまでの手順はいろいろと参考になるはずですし、私の備忘録もかねてそこそこ細かく書き出しておきます。rsyncサーバーの立ち上げが完了する事ができれば、その時にはGUIだけでも十分に設定管理できるNASが出来上がります。ご自宅に眠っている機材の有効活用になればうれしいです。
ZFSについて
今回のストレージシステムの影の主役であるZFS(Zettabyte File System)について補足します。
ZFSは主にUNIX系のオペレーティングシステムで利用される高度なファイルシステムです。オープンソースとして公開されているのでLinuxやFreeBSDなどさまざまな環境に移植されています。ストレージシステムを安全に運用するために工夫された優れた技術が組み込まれています。
- 複数の記憶装置を一つのプールとして管理し、ハードディスクの追加や削除が容易に行えます
- データのチェックサム機構により読出し時のデータの正確性を検証します
- ZFS独自のRAID構成(RAIDz)を使って、ストレージの冗長性と信頼性を確保します
- データの時点復元や複製を容易に行うことができます
- 理論上256京ゼタバイトまでのストレージ容量をサポートします(関係ないけどw)
これからのネットワークストレージのスタンダード仕様といえます。rsyncに必須というわけではありませんが、相当のボリュームで長期保存されるrsyncデータの保存には適切なストレージシステムです。
ディスク/マネージメント
まず最初にやることは搭載したハードディスクをキチンと組み込んでrsyncのサービスにつなげる事です。ハードディスクを順次組み込んでネットワークストレージの基礎を構築します。
HDD管理
最初に行うことは導入したハードディスクをXigmaNASに認識させる事です。これは「マネージメント」から行います。
「ディスク/マネージメント/HDD管理」にアクセスします。接続されたハードディスクを正しく取り込むために「コンフィグ消去とディスクのインポート」をチェックして「インポート」を実行します。接続したハードディスクの一覧が現れたらインポートは完了です。
続いて認識したハードディスクをフォーマットします。
ZFSに使うハードディスクをチェックしてファイルシステムを「ZFSストレージプール」、「GPTパーティションにZFSを作成」をチェックして「フォーマット」を実行してください。
順番にフォーマットが進んで実行ログが伸びていきます。すべて完了したらハードディスクのフォーマットは完了です。
これでハードディスクがマネージメントできる状態になりました。今後、新たなハードディスクを導入する場合には、まずマネージメントを行っておくことを覚えておきましょう。
ディスク/ZFS
いよいよZFSの構築に入ります。
仮想デバイス
本書では初めてZFSを構築するので、まずは「ディスク/ZFS/仮想デバイス」にアクセスし、仮想デバイスを作成します。仮想デバイスは、その名の通り複数のハードディスクを束ねて一つの仮想デバイスとして扱えるようにする仕組みです。物理デバイスの構成に縛られないので、ハードディスクの構成の自由度が高まります。
仮想デバイス名 | vDev」(好きなお名前でOKです) |
4kホッパー(Nopデバイス)を作成する | チェック |
テーブル下のファイルシステムのボタンがいくつか用意されていますので、今回は「RAID-z1」を押下します。RAID-z1はRAID5に相当します。これでもしもHDDが一つ死んでもワンチャンス確保する事ができます。
XigmaNASは処理の最後に「変更の適応」を行って処理を完了するパターンが多いです。適応して仮想デバイスの作成が完了です。
マネジメント
ZFSが用意できたのでデータ格納用のプール(領域)を作成します。「ディスク/ZFS/マネジメント」にアクセスします。「ToolBox」の「+」ボタンを押してデータセットの作成を開始します。
名前 | pool(好きなお名前でOKです) |
仮想デバイス | vDevを | チェック
設定したらテーブル下「追加」ボタンを押下します。
最後に「変更の適用」を押下してプールの作成が完了です。だいぶ慣れてきたと思います。あともう少しでストレージの基本設定は完了です。
データセット
いよいよrsync用のディレクトリをData-poolに作成します。「ディスク/ZFS/データーセット」にアクセスします。「ToolBox」の「+」ボタンを押してデータセットの作成を開始します。
データセットの所設定を行います。私はrsync用に以下の設定を行いました。
【設定】 | |
名前 | rsync(好きなお名前でOKです) |
プール | pool(ご自身の設定された名前) |
圧縮 | CPUが非力なのでOffを選択 |
重複排除 | CPUが非力なのでOffを選択 |
同期 | 標準 |
アクセスタイム (atime) | Off |
ACL 継承 | Restricted |
ACL モード | Discard |
大文字小文字の区別 | 大文字小文字を区別する |
マウント可否 | チェック |
読み込み専用 | チェックしない |
拡張属性 | チェック |
スナップショット可視 | チェックしない |
予約 | - |
クオーター | - |
概要 | - |
【アクセス制限】 | |
オーナー | root |
グループ | wheel |
モード | 全てに (オーナー/グループ/その他の 読込み/書込み/実行チェックボックス) | チェック
作成が完了したら、適応して完了です。
以上でrsync用ストレージの準備は完了です。続いて、自宅ネットワークに参加させるための設定を行います。
rsyncサービスを開始
続いてネットワーク周りの初期整備を行います。Synology NASやWindows、MacOSからネットワーク経由で簡単にアクセスできるようにします。
システム/基本
「システム/基本」にアクセスし、rsyncサーバーとしての基本設定を行います。
【WebGUI】 | |
ユーザ名 | admin(デフォルトでかまいませんが、変更するとセキュリティが高まります) |
プロトコル | 完全ローカルなので特にこだわる必要はありませんがHTTPS(TLS)にしておく方が無難です。 |
ポート | デフォルト |
アクセス許可ホスト | ― |
アクセス制限を無効化 | ― |
証明書 | ―(自己署名証明書です。認証済み証明書をお持ちでしたらこちらに設定します) |
秘密鍵 | ―(証明書に相対する秘密鍵) |
言語 | 自動検出 |
追加のパラメータ | ― |
【時間】 | |
タイムゾーン | Asia/Tokyo |
日付のフォーマット | お好きなフォーマットを選択ください |
システム時間 | ― |
NTPを有効化 | チェック |
NTP サーバー | pool.ntp.org |
時間同期 | 300 |
【ホスト名】 | |
ホスト名 | saturn(好きなお名前でOKです) |
ドメイン | ―(local) |
【DNS】 | |
IPv4 DNS Servers | ご自宅のネットワーク情報を設定してください |
IPv6 DNS Servers |
基本設定が完了したら一旦再起動します。
ネットワーク/LANマネージメント
自宅LANはSynology-NASのDHCPサーバーで一元管理しています。
rsyncサーバーもDHCPクライアントとして登録します。「ネットワーク/LANマネージメント」にアクセスします
【IPv4 Settings】 | |
タイプ | DHCP |
IPアドレス | ―(自動設定) |
ゲートウェイ | ―(自動設定) |
【IPv6 Settings】 | |
タイプ | オート |
IPアドレス | ― |
ゲートウェイ | ― |
Privacy Extension | チェック無し |
【高度な設定】 | |
MTU | ― |
メディア | 自動選択 |
Wake On LAN | Not available(HP MicroServeの仕様) |
Extra Options | ― |
アクセス/ユーザー
「アクセス/ユーザー」にアクセスします。GUI下部にある「Hide System Users」ボタンを押下するとシステムユーザーが隠されてスッキリしますのでお勧めです。「ToolBox」の「+」ボタンを押してrsyncユーザーを作成します。
rsync用のユーザーを作成します。殆ど規定値の設定で問題ないでしょう。
【ユーザー設定】 | |
Login Name | rsync用のユーザー名 |
フルネーム | ユーザーのフルネーム |
パスワード | |
概要 | ― |
ユーザ ID | 自動発番で良ければ、そのまま |
シェル | No Login |
Home Directory | ― |
プライマリグループ | wheel |
グループ | |
【ユーザポータル】 | |
ユーザポータル | 管理者としてアクセス |
言語 | 自動検出 |
【ファイルマネージャ】 | |
File Manager Access | チェック無し |
Hidden Items | チェック無し |
Read Permission | チェック無し |
Create Permission | チェック無し |
Change Permission | チェック無し |
Delete Permission | チェック無し |
変更を適応してユーザーの作成は完了です。
サービス/SMB
ネットワークで簡単にrsyncサーバーが発見できる様に、ちょっとだけSMBの設定を行っておきます。NetBIOSにホスト名を設定しておくと、rsyncクライアントからホスト名で簡単に検索できるようになり便利です。「サービス/SMB」にアクセスします。
【SMB Settings】 | |
Service Active | NO(現在の状態です、有効になっているとYESとなります) |
認証 | ローカルユーザー |
NetBIOS 名 | saturn(システム/基本で設定したホスト名を設定) |
ワークグループ | WORKGROUP |
Interface Selection | All Interfaces |
概要 | XigmaNAS Server(任意) |
DOS Charset | CP437 (ラテン US) |
UNIX 文字コード | UTF-8 |
ログレベル | 無効 |
ローカルマスタブラウザ | YES |
タイムサーバ | YES |
【高度なSMB設定】は省略します。
一応、デフォルトの設定のままで問題なく機能します。左上にある「有効」の チェックを有効にして「適用」してください。
改めて「変更を適用」してSMBの設定は完了です。
サービス/rsync
いよいよrsyncサービスの設定です。書き出すと長いですね、実際にはほとんど初期値のままでOKなのでサクサク進むと思います。
とりま、知見として残せればヨシ!ですね。(^^
サーバ/設定
NFS (Network File System) | |
Service Enabled | NO |
Map to User | |
TCP ポート | 873 |
MOTD | |
追加のパラメータ |
サーバ/モジュール
Module Settings | |
名前 | rsync |
コメント | rsync |
パス | /mnt/pool/rsync |
リスト | チェック |
アクセスモード | 読込み/書込み |
Max. Connections | 0 |
ユーザ ID | ― |
グループ ID | ― |
アクセス許可ホスト | ― |
Hosts Deny | ― |
追加のパラメータ | ― |
適用してrsyncサービスの設定は完了です。
HP ProLiant MicroServer固有の調整事項
HP ProLiant MicroServerのオンボードLANは、なぜか過去よりWoL(Wekeup on LAN)が実装されていません。有効にするパッチもあったかと思うのですが見つける事はできませんでした。更新ごとにパッチを作るわけにはいかないので、基本的には常時稼働での運用しかできません。毎日4時間程度の稼働で十分なので、なんとか手間をかけずにスケジュール運用を実現する方法を考えました。
力技で解決しました!
消費電力の計測ツールを探していたところ、スマート家電ツールとしてAC電源のコントローラーを見つけました。このツールを使えば、スマホやスケジュールで任意の時間にON/OFFできます。
PCにはおよそ向かないようなツールですが、これがこのジャンクPCには使えます!しかもお値段もお安い!!
早速購入して組み込みました。結果、思った通りの運用が実現できました。当面はこの運用で問題なさそうです。
HP ProLiant MicroServer:BIOSに追加設定
MicroServerのBIOSに電源投入時の動作設定を行います。通常は通電しても特になにも動作しないのですが、通電を検出すると自動起動するように設定する事ができます。あとはAC電源ボットに通電のOFF/ON動作をスケジュールすることで定時起動が実現できます。
XigmaNAS:シャットダウン/スケジュール
XigmaNAS自体は明け方には自動でシャットダウンするようにスケジュールを組みます。
初回バックアップは例外ですが、通常のバックアップでは多くても1時間もかからないので、バックアップと検査を行っても十分な猶予を持つことができます。
AC電源:IoTのBotmによる電源操作
こちらも非常に簡単です。バックアップ開始1分前にいったん電源をOFF、その1分後に電源をONとスケジュールしています。BIOS設定が正しく行われていれば、このアクションでrsyncサーバーが定刻起動します。記事に起こしましたので、是非、読んでみてください。
HyperBackupの見直し
rsyncサーバーが整いましたので、バックアップの再構築を行いました。
USB接続型ハードディスクにある今までのバックアップは、rsyncサーバに領域を確保して保管しました。
それでも全然余裕があります。完全終了する前に移行できてよかったです。お疲れ!ハードディスク、今まで安心をありがとう!
HyperBackup自体はrsync関連の設定を除けば従来と変わりありませんでした。
最初のバクアップだけ約16時間程度かかりましたが、以降は10分も掛からず正常終了です。
こちらも記事に起こしましたので、ぜひ読んでください。
近日検証を予定:HDDの交換
ハードディスクの交換についても記事にまとめたいと思っています。ZFSのリビルドには相応の時間がかかるので、まだ実施できていません。(^^;
過去に行ったことがありますが、基本的にはフォーマットして仮想デバイスへの出し入れで完了します。かなりの時間を要するので、改めて都合がついてから行う予定です。
大体48時間程度はかかったと記憶しています。
まとめ
PC構築もシステム設定もそんなに難度は高くないのですが、記事に書き起こすとそれなりの量になってしまいました。フリーのNAS-OSも数多くありますがXigmaNASは軽いですしGUIもわかりやすくてお勧めです。転ばぬ先のつえとしてのバックアップですが、そのつえを超合金にアップグレードなので今まで以上に安定した運用となりそうです。rsyncサーバー以外の活用などもありましたら、また記事にてご紹介いたします。