Synology DS1517+をext4→Btrfs移行

■Windowsのバックアップソリューション探索

同居人も含めWindows PCがだいぶ増えて来たので、コスパとユーザビリティの高いバックアップ方法を検討しました。以前はWindows Home Server/2011を愛用していましたがサポートが切れ、Windows Storage Server 2012のThecus製のNASに移行。こちらも今年でサポート終了です。

それ以前にThecusやその国内代理店のサポートもまともに機能してない様子でしたり、Windows ServerやActive Domainも使い勝手が悪く、管理画面もなにをするにもかったるくてほぼ使っていませんでした。

ただWHSやWindows Strage Serverの良かった点は複数PCのバックアップを重複排除して保存できる点。つまり、OSやアプリなどの重複ファイルを別個に格納せず、完全一致するファイルについては1つ分の容量でバックアップできるということです。何台もWindows PCをバックアップする際にはバカになりません。

そしてファイル単位のリカバリーとベアメタルリストア(OS環境まるごと復元)ができる点などを要件として検討しました。

またノートや携帯機もあるので個別にUSBなどでストレージをぶらさげるのは使い勝手が著しく悪いですし、それぞれの空き容量を無駄なく管理することもできないので最悪です。ということでNASによるバックアップ一択で考えました。

■Synology Active Backup for Businessという選択と障壁

もろもろ加味して調べると身近なところに良い選択肢があります。Synology製の上位NASで無料で扱えるSynology Active Backup for Businessです。重複排除やファイル単位/ベアメタルの両立、ファイルバージョン管理など必要な要件は揃っています。ハード自体も既に我が家にはあるので、ストレージ領域さえ用意すれば良いことになります。

実は存在自体はかなり以前から知っていました。しかし導入してこなかったのには理由があります。(昔は有料で結構高かったような気がするのと)ファイルシステムがBtrfsでないと使えないという点です。Btrfsは従来のext4よりも新しいファイルシステムで、重複管理やバージョン管理などの機能はこのファイルシステムに基づいた実装となっています。廉価モデルでは利用自体が非対応ですが、我が家のDS1517+はOK。ただ現在稼働しているext4のボリュームをそのままBtrfsにコンバートできないというのが問題でした。変換には一度ボリュームを削除して再作成する必要があります(裏技もあるにはあるっぽいですが上手くいかないリスクも)。つまり稼働しているNASに対して行うには、一度データをまるごと待避する必要があり、それをするだけの空きディスクを用意しなければなりません。これが手間やコストの問題で躊躇していました。DS1511+からDS1517+に乗り換える際に、HDD 5台をまるごと新調するコストもかけづらかったので、そのままディスクを刺し替えて移行し、ext4も引き継いでしまっていたくらい。

ちなみにBtrfs自体のメリットは公式ページにまとめられています。ext4よりわずかにパフォーマンスが劣るらしく、今でもext4はサポートされてますしBtrfsの機能を不要と考える人や非対応モデルの人はext4もまだまだ現役のようです。

今回ようやく重い腰を上げ、今のボリュームまるごとを待避できる12TBのHDDも導入し、Btrfs移行を敢行することにしました。

モデルはSynologyのサポートが手厚い(印象のある)IronWolf。今回は外付けで使うので同Proである必然性は薄いと判断してコスパ重視で。それでも同モデルを2021年に買った時は3万切っていたのが今回4万以上しており円安や部品不足の影響を強く感じました。

こちらを元々外付けにつかっていたeSATAケースに入れ替えてマウントし、これまたSynology謹製のバックアップツールHyperBackupでボリュームや各アプリ設定をまるごとバックアップしました。ちなみにUSB3.0の方が速いならケースもこの機会に買い換えようと思ったんですが、理論値とは裏腹にeSATAの方が速いという情報ばかりだったので継続して使用することにしました。USBに変換するオーバーヘッドの方がロスが大きいってことなんでしょうかね。まぁどのみちHDDのスピードが頭打ちになるのであんまり差は出ないのかも知れません。

これでバックアップが正しくできていなかったら復元もできないのでかなり不安です。整合性チェックなども走らせたりしました。まぁ最悪でも重要な共有フォルダは実家に遠隔バックアップもしているので、いつまでもはビビっていられずボリューム削除と再作成に踏み切りました。

