Category 2_13. ファイルシステム 〜ファイルの整合性保持〜

「知識と知恵の違いだって?

無駄な知識を無駄でない知識にする事を

知恵というのだよ」

〜 クプ・ド・ンドブヴァ 〜

ハードディスクって確か、磁気で情報を記録しているんだったよな。
そうっすねー、S極とN極で0と1を判別してるってマスターが言ってたっすね。
今頃どうしました?

 

簡単に言えば磁石みたいなもんだろ?よくそんなんで情報を覚えてられるなぁって。
磁石ってなんか不安定な感じがするっすよね。

まぁ、そうですね。

そもそもハードディスクは精密な上駆動系なので、コンピュータパーツの中では特に壊れやすいです。

 

ハードディスクが壊れちまったらさ、データが全部消えてしまうんだろ?

データが消える・・・恐ろしいっすね。

一番壊れちゃいけないんじゃないすか?ハードディスクって。

でも壊れやすいって・・・。

そうですね、データが全部消える事になりますね。

ゴミ箱からファイルを削除するとかそういう次元ではない話ですね。

 

次元が違うって・・・どういうことだよ。ゴミ箱から消したって同じじゃないか?

そういえば、この前オイラもお気に入りなデータフォルダを消しちゃったんですよねー。

ゴミ箱からもキレイさっぱり・・・あぁぁぁ僕のネコちゃんフォルダが。

ファイルシステムのお話ついでに、今日は「ファイルの整合性保持」についてお話しましょうか。

前回までは、シンボルとiノードの話をしましたね。

 

あぁ、普段デスクトップ上にあるファイルアイコンとかはシンボルで、そのシンボルからiノードに繋がって、そのiノードに実データのアドレスが書かれているんだろ?
シンボルの名前(ファイル名)やiノード番号は確か親のフォルダが情報として持ってるんでしたね。
iノードという言葉はUNIXやLinuxで使われているファイルシステムでの呼び名です。ですがWindowsも似たような仕組みにはなっています。

 

で、そのファイル整合性保持っていうのはどういう事だ?
なんだか難しそうっすね・・・。

まぁ、まずは「ファイルが開けない状態」について説明しましょう。

ファイルが開けない状態というのは、どういう状況だと思います?

 

ファイルをゴミ箱からも削除してしまった場合とかだろ?
あとハードディスクが故障しちゃったらファイル開けないっすね。
そうですね、ではファイルをゴミ箱からも削除してしまった場合とは、どういう状況なんですか?

 

へ?
どういう状況って・・・そりゃファイルを消しているんだからハードディスクからファイルの実データが削除されているって事じゃないんすか?

実は、「ファイルを削除する=実データをハードディスクから削除する」ではないんです。

 

え、消していないのかよ。どういうことだ?
でもファイルを削除すると、ハードディスクの空き領域が増えるっすよ?

実際に削除しているのはシンボルです。フォルダが管理しているエントリーから、その削除対象のシンボルを削除しているに過ぎません。

シンボルを削除するとどうなりますか?

 

そ、そりゃ・・・ファイルシンボルが無くなるからユーザはまず、そのファイルを見つけることは出来ないな・・・。
あと、実データへの手がかりとなるiノード番号も分からないっすから、やはりアクセスできないっすね。
実質、ファイルが開けない状態なので削除された状態と一緒ではないですか?

 

ファイルは開けないだろうが、実データが削除されていなんだから空き領域は増えないだろ?
はっ!ユーザを騙しているのかっ!コンピュータの癖にっ!人間様を騙すとはっ!

iノードに張られているリンク(ハードリンク)が一つも無い状態は、そのうちiノードも削除されます。

またどのiノードから参照されていない実データに関しては、上書きされていくんです。

 

上書きされていくのか・・・。なるほどな。

じゃあ、その上書きされてもいい領域を空き領域として計算してるんすねー。

実データが残っている場合は、iノードを検索し、再びフォルダのエントリーに登録しなおせばファイルを復旧する事が出来るんです。

なので、ゴミ箱から削除しても運がよければ復旧できるんですよ。

 

おぉ、そういえばそんなソフトを見たことあるな。削除してしまったファイルを救出する!みたいな。

そういう仕組みか。

じゃあ・・・オイラのネコちゃんフォルダは・・・復旧できるんすねっ!

削除してから時間が経過している場合は、多分難しいと思いますよ・・・。

