Uandishi wa habari. Wavivu wa kuandika na kukagua vituo vya ukaguzi

Mifumo ya faili iliyochapishwa ni aina ya mifumo ya faili ambayo sifa yake ni kudumisha jarida ambalo huhifadhi orodha ya mabadiliko, kwa kiwango kimoja au kingine kusaidia kudumisha uadilifu. mfumo wa faili.

Kuendesha ukaguzi wa mfumo (kama vile fsck) kwenye mifumo mikubwa ya faili kunaweza kuchukua muda mrefu, ambayo ni mbaya sana kwa mifumo ya kisasa ya kasi kubwa. Sababu ya ukosefu wa uadilifu katika mfumo wa faili inaweza kuwa isiyo sahihi kupunguzwa, kwa mfano, ikiwa diski ilikuwa imeandikwa wakati wa kukomesha. Programu zinaweza kusasisha data iliyo katika faili, na mfumo unaweza kusasisha metadata ya mfumo wa faili, ambayo ni "data kuhusu data ya mfumo wa faili," kwa maneno mengine, taarifa kuhusu ni vizuizi vipi vinavyohusishwa na faili zipi, faili zipi ziko katika saraka gani, na kadhalika. Makosa (ukosefu wa uadilifu) katika faili za data ni mbaya, lakini mbaya zaidi ni makosa katika metadata ya mfumo wa faili, ambayo inaweza kusababisha kupoteza faili na matatizo mengine makubwa.

Ili kupunguza masuala ya uadilifu na kupunguza muda wa kuanzisha upya mfumo, mfumo wa faili uliochapishwa hudumisha orodha ya mabadiliko ambayo utafanya kwenye mfumo wa faili kabla ya kuandika mabadiliko. Rekodi hizi zimehifadhiwa katika sehemu tofauti ya mfumo wa faili inayoitwa "jarida" au "logi". Mara baada ya mabadiliko ya mfumo wa faili kuchapishwa kwa usalama, mfumo wa faili uliochapishwa hutumika mabadiliko hayo kwa faili au metadata na kisha kuondoa maingizo hayo kwenye jarida. Maingizo ya kumbukumbu yamepangwa katika seti za mabadiliko yanayohusiana ya mfumo wa faili, kama vile mabadiliko yanayoongezwa kwenye hifadhidata yanavyopangwa katika miamala.

Kuwa na kumbukumbu huongeza uwezekano wa kudumisha uadilifu wa mfumo wa faili kwa sababu maingizo ya faili ya kumbukumbu hufanywa kabla ya mabadiliko halisi kufanywa, na maingizo haya hutunzwa hadi yatakapotumika kikamilifu na kwa usalama. Kompyuta inapoanzishwa upya, programu ya kupachika inaweza kuhakikisha uadilifu wa mfumo wa faili uliochapishwa kwa kuangalia tu faili ya kumbukumbu kwa mabadiliko ambayo yalitarajiwa lakini hayajafanywa na kisha kuyaandika kwa mfumo wa faili. Hiyo. Kwa jarida, katika hali nyingi mfumo hauitaji kuangalia uadilifu wa mfumo wa faili, ambayo inamaanisha kuwa kompyuta itapatikana kwa kazi karibu mara baada ya kuanza upya. Ipasavyo, uwezekano wa kupoteza data kutokana na matatizo katika mfumo wa faili hupunguzwa sana.

Kuna mifumo kadhaa ya faili ya uandishi inayopatikana kwenye Linux. Maarufu zaidi kati yao:

    XFS, mfumo wa faili wa uandishi uliotengenezwa na Silicon Graphics lakini sasa iliyotolewa kama chanzo wazi;

    ReiserFS, mfumo wa faili wa uandishi iliyoundwa mahsusi kwa ajili ya Linux;

    JFS, mfumo wa faili wa uandishi uliotengenezwa awali na IBM lakini sasa umetolewa kama chanzo huria;

    xt3 ni kiendelezi kilichochapishwa cha mfumo wa faili wa ext2 unaotumiwa kwenye matoleo mengi ya GNU/Linux. Kipengele cha Kipekee mfumo wa ext3 - uwezo wa kubadili kutoka kwa ext2 bila kurekebisha diski. Imeandaliwa na Dk. Stephan Tweedie.

    Katika familia ya OS Microsoft Windows Jarida ni pamoja na faili Mfumo wa NTFS. Katika Mac OS X - HFS+.

Sasa na Mustakabali wa Uandishi wa Habari

Kuna ufafanuzi mwingi wa mifumo ya faili ya uandishi, lakini wacha tutoe maneno ambayo kila mtu anaweza kuelewa: mfumo wa faili wa uandishi ni mfumo kwa wale ambao wamechoka na programu. ukaguzi wa fsck wakati wa kupakia. Huu pia ni mfumo kwa wale ambao wako karibu na wazo la mifumo ya kuvumilia kushindwa. Ukizima umeme kimakosa mfumo wa kawaida, ambapo hakuna ukataji miti, OS hugundua ukweli huu na huendesha huduma ya ukaguzi wa uadilifu wa diski ya fsck kwenye buti inayofuata. Huduma hii huchanganua mfumo wa faili na kujaribu kurekebisha matatizo bila kudhuru data. Mchakato wa uthibitishaji unaweza kuchukua muda mrefu sana. Wakati mwingine mfumo wa faili unakuwa umeharibika sana kwamba boti za OS tu katika hali ya mtumiaji mmoja na kumfanya mtumiaji kufanya ahueni zaidi.

Sema fsck

Mbaya zaidi, mchakato wa fsck unaweza kuendeshwa kiotomatiki na mfumo wa uendeshaji wakati wa kuweka mfumo wa faili ili kuhakikisha kuwa metadata ni sahihi (hata ikiwa hapakuwa na ufisadi). Kwa hivyo, kuondoa hundi zisizo za lazima Uadilifu wa mfumo wa faili ni sehemu inayoonekana kwa kuboreshwa.

Kwa hivyo sasa unajua ni nani anayehitaji mifumo ya faili ya uandishi, kwa nini mifumo kama hii haihitaji ukaguzi wa fsck? Kwa kifupi, kwa sababu wanadumisha jarida maalum. Logi ni faili ambayo ni bafa ya pete ambayo vitendo vyote vinavyohusiana na mabadiliko kwenye mfumo wa faili hurekodiwa. Mara kwa mara, mabadiliko haya yanatumika kwa mfumo wa faili. Ikitokea kushindwa, logi inaweza kutumika kama mahali pa kuanzia kurejesha data ambayo haijahifadhiwa na kuzuia uharibifu wa metadata.

Kwa muhtasari, mfumo wa faili uliochapishwa ni mfumo wa faili unaostahimili ajali ambapo amri za urekebishaji huwekwa kabla ya kutekelezwa, na hivyo kuepuka upotovu wa metadata. (Ona Mchoro 1). Kama kawaida na Linux, kuna tofauti nyingi za mifumo kama hiyo. Hebu tuangalie kwa haraka historia ya mifumo ya faili na kisha tuangalie mifumo ya faili inapatikana leo na tofauti zao.

Metadata ni nini?

Metadata zinaitwa miundo ya huduma data inayohitajika ili kuhifadhi data ya msingi. Uendeshaji kama vile kuunda na kufuta faili na saraka, kuongeza faili, kupunguza faili, n.k. huathiri metadata.

Kielelezo 1. Mfumo wa faili uliochapishwa wa kawaida.

Historia ya Mifumo ya Faili Zilizochapishwa za Linux

IBM® ilikuwa ya kwanza kutengeneza mfumo wa faili wa uandishi wa habari unaoitwa JFS (Journaled File System). Toleo la kwanza la JFS lilianzishwa mnamo 1990, na toleo la kisasa linatumika kwenye Linux kama JFS2, ambalo lilitengenezwa baadaye. Mnamo 1994, Silicon Graphics ilianzisha faili ya utendaji wa juu Mfumo wa XFS kwa IRIX OS. Mnamo 2001, XFS iliwekwa kwenye Linux. Mnamo 1998, mfumo wa msingi wa faili ulitengenezwa kwa mifumo ya Amiga. Mfumo wa Smart Mfumo wa Faili (SFS), ambao ulitolewa baadaye chini ya Leseni ya Umma ya GNU Lesser General Public (LGPL) na kupokea usaidizi katika Linux 2005. Mfumo wa faili unaotumika sana ni ext3fs (kutoka kwa Kiingereza. tatu kupanuliwa mfumo wa faili ), ambayo ni ugani wa mfumo wa ext2 na kuongeza ya ukataji miti. Msaada wa ext3fs ulionekana katika Linux mnamo 2001. Hatimaye, mfumo wa faili unaotumiwa sana wa ReiserFS umefungua njia na fursa nyingi za maendeleo. Hata hivyo, maendeleo ya mfumo huu yamepungua kutokana na matatizo ya kisheria ya mwandishi wake.

Aina za ukataji miti

Mifumo yote ya faili iliyochapishwa hudumisha jarida ili kubadilisha mabadiliko ya mfumo wa faili (ambayo inahitajika pia kwa kupona maafa), lakini kuna mikakati tofauti ya nini cha kuweka na lini. Mikakati mitatu ya kawaida ni hali ya kuandika tena, hali ya kuagiza, na hali ya data.