こういう神経のすり減らしを避けたい方は、新ハードとHDD一式を買い揃えてコピー移行するのがオススメです…

■削除までの手順

ストレージマネージャーでボリューム(ストレージプール)を削除しようとすると、こんな画面が出ました。

削除しようとするボリュームが依存している(されている)パッケージがあり、先にそっちをどうにかしろ(消せ)という主旨です。一応これらもバックアップされてるんじゃないかと思いつつも、まぁ最近使ってないものばかりだったので粛々とパッケージをアンインストールしました。2番目のrsyncのエラーはコントロールパネルで無効化するだけで大丈夫でした。

DockerとNote Stationはなくなればなくなってもいいけど、復元されるならそれにこしたことはないなということで結果を見守りたいと思います。

いよいよエラー内容も克服し最終段階。警告や確認のパスワード入力を経て削除実行。そしてSHR & Btrfsで新しいボリュームを全容量で作成。その後、ドライブチェックが自動で走って終了まで15-20時間と出ました(総容量は17.4TB)。同時にHyperBackupからのリストアもできたかも知れませんが、余計な一時負荷をHADに与えて壊れてもイヤだし、仮にこのドライブチェックでエラーが出るようならドライブ交換も必要になるかもなので、大人しく一晩放置することにしました。

チェック完了後、さてリストアしようかと思ったらなぜかHyperBackupパッケージがなくて肝を冷やしましたが、パッケージセンターで再インストールをしたらきちんとeSATAドライブ上のバックアップを認識してくれました。ので、復元パッケージではHyperBackupのチェックを外してそれ以外を全部選択した状態で実行しました。パッケージ復元中は当該サービスが止まるよ、という警告が出たくらいなので、HyperBackupでリストア中にHyperBackupが止まったらアカンやろという判断です。まぁさすがになんも考えずに全部オンにしてリストアした時のことを想定してないわけはないでしょうが、もう少しリストアウィザードのUI表記がこなれてほしいなと思った点です。

リストは丸一日かかりました。一応抜けたデータはざっと見た限りなさそうですが、通知をみると「復元できませんでした」という不穏かつ役に立たないイベント記録があります。

具体的にどのファイルが、いくつくらい失敗してるのかわかりません。「詳しくはログを見ろ」とあるので、開いて見るも、情報は全く増えません。選択したら詳細画面に行くかと思いきやなにも置きません。1件1行の情報しか残ってないようです。

2行目はアプリのリストア失敗なので良いとして、その後の1行目が「リストアが失敗」となっていて影響範囲がわかりません。2行目のエラー発生を受けて、満点ではないという意味なのか、具体的にファイルに影響があるのか、もやもやが残るリストアです。

もやもやは残るけどもはやどうしようもないので、一応リストアできたと思って使って行くしかなさそうです。

ちなみにストレージの利用量がガサっと減ってるのも恐いですw。8TBくらいあったのが6.5TBとかになっています。ヒリヒリします(^^;)。軽くホラーです。ゴミが減ってクリーンアップされたのか、本当に復元できていないファイルがあるのか、はたまたext4とBtrfsの差やセクターサイズによる違いなのか、理由は謎。まぁでも6.5TBという数値はバックアップのサイズと同じくらいです。抜けができてるとしたらリストア段階ではなく復元段階なのかも知れません…だとすると復元はやりなおしても同じな可能性が高いです。気にしてもしょうがないので、空き容量が増えたことを喜んでおくしかなさそう。

■外付けドライブでBtrfsを使えるか?

今回、12TBという真っ新なHDDを用意した機会だったので一時的に待避ドライブとして使ってBtrfs化を図りましたが、実のところActive Backup for Businessのストレージとしては内蔵部分は使うつもりはありません。サイズの大きなバックアップ領域をSHR(RAID)で冗長化するのはコスパが悪いし、バックアップのバックアップまでは必要なかろうという判断です。最終的には待避に使ったHDD自体をBtrfsでフォーマットしてそこにバックアップできればいいんじゃないかと考えました。

ただ現行のSynology NAS(DSM7)は外付けドライブをBtrfsで初期化することはできない模様。公式ページによると、「Synology NAS は次のフォーマットを認識します。Btrfsext3ext4FAT32exFATHFS Plus、and NTFS.」とBtrfsを含む一方、「外部ドライブは Synology NAS で ext4 または FAT32にフォーマットできます。」という記載もあり、”使えるけど自分で初期化はできない”という状況ぽい。ということは、他のPCでBtrfsでフォーマットしてからもってくる必要がある。めんどくさー!

