MENU

rsyncサーバーの構築

目次

はじめに

Synology NASにデータを集めて大容量なプライベートクラウドを構築しています。ネットがある限りどこにいてもデータにアクセスできる様になってSynologyを導入して本当に良かったと思います。それだけ重要なシステムとなってきましたので、バックアップにも注力しています。その甲斐あって、5年近くも安全に運用する事が出来ていました。
そんな毎日は一つのメールで壊れてしまいます…なんてドラマの始まりみたいな感じですが、とうとうバックアップ失敗のメールが飛んできました。何事かと調べてみると、(HyperBackupの)バックアップ先であるUSB接続型ハードディスク(HDD)が切断されている様です。ハードディスクの健康状態を確認してみると代替えセクターが発生しています。このハードディスクはそろそろ寿命なのでしょう。
まぁ新しいハードディスクに変えればいいだけなのですが、いい機会なのでもう少しシステムを見直すことにしました。もちろん新しいSynology NASを導入するのが簡単で確実なのですが、お財布事情がそれを許しません。ありていの部品を使って、お安く、プライベートクラウドにぴったりなバックアップサービスを立ち上げます。

rsyncサーバーの構築

バックアップ先を単なるハードディスクから耐障害特性を持つネットワークストレージにランクアップします。幸いHyperBackup/Synology-NASはrsyncに対応しています。
rsyncはメジャーなサーバー間同期ツールなので、差分をとりながらのバックアップであるHyperBackupとも最適です。独立運用できるので省電力の工夫もいろいろと検討できそうです。

図 1. USB接続型ハードディスクにバックアップ
図 2. rsyncを使ってバックアップ
  • 壊れたら終わり
  • 電源入れっぱなしで非効率
  • 壊れてもワンチャンあり
  • 電源制御可能

ごちゃつくケーブルも一掃できますし、一石三鳥くらい効果がありそうです。

rsyncとは

Linux系のオペレーティングシステムで使用されるファイル同期ツールです。
リモートとローカルのファイルやディレクトリをインクリメンタル転送技術を使用して、変更された部分だけを転送することで効率的なバックアップや同期が可能です。

機材をあつめる

バックアップ用サーバーを構築に新たな投資は行えません。お財布事情は非常に厳しいのです。押し入れに眠っている機材を漁るとちょうど良いPCが見つかりました。処分しなくてよかったです。見つけたのは「HP ProLiant MicroServer」という古いサーバー向けPCです。Windowsも動かせて、4台のハードディスクが搭載できて、なのに値段は2万程度という、今ではありえない高コスパなPCでした。
SynologyでNASを構築したのでお役御免となっていたのですが、rsyncサーバーとして現役復帰してもらいます。健全な状態のハードディスクも4台調達できましたし、5インチベイ用のハードディスクマウンターも見つかりました。これでrsyncサーバーの構築準備は万端です。

CPUx64-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メモリ
表 1. HP ProLiant MicroServerの仕様

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
表 2.初回ログイン情報
図 3. ログイン

ログインが完了すると構築したサーバーのダッシュボードが表示されます。これでインストールは無事完了です。早速、rsyncを格納するストレージを構成しましょう。

図 4. ダッシュボード

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管理」にアクセスします。接続されたハードディスクを正しく取り込むために「コンフィグ消去とディスクのインポート」をチェックして「インポート」を実行します。接続したハードディスクの一覧が現れたらインポートは完了です。

図 5. マネージメント/HDD管理
図 6. インポート完了

続いて認識したハードディスクをフォーマットします。
ZFSに使うハードディスクをチェックしてファイルシステムを「ZFSストレージプール」、「GPTパーティションにZFSを作成」をチェックして「フォーマット」を実行してください。

図 7. フォーマットステップ1
図 8. フォーマットステップ2
図 9. フォーマットステップ3

順番にフォーマットが進んで実行ログが伸びていきます。すべて完了したらハードディスクのフォーマットは完了です。

図 10 フォーマットステップ4
図 11. フォーマット完了

これでハードディスクがマネージメントできる状態になりました。今後、新たなハードディスクを導入する場合には、まずマネージメントを行っておくことを覚えておきましょう。

ディスク/ZFS

いよいよZFSの構築に入ります。

