NILFS2 - /home üçün güllə keçirməyən fayl sistemi

NILFS2 - /home üçün güllə keçirməyən fayl sistemi

Bildiyiniz kimi, bəla baş verə bilərsə, mütləq olacaq. Yəqin ki, hər kəs son vaxtlar vacib bir faylın təsadüfən silinməsi və ya mətnin mətn redaktorunda təsadüfən seçilib məhv edilməsi halları ilə qarşılaşıb.

Əgər siz hoster və ya veb sayt sahibisinizsə, o zaman yəqin ki, istifadəçi hesablarının və ya veb saytınızın sındırılması ilə qarşılaşmısınız. Belə hallarda, xronologiyanı bərpa etmək, giriş metodunu və təcavüzkarın istifadə etdiyi zəifliyi tapmaq vacibdir.

NILFS2 fayl sistemi bu cür problemləri həll etmək üçün mükəmməldir.

O, Linux nüvəsində 2.6.30 versiyasından bəri mövcuddur.

Bu fayl sisteminin özəlliyi ondan ibarətdir ki, o, versiyaya nəzarət sisteminə bənzəyir: siz həmişə sistemin vəziyyətini geri qaytara və bir müddət əvvəl necə olduğuna baxa bilərsiniz.

Bu funksiyanı təmin etmək üçün Cron skriptlərini konfiqurasiya etməyə, anlıq görüntülər çəkməyə və s. ehtiyac yoxdur. NILFS2 fayl sistemi bunu özü edir. O, heç vaxt köhnə məlumatların üzərinə yazmır və kifayət qədər boş disk sahəsi varsa həmişə diskin yeni sahələrinə yazır. Copy-on-Write prinsipinə tam uyğun olaraq.

Əslində, fayla edilən hər hansı dəyişiklik avtomatik olaraq fayl sisteminin yeni şəklini yaradır, beləliklə, siz bu FS-ni zaman maşını kimi istifadə edə və faylların vəziyyətini geri çəkə bilərsiniz.

Hekayə

NILFS2 - /home üçün güllə keçirməyən fayl sistemiNILFS2 dərinliklərində hazırlanmışdır Nippon Teleqraf və Telefon Korporasiyası, əslində, dövlətə məxsus (nəzarət səhm paketinə malikdir) və Yaponiyanın ən böyük telekommunikasiya şirkətidir. Daha dəqiq desək, rəhbərliyi altında CyberSpace Laboratories-də Ryusuke Konishi.

Onun tam olaraq nə üçün hazırlandığı məlum deyil, lakin güman etmək olar ki, “zaman maşını” funksionallığı ilə belə bir FS kəşfiyyat xidmətlərinin bütün mənzərəni təkrar göstərmək üçün araşdırmaq istəyə biləcəyi məlumatları saxlamaq üçün idealdır. SMS, e-poçt və s.

NILFS2 həm də potensial olaraq daxili təhlükəsizlik xidmətləri üçün çox dəyərli bir vasitədir, çünki o, poçt verilənlər bazasında bütün silinmiş məktubları bərpa etməyə imkan verir, sonradan fayllarını silməklə və ya dəyişdirərək onları maskalamağa cəhd edə biləcək işçilərin tıxaclarını aşkar edir.

Bütün yazışma tarixçənizi necə izləyə bilərsiniz?Linux serverlərində (və daxili təhlükəsizlik məqsədləri üçün NILFS2 burada quraşdırılmalıdır) e-poçt mesajlarını saxlamaq üçün çox vaxt e-poçtların saxlanması fayl metodundan istifadə olunur. Sözdə format Maildir. qoymaq kifayətdir Kuryer poçt serveri və Maildir-də poçt yaddaşını konfiqurasiya edin. Digər format mbox asanlıqla fərdi mesajlara ayrıla bilən böyük mətn faylıdır.

