ot Nikola Antonov(28-11-2003)

reiting (6)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Failovata sistema ext3

Kakvo predstavliava, zashto e neobhodima zhurnalnata failova sistema ext3, a sushto i kak da rabotim s neia

Vitalii Qkovlev, vit@skorohod.com
http://www.softerra.ru/freeos/18211/page1.html

Prevod ot ruski: N. Antonov, nikola@linux-bg.org

I. Vuvedenie vuv failovata sistema ext3

Suvremennata moshtna i bezplatna operatsionna sistema Linux dava shiroka teritoriia za razrabotvaneto na suvremenni sistemi i za programnoto obezpechavane na potrebitelia. Niakoi ot nai-interesnite razrabotki v Linux-iadroto sa visokoproizvoditelnite tehnologii za upravlenie na suhranenieto, organiziraneto i obnoviavaneto na dannite vurhu diska. Edin ot nai-interesnite mehanizmi e zhurnalnata failova sistema ext3, koiato e integrirana v Linux-iadroto ot versiia 2.4.16 i veche e dostupna po podrazbirane v distributivite na kompaniite Red Hat i SuSE.

Failovata sistema ext3 e zhurnalna, 100% suvmestima s instrumentite za suzdavane, upravlenie i fina nastroika na failovata sistema ext2, koiato se izpolzuva v Linux-sistemite po podrazbirane prez poslednite niakolko godini. Predi da napravim detailno opisanie na razlichiiata mezhdu failovite sistemi ext2 i ext3, shte utochnim terminilogiiata, otnasiashta se do failovite sistemi i suhranenieto na failovete.

II. Failovite sistemi v Linux. Suha teoriia.

V dalechnoto minalo, kogato kompyuturnite sistemi zapochnaha purvo da chetat i pishat na magnitni nositeli, garantiraneto na tselostta na failovete i (po-kusno) direktoriite na tezi ustroistva se prevurna v trun v ochite na administratorite. Na sistemno nivo, vsichki danni v kompyutura sushtestvuvat kato blokove na niakakvo ustroistvo za suhranenie, organizirani s pomoshtta na spetsialna struktura v razdeli (logicheski nabori na ustroistvoto za suhranenie), koito na svoi red sa organizirani vuv failove, direktorii i neizpolzvano (svobodno) prostranstvo.

Failovite sistemi obosobiavat diska na razdeli, za da se oprosti suhranenieto i organizatsiiata na dannite vuv failove i direktorii. Linux, kato Unix-sistema, izpolzva ierarhicheska failova sistema, sustavena ot failove i direktorii, koito ot svoia strana sushto sudurzhat failove i direktorii. Failovete i direktoriite vuv failovata sistema na Linux stavat dostupni posredstvom tiahnoto montirane (komandata mount), koeto obiknoveno e chast ot protsesa na zarezhdane na sistemata. Spisukut ot failovi sistemi, dostupni za izpolzvane, se suhraniava vuv faila /etc/fstab (filesystem table). Spisukut s failovi sistemi, koito sa montirani v dadeniia moment, se suhraniava vuv faila /etc/mtab (mount table).

V momenta na montirane na failovata sistema pri zarezhdane na kompyutura, bitut v zaglavnata i chast (t. nar. “chist bit”/”clean bit”) se iztriva, koeto oznachava, che failovata sistema se izpolzva i che strukturata na dannite, izpolzvani za upravlenie na organizatsiiata na failovete i direktoriite v dadenata failova sistema, mozhe da bude
promenena.

Failovata sistema se schita za tsialostna, ako vsichki blokove ot danni v neia se izpolzvat ili sa svobodni; vseki razmesten blok ot danni e zaet ot edin i samo ot edin fail ili direktoriia; vsichki failove i direktorii sa dostupni sled obrabotkata na seriia drugi direktorii vuv failovata sistema.

