NILFS2 - cov ntaub ntawv tsis muaj phom sij rau / tsev

NILFS2 - cov ntaub ntawv tsis muaj phom sij rau / tsev

Raws li koj paub, yog tias muaj teeb meem tshwm sim, nws yuav tshwm sim tiag tiag. Tej zaum txhua leej txhua tus tau muaj xwm txheej thaum cov ntaub ntawv tseem ceeb tsis ntev los no tau raug tshem tawm yuam kev, lossis cov ntawv nyeem raug xaiv thiab rhuav tshem hauv cov ntawv nyeem.

Yog tias koj yog tus tswv tsev lossis tus tswv lub vev xaib, ces tej zaum koj tau ntsib kev nyiag ntawm cov neeg siv nyiaj lossis koj lub vev xaib. Nyob rau hauv cov ntaub ntawv no, nws yog ib qho tseem ceeb kom rov qab tau cov chronology, nrhiav cov txheej txheem ntawm kev nkag thiab qhov tsis zoo siv los ntawm tus neeg tawm tsam.

NILFS2 cov ntaub ntawv kaw lus zoo meej rau kev daws cov teeb meem zoo li no.

Nws tau muaj nyob hauv Linux ntsiav txij li version 2.6.30.

Lub peculiarity ntawm no cov ntaub ntawv system yog hais tias nws zoo ib yam li ib tug version tswj system: koj muaj peev xwm ib txwm yob rov qab lub xeev ntawm lub system rov qab thiab saib nws zoo li tej lub sij hawm dhau los.

Txhawm rau muab cov haujlwm no, koj tsis tas yuav teeb tsa Cron scripts, nqa snapshots, thiab lwm yam. NILFS2 cov ntaub ntawv kaw lus ua qhov no los ntawm nws tus kheej. Nws yeej tsis sau cov ntaub ntawv qub thiab ib txwm sau rau thaj chaw tshiab ntawm disk yog tias muaj qhov chaw dawb txaus txaus. Raws li txoj cai Copy-on-Write.

Qhov tseeb, txhua qhov kev hloov pauv rau cov ntaub ntawv cia li tsim cov snapshot tshiab ntawm cov ntaub ntawv kaw lus, yog li koj tuaj yeem siv FS no ua lub sijhawm siv lub tshuab thiab rov ua lub xeev cov ntaub ntawv.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ

NILFS2 - cov ntaub ntawv tsis muaj phom sij rau / tsevNILFS2 tau tsim nyob rau hauv qhov tob ntawm Nippon Telegraph thiab Telephone Corporation, qhov tseeb, lub xeev cov tswv (nws muaj feem tswj hwm) thiab lub tuam txhab kev sib txuas lus loj tshaj plaws hauv Nyij Pooj. Tshwj xeeb tshaj yog, hauv CyberSpace Laboratories nyob rau hauv kev coj noj coj ua Ryusuke Konishi.

Dab tsi raws nraim nws tau tsim los yog tsis paub, txawm li cas los xij, nws tuaj yeem xav tias xws li FS, nrog nws "lub sijhawm tshuab" ua haujlwm, yog qhov zoo tagnrho rau khaws cov ntaub ntawv uas cov kev pabcuam txawj ntse yuav xav khawb rau hauv thiaj li yuav rov ua txhua daim duab ntawm SMS, email, thiab lwm yam....

NILFS2 kuj tseem muaj peev xwm muaj txiaj ntsig zoo rau cov kev pabcuam kev nyab xeeb sab hauv, vim nws tso cai rau koj rov qab tau tag nrho cov ntawv tshem tawm hauv cov ntawv xa ntawv, nthuav tawm cov jambs ntawm cov neeg ua haujlwm uas yuav tom qab sim zais lawv los ntawm kev rho tawm lossis hloov lawv cov ntaub ntawv.

Koj tuaj yeem taug qab koj cov ntaub ntawv keeb kwm tag nrho li cas?Ntawm Linux servers (thiab qhov no yog qhov uas NILFS2 yuav tsum tau teeb tsa rau lub hom phiaj kev ruaj ntseg sab hauv), cov ntaub ntawv ntawm kev khaws cov emails feem ntau siv los khaws cov lus email. Qhov hu ua hom Maidir. Txaus rau tso Courier Mail Server thiab teeb tsa cov ntawv xa hauv Maildir. Lwm hom ntawv mbox yog ib daim ntawv loj loj uas tuaj yeem faib tau yooj yim rau hauv ib tus neeg cov lus.

Yog tias tus xa ntawv xa ntawv siv lub database, ces NILFS2 yuav ua rau nws muaj peev xwm rov qab tau lub sijhawm ntawm cov ntaub ntawv hloov pauv thiab muaj peev xwm los kho cov ntaub ntawv ntawm ib lub sijhawm no. Thiab tom qab ntawd koj yuav tsum siv cov cuab yeej database kom pom dab tsi nyob hauv nws ntawm lub sijhawm ntawd ...

