ZFS във FreeBSD 8.0
Едно от многото нови неща във FreeBSD 8.0 е поддръжката на ZFS. Друго такова е USB подсистемата в ядрото, тя е пренаписана с цел по-голяма гъвкавост. Аз изпробвах и двете, като минах един 500Gb USB хард диск на ZFS. Идеята на този диск е да бъде непрекъснато с мен, за да не си изгубя данните, ако решат да ми ограбват апартамента отново. Данните на него трябва да са криптирани, за защита от евентуална кражба на самия диск. При включване на диска в компютъра виждаме следното:
ugen2.2: <JMicron> at usbus2 umass0: <MSC Bulk-Only Transfer> on usbus2 umass0: SCSI over Bulk-Only; quirks = 0x0000 umass0:0:0:-1: Attached to scbus0 da0 at umass-sim0 bus 0 target 0 lun 0 da0: <StoreJet Transcend > Fixed Direct Access SCSI-2 device da0: 40.000MB/s transfers da0: 476940MB (976773168 512 byte sectors: 255H 63S/T 60801C)
Хубавото на новата USB система е, че ugen драйвера не пречи на останалите драйвери, не е необходимо да се прекомпилира ядрото за някои глупави принтери например. В случая диска излиза, като da0. Криптография в самата ZFS все още не е имплементирана. По тази причина за криптографията на диска ще използваме GELI. Инициализираме и закачваме криптирания диск:
# kldload geom_eli # geli init /dev/da0 # geli attach /dev/da0
За разлика от повечето други файлови системи, в ZFS не работи просто върху някакъв дял от диска. За да си направим ZFS файлова система, трябва да имаме т.нар. zpool. Той представлява някакво множество от устройства, върху които искаме да разположим нашата файлова система. В нашия случай за zpool използваме единствено целия криптиран диск da0.eli. По принцип за zpool можем да използваме различни дялове от дискове, цели дискове, файлове, и т.н. Например от там можем да конфигурираме RAID или да ползваме даден диск, като кеш на група от други дискове. Както и много други интересни неща. Повече информация има в man zpool. Нашия zpool има уникално име, в случая backup:
# kldload zfs # zpool create backup /dev/da0.eli
По този начин зареждаме ZFS модула в ядрото, създаваме и закачваме в /backup новия zpool. Можем веднага да започнем да го ползваме, като файлова система, записвайки файловете директно на него. Ако го направим обаче, няма да можем да използваме предимствата на ZFS. За това ще създадем три отделни файлови системи на него, за отделните машини, на които ще правим backup:
# zfs create backup/eddie # zfs create backup/marvin # zfs create backup/bistromath
Файловите системи са създадени и закачени по местата си. Вече можем да работим с диска. Това са три различни, файлови системи. Можем да им задаваме различни опции и да ги закачваме на различни места. Те обаче използват един и същи zpool, дисковото им пространство е споделено. Те имат динамично нарастване и намаляване – когато записваме файлове в тях, те вземат пространство от общия zpool, когато трием – връщат пространството в общия zpool. Ако решим, че ни трябва още пространство можем просто да добавим ново устройство в този zpool. Понеже данните от едната машина са много, а подлежат на компресия – задаваме опцията за компресиране:
# zfs set compression=gzip backup/bistromath
По този начин всички записани данни, след задаване на опцията ще бъдат компресирани. Данните на другата машина са важни – за това искаме да записваме по две копия:
# zfs set copies=2 backup/marvin
Естествено, това не е RAID1, в случая имаме само един диск. Ако искаме RAID1 трябва да го организираме на ниво zpool. Правенето на такова копие може евентуално да ни спаси от лоши сектори по диска. За проверка на интегритета на данните се използват контролни суми, които са пуснати по подразбиране на всички файлови системи – checksum=on. Пълен списък с опциите има в man zfs. За проверка състоянието на backup можем да ползваме:
# zpool status
pool: backup
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
backup ONLINE 0 0 0
da0.eli ONLINE 0 0 0
errors: No known data errors
ZFS ни предлага най-различни и доста полезни опции, но за мен най-важното е решаването на проблема с фрагментацията на свободното дисково пространство. Поддръжката на ZFS в 8.0 се води за стабилна, но аз предпочитам да изчакам преди да започна да я ползвам навсякъде. Във версиите преди 8.0 се изискваше сериозен tuning на паметта на ядрото, за използване на ZFS. Това изискване вече го няма, но е препоръчително наличието на поне 2Gb RAM. Не успях да намеря достатъчно информация по темата за използането на GELI със ZFS. Може би този подход крие някакви проблеми?
VitoLight 3
В продължение на десетки години стандартизацията в областта на осветителните системи работеше чудесно. Когато на човек му изгореше някакъв компонент, можеше да отиде в магазина и да си купи нов такъв, запазвайки останалите компоненти на инсталацията. Да, обаче вече не е така. Преди повече от месец, както си седях в стаята ми гръмна лампата. След сваляне на полюлея се оказа, че е прегоряла изолацията на кабелите водещи към една от фасунгите. Елементарен проблем – сменя се кабела и всичко е наред, е да ама не. Китаеца е занитил кабела за фасунгата, а осветителното тяло се държи за тавана хванато през фасунгата. Псувайки китаеца реших, че вместо кабел ще трябва да купя фасунга и тръгнах да търся такава. Оказа се, че такава фасунга няма никъде, понеже не е стандартна. Друга не може да се хване в осветителното тяло, а дори и да се хване – няма как цялото тяло да се държи на нея. Благодарения на Великата китайска социалистическа революция, дивия български капитализъм и глупавите ЕС стандарти – отидох и си купих нов VitoLight полюлей, с три такива осветителни тела. Сега ще го монтирам него, а стария ще ми седи за резервни части. Когато след 1-2 години ми се скапе някоя фасунга, ще монтирам от старите. Като свършат “резервните части” и VitoLight изчезне от пазара – ще трябва да направя ремонт и да мина на друг вид осветителни тела. Къде е сега г-жа Кунева, да напише нов стандарт, да глоби печалбарите и да научи китайците да работят добре?
Дянковизми 9
Феодалните старци, белите престилки и малките пици ще изядат главата Дянкова.
Самотен джип в нощта на Halloween 2
Католическата църква твърди, че в нощта на Halloween се случват ужасяващи неща. Те не подминаха и нашата улица. Съседите имаха уникално Halloween преживяване, което няма да забравят скоро. Всичко започна с едно звънене на пожар на нашия звънец. Когато отворих се качи съседката и паникьосано започна да ми обяснява нещо, от което успях да разбера само “фарове”, “джип” и “колата”. Попитах дали става нещо с моята кола, но очевидно не беше с нея. Слязохме долу и видяхме на улицата един подпрян с камъни под гумите голям джип Mitsubishi и развълнувани хора наоколо. Оказа се, че съседите тръгвайки с тяхната количка (нещо от сорта на Ford Fiesta) забелязали, че паркиралия зад тях джип ги следва плътно отзад, без шофьор в него. Понеже улицата ни е леко стръмна, се наложило малката количка да “подпира” джипа, докато някой дойде да го спре по някакъв начин. В противен случай, този джип, без спирачки и без да е включен на скорост, щеше спокойно да потегли надолу по улицата и да се набие в двора на съседна къща. Хората бяха успяли да го спрат подпирайки гумите са камъни, събрани от дупките на нашата разбита улица. Колата им беше успяла да се измъкне, и да замине по пътя си. Започнахме да се чудим какво да правим с джипа, за да не убие някой и да не влезе в двора (а може би и първия етаж) на къщата. По улицата мина един съсед, който се оказа, че работи в “сферата на МВР”. Започна да звъни телефони на колегите си и да обяснява какво е станало. Беше стигнал до третото телефонно обаждане, когато на мен ми стана студено и се прибрах. Хората продължиха да чакат, понеже той обеща, че ще дойде паяк да го вземе. След около 2 часа тръгнах от нас на Halloween парти, джипа си седеше, където го бяхме оставили. Съседите обясниха, че дошли някакви от КАТ, написали акт на шофьора и си заминали. Може би идеята е била джипа да се стресне от акта и да набие сам спирачки. След още 5 часа аз се прибрах от партито, джипа продължаваше да стои там, крепейки се на същите тези камъчета. И така, този джип прекара самотно и без шофьор нощта на Halloween. Ако беше тръгнал и убил някого, хроникьорите от КАТ пак щяха да дойдат и просто да напишат още един акт. Ако беше съборил съседската ограда – пак можеше да се напише акт. Днес на обяд джипа го нямаше. Можем само да се надяваме следващия път собственика да не забравя къде се намира ръчната спирачка. Но даже и да я забрави – какво толкова, ще отнесе някой и друг акт.

