NILFS2 - /үй үчүн ок өткөрбөс файл системасы

NILFS2 - /үй үчүн ок өткөрбөс файл системасы

Белгилүү болгондой, кыйынчылык болушу мүмкүн болсо, ал сөзсүз болот. Кыязы, ар бир адамда акыркы маанилүү файл кокустан өчүрүлгөн же текст кокусунан тандалган жана текст редакторунда жок кылынган учурлар болгон.

Эгер сиз хостер же веб-сайттын ээси болсоңуз, анда сиз колдонуучунун аккаунттарын же веб-сайтыңызды бузуп алгандырсыз. Мындай учурларда хронологияны калыбына келтирүү, кирүү ыкмасын жана чабуулчу колдонгон аялуу жерди табуу маанилүү.

NILFS2 файл системасы мындай көйгөйлөрдү чечүү үчүн идеалдуу.

Ал Linux ядросунда 2.6.30 версиясынан бери бар.

Бул файлдык тутумдун өзгөчөлүгү анын версияны башкаруу системасына окшоштугунда: сиз ар дайым системанын абалын артка кайтарып, бир нече убакыт мурун кандай болгонун карап көрө аласыз.

Бул функцияны камсыз кылуу үчүн Cron скрипттерин конфигурациялоонун, сүрөт тартуунун ж.б. кереги жок. NILFS2 файл системасы мунун баарын өзү жасайт. Ал эч качан эски маалыматтардын үстүнөн жазбайт жана дискте бош орун жетиштүү болсо, ар дайым дисктин жаңы аймактарына жазат. Копия-на-жазуу принцибине толук ылайык.

Чындыгында, файлга болгон ар кандай өзгөртүү автоматтык түрдө файл тутумунун жаңы сүрөтүн түзөт, андыктан сиз бул FSти убакыт машинасы катары колдонуп, файлдардын абалын артка түрө аласыз.

История

NILFS2 - /үй үчүн ок өткөрбөс файл системасыNILFS2 тереңдикте иштелип чыккан Nippon Telegraph and Telephone Corporation, чындыгында мамлекеттик (ал акциялардын контролдук пакетине ээ) жана Япониядагы эң ири телекоммуникация компаниясы. Тагыраак айтканда, жетекчилиги астында CyberSpace лабораторияларында Ryusuke Konishi.

Ал эмне үчүн иштелип чыкканы белгисиз, бирок "убакыт машинасы" функциясы менен мындай FS чалгындоо кызматтарынын сүрөттөрүн толугу менен кайра ойнотуу үчүн казууну каалашы мүмкүн болгон маалыматтарды сактоо үчүн идеалдуу деп болжолдоого болот. SMS, электрондук почта, ж.

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

Кат жазышуу тарыхыңызды кантип көзөмөлдөй аласыз?Linux серверлеринде (жана ушул жерде NILFS2 ички коопсуздук максаттары үчүн орнотулушу керек), электрондук почта билдирүүлөрүн сактоо үчүн электрондук каттарды сактоонун файлдык ыкмасы көбүнчө колдонулат. Формат деп аталган Maildir. коюу жетиштүү Courier Mail Server жана Maildirде почта сактагычын конфигурациялаңыз. Башка формат чакыр жеке билдирүүлөргө оңой талданган чоң текст файлы.

Эгерде почта сервери маалымат базасын колдонсо, анда NILFS2 маалымат базасын өзгөртүүнүн так убактысын калыбына келтирүүгө жана ушул учурлардын каалаганында маалымат базасын калыбына келтирүүгө мүмкүндүк берет. Анан ошол убакта эмне болгонун көрүү үчүн маалымат базасынын куралдарын колдонушуңуз керек...

Бирок, бир нерсе ката кетти. Жапон өкмөтү бардыгын көзөмөлдөө боюнча оюн өзгөрттү (Яровая принциби боюнча), же NILFS2нин салттуу HDDдеги көрсөткүчтөрү төмөн болуп чыкты жана NILFS2 GPL лицензиясы астында чыгарылып, Linux ядросуна тез кирди, анткени жогорку квалификациялуу жапон тилинде жазылган код боюнча өзгөчө даттануулар болгон эмес, Linux ядросун иштеп чыгуучуларда андай болгон эмес.

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

Unix сыяктуу операциялык системаларда, эреже катары, колдонуучу маалыматтары сакталган /home папкасы бар. Ар кандай программалар бул папкада өздөрүнүн колдонуучуга тиешелүү жөндөөлөрүн сакташат.

Колдонуучулар болбосо, ким көп ката кетирет? Ошондуктан, алар айткандай, Кудай өзү NILFS2ди /үйдө колдонууга буйрук берген.

Мындан тышкары, SSD дисктерин кеңири колдонуу менен, биз CoW файлдык тутумдарын колдонууда олуттуу кыскартуулар жөнүндө тынчсызданбайбыз.

Ооба, биз FS сүрөттөрүн ZFS жана BTRFSде каалагандай түзө алабыз, бирок ар дайым жоголгон файлдын өзгөрүшү сүрөттөрдүн ортосунда бүтүп калуу коркунучу бар. Ал эми сүрөттөр дагы эле башкаруу керек: эскилерди жок кылуу керек. 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/номер_чекпоинта

Андан кийин биз калыбына келтирилген файлдарды сүрөттөн / үйгө көчүрөбүз.
Андан кийин биз өчүрүлгүс желекчени сүрөттөн алып салабыз, ошондуктан келечекте автоматтык таштанды жыйноочу эскирген маалыматтарды жок кыла алат:

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

Бул буйруктагы күн аралыгы да колдоого алынат.

Иштеп чыгуучуларга кыйкырык

Habré боюнча көптөгөн адистер бар. Сураныч, NILFS2. Ревизиялардын, кайра шилтемелердин жана башка жакшы нерселердин ортосундагы репликацияны, төмөн деңгээлдеги тез айырмачылыкты жасаңыз!

шилтемелер

NILFS расмий сайты.

Репозиторийлер:
NILFS2.
NILFS2 утилиталары жана модулдары.

Бюллетендер:
NILFS2 иштеп чыгуучулары үчүн электрондук кат. Linux-nilfs жазылуусу үчүн ID.
Маалымат бюллетенинин архиви.

nilfs_cleanerd орнотуу көрсөтмөсү.
Бенчмаркинг EXT4, Btrfs, XFS & NILFS2 Performance Tests.

Рахмат:

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

PS Сиз байкаган каталарды купуя кат аркылуу жөнөтүңүз. Бул үчүн кармамды көбөйтөм.

Сиз виртуалдык машинага заказ кылуу менен NILFS2 менен эксперимент жасай аласыз RUVDS төмөнкү купон менен. Бардык жаңы кардарлар үчүн 3 күндүк акысыз сыноо мөөнөтү бар.

NILFS2 - /үй үчүн ок өткөрбөс файл системасы

Source: www.habr.com

Комментарий кошуу