Kogato Linux prekrati normalno rabotata si, vsichki failovi sistemi se demontirat. Demontiranite failovi sistemi v protsesa na priklyuchvane na rabotata poluchavat “chist bit” v zaglavnata si chast, koeto oznachava, che sistemata e bila demontirana pravilno i mozhe da se schita za tsialostna. Godinite na usuvurshenstvane i prerabotka na failovite sistemi, kakto i  podobriavaneto na algoritmite za zapis na dannite vurhu diska do goliama stepen namaliha veroiatnostta ot povrezhdane na dannite, izpolzvani ot prilozheniiata i ot samoto Linux-iadro, no otstraniavaneto na povredite i zagubite na danni pri prekusvane na zahranvaneto i drugi sistemni problemi dosega si ostava slozhna zadacha. V sluchai na avarien sriv ili prosto izklyuchvane na sistemata, bez preminavaneto prez standartnite protseduri na demontirane, niama ustanoviavane na “chist bit” v zaglavnata chast na failovata sistema. Pri sledvashtoto zarezhdane na sistemata, protsesut po montirane shte otkrie, che sistemata ne e markirana kato chista i shte proveri neinata fizicheska tsialost, izpolzvaiki Linux/Unix-instrumenta za proverka na failovata sistema fsck (filesystem check).

III. Kakvo e zhurnalna failova sistema?

Proverkata na failovata sistema s fsck pri golemite diskovi dialove mozhe da otneme mnogo vreme, koeto e mnogo losho pri dneshnite zavisheni iziskvaniia za skorost na sistemite. Prichinata, koiato mozhe da predizvika narushavane na tselostta na failovata sistema, mozhe da bude nekorektno demontirane, ako naprimer v momenta na demontiraneto vurhu sistemata e vurvial zapis. Naprimer, ako prilozheniiata obnoviavat dannite, sudurzhashti se vuv failovete, i sistemata obnoviava meta-dannite, koito se iaviavat “danni za dannite vuv failovata sistema”, s drugi dumi, informatsiiata za tova koi blokove s koi failove sa svurzani, kakvi failove sa razmesteni v koi direktorii i t.n. Greshkite (lipsata na tsialostnost) vuv failovete s danni sa neshto losho, no greshkite v meta-dannite na failovata sistema mogat da dovedat do zaguba na failove i do drugi seriozni problemi.

Za da namali problemite, svurzani s tselostta i vremeto za zarezhdane na sistemata, zhurnalnata failova sistema suhraniava spisuk ot promenite, koito shte nastupiat predi izvurshvaneto na fizicheskiia im zapis. Tezi zapisi se suhraniavat v otdelni chasti na failovata sistema, narecheni “zhurnal” ili “log”. Sled kato promenite budat bezopasno opisani v zhurnala zhurnalnata failova sistema vuvezhda izmeneniiata v samite failovete i sled tova premahva zapisite ot loga. Zapisite v zhurnala sa organizirani v nabori, svurzani s izmeneniiata vuv failovata sistema, koeto mnogo prilicha na promenite pri dobavianeto v bazi danni, organizirani v tranzaktsii.

ZHurnalnata failova sistema zashtitava tselostta, zashtoto zapisite v log-faila se suzdavat predi sushtinskite promeni vuv failovata struktura i zashtoto failovata sistema suhraniava tezi zapisi dokato promenite ne budat bezopasno i okonchatelno vuvedeni vuv failovata struktura. Pri izklyuchvane na kompyutura, koito izpolzva zhurnalna failova sistema, programata za montirane mozhe da garantira tselostta na failovata sistema samo s proverka na log-faila pri nalichie na ochakvani, no neizvursheni promeni v zapisite na failovata sistema. V povecheto sluchai sistemata ne se nuzhdae ot proverka na tselostta, a tova oznachava, che kompyuturut shte bude gotov za rabota prakticheski vednaga sled zarezhdaneto. Suotvetno, shansovete ot zaguba na da danni pri problemi vuv failovata sistema znachitelno namaliavat.

Sushtestvuvat niakolko failovi sistemi, dostupni za Linux. Nai-izvestnite sa: XFS (zhurnalna failova sistema, razrabotena ot Silicon Graphics, veche s otvoren kod), ReiserFS (razrabotena spetsialno za Linux), JFS (purvonachalno razrabotena ot IBM, veche s otvoren kod) i ext3 - failova sistema, razrabotena ot d-r Stivun Tuiidi za Red Hat i niakoi drugi sistemi.

IV. ZHurnalnata failova sistema ext3.

Tova e zhurnalizirana versiia na failovata sistema ext2. Tia ima edno goliamo preimushtestvo pred drugite zhurnalni failovi sistemi - pulna suvmestimost s failovata sistema ext2. Tova pravi vuzmozhno izpolzvaneto na vsichki sushtestvuvashti prilozheniia za manipulirane i nastroika na failovata sistema ext2.

Failovata sistema ext3 e vklyuchena v Linux-iadroto ot versiia 2.4.16 i mozhe da bude nastroena chrez izpolzvaneto na dialoga za konfigurirane na failovite sistemi pri kompilatsiiata na iadroto. V Linux-distributsiite, kato Red Hat 7.2 i SuSE 7.3, ext3 veche se poddurzha po podrazbirane. Mozhete da izpolzvate failovata sistema ext3 samo ako ste vklyuchili poddruzhkata i v iadroto i imate poslednite versii na programite mount i e2fsprogs.

V povecheto sluchai preminavaneto ot edna failova sistema na druga vodi sled sebe si zadulzhitelno rezervno kopirane na vsichki danni, preformatirane na dialovete na diska i sled tova vrushtane na dannite otnovo na miastoto im. Vuv vruzka sus suvmestimostta mezhdu sistemite ext2 i ext3 vsichki tezi deistviia sa nenuzhni, a preminavaneto ot ext2 na ext3 stava samo s edna komanda:

tune2fs -j <ime_na_diala>

Naprimer, preminavaneto ot sistemata ext2, razpolozhena na diala /dev/hda5 kum failovata sistema ext3 mozhe da stane s pomoshtta na komandata:

tune2fs -j /dev/hda5

Optsiiata -j suzdava zhurnal kum sushtestvuvashtata veche ext2 failova sistema. Sled preminavaneto ot ext2 kum ext3 triabva da vuvedete promenite vuv faila /etc/fstab, za da posochite, che sega veche tozi dial izpolzva failovata sistema ext3. Mozhete da izpolzvate i optsiiata auto, no vupreki tova se reporuchva da posochite tochniia tip na failovata sistema. Sledvashtiiat primer pokazva kak triabva da se redaktira failut /etc/fstab sled preminavaneto na diala /dev/hda5 ot ext2 kum ext3.

predi promianata:

/dev/hda5   /opt   ext2   defaults   1   2

sled promianata:

/dev/hda5   /opt   ext3   defaults   1   0

Poslednoto pole posochva etapa v zarezhdaneto na sistemata, kogato tselostta na failovata sistema triabva da bude proverena s fsck. Pri izpolzvaneto na failovata sistema ext3 mozhete da go promenite na 0. Tova oznachava, che programata fsck nikoga niama do proveriava tselostta na failovata sistema, tui kato tia se garantira samo ot prevurtaneto na zhurnala.

Preminavaneto na korenniia dial kum failovata sistema ext3 iziskva povisheno vnimanie i predi vsichko preminavane v single-user-rezhim sled suzdavaneto na RAM-disk, poddurzhasht failovata sistema ext3.

V. Razlichni rezhimi na zhurnalirane vuv failovata sistema ext3
Osven suvmestimostta s instrumentite za failovata sistema ext2 i lesniia prehod ot ext2 kum ext3, failovata sistema ext3 predlaga sushto niakolko razlichni tipa na zhurnalirane.

V klasicheskiia si vid zhurnalnata failova sistema suhraniava v log izmeneniiata v meta-danntie na failovata struktura i vsichki  drugi izmeneniia, vklyuchitelno i na samite failove. Failovata sistema ext3 poddurzha tri razlichni rezhima na zhurnalirane, koito mogat da budat aktivirani ot faila /etc/fstab. Tova sa slednite rezhimi:

1. “ZHurnal” (journal) - zapis na vsichki izmeneniia v dannite i meta-dannite na failovata sistema. Nai-baven ot vsichki. Tozi rezhim namaliava do minimum shansa ot zaguba na informatsiia za izmeneniiata na failovete.

2. “Posledovatelen” (ordered) - zapisvat se izmeneniiata v meta-dannite na failovata sistema, no i promenite v dannite na faila predi izmeneniiata, asotsiirani s meta-dannite. Tozi rezhim se izpolzva po podrazbirane.

3. “Obraten zapis” (writeback) - zapisvat se samo izmeneniiata v meta-dannite na bazata na standarten zapis na izmeneniiata na dannite vuv failovete.

Razlikite mezhdu trite rezhima na zhurnalirane sa ednovremenno edva zabelezhimi, no i fundamentalni. Izpolzvaneto na rezhima “zhurnal” predpolaga, che failovata sistema zapisva vsiaka promiana dva puti - purviia put v zhurnala, a sled tova v samata failova struktura. Tova mozhe da namali obshtata roizvoditelnost, no tozi rezhim shte garantira na vseki potrebitel, che svezhda do minimum shansovete za zaguba na informatsiia pri vuvezhdaneto na promeni v dannite kakto na failovete, taka i v meta-dannite, tui kato vsichki promeni se zapisvat v zhurnal i mogat da budat vuzstanoveni pri zarezhdaneto na sistemata.

Izpolzvaneto na “posledovatelniia” rezhim zapisva samo izmeneniiata v meta-dannite, koeto pravi tozi metod po-burz. Nezavisimo ot tova, che promenite vuv faila ne se zapisvat v zhurnala, te triabva da budat izvursheni predi izmeneniiata, asotsiirani s meta-dannite vuv failovata sistema i vuvezhdani ot zhurnalirashtiia ext3-demon, a tova mozhe malko da snizhi proizvoditelnostta na vashata sistema. Izpolzvaneto na tozi metod garantira, che failovete nikoga niama da budat v asinhron s meta-dannite vuv failovata sistema.

Metodut na “obraten zapis” e nai-burz, zashtoto pri nego se suhraniava samo informatsiiata za izmeneniiata v meta-dannite na failovata sistema i ne se izchakvat promenite, asotsiirani s dannite vuv faila pri zapis (naprimer razmer na faila i informatsiia za direktoriiata). Tui kato obnoviavaneto na dannite stava asinhronno, failovete mogat da davat greshki v meta-dannite, tui kato tiahnoto obnoviavane ne e bilo priklyuchilo pri restartirane na sistemata). Tova ne e fatalno, no mozhe da smuti potrebitelia.

Posochvaneto na rezhima na zhurnalirane, izpolzvan ot failovata sistema ext3 stava vuv faila /etc/fstab. Posledovatelniiat rezhim se izpolzva po podrazbirane, no mozhete da posochite naprimer na failovata sistema da izpolzva rezhima na “obraten zapis” po sledniia nachin:

/dev/hda5   /opt   ext3   rw,data=writeback   1   0

Vnimanie! Ne se preporuchva da zadavate tazi optsiia za korenniia dial (bel. prev.).

VI. Zaklyuchenie

ZHurnalnite failovi sistemi davat znachitelni preimushtestva za shirok krug potrebiteli na Linux, namaliavat izchakvaneto pri startiraneto na sistemata i pochti premahvat vuzmozhnostta ot poiavata na greshki vuv failovata sistema. Failovata sistema ext3 e visokoproizvoditelna, sumestima s ext2, a instrumentut tune2fs pravi preminavaneto ot ext2 na ext3 suvsem prosta rabota.

Informatsiia za tazi i za drugi zhurnalni failovi sistemi:
http://www.linuxplanet.com/linuxplanet/reports/4136/1/
http://www.redhat.com/support/wpapers/redhat/ext3/index.html#toc
http://people.spoiled.org/jha/ext3-faq.html


<< Suveti i trikove ot Linuks Festa: chast 2 | Suzdavane na po-burzo i ustoichivo iadro >>