また削除後に大きなファイルをダウンロードしたとか、コピーしたとか移動したとかも、上書きされている場合があるので難しいです。

 

でもよ、どうしてそんな仕組みになってるんだ?

削除したと思ったファイルが復旧できるとか、セキュリティ上問題があったりしないのか?

オイラのネコたんフォルダは・・・もう、だめか。

さすがヒゲ先輩ですね。実にいい着眼点です。

問題は大有りです。実際、そうした情報流出事件がありました。

なのでLinuxやらUNIXでは、ファイル属性に削除時に実データも削除するオプションが付いてます。

 

オプションなのかよ、あぶねぇじゃねぇか。
何か事情でもあるんすかね?

ハードディスクは書き込みに時間がかかるんです。

削除をするといっても、実質は実データ部分を0か1に全部書き換える必要があるでしょ?

例えば10分間かけて保存したファイルは、削除するときも同じ時間分かかるんです。

 

そういえば、ファイルを削除するときは一瞬だよな。
保存するときは結構時間かかるっすからね。そういう事なんすねぇ。

そういう事なんです。

で、もう一つの状況です。

ハードディスクが故障した場合。

 

これはもう、無理だろ。復旧とか。

故障してるんだからな。

木っ端微塵だぜーっ!ヒャッハーッ!

普通に使ってて木っ端微塵にはならないと思いますがね・・・。

物理的に故障した場合は修復できる可能性は低いですね。

ですが故障にしてもいくつかパターンがあるんですよ。

 

でも、どっちみち読み込めないだろ。故障しているんだから。

物理的に故障しても修復は出来るんすねぇ。

そんな業者さんを聞いたことがあったっす。

物理的な故障」と「論理的な故障」でしょうかね。

物理的な故障は、傷が付いたり腐食したりとあります。物理的に損傷した箇所を「不良セクタ」といいますね。

論理的な故障は、ファイルシステムの不整合性から来るデータ読み取り不可です。

 

あぁ、おやじが初めにいってた奴だな。データの整合性保持なんとかってのと関係あるんだろ。
不整合・・・情報が間違っているって事っすかね。

データ不整合は、管理情報と実データに相違があり発生するデータ障害です。

例えば、iノードの指し示しているアドレスの先は間違った情報であったりとか。

 

アドレスが間違ってたら、確かに正常によみこめねぇわなぁ。
じゃあ、やはりそれも諦めるしかないんすかねぇー。

物理的な故障に関しては諦めたほうが早いかもしれません。

データ領域不良セクタによる一部分の故障もデータ復旧は難しいでしょう。

ですが、論理故障に関しては復旧できる確率がかなり高いですね。

 

え、論理故障は復旧できるのか?
どうすんるすか?

ファイルシステムチェック」やら、「キャンディスク」を行います。

これらは、ハードディスク内のデータを全て精査し、整合性の確認を取ります。

不整合を発見した場合は、直ちに正常な情報に修復(または不明データとして処理)し、ファイルアクセスを正常に戻す機能を持ってますよ。

 

不明なデータとして処理・・・?
それまた、どういう・・・?

どのシンボルからも参照されていない(ハードリンクが張られていない)iノードがあったとします。それらiノードが指し示す実データは、ファイルシステム上のどのディレクトリ配置されていたのかが分からないので、不明なデータとして扱うんです。

不明なデータはとりあえず一時的なシンボルファイルとして保管されます。

 

なるほど、シンボルの無いiノードに、とりあえずのシンボルファイルを作るって事だな。

整合性を保持するって意味が分かったっす。

故障を治すっていう事ではなく、正常でも故障でも間違っている情報を保持しないって事なんすね。

実にいい事を言いましたね、M君。

このファイルシステムチェックはパーティション内を全て走査するので相当時間がかかります。

 

まぁ、仕方ねぇだろ。

復旧できれば文句いわないっす。
それを改善するために「ジャーナリングシステム」というのがあるのですが・・・ソウデスカ興味ないですか。

 

ねぇな。
ないっすね。(長くなりそうっす)

このジャーナリングシステムは、従来のファイルシステムよりも高速に、かつ高い確率でファイル修復を可能としてくれるんです。

ファイルシステムに関連する操作を全て、「ジャーナリングログ」として書き込みます。

例えば、ファイルを書き込む時はログ情報を先に書き込んでから、メタ情報を書き込みます。

 

