ot Luchezar Petkov(2-11-2007)

reiting (17)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Malko paradoksalno, che publikuvam statiia, koiato niama nishto obshto s Linux v linux-bg.org, no znam che i *BSD potrebiteli poseshtavat portala.

Avtor: Luchezar P. Petkov

Original: tuk

Vuvedenie

Zfs e poslednata duma, ili po-skoro posledniiat pisuk vuv failovite sistemi. Predstavia edna iztsialo nova kontseptsiia za tova kak triabva da raboti edna takava sistema, kakvi vuzmozhnosti triabva da ima, kakvo i kak triabva da pravi. Pri neia niama dialove, a prosto edin “basein” (pool) v koito tsopvate kolkoto si iskate failovi sistemi, koito de fakto izpolzvat neogranicheno ot dialove prostranstvo. Naprimer, da rechem, che imate 80 GB tvurd disk. Izpolzvate UFS ili druga klasicheska failova sistema(Ext3, Resierfs, XFS, niama znachenie). Instalirate si niakakva sistema i v nachaloto razpredeliate: 1 dial ot 1 GB za SWAP, 1 dial ot 10 GB za / i edin dial ot 69 GB za /home. Obache, sled 1 godina miastoto na / ne vi dostiga poradi niakakva si prichina. Kakvo pravim? Slagame drug tvurd disk, zanimavame se s izlishni gluposti, imame izlishno glavobolie i, razbira se - gubim tsenno vreme. A ako biahme slozhili Zfs tozi problem vuobshte niamashe da sushtestvuva, zashtoto / shteshe da si “vzeme” kolkoto mu triabva ot /home diala i dori niamashe da zabelezhim. E, stiga da ne ni svurshi diskovoto prostranstvo kato tsialo, razbira se.

Zfs privleche vnimanieto na vsichki sled kato Sun napraviha anonsa, che shte ia publikuvat kato chast ot OpenSolaris. Niakoi kazvat, che zaedno s Dtrace tova sa dvete nai-hubavi neshta, koito Sun niakoga sa puskali na pazara. Za suzhalenie na Linux potrebitelite obache, failovata sistema (kakto i vsichko, koeto e pod shapkata na OpenSolaris) e litsenzirana pod CDDL. A CDDL e nesuvmestim s GPL i suotvetno koda ne mozhe da vleze v Linux iadroto.

Za moe shtastie obache, tozi problem ne sushtestvuva pri BSD litsenziranite iadra kato tova na FreeBSD. I za da sum oshte po-shtastliv Pavel Davidek (Pawel Dawidek) napravi hubav port, koito v momenta e vuv FreeBSD_7 kato eksperimentalna vuzmozhnost na sistemata. Vse oshte ima niakolko ostri ruba, no v moia sluchai samo edin ima sushtestveno znachenie: FreeBSD ne mozhe da startira direktno ot Zfs pool (kakto i ot ogledalen pool i RAIDZ). Boot loader-a triabva da se nagodi za tazi tsel i v momenta se raboti po problema. Vse pak obache e vuzmozhno da izpolzvate Zfs kato root fialova sistema s edin maluk, hitur hak, koito shte opisha v tazi statiia.

Vnimanie! Zfs e nova failova sistema i kato takava iziskva poveche resursi, osobeno za niakoi ot po-atraktivnite si vuzmozhnosti (kompresiia, snapshoti). Absolyutno nepreporuchitelno e da instalirate Zfs na mashina s po-malko ot 1 GB RAM.

Stupka 1.

Nai-lesno e ot disk. Neobhodim vi e instalatsionen taukuv na FreeBSD 7. V momenta na pisane poslednata versiia ot bransh 7 e BETA1 i vurshi rabota.

Zarezhdate diska i izbirate Custom Install. Ot tam suzdavate samo edin slice za tseliia disk, v moia sluchai ad1. Sled tova ot menyuto Label pravite 1 dial ot 512 (UFS) MB za / (ad1s1a) i oshte edin za ostanaloto miasto ot tvurdiia disk, koito niama failova sistema i niama tochka na montirane (ad1s1d). Tova stava po sledniia nachin: izbirate mu niakakva tochka na montirane kato vi pita instalatora, naprimer /blah, sled tova izbirate diala, natiskate butoncheto M i promeniate tochkata na montirane na… nikakva. :-)

Po zhelanie mozhe da napravite oshte edin dial za swap s razmeri spored vashata RAM pamet (ad1s1b pri men). Produlzhavame s menyu Distributions i izibirate minimalnata sistema. Triabva da ia suberem v ramkite na tezi 512 MB, vse pak. I nakraia instalirame. Vsichko bi triabvalo da mine gladko i ako e taka - restartirame mashinata.

Stupka 2.

FreeBSD se startira i pri prompt-a v nachaloto izbirame Single User Mode. Sled kato se zaredi natiskame Enter, za da ni pusne v sh i pishem:

$_ mount -w /

I sega zapochva zabavnata chast. Pravim baseincheto, v koeto shte tsopat montiranite failovi sistemi. T.e. nashiiat pool. V tozi primer toi shte zaema tseliia dial ad1s1d, koito napravihme predi malko.

$_ zpool create lilly /dev/ad1s1d

Dumichkata “lilly” tuk e prosto primer i vsushtnost e imeto na pool-a. Mozhete da si izberete drugo, kakvoto si poiskate ime. Sega da napravim niakolko tochki na montirane.

$_ zfs create lilly/usr

$_ zfs create lilly/usr/ports

