NILFS2 - /home-д зориулсан сум нэвтэрдэггүй файлын систем

NILFS2 - /home-д зориулсан сум нэвтэрдэггүй файлын систем

Та бүхний мэдэж байгаагаар хэрэв асуудал гарч болох юм бол энэ нь гарцаагүй болно. Сүүлийн үеийн чухал файлыг санамсаргүйгээр устгасан, эсвэл текст засварлагч дээр санамсаргүйгээр сонгогдсон, устгасан тохиолдол хүн бүрт тохиолдож байсан байх.

Хэрэв та хост эсвэл вэбсайт эзэмшигч бол хэрэглэгчийн бүртгэл эсвэл вэбсайтаа хакердсан байх магадлалтай. Ийм тохиолдолд он цагийн дарааллыг сэргээх, нэвтрэх арга, халдагчийн ашигласан эмзэг байдлыг олох нь чухал юм.

NILFS2 файлын систем нь ийм асуудлыг шийдвэрлэхэд төгс төгөлдөр юм.

Энэ нь Линуксийн цөмд 2.6.30 хувилбараас хойш байгаа.

Энэ файлын системийн онцлог нь энэ нь хувилбарын хяналтын системтэй төстэй юм: та системийн төлөвийг хэзээ ч буцааж, хэсэг хугацааны өмнө ямар байсныг харах боломжтой.

Энэ функцийг хангахын тулд та Cron скриптийг тохируулах, агшин зуурын зураг авах гэх мэт шаардлагагүй. NILFS2 файлын систем үүнийг өөрөө хийдэг. Энэ нь хуучин өгөгдлийг хэзээ ч дарж бичихгүй бөгөөд хэрэв дискний хангалттай зай байгаа бол дискний шинэ хэсгүүдэд байнга бичдэг. Хуулбарлах, бичих зарчимд бүрэн нийцсэн.

Үнэн хэрэгтээ файлд хийсэн аливаа өөрчлөлт нь автоматаар файлын системийн шинэ хормын хувилбарыг үүсгэдэг тул та энэ FS-ийг цагийн машин болгон ашиглаж, файлын төлөвийг эргүүлж болно.

түүх

NILFS2 - /home-д зориулсан сум нэвтэрдэггүй файлын системNILFS2-ийн гүнд боловсруулагдсан Nippon Telegraph and Telephone Corporation, үнэн хэрэгтээ төрийн өмчит (энэ нь хяналтын багцыг эзэмшдэг) Японы хамгийн том харилцаа холбооны компани юм. Бүр тодруулбал, Кибер орон зайн лабораторид удирдлаган дор Рюсуке Кониши.

Үүнийг яг юунд зориулж бүтээсэн нь тодорхойгүй байгаа ч "цаг хугацааны машин"-ын функцтэй ийм FS нь тагнуулын албаныхан ухаж авахыг хүссэн өгөгдлийг хадгалахад тохиромжтой гэж таамаглаж болно. SMS, имэйл гэх мэт ...

NILFS2 нь дотоод аюулгүй байдлын үйлчилгээнд маш үнэ цэнэтэй хэрэгсэл байж болох бөгөөд энэ нь шуудангийн мэдээллийн санд байгаа устгасан бүх захидлуудыг сэргээх боломжийг олгодог бөгөөд ажилчдын дараа нь файлуудыг устгах эсвэл өөрчлөх замаар тэдгээрийг нуун дарагдуулахыг оролддог.

Та захидал харилцааныхаа түүхийг бүхэлд нь хэрхэн хянах вэ?Линукс серверүүд дээр (мөн дотоод аюулгүй байдлын үүднээс NILFS2-г суулгах ёстой) имэйлийг хадгалах файлын аргыг ихэвчлэн имэйлийн мессежийг хадгалахад ашигладаг. Формат гэж нэрлэгддэг Захидал. тавихад хангалттай Шуудангийн сервер болон Maildir дээр мэйл хадгалах тохиргоог хийнэ үү. Бусад формат mbox нь тусдаа мессеж болгон задлан шинжилж болох том текст файл юм.

