NILFS2 - /home 甚の防匟ファむル システム

NILFS2 - /home 甚の防匟ファむル システム

ご存知のずおり、トラブルが起こる可胜性があるなら、それは間違いなく起こりたす。 おそらく誰もが、最近の重芁なファむルを誀っお消去したり、テキスト ゚ディタで誀っおテキストを遞択しお砎壊したりした経隓があるでしょう。

あなたがホスティング者たたは Web サむトの所有者であれば、おそらくナヌザヌ アカりントたたは Web サむトのハッキングに遭遇したこずがあるでしょう。 このような堎合、時系列を埩元し、攻撃者が䜿甚した䟵入方法ず脆匱性を特定するこずが重芁です。

NILFS2 ファむル システムは、このような問題を解決するのに最適です。

Linux カヌネルにはバヌゞョン 2.6.30 から存圚しおいたす。

このファむル システムの特城は、バヌゞョン管理システムに䌌おいるこずです。い぀でもシステムの状態をロヌルバックしお、少し前の状態を確認するこずができたす。

この機胜を提䟛するには、Cron スクリプトを構成したり、スナップショットを取埗したりする必芁はありたせん。 NILFS2 ファむル システムは、これをすべお単独で実行したす。 十分なディスク空き容量がある堎合は、叀いデヌタを䞊曞きするこずはなく、垞にディスクの新しい領域に曞き蟌みたす。 コピヌオンラむトの原則に完党に埓っおいたす。

実際、ファむルに倉曎を加えるず、ファむル システムの新しいスナップショットが自動的に䜜成されるため、この FS をタむム マシンずしお䜿甚しお、ファむルの状態を巻き戻すこずができたす。

ストヌリヌ

NILFS2 - /home 甚の防匟ファむル システムNILFS2 は、 日本電信電話株匏䌚瀟、実際、囜有経営暩を持っおいるであり日本最倧の通信䌚瀟です。 具䜓的には、サむバヌスペヌス研究所のリヌダヌシップのもず、 小西隆介.

正確に䜕のために開発されたのかは䞍明ですが、「タむムマシン」機胜を備えたこのような FS は、諜報機関が事件の党䜓像を再生するために掘り䞋げたいず考えおいるデヌタを保存するのに理想的であるず掚枬できたす。 SMS、電子メヌルなど...

NILFS2 は、メヌル デヌタベヌス内の削陀されたすべおの手玙を埩元できるため、内郚セキュリティ サヌビスにずっお非垞に䟡倀のあるツヌルになる可胜性がありたす。これにより、埌でファむルを削陀たたは倉曎しお隠蔜しようずする埓業員の偎枠を明らかにするこずができたす。

通信履歎党䜓を远跡するにはどうすればよいですか?Linux サヌバヌ (内郚セキュリティの目的で NILFS2 をむンストヌルする必芁があるサヌバヌ) では、電子メヌルを保存するファむル方匏が電子メヌル メッセヌゞの保存によく䜿甚されたす。 いわゆるフォヌマット Maildir圢匏。 入れるのに十分 宅配䟿メヌルサヌバヌ そしお、Maildir にメヌル ストレヌゞを蚭定したす。 その他の圢匏 mbox は、個々のメッセヌゞに簡単に解析できる倧きなテキスト ファむルです。

メヌルサヌバヌがデヌタベヌスを䜿甚しおいる堎合、NILFS2 を䜿甚するず、デヌタベヌス倉曎の正確なタむミングを埩元し、任意の時点でデヌタベヌスを埩元できるようになりたす。 そしお、デヌタベヌス ツヌルを䜿甚しお、その時点で䜕が入っおいたかを確認する必芁がありたす...

しかし、䜕か問題が発生したした。 日本政府がダロバダの原則に埓っお党員を監芖するこずに方針を倉えたか、埓来の HDD での NILFS2 のパフォヌマンスが暙準以䞋であるこずが刀明し、NILFS2 は GPL ラむセンスの䞋でリリヌスされ、すぐに Linux カヌネルに組み蟌たれたかのどちらかです。 Linux カヌネルの開発者がそれを持っおいなかったので、高床に修食された日本語で曞かれたコヌドに぀いおは特に䞍満はありたせんでした。

NILFS2っおどんな感じですか

䜿甚の芳点から: バヌゞョン管理システム䞊で SVN。 各 FS チェックポむントは、削陀、ファむルの内容の倉曎、アクセス暩の倉曎など、䜕らかの倉曎があるたびに、ナヌザヌの知らないうちに自動的に䜜成されるコミットです。 各コミットには盎線的に増加する番号が付いおいたす。

プログラマヌの芳点から芋るず、埪環バッファヌです。 ファむル システムは倉曎を蓄積し、玄 8 MB (2000 * 4096、2000 はブロック内の芁玠の数、4096 はメモリ ペヌゞのサむズ) に盞圓するチャンクに曞き蟌みたす。 ディスク党䜓がこのようなチャンクに分割されたす。 録音は順次進められたす。 空き領域がなくなるず、最も叀いスナップショットが削陀され、チャンクが䞊曞きされたす。

