プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

NAS の容量を増やしたら、スナップショットレプリカが失敗した

昨日、こちらの記事に書いたように、 NAS の容量と iSCSI で使っている LUN の容量も増やしました。

で、今日、仕事場に来て、メールをチェックしていると、 NAs から何通もの警告メールが来てます。何があった?と思って中身を確認すると、

アプリ名: ストレージ&スナップショット

カテゴリー: スナップショットレプリカ

メッセージ: [ストレージ&スナップショット] スナップショット複製: ジョブ "LUN_0_rep1" の開始に失敗しました。ソースボリューム/LUNのサイズが変わりました。宛先のNASでこのジョブのボールトを削除してから、新しいジョブを作成してください。

とのことです。あ、なるほどね。実際に、 NAS にログインしてみると

スナップショットレプリカの送信元の NAS

スナップショットレプリカの送信先のNAS(スナップショットボールト)

のようになってました。

送信元の NAS のスナップショットレプリカのログにもこんな感じでエラーが記録されています。

念のため、 QNAP のサイトも調べてみると、同様のことが載ってました。

Why can't I successfully take snapshots or run Snapshot Replica jobs sometimes? | QNAP

(このページの下のほうにある『The source volume or LUN has been expanded』のところにばっちり書かれています)

まあ、レプリカという機能なんで、考えてみれば、こうなるのも致し方なしかな。

ということで、スナップショットレプリカジョブを作り直したので、その際のメモ書きです。

送信先のスナップショットボールトを削除

まずは、スナップショットレプリカの送信先にある、スナップショットボールトを削除します。送信先のNASにログインして、『ストレージ&スナップショット』->『データ保護』->『スナップショットボールト』を開きます。こんな感じです。

『アクション』の縦3点部分をクリックすると

のように『削除』メニューが表示されるので、それを選択します。

のような確認画面が表示されるので、『適用』をクリックします。ボリューム(スナップショットボールト)の削除が始まりますので、完了するまでしばらく待ちます。

削除が完了すると、

のように表示が消えます(たまたま、このスナップショットボールト以外に表示するものがないので、何も表示されていません)。

スナップショットレプリカジョブの再作成

次は、スナップショットレプリカの送信元(実行元)のNASにログインしての作業です。手順としては、既存のスナップショットレプリカジョブを削除してから、新たにジョブを作成します。本当は作成してから削除したかったんですが、後述するようにこの順番だとトラブルになるので、先に削除しています。なお、スナップショットレプリカジョブを削除しても、送信元NASでローカルに取得したスナップショットがある場合は、それらは消えないので心配しなくても大丈夫です。

まずは、『ストレージ&スナップショット』->『データ保護』->『スナップショットレプリカ』を開きます。こんな感じです。

(画像は、スナップショットボールト削除前の状態です)

ここで、ごみ箱のアイコンをクリックして、『削除』を選択します。

確認があるので、『OK』を押します。スナップショットレプリカジョブが消えました(ローカルに取得したスナップショットは残ってます)。

次に、『レプリケーションジョブの作成』をクリックします。

『タスク名』はデフォルトのままにして、『次へ』をクリックします。

スナップショットレプリケーションの対象となるソースと送信先を選択・入力します。送信先 NAS のユーザー名、パスワードを入れたら、『テスト』ボタンを押します。

この時、ユーザーに対して2段階認証を設定している場合は、下記のようなセキュリティコードの入力も行います。

無事に接続テストにパスしたら、『次へ』をクリックします。

バックアッププランとしては、『スケジュールされたレプリケーションジョブの開始』を選択し、『スケジュールされた新しいスナップショットをとり、レプリケーションジョブを起動します』にチェックを入れます。

別の『ローカルにスナップショットを撮った後、レプリケーションジョブを行う』でもいいんですが、こちらは指定した回数のスナップショットを撮った後にレプリケーションを行う、という形になります。このため、不定期的にスナップショットを撮ったときにも、レプリケーションジョブが動いたりするので、ちょっと望みの動作ではないかな?と思い、こちらは選択しませんでした(毎日、定期的にレプリケーションを行ってほしいんです)。

『次へ』をクリックすると、いくつかのオプションを設定する画面が表示されます。

ここでは、『送信を圧縮する』にチェックをつけておき、その他はデフォルト値のままとします。『次へ』を押すと、確認画面が表示されるので、

下の方にある『バックアップを直ちに実行します』にチェックをつけてから、『完了』をクリックします。

これで、スナップショットレプリカジョブの定義が完了して、早速、初回のレプリケーションが始まります。

送信先の NAS 側もこんな感じで、スナップショットボールトが作成されました。

あとは、最初のレプリケーションジョブが完了するのを待つだけです。

トラブル

上記の設定中に2点ほどトラブルがありました。

ログインできない