Əgər poçt serveri verilənlər bazasından istifadə edirsə, onda NILFS2 verilənlər bazasında dəyişikliklərin dəqiq vaxtını və bu anların hər hansı birində verilənlər bazasını bərpa etmək imkanını bərpa etməyə imkan verəcək. Və sonra verilənlər bazası alətlərindən istifadə etməlisiniz ki, həmin anda orada nə olduğunu görəsiniz...

Bununla belə, bir şey səhv oldu. Ya Yaponiya hökuməti hər kəsin monitorinqi ilə bağlı fikrini dəyişdi (a la Yarovaya prinsipi), ya da NILFS2-nin ənənəvi HDD-lərdə performansı aşağı oldu və NILFS2 GPL lisenziyası altında buraxıldı və çox tez Linux nüvəsinə daxil oldu. yüksək ixtisaslı yaponca yazılmış kodla bağlı heç bir xüsusi şikayət yox idi, Linux nüvəsinin tərtibatçılarında bu yox idi.

NILFS2 necədir?

İstifadə baxımından: versiyaya nəzarət sistemində SVN. Hər bir FS yoxlama məntəqəsi hər hansı bir dəyişiklik olduqda istifadəçinin xəbəri olmadan avtomatik olaraq edilən öhdəlikdir: silinmə, faylın məzmununun dəyişdirilməsi və ya giriş hüquqlarının dəyişdirilməsi. Hər bir öhdəliyin xətti olaraq artan bir sıra var.

Proqramçı baxımından: dairəvi bufer. Fayl sistemi dəyişiklikləri toplayır və onları təxminən 8 MB-a bərabər bir hissəyə yazır (2000 * 4096, burada 2000 blokdakı elementlərin sayı və 4096 yaddaş səhifəsinin ölçüsüdür). Bütün disk belə parçalara bölünür. Qeydiyyat ardıcıl olaraq davam edir. Boş yer bitdikdə, ən köhnə snapshotlar silinir və parçaların üzərinə yazılır.

Əsas NILFS2 yaxşılıqları

  • Versiya!!!
  • Uğursuzluqdan sonra fayl sistemini bərpa etmək proseduru sadədir: yükləyərkən düzgün yoxlama məbləğinə malik olan sonuncu hissə axtarılır və üzərinə superblok quraşdırılır. Bu, demək olar ki, ani əməliyyatdır.
  • Qeydiyyatın həmişə xətti olaraq davam etdiyinə görə:
    • yavaş təsadüfi yazma ilə SSD-də işləyərkən yaxşı nəticələr göstərə bilər.
    • NILFS2 SSD resursunu saxlayır, çünki yazma vurma faktoru demək olar ki, yoxdur.
      Daha doğrusu, 2-dən çox deyil.Fakt budur ki, bütün diski dövri olaraq yenidən yazarkən, NILFS2 dəyişilməz məlumatları yeni parçalara (parçalara) ötürəcək.

      Diskdə 10% dəyişməz məlumatımız varsa, onda 10 tam yenidən yazma ilə 1% yazma artımı əldə edəcəyik. Yaxşı, diskin 50 tam yenidən yazılması üçün cihazın 50% dolğunluğunda 1% artım.

      Maksimum yazma qazancı 2-dir. Hər şeyin ardıcıl yazıldığını nəzərə alsaq, bu, çox aşağıdır. Ümumiyyətlə, yazma animasiyası 4096 baytlıq sektoru olan adi parçalanmış fayl sistemindən daha az olacaq. (Düşüncə ilhamlandı Şərh).

  • Uzaq NILFS2 FS-ə təkrarlamanın həyata keçirilməsinin potensial asanlığı

/ev üçün NILFS2

Unix-ə bənzər əməliyyat sistemlərində, bir qayda olaraq, istifadəçi məlumatlarının saxlandığı /home qovluğu var. Müxtəlif proqramlar istifadəçiyə məxsus parametrlərini bu qovluqda saxlayır.

İstifadəçilər deyilsə, ən çox kim səhv edir? Buna görə də, necə deyərlər, Tanrı özü NILFS2-nin /evdə istifadəsini əmr etdi.