Хэрэв шуудангийн сервер нь мэдээллийн санг ашигладаг бол NILFS2 нь мэдээллийн баазын өөрчлөлтийн яг цаг хугацааг сэргээх, эдгээр мөчүүдийн аль нэгэнд мэдээллийн санг сэргээх боломжийг олгоно. Дараа нь та тухайн үед юу байсныг харахын тулд мэдээллийн сангийн хэрэгслийг ашиглах хэрэгтэй ...

Гэсэн хэдий ч ямар нэг зүйл буруу болсон. Японы засгийн газар хүн бүрийг хянах бодлоо өөрчилсөн (Яровая зарчим), эсвэл уламжлалт HDD дээр NILFS2-ийн гүйцэтгэл доогуур байсан бөгөөд NILFS2 нь GPL лицензийн дагуу гарсан бөгөөд Линуксийн цөмд маш хурдан нэвтэрсэн. Өндөр мэргэшсэн япон хэлээр бичсэн кодын талаар ямар нэгэн гомдол гараагүй бөгөөд Линукс цөмийн хөгжүүлэгчид энэ нь байдаггүй.

NILFS2 ямархуу байдаг вэ?

Ашиглалтын үүднээс: хувилбарын хяналтын систем дээр SVN. FS хяналтын цэг бүр нь устгах, файлын агуулгыг өөрчлөх, нэвтрэх эрхийг өөрчлөх гэх мэт өөрчлөлт гарсан тохиолдолд хэрэглэгчийн мэдэлгүйгээр автоматаар хийгддэг үүрэг хариуцлага юм. Амлалт бүр шугаман өсөх тоотой.

Програмистын үүднээс: дугуй буфер. Файлын систем нь өөрчлөлтийг хуримтлуулж, ойролцоогоор 8 МБ хэмжээтэй (2000 * 4096, 2000 нь блок дахь элементийн тоо, 4096 нь санах ойн хуудасны хэмжээ) хэмжээтэй тэнцүү хэсэг болгон бичдэг. Бүхэл бүтэн диск нь ийм хэсгүүдэд хуваагдана. Бичлэг нь дарааллаар явагдана. Сул зай дуусвал хамгийн эртний агшин зуурын зургууд устгагдаж, хэсгүүдийг дарж бичнэ.

Үндсэн NILFS2 амттан

  • Хувилбар!!!
  • Алдаа гарсны дараа файлын системийг сэргээх журам нь маш энгийн: ачаалах үед зөв шалгах нийлбэртэй сүүлчийн хэсгийг хайж, түүн дээр суперблок суулгадаг. Энэ бол бараг л шуурхай ажиллагаа юм.
  • Бичлэг үргэлж шугаман байдлаар явагддаг тул:
    • удаан санамсаргүй бичих чадвартай SSD дээр ажиллах үед сайн үр дүнг харуулж чадна.
    • NILFS2 нь SSD нөөцийг хэмнэдэг, учир нь бичих үржүүлэх хүчин зүйл бараг байдаггүй.
      Илүү нарийвчлалтай, энэ нь 2-оос ихгүй байна.Баримт нь бүхэл дискийг мөчлөгөөр дахин бичих үед NILFS2 нь өөрчлөгдөөгүй өгөгдлийг шинэ хэсгүүдэд (хэсэг) шилжүүлэх болно.

      Хэрэв бид дискэн дээр өөрчлөгдөөгүй өгөгдлийн 10% байгаа бол 10 бүрэн дахин бичихэд бид 1% бичих өсөлтийг авах болно. За, дискийг 50 удаа бүрэн дахин бичихэд төхөөрөмжийн бүрэн бүтэн байдал 50% -иар 1% нэмэгдэнэ.

      Хамгийн их бичих ашиг нь 2. Бүх зүйл дэс дарааллаар бичигдсэн байдаг тул энэ нь маш бага юм. Ерөнхийдөө бичих хөдөлгөөнт дүрс нь 4096 байт сектор бүхий ердийн хуваагдмал файлын системийнхээс бага байх болно. (Урам зориг авсан бодол сэтгэгдэл).

  • Алсын NILFS2 FS руу хуулбарлах үйлдлийг хэрэгжүүлэх боломжит хялбар байдал

NILFS2 for /home

