Broadband Watch logo

NAS編
第10回:ジャーナリングファイルシステム


 大容量のHDDを搭載するNASでは、ジャーナリングファイルシステムと呼ばれる機能を搭載した製品が多くあります。これは、突然の電源ダウンなどの障害でファイルシステムが壊れないようにするためのものです。


ファイルシステムの破損を防ぐ「ジャーナリングファイルシステム」

 例えば、PCの電源をうっかり抜いてしまった場合や、ハングアップして動かなくなったので電源を落として再起動し直したという場合、チェックディスク作業が発生してHDDのチェックが終了するまで待たされる経験をした人は多いのではないでしょうか。これはPCに限らず、HDDを搭載するNASも同様で、電源を唐突に落とした場合には内部のファイル構造に破損が生じ、起動時にチェックに時間がかかるケースもあります。

 特に大容量化した最近のNAS製品の場合、チェック作業が発生すると終了するまでに相当の時間が発生する場合もあります。そこで、こうした問題に対応するのが「ジャーナリングファイルシステム」と呼ばれる機能です。

 ジャーナルとは「記録」という意味で、ファイル書き込みの記録を取るという方法です。手順を簡単に図1に示しましたが、ここではまずNASのHDDをデータ領域とジャーナル領域に2分割します。ただ、ジャーナル領域はそれほど大きいものではありませんし、ユーザーからは見えません。


図1:ジャーナリングファイルシステム

 次に、このNASにクライアントからファイルの書き込みを実施します。この場合は以下のような手順になります。

(1)クライアントからNASに書き込み要求
(2)1からの要求をNASのメモリ領域に格納して、クライアントには「書き込み完了」を返す(*A)
(3)ジャーナル領域に、書き込みに必要な管理情報を書き込む
(4)ジャーナル領域への書き込みが完了したことを確認する
(5)データ領域に管理情報+データを書き込む
(6)データ領域への書き込みが完了した事を確認する
(7)完了した書き込みの管理情報を削除する

 この手順の必要性について簡単に説明すると、冒頭で書いたファイルシステムの破損は、データと同時に管理情報(ディレクトリの管理情報とかファイルの属性情報など)を書き込んでいます。これが急な電源断によって中断してしまうと、管理情報が不完全な状態で更新されてしまいます。

 そこで、確実に管理情報を書き込むように処理を二重に行なわせるわけです。まず、ジャーナル領域に「どのディレクトリに、どのファイルをどの属性で書き込むか」を記録します。仮に、この書き込み中に電源断が発生しても、データ領域に書き込みが行なわれないため実害はありません。

 次に、ジャーナル領域への書き込みが終了し、データ領域への書き込み作業中に電源断が発生する場合を考えます。最悪の場合はデータ領域の管理情報が破損してしまいますが、先ほどのジャーナル領域には情報が残っていますから、こちらを参照して情報を元に戻せば済みます。

 これによって、不意な電源断があっても、NASの修復がいち早く完了するというわけです。誤解のないように書いておくと、上記の場合ではデータ書き込みには失敗していますので、クライアントから再度書き込み作業を行なう必要があります。

 ジャーナリングファイルシステムは、あくまでファイルシステムの構造を保護するもので、データを保護するわけではありません。現実問題として、データの書き込みをジャーナリングで保護すると、2回書き込みをするため倍以上の時間がかかりますし、UPSなどと組み合わせない限り非現実的でもあります。

 実際のところ、完璧に保護するにはクライアントへの通知(*Aの部分)を1番最後、つまり、ログが削除されるまで待ってから返す必要がありますが、この場合は書き込み速度が遅くなるため実際に使用しているケースは稀です。繰り返しになりますが、このシステムはあくまでファイルシステムの構造を保護するものである点を、誤解しないように注意してください。


関連情報

URL
  NAS編 索引ページ
  http://bb.watch.impress.co.jp/cda/koko_osa/20269.html

2008/02/25 10:56

槻ノ木 隆
 国内某メーカーのネットワーク関係「エンジニア」から「元エンジニア」に限りなく近いところに流れてきてしまった。ここ2年ほどは、企画とか教育、営業に近いことばかりやっており、まもなく肩書きは「退役エンジニア」になると思われる。
Broadband Watch ホームページ
Copyright (c) 2008 Impress Watch Corporation, an Impress Group company. All rights reserved.