現状、自宅にLinuxが稼働しているPCがないので悩ましい。こういうフォーマット関係を仮想化PCでやるのもちょっと心配、というかめんどくさそう。調べてみるとWindowsでBtrfsを扱うオープンソースプロジェクトはあるみたい。いやーどうしようかなー。どれくらい枯れているのかわからない。

別PCでLinuxからBtrfsボリュームを作成

ということで、安全をとってPCでUSBブートでLinuxを動かしてBtrfsドライブを作成することにしました。手間を省くのに、最初からBtrfsパッケージを含んだUSBブータブルなディストリビューションを選びたいところ。Bing Chatで聞いたところ、openSUSEかFedoraは標準ファイルシステムとしてBtrfsを採用している、またArch Linuxはファイルシステムの選択肢としてBtrfsをもっている、ということがわかりました。なんとなくRedHat系に馴染みがあるので今回はFedoraを使ってみることに。UNetbootinで選べる最新の30_Live_x64を適当なUSBフラッシュドライブに書き込みました。

しかし当該ISOはDLできないとエラーになり、結局、ArcLinuxで実行。

Synology NAS単体でBtrfsボリュームを作成(SSH)

後から判明したんですが、SSHでログインしてコマンドラインからなら外付けドライブもBtrfsできました。普通にmkfs.btrfsコマンドが入っているので、

既存パーティションがある場合はfdiskなどで開放する必要があるかも知れません。

しかしマウントできず、Active Backup for Businessから使えない?

どちらの方法でフォーマットした場合でも、残念ながら現状でABBで使えていません。

まず物理的に接続すると通知で「外部デバイス External SATA Disk1 のパーティション 1 をマウントできません」と出ます。一方、ストレージマネージャーではきっちりBtrfsであることは認識してるっぽいんですが(下記画像)。またコンソールからみてもマウントできてるぽくlsして中身も見られます。

それでもFile Stationでは見えないし、当然ABBでもデスティネーションとして選択できません。

Synologyのコミュニティで4年前のスレッドで公式サポートに問い合わせてABBのストレージとして外部メディアはサポートしてない、と回答されたという書き込みがありました。情報も古いし、別途こちらでも問い合わせてみようかとは思いますが、ともあれ現時点ではBtrfsでフォーマットした外付けドライブ(eSATA接続)はABBの保存先として使えていません(マウントすらできてるかあやしい)。

残る選択肢としては、

  • RAID/SHRのメインボリュームを使ってバックアップ(管理は楽だが、冗長化されてる分、コスパは悪いし、本来のファイルストレージを圧迫する)
  • ドライブの1台を12TB HDDに交換して冗長化のないボリュームを作る(スワップして復旧した場合、元のTB数から増えた分がSHRでどう使われるんだっけ?任意設定できたかどうか不明。まと10TBフルでバックアップ領域に割り当てられず4TBくらい目減りしてしまう)
  • もう一台ハードを買ってバックアップ専用機にする

くらいです。

■今追加でバックアップ機を買うなら?

今回購入した12TB HDDを活かす想定だと、1ベイか2ベイ機になりますが、そもそもABB対応モデルでというと、現行ならDS224+、DS723+でしょうか。どちらもメモリ増設は可能ですが10Gbps NICを増設できるのはDS732+だけのようです。

んー、当座1Gbpsでもいいかもですが、数年使うことを考えると拡張性は残しておきたい気がします。

■まとめ

とりあえず当初の目的である、内蔵メインボリュームのBtrfs化は果たせました。これでABB自体は使えます。しかし目論みだった外付け12TB HDDへの保存は現時点ではできなそう。

とりあえずしばらくABB運用してみて問題ないか、どれくらいストレージを消費しそうかなどを検証して、対策を考えようと思います。

ABBの使用感もまた別途記事にできたらと思っています。現状気になってるのはバックアップから除外するフォルダーを指定できない点でしょうか。完全にテンポラリなフォルダや、OneDriveやDropboxで保全できてるフォルダ、Office、Adobe系、Steamのゲームタイトルなどクラウドから再インストールすればいいだけのものについては除外しておきたいところ。そこだけがWHSと比べて難点かなーと思っています。