Üstəlik, SSD-lərin geniş istifadəsi ilə biz artıq CoW fayl sistemlərindən istifadə edərkən ciddi çatışmazlıqlardan narahat olmaq məcburiyyətində deyilik.

Bəli, biz ZFS və BTRFS-də istədiyimiz qədər FS snapshotlarını yarada bilərik, lakin itirilmiş fayl dəyişikliyinin anlıq görüntülər arasında bitməsi riski həmişə var. Və şəkilləri hələ də idarə etmək lazımdır: köhnələri silmək lazımdır. NILFS2-də bütün bunlar avtomatik olaraq, sözün əsl mənasında bir neçə saniyədən bir baş verir.

Mən lvcreate istifadə edərək məntiqi həcm yaratdım (nvme həcm qrupunda, nazik hovuz nazik). Mən onu lvm həcmində yaratmağı tövsiyə edirəm, çünki o, sonradan asanlıqla genişləndirilə bilər. Layiqli versiya dərinliyi üçün NILFS50 ilə 2% boş disk sahəsinə sahib olmağı tövsiyə edirəm.

lvcreate -V10G -T nvme/thin -n home

və onu NILFS2-də formatladı:

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 !!

Bundan sonra, cari /evdən bütün məlumatları kopyalamalısınız.

Bunu kompüteri yüklədikdən dərhal sonra, kök istifadəçi kimi hesabıma daxil olmamışdan əvvəl etdim. İstifadəçi kimi daxil olsam, bəzi proqramlar istifadəçimin /home/user qovluğunda yuvaları və faylları açacaq və bu, təmiz surəti çətinləşdirəcək. Bildiyiniz kimi, kök istifadəçi üçün ev qovluğu adətən /root yolunda yerləşir, ona görə də /home bölməsində heç bir fayl açılmayacaq.

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

Son sətir üçün bax Məqalə.

Sonra, /home üçün fayl sisteminin quraşdırıldığı /etc/fstab-ı redaktə edirik

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

Seçim noatime performansı yaxşılaşdırmaq lazımdır ki, hər bir fayl girişi ilə vaxt dəyişməsin. Sonra yenidən başlayacağıq.

NILFS2-də təsvirlərin növləri.

Silinməyə toxunulmazlığı olmayan adi bir görüntüyə yoxlama nöqtəsi və ya bərpa nöqtəsi deyilir.
Avtomatik silinmədən qorunan snapshot snapshot, sonra isə sadəcə olaraq snapshot adlanır.

Yoxlama məntəqələrinə baxmaq lscp əmrindən istifadə etməklə həyata keçirilir

Snapshotlara baxın lscp -s

Biz istənilən vaxt özümüz snapshotlar və nəzarət nöqtələri yarada bilərik:

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

Biz məlumatları bərpa edirik.

NILFS bizə əsas FS filialı ilə işləməyə paralel olaraq istədiyimiz qədər köhnə snapshotları quraşdırmağa imkan verir. Ancaq yalnız oxu rejimində.

Hər şey belə düzülüb. NILFS2-nin etdiyi müntəzəm yoxlama nöqtələri istənilən vaxt avtomatik olaraq silinə bilər (disk sahəsi bitdikdə və ya nilfs_cleanerd qaydalarına uyğun olaraq), buna görə quraşdırmadan əvvəl yoxlama nöqtəsini snapshota çevirməliyik və ya rus dilində desək, şəkil çəkməliyik.

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

Bundan sonra biz snapshot quraşdıra bilərik, məsələn, bu kimi:

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

Bundan sonra bərpa edilmiş faylları snapshotdan /home-a kopyalayırıq.
Və sonradan silinməyən bayrağı snapshotdan silirik ki, gələcəkdə avtomatik zibil toplayıcı köhnəlmiş məlumatları silə bilsin:

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

NILFS2 üçün kommunal proqramlar