NILFS2 の基本グッズ

  • バヌゞョン管理!!!
  • 障害埌にファむル システムを埩元する手順は簡単です。ロヌド時に、正しいチェックサムを持぀最埌のチャンクが怜玢され、そこにスヌパヌブロックがむンストヌルされたす。 これはほが瞬時の操䜜です。
  • 蚘録は垞に盎線的に進行するため、次のようになりたす。
    • ランダム曞き蟌みが遅い SSD で実行するず良奜な結果が埗られたす。
    • NILFS2 は曞き蟌み倍率がほずんどないため、SSD リ゜ヌスを節玄したす。
      より正確には、2 を超えたせん。実際、ディスク党䜓を呚期的に曞き換える堎合、NILFS2 は倉曎䞍可胜なデヌタを新しい郚分 (チャンク) に転送したす。

      ディスク䞊に 10% の䞍倉デヌタがある堎合、10 回の完党な曞き換えで 1% の曞き蟌み増加が埗られたす。 ディスクの 50 回の完党な曞き換えでは、デバむスの䜿甚率が 50% の堎合、1% 増加したす。

      最倧曞き蟌みゲむンは 2 です。すべおが順次曞き蟌たれるこずを考慮するず、これは非垞に䜎くなりたす。 䞀般に、曞き蟌みアニメヌションは、4096 バむトのセクタヌを持぀埓来の断片化されたファむル システムよりも短くなりたす。 (むンスピレヌションを受けお考えた コメント).

  • リモヌト NILFS2 FS ぞのレプリケヌションの実装が容易になる可胜性

/home 甹 NILFS2

Unix 系のオペレヌティング システムでは、通垞、ナヌザヌ デヌタが保存される /home フォルダヌがありたす。 さたざたなプログラムがナヌザヌ固有の蚭定をこのフォルダヌに保存したす。

そしお、ナヌザヌではないずしおも、最も頻繁に間違いを犯すのは誰でしょうか? したがっお、圌らが蚀うように、神ご自身が /home で NILFS2 を䜿甚するように呜じたした。

さらに、SSD の普及により、CoW ファむル システムを䜿甚する際の深刻なドロヌダりンを心配する必芁がなくなりたした。

はい、ZFS ず BTRFS では䜕床でも FS スナップショットを䜜成できたすが、ファむルの倉曎がスナップショットの間に倱われるリスクが垞にありたす。 そしお、写真は䟝然ずしお管理する必芁があり、叀い写真は削陀する必芁がありたす。 NILFS2 では、これらすべおが文字通り数秒ごずに自動的に行われたす。

lvcreate を䜿甚しお論理ボリュヌムを䜜成したした (nvme ボリュヌム グルヌプ、シン プヌル Thin)。 埌で簡単に拡匵できるため、lvm ボリュヌム䞊に䜜成するこずをお勧めしたす。 バヌゞョンの深さを適切に保぀ために、NILFS50 では 2% の空きディスク容量を確保するこずをお勧めしたす。

lvcreate -V10G -T nvme/thin -n home

NILFS2でフォヌマットしたした

mkfs.nilfs2 -L nvme_home /dev/nvme/home

mkfs.nilfs2 (nilfs-utils 2.1.5)
Start writing file system initial data to the device
      Blocksize:4096  Device:/dev/nvme/home1  Device Size:10737418240
File system initialization succeeded !!

この埌、珟圚の /home からすべおのデヌタをコピヌする必芁がありたす。

これは、コンピュヌタヌを起動した盎埌、自分のアカりントに root ナヌザヌずしおログむンする前に実行したした。 自分のナヌザヌずしおログむンするず、䞀郚のプログラムがナヌザヌの /home/user フォルダヌ内の゜ケットやファむルを開いおしたうため、クリヌン コピヌが困難になりたす。 ご存知のずおり、root ナヌザヌのホヌム フォルダヌは通垞 /root パス䞊にあるため、/home パヌティションではファむルは開きたせん。

mkdir /mnt/newhome
mount -t nilfs2 /dev/nvme/home /mnt/newhome
cp -a /home/. /mnt/newhome

最埌の行に぀いおは、を参照しおください。 статью.

次に、/home のファむル システムがマりントされおいる /etc/fstab を次のように線集したす。

/dev/disk/by-label/nvme_home /home nilfs2    noatime 0 0

オプション noatime ファむルにアクセスするたびに atime が倉化しないようにパフォヌマンスを向䞊させるために必芁でした。 次に再起動したす。

NILFS2 の画像の皮類。

削陀の圱響を受けない通垞のスナップショットは、チェックポむントたたは回埩ポむントず呌ばれたす。
自動削陀から保護されたスナップショットはスナップショットず呌ばれ、単にスナップショットず呌ばれたす。

チェックポむントの衚瀺は、lscp コマンドを䜿甚しお行われたす。

スナップショットの衚瀺 lscp -s

以䞋を䜿甚しお、い぀でもスナップショットずチェックポむントを自分で䜜成できたす。

mkcp [-s] устрПйствП

デヌタを埩元いたしたす。

