NILFS2 - he ʻōnaehana waihona pōkā no / home

NILFS2 - he ʻōnaehana waihona pōkā no / home

E like me kāu e ʻike ai, inā hiki mai ka pilikia, hiki maoli nō ia. Loaʻa paha nā hihia i ka wā i holoi ʻia ai kahi faila koʻikoʻi hou, a i ʻole i koho ʻia a hoʻopau ʻia ka kikokikona ma kahi hoʻoponopono kikokikona.

Inā he hoster ʻoe a i ʻole ka mea nona ka pūnaewele, a laila ua ʻike paha ʻoe i ka hacking o nā moʻokāki mea hoʻohana a i ʻole kāu pūnaewele. Ma ia mau hihia, he mea nui e hoʻihoʻi i ka chronology, e ʻimi i ke ʻano o ke komo ʻana a me ka nāwaliwali i hoʻohana ʻia e ka mea hoʻouka.

He kūpono ka ʻōnaehana faila NILFS2 no ka hoʻoponopono ʻana i ia mau pilikia.

Aia ia ma ka Linux kernel mai ka mana 2.6.30.

ʻO ka hiʻohiʻona o kēia ʻōnaehana faila ʻo ia ka mea like me kahi ʻōnaehana mana mana: hiki iā ʻoe ke ʻōwili i hope i ke kūlana o ka ʻōnaehana a nānā i ke ʻano o ia manawa i hala.

No ka hoʻolako ʻana i kēia hana, ʻaʻole pono ʻoe e hoʻonohonoho i nā palapala Cron, lawe i nā kiʻi paʻi, etc. Hana ka ʻōnaehana faila NILFS2 i kēia wale nō. ʻAʻole ia e hoʻopau i ka ʻikepili kahiko a kākau mau i nā wahi hou o ka disk inā lawa ka hakahaka o ka disk. E like me ke kumu o Copy-on-Write.

ʻO ka ʻoiaʻiʻo, ʻo ka hoʻololi ʻana i kahi faila e hana maʻalahi i kahi kiʻi hou o ka ʻōnaehana faila, no laila hiki iā ʻoe ke hoʻohana i kēia FS ma ke ʻano he mīkini manawa a hoʻihoʻi i ke kūlana o nā faila.

История

NILFS2 - he ʻōnaehana waihona pōkā no / homeUa hoʻomohala ʻia ʻo NILFS2 i ka hohonu o Nippon Telegraph and Telephone Corporation, ʻoiaʻiʻo, ʻo ka mokuʻāina (he kuleana hoʻomalu kona) a ʻo ka hui kelepona nui loa ma Iapana. ʻOi aku ka kikoʻī, i ka CyberSpace Laboratories ma lalo o ke alakaʻi Ryusuke Konishi.

ʻAʻole ʻike ʻia ka mea i hoʻomohala ʻia, akā naʻe, hiki ke manaʻo ʻia ʻo ia FS, me kāna hana "mekini manawa", kūpono no ka mālama ʻana i nā ʻikepili i makemake ʻia e nā lawelawe naʻauao e ʻeli i loko i mea e hoʻokani hou i ke kiʻi holoʻokoʻa. SMS, leka uila, etc.

He mea waiwai nui ʻo NILFS2 no nā lawelawe palekana kūloko, no ka mea hiki iā ʻoe ke hoʻihoʻi i nā leka i holoi ʻia i ka waihona leka uila, e hōʻike ana i nā jambs o nā limahana e hoʻāʻo e hoʻokaʻawale iā lākou ma ka holoi ʻana a hoʻololi paha i kā lākou faila.

Pehea e hiki ai iā ʻoe ke hahai i kāu mōʻaukala palapala?Ma nā kikowaena Linux (a ʻo kēia kahi e hoʻokomo ʻia ai ʻo NILFS2 no nā kumu palekana kūloko), hoʻohana pinepine ʻia ke ʻano faila o ka mālama ʻana i nā leka uila e mālama i nā leka uila. ʻO ke ʻano i kapa ʻia Maildir. Ua lawa ka waiho Mea lawelawe leka uila a hoʻonohonoho i ka mālama leka ma Maildir. ʻAno ʻē aʻe mbox he waihona kikokikona nui i hiki ke hoʻopili maʻalahi i nā memo pākahi.

Inā hoʻohana ka mea leka uila i kahi waihona, a laila e hiki iā NILFS2 ke hoʻihoʻi i ka manawa kūpono o nā hoʻololi ʻikepili a me ka hiki ke hoʻihoʻi i ka waihona i kekahi o kēia mau manawa. A laila pono ʻoe e hoʻohana i nā mea hana waihona e ʻike ai i ka mea i loko i kēlā manawa i ka manawa...