$_ zfs create lilly/usr/ports/distfiles

$_ zfs create lilly/var

$_ zfs create lilly/tmp

$_ zfs create lilly/home

$_ zfs create lilly/home/username

Sega da vidim kakvo sme napravili:
$_ df -h

$_ zfs list

Mmm… :-)

Sruchkvame rc.conf da vklyuchva Zfs pri startirane:

$_ echo ‘zfs_enable=”YES”‘ >> /etc/rc.conf

I sega, kakto ste zabeliazali naviarno si imame direktoriia s imeto na vashiiat pool v /. Taka de, /lilly v moia sluchai. Obache, baseincheto gorkoto e prazno. Da go napulnim sus sudurzhanieto ot UFS slice-a, koito napravihme. Po tozi nachin shte imame raboteshta sistema na Zfs diala.

$_ find -x / | cpio -pmd /lilly

Tui. Sistema imame. No uvi - ne mozhem da ia buutnem…

Stupka 3.

Problemut, kakto veche spomenah e, che zarezhdacha (eh, che krasiva duma) ne znae nishto za Zfs i ne mozhe da buutva ot neia. Suotvetno, shte triabva da buutva ot UFS dialcheto, koeto sled tova direktno ni prehvurlia v Zfs, kato nashiiat pool veche se montira kato root, a ne kato samostoiatelna direktoriia kakto sega. Razbira se. Samiiat UFS dial puk go montirame na edno skrishno miasto, no za tova sled malko…

Purvo zatrivame /boot direktoriiata v /lilly koiato toku shto kopirahme ot UFS diala:

$_ rm -rf /lilly/boot

Sega veche pravim direktoriiata, v koiato shte montirame UFS diala. Sled tova linkvame, za da sme sigurni, che sled tova shte mozhem da obnoviavame iadroto ot raboteshta sistema i che Zfs shte vizhda UFS diala kogato startira.

$_ mkdir /lilly/bootdir

$_ cd /lilly

$_ ln -s bootdir/boot boot

I triabva da kazhem na lodaer.conf (koito e na UFS diala) da zarezhda Zfs i koia failova sistema da izpolzva za / :

$_ echo ‘zfs_load=”YES”‘ >> /boot/loader.conf $_ echo ‘vfs.root.mountfrom=”zfs:lilly”‘ >> /boot/loader.conf

Druga dobra ideia e da napravite fail /bootdir/etc/fstab sus sledniia red:

lilly / zfs rw 0 0

Sega redaktirame edin drug fstab, koito shte e “ofitsialniiat”, demek onzi na Zfs failovata sistema. V tozi sluchai /lilly/etc/fstab Pishem slednoto:

/dev/ad1s1a /bootdir ufs 1 1

Tova shte montira UFS diala v /bootdir.

Pochti priklyuchihme. Suzdadenite veche failovi sistemi gi pomnite, nali? Neka im napravim tochki na montirane:

$_ zfs set mountpoint=/usr lilly/usr

$_ zfs set mountpoint=/usr lilly/usr/ports

$_ zfs set mountpoint=/usr lilly/usr/ports/distfiles

$_ zfs set mountpoint=/tmp lilly/tmp

$_ zfs set mountpoint=/var lilly/var

$_ zfs set mountpoint=/home lilly/home

$_ zfs set mountpoint=/home/username lilly/home/username

I nakraia kazvame na zfs da ne se montira samichko, a che nie go montirame (t.e. ne nie, ami loader-a)

$_ zfs set mountpoint=legacy lilly
Stupka 4.

Restartirame i sme shtastlivi!

Oshte blaginki

Mozhe da ste se uchudili zashto napravih otdelni sistemi za /usr/ports i /usr/ports/distfiles. Zashtoto /usr/pors vklyuchva samo tekstovi failove i spokoino mozhem da vklyuchim kompresiia tam, za da spestim miasto:

$_ zfs set compression=gzip lilly/usr/ports

Tova e prekrasno, no niama za kakvo da kompresirame distfiles/ pri uslovie, che failovete tam sa arhivi (=> veche sa kompresirani):

$_ zfs set compression=off lilly/usr/ports/distfiles

Az, kakto i mnogo drugi imam poveche ot edin tvurd disk. Dobavianeto na drug tvurd disk kum sushtiia pool stava samo s edna (edna!!!) komanda na raboteshta v momenta sistema. V moia sluchai tova e diska ad3:

$_ zpool add lilly /dev/ad3

I plüooos, oshte 250 GB v baseincheto :-)

Zaklyuchenie

Tova sus sigurnost e nai-neveroiatnata failova sistema na vsichki vremena. Struva si da ia izpolzvate, nezavisimo dali ste sistemen admin, administrirasht 150 mashini ili prosto kraen potrebitel, kato men. I vse pak imaite predvid, che sushtestvuvaneto i vuv FreeBSD vse oshte e neshto eksperimentalno i che si iska moshtna mashina.

Otnosno Lili

Intel Core 2 Duo 3.0 Ghz CPU

2 GB RAM

150 GB HDD

250 GB HDD

Bibliografiia

Zfs

Zfs commited to FreeBSD

Zfs stranitsata na FreeBSD Wiki

Administrirane na Zfs (PDF) Vnimanie! Ima razliki v administriraneto na Zfs vurhu Solaris i vurhu FreeBSD!

Zfs man page (FreeBSD)

Zpool man page (FreeBSD)



<< Rolia i znachenie na GNU Affero GPL | SAMBA PDC - instalatsiia, nastroika, upravlenie - CHast 2 >>