Txawm li cas los xij, muaj qee yam ua tsis raug. Txawm hais tias tsoomfwv Nyij Pooj tau hloov nws lub siab txog kev saib xyuas txhua tus (ib lub hauv paus ntsiab lus Yarovaya), lossis kev ua haujlwm ntawm NILFS2 ntawm ib txwm HDDs tau dhau los ua qis dua, thiab NILFS2 tau tso tawm raws li GPL daim ntawv tso cai thiab nkag mus rau Linux kernel sai heev, txij li thaum tsis muaj ib qho kev tsis txaus siab tshwj xeeb txog cov cai sau tau zoo heev Japanese, cov neeg tsim tawm ntawm Linux ntsiav tsis muaj nws.

NILFS2 zoo li cas?

Los ntawm kev siv taw tes ntawm kev pom: ntawm kev tswj hwm version SVN. Txhua qhov chaw kuaj xyuas FS yog qhov kev cog lus uas tau ua tiav yam tsis muaj tus neeg siv paub txog thaum twg muaj kev hloov pauv: yog nws tshem tawm, hloov cov ntsiab lus ntawm cov ntaub ntawv lossis hloov txoj cai nkag. Txhua qhov kev cog lus muaj tus lej uas nce linearly.

Los ntawm tus programmer lub ntsiab lus ntawm kev pom: ib ncig tsis muaj. Cov ntaub ntawv kaw lus khaws cov kev hloov pauv thiab sau rau hauv ib qho sib npaug ntawm kwv yees li 8 MB (2000 * 4096, qhov twg 2000 yog tus naj npawb ntawm cov ntsiab lus hauv qhov thaiv thiab 4096 yog qhov loj ntawm nplooj ntawv nco). Tag nrho cov disk muab faib ua tej chunks. Cov ntaubntawv povthawj siv ua ntu zus. Thaum qhov chaw dawb khiav tawm, qhov qub tshaj plaws snapshots raug tshem tawm thiab cov chunks tau sau dua.

Basic NILFS2 goodies

  • Versioning!!!
  • Cov txheej txheem rau kev kho cov ntaub ntawv rov qab tom qab qhov tsis ua haujlwm yog qhov yooj yim: thaum thauj khoom, qhov kawg chunks uas muaj qhov tseeb checksum tau tshawb nrhiav, thiab lub superblock tau nruab rau ntawm nws. Qhov no yog ib qho haujlwm yuav luag tam sim ntawd.
  • Vim hais tias cov ntaub ntawv ib txwm ua linearly, ces:
    • tuaj yeem pom cov txiaj ntsig zoo thaum khiav ntawm SSD nrog qeeb random sau.
    • NILFS2 txuag SSD cov peev txheej, txij li yuav luag tsis muaj kev sau ntau ntxiv.
      Ntau precisely, nws yog tsis ntau tshaj 2.Qhov tseeb yog tias thaum cyclically rewriting tag nrho disk, NILFS2 yuav hloov cov ntaub ntawv hloov tsis tau mus rau daim tshiab (chunks).

      Yog tias peb muaj 10% ntawm cov ntaub ntawv tsis hloov pauv ntawm lub disk, ces peb yuav tau txais 10% sau nce nrog 1 ua tiav rov sau dua. Zoo, 50% nce ntawm 50% tag nrho ntawm cov cuab yeej rau 1 ua tiav rov sau dua ntawm disk.

      Qhov siab tshaj plaws sau nce yog 2. Qhov no yog qhov tsawg heev uas xav tias txhua yam yog sau ua ntu zus. Feem ntau, cov ntawv sau ua yeeb yaj kiab yuav tsawg dua li ntawm cov ntaub ntawv sib faib ua ke nrog 4096-byte sector. (Kev xav tau tshoov siab los ntawm tawm tswv yim).

  • Muaj peev xwm yooj yim ntawm kev siv ntawm kev rov ua dua rau cov chaw taws teeb NILFS2 FS

NILFS2 rau /home

Hauv Unix-zoo li kev khiav hauj lwm systems, raws li txoj cai, muaj ib tug / tsev nplaub tshev uas cov neeg siv cov ntaub ntawv khaws cia. Ntau yam kev pab cuam txuag lawv cov neeg siv cov chaw tshwj xeeb hauv daim nplaub tshev no.

Thiab leej twg, yog tias tsis yog cov neeg siv, ua yuam kev feem ntau? Yog li ntawd, raws li lawv hais, Vajtswv nws tus kheej kom siv NILFS2 ntawm / tsev.

