0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ファイルシステムの整合性保持

Posted at

整合性がなくなる

システムを運用していると、ファイルシステムの内容に不整合が生じることがあります。
典型的な例が、ファイルシステムのデータをストレージに読み書きしている最中に、システムの電源が強制的に落ちるような場合です。
...
これら一連の処理はプロセスから見ると、一つにまとまった不可分の処理(アトミック)になっています。
...
不整合をファイルシステムが検出すると、マウント時に検出した場合は、ファイルシステムをマウントできなくなったり、読み出し専用モードで再マウントされたり、システムがパニックにしたりします。

気づき

ファイルシステムの読み書きがアトミック処理になっているからファイルシステム側が混乱するのか。

ジャーナリングによる不整合防止

ファイルシステム内にジャーナル領域という特殊なメタデータ領域を用意します。

  • 更新に必要なアトミックな処理の一覧を一旦ジャーナル領域に書き出す。この一覧をジャーナルログと呼ぶ。
  • ジャーナル領域の内容に基づいて、実際にファイルシステムの内容を更新する。

気づき

それ以降の図を見るとジャーナル領域とは更新処理の予定表なものなのか。
それでジャーナル領域に更新予定を書き込んでいる間に電源が落ちるとそのジャーナル領域を破棄する。
更新処理最中に電源が落ちると再起動後にジャーナル領域を再び読み込み完了させる。

コピーオンライトによる不整合の防止

ファイルシステムの格納方法

ext4やXFSなどは、一旦ストレージデバイス上にファイルのデータを書き込んだら、その後ファイルを更新すると、ストレージデバイス上の同じ位置にデータを書き込みます。

コピーオンライトによるファイル更新

ファイルにデータを書き込んだ後は、更新するごとに別の場所にデータを書き込みます。

気づき

別の位置にデータを書き込むことによって電源が落ちても作成されたファイルを削除するだけいいのか。

バックアップをとっておく

ファイルシステム不整合の発生は減らせますが、完全に無くすのは困難です。なぜならファイルシステムにバグがあれば依然同じ問題が発生しますし、ハードウェアに問題がある場合も問題が起こりうるからです。
 ではどうすればいいかというと、一般的には、ファイルシステムの定期的なバックアップファイルを取っておき、ファイルシステム不整合が発生した時には、最後にバックアップをとった時点の状態に復元することが対策となります。

出典

感想

ファイルシステムの方で更新時の問題を解決してくれるが、バックアップをとっておくことが重要だ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?