
Ma'lumki, agar muammo yuzaga kelishi mumkin bo'lsa, bu albatta sodir bo'ladi. Ehtimol, har bir kishi yaqinda muhim fayl tasodifan o'chirilgan yoki matn tasodifiy tanlangan va matn muharririda yo'q qilingan holatlarga duch kelgan.
Agar siz hoster yoki veb-sayt egasi bo'lsangiz, ehtimol siz foydalanuvchi hisoblarini yoki veb-saytingizni buzishga duch kelgansiz. Bunday hollarda xronologiyani tiklash, kirish usulini va tajovuzkor tomonidan ishlatiladigan zaiflikni topish muhimdir.
NILFS2 fayl tizimi bunday muammolarni hal qilish uchun juda mos keladi.
U yadroda mavjud Linux, 2.6.30 versiyasidan boshlab.
Ushbu fayl tizimining o'ziga xosligi shundaki, u versiyani boshqarish tizimiga o'xshaydi: siz har doim tizimning holatini orqaga qaytarishingiz va bir muncha vaqt oldin qanday bo'lganiga qarashingiz mumkin.
Ushbu funksiyani ta'minlash uchun siz Cron skriptlarini sozlashingiz, suratga olishingiz va h.k. shart emas. NILFS2 fayl tizimi buni o'zi bajaradi. U hech qachon eski ma'lumotlarni qayta yozmaydi va diskda etarli bo'sh joy bo'lsa, har doim diskning yangi joylariga yozadi. Kopiya-yozish printsipiga to'liq muvofiq.
Aslida, faylga qilingan har qanday o'zgarish avtomatik ravishda fayl tizimining yangi rasmini yaratadi, shuning uchun siz ushbu FSni vaqt mashinasi sifatida ishlatishingiz va fayllar holatini orqaga qaytarishingiz mumkin.
История
NILFS2 chuqurlikda ishlab chiqilgan , aslida, davlatga tegishli (uning nazorat paketiga ega) va Yaponiyadagi eng yirik telekommunikatsiya kompaniyasi. Aniqroq aytganda, CyberSpace Laboratories rahbarligida .
U aniq nima uchun ishlab chiqilgani noma'lum, ammo taxmin qilish mumkinki, bunday FS o'zining "vaqt mashinasi" funksiyasi bilan razvedka xizmatlari butun rasmni qayta ko'rsatish uchun qazib olishni xohlashlari mumkin bo'lgan ma'lumotlarni saqlash uchun idealdir. SMS, elektron pochta va h.k.
NILFS2 shuningdek, ichki xavfsizlik xizmatlari uchun juda qimmatli vositadir, chunki u pochta ma'lumotlar bazasidagi barcha o'chirilgan xatlarni qayta tiklashga imkon beradi, bu esa keyinchalik o'z fayllarini o'chirish yoki o'zgartirish orqali ularni yashirishga harakat qilishi mumkin bo'lgan xodimlarning tiqilishini ochib beradi.
Barcha yozishmalaringiz tarixini qanday kuzatish mumkin?В Linux Serverlarda (va bu yerda ichki xavfsizlik maqsadlari uchun NILFS2 o'rnatilishi kerak), elektron pochta xabarlarini saqlashning faylga asoslangan usuli juda ko'p qo'llaniladi. . Qo'yish uchun etarli va Maildir-da pochta xotirasini sozlang. Boshqa format alohida xabarlarga osongina ajratilishi mumkin bo'lgan katta matn fayli.
Agar pochta serveri ma'lumotlar bazasidan foydalansa, NILFS2 ma'lumotlar bazasini o'zgartirishning aniq vaqtini va ushbu daqiqalarning istalganida ma'lumotlar bazasini tiklash qobiliyatini tiklashga imkon beradi. Va keyin siz o'sha paytda nima borligini ko'rish uchun ma'lumotlar bazasi vositalaridan foydalanishingiz kerak ...
Biroq, bir narsa noto'g'ri ketdi. Yoki Yaponiya hukumati hammani kuzatib borish haqidagi fikrini o'zgartirdi (Yarovaya printsipi layoqatli), yoki NILFS2 ning an'anaviy HDDlardagi ishlashi juda yuqori edi, shuning uchun NILFS2 GPL litsenziyasi ostida chiqarildi va tezda yadroning bir qismiga aylandi. Linux, chunki yadro ishlab chiquvchilari yuqori malakali yaponlar tomonidan yozilgan kod haqida hech qanday shikoyatga ega emaslar Linux hech kim yo'q edi.
NILFS2 nimaga o'xshaydi?
Foydalanish nuqtai nazaridan: versiyani boshqarish tizimida . Har bir FS nazorat punkti har qanday o'zgarish bo'lganda foydalanuvchining xabarisiz avtomatik ravishda amalga oshiriladigan majburiyatdir: o'chirish, fayl mazmunini o'zgartirish yoki kirish huquqlarini o'zgartirish. Har bir topshiriqda chiziqli ravishda ko'payadigan raqam mavjud.
Dasturchi nuqtai nazaridan: dumaloq bufer. Fayl tizimi o'zgarishlarni to'playdi va ularni taxminan 8 MB ga teng bo'lakka yozadi (2000 * 4096, bu erda 2000 - blokdagi elementlar soni va 4096 - xotira sahifasining o'lchami). Butun disk shunday bo'laklarga bo'lingan. Yozib olish ketma-ket davom etadi. Bo'sh joy tugagach, eng eski suratlar o'chiriladi va bo'laklar ustiga yoziladi.
Asosiy NILFS2 sovg'alari
- Versiyalash!!!
- Muvaffaqiyatsizlikdan keyin fayl tizimini tiklash tartibi oddiy: yuklashda to'g'ri nazorat summasiga ega bo'lgan oxirgi qism qidiriladi va unga superblok o'rnatiladi. Bu deyarli tezkor operatsiya.
- Yozib olish har doim chiziqli davom etishi sababli:
- sekin tasodifiy yozish bilan SSDda ishlaganda yaxshi natijalarni ko'rsatishi mumkin.
- NILFS2 SSD resursini tejaydi, chunki yozishni ko'paytirish omili deyarli yo'q.
Aniqroq aytganda, 2 dan ortiq emas.Gap shundaki, butun diskni davriy ravishda qayta yozishda NILFS2 o'zgarmas ma'lumotlarni yangi qismlarga (bo'laklarga) uzatadi.Agar diskda o'zgarmas ma'lumotlarning 10% bo'lsa, biz 10 to'liq qayta yozish bilan 1% yozishni olamiz. Xo'sh, diskni 50 marta to'liq qayta yozish uchun qurilmaning 50% to'liqligida 1% o'sish.
Maksimal yozish daromadi 2. Hamma narsa ketma-ket yozilganligini hisobga olsak, bu juda past. Umuman olganda, yozish animatsiyasi 4096 baytlik sektorga ega bo'lgan an'anaviy bo'laklangan fayl tizimidan kamroq bo'ladi. (Fikr ilhomlantirilgan ).
- Masofaviy NILFS2 FS ga replikatsiyani amalga oshirishning potentsial qulayligi
/home uchun NILFS2
Unix-ga o'xshash operatsion tizimlarda, qoida tariqasida, foydalanuvchi ma'lumotlari saqlanadigan /home papkasi mavjud. Turli dasturlar ushbu papkada foydalanuvchiga xos sozlamalarini saqlaydi.
Va agar foydalanuvchilar bo'lmasa, kim ko'pincha xato qiladi? Shuning uchun, ular aytganidek, Xudoning o'zi NILFS2-dan / uyda foydalanishni buyurgan.
Bundan tashqari, SSD-larning keng qo'llanilishi bilan biz endi CoW fayl tizimlaridan foydalanishda jiddiy kamchiliklar haqida tashvishlanishimiz shart emas.
Ha, biz ZFS va BTRFS-da FS suratlarini xohlagancha tez-tez yaratishimiz mumkin, ammo har doim yo'qolgan fayl o'zgarishi suratlar orasida tugashi xavfi mavjud. Va rasmlar hali ham boshqarilishi kerak: eskilarini o'chirish kerak. NILFS2-da bularning barchasi avtomatik ravishda, har bir necha soniyada sodir bo'ladi.
Men lvcreate yordamida mantiqiy hajm yaratdim (nvme tovush guruhida, nozik hovuz nozik). Men uni lvm hajmida yaratishni tavsiya qilaman, chunki uni keyinchalik osongina kengaytirish mumkin. Yaxshi versiya chuqurligi uchun NILFS50 bilan 2% bo'sh disk maydoniga ega bo'lishni tavsiya qilaman.
lvcreate -V10G -T nvme/thin -n homeva uni NILFS2 da formatladi:
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 !!
Shundan so'ng, joriy/uydagi barcha ma'lumotlarni nusxalashingiz kerak.
Men buni kompyuterni ishga tushirgandan so'ng, root foydalanuvchisi sifatida hisob qaydnomamga kirishdan oldin qildim. Agar men foydalanuvchi sifatida tizimga kirsam, ba'zi dasturlar foydalanuvchining /home/user papkasida rozetkalar va fayllarni ochadi, bu esa toza nusxani qiyinlashtiradi. Ma'lumki, root foydalanuvchisi uchun asosiy papka odatda /root yo'lida joylashgan, shuning uchun /home bo'limida hech qanday fayl ochilmaydi.
mkdir /mnt/newhome
mount -t nilfs2 /dev/nvme/home /mnt/newhome
cp -a /home/. /mnt/newhome Oxirgi qator uchun qarang .
Keyinchalik, /home fayl tizimi o'rnatilgan /etc/fstab ni tahrirlaymiz
/dev/disk/by-label/nvme_home /home nilfs2 noatime 0 0
Variant noatime har bir faylga kirishda vaqt o'zgarmasligi uchun ishlashni yaxshilash kerak. Keyin biz qayta ishga tushiramiz.
NILFS2 da tasvir turlari.
O'chirishga qarshi immunitetga ega bo'lmagan oddiy suratga tekshirish punkti yoki tiklash nuqtasi deyiladi.
Avtomatik o'chirishdan himoyalangan surat oniy rasm, keyin esa oddiy rasm deb ataladi.
Tekshirish nuqtalarini ko'rish lscp buyrug'i yordamida amalga oshiriladi
Snapshotlarni ko'rish lscp -s
Biz istalgan vaqtda suratlar va nazorat nuqtalarini o'zimiz yaratishimiz mumkin:
mkcp [-s] устройствоBiz ma'lumotlarni qayta tiklaymiz.
NILFS bizga asosiy FS filiali bilan ishlash bilan parallel ravishda xohlagancha eski suratlarni o'rnatishga imkon beradi. Lekin faqat o'qish rejimida.
Hammasi shunday tartibga solingan. NILFS2 tomonidan amalga oshiriladigan muntazam nazorat punktlari istalgan vaqtda avtomatik ravishda o'chirilishi mumkin (diskdagi bo'sh joy tugashi yoki nilfs_cleanerd qoidalariga muvofiq), shuning uchun o'rnatishdan oldin biz nazorat punktini oniy rasmga aylantirishimiz yoki rus tilida oniy tasvirni olishimiz kerak.
chcp ss номер_чекпоинтаShundan so'ng, biz rasmni o'rnatishimiz mumkin, masalan:
mount -t nilfs2 -r -o cp=номер_чекпоинта /dev/nvme/home /mnt/nilfs/номер_чекпоинта Shundan so'ng biz tiklangan fayllarni oniy rasmdan /home-ga nusxalaymiz.
Va keyinchalik biz o'chirilmaydigan bayroqni oniy rasmdan olib tashlaymiz, shunda kelajakda avtomatik axlat yig'uvchi eskirgan ma'lumotlarni olib tashlashi mumkin:
chcp cp номер_чекпоинтаNILFS2 uchun yordamchi dasturlar
Ammo bu muammo. Ha, albatta, biz fayl tizimini yaratishimiz, uning hajmini onlayn tarzda o'zgartirishimiz, sinov nuqtalari ro'yxatini ko'rishimiz, ularni yaratishimiz va o'chirishimiz mumkin. Nilfs2-utils to'plami minimal janoblar to'plamini taqdim etadi.
NTT moliyalashtirishni qisqartirganligi sababli, fayllarni o'zgartirish tarixini ko'rsatish yoki oniy tasvirlar o'rtasida farq qilish imkonini beradigan past darajadagi tezkor yordamchi dasturlar mavjud emas.
Mening n2u yordam dasturim
Bu bo'shliqni to'ldirish uchun men yozdim , bu ma'lum bir fayl/katalogdagi o'zgarishlar tarixini ko'rsatishi mumkin:
n2u log filenameChiqish shunga o'xshash:
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 cpTanlangan amalga oshirish usuli uchun u juda tez ishlaydi: u biseksiya usulidan foydalangan holda fayllar orasidagi farqlarni qidiradi, tezda turli xil suratlardagi fayl/katalogni o'rnatadi va taqqoslaydi.
Kalit yordamida bir qator nazorat nuqtalarini o'rnatishingiz mumkin -cp CP1:CP2 yoki -cp {YEAR-MM-DD}:{YEAR-MM-DD}.
Bundan tashqari, ma'lum bir fayl yoki katalog uchun nazorat nuqtalari orasidagi farqni ko'rishingiz mumkin:
n2u diff -r cp1:cp2 filenameSiz o'zgarishlarning butun xronologiyasini ko'rsatishingiz mumkin: ma'lum bir fayl/katalogning nazorat nuqtalari orasidagi barcha farqlar:
n2u blame [-r cp1:cp2] filenameUshbu buyruqdagi sana oralig'i ham qo'llab-quvvatlanadi.
Ishlab chiquvchilar uchun yig'lash
Habré bo'yicha ko'plab mutaxassislar mavjud. Iltimos, NILFS2 ni tugating. Replikatsiyani yarating, qayta ko'rib chiqish, qayta havola va boshqa sovg'alar o'rtasidagi past darajadagi tezkor farq!
Manbalar
.
Repozitoriylar:
.
.
Axborot byulletenlari:
. Linux-nilfs obunasi uchun ID.
.
.
.
Rahmat:
- NILFS2 ishlab chiquvchilari: Ryusuke Konishi, Koji Sato, Naruhiko Kamimura, Seiji Kihara, Yoshiji Amagai, Hisashi Hifumi va Satoshi Moriai. Boshqa katta hissa qo‘shganlar: Andreas Rohner, Den MakGi, Devid Arendt, Devid Smid, dexen deVries, Dmitriy Smirnov, Erik Sandin, Jiro SEKIBA, Matteo Frigo, Xitoshi Mitake, Takashi Ivay, Vyacheslav Dubeyko.
- Amblin Entertainment va Universal Pictures-ga ajoyib filmlar seriyasi uchun. . Xabarning birinchi surati “Kelajakka qaytish 3” filmidan olingan.
- Kompaniyalar qo'llab-quvvatlash va Habré-dagi blogingizda nashr qilish imkoniyati uchun.
PS Iltimos, ko'rgan xatolaringizni shaxsiy xabar orqali yuboring. Buning uchun karmani oshiraman.
Virtual mashinaga buyurtma berish orqali NILFS2 bilan tajriba o'tkazishingiz mumkin quyidagi kupon bilan. Barcha yangi mijozlar uchun 3 kunlik bepul sinov muddati mavjud.
Manba: www.habr.com