・・・勝手に進めやがって。
ジャーナリングシステム・・・よく聞くとかっこいい名前かもしれないっすね。

でしょ?ジャーナリングシステムっていう名前を口から出るだけでかっこよく思われますよ。

 

で、そのログ情報を先に書き込む事で何か意味があるのかい?
まさか、そのログをみて修復するとかっていうシンプルな仕組みじゃないっすよね。

そのまさかですよ。何か問題でも?

データの論理故障で一番多いのが、書き込み時の電源シャットダウンです。

書き込み途中で電源がシャットダウンされると、当然メタ情報と実データの不整合が発生し、ファイルが故障します。

 

なるほど・・・。

だからそういう事態が起きても、ジャーナリングログを見ることでデータの整合性を直ぐに確認する事が出来るんだな。

ははー、ジャーナリングログには常に直前の作業内容が書いてあるっすからね。

ログ内容が途中で止まってたら、確かにそのときに作業してたファイルに原因があるってわかるっすね。

そうですね。ですが当然ジャーナリングログを書き込むので、その分書き込み速度は遅くなりますが。

こうした仕組みはLinuxのExtファイルシステムのほかに、Windowsの扱う「NTFS」でも実装されています。

 

そうか、WindowsはNTFSというファイルシステムを使っているのか。
ふぅん、でもWindowsにはスキャンディスクっていうのもあるっすよね?確かドライブ名を右クリックして・・・って何度かやったことあるっす。

いいフリですね、M君。

スキャンディスクは、ファイルの復旧の他にも不良セクタの「回復」がありますね。

ディスク内の不良セクタを発見し、その部分を回復します。

 

回復をするだと・・・?
不良セクタって復旧できたんすねー。

復旧ではなく、あくまでも回復です。

誤解されそうですが、不良セクタを正常なセクタにするわけではありません。

 

は・・・?
ワタシ ニホンゴ ヨク ワカラナイ。

不良セクタはデータアクセスに支障をきたします。

もしその不良セクタにデータを書き込んでしまったら、そのデータは二度と読み込めないでしょう。

そんな不良セクタをそのまま放置していたら危険でしょ?

 

危険だよ、だからそれを治すんだろ?

治すことを回復っていうんっすよっ!!

物理的に壊れた不良セクタはどうがんばっても治せないんです。

だから不良セクタに今後一切データを書き込ませないようフラグを立てるんです。

つまり、OSに、治したと見せかけてバレないように隠すんです。

 

・・・ひでぇな。

オヤジがいうと倍増しでひどく感じる。

回復・・・してないじゃん。

不良セクタが無くなり危険が回避されたという意味では、広い視野でみれば回復したと同じでしょ。

なので、よくデフラグツールをやる直前にこうしたディスクチェックをするんです。

 

デフラグとディスクチェックは何か関係があるのかい?
デフラグ・・・確かあちこちに断片化(フラグメンテーション)された実データを連続した領域に整理整頓(デフラグメンテーション)するんでしたね。

デフラグをやる事で、今までのデータが不良セクタに移動したら大変でしょ?

正常にアクセスできたファイルが、デフラグをする事で壊れてしまうなんて目も当てられませんよ。

 

おぉっ!そういうことか!!

言われてみればそうだな!

今日はちょっと役立つ知識が勉強できた気がするっす!

役立つ役立たないじゃない!役立てるんです!!

今まで私が解説してきた知識を役立てなさい!

 

わ、わかったよ・・・だからそんなに怒るなよ。な?(金額が高くなる
で、今日のお会計は・・・?

本日は8890円になります。

(もう少し粘れば1万円台に突破しそうですね、ふふ

 

今日のポイント

 ・整合性とは、間違った情報を保持しない事を意味する

 ・データの物理的故障の復旧は困難だが、論理的故障は復旧出来る可能性が高い

 ・ファイルシステムチェックやスキャンディスクで整合性確認をする場合、そのパーティション内を全て走査するので時間がかかる

 ・ジャーナリングシステムは、ディスク操作に関する情報をジャーナリングログとして書き込む

 ・ジャーナリングログの利用によって、整合性の確認を短時間で行う事が可能

 ・不良セクタの回復とは、その不良セクタを今後使用しないこと意味する

前回へ TOPへ 次回へ

Copyright since 2010 IT Category Project All rights reserved.
inserted by FC2 system