上記のスナップショットレプリカジョブを作成しようとした際に、接続テストを行うと書いたのですが、これがログインできないことがありました。

以前にも似たようなことがありましたね(こちらの記事参照)。改めて、送信先の NAS を確認してみると、 QuFirewall が、送信元 の NAS をブロックしています。

アクセスログも QuLog Center で確認すると、

のように大量のログイン失敗が記録されています。

印象としては、送信元の NASで、『ストレージ&スナップショット』を開くと、ログイン試行が行われているような印象です。ちなみに、 QuFirewall の『拒否された IP アドレス』を表示して、ここから削除しても、すぐにログイン試行するようで、なんども登録されてしまうため、テストが成功しません。

ということで、仕方ないので、『コントロールパネル』->『セキュリティ』->『IPアクセス保護』を選択して、

一時的に HTTP(S) によるアクセスの保護を無効にします。その後、送信元の NAS 側で、スナップショットレプリカジョブの作成を行い、接続テストを行ったところ、問題なくテストに成功しました。

スナップショットレプリカジョブの設定後は、上記は元に戻しておきました。

同じストレージプールにスナップショットレプリカを保存できない

スナップショットレプリカジョブを作成する際に、既存のジョブの情報を参照したかったので、既存のジョブを削除せずに新規に追加する形で作業を行っていたら、送信先のストレージプールを選択した段階で、

のようにメッセージが表示されました。どうも、同じデータを同じストレージプールに保存することはできないようです。

ということで、上記のようにスナップショットレプリカジョブは先に削除しておいてから作業を行う必要があります。

まとめ

NAS の容量を増やしただけだと思っていたのに、意外とあちこちに影響がでています。なかなか全部押さえて一度に設定するのは難しいですね。

WSL のバックアップ設定の修正

Windows のローカルドライブのバックアップ先として、 NAS 上に作った iSCSI ドライブを WIndows 上にマウントして使っています。

こちらの記事で書いたように、バックアップ先になる NAS の容量を増やしたので、バックアップの内容を見直したので、その際のメモ書きです。

rsnapshot.conf の修正

見直したバックアップの内容というのは、具体的には、 こちらの記事で書いた WSL 上の各種設定ファイルを rsnapshot でバックアップするという件に関するものになります。

いままでは、 WSL を使った作業は一時的なものが多かったことなどがあり

backup        /home/mor/              localhost/      +rsync_long_args=--exclude=/home/mor/work/ --exclude=/home/mor/tmp/ --exclude=.cache/

のように WSL 側の作業ディレクトリ(/home/mor/work/)をバックアップの対象外としていました。

しかし、最近は WSL 上での(仕事としての)作業も増えてきていたので、これ幸いと、 WSL の作業ディレクトリもバックアップ対象に加えることにしました。あと、ついでに、バックアップ先のフォルダも少し見直しました。

そんなことで、最終的に、こんな感じになりました。

mor@DESKTOP-DE7IL4F:/etc$ diff rsnapshot.conf.20240415bak rsnapshot.conf
23c23
< snapshot_root /mnt/e/backup/
---
> snapshot_root /mnt/e/backup/wsl/
233c233
< backup        /home/mor/              localhost/      +rsync_long_args=--exclude=/home/mor/work/ --exclude=/home/mor/tmp/ --exclude=.cache/
---
> backup        /home/mor/              localhost/      +rsync_long_args=--exclude=/home/mor/tmp/ --exclude=.cache/
mor@DESKTOP-DE7IL4F:/etc$

rsnapshot.conf を修正したので、設定ファイルに問題がないか確認しておきます。

mor@DESKTOP-DE7IL4F:/etc$ rsnapshot configtest
Syntax OK
mor@DESKTOP-DE7IL4F:/etc$

問題ないですね。

既に、 cron で rsnapshot を動くようにしているので、この状態でしばらく待って、バックアップ先が作られていることを確認します。何時間か待つと、無事に hourly のバックアップが作られました。

これで、安心して WSL で作業をできますね。

NAS の容量不足で HDD 交換

運用中の NAS にひさしぶりにログインしてみると、ログイン後の画面の右上がオレンジ色になってます。

なんだかやばそうだな、と思い、クリックするとストレージ関係で警告がでています。詳しく見てみると、HDD の使用量が、ストレージプールに設定したしきい値を超えたため、警告が出ていたようです(画面取り損ねました)。

この NAS は少し前に HDD でエラーが出た際(こちらの記事参照)に、それまで 2TB 容量で運用していたのを、交換 HDD のみ 4TB にしていました。

こんな感じで容量違いになってます。まあ、 2TB で運用することも不可能ではないのですが、せっかくなので、この機に、 2TB のものを 4TB HDD にして、容量アップを図ることにしました。

正常な状態での HDD の交換と容量増加は、一応、過去にこちらで、似たようなことをやってるのですが、せっかくなのでメモっておきます。