KATIKA hali ya uandishi Metadata pekee ndiyo iliyoandikwa, na vizuizi vya data vimeandikwa moja kwa moja kwenye diski. Hii inachangia kutokiuka kwa muundo wa mfumo wa faili na inalinda dhidi ya uharibifu, lakini uharibifu wa data yenyewe bado unawezekana (kwa mfano, ikiwa ajali ya mfumo hutokea baada ya kuandika metadata kwenye jarida, lakini kabla ya kuandika kizuizi cha data). Amua tatizo lililobainishwa inaruhusu hali ya kuagiza. Katika hali hii, metadata pekee pia imeingia, lakini data yenyewe imeandikwa kabla ya metadata kuingia. Hii inahakikisha uthabiti wa data ya mfumo wa faili baada ya kupona. Hatimaye, inawezekana kuingia hali ya data, ambamo metadata na data yenyewe zimeingia. Hali hii ina kiwango cha juu cha upinzani dhidi ya uharibifu wa data na kupoteza, lakini ina hasara ya utendaji mbaya kwa sababu data zote zimeandikwa mara mbili (kwanza kwa logi, kisha kwa diski).

Sheria za kutumia mabadiliko yaliyoingia zinaweza pia kutofautiana kati ya mbinu. Kwa mfano, ni wakati gani mabadiliko yanapaswa kutumika? Gazeti hujaa lini? Au wakati muda fulani wa kuisha unaisha?

Mifumo ya Faili Iliyochapishwa Leo

Leo, mifumo kadhaa ya faili ya uandishi wa habari hutumiwa kikamilifu, ambayo kila moja ina faida na hasara zake. Ifuatayo ni mifumo minne maarufu ya faili za uandishi.

JFS2

JFS2 (pia inajulikana kama kuboresha mfumo wa faili wa uandishi wa habari) ni mfumo wa kwanza wa faili uliochapishwa na kwa muda mrefu ilitumika kwenye mfumo wa uendeshaji wa IBM AIX® kabla ya kutumwa kwa Linux. JFS2 ni mfumo wa faili wa 64-bit ambao, ukichukua mizizi yake kutoka kwa JFS ya awali, umeboreshwa kwa kiasi kikubwa katika suala la scalability na usaidizi wa usanifu wa multiprocessor.

JFS2 inasaidia uandishi wa utaratibu, utendakazi wa hali ya juu, na muda wa urejeshaji wa sekunde ndogo. Ili kuboresha utendakazi, hutumia mbinu ya uwekaji wa faili kulingana na kiwango. Uwekaji kulingana na kiwango inamaanisha kuweka faili katika sehemu kadhaa zinazoendelea, badala ya vizuizi vingi vinavyofanana. Kwa sababu ya mwendelezo, sehemu hizi hutoa usomaji na uandishi haraka. Faida ya ziada ya viwango ni gharama za chini za kufanya kazi na metadata. Wakati wa kuweka faili kwenye vizuizi, metadata ya kila block inarekodiwa. Ikiwa viwango vinatumiwa, metadata ya vipimo, ambayo kwa kawaida huwa na vizuizi vingi, hubadilika.

JFS2 pia hutumia miti ya B+ kwa zote mbili utafutaji wenye ufanisi saraka na kusimamia maelezo ya kiwango. JFS2 haina sera yake ya kusukuma mabadiliko kwenye diski - badala yake inategemea kuisha kwa muda wa daemon.

XFS

XFS ni mfumo mwingine wa faili wa uandishi wa mapema, uliotengenezwa na Silicon Graphics mnamo 1995 kwa IRIX OS. Mnamo 2001, XFS ilitekelezwa katika Linux, tayari kuwa mfumo wa faili uliofikiriwa vizuri na wa kuaminika wakati huo.

XFS hutumia ushughulikiaji kamili wa 64-bit na hutoa sana utendaji wa juu kupitia matumizi ya miti ya B+ kushughulikia saraka na faili. XFS huhifadhi data kama vipimo, vinavyosaidia saizi tofauti (kutoka baiti 512 hadi kilobaiti 64). Pamoja na upeo, XFS hutumia mgao wa uvivu, ambao huchelewesha ugawaji wa vitalu hadi wakati wa kuwaandika kwenye diski. Kipengele hiki kinaongeza uwezekano wa kujaza vitalu vya disk kadhaa mfululizo, kwa kuwa idadi yao itajulikana wakati wa kurekodi.

Sifa zingine za kuvutia za XFS ni kasi ya I/O iliyohakikishwa wakati watumiaji wa mfumo wa faili wametengewa hifadhi kipimo data kwa shughuli za I/O, na I/O ya moja kwa moja, ambayo inakili data moja kwa moja kati ya diski na bafa ya programu (badala ya kupitia bafa nyingi). Uandishi wa habari katika XFS unafanywa kwa kutumia njia ya kuandika tena.

Mfumo wa tatu wa faili uliopanuliwa (ext3fs)

Mfumo wa tatu wa faili uliopanuliwa (ext3fs) ndio mfumo maarufu wa faili wa uandishi wa habari, ambao uliibuka kama mageuzi ya mfumo wa faili wa ext2 unaojulikana. Kwa kweli, inaambatana na ext2, kwani inafanya kazi kwenye miundo inayofanana, lakini kwa kuongeza logi. Zaidi ya hayo, inawezekana kuweka kizigeu cha ext3 kama ext2, au kubadilisha ext2 hadi ext3 kwa kutumia matumizi ya tune2fs.

ext3fs inasaidia mikakati yote mitatu ya ukataji miti ( andika tena, hali ya kuagiza na data), lakini hali ya kuagiza chaguo-msingi inatumika. Sera ya kuhamisha data ya kumbukumbu hadi kwenye diski inaweza kusanidiwa, lakini mwanzoni ni kwamba uhamishaji hutokea ama wakati 1/4 ya kumbukumbu imejaa au wakati muda wa moja wapo wa uhamishaji unapoisha.

Moja ya kasoro kuu za ext3fs zinatokana na ukweli kwamba haikukusudiwa kuwa mfumo wa faili wa uandishi wa habari. Kwa sababu inategemea ext2fs, haina vipengele vingi vya kina vinavyopatikana katika mifumo mingine ya faili (kama vile vipimo). Pia kwa ujumla hufanya kazi vibaya ikilinganishwa na ReiserFs, JFS, na XFS, lakini haina CPU nyingi na kumbukumbu kubwa kuliko mifumo mingine mingi ya faili.

ReiserFS

Ufungaji wa mikia ni nini?

Mara nyingi hutokea kwamba faili ina ukubwa ukubwa mdogo block mantiki. Badala ya kutenga kizuizi kizima kwa kila faili kama hiyo, ikiacha sehemu ya kizuizi bila mtu (sehemu hii inaitwa mkia), wanajaribu kutoshea faili kadhaa kwenye kizuizi kimoja. Njia hii inatoa faida ya 5% nafasi ya bure ikilinganishwa na mifumo mingine ya faili, lakini ina athari mbaya kwa utendaji.

Mfumo wa faili wa ReiserFS uliundwa tangu mwanzo kuwa uandishi wa habari. Mnamo 2001, iliongezwa kwa tawi kuu la 2.4 kernel na ikawa mfumo wa kwanza wa faili wa uandishi kuonekana katika Linux. Njia kuu ya uandishi wa habari ni shirika. Upanuzi wa ukubwa wa mfumo wa faili popote ulipo unatumika. ReiserFS pia inasaidia tailings compaction ili kupunguza mgawanyiko, ambayo huiruhusu kufanya vyema zaidi ext3fs wakati wa kufanya kazi na faili ndogo.

ReiserFS (pia inaitwa ReiserFS v3) hutumia nyingi mbinu za kisasa, kwa mfano B+-miti. Umbizo la mfumo wa faili linatokana na mti mmoja wa B+, na kufanya shughuli za utafutaji kuwa za haraka na zenye kuzidisha. Sera ya uhamishaji wa logi hadi diski inategemea saizi ya kumbukumbu na inategemea idadi ya vizuizi vinavyohitaji kuhamishwa.

Sifa ya ReiserFS imeharibiwa mara kadhaa: mara ya mwisho- matatizo ya mwandishi wa mfumo na sheria (kwa maelezo ya kina, angalia sehemu).

Mustakabali wa Mifumo ya Faili Zilizoandikwa

Baada ya kuona mifumo ya faili iliyochapishwa ya sasa na ya zamani, wacha tuangalie siku zijazo zina nini (na sio nini).

Reiser4

Baada ya kufanikiwa kuanzisha ReiserFS kwenye kernel na kuitumia katika usambazaji mwingi Kampuni ya Linux Namesys (ambayo iko nyuma ya ReiserFS) imeanza kazi kwenye mfumo mpya wa faili uliochapishwa, Reiser4, ambao umejengwa kabisa kutoka chini hadi juu na unajumuisha vipengele vingi vya kisasa.

Uwekaji miti ulioboreshwa katika Reiser4 unapatikana kwa kutumia kuandika kutangatanga na kuahirisha ugawaji wa vizuizi hadi data ya kumbukumbu ihamishwe (kama ilivyofanywa katika XFS). Usanifu wa Reiser4 ulijumuisha usaidizi wa programu-jalizi unaobadilika (kuongeza utendakazi wa ukandamizaji au usimbaji fiche, kwa mfano), lakini wazo hili lilikataliwa na jumuiya ya Linux, ambayo iliamini kuwa vipengele hivi vya juu vilimilikiwa na mfumo mdogo wa faili (VFS).

Baada ya kushtakiwa kwa mmiliki wa Namesys na wakati huo huo mwandishi wa ReiserFS, shughuli zote za kibiashara karibu na Reiser4 zilisimamishwa.

