NILFS2 - sistem berkas anti peluru kanggo / ngarep

NILFS2 - sistem berkas anti peluru kanggo / ngarep

Kaya sing wis dingerteni, yen alangan bisa kedadeyan, mesthi bakal kedadeyan. Mbokmenawa saben wong duwe kasus nalika file penting anyar ora sengaja dibusak, utawa teks ora sengaja dipilih lan dirusak ing editor teks.

Yen sampeyan dadi hoster utawa pemilik situs web, mula sampeyan bisa uga nemoni peretasan akun pangguna utawa situs web sampeyan. Ing kasus kaya mengkono, penting kanggo mulihake kronologis, nemokake cara entri lan kerentanan sing digunakake dening panyerang.

Sistem file NILFS2 sampurna kanggo ngrampungake masalah kasebut.

Wis ana ing kernel Linux wiwit versi 2.6.30.

Keanehan saka sistem file iki padha karo sistem kontrol versi: sampeyan bisa tansah muter maneh negara sistem lan ndeleng apa iku kaya sawetara wektu kepungkur.

Kanggo nyedhiyakake fungsi iki, sampeyan ora perlu ngonfigurasi skrip Cron, njupuk gambar, lsp. Sistem file NILFS2 nindakake iki dhewe. Ora tau nimpa data lawas lan tansah nulis menyang wilayah anyar ing disk yen ana cukup ruang disk kosong. Sesuai karo prinsip Copy-on-Write.

Nyatane, owah-owahan ing file kanthi otomatis nggawe snapshot anyar saka sistem file, supaya sampeyan bisa nggunakake FS iki minangka mesin wektu lan mundur cepet negara file.

История

NILFS2 - sistem berkas anti peluru kanggo / ngarepNILFS2 dikembangaké ing ambane saka Nippon Telegraph and Telephone Corporation, nyatane, negara (duwe saham kontrol) lan perusahaan telekomunikasi paling gedhe ing Jepang. Luwih khusus, ing Laboratorium CyberSpace ing pimpinan Ryusuke Konishi.

Apa persis sing dikembangake ora dingerteni, nanging bisa dianggep manawa FS kasebut, kanthi fungsi "mesin wektu", cocog kanggo nyimpen data sing pengin digali dening layanan intelijen supaya bisa muter kabeh gambar. SMS, email, lsp....

NILFS2 uga duweni potensi alat banget terkenal kanggo layanan keamanan internal, amarga ngijini sampeyan kanggo mbalekake kabeh layang dibusak ing database mail, mbukak jambs karyawan sing bisa salajengipun nyoba kanggo nyamarake wong kanthi mbusak utawa ngganti file.

Kepiye carane sampeyan bisa nglacak kabeh riwayat korespondensi?Ing server Linux (lan ing kene kudu diinstal NILFS2 kanggo tujuan keamanan internal), metode file kanggo nyimpen email asring digunakake kanggo nyimpen pesen email. Sing diarani format Maildir. Cukup kanggo sijine Pelayan Kurir lan ngatur panyimpenan mail ing Maildir. format liyane mbox minangka file teks gedhe sing bisa gampang diurai dadi pesen individu.

Yen server mail nggunakake database, banjur NILFS2 bakal nggawe iku bisa kanggo mulihake wektu pas owah-owahan database lan kemampuan kanggo mulihake database ing sembarang wektu iki. Banjur sampeyan kudu nggunakake alat database kanggo ndeleng apa sing ana ing wektu kasebut ...

Nanging, ana sing salah. Pamrentah Jepang ngganti pikirane babagan ngawasi kabeh wong (a la prinsip Yarovaya), utawa kinerja NILFS2 ing HDD tradisional dadi ngisor par, lan NILFS2 dirilis ing sangisore lisensi GPL lan cepet banget mlebu ing kernel Linux, amarga ora ana keluhan khusus babagan kode sing ditulis ing Jepang sing berkualitas tinggi, pangembang kernel Linux ora duwe.

Kepiye NILFS2?

Saka sudut pandang panggunaan: ing sistem kontrol versi SVN. Saben checkpoint FS minangka komitmen sing digawe kanthi otomatis tanpa sepengetahuan pangguna nalika ana owah-owahan: bisa mbusak, ngganti isi file utawa ngganti hak akses. Saben commit duwe nomer sing mundhak linearly.