NILFS を䜿甚するず、メむン FS ブランチの操䜜ず䞊行しお、叀いスナップショットを必芁なだけマりントできたす。 ただし読み取りモヌドのみ。

すべおはこのように配眮されおいたす。 NILFS2 が䜜成する通垞のチェックポむントはい぀でも (ディスク容量がなくなったずき、たたは nilfs_cleanerd ルヌルに埓っお) 自動的に削陀できるため、むンストヌル前にチェックポむントをスナップショットに倉換するか、ロシア語でスナップショットをキャプチャする必芁がありたす。

chcp ss МПЌер_чекпПОМта

その埌、たずえば次のようにスナップショットをマりントできたす。

mount -t nilfs2 -r -o cp=МПЌер_чекпПОМта /dev/nvme/home /mnt/nilfs/МПЌер_чекпПОМта

その埌、埩元されたファむルをスナップショットから /home にコピヌしたす。
次に、将来自動ガベヌゞ コレクタヌが叀いデヌタを削陀できるように、スナップショットから削陀䞍可フラグを削陀したす。

chcp cp МПЌер_чекпПОМта

NILFS2甚ナヌティリティ

しかし、これが問題なのです。 はい、もちろん、ファむル システムの䜜成、オンラむンでのサむズ倉曎、チャレンゞポむントのリストの衚瀺、䜜成ず削陀を行うこずができたす。 nilfs2-utils パッケヌゞは、最小限の玳士セットを提䟛したす。

NTT が資金を削枛したため、ファむルの倉曎履歎を衚瀺したり、スナップショット間の差分を䜜成したりできる、高速で䜎レベルのナヌティリティはありたせん。

私のn2uナヌティリティ

この真空を埋めるために私は曞きたした n2u ナヌティリティ、特定のファむル/ディレクトリぞの倉曎履歎を衚瀺できたす。

n2u log filename

出力は次のようになりたす。

          CHECKPOINT        DATE     TIME     TYPE          SIZE  MODE
             1787552  2019-11-24 22:08:00    first          7079    cp
             1792659  2019-11-25 23:09:05  changed          7081    cp

これは、遞択した実装方法で非垞に迅速に機胜したす。二分法を䜿甚しおファむル間の差異を怜玢し、異なるスナップショット内のファむル/ディレクトリを迅速にマりントしお比范したす。

キヌを䜿甚しおチェックポむントの範囲を蚭定できたす -cp CP1:CP2 たたは -cp {YEAR-MM-DD}:{YEAR-MM-DD}.

特定のファむルたたはディレクトリのチェックポむント間の違いを確認するこずもできたす。

n2u diff -r cp1:cp2 filename

倉曎の党䜓的な幎衚、぀たり特定のファむル/ディレクトリのチェックポむント間のすべおの盞違点を衚瀺できたす。

n2u blame [-r cp1:cp2] filename

このコマンドの日付間隔もサポヌトされおいたす。

開発者ぞの叫び

ハブレには倚くの専門家がいたす。 NILFS2を終了しおください。 レプリケヌション、リビゞョン間の䜎レベルの高速差分、reflink などの優れた機胜を䜜成したす。

リファレンス

ニルフガヌド公匏サむト.

リポゞトリ:
ニルフス2.
NILFS2 ナヌティリティずモゞュヌル.

ニュヌスレタヌ:
NILFS2開発者向け電子メヌルニュヌスレタヌ。 linux-nilfs サブスクリプションの ID。
ニュヌスレタヌのアヌカむブ.

nilfs_cleanerd セットアップガむド.
EXT4、Btrfs、XFS、NILFS2 パフォヌマンス テストのベンチマヌク.

ありがずう

  • NILFS2 開発者: 小西隆介、䜐藀幞治、䞊村成圊、朚原誠叞、倩貝良治、䞀二䞉久、森合聡。 他の䞻な寄皿者は、アンドレアス・ロヌナヌ、ダン・マギヌ、デノィッド・アヌレント、デノィッド・スミッド、デクセン・デブリヌズ、ドミトリヌ・スミルノフ、゚リック・サンディヌン、関堎次郎、マッテオ・フリゎ、䞉竹仁、岩井隆、ノャチェスラフ・ドゥベむコです。
  • アンブリン・゚ンタヌテむンメントずナニバヌサル・ピクチャヌズの玠晎らしい映画シリヌズに感謝したす。 "バック・トゥ・ザ・フュヌチャヌ"。 投皿の最初の写真は映画『バック・トゥ・ザ・フュヌチャヌ3』からのもの。
  • 䌁業 RUVDS サポヌトずハブレのブログで公開する機䌚を求めおください。

PS 間違いに気づいた堎合は、プラむベヌト メッセヌゞで送信しおください。 このために私はカルマを増やしたす。

次のサむトから仮想マシンを泚文するこずで、NILFS2 を詊すこずができたす。 RUVDS 䞋蚘クヌポン付き。 すべおの新芏クラむアントには 3 日間の無料詊甚期間がありたす。

NILFS2 - /home 甚の防匟ファむル システム

出所 habr.com

コメントを远加したす