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.
История
Ua 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
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!
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ā.