Unix-тэй төстэй үйлдлийн системүүдэд хэрэглэгчийн мэдээлэл хадгалагддаг /home хавтас байдаг. Төрөл бүрийн програмууд энэ хавтсанд хэрэглэгчийн тусгай тохиргоогоо хадгалдаг.

Хэрэглэгчид биш бол хэн ихэвчлэн алдаа гаргадаг вэ? Тиймээс, тэдний хэлснээр, Бурхан өөрөө NILFS2-г /гэртээ ашиглахыг тушаажээ.

Түүнчлэн, SSD-ийг өргөнөөр ашигласнаар бид CoW файлын системийг ашиглахдаа ноцтой хомсдолд орох талаар санаа зовох шаардлагагүй болсон.

Тийм ээ, бид ZFS болон BTRFS-д FS агшин зуурын агшингуудыг хүссэн үедээ үүсгэж болох боловч файлын өөрчлөлт нь хормын хувилбаруудын хооронд дуусах эрсдэл үргэлж байдаг. Мөн зургуудыг удирдах шаардлагатай хэвээр байна: хуучин зургуудыг устгах хэрэгтэй. NILFS2-д энэ бүхэн автоматаар, хэдхэн секунд тутамд болдог.

Би lvcreate (nvme эзлэхүүний бүлэгт, нимгэн бассейн нимгэн) ашиглан логик эзлэхүүнийг үүсгэсэн. Дараа нь хялбархан өргөжүүлж болох тул би үүнийг 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/user хавтас дахь залгуурууд болон файлуудыг нээх бөгөөд энэ нь цэвэр хуулбарлахад хүндрэл учруулах болно. Та бүхний мэдэж байгаагаар үндсэн хэрэглэгчийн үндсэн фолдер нь ихэвчлэн /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 файлын хандалт бүрт цаг өөрчлөгдөхгүйн тулд гүйцэтгэлийг сайжруулах шаардлагатай. Дараа нь бид дахин ачаална.

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-г дуусгана уу. Хуулбарлах, засварлах, дахин холбох болон бусад сайхан зүйлсийн хоорондох доод түвшний хурдан ялгааг бий болго!

лавлагаа

NILFS-ийн албан ёсны вэбсайт.

Хадгалах газар:
NILFS2.
NILFS2 хэрэгслүүд ба модулиуд.

Мэдээллийн хуудас:
NILFS2 хөгжүүлэгчдэд зориулсан и-мэйл мэдээллийн товхимол. Linux-nilfs захиалгын ID.
Мэдээллийн архив.

nilfs_cleanerd тохиргооны гарын авлага.
EXT4, Btrfs, XFS & NILFS2 гүйцэтгэлийн туршилтыг харьцуулах.

Талархал:

  • NILFS2 хөгжүүлэгчид: Рюсуке Кониши, Кожи Сато, Нарухико Камимура, Сейжи Кихара, Ёошижи Амагай, Хисаши Хифуми, Сатоши Мориаи. Бусад томоохон хувь нэмэр оруулагчид: Андреас Рохнер, Дэн МакГи, Дэвид Арендт, Дэвид Смид, дексен деВрис, Дмитрий Смирнов, Эрик Сандин, Жиро СЕКИБА, Маттео Фриго, Хитоши Митаке, Такаши Ивай, Вячеслав Дубейко.
  • Амблин энтертайнмент, Юниверсал пикчерс компанид гайхалтай цуврал кинонуудыг хүргэж байна. "Ирээдүй рүү буцах". Нийтлэлийн эхний зургийг “Ирээдүй рүү буцах 3” киноноос авав.
  • Компани RUVDS дэмжлэг болон Habré дээр өөрийн блог дээр нийтлэх боломж.

PS Та анзаарсан алдаагаа хувийн мессежээр илгээнэ үү. Үүний тулд би үйлийн үрээ нэмэгдүүлдэг.

Та виртуал машин захиалж NILFS2-г туршиж үзэх боломжтой RUVDS доорх купонтой. Бүх шинэ үйлчлүүлэгчдэд 3 хоногийн үнэгүй туршилтын хугацаа байдаг.

NILFS2 - /home-д зориулсан сум нэвтэрдэггүй файлын систем

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх