ProHoster > Blog > İdarə > 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 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
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!
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.