Mfumo wa nne wa faili uliopanuliwa

Mfumo wa nne wa faili uliopanuliwa (ext4fs) ni maendeleo zaidi ya ext3fs. Ext4fs ilikusudiwa kama mbadala wa ext3fs, kuwa na moja kwa moja na nyuma sambamba, lakini inajumuisha maboresho mengi (ambayo mengine yanavunja utangamano huu). Kwa mazoezi, unaweza kuweka kizigeu cha ext4 kama ext3 na kinyume chake.

Kwanza, ext4fs ni mfumo wa faili wa 64-bit na usaidizi wa kiasi kikubwa (hadi exabyte 1). Inaweza pia kutumia viwango, lakini katika kesi hii inapoteza utangamano na ext3fs. Sawa na XFS na Reiser4, ext4fs huchelewesha uwekaji wa kizuizi kwenye diski na hutokea inapohitajika (ambayo hupunguza kugawanyika). Logi pia huhifadhi hundi yaliyomo kwa kuegemea zaidi. Badala ya B + - au B * - miti, aina maalum ya B-mti hutumiwa, kinachojulikana. Mti wa H, ambayo inaruhusu subdirectories kuwa na mengi zaidi ukubwa mkubwa(katika ext3 ni mdogo kwa 32Kb).

Ingawa mgao wa uvivu unapunguza kugawanyika, baada ya muda mfumo wa faili ukubwa mkubwa bado vipande. Ili kutatua tatizo hili, shirika la e4defrag lilitengenezwa, ambalo linaweza kutumika kupotosha faili tofauti au mfumo mzima wa faili.

Tofauti nyingine ya kuvutia kati ya ext4fs na ext3fs ni usahihi wa alama za nyakati za faili. Katika ext3, kipimo cha muhuri wa muda ni sekunde moja. Ext4fs inaonekana kwa siku zijazo: kwa ukuaji unaoendelea wa kasi ya kichakataji na violesura, kipimo sahihi zaidi kinahitajika. Kwa hivyo, nanosecond moja ilichukuliwa kama kipimo cha wakati.

Ingawa ext4fs imejumuishwa ndani Linux kernel katika toleo la 2.6.19, inaweza tayari kuchukuliwa kuwa imara. Mfumo huu, ambao bado unaendelezwa, ndio mahali pa kuanzia kwa mfumo wa faili wa uandishi wa siku zijazo katika Linux.

Kuendelea

Mifumo ya faili iliyochapishwa hutoa uaminifu na ulinzi dhidi ya uharibifu wa data katika tukio la ajali ya mfumo au kupoteza nguvu. Kwa kuongeza, muda wa kurejesha katika mifumo hiyo ni kasi zaidi kuliko katika mifumo ya faili za jadi (kwa mfano, wale wanaotumia fsck). Uundaji wa mbinu mpya za ukataji miti unategemea uzoefu wa zamani kutoka kwa JFS na XFS, na katika utafutaji wa algoriti na miundo mipya. Sio wazi kabisa jinsi mifumo ya faili iliyochapishwa itabadilika katika siku zijazo, lakini manufaa yao ni dhahiri, na tayari yamekuwa kiwango kipya cha mifumo ya faili.

Katika kazi ya kawaida mfumo wa faili, mabadiliko yote kawaida hufanywa mara moja kwenye diski (au tuseme, kwa cache ya diski kwenye OS, lakini hii sio muhimu katika muktadha huu).


Shughuli nyingi zinahitaji mabadiliko ya wakati mmoja kwa miundo kadhaa ya mfumo wa faili ( metadata. Mfano rahisi: wakati wa kuunda hardlink, unahitaji kuongeza wakati huo huo idadi ya viungo kwenye ingizo na kubadilisha yaliyomo kwenye saraka ambayo kiungo kinafanywa.Huwezi kufanya moja tu ya shughuli hizi - yaliyomo kwenye mfumo wa faili. itakuwa si sahihi.


Wakati wa operesheni ya kawaida ya mfumo wa faili, operesheni ngumu kama hiyo inafanywa kwa ukamilifu, isipokuwa msimbo wa utekelezaji wa mfumo wa faili una makosa muhimu. Hata hivyo, ikiwa kuna reboot isiyo ya kawaida au kushindwa kwa vifaa hali hii ni kweli sana.


Kwa kuwa baada ya kuwasha upya hatujui ni shughuli gani zilifanywa, ni nini ambacho hakijakamilika, lakini tunajua tu kwamba diski haikutolewa kwa usahihi (katika kesi hii kinachojulikana kama bendera chafu imewekwa upya), tunahitaji kuchambua mfumo wa faili. disk nzima, na hivyo Hivyo, kutambua makosa yote katika mfumo wa faili na kurekebisha yao. Kwa kawaida, si mara zote inawezekana kufanya hivyo kwa moja kwa moja (akili isiyo ya kawaida, ole, hakuna mtu bado ameweza kufundisha uwezo wa clairvoyance), kwa hiyo fsck.ext2 sawa baada ya upya upya usio wa kawaida inaweza kuhitaji uingiliaji wa mwongozo.


Wale ambao wamekimbia fsck kwenye kizigeu cha 100-200 G (ambayo ni mbali na isiyo ya kawaida siku hizi) wanaelewa vizuri kwamba kuna furaha kidogo katika hili. Wasimamizi wa safu nyingi za terabyte, kwa dakika ya ziada ya wakati wa kutofanya kazi wanaweza "kwa bahati mbaya" kupasua kichwa chao kwa neno fsck, kunyakua valerian au kuuliza wasiape kwa maneno kama hayo mbele yao.


Ili kutatua tatizo hili, wazo zuri lilivumbuliwa muda mrefu uliopita (ikiwa kuna mtu anajua lini na nani, tafadhali niambie) - mwanzoni andika maelezo fulani ya operesheni iliyopangwa kwa diski, na kisha tu utekeleze. Kisha itawezekana si kupima diski nzima kwa usahihi, lakini tu kujizuia kutazama yaliyomo kwenye logi, na, ikiwa operesheni haikukamilika, kisha uirudishe. Ili kufanya hivyo, huna haja ya kukimbia fsck - hii inafanywa na dereva wa mfumo wa faili yenyewe.


Kwa muhtasari, jambo pekee ambalo mfumo wa faili uliochapishwa unaweza na unapaswa kufanya ni kuokoa wakati kwenye fsck. Ipasavyo, uthabiti wa metadata ya mfumo wa faili umehakikishwa, hakuna zaidi, sio chini.


Bei ya raha hii: tunayo eneo ndogo la diski (kawaida hupimwa kwa makumi ya megabytes), ambalo linachangia. mzigo wa juu, hiyo ni utendaji wa juu, inayopimwa kwa idadi ya shughuli za i/o kwa sekunde, inapungua. Naam, bila shaka, kidogo hutumiwa nafasi ya diski, kwamba katika enzi ya bei za diski< 1$/гигабайт никого не волнует.

Uwekaji Data

Kama ulivyoona, shughuli zilizo na metadata kawaida huandikwa kwenye logi. Walakini, unaweza kufanya vivyo hivyo na data.


Kwa kadiri ninavyojua, ext3 pekee iliyo na data=journal parameta inaweza kufanya ukataji wa data kwenye Linux.


Kwa kweli, ukataji wa data katika hali nyingi hupunguza utendaji kwa kiasi fulani (lakini sio zote; kwenye wavuti ya IBM kuna matokeo ya jaribio kulingana na ambayo kutumia ukataji wa data kwa mifumo ya faili ambayo hifadhidata ziko inaweza hata kuongeza utendakazi).


Chombo hiki pia haihakikishii usalama wa data, hata hivyo, kutokana na uzoefu wangu uzoefu wa kibinafsi kutumia ext3 with data=journal ndio mfumo wa faili unaotegemewa zaidi.

Utendaji

Msomaji makini atakuwa amegundua kuwa kutumia jarida hutengeneza mzigo usio na usawa kwenye diski - eneo moja ndogo (ikilinganishwa na saizi ya jumla ya mfumo wa faili) huchangia utendakazi usio na uwiano.


Kuna masuluhisho mawili ya kuvutia sana:
Kwanza, unaweza kuhamisha jarida kwenye diski tofauti (mifumo mingi ya faili inaruhusu hii), kwa sababu hiyo, sisi kimsingi tunafanya mara mbili utendaji kwa kuongeza diski moja tu. Inaonekana nzuri sana wakati utendaji wa safu kubwa ya RAID inapoongezeka kwa njia rahisi na ya bei nafuu.


Pili, unaweza kutumia kadi maalum kumbukumbu isiyo na tete (kwa mfano UMEM, ambayo, ole, sijaona kuuzwa nchini Urusi), ambayo pia ni ya haraka zaidi kuliko diski za kawaida (lakini zina ukubwa mdogo wa kumbukumbu).


Pia kuna suluhisho la kupindukia ambalo sijajaribu bado - tengeneza jarida kwenye kifaa cha kuzuia kilicho kwenye kumbukumbu. Bila shaka, baada ya kuanzisha upya, mfumo huo wa faili utahitaji kuundwa upya, lakini kwa data ya muda hii inaweza kutoa ongezeko la kuvutia na linaloonekana katika utendaji. Hasa wakati wa kuweka data, sio metadata tu.

Mbinu

Kama ulivyoona tayari, gazeti hilo linaweza pia kuongeza kasi. Kuna hila chache zaidi ambazo mfumo wa faili wa uandishi wa habari unaweza kutumia ili kuongeza utendaji zaidi:

  • uundaji wa faili iliyochelewa (wakati wa kuunda faili, usifanye mara moja kuingia kwenye saraka, lakini uihifadhi tu kwenye jarida kwa muda fulani; labda faili ni ya muda na itafutwa mara moja);
  • ugawaji wa faili uliochelewa (usitengeneze nafasi ya kimwili hata kwa kizuizi cha kwanza cha faili mpaka unahitaji kuandika angalau block moja), inawezekana kabisa kwamba mtumiaji atabadilisha ukubwa wa faili kwanza, na kisha tu kuanza kuandika data. Matokeo yake, kugawanyika kunapungua (ikiwa programu hutumia hila hii);

Hizi ndizo rahisi zaidi, kuna tricks nyingi zaidi ambazo huruhusu mfumo wa faili uliochapishwa kufanya kazi kwa kasi zaidi kuliko kawaida, huku ukibaki kuaminika zaidi.

Mapungufu

Kama nilivyosema tayari, logi sio panacea, na data haihifadhi hata kidogo. Walakini, watu wengi hupata hisia za uwongo za usalama kwa kutumia mifumo ya faili iliyochapishwa - bila shaka, unaweza kuwasha tena mashine kwa kuiweka upya, na haitaapa hata wakati wa kupakia!


Ndio, hataapa. Na itakuwa sahihi kabisa kutoka kwa mtazamo wa baadhi fsck faili mfumo. Ni data pekee ambayo bado inaweza kusalia na chakavu.


Kwa mfano, reiserfs katika hali kama hizi zinaweza kuacha takataka kwenye faili zilizobadilishwa (data ya kiholela ambayo ilikuwa kwenye kizuizi kilichotengwa kwa faili). Ambayo, kwa asili, inamaanisha uvujaji wa habari unaowezekana sana.


XFS hufanya kazi kwa usahihi zaidi - huandika vizuizi kama sifuri. Ambayo mara nyingi huwashtua watumiaji. Hasa mashabiki wa reiserfs, ambayo haitaandika zero.


Matokeo yake, reiserfs ni zaidi uwezekano itaokoa marekebisho, na XFS itafanya bora zaidi kuzuia takataka katika faili na uvujaji wa data - mikakati tofauti kidogo. Matokeo ni sawa - data inaweza kupotea, na hata hautajua kuihusu. Mpaka utakapokutana na faili ambayo hakuna mtu aliyegusa kwa mwaka (ilikuwa kwenye kumbukumbu), na ambayo ghafla inageuka kujazwa na takataka au zero.


ext3 iliyo na ukataji wa data kuwezeshwa haina shida na huduma kama hizo. Walakini, inapoteza dhahiri katika utendaji.


Kwa njia nzuri, shida hizi zote zinaweza (na zinapaswa) kuepukwa kwa kununua UPS, na ni bora kutumia ukataji miti kama ngazi ya ziada kuegemea na njia ya kuongeza tija.

Mstari wa chini

Mfumo wa faili uliochapishwa hurahisisha usimamizi, lakini sivyo dawa ya uchawi kutoka kwa upotezaji wa data kwa sababu ya kuwasha tena kusiko kawaida. Kwa hivyo, ikiwa hutumii UPS na usifanye Backup, basi mapema au baadaye data yako itafunikwa na bonde la shaba, ambalo SIKUTAKI kwa dhati. Na ikiwa unataka, unaweza kutumia mifumo ya faili iliyochapishwa kama njia ya kuongeza tija.


Nani alinunua UPS Na chelezo hufanya data hiyo iwe shwari kila wakati


(C) Denis Smirnov Novemba 5, 2004
Kuchapisha hati hii kwenye rasilimali nyingine za mtandao, na pia katika machapisho yaliyochapishwa, hakuruhusiwi.

Tathmini hii itachunguza kwa undani masuala ambayo yalijadiliwa juu juu au la katika makala iliyotangulia. Ningependa kusema mara moja kwamba mfumo wa diski ya NT ni ngumu sana kwamba tunaweza kuzungumza juu yake kwa muda mrefu - na makala hii haitaelezea kila kitu kinachoweza kusemwa. Kwa hivyo hili ni jaribio tu la kujibu kwa njia iliyoratibiwa na ya kina maswali yote ambayo uchapishaji uliopita uliibua. Sehemu ya 4: Uandishi wa Habari wa NTFS

Maelezo ya ukweli rahisi kwamba NTFS ni mfumo wa uandishi wa habari uliwatumbukiza mashabiki wengi wa faili na mifumo mingine ya uendeshaji katika hasira ya dhati. Katika barua nyingi nilizoandikiwa, NTFS iliitwa mfumo wa uandishi wa habari au hata bila uandishi wowote, tofauti na faili nyingi za msingi. Mifumo ya Unix. Pia nilipokea barua nyingi zinazoonyesha kushindwa kwa NTFS mbaya, ambayo sikuweza kurejesha - data ilipotea. Katika sehemu hii, nitajaribu, kwa uwezo wangu wote na ufahamu, kuelezea falsafa ya ukataji miti na zana za ulinzi wa kushindwa kwa NTFS, na pia kuelezea sababu za kushindwa mbaya. Nitajaribu kuhalalisha mbinu ya Microsoft, ambayo ilifanya kila kitu kama ilivyofanya - angalau nitaelezea sababu za ufumbuzi wa kiteknolojia kutekelezwa na maelewano ambayo timu ya maendeleo ya NTFS ilipaswa kufanya.

Shughuli zilizoandikwa

Kwanza kabisa, ningependa kuzungumza juu ya shughuli gani haswa zimeingia. Ni dhahiri kabisa kuwa faili kamili ya kutendua ambayo inaweza kurudi nyuma kila kitu operesheni haiwezekani kabisa kutoka kwa mtazamo wa kasi na kutoka kwa mtazamo wa akili ya kawaida. Ndiyo, ukataji miti kama huo ungewezesha kupata kiasi kikubwa cha data - kwa mfano, wakati wa kubatilisha megabaiti tatu katikati ya faili, tunaweza kwanza kuhifadhi data mpya kwenye logi, kisha kubatilisha megabaiti tatu zilizopita za faili. hapo, na kisha tu fanya shughuli na data halisi. Njia hii ingehakikisha uhakika kamili juu ya hatima ya habari - tutaweza kila wakati kuelewa ni sehemu gani ya data ambayo tayari imeandikwa kwa diski, na ambayo iko katika hali yake ya asili, sio iliyosasishwa. Ina drawback moja tu ya kawaida - uendeshaji mdogo wa utendaji: kuandika megabytes tatu kwenye diski, tutalazimika kufanya shughuli mbalimbali za disk kwa kiasi kikubwa mara tatu - megabytes tisa. Ndiyo, kamili ukataji miti pia hutumiwa - lakini haswa wakati wa kufanya kazi na hifadhidata. Ikiwa unataka kutoa kumbukumbu kamili ya data yoyote, unaweza kusakinisha MS SQL au hata Oracle, ambayo haitatumia vifaa vya mfumo wa faili kabisa na itahakikisha usalama wa data yako chini ya hali yoyote inayofaa. Kwa wafuasi wa uandishi kamili wa mfumo wa faili, ninaweza kujibu jambo moja: uamuzi wa kupunguza kasi ya shughuli za kuandika kwa mara tatu, kwa maoni yangu, ni ujasiri sana kwa matumizi ya lazima - wote kwenye kompyuta za nyumbani na kwenye seva.

Mbinu ya watengenezaji wa NTFS ilikuwa tofauti kimsingi. Yaonekana kauli mbiu kuu haikuwa “kutegemewa kwa gharama yoyote ile,” bali “utendaji thabiti.” Kuingia ni rahisi haipaswi ilikuwa kuingilia utendakazi wa mfumo wa faili. Hatua ya kwanza ya kimantiki ni kughairi uwekaji kumbukumbu kamili kama jambo lisilokubalika kabisa kutoka kwa mtazamo wa utendaji. NTFS hutumia uandishi wa habari miundo ya kimantiki, na sio data ya mtumiaji - kwa hivyo kifungu kwamba usalama data haijahakikishiwa, lakini, hata hivyo, hali sahihi ya mfumo yenyewe itadumishwa. Ukweli kwamba NTFS haichapishi data ya faili inaongoza kwa vitendo kwa hali moja ya upotezaji wa data - katika kesi hiyo hiyo ya dhahania ya kuandika megabytes tatu, ikiwa mchakato wa uandishi utashindwa, haitawezekana kuamua ni sehemu gani ya data iliyoandikwa na. ambayo ilibaki bila kubadilika. Uendeshaji ambao hata hivyo umeingia na mfumo ni shughuli na miundo ya mfumo yenyewe, yaani, na faili na saraka: kuongeza faili, kubadilisha jina, kusonga, kuunda na kufuta (kufungua nafasi ya bure). Shughuli za kugawanyika pia zimeingia - yaani, kusonga vipande vya faili. Kwa neno moja, kila kitu chemsha bongo shughuli zimeingia.

Wavivu wa kuandika na kukagua vituo vya ukaguzi

Inajulikana kuwa mfumo wowote wa kisasa wa kuongeza kasi shughuli za faili inalazimika kutumia caching, ikiwa ni pamoja na caching ya shughuli za kuandika. Kinachojulikana kama uandishi wa uvivu ni kanuni ya caching ambayo data iliyokusudiwa kuandikwa kwa diski huhifadhiwa kwenye kashe kwa muda na kuokolewa tu kwa mwili wakati wa bure kutoka kwa shughuli zingine. Kuandika kwa uvivu kunaboresha kwa kiasi kikubwa ufanisi shughuli za diski, kwa kuwa caching vile vikundi shughuli nyingi katika moja - hii ni ya ufanisi hasa ikiwa kurekodi kunafanywa katika maeneo ya compact ya disk. Faida nyingine ya uandishi wa uvivu ni kwamba hauingilii na shughuli muhimu zaidi za kusoma, na huandika tu wakati mfumo ukiwa huru na hauitaji ufikiaji wa diski kwa mahitaji mengine. Jinsi ya kupatanisha uandishi uliochelewa na ukataji miti? Hili ni swali gumu, kwani kuahirisha kurekodi hufanya hasara inayowezekana data iliyokuwa kwenye foleni ya kurekodi kimwili na hakuwa na muda wa kuandikwa kwenye diski kabla ya kushindwa. Jambo lisilo la kufurahisha zaidi hapa sio hata upotezaji wa data, lakini ukweli kwamba kuna kutolingana kwa wakati wa kurekodi: maeneo mengine ya huduma yanaweza kusasishwa, lakini maeneo mengine yanayohusiana bado hayawezi, kwani sasisho lao linaweza kucheleweshwa kwa sekunde kadhaa. na halitafanyika kwa sababu ya kushindwa.

NTFS inashinda matatizo haya kwa kuunganisha kimaana uandishi wavivu na uandishi wa habari. Unapojaribu kuanza operesheni iliyoingia, nia imeandikwa mara moja kwa logi - kwa mfano, kufuta faili. Hii hutokea bila kuchelewa - katika hatua hii, uandishi wa uvivu haufanyi kazi: hii ni gharama ya uwepo wa magogo ambayo haiwezi kuepukwa. Lakini shughuli nyingine zote tayari zinaendelea kwa hali ya kuchelewa - yaani, zinaweza kuchukua sehemu (labda, kwa kuongeza, na kwa utaratibu mbaya) au hazifanyiki kabisa. Operesheni iliyocheleweshwa tu, operesheni ambayo ni tofauti na maandishi rahisi, ni kuandika kwa logi juu ya kukamilika kwa mafanikio ya shughuli za hapo awali, zinazojulikana. kuangalia Point. Katika vipindi fulani - kwa kawaida kila sekunde chache - mfumo lazima uondoe kabisa shughuli zote zilizochelewa kwenye diski. Baada ya operesheni hii kukamilika, yafuatayo yameandikwa kwa logi: nukuu rahisi zaidi- hatua ya kudhibiti - ambayo inaonyesha kuwa Wote shughuli za awali zilifanyika kwa usahihi katika ngazi zote - kimantiki na kimwili.

Njia hii ya operesheni - kwa msaada wa rekodi na vituo vya ukaguzi - kwa upande mmoja, bado inathibitisha kamili operesheni sahihi ukataji miti, na kwa upande mwingine kivitendo kabisa haiongoi kupungua kwa kazi: ukaguzi unafanywa, karibu mara moja, na kuandika kwa logi kuhusu kuanza kwa operesheni inafanana na gharama za kazi kwa kuandika data yenyewe bila caching kuchelewa. Rekodi halisi, iliyofanywa baadaye, katika idadi kubwa ya kesi haiingiliani na shughuli zozote na haidhuru utendaji wa mfumo.

Masuala ya Uvivu ya Kukata Magogo: Dhana ya Habari Nakala

Nadharia nzima iliyoelezwa hapo juu ni nzuri kabisa, lakini inaweza, hata hivyo, kusababisha matokeo mabaya sana ikiwa hautazingatia mambo machache zaidi ambayo yatajadiliwa.

Fikiria kesi hii: tunafuta faili. Kumbukumbu ilipokea ingizo - "faili N inafutwa." Cache iliyochelewa basi ilitaka kwanza kuweka alama kuwa nafasi ya faili imekuwa huru, na kisha tu kuondoa faili kutoka kwa muundo wa MFT na saraka. Hebu sema diski iko katika matumizi ya kazi, na faili nyingine imeandikwa mara moja kwa nafasi ya bure. Kwa wakati huu kushindwa hutokea. Wakati buti za mfumo, inakagua logi na kuona operesheni ambayo haijakamilika "faili N imefutwa" - au tuseme, kama nilivyoelezea hapo juu, sio operesheni ambayo haijakamilika, lakini operesheni tu bila ukaguzi baada ya hapo, ambayo inaonyesha kutokamilika kwake. Awamu inayofuata itakuwa "kurudisha nyuma operesheni" - ambayo ni, kurejesha faili. Shida moja ni kwamba nafasi iliyochukuliwa na faili tayari ina data zingine.

Ili kuzuia hali kama hizi, mfumo unaotaka kujiwekea kikomo kwa ukataji miti kimantiki unalazimika kutumia kanuni ya "nafasi inayokaliwa kwa muda." Nafasi iliyoachwa na kitu au rekodi juu yake haijatangazwa kuwa huru hadi shughuli zote kwenye miundo ya kimantiki zimekamilika kimwili. Utaratibu huu katika NTFS, inaonekana, haijasawazishwa hata na mipangilio ya vituo vya ukaguzi, kwa kuwa wakati wa kawaida wa kufungua nafasi iliyochukuliwa kwa muda ni karibu sekunde 30, lakini vituo vya ukaguzi hutokea mara nyingi zaidi.

Utaratibu huu hautumiwi tu wakati wa kufuta faili, lakini pia kwa shughuli mbali mbali: kanuni ya uandishi wa habari - kitu kilichoondolewa au kuhamishiwa mahali mpya lazima kiweze kurudisha nyuma "kuondoka" kwake - ambayo ni, data. iliyorejelewa na miundo ya kimantiki ya kitu kinachofutwa au kusongeshwa, ni muhimu kukihifadhi kwa muda kama nafasi inayokaliwa (diski/saraka). Hii ni hatua nyingine kwa NTFS kuelekea uandishi kamili, ambapo jarida maalum habari faili Data ya maeneo yaliyoachiliwa yenyewe, ambayo hayajaharibiwa kimwili, hutumikia.

Naam, sawa, unasema, kila kitu ni cha ajabu sana - lakini kwa nini basi sehemu za NTFS bado zinaruka? .. Sasa nitajaribu kuelezea kanuni zinazoongoza kwa ukweli kwamba mfano ulioelezwa hapo juu unaweza kuhakikisha urejesho kamili wa miundo ya mantiki.

  • Hifadhi ngumu, ndani hali ya kawaida, lazima aandike nini hasa na mahali ambapo aliambiwa kuandika na mfumo wa uendeshaji. Kanuni hii inakiukwa ikiwa mfumo una kitanzi kisichoaminika, processor, kumbukumbu au mtawala - na hii ndiyo sababu ya kawaida ya kushindwa kwa NTFS. Hii itakusaidia: processor isiyo na waya, ghali (ubora wa juu) kumbukumbu, ubao mzuri wa mama na itifaki ya UDMA, ambayo hutoa udhibiti wa makosa na urejeshaji katika sehemu ya mtawala-diski.
  • Gari ngumu, katika kesi ya ajali, kukatika kwa umeme au kupokea ishara ya "rejesha" kutoka kwa mtawala (ikiwa ni kuwasha tena kwa ghafla. ubao wa mama) lazima kamilisha kwa usahihi kurekodi data ya sasa sekta ya kimwili, ikiwa moja ilikuwa ikiendelea wakati wa ajali. Hali ya kati ya sekta hiyo hairuhusiwi. Watakusaidia anatoa ngumu za kisasa, ambayo inaweza kutekeleza operesheni hii hata katika tukio la kushindwa kwa nguvu kamili - wana nishati ya kutosha iliyohifadhiwa katika capacitors, na mantiki yao imeundwa kuishi kwa usahihi katika tukio la kushindwa kwa nguvu wakati wa kurekodi.
  • Disk lazima iandike mara moja data iliyotumwa na bendera ya "usihifadhi". Ukweli ni kwamba disks nyingi za kisasa au watawala hutoa kurekodi kuchelewa. Metafile za NTFS zinasasishwa katika hali ya kuandika mara moja, na kidhibiti/diski lazima zizingatie mahitaji haya.
  • HDD lazima hakikisha kwamba data iliyoandikwa inasomwa. Ikiwa haiwezekani kusoma data, ishara ya "kosa" inatolewa. Diski hana haki rudisha data yenye makosa (labda sio sahihi kwa kiasi) bila kuashiria kosa. Wote kisasa ngumu diski zina ukaguzi wa sekta na ufuate kabisa mantiki hii ya tabia.

Utimilifu mkali wa mahitaji haya kikamilifu inahakikisha uendeshaji wa kuaminika wa NTFS. Muundo wa mfumo wa faili hautakuwa na makosa makubwa hata baada ya kushindwa. Baadhi ya makosa madogo bado yanaonekana kutokana na ukweli kwamba mantiki ya ukataji miti mara nyingi hujaribu kukamilisha shughuli ambazo hazijakamilika - kwa mfano, kufuta faili - wakati uaminifu kamili ungehakikishwa tu na urejeshaji wa nyuma usio na masharti wa kila kitu ambacho ni baada ya ukaguzi wa mwisho. Ukiukaji mdogo unaotokana na majaribio haya huchukuliwa kuwa ni habari isiyohitajika ya usalama na haileti hatari yoyote kwa data - ni duni kabisa. Kiini cha kutofautiana huku mara nyingi huwa katika ukweli kwamba data "ya ziada" kuhusu njia hizo za kufikia ambazo mfumo hauhitaji tena hubakia kwenye diski. Kuziondoa ni suala la kuboresha utendakazi, kama vile kugawanyika, kwa hivyo uwepo wao sio kosa. Ikiwa matatizo makubwa, ya kweli yanagunduliwa, dereva yenyewe ataweka bendera ya kiasi "chafu", ambayo itaagiza mfumo kuangalia kiasi wakati ujao unapowekwa.

Ni kwa majuto makubwa kwamba ni lazima niseme kwamba idadi kubwa ya makosa mabaya ya NTFS husababishwa na vifaa ambavyo havikidhi mahitaji haya ya msingi. Ndio, ninaelewa kuwa hakuna kitu kama kuegemea kabisa. Lakini Microsoft imechukua njia ya mgawanyiko wa kazi - shirika haliwajibiki kwa kuaminika kwa vifaa vyako. Kompyuta yangu ni 70% haijajumuishwa katika orodha ya vifaa vinavyoendana na Windows 2000, na hiyo inaweza kusema kuhusu karibu mashine yoyote halisi inayofanya kazi katika ukubwa wa USSR ya zamani. Hii inatumika hasa kwa wale ambao wanapenda overclock kompyuta. Kumbuka mara moja na kwa wote: kuna uwezekano mkubwa wa kuharibu NTFS katika mwaka wa kwanza wa operesheni ikiwa processor yako ni 333, overclocked hadi 415. Na hata zaidi ya mara moja ... Samahani sana, lakini hii ni kweli kweli. Kutoka kwa kushindwa yoyote sahihi NTFS italinda kompyuta yako, lakini mfumo utazuia tu data isiyo ya kawaida kuandikwa kwa sekta ya boot (nakala ambayo, kwa njia, imehifadhiwa mwishoni mwa kizigeu) na MFT. haina bima. Samahani. Sehemu ya 5: Uvamizi wa Programu

Uandishi wa habari wa NTFS, kama ilivyoelezwa hapo awali, hauhakikishii kwa njia yoyote kutofaulu na upotezaji wa habari ya mtumiaji. Wakati huo huo, NT inatoa chaguzi kadhaa za kuunda mifumo ambapo, chini ya hali nzuri, kila kitu kinahakikishiwa. Unaweza pia kutumia diski zaidi kutoa sio kuegemea zaidi, lakini, kinyume chake, kuongezeka kwa kasi- au zote mbili kwa wakati mmoja. Mipangilio kama hiyo itajadiliwa katika sehemu hii ya kifungu.

RAID (Redundant Array of Inexpensive Disks) - safu isiyo ya kawaida ya disks za gharama nafuu. Teknolojia inayojumuisha matumizi ya wakati mmoja kadhaa vifaa vya diski kutoa sifa za kuaminika au kasi ambazo hazipatikani kwenye anatoa za kibinafsi.

Windows NT inasaidia viwango vitatu vya RAID katika kiwango cha programu (kinachojulikana mikakati ya kufanya kazi safu za diski), sifa fupi ambazo zimefupishwa katika jedwali lifuatalo.

Utendaji ikilinganishwa na diski za kawaida Kuegemea Jumla ya nafasi ya diski
UVAMIZI 0
Anatoa sambamba
Maboresho makubwa ya utendakazi kutokana na nakala za diski.
Kinadharia, chini ya masharti ya shughuli fulani (kwa mfano, mstari), kasi ya kusoma / kuandika huongezeka mara nyingi zaidi ya idadi ya diski zinazotumiwa kwenye mfumo.
Kwa kweli, ongezeko la utendaji ni chini - 50% -90% ya idadi hii, ambayo bado ni muhimu sana.
Imepungua - Kushindwa vibaya kwa moja ya viendeshi kutasababisha kupoteza data.Sawa na jumla ya wingi wa diski zinazounda safu
UVAMIZI 1
Disks za kioo
Kuongezeka kwa uaminifu kwa sababu ya kurudiwa kwa habari.
Kasi ya kusoma kinadharia huongezeka kwa sababu inayolingana na idadi ya diski. Algorithm inayotekelezwa katika NT sio bora na husababisha ongezeko la kawaida zaidi la utendaji.
Kasi ya kuandika imepunguzwa, hasa katika kesi ya watawala wa disk ambao hawana kazi nyingi kikamilifu.
Kupoteza data kunawezekana tu ikiwa disks zote zinashindwa mara moja au sehemu sawa ya habari kwenye disks zote imeharibiwa.Inabakia bila kubadilika (nafasi inayopatikana ya diski haiongezeki kwa sababu ya diski za ziada).
UVAMIZI 5
Disks sambamba na usawa
Mchanganyiko wa RAID 1 na RAID 0 ni matumizi bora zaidi ya disks za ziada.
Kasi ya kusoma imeongezeka kwa njia sawa na RAID 0, lakini idadi ya disks zinazoathiri utendaji inapaswa kupunguzwa kwa moja. Wale. Viendeshi vitatu vya RAID 5 vina kasi ya kusoma sawa na viendeshi viwili vya RAID 0.
Kasi ya uandishi ni ya juu kuliko ile ya kila diski kibinafsi, lakini kwa ujumla ni ya chini.
Kupoteza data kunawezekana ikiwa diski mbili kwenye seti zitashindwa. Kushindwa kwa moja ya diski kwa kiasi kikubwa hupunguza kasi ya uendeshaji wa safu nzima na ni, kwa kweli, hali ya dharura, ingawa bila kupoteza data.Kuongezeka.
Hasara kutoka kwa jumla ya kiasi cha diski ni kiasi cha diski moja.
Kwa mfano, hifadhi tano za GB 10 hutoa RAID 5 ya 40 GB.

Wacha tuangalie kwa karibu kila aina ya RAID.

RAID 0 (anatoa sambamba)

Mkakati huu unalenga tu kuongeza tija. Disks kadhaa huhifadhi sehemu za muundo wa disk, ambazo hukusanywa kwa kiasi kimoja tu wakati disks zote katika safu zipo.

Rahisi zaidi Utekelezaji wa RAID 0 kati ya mbili, kwa mfano, disks - dalili kwamba kila sekta ya kwanza ya kiasi (au kiasi kingine chochote cha habari) iko kwenye disk ya kimwili A, na kila pili iko kwenye diski B. Mkakati huu mkali hufanya iwezekanavyo epuka miundo yoyote ya ziada ya kuhifadhi maelezo kuhusu data iko wapi. Kasi ya kusoma na kuandika ni sawa na inategemea idadi ya diski:

  • Utendaji wa shughuli za kufanya kazi na data iliyopatikana kwa nasibu hufuata mpango ufuatao: yote inategemea uwezekano kwamba diski ambayo tunataka kuandika habari inayofuata ni bure na iko tayari kutimiza ombi letu mara moja. Kwa mfano, RAID 0 ya disks mbili: wakati operesheni inafanywa kwenye moja ya disks na amri ya ziada kufanya kazi na mfumo wa diski, uwezekano kwamba ili kutekeleza amri itabidi tusumbue diski ya sasa ya bure ni 50% - hii inalingana na ongezeko la jumla la utendaji. shughuli za nasibu mara moja na nusu. Ikiwa, kwa mfano, safu ya disks kumi hutumiwa, basi uwezekano wa operesheni yoyote kupiga gari tayari tayari ni 10% - yaani, utendaji huongezeka mara tisa. Kwa wapenzi wa nadharia kali ya uwezekano, ningependa kutambua kuwa mahesabu kama haya hayazingatii mambo kadhaa. kazi kweli mifumo, lakini nambari, hata hivyo, zina mpangilio huu haswa.
  • Shughuli za mfululizo - kusoma au kuandika sehemu zinazofuatana - ni karibu kila mara n kwa kasi zaidi kuliko kwenye diski tofauti ya kimwili, ambapo n ni idadi ya disks katika kuweka. Hii hutokea kwa sababu uwezekano wa operesheni inayofuata kuishia kwenye diski ya bure ni 100% - baada ya yote, shughuli zinafanywa kwa vitalu mfululizo ambavyo vinatawanyika sawasawa kwenye diski.

Kama hitimisho, RAID 0 kwa hali yoyote huongeza sana utendaji wa shughuli za mstari, na kwa kuongezeka kwa idadi ya diski zilizojumuishwa kwenye seti, kasi ya kufanya kazi na data ya nasibu huongezeka sana. Kwa kazi yenye ufanisi na mfumo wa diski katika hali ya RAID 0, hali ya kufanya kazi nyingi ya mtawala ni muhimu tu, na ikiwezekana hata watawala tofauti, kutoa ufikiaji wa anatoa tofauti. Hali inayohitajika kazi kama hiyo IDE interfaces ni madereva wa Bus-Mastering. Windows 2000 ina viendeshi vilivyojengwa ndani ambavyo vinawezesha hali hii kiotomatiki kwa vidhibiti vyote vya kawaida vya IDE; kwa NT4 unaweza kuhitaji. madereva ya ziada au kubadilisha funguo za usajili.

Kuegemea kwa RAID 0 ni chini - kutofaulu kwa kila diski ni kutofaulu mbaya, kama vile kutofaulu kwa gari katika kesi ya sehemu za kawaida.

Uwezekano wa kushindwa kwa mfumo kwa ujumla huongezeka tu - disks zaidi unayotumia, juu ya uwezekano wa kushindwa kwa angalau mmoja wao na, ipasavyo, kupoteza baadhi ya sehemu ya data ya kiasi.

RAID 1 (anatoa za kioo)

Njia rahisi zaidi ya kuhakikisha usalama wa data ni kuunda nakala ya diski mbili. Uandishi unafanywa kwenye diski zote mbili mara moja, ambayo inasababisha kupungua kwa mchakato huu, wakati usomaji unafanywa kutoka kwa diski ambayo kwa sasa ni ya bure - ikiwa, bila shaka, mfumo unaweza kutekeleza kwa ufanisi usomaji huo (Bus- Ustadi unahitajika). Algorithm iliyotekelezwa katika NT, kwa bahati mbaya, sio sawa kabisa na inaongoza kwa ongezeko la kawaida zaidi la kasi ya kusoma.

Utata fulani wa operesheni ya RAID 1 hali ya programu Tatizo ni kwamba mara nyingi mfumo hauwezi kuwa na uhakika kabisa kwamba data kwenye disks mbili ni sawa. Uendeshaji wa kupatanisha disks mbili za kimwili baada ya kushindwa kubwa inaweza kuchukua masaa na kuwa haifai sana, kwa hiyo unapaswa kutumia programu RAID 1 kwa makini sana. Ikiwa unaamua kuongeza safu za disk mara kadhaa tu kwa ajili ya kuaminika, unaweza kutaka kununua vifaa Kidhibiti cha RAID, ambayo, zaidi ya hayo, itahakikisha kwamba disks zilizoshindwa zinabadilishwa wakati wa kwenda na itafuatilia maingiliano ya data yenyewe.

Kwa hali yoyote, hata kushindwa kabisa kwa moja ya disks haiongoi kupoteza data, kwani disks zinaonekana kabisa.

RAID 5 (anatoa za usawazio sambamba)

Mkakati huu kwa sasa unaonekana kuwa mpango wa uendeshaji wenye mafanikio na ufanisi zaidi kwa RAID unaojumuisha diski tatu au zaidi. Taarifa hiyo inaongezewa na kinachojulikana data ya usawa, ambayo iko kwenye diski tofauti ya kimwili kuliko data halisi inayodhibitiwa na habari hii.

Wazo la usawa linaweza kueleweka, kwa mfano, kama hii: wacha tuseme tuna bits tano - kwa mfano, seti (0, 1, 1, 0, 1). Tunaunda sehemu nyingine - kidogo ya usawa, ya sita, kulingana na sheria hii - ikiwa idadi ya hizo katika bits tano zilizopita ni sawa, itakuwa sawa na 1, ikiwa sio - 0. Kwa upande wetu, idadi ya wale. ni sawa na tatu, i.e. nambari isiyo ya kawaida - seti yetu iliongezewa na nambari 0 na ikageuzwa kuwa (0, 1, 1, 0, 1, ).

Wacha tuseme seti ya data imeharibiwa - (0, X, 1, 0, 1, ). Kwa kutumia sheria ambayo inatuambia kwamba idadi yao lazima iwe isiyo ya kawaida (ya mwisho), tunaweza kudhani kuwa badala ya X kulikuwa na moja. Seti yetu inayotokana ya biti sita (biti 5 za data na biti 1 ya usawa) haina maana na inaweza kufidia upotevu wa biti zake sita kwa akili.

Shughuli za usawa zinaweza kufanywa sio tu na bits, lakini pia kwa kiasi chochote cha data, ambayo hutumiwa katika algorithms rahisi zaidi ya kurejesha data.

Kurudi kwa kifaa cha RAID 5:

Takwimu inaonyesha safu ya diski tano. Inaweza kuonekana kuwa kila diski huhifadhi vipande vinne (notional) vya data halisi na kizuizi kimoja cha data ya usawa. Sehemu ya usawa - sema usawa 0 - ina uwezo wa kurejesha upotezaji wa moja ya vipande - yoyote, lakini moja - kati ya A0, B0, C0 na D0. Wote kwa pamoja, kwa upande wao, wanaweza kurejesha kizuizi 0 cha usawa. Kutoka kwa muundo wa RAID ulioonyeshwa, inaweza kuonekana kuwa data muhimu ili kurejesha kabisa safu nzima - yaani, habari ya disk yoyote katika tukio la kushindwa - iko kwenye diski nyingine. Hii ndio urejeshaji unajumuisha - wakati data imeandikwa kwa diski yoyote, kizuizi cha usawa cha diski nyingine inayolingana na kizuizi cha sasa pia kinasasishwa (kwa mfano, wakati wa kuandika kwa A2, kizuizi 2 cha usawa pia kinasasishwa). Data inasomwa kutoka kwa diski yenye afya bila kutumia vizuizi vya usawa, yaani, katika hali karibu sawa na RAID 0. Utendaji wa RAID 5, kama inavyotekelezwa katika NT, ni wa juu kidogo kuliko ule wa RAID 0.

Kukamata pekee ni kwamba katika tukio la kutofaulu, utendaji wa safu hupunguzwa na idadi kubwa ya nyakati, kwani ikiwa haiwezekani kusoma moja kwa moja, kwa mfano, D4, itakuwa muhimu kurejesha data ya hii. kuzuia kutumia disks nyingine zote wakati huo huo - kwa upande wetu hizi zitakuwa vitalu 4 usawa, B4, C4 na E4.

Kama unaweza kuona, kushindwa kwa moja ya diski za RAID 5 ni, ingawa sio mbaya, lakini hali mbaya ya dharura - angalau kwa sababu za kasi ya kusoma kutoka kwa safu. Pia ni rahisi kudhani ni wapi hitaji la angalau diski tatu linatoka - kwa upande wa anatoa mbili, RAID 5 inabadilika kuwa RAID 1, kwani njia pekee kuunda taarifa ya usawa wa orodha kutoka kwa kipengele kimoja ni kuiga kipengele hicho kwa namna fulani.

Mawazo ya Kuegemea

Vipi tena? Ndio, tena - RAID pia sio tiba ya shida zote za vifaa. Lazima niseme jambo ambalo halikutarajiwa kwa baadhi ya watu: kwenye kompyuta isiyotegemewa (isiyo sahihi), RAID ni karibu rahisi kuharibika kama mfumo wa diski moja.. RAID haitasaidia hata kidogo katika kesi zifuatazo:

  • Rekodi sahihi ya data isiyo sahihi, pamoja na kurekodi data nje ya eneo linalotarajiwa. Hii inasababishwa, kama hapo awali, na kumbukumbu mbovu, kichakataji, kebo, kidhibiti, na nguvu ya kiendeshi.
  • Ikiwa diski haiwezi kuripoti kosa la kusoma.

RAID imeundwa ili kupunguza uharibifu katika kesi moja tu - kushindwa kimwili. gari ngumu au ikiwezekana kidhibiti (katika kesi ya RAID ya vidhibiti vingi). Kushindwa kwa kumbukumbu, mfumo wa uendeshaji, na kwa kweli kila kitu kingine RAID haijatolewa- sawa kabisa na mkakati wa uendeshaji wa NTFS moja.

Na hatimaye, axiom ya kazi ya hapo juu Viwango vya RAID- kushindwa yoyote ya moja ya disks mfumo ni kuchukuliwa ajali ambayo lazima kuondolewa haraka iwezekanavyo. Hii inatumika hasa kwa RAID 0 na RAID 5, ambayo operesheni ya kawaida katika tukio la kushindwa kwa moja ya disks ni karibu haiwezekani.

Maelezo zaidi na mfumo wa programu RAID Windows NT inaweza kupatikana katika usaidizi wa programu (au moduli katika Windows 2000) Msimamizi wa Disk, ambapo, kwa kweli, aina hizi za disks zinaundwa. Tafadhali kumbuka kuwa uwezo wa vituo vya kazi kuunda na kutumia RAID ni mdogo sana - kituo cha kazi NT4, kwa mfano, inasaidia tu RAID 0 ( diski sambamba), wakati chaguo zote zilizoelezwa hufanya kazi tu kwenye matoleo ya seva ya mifumo ya uendeshaji Sehemu ya 6. Mkakati wa kurejesha juzuu za NTFS

Kompyuta yenye NTFS haifungui. Nini cha kufanya katika kesi hii? Jinsi ya kurejesha data? Kuna kesi mbili zinazowezekana, vitendo ambavyo ni tofauti kidogo kutoka kwa kila mmoja. Kwa bahati mbaya, hakuna mikakati rahisi ya kurejesha NT na, ipasavyo, NTFS - mfumo ni ngumu sana na hauna rahisi zaidi. vifaa vya boot, kama vile DOS au Windows95/98.

1. Chaguo la kwanza - mfumo ulikuwa kwenye diski sawa ya NTFS. Mfumo uliacha kuwasha tu. Kweli, basi katika 90% ya kesi tutalazimika kuongeza sio NTFS, lakini NT yenyewe tu. Operesheni hii inaenda mbali zaidi ya upeo wa kifungu hiki, kwa hivyo ninaelezea tu njia ya kuiweka kando (sawa Sehemu ya NTFS) mfumo mwingine wa NT ambao unaweza kufanya kazi katika siku zijazo (na ambao unaweza kusoma data yako).

Watumiaji wa NT4 itaweza kusakinisha mfumo moja kwa moja kwenye NTFS kwa kuingia kwenye kisakinishi.

Utahitaji CD ambayo ni usambazaji halali wa NT4. Sifa hizi zina uwezekano mkubwa wa kuwa na viendeshi ambavyo NT4 iko kwenye saraka inayoitwa i386, iliyoko kwenye saraka ya mizizi. Amri ya winnt /?, inayoendeshwa kwenye saraka hii, itakusaidia kuchagua funguo za kuunda diski tatu za floppy za boot ambazo unaweza kuendesha usakinishaji wa NT4 moja kwa moja. diski ya NTFS. Unaweza kuchagua saraka tofauti ya usakinishaji - kwa mfano, winnt2 - na kisha ujaribu kufufua usakinishaji wako mwenyewe wa NT4 ikiwa unaona njia za shida hii maalum ambazo wataalamu pekee wanaweza kufanya. Mfumo mpya wa uendeshaji utajiingiza kwa usahihi kwenye orodha ya upakuaji na hautaingilia kati NT4 yako ya zamani hata kidogo.

Ikiwa hakuna CD katika muundo unaofaa (dalili - ujumbe "ingiza diski na vifaa vya usambazaji wa NT4", ambayo haijibu kwa uwepo wa CD yako) - unaweza tu kusanikisha NT kwenye kizigeu kingine, kwani diski na NTFS haipatikani kutoka kwa mifumo mingine isipokuwa N.T.

Inafaa kuzingatia kuwa NT4 haiwezi kusanikishwa kwenye NTFS ambayo imebadilishwa kuwa muundo mpya kutoka Windows2000. NT4 bado inasoma NTFS kama hizo, lakini tu na SP4 au ya juu zaidi.

Watumiaji wa Windows 2000 italazimika kupata CD ya bootable na Windows 2000 (hii ni usambazaji rasmi), ambayo yenyewe itakupa ama kufunga mfumo kutoka mwanzo, au jaribu kurejesha usakinishaji wa zamani. Diski ya NTFS ambayo Windows 2000 ilikuwa ikifanya kazi nayo inaweza tu kusomwa na Windows 2000 au NT4 yenyewe na SP4 au toleo jipya zaidi.

Kumbuka: karibu haiwezekani kurejesha NT yoyote bila kuwa na diski ya uokoaji wa dharura (iliyoundwa katika NT4 na amri ya rdisk /s, katika Windows 2000 - na programu ya chelezo) - hii ni kazi kwa mtaalamu. Kwa njia, hata ikiwa una diski ya uokoaji, uwezekano mkubwa hautapenda utendaji wa mfumo "uliorejeshwa", kwa hivyo kuweka tena mfumo mzima ni karibu kuepukika. Ikiwa wewe sio fundi mwenye uzoefu wa NT, nakushauri usijaribu kutumia chaguzi za ukarabati wa kisakinishi cha NT, kwa sababu ... Matokeo yake yatakuwa ya kuridhisha sana. Jaribio, kwa kweli, sio mateso, lakini ugumu wa shughuli za kufufua mfumo kikamilifu ni kubwa sana na haujaelezewa popote, kwa hivyo utabaki katika hali fulani ya kati, ingawa labda inaweza kubeba.

2. Mfumo yenyewe hufanya kazi, lakini hakuna ufikiaji wa diski (sio diski ya boot, lakini nyingine). Msimamizi wa Diski anaonyesha kizigeu chako kama kisichojulikana. Katika idadi kubwa ya kesi, hii ina maana kwamba kwa namna fulani kufuta kulifanyika eneo la buti(sekta ya buti) kizigeu, na NT haijui kuwa ni NTFS. mfumo wa uendeshaji NT huweka nakala endapo tu sekta ya buti mwishoni mwa kizigeu - ikiwa unakili tena kwa eneo lake sahihi, katika hali nyingi diski itatambuliwa kama NTFS na itajirekebisha.

Mchakato wa kuhesabu anwani sahihi ni ngumu sana, kwa hivyo sitaielezea. Kwa maelekezo kamili kwa kesi hii itabidi uende kwa MSDN na utafute nambari ya nakala ya Msingi wa Maarifa Q153973 (pengine unaweza kufanya hivi utafutaji rahisi) - baada ya kufuata maagizo haya kwa usahihi, mfumo unatambuliwa angalau kama NTFS, na hatima zaidi ya kizigeu inategemea fedha za ndani kupona kwa NT, ambayo katika kesi hii itachukua kwenye mzunguko. Pia utasaidiwa na amri ya chkdsk inayoonekana kwa kiasi, ambayo ni aina ya njia ya mkato kwa mfumo wa uokoaji wa ndani wa mifumo ya diski ya NT.

Uandishi wa habari wa NTFS

NTFS hutumia uandishi wa habari wa miundo ya kimantiki, sio data ya mtumiaji - kwa hivyo maneno kwamba usalama wa data hauhakikishiwa, lakini, hata hivyo, hali sahihi ya mfumo yenyewe itadumishwa. Ukweli kwamba NTFS haichapishi data ya faili inaongoza kwa vitendo kwa hali moja ya upotezaji wa data - katika kesi hiyo hiyo ya dhahania ya kuandika megabytes tatu, ikiwa mchakato wa uandishi utashindwa, haitawezekana kuamua ni sehemu gani ya data iliyoandikwa na. ambayo ilibaki bila kubadilika. Uendeshaji ambao hata hivyo umeingia na mfumo ni shughuli na miundo ya mfumo yenyewe, yaani, na faili na saraka: kuongeza faili, kubadilisha jina, kusonga, kuunda na kufuta (kufungua nafasi ya bure). Shughuli za kugawanyika pia zimeingia - yaani, kusonga vipande vya faili. Kwa neno moja, kila kitu shughuli za kimantiki imeingia.

Kuchelewa kurekodi na pointi za udhibiti ukataji miti

Inajulikana kuwa mfumo wowote wa kisasa unalazimika kutumia caching ili kuharakisha uendeshaji wa faili, ikiwa ni pamoja na shughuli za kuandika caching. Kinachojulikana kama uandishi wa uvivu ni kanuni ya caching ambayo data iliyokusudiwa kuandikwa kwenye diski huhifadhiwa kwenye cache kwa muda fulani na imehifadhiwa tu kimwili wakati wa bure kutoka kwa shughuli nyingine. Wavivu huandika kwa kiasi kikubwa kuboresha ufanisi wa shughuli za disk, kwa vile caching makundi mengi ya shughuli katika moja - hii ni ya ufanisi hasa ikiwa maandishi yanafanywa katika maeneo ya compact ya disk. Faida nyingine ya uandishi wa uvivu ni kwamba hauingilii na shughuli muhimu zaidi za kusoma, na huandika tu wakati mfumo ukiwa huru na hauitaji ufikiaji wa diski kwa mahitaji mengine. Jinsi ya kupatanisha uandishi uliochelewa na ukataji miti? Hili ni swali gumu, kwani kuahirisha kurekodi kunawezesha kupoteza data iliyokuwa kwenye foleni ya kurekodi kimwili na hakuwa na muda wa kuandikwa kwenye diski kabla ya kushindwa. Jambo lisilo la kufurahisha zaidi hapa sio hata upotezaji wa data, lakini ukweli kwamba kuna kutolingana kwa wakati wa kurekodi: maeneo mengine ya huduma yanaweza kusasishwa, lakini maeneo mengine yanayohusiana bado hayawezi, kwani sasisho lao linaweza kucheleweshwa kwa sekunde kadhaa. na halitafanyika kwa sababu ya kushindwa.

NTFS inashinda matatizo haya kwa kuunganisha kimaana uandishi wavivu na uandishi wa habari. Unapojaribu kuanza operesheni iliyoingia, nia imeandikwa mara moja kwa logi - kwa mfano, kufuta faili. Hii hutokea bila kuchelewa - katika hatua hii, uandishi wa uvivu haufanyi kazi: hii ni gharama ya uwepo wa magogo ambayo haiwezi kuepukwa. Lakini shughuli nyingine zote tayari ziko katika hali ya kuchelewa - yaani, zinaweza kufanyika kwa sehemu au zisifanyike kabisa. Operesheni iliyochelewa tu, operesheni ambayo ni tofauti na maandishi rahisi, ni kuandika kwa logi kuhusu kukamilika kwa mafanikio ya shughuli za awali, kinachojulikana kama ukaguzi. Katika vipindi fulani - kwa kawaida kila sekunde chache - mfumo lazima uondoe kabisa shughuli zote zilizochelewa kwenye diski. Baada ya operesheni hii, kuingia rahisi kumeandikwa kwa logi - kituo cha ukaguzi - ambacho kinaonyesha kwamba shughuli zote za awali zilifanyika kwa usahihi katika ngazi zote - zote za kimantiki na za kimwili.

Njia hii ya uendeshaji - kwa msaada wa rekodi na vituo vya ukaguzi - kwa upande mmoja, bado inahakikisha uendeshaji sahihi kabisa wa ukataji miti, na kwa upande mwingine, kwa kweli haiongoi kupungua kwa kazi: kuweka vituo vya ukaguzi hufanywa, fikiria, papo hapo, na kurekodi katika logi kuhusu mwanzo Operesheni inafanana na gharama za kazi kwa kuandika data yenyewe bila caching kuchelewa. Rekodi halisi, iliyofanywa baadaye, katika idadi kubwa ya kesi haiingiliani na shughuli zozote na haidhuru utendaji wa mfumo.