仮想デバイス

本書では初めてZFSを構築するので、まずは「ディスク/ZFS/仮想デバイス」にアクセスし、仮想デバイスを作成します。仮想デバイスは、その名の通り複数のハードディスクを束ねて一つの仮想デバイスとして扱えるようにする仕組みです。物理デバイスの構成に縛られないので、ハードディスクの構成の自由度が高まります。

仮想デバイス名vDev」(好きなお名前でOKです)
4kホッパー(Nopデバイス)を作成するチェック
表 3. 仮想デバイスの設定

テーブル下のファイルシステムのボタンがいくつか用意されていますので、今回は「RAID-z1」を押下します。RAID-z1はRAID5に相当します。これでもしもHDDが一つ死んでもワンチャンス確保する事ができます。

図 12. ZFS/仮想デバイス
図 13. 仮想デバイスの作成
図 14. 実行確認

XigmaNASは処理の最後に「変更の適応」を行って処理を完了するパターンが多いです。適応して仮想デバイスの作成が完了です。

図 15. 変更の適用
図 16. 適用完了

マネジメント

ZFSが用意できたのでデータ格納用のプール(領域)を作成します。「ディスク/ZFS/マネジメント」にアクセスします。「ToolBox」の「」ボタンを押してデータセットの作成を開始します。

名前pool(好きなお名前でOKです)
仮想デバイスvDevをチェック
表 4. マネジメントの設定

設定したらテーブル下「追加」ボタンを押下します。

図 17. ZFS/マネジメント
図 18. データセット作成

最後に「変更の適用」を押下してプールの作成が完了です。だいぶ慣れてきたと思います。あともう少しでストレージの基本設定は完了です。

図 19. 変更の適用

データセット

いよいよrsync用のディレクトリをData-poolに作成します。「ディスク/ZFS/データーセット」にアクセスします。「ToolBox」の「」ボタンを押してデータセットの作成を開始します。

図 20. ZFS/データセット

データセットの所設定を行います。私はrsync用に以下の設定を行いました。

図 21. データセットの設定
【設定】
名前rsync(好きなお名前でOKです)
プールpool(ご自身の設定された名前)
圧縮CPUが非力なのでOffを選択
重複排除CPUが非力なのでOffを選択
同期標準
アクセスタイム (atime)Off
ACL 継承Restricted
ACL モードDiscard
大文字小文字の区別大文字小文字を区別する
マウント可否チェック
読み込み専用チェックしない
拡張属性チェック
スナップショット可視チェックしない
予約
クオーター
概要
【アクセス制限】
オーナーroot
グループwheel
モード全てにチェック
(オーナー/グループ/その他の
 読込み/書込み/実行チェックボックス)
表 5. データセットの設定

作成が完了したら、適応して完了です。

図 22.変更の適用

以上でrsync用ストレージの準備は完了です。続いて、自宅ネットワークに参加させるための設定を行います。

rsyncサービスを開始

続いてネットワーク周りの初期整備を行います。Synology NASやWindows、MacOSからネットワーク経由で簡単にアクセスできるようにします。

システム/基本

システム/基本」にアクセスし、rsyncサーバーとしての基本設定を行います。

図 23. システム/設定
【WebGUI】
ユーザ名admin(デフォルトでかまいませんが、変更するとセキュリティが高まります)
プロトコル完全ローカルなので特にこだわる必要はありませんがHTTPS(TLS)にしておく方が無難です。
ポートデフォルト
アクセス許可ホスト
アクセス制限を無効化
証明書―(自己署名証明書です。認証済み証明書をお持ちでしたらこちらに設定します)
秘密鍵―(証明書に相対する秘密鍵)
言語自動検出
追加のパラメータ
【時間】
タイムゾーンAsia/Tokyo
日付のフォーマットお好きなフォーマットを選択ください
システム時間
NTPを有効化チェック
NTP サーバーpool.ntp.org
時間同期300
【ホスト名】
ホスト名saturn(好きなお名前でOKです)
ドメイン―(local)
【DNS】
IPv4 DNS Serversご自宅のネットワーク情報を設定してください
IPv6 DNS Servers
表 6. 基本の設定

基本設定が完了したら一旦再起動します。

図 24. 再起動