Saka sudut pandang programmer: buffer bunder. Sistem file nglumpukake owah-owahan lan nulis menyang potongan sing padha karo kira-kira 8 MB (2000 * 4096, ing ngendi 2000 minangka jumlah unsur ing blok kasebut lan 4096 minangka ukuran kaca memori). Kabeh disk dipérang dadi potongan-potongan kasebut. Rekaman diterusake kanthi urutan. Nalika papan kosong entek, gambar sing paling tuwa bakal dibusak lan potongan-potongan kasebut ditindih.

dhasar NILFS2 barang

  • Versiing!!!
  • Prosedur kanggo mulihake sistem file sawise gagal gampang: nalika mbukak, potongan pungkasan sing duwe checksum sing bener digoleki, lan superblok dipasang ing kana. Iki minangka operasi sing meh cepet.
  • Amarga kasunyatan sing ngrekam tansah lumaku linear, banjur:
    • bisa nuduhake asil apik nalika mlaku ing SSD karo nulis acak alon.
    • NILFS2 nyimpen sumber SSD, amarga meh ora ana faktor multiplikasi nulis.
      Luwih tepate, ora luwih saka 2.Kasunyatan iku nalika cyclically rewriting kabeh disk, NILFS2 bakal nransfer data unchangeable kanggo bêsik anyar (chunks).

      Yen kita duwe 10% data sing ora owah ing disk, mula kita bakal entuk 10% nambah nulis kanthi 1 nulis ulang lengkap. Inggih, nambah 50% ing 50% kepenuhan piranti kanggo 1 nulis ulang lengkap disk.

      Ing gain nulis maksimum 2. Iki banget kurang considering sing kabeh wis ditulis sequentially. Umumé, animasi nulis bakal kurang saka sistem file fragmentasi konvensional kanthi sektor 4096-byte. (Pikiran inspirasi dening komentar).

  • Potensi ease saka implementasine réplikasi menyang NILFS2 FS remot

NILFS2 kanggo / ngarep

Ing sistem operasi kaya Unix, minangka aturan, ana folder / ngarep ing ngendi data pangguna disimpen. Macem-macem program nyimpen setelan khusus pangguna ing folder iki.

Lan sapa, yen dudu pangguna, sing paling kerep nggawe kesalahan? Mulane, lagi ngomong, Gusti Allah piyambak dhawuh nggunakake NILFS2 ing / ngarep.

Kajaba iku, kanthi nggunakake SSD sing nyebar, saiki kita ora kudu kuwatir maneh babagan kekurangan sing abot nalika nggunakake sistem file CoW.

Ya, kita bisa nggawe jepretan FS minangka asring kita kaya ing ZFS lan BTRFS, nanging tansah ana risiko sing owah-owahan file ilang bakal mungkasi munggah antarane jepretan. Lan gambar-gambar isih kudu diwenehake: sing lawas kudu dibusak. Ing NILFS2, kabeh iki kedadeyan kanthi otomatis, secara harfiah saben sawetara detik.

Aku nggawe volume logis nggunakake lvcreate (ing grup volume nvme, blumbang tipis). Aku nyaranake nggawe ing volume lvm, awit iku bisa gampang ditambahi mengko. Aku nyaranake duwe 50% papan disk free karo NILFS2 kanggo ambane versi prayoga.

lvcreate -V10G -T nvme/thin -n home

lan format ing 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 !!

Sawise iki, sampeyan kudu nyalin kabeh data saka saiki / ngarep.

Aku nindakake iki sanalika sawise booting komputer, sadurunge mlebu menyang akun, minangka pangguna root. Yen aku mlebu minangka pangguna, sawetara program bakal mbukak soket lan file ing folder pangguna / omah / pangguna, sing bakal nggawe salinan sing resik dadi angel. Kaya sing sampeyan ngerteni, folder ngarep kanggo pangguna root biasane ana ing path / root, mula ora ana file sing bakal mbukak ing partisi / home.

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

Kanggo baris pungkasan, ndeleng artikel.

Sabanjure, kita ngowahi / etc / fstab, ing ngendi sistem file kanggo / ngarep wis dipasang, kanggo

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

Pilihan noatime perlu kanggo nambah kinerja supaya atime ora ngganti karo saben akses file. Sabanjure kita urip maneh.

Jinis gambar ing NILFS2.

Potret biasa tanpa kakebalan kanggo mbusak diarani checkpoint utawa titik pemulihan.
Potret sing dilindhungi saka pambusakan otomatis diarani snapshot, banjur mung snapshot.

Ndeleng checkpoints rampung nggunakake printah lscp

Ndeleng jepretan lscp -s

Kita bisa nggawe snapshots lan checkpoints dhewe sawayah-wayah nggunakake:

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

Kita mulihake data.