Ntxiv mus, nrog rau kev siv ntau ntawm SSDs, peb tam sim no tsis tas yuav txhawj xeeb txog kev poob qis thaum siv CoW cov ntaub ntawv.

Yog lawm, peb tuaj yeem tsim FS snapshots ntau npaum li peb nyiam hauv ZFS thiab BTRFS, tab sis ib txwm muaj kev pheej hmoo tias kev hloov pauv ntawm cov ntaub ntawv ploj yuav xaus rau ntawm cov snapshots. Thiab cov duab tseem yuav tsum tau tswj hwm: cov qub yuav tsum tau muab tshem tawm. Hauv NILFS2, txhua qhov no tshwm sim tau txais, hais txhua ob peb feeb.

Kuv tsim ib lub logical ntim siv lvcreate (hauv nvme ntim pawg, pas dej nyias nyias). Kuv pom zoo kom tsim nws ntawm lvm ntim, vim nws tuaj yeem yooj yim nthuav tom qab. Kuv pom zoo kom muaj 50% qhov chaw dawb disk nrog NILFS2 rau qhov zoo nkauj version qhov tob.

lvcreate -V10G -T nvme/thin -n home

thiab formatted nws hauv 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 !!

Tom qab no, koj yuav tsum luam tag nrho cov ntaub ntawv los ntawm tam sim no / tsev.

Kuv tau ua qhov no tam sim ntawd tom qab booting lub computer, ua ntej nkag mus rau hauv kuv tus account, raws li tus neeg siv hauv paus. Yog tias kuv tau nkag mus rau hauv kuv tus neeg siv, qee qhov kev pab cuam yuav qhib qhov (sockets) thiab cov ntaub ntawv hauv kuv tus neeg siv lub tsev / tsev / tus neeg siv nplaub tshev, uas yuav ua rau daim ntawv huv si nyuaj. Raws li koj paub, lub tsev nplaub tshev rau cov neeg siv hauv paus feem ntau nyob ntawm / hauv paus txoj hauv kev, yog li tsis muaj cov ntaub ntawv yuav qhib rau / tsev muab faib.

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

Rau kab kawg, saib tsab xov xwm.

Tom ntej no peb hloov /etc/fstab, nyob rau hauv uas cov ntaub ntawv kaw lus rau / tsev yog mounted, rau

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

Xaiv noatime xav tau los txhim kho kev ua tau zoo kom lub sijhawm tsis hloov nrog txhua cov ntaub ntawv nkag. Tom ntej no peb reboot.

Hom duab hauv NILFS2.

Lub snapshot tsis tu ncua uas tsis muaj kev tiv thaiv rau kev tshem tawm yog hu ua qhov chaw kuaj xyuas lossis qhov chaw rov qab los.
Lub snapshot tiv thaiv los ntawm kev rho tawm pib yog hu ua snapshot, ces tsuas yog snapshot.

Saib cov chaw kuaj xyuas yog ua tiav siv cov lus txib lscp

Saib snapshots lscp -s

Peb tuaj yeem tsim snapshots thiab checkpoints peb tus kheej txhua lub sijhawm siv:

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

Peb restore cov ntaub ntawv.

NILFS tso cai rau peb los txhim kho ntau qhov qub snapshots raws li peb xav tau nyob rau hauv parallel nrog ua hauj lwm nrog lub ntsiab FS ceg. Tab sis tsuas yog nyob rau hauv hom nyeem.

Txhua yam yog npaj li no. Cov chaw kuaj xyuas tsis tu ncua uas NILFS2 ua tuaj yeem raug tshem tawm txhua lub sijhawm (thaum qhov chaw disk khiav tawm lossis raws li nilfs_cleanrd cov cai), yog li ua ntej kev teeb tsa peb yuav tsum hloov qhov chaw kuaj xyuas rau hauv snapshot lossis, hauv lus Lavxias, ntes cov snapshot.

chcp ss Π½ΠΎΠΌΠ΅Ρ€_Ρ‡Π΅ΠΊΠΏΠΎΠΈΠ½Ρ‚Π°

Tom qab ntawd, peb tuaj yeem mount lub snapshot, piv txwv li, zoo li no:

mount -t nilfs2 -r -o cp=Π½ΠΎΠΌΠ΅Ρ€_Ρ‡Π΅ΠΊΠΏΠΎΠΈΠ½Ρ‚Π° /dev/nvme/home /mnt/nilfs/Π½ΠΎΠΌΠ΅Ρ€_Ρ‡Π΅ΠΊΠΏΠΎΠΈΠ½Ρ‚Π°

Tom qab ntawd peb luam cov ntaub ntawv rov qab los ntawm snapshot rau / tsev.
Thiab tom qab ntawd peb tshem tawm tus chij undeletable ntawm lub snapshot kom yav tom ntej lub tshuab khib nyiab tsis siv neeg tuaj yeem tshem tawm cov ntaub ntawv qub:

chcp cp Π½ΠΎΠΌΠ΅Ρ€_Ρ‡Π΅ΠΊΠΏΠΎΠΈΠ½Ρ‚Π°

Utilities rau NILFS2

Tab sis qhov no yog qhov teeb meem. Yog lawm, tau kawg, peb tuaj yeem tsim cov ntaub ntawv kaw lus, hloov nws qhov loj hauv online, saib cov npe ntawm cov ntsiab lus sib tw, tsim thiab tshem tawm lawv. Lub pob nilfs2-utils muab ib qho me me ntawm tus txiv neej lub teeb.

Txij li thaum NTT tau txo nws cov peev nyiaj, tsis muaj cov khoom siv hluav taws xob tsawg ceev uas tso cai rau koj los tso saib keeb kwm ntawm cov ntaub ntawv hloov pauv lossis ua qhov sib txawv ntawm cov duab thaij duab.

kuv n2u utility

Txhawm rau sau lub tshuab nqus tsev no kuv sau koj n2u, uas tuaj yeem tso saib keeb kwm ntawm kev hloov pauv rau cov ntaub ntawv tshwj xeeb / cov npe:

n2u log filename

Cov zis yog ib yam li no:

          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

Nws ua haujlwm sai heev rau txoj kev xaiv xaiv: nws saib qhov sib txawv ntawm cov ntaub ntawv siv txoj kev bisection, nrawm nrawm thiab sib piv cov ntaub ntawv / cov npe hauv cov duab sib txawv.

Koj tuaj yeem teeb tsa ntau qhov chaw kuaj xyuas siv tus yuam sij -cp CP1:CP2 los yog -cp {YEAR-MM-DD}:{YEAR-MM-DD}.

Koj tuaj yeem pom qhov sib txawv ntawm cov chaw kuaj xyuas rau cov ntaub ntawv tshwj xeeb lossis cov npe:

n2u diff -r cp1:cp2 filename

Koj tuaj yeem tso saib tag nrho cov sijhawm hloov pauv: txhua qhov sib txawv ntawm qhov chaw kuaj xyuas ntawm cov ntaub ntawv tshwj xeeb / cov npe:

n2u blame [-r cp1:cp2] filename

Hnub ncua sij hawm hauv cov lus txib no kuj tau txais kev txhawb nqa.

Ib tug quaj rau developers

Muaj ntau tus kws tshaj lij ntawm Habre. Thov ua kom tiav NILFS2. Ua kom rov ua dua, qib qis nrawm sib txawv ntawm kev hloov kho, reflink thiab lwm yam khoom zoo!

ua tim khawv

NILFS lub website.

Repositories:
NILFS2.
NILFS2 kev siv hluav taws xob thiab modules.

Cov ntawv xov xwm:
E-mail tsab ntawv xov xwm rau NILFS2 tus tsim tawm. ID rau linux-nilfs subscription.
Cov ntawv xov xwm archive.

nilfs_cleanrd teeb qhia.
Benchmarking EXT4, Btrfs, XFS & NILFS2 Kev Ntsuas Kev Ua Haujlwm.

Ua tsaug:

  • NILFS2 tus tsim tawm: Ryusuke Konishi, Koji Sato, Naruhiko Kamimura, Seiji Kihara, Yoshiji Amagai, Hisashi Hifumi thiab Satoshi Moriai. Lwm cov neeg koom nrog tseem ceeb yog: Andreas Rohner, Dan McGee, David Arendt, David Smid, dexen deVries, Dmitry Smirnov, Eric Sandeen, Jiro SEKIBA, Matteo Frigo, Hitoshi Mitake, Takashi Iwai, Vyacheslav Dubeyko.
  • Rau Amblin Kev Lom Zem thiab Universal Duab rau cov yeeb yaj kiab zoo heev. "Rov qab mus rau yav tom ntej". Thawj daim duab ntawm tus ncej yog coj los ntawm cov yeeb yaj kiab "Rov qab mus rau Yav Tom Ntej 3".
  • Tuam txhab uas muag RUVDS rau kev txhawb nqa thiab lub sijhawm los tshaj tawm hauv koj qhov blog ntawm HabrΓ©.

PS Thov xa tej yam yuam kev uas koj pom nyob rau hauv ib tug private lus. Kuv nce kuv karma rau qhov no.

Koj tuaj yeem sim nrog NILFS2 los ntawm kev xaj lub tshuab virtual los ntawm RUVDS nrog daim coupon hauv qab no. Rau txhua tus neeg siv khoom tshiab muaj lub sijhawm sim pub dawb 3 hnub.

NILFS2 - cov ntaub ntawv tsis muaj phom sij rau / tsev

Tau qhov twg los: www.hab.com

Ntxiv ib saib