QNAP HA(High Availability) : フェイルオーバー発生時のデータ整合性について

HA構成でフェイルオーバー時に求めること

2台のNASを使ってHA構成を組んでいる場合、フェイルオーバー時に求められることは何でしょうか?当然ながら"1台が故障した場合にもう1台に処理が切り替わって、作業が継続できること"というのが期待値だと思います。

ではここで"作業が継続できれば書き込み中のデータなどデータ化け、不足があってもよいか?"と問うと、基本的に回答は"No"かと思います。一部のユーザー様の回答として、"フェイルオーバーが発生した場合、どうせ書き込み途中だったファイルはまた新しく書き込むから大丈夫"といったご意見があるかと思います。

ただし、“整合性に異常が発生するかもしれない事実”、"場合によってはファイルがサブ機の方に同期されていない事実"というものがあると、フェイルオーバーが発生した場合に、サブ機側のデータセットや、ファイルのチェックサムを突き合わせて確認しないわけにはいかなくなってきてしまいます。

ということで、最近QNAPのNASがHAに対応したのですが、それにともない"QNAPのNASではHA構成でフェイルオーバーが発生した場合、そのデータの整合性は担保されるのかどうか?"というご質問をいただきましたので、確認してみました。そちらのユーザーさんは日本メーカーのNASをご利用中とのことでしたが、"フェイルオーバーが発生したときにサブ機に保存されていないファイルが大量に存在した。"とのことでした。

早速ですが確認していきたいと思います。

テスト環境

今回使用するテスト環境です。ざっくりこちらのような構成になります。

フェイルオーバー発生時の整合性確認

操作用PCからクラスタIPである192.168.131.230にファイルをコピーし、ファイルのコピー中にメイン機側の電源ケーブルを引っこ抜いてフェイルオーバーを発生させ、コピー完了時のmd5sum値をクラスタIP上で確認してみて一致するかどうか?を確認していきます。

この際、テストに使用するファイルはこちらのWindows11のインストーラファイルを使用します。

記事のコンテンツ

実験!大容量ファイルのコピー

宣言通り、クラスタにファイルを書き込み中にメイン機の電源ケーブルを引っこ抜いてみました。フェイルオーバーが発生するまで書き込みはいったん中断され・・・フェイルオーバーが完了すると、コピーが継続され完了します・・・

こんなテストを3回ほど繰り返してみた結果です。

1回目 - 297b8c040ef6bb78edfb8d216b04b307 - 問題なし
2回目 - 297b8c040ef6bb78edfb8d216b04b307 - 問題なし
3回目 - 297b8c040ef6bb78edfb8d216b04b307 - 問題なし

コピーがいったん中断するパターンも

テスト中に、発生するパターンとしてこういったものもありました。メイン機からサブ機にフェイルオーバーした際に”予期しないネットワークエラーが発生しました。"といったエラーになるケースです。

この場合は、メイン機の方で書きかけのファイルが既にサブ機のフォルダの方にも反映されており、"サブ機の方に既にファイルがあるために、上書きするかどうか?"の質問も併せて表示されます。

この時クラスタIP上でファイルを確認すると、コピー途中のファイルであり、チェックサムが異なることが確認できました。

このような場合は、“再試行” → "ファイルを置き換える"とすることで、不整合が発生することなく、ファイルのコピーを完了することができました。

実験2 大量ファイルのコピー

大量ファイルをコピーし、その途中でフェイルオーバーが発生した場合に、ファイルが掛けることなくサブ機にコピーされることを確認していきます。

大量ファイルとしては、ここではWIDER_trainのサンプルデータを使用します。(ファイル数12880、 フォルダ数63、総容量1.37GB)

大容量ファイルの場合と同じく、コピー中にメイン機の電源を停止させる形で確認していきます。

コピーしたフォルダに対して、下記のようなコマンドでmd5sumのリストを作成。チェックサムとファイルリストを比較します。

find ./ |sort |xargs md5sum > md5sum.list

リストをこんな感じでdiffで確認すれば、差分があるかないか簡単にわかります。

記事のコンテンツ

これを3回ほど繰り返してみましたが、差分は発生しませんでした。

結論

QNAP NASにてHAを構成し、"大容量ファイル、大量ファイルの2パターンについてコピー中にメイン機のACケーブルを引っこ抜いて電源断してみる。"ことで、フェイルオーバー発生時にファイルの整合性や、一部ファイルの欠損が発生するかどうかを確認してみました。

結論としては、このようなケースに置いても、ファイルの整合性欠如や一部ファイルの欠損は発生しませんでした。

まとめ

"お客様が所有していらっしゃる他社製NASの挙動、仕様に課題を持たれており、QNAPのNASではどうか?"とご質問いただきましたので、HA構成時にフェイルオーバーが発生した場合の挙動を確認してみました。

ここでは、"大容量ファイルのコピー中にフェイルオーバーが発生した場合"と、"大量ファイルのコピー中にフェイルオーバーが発生した場合"の2パターンで確認してみました。

結果としては、どちらのパターンでも、ファイルの整合性の欠如や、ファイルの欠落といった問題は発生しませんでした

"フェイルオーバー"自体 NASの故障がトリガーだったりするので、そうそう頻繁に発生し得るものではありません。頻繁に発生し得ないこそ、事前にどういった挙動になるのか?を把握し、いざ発生してしまった場合は落ち着いて対応したいものです。

"ファイルの整合性の欠如や、ファイルの欠落が発生し得る・・・"といった可能性があると途端にフェイルオーバー発生時のオペレーションが複雑になってしまいます。

その点、QNAPのNASでHAを構成いただけば、万が一フェイルオーバーが発生した場合でも、整合性の欠如や、ファイルの欠落が発生せず、安心してお使いいただくことができます。