Instalace serveru FreeBSD / ZFS
Miroslav Lachman
000.fbsd at quip.cz
Wed Mar 25 14:01:17 CET 2009
Jozef Babjak wrote:
>>>Mel jsem na mysli zvetsovani mista na filesystemu serveru napr. pro /home
>>>a ne pridavani disku do serveru. :-)
>
>
>>Jak je to v tomto ohledu na ZFS netusim.
>
>
> ^-- IIRC, jednoducha zmena velkosti particii a na nich leziaceho
> suboroveho systemu - odhliadnuc od faktu ze, samotne pojmy particie a
> suboroveho systemu mozu byt v pripade ZFS zavadzajuce - je jednou zo
> zakladnych crt ZFS. Nakolko je to teoria a nakolko je to pouzitelne
> [na FreeBSD], zial, povedat neviem.
Se ZFS je situace uplne jina. V idealnim pripade dostane ZFS nejake cele
disky (treba ad0 a ad1 do mirroru, nebo ad0 + ad1 + ad2 do RAIDZ [neco
jako RAID5]), v pripade pouziti nejakeho pole pod nim, dostane jen to
jedno zarizeni, ktere to diskove pole "exportuje" pro system.
Z techto disku se prikazem zpool vytvari pool, ve kterem se rozdeluji
jednotlive souborove systemy. Pro kazdy souborovy system (rikejme mu
oddil) je dostupna kapacita celeho poolu, dokud ji neomezime prikazem
zfs set quota=size tank/muj_oddil
Na jednom stroji to vypada nejak takhle:
root at kiwi ~/# zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank 1.30T 1.37T 29.9K /tank
tank/system 1.04G 1.37T 28.4K /tank/system
tank/system/tmp 49.4K 1.37T 49.4K /tmp
tank/system/usr 610M 1.37T 80.0K /tank/system/usr
tank/system/usr/obj 26.9K 1.37T 26.9K /usr/obj
tank/system/usr/ports 441M 1.37T 213M /usr/ports
tank/system/usr/ports/distfiles 105M 1.37T 105M /usr/ports/distfiles
tank/system/usr/ports/packages 123M 1.37T 123M /usr/ports/packages
tank/system/usr/src 168M 1.37T 168M /usr/src
tank/system/var 453M 1.37T 213K /var
tank/system/var/db 415M 1.37T 415M /var/db
tank/system/var/db/pkg 387K 1.37T 387K /var/db/pkg
tank/system/var/log 37.7M 1.37T 37.7M /var/log
tank/system/var/run 60.6K 1.37T 60.6K /var/run
tank/vol0 1.30T 1.37T 1.30T /vol0
tank/vol0/mon 65.1K 1.37T 65.1K /vol0/mon
Celkova velikost poolu je v tomto pripade 2.7TB (pool tvori 4 disky o
kapacite 1TB v rezimu RAIDZ) a z toho uz je 1.3TB zabraneho mista.
Jak je videt, tak kazdy z oddilu ma porad ve sloupci AVAIL napsano
1.37T. Pokud bych chtel treba pro /vol0/mon nastavit, ze muze dostat
maximalne 1GB mista a vic ne, staci na to prikaz:
zfs set quota=1G tank/vol0/mon
a od te chvile bude radek pro tento oddil vypadat nasledovne:
tank/vol0/mon 65.1K 1024M 65.1K /vol0/mon
aha, vlastne by se mi ted hodil ten oddil vetsi, treba 5GB:
zfs set quota=5G tank/vol0/mon
tank/vol0/mon 65.1K 5.00G 65.1K /vol0/mon
a po predvedene ukazce to na tom stroji zase vratim zpet
zfs set quota=none tank/vol0/mon
tank/vol0/mon 65.1K 1.37T 65.1K /vol0/mon
Takze pokud nekdo opravdu potrebuje casto nastavovat velikost oddilu
(rekl bych spis adresarove quoty), tak je ZFS "ta prava volba"
(samozrejme s ohledem na soucasnou kvalitu / stabilitu atd., to si kazdy
musi zvazit sam)
Pokud by nekoho prekvapovalo, proc tu mam vytvoreno tolik oddilu, tak je
to proto, ze se ZFS to je mozne vyuzit a nedela to problemy. Kdyby neco,
mohu je kdykoliv zrusit a neprijdu tim o zadne prealokovane misto, jako
kdyz clovek nevhodne rozdeli disk s UFS.
Tady jsem si napriklad "hral" s nastavovanim ruzne komprese pro ruzne
oddily (ta se da opet kdykoliv za behu zapnout, vypnout, zmenit jeji
uroven...)
zfs get -r compression | grep -v off
NAME PROPERTY VALUE
tank/system/usr/ports compression gzip-9
tank/system/usr/src compression gzip-9
tank/system/var/db/pkg compression gzip-9
tank/vol0 compression gzip
tank/vol0/mon compression gzip-9
Ucinnost si lze snadno prohlednout:
zfs get -r compressratio | grep -v 1.0
NAME PROPERTY VALUE
tank compressratio 1.17x
tank/system compressratio 1.61x
tank/system/usr compressratio 2.13x
tank/system/usr/ports compressratio 1.67x
tank/system/usr/src compressratio 3.26x
tank/system/var/db/pkg compressratio 4.29x
tank/vol0 compressratio 1.17x
tank/vol0/mon compressratio 2.08x
Jsou tam zapocitane i nadrazene oddily, ktere ve skutecnosti
komprimovane nejsou, ale jelikoz jejich potomci kompresi pouzivaji, tak
i nadrazeny oddil vykazuje nejake compressratio.
Jeste tu od nekoho padnul dotaz na moznost bootovani FreeBSD ze ZFS - v
7.x tato moznost neni a i kdyby byla, tak bych ji nevyuzil. Pro tenhle
konkretni stroj pouzivam USB flashdisk s UFS, kde je root a tam
nainstalovany zakladni system a mountovany Read-Only, zbytek pak je na
ZFS. Takze i kdyby se s tim ZFS stalo neco hodne oskliveho, mam
fungujici system na USB flashdisku a muzu se pokouset ZFS obnovit.
Ve skutecnosti staci mit na nejakm UFS oddilu jen loader a oddil /boot,
zbytek pak uz lze po natazeni kernelu premountovat ze ZFS.
V soucasne dobe tusim uz loader ve verzi 8.x ma nejakou podporu
bootovani ze ZFS, ale nevim, jestli jen z mirroru, nebo i RAIDZ / RAIDZ2.
Doufam, ze tahle mala ukazka nekoho nalaka k testovani a odhalovani
dalsich chyb v ZFS :)
Ale nasazeni do provozu necht si kazdy zvazi podle sveho. Na to co jsem
od toho potreboval ja jsem to nasadil uspesne k plne spokojenosti, ale
tak nejak "vim" co od toho ocekavat a kde mohou byt problemy a na co
bych to zatim urcite nepouzil a zustal u UFS.
Mirek
More information about the Users-l
mailing list