なお、作業は下記で行いました。

  • QNAP TS-231P
  • QTS 5.4.1.2596

HDD の交換

今回は、せっかくのホットスワップを堪能しようということで、あえて、この NAS が提供している iSCSI 接続を残したまま、HDDを交換することにしました。

なお、手配した HDD は Western Digital の Red Plus 4TB CMR 256MB キャッシュ WD40EFPX になります。

以前の記事と同じ手順で、『ストレージ&スナップショット』->『ストレージ』->『ストレージ/スナップショット』を開き、『管理』を呼び出します。この画面でさらに、『管理』->『ディスクを1台ずつ交換する』を選択します。

表示された画面で、交換したい HDD を選択して、『変更』をクリックします。

上記のように、選んだディスクの説明が『このドライブを取り外してください』となるので、HDDを取り出します。

ちゃんとなくなってますね。次に、取り出した HDD をはずして、ドライブのガイドに、新しい HDD を取り付けます。

で、NAS の空きドライブに入れて

押し込めば完了です。少し待つと、

のように、ドライブがビジー状態となり、ミラーリングの再構築が始まります。あとは、再構築が終わるまでしばし待ちます(約5時間かかりました)。

ストレージプール容量の拡大

再構築が完了しても、自動的にはストレージプールの容量は増えません。ということで、ここからは、増やした空き容量を使うべく、ストレージプールの容量を増やします。

『ストレージ&スナップショット』->『ストレージ』->『ストレージ/スナップショット』を開くと、 RAID グループの各 HDD の容量は増えている(3.64 TB)のに、 RAID グループ(ストレージプールに RAID グループがあるので、容量という意味ではほぼ同じとみなせます)としては以前の容量のまま(1.81 TB)になっていることがわかります。

これを増やすには、『管理』->『ディスクを1台ずつ交換する』を選択します。

表示された画面の下部にある、『容量の拡張』ボタンをクリックしたら、RAID グループの容量の拡張処理が始まります。あとは、終了するまでひたすら待ちます(今回は約6時間かかってました)。

完了すると、

のように、ストレージプールの容量が増えていることがわかります。今回の警告は、このストレージプールの容量に対して警告が出ていたものだったので、とりあえず警告表示がなくなり、一安心です。

上記の画面の下の方にあるのは、 LUN (iSCSI ターゲット)の容量に関するものです。NASの容量に余裕ができたので、次はこちらの容量も増やしておきます。

ちなみに、同じ画面に見えるボリュームのほうも増やそうと思えば増やせるんですが、バックアップデータの保存場所として使っており、元データがそこまで多くないので、当面はこのままにしておきます。

LUN 容量の拡大

これはやったことなかったんですよね。なので、事前にネットを調べると、

Q&A|サポート|フォースメディア

にあるように、容量の拡大であれば、できるとのことです。

『ストレージ&スナップショット』->『ストレージ』->『ストレージ/スナップショット』を開き、該当するLUNを選択して、『管理』を押すと、『iSCSI & ファイバーチャンネル』が開きます。ここで、 LUN を選択して、『アクション』から『変更』を選択します。

『iSCSI LUN の変更』ダイアログが表示されるので、

『容量』の部分を増やしたい値に変更します。今回は 2TB にしてみました。値を入力後、『適用』ボタンを押すと、すぐさま変更が反映されました(たぶん、 LUN が シン LUN だったからでしょうね)。

もちろん、上記画面のように、警告表示もなくなりました。これで、当面安心して使えるようになりそうです。

Windows 側のパーティション容量を拡張

さて、これで問題ないなと思って、 Windows で iSCSI ドライブを見てみると、容量が増えていません。

あれ?と思ってよくよく考えてみると、 iSCSI はネットワーク経由で LUN をディスクドライブのように見せているだけなので、 WIndows 側ではディスクドライブ上のパーティションに変わりは生じていません。

実際、コンピュータの管理を開いて、ディスクの管理を表示されると、

のように、ドライブとしては、未割当領域がちゃんと増えてましたが、パーティションは変化ありません。

なので、最後の仕上げとして、このパーティションを拡張してやります。

Windows 11 だと、パーティションの拡張も簡単で、パーティションを選択して、そのうえで右クリックします。

表示されたメニューから、『ドライブの拡張』を選択すると、ウィザードが始まります。

『次へ』と進むと、どれだけの空き容量を増やすか聞かれます。今回はすべてを1パーティションに割り当てるので、そのまま『次へ』を押します。

拡張が終わると、下記のような表示に替わり、エクスプローラ上でも増えた容量が表示されます。

これで、大丈夫ですね。

まとめ

再構築等に時間がかかりますが、NAS だと(機種にもよりますが)ディスクを1台づつ交換して、容量を増やせるのが楽でいいですね。