ネットワーク/LANマネージメント

自宅LANはSynology-NASのDHCPサーバーで一元管理しています。
rsyncサーバーもDHCPクライアントとして登録します。「ネットワーク/LANマネージメント」にアクセスします

図 25. LANマネージメント
【IPv4 Settings】
タイプDHCP
IPアドレス―(自動設定)
ゲートウェイ―(自動設定)
IPv6 Settings
タイプオート
IPアドレス
ゲートウェイ
Privacy Extensionチェック無し
【高度な設定】
MTU
メディア自動選択
Wake On LANNot available(HP MicroServeの仕様)
Extra Options
表 7. LANマネージメントの設定

アクセス/ユーザー

アクセス/ユーザー」にアクセスします。GUI下部にある「Hide System Users」ボタンを押下するとシステムユーザーが隠されてスッキリしますのでお勧めです。「ToolBox」の「」ボタンを押してrsyncユーザーを作成します。

図 26. アクセス/ユーザー

rsync用のユーザーを作成します。殆ど規定値の設定で問題ないでしょう。

図 27. ユーザーの作成
【ユーザー設定】
Login Namersync用のユーザー名
フルネームユーザーのフルネーム
パスワード
概要
ユーザ ID自動発番で良ければ、そのまま
シェルNo Login
Home Directory
プライマリグループwheel
グループ
【ユーザポータル】
ユーザポータル管理者としてアクセス
言語自動検出
【ファイルマネージャ】
File Manager Accessチェック無し
Hidden Itemsチェック無し
Read Permissionチェック無し
Create Permissionチェック無し
Change Permissionチェック無し
Delete Permissionチェック無し
表 8. ユーザーの設定

変更を適応してユーザーの作成は完了です。

図 28. 変更の適用

サービス/SMB

ネットワークで簡単にrsyncサーバーが発見できる様に、ちょっとだけSMBの設定を行っておきます。NetBIOSにホスト名を設定しておくと、rsyncクライアントからホスト名で簡単に検索できるようになり便利です。「サービス/SMB」にアクセスします。

図 29. サービス/SMB
【SMB Settings】
Service ActiveNO(現在の状態です、有効になっているとYESとなります)
認証ローカルユーザー
NetBIOS 名saturn(システム/基本で設定したホスト名を設定)
ワークグループWORKGROUP
Interface SelectionAll Interfaces
概要XigmaNAS Server(任意)
DOS CharsetCP437 (ラテン US)
UNIX 文字コードUTF-8
ログレベル無効
ローカルマスタブラウザYES
タイムサーバYES
表 9. SMBの設定

【高度なSMB設定】は省略します。
一応、デフォルトの設定のままで問題なく機能します。左上にある「有効」のチェックを有効にして「適用」してください。

改めて「変更を適用」してSMBの設定は完了です。

図 30. 変更を適用

サービス/rsync

いよいよrsyncサービスの設定です。書き出すと長いですね、実際にはほとんど初期値のままでOKなのでサクサク進むと思います。
とりま、知見として残せればヨシ!ですね。(^^

サーバ/設定

NFS (Network File System)
Service EnabledNO
Map to User          
TCP ポート873
MOTD
追加のパラメータ
表 10. rsyncの設定
図 31. サーバー/設定

サーバ/モジュール

Module Settings
名前rsync
コメントrsync
パス/mnt/pool/rsync
リストチェック
アクセスモード読込み/書込み
Max. Connections0
ユーザ ID
グループ ID
アクセス許可ホスト
Hosts Deny
追加のパラメータ
表 11. モジュールの設定
図 32. サーバー/モジュール
図 32. モジュールの設定

適用してrsyncサービスの設定は完了です。

図 33. 変更を適用

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動作をスケジュールすることで定時起動が実現できます。

図 34. BIOS

XigmaNAS:シャットダウン/スケジュール

XigmaNAS自体は明け方には自動でシャットダウンするようにスケジュールを組みます。
初回バックアップは例外ですが、通常のバックアップでは多くても1時間もかからないので、バックアップと検査を行っても十分な猶予を持つことができます。

図 35. シャットダウン/スケジュール

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サーバー以外の活用などもありましたら、また記事にてご紹介いたします。

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
目次