よわいプヨグヤマの奮闘.log

ぷろぐらまじゃないです、ぷよぐやまです。

NiLFSを使ってみた

あらすじ

前回、色々あってOSが壊れた話をしました。
あの後も色々調べましたが、本当にアレで電源断されるんだろうか…

既に3日ほど経っているのですが、復旧作業やシステムの見直し、
いろんなマニュアル読んだりで何も他のことが出来てない…😅
学校とかもあるから、更に何も出来てない。

課題の提出まで1週間を切ってるけど、何も終わってない
あれ、結構ヤバくない?

PS: 2017/11/22 無事提出できました。

本題

そんなことはともかく、再インストール時にルート(/)のファイルシステ厶をNiLFSにしてみました。

NiLFSとはNTTサイバースペース研究所が開発したログ構造化ファイルシステムらしいです。 NiLFSはLinuxカーネルにマージされてるのでRootFSにも使えます。

連続的に書き込み、GCされるまでデータは保持されます。
突然の電源断が起こっても、書き込みが完了した情報は整合性が保証されます。
Btrfsのようにスナップショットもありますが、Btrfsのような透過圧縮、ソフトウェアRAIDなどの機能は無いです。

また、チェックポイントという考え方を使うので、最初は理解するのに戸惑いました。

要点としては

  • チェックポイント(cp)
    • 容量が尽きない限り自動的に生成される
    • ファイルの変更があれば5秒〜10秒間隔で生成される
    • ガベージコレクション時に削除される
    • そのままマウントできない
    • chcpコマンドでスナップショット(後述)に変換できる
  • スナップショット(ss)
    • ガベージコレクション時に残される
    • 自動的には生成されない
    • マウントできる
    • chcpコマンドでチェックポイントに戻せる

主なコマンド

  • lscp (チェックポイント/スナップショット一覧)
  • chcp(チェックポイント/スナップショット切替)
  • rmcp(チェックポイント/スナップショット削除)

など、btrfsよりシンプル

過去のデータを戻したかったら
lscp /dev/sdxYでチェックポイント見つけて
chcp ss /dev/sdxY でスナップショットに切り替えて
moumt -o cp=[snapshot] /dev/sdxY /path/to/mount
みたいにしないといけない。

クセは結構あるけど、大容量のHDDでLinux使ってるならGCしない限り無限に戻せるので、結構便利だ。
学校用ノートPCを買ったら、問題が起こってもすぐ戻せるように容量多めのSSDをNiLFSで使いたいと思う。