Ancaq problem budur. Bəli, əlbəttə ki, biz fayl sistemi yarada, onun ölçüsünü onlayn dəyişə, çağırış nöqtələrinin siyahısına baxa, yarada və silə bilərik. Nilfs2-utils paketi minimal centlmen dəstini təmin edir.

NTT maliyyələşdirməni məhdudlaşdırdığından, fayl dəyişikliklərinin tarixini göstərməyə və ya görüntülər arasında fərq yaratmağa imkan verən sürətli aşağı səviyyəli kommunal proqramlar yoxdur.

Mənim n2u yardım proqramım

Bu boşluğu doldurmaq üçün yazdım n2u yardım proqramınız, müəyyən bir fayl/kataloqda dəyişikliklərin tarixini göstərə bilər:

n2u log filename

Çıxış belə bir şeydir:

          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

Seçilmiş icra metodu üçün olduqca tez işləyir: o, bisection metodundan istifadə edərək fayllar arasında fərqləri axtarır, müxtəlif anlıq görüntülərdə fayl/kataloqu tez montaj edir və müqayisə edir.

Açardan istifadə edərək bir sıra yoxlama nöqtələri təyin edə bilərsiniz -cp CP1:CP2 və ya -cp {YEAR-MM-DD}:{YEAR-MM-DD}.

Siz həmçinin müəyyən bir fayl və ya qovluq üçün yoxlama nöqtələri arasındakı fərqi görə bilərsiniz:

n2u diff -r cp1:cp2 filename

Dəyişikliklərin bütün xronologiyasını göstərə bilərsiniz: xüsusi fayl/kataloqun yoxlama nöqtələri arasındakı bütün fərqlər:

n2u blame [-r cp1:cp2] filename

Bu əmrdəki tarix intervalı da dəstəklənir.

Tərtibatçılara bir fəryad

Habré ilə bağlı bir çox mütəxəssis var. NILFS2-ni tamamlayın. Reviziyalar, təkrar keçid və digər gözəlliklər arasında replikasiya, aşağı səviyyəli sürətli fərq yaradın!

References

NILFS rəsmi saytı.

Repozitorlar:
NILFS2.
NILFS2 utilitləri və modulları.

Bülletenlər:
NILFS2 tərtibatçıları üçün e-poçt bülleteni. linux-nilfs abunəliyi üçün ID.
Bülleten arxivi.

nilfs_cleanerd quraşdırma təlimatı.
EXT4, Btrfs, XFS və NILFS2 Performans Testlərinin müqayisəsi.

Təşəkkürlər:

  • NILFS2 tərtibatçıları: Ryusuke Konishi, Koji Sato, Naruhiko Kamimura, Seiji Kihara, Yoshiji Amagai, Hisashi Hifumi və Satoshi Moriai. Digər əsas töhfələr: Andreas Rohner, Dan McGee, David Arendt, David Smid, dexen deVries, Dmitry Smirnov, Eric Sandeen, Jiro SEKIBA, Matteo Frigo, Hitoshi Mitake, Takashi Iwai, Vyacheslav Dubeyko.
  • Gözəl filmlər seriyası üçün Amblin Entertainment və Universal Pictures-a. "Gələcəyə Qayıdış". Yazının ilk şəkli “Gələcəyə Qayıdış 3” filmindən götürülüb.
  • Şirkətlər RUVDS dəstək və Habré-də bloqunuzda dərc etmək imkanı üçün.

PS Zəhmət olmasa qeyd etdiyiniz səhvləri şəxsi mesajla göndərin. Bunun üçün karmamı artırıram.

Siz virtual maşın sifariş edərək NILFS2 ilə təcrübə edə bilərsiniz RUVDS aşağıdakı kuponla. Bütün yeni müştərilər üçün 3 günlük pulsuz sınaq müddəti var.

NILFS2 - /home üçün güllə keçirməyən fayl sistemi

Mənbə: www.habr.com

Добавить комментарий