2012年4月18日水曜日

Linuxのマウントの仕組みを教えてください。 根本的に勘違いして.. - 人力検索はてな


18pt

机の上に画用紙を置き、絵を書き始めたとします。

絵を書いている途中で白紙の画用紙を上に重ねておきまた絵を書き始めたとします。

その後、2段重ねになっている上にある画用紙を持ち上げ外すと下に書きかけの画用紙がでてくるはずです。

画用紙を置く事がマウントで上に乗っている画用紙を取り去る事がアンマウントです。

2枚重ねて、2枚目を取り外せば1枚目の画用紙に書いた書きかけの絵がでてきます。

さて、ログの移動はどの様に行うと良いでしょうか。

例えば、

/ が /dev/hda にマウントされてました。

/var が3GB使われています。

/var が大きく増えてきたので別のディスク(/dev/hdb)に移そうと思います。

という場合には次の手順で作業を行います。

まず、/var(/var/logなど)に書き込んでいるかも知れないプロセスを止めます。

※シングルユーザモードに移行すればサービスなどは止まります。

次に新しく/var の内容を置きたいデバイスをマウントします。

mkdir /mnt/work

mount /dev/hdb /mnt/work


あなたは森の中で家の周りの風景方法を行う

※ 作業用なので新しい場所に作れば良いです。

旧/varの内容を作業用ディレクトリに移動します。

mv -rf /var /mnt/work

sync

データの移動が終われば新しい配置でマウントし直します。

umount /mnt/work

mount /dev/hdb /var

作業が終わればマルチユーザモードへ戻ります。

^D

/dev/hdbが更に足りなくなった場合にも同様に作業すれば良いです。

mount /dev/hdc /mnt/work

mv -rf /var /mnt/work

sync

umount /mnt/work

umount /var

mount /dev/hdc /var

^D

> この状態で /var/log に hdb をマウントします。

> そうすると内部的にはどうなるのでしょうか?

> hda を使っていた /var/log の 3GB 分の全ファイルが、 hdb にコピー&移動されるのでしょうか?

最初の例えで上に画用紙が置かれて下になった画用紙が隠された状態となります。

つまり、/dev/hdb が何も入ってない状態でこのファイルシステムが現れますが、元々あった/var/logは見えなくなるだけでそのままの内容で下に隠れている状態となります。

勝手にコピーされたり移動したりはしません。

> 例えばさらに1年後、/var/log の使用量が 20GB になったとします。

> この状態で hdb をアンマウントするとどうなるのでしょうか?


パナマに行くときにパックするもの

> hda は 10GB しかないので足りませんよね。アンマウントに失敗するのでしょうか?

hdbには/var/logの内容が存在し続けますが、アンマウントされた事により見えなくなります。

※見えなくなっただけでデータはありますので、別の場所にマウントすればそのデータを見る事はできます。

/var/logには3GB程度書かれていた以前の状態が現れます。

回答に幾つか気になった部分がありますので書きます。

まず、回答1ですが

/var/logに書いているプロセスが動いている状態でマウントすれば書いていたソフトが新しい記録を書き込もうとした時に書き込みエラーが起こります。要するに以降のログが失われます。それと、隠されたデータも最後の部分(マウント前に書かれていたはずの部分)が一部失われている可能性もあります。

> "/var/log" にアクセスしている最中にアンマウントすることはできません。

多分アンマウントできます。userのカレントディレクトリが/var/logにある(userがそこにcdで移動していたり、何らかのソフトが/var/log以下から動いていた場合にはアンマウントできない場合があります)

> もしできたとすると、"/var/log" は行方不明になり、システムエラーが起きます。


過失神経衝撃

多分システムエラー(カーネルでのエラー)は起こりません。但し、/var/logに書いているソフト(メールサーバやウェブサーバなどかな)は以後のログの書き込みなどでエラーが発生し、以降のログが記録されない可能性があります。(ソフトの実装依存です)

> ハードディスクのマウントは、OS起動時に行うものです(インストール時ではありません)。つまり、あらかじめ "/etc/fstab" に記述しておくべきです。

> リムーバブルなハードディスクや光学ドライブなどのマウントにかぎって、mountコマンドで行います。

マウントはいつ行っても良いです。ただし、安全に行えるよう条件を整えて行います。例えば/var/logを変更するような場合には手動でのマウント操作が必要になる事もあります。

そして、/etc/fstabに記述しておくのは起動時にマウントするデバイスだけではありません。(noautoオプション付きでリムーバブルメディアや光学ドライブなどを記述したりもします)

※/etc/fstabの説明ページの説明も間違っているあるいは誤解を与えるものでした。

/etc/fstabに書くpathは

/ 1

/usr/log 3

/usr 2

/var/log 3

/var 2

値の少ないパスから順番に行うものです。

上記の例だとまず 1である /をマウントします。


次に 2である /usr と /var をマウントします。

その後、3である /usr/log と /var/logをマウントします。

/usr/log をマウントする前に /usrのマウントを済ませておく必要がある(依存する)時には使う必要があります。( / の真下に平行に配置しないといけないなんて制約はありません)



These are our most popular posts:

連載 その76 ベースとなる考え方を常にしておく

この飛行機が、常に一定の速さで吹くジェット気流の中で、空中の2点間を往復する場合 と、無風のときに往復する場合を考えます ... すぎてどこにも考えさせるような内容の 設問ではないではないか、との疑問を抱かれた皆さんも多かったのではないでしょうか。 ... はといえば、何が起こるかわからない状況で、何が起きても冷静に対応できる考え方 のベースができているかどうか、その辺のところをしっかり見ようとしているものと考え られます ... ビル・ゲイツの出題問題に関しては、HOW WOULD YOU MOVE MOUNT FUJI ? read more

Q.よく「破損した」って言いますけど、破損するとどうなるんですか? - Fly ...

でも、開くときに「破損してます」とか言われることありますが、それでも「これってどういう ことなんでしょう? ... たいていの場合、「ワケわからん」現象が起きてあちこちいじりまくり 数時間悩んだ後、ついに開くこともできなくなったーってなパターンが多いんじゃないで しょうかね。 .... トラックバックURL: : naboki.net/movabletype/mt-tb.cgi/34 ... read more

飛蚊症に関する質問 - くりっくeye - 眼科相談室

って、ですけどのあとの言葉も聞かずに簡単に即答され、ただ、それ異常なにも聞けず 仕舞いでした。 ... もしも混濁した硝子体を取り残したものであった場合、飛蚊症を解消 するには再手術が必要になるのでしょうか? ... 加齢性の変化で、多くの方に起こること と、視力低下など視機能の低下がほとんどないこと、自然に症状がよくなることが多い こと、 ... read more

Linuxのマウントの仕組みを教えてください。 根本的に勘違いして.. - 人力 ...

2011年5月20日 ... hda を使っていた /var/log の 3GB 分の全ファイルが、 hdb にコピー&移動されるの でしょうか? 例えばさらに1年 ... リムーバブルなハードディスクや光学ドライブなどの マウントにかぎって、mountコマンドで行います。 マウントをしすぎる ... read more

0 件のコメント:

コメントを投稿