NILFS ngijini kita kanggo Gunung minangka akeh jepretan lawas sing kita arep ing podo karo karo karya karo cabang FS utama. Nanging mung ing mode maca.

Kabeh wis diatur kaya mangkene. Checkpoints biasa sing digawe NILFS2 bisa dibusak kanthi otomatis sawayah-wayah (nalika ruang disk entek utawa miturut aturan nilfs_cleanerd), supaya sadurunge instalasi, kita kudu ngowahi checkpoint dadi snapshot utawa, ing basa Rusia, njupuk gambar asli.

chcp ss номер_чекпоинта

Sawisé iku, kita bisa masang snapshot, contone, kaya iki:

mount -t nilfs2 -r -o cp=номер_чекпоинта /dev/nvme/home /mnt/nilfs/номер_чекпоинта

Sawisé iku, kita nyalin file sing dipulihake saka snapshot menyang / ngarep.
Lan sabanjure kita mbusak gendera sing ora bisa dibuwang saka gambar, supaya ing mangsa ngarep kolektor sampah otomatis bisa mbusak data sing wis lawas:

chcp cp номер_чекпоинта

Utilitas kanggo NILFS2

Nanging iki masalah. Ya, mesthi, kita bisa nggawe sistem file, ngganti ukuran online, ndeleng dhaptar tantangan, nggawe lan mbusak. Paket nilfs2-utils nyedhiyakake set pria minimal.

Wiwit NTT wis mbatesi pendanaan, ora ana utilitas tingkat rendah sing cepet sing ngidini sampeyan nampilake riwayat owah-owahan file utawa nggawe bedane antarane jepretan.

Utilitas n2uku

Kanggo ngisi vakum iki aku nulis utilitas n2u sampeyan, sing bisa nampilake riwayat owah-owahan menyang file/direktori tartamtu:

n2u log filename

Output kaya iki:

          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

Kerjane cukup cepet kanggo cara implementasine milih: iku katon kanggo beda antarane file nggunakake cara bisection, cepet soyo tambah lan mbandhingaké file / direktori ing jepretan beda.

Sampeyan bisa nyetel sawetara checkpoints nggunakake tombol -cp CP1:CP2 utawa -cp {YEAR-MM-DD}:{YEAR-MM-DD}.

Sampeyan uga bisa ndeleng prabédan antarane checkpoints kanggo file utawa direktori tartamtu:

n2u diff -r cp1:cp2 filename

Sampeyan bisa nampilake kabeh kronologi owah-owahan: kabeh beda antarane checkpoints file / direktori tartamtu:

n2u blame [-r cp1:cp2] filename

Interval tanggal ing printah iki uga didhukung.

A nangis kanggo pangembang

Ana akeh spesialis ing Habré. Mangga rampung NILFS2. Gawe replikasi, bedane cepet tingkat rendah antarane revisi, reflink lan barang liyane!

referensi

Situs web resmi NILFS.

Repositori:
NILFS2.
NILFS2 keperluan lan modul.

Buletin:
E-mail newsletter kanggo pangembang NILFS2. ID kanggo langganan linux-nilfs.
Arsip newsletter.

nilfs_cleanerd pandhuan persiyapan.
Benchmarking EXT4, Btrfs, XFS & NILFS2 Tes Kinerja.

matur nuwun:

  • Pangembang NILFS2: Ryusuke Konishi, Koji Sato, Naruhiko Kamimura, Seiji Kihara, Yoshiji Amagai, Hisashi Hifumi lan Satoshi Moriai. Kontributor utama liyane yaiku: Andreas Rohner, Dan McGee, David Arendt, David Smid, dexen deVries, Dmitry Smirnov, Eric Sandeen, Jiro SEKIBA, Matteo Frigo, Hitoshi Mitake, Takashi Iwai, Vyacheslav Dubeyko.
  • Kanggo Amblin Entertainment lan Universal Pictures kanggo seri film sing apik banget. "Bali menyang Masa Depan". Gambar pisanan kiriman kasebut dijupuk saka film "Back to the Future 3".
  • Perusahaan RUVDS kanggo dhukungan lan kesempatan kanggo nerbitake ing blog sampeyan ing Habré.

PS Kirimi kesalahan sing sampeyan ngerteni ing pesen pribadi. Aku nambah karma kanggo iki.

Sampeyan bisa eksprimen karo NILFS2 dening supaya mesin virtual saka RUVDS kanthi kupon ing ngisor iki. Kanggo kabeh klien anyar ana wektu nyoba gratis 3 dina.

NILFS2 - sistem berkas anti peluru kanggo / ngarep

Source: www.habr.com

Add a comment