Eia naʻe, ua hewa kekahi mea. Ua hoʻololi paha ke aupuni Iapana i kona manaʻo e pili ana i ka nānā ʻana i nā mea āpau (a la ka Yarovaya kumu), a i ʻole ka hana ʻana o NILFS2 ma nā HDD kuʻuna ma lalo o ka par, a ua hoʻokuʻu ʻia ʻo NILFS2 ma lalo o ka laikini GPL a komo koke i ka kernel Linux, ʻoiai. ʻAʻohe hoʻopiʻi kūikawā e pili ana i ke code i kākau ʻia ʻo Kepanī kūpono loa, ʻaʻole i loaʻa i nā mea hoʻomohala o ka Linux kernel.

He aha ke ʻano o NILFS2?

Mai kahi manaʻo hoʻohana: ma kahi ʻōnaehana mana mana SVN. ʻO kēlā me kēia FS checkpoint kahi hana i hana ʻia me ka ʻole o ka ʻike o ka mea hoʻohana ke loaʻa kekahi hoʻololi: ʻo ka holoi ʻana, hoʻololi i nā ʻike o kahi faila a i ʻole ka hoʻololi ʻana i nā kuleana komo. Loaʻa i kēlā me kēia commit ka helu e hoʻonui linearly.

Mai ka manaʻo o ka mea papahana: kahi pale pōʻai. Hoʻopili ka ʻōnaehana faila i nā loli a kākau iā lākou i kahi puʻupuʻu e like me 8 MB (2000 * 4096, kahi 2000 ka helu o nā mea i loko o ka poloka a ʻo 4096 ka nui o ka ʻaoʻao hoʻomanaʻo). Hoʻokaʻawale ʻia ka disk holoʻokoʻa i ia mau ʻāpana. Ke hoʻomau nei ka hoʻopaʻa ʻana. Ke pau ka hakahaka, holoi ʻia nā kiʻi kahiko loa a kākau ʻia nā ʻāpana.

Nā mea maikaʻi kumu NILFS2

  • Versioning!!!
  • He maʻalahi ke kaʻina hana no ka hoʻihoʻi ʻana i kahi ʻōnaehana faila ma hope o ka hāʻule ʻana: i ka wā e hoʻouka ai, ʻimi ʻia ka ʻāpana hope loa i loaʻa ka checksum kūpono, a ua kau ʻia kahi superblock ma luna. He hana koke keia.
  • Ma muli o ka holo mau ʻana o ka hoʻopaʻa ʻana ma ka laina laina, a laila:
    • hiki ke hōʻike i nā hopena maikaʻi i ka wā e holo ana ma kahi SSD me nā kākau lohi.
    • Mālama ʻo NILFS2 i ka waiwai SSD, ʻoiai ʻaʻohe mea helu helu helu helu.
      ʻOi aku ka pololei, ʻaʻole ia ma mua o 2.ʻO ka ʻoiaʻiʻo i ka wā e kākau hou ai i ka disk holoʻokoʻa, e hoʻololi ʻo NILFS2 i ka ʻikepili hiki ʻole ke hoʻololi i nā ʻāpana hou (chunks).

      Inā loaʻa iā mākou he 10% o ka ʻikepili hoʻololi ʻole ma ka disk, a laila e loaʻa iā mākou kahi hoʻonui kākau 10% me 1 kākau hou. ʻAe, he 50% hoʻonui i ka 50% piha o ka hāmeʻa no ka 1 kākau hou ʻana o ka disk.

      ʻO ka nui o ka loaʻa kākau ʻana he 2. He haʻahaʻa loa kēia me ka noʻonoʻo ʻana ua kākau ʻia nā mea a pau ma ke kaʻina. Ma keʻano laulā, ʻoi aku ka liʻiliʻi o ka animation kākau ma mua o kahi ʻōnaehana waihona ʻāpana maʻamau me kahi ʻāpana 4096-byte. (Hoʻoulu ʻia ka manaʻo e ʻōlelo ʻōlelo).

  • Hiki ke maʻalahi o ka hoʻokō ʻana i ka hoʻopili hou ʻana i kahi NILFS2 FS mamao

NILFS2 no /home

Ma nā ʻōnaehana hana like Unix, ma ke ʻano he lula, aia kahi waihona / home kahi i mālama ʻia ai ka ʻikepili mea hoʻohana. Mālama nā papahana like ʻole i kā lākou hoʻonohonoho kikoʻī o ka mea hoʻohana ma kēia waihona.

A ʻo wai, inā ʻaʻole nā ​​mea hoʻohana, hana hewa pinepine? No laila, e like me kā lākou e ʻōlelo nei, ua kauoha ke Akua i ka hoʻohana ʻana iā NILFS2 ma / home.

Eia kekahi, me ka hoʻohana nui ʻana o SSD, ʻaʻole mākou hopohopo hou e pili ana i nā drawdown koʻikoʻi i ka wā e hoʻohana ai i nā ʻōnaehana faila CoW.

ʻAe, hiki iā mākou ke hana i nā kiʻi paʻi FS i nā manawa a mākou e makemake ai ma ZFS a me BTRFS, akā aia mau ka pilikia e hoʻopau ʻia kahi hoʻololi faila i nalowale ma waena o nā kiʻi. A pono e lawelawe ʻia nā kiʻi: pono e holoi ʻia nā kiʻi kahiko. Ma NILFS2, hiki mai kēia mau mea a pau, i kēlā me kēia mau kekona.

Ua hana au i ka leo logical me ka hoʻohana ʻana i ka lvcreate (ma ka pūʻulu volume nvme, thin pool thin). Manaʻo wau e hana ia ma ka leo lvm, no ka mea hiki ke hoʻonui maʻalahi ma hope. Manaʻo wau i ka loaʻa ʻana o 50% kaawale disk me NILFS2 no ka hohonu o ka mana.

lvcreate -V10G -T nvme/thin -n home

a hoʻopili iā ia ma 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 !!

Ma hope o kēia, pono ʻoe e kope i nā ʻikepili āpau mai ka home / kēia manawa.

Ua hana koke au i kēia ma hope o ka hoʻomaka ʻana i ka kamepiula, ma mua o ke komo ʻana i kaʻu moʻokāki, ma ke ʻano he kumu hoʻohana. Inā wau e komo i kaʻu mea hoʻohana, e wehe kekahi mau polokalamu i nā kumu a me nā faila i loko o ka waihona / home/user o kaʻu mea hoʻohana, kahi e paʻakikī ai ke kope maʻemaʻe. E like me kāu e ʻike ai, aia ka waihona home no ka mea hoʻohana kumu ma ke ala / root, no laila ʻaʻohe faila e wehe ʻia ma ka pā / home.

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

No ka laina hope, e nana ʻO kahi mea kākau.

A laila hoʻoponopono mākou /etc/fstab, kahi i kau ʻia ai ka ʻōnaehana faila no / home, i

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

Koho noatime pono e hoʻomaikaʻi i ka hana i ʻole e loli ka manawa me kēlā me kēia waihona waihona. A laila hoʻomaka hou mākou.

Nā ʻano kiʻi ma NILFS2.

ʻO kahi kiʻi paʻi maʻamau me ka pale ʻole i ka holoi ʻana i kapa ʻia he wahi hōʻoia a i ʻole wahi hoʻihoʻi.
Ua kapa ʻia kahi kiʻi paʻi i pale ʻia mai ka holoi ʻana ʻana he paʻi kiʻi, a laila he paʻi kiʻi wale nō.

Hana ʻia ka nānā ʻana i nā māka me ke kauoha lscp

Nānā i nā paʻi kiʻi lscp -s

Hiki iā mākou ke hana i nā kiʻi paʻi kiʻi a me nā wahi nānā iā mākou iho i kēlā me kēia manawa me ka hoʻohana ʻana:

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

Hoʻihoʻi mākou i ka ʻikepili.

Hiki iā NILFS ke kau i nā kiʻi paʻi kahiko e like me kā mākou makemake e like me ka hana ʻana me ka lālā FS nui. Akā ma ke ʻano heluhelu wale nō.

Hoʻonohonoho ʻia nā mea a pau e like me kēia. Hiki ke hoʻopau ʻia nā wahi nānā maʻamau i hana ʻia e NILFS2 i kēlā me kēia manawa (ke pau ka disk space a i ʻole e like me nā lula nilfs_cleanerd), no laila ma mua o ka hoʻokomo ʻana, pono mākou e hoʻololi i ka māka i kahi kiʻi kiʻi a i ʻole, ma ka ʻōlelo Lūkini, e hopu i ke kiʻi.

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

Ma hope o kēlā, hiki iā mākou ke kau i ka snapshot, no ka laʻana, e like me kēia:

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

A laila kope mākou i nā faila i hoʻihoʻi ʻia mai ka snapshot i / home.
A laila wehe mākou i ka hae hiki ʻole ke hoʻopau ʻia mai ka kiʻi paʻi i hiki i ka mea ʻohi ʻōpala ma hope ke wehe i ka ʻikepili kahiko:

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

Nā mea pono no NILFS2

Akā ʻo kēia ka pilikia. ʻAe, ʻoiaʻiʻo, hiki iā mākou ke hana i kahi ʻōnaehana faila, hoʻololi i kona nui ma ka pūnaewele, ʻike i ka papa inoa o nā pahuhopu, hana a holoi iā lākou. Hāʻawi ka pūʻolo nilfs2-utils i kahi hoʻonohonoho keonimana liʻiliʻi.

Ma muli o ka hōʻemi ʻana o NTT i kāna kālā, ʻaʻohe mea hoʻohana haʻahaʻa haʻahaʻa wikiwiki e hiki ai iā ʻoe ke hōʻike i ka mōʻaukala o nā hoʻololi faila a i ʻole e hoʻokaʻawale i waena o nā kiʻi.

Ko'u pono n2u

No ka hoʻopiha ʻana i kēia hakahaka ua kākau wau kou pono n2u, hiki ke hōʻike i ka mōʻaukala o nā hoʻololi i kahi faila/papa kuhikuhi kikoʻī:

n2u log filename

ʻO ka hopena e like me kēia:

          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

E hana wikiwiki ana no ke ʻano hoʻokō i koho ʻia: ʻimi ʻo ia i nā ʻokoʻa ma waena o nā faila me ka hoʻohana ʻana i ke ʻano bisection, e kau wikiwiki a hoʻohālikelike i ka faila/papa kuhikuhi ma nā kiʻi paʻi like ʻole.

Hiki iā ʻoe ke hoʻonohonoho i kahi ʻano o nā wahi nānā me ka hoʻohana ʻana i ke kī -cp CP1:CP2 ai ole ia, -cp {YEAR-MM-DD}:{YEAR-MM-DD}.

Hiki iā ʻoe ke ʻike i ka ʻokoʻa ma waena o nā māka no kahi faila a i ʻole papa kuhikuhi.

n2u diff -r cp1:cp2 filename

Hiki iā ʻoe ke hōʻike i ka chronology holoʻokoʻa o nā hoʻololi: nā ʻokoʻa āpau ma waena o nā wahi kikoʻī o kahi faila/papa kuhikuhi kikoʻī:

n2u blame [-r cp1:cp2] filename

Kākoʻo ʻia nō hoʻi ka wā o ka lā ma kēia kauoha.

He uē i nā mea hoʻomohala

Nui nā loea ma Habré. E ʻoluʻolu e hoʻopau i ka NILFS2. E hana hou, ʻokoʻa ka haʻahaʻa haʻahaʻa ma waena o nā hoʻoponopono hou, reflink a me nā mea maikaʻi ʻē aʻe!

kūmole

Paena pūnaewele NILFS.

Nā waihona:
NILFS2.
Nā mea pono a me nā modula NILFS2.

Nūpepa:
Leka leka uila no nā mea hoʻomohala NILFS2. ID no ke kau inoa linux-nilfs.
Waihona nūhou.

alakaʻi hoʻonohonoho nilfs_cleanerd.
Ho'āʻo hoʻokolohua EXT4, Btrfs, XFS & NILFS2.

Mahalo:

  • Nā mea hoʻomohala NILFS2: Ryusuke Konishi, Koji Sato, Naruhiko Kamimura, Seiji Kihara, Yoshiji Amagai, Hisashi Hifumi a me Satoshi Moriai. ʻO nā mea kōkua nui ʻē aʻe: Andreas Rohner, Dan McGee, David Arendt, David Smid, dexen deVries, Dmitry Smirnov, Eric Sandeen, Jiro SEKIBA, Matteo Frigo, Hitoshi Mitake, Takashi Iwai, Vyacheslav Dubeyko.
  • No Amblin Entertainment a me Universal Pictures no kahi kiʻiʻoniʻoni nani. "Hoʻi i ka wā e hiki mai ana". Lawe ʻia ke kiʻi mua o ka pou mai ka kiʻiʻoniʻoni "Back to the Future 3".
  • ʻOihana RUVDS no ke kākoʻo a me ka manawa kūpono e hoʻolaha ma kāu blog ma Habré.

PS E ʻoluʻolu e hoʻouna i nā hewa āu i ʻike ai ma kahi leka pilikino. Hoʻonui au i kaʻu karma no kēia.

Hiki iā ʻoe ke hoʻokolohua me NILFS2 ma ke kauoha ʻana i kahi mīkini virtual mai RUVDS me ka coupon ma lalo nei. No nā mea kūʻai hou aku aia kahi manawa hoʻāʻo manuahi o 3 lā.

NILFS2 - he ʻōnaehana waihona pōkā no / home

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka