Archive for the 'FreeBSD' Category

ZFS Status

Мина много време откакто за последен път писах за ZFS. От тогава изтече доста вода. По самата система не знам да има някакви драматични промени или иновативни нови възможности, но…

ZFS/OpenSolaris

ZFS вече е официалната файлова система на OpenSolaris. Поддържа boot, права за администрация и въобще всичко.

ZFS/FreeBSD

FreeBSD 7.0 излезе официално с експериментална поддръжка на новата файлова система. По кода, който е в официалното хранилище на проекта не се работи много, но за сметка на това Павел Давидек (човека, който е изцяло виновен за FreeBSD порта) и още няколко момчета са направили чудеса в отделното им хранилище. Вече се поддържа ZFSboot, делегирана администрация, достъп до списък с повредени файлове, ZPool аксесоари, много подобрения по общата стабилност и производителност и други.

Кодът с новите благинки за сега няма да е достъпен от официалните хранилища, тъй като автора в момента работи по изчистването на кода и се е отдал на regression testing.

Проектът за графичен инсталатор finstall също добави базова поддръжка за ZFS. Всичко това означава, че най-вероятно в следващата голяма версия (8.0) на Дяволската система ще може да използваме файловата система съвсем нормално, без притеснения и ограничения.

ZFS/Mac OS X

Поддръжката на ZFS беше официално обявена само за сървърната версия на OS X 10.6. За мен е интересно обаче, дали Apple ще я интегрира и в тази за крайните потребители. В крайна сметка, възможностите на  ZFS са по-примамливи за хората със сървъри, но тя е идеална и за хората с по един твърд диск - много по-сигурна е, много по-лесен backup.

Но от Apple вече си разработиха система за резервни копия - Time Machine. Начинът по който работи лично аз сметнах за почти гениален и същевременно много прост - използват се най-обикновени hard links, които са познати на повечето UNIX потребители. Единственото нестандартно нещо е, че се използват тия твърди връзки и за директории, което никога не е било “позволено” в света на Юникс. Не съм достатъчно умен за да разбера точно защо, но явно причината е сериозна. Което си е риск от страна на хората от Купертино.

Сега въпросът е дали ще преминат на ZFS където бекъп способностите са по-гъвкави, стандартни и вградени или ще оставят и снежния леопард с 8 годишната HFS+ (базирана на HFS, която е на 20 години).

ZFS/Linux

Както знаем тук нещата са сложни и няма техническа бариера, а само юридическа. GPLv2 е несъвместим със CDDL и подобни. Единственият начин за сега да си поиграете с тази прекрасна файлова система е да я инсталирате с FUSE - нещо, което аз нямам представа как работи, тъй като не се занимавам с Linux, но чувам че било доста по-бавно. И нормално… щом не се намесва ядрото.

Все пак обаче има надежда. Я да видим тук…

Точно така - създателя на Линукс и един от разработчиците на ZFS.

Може да значи  много неща, включително и абсолютно нищо, но надеждата умира последна :-)

GSoC 2008

Google обявиха имената на одобрените проекти, кандидатствали по GSoC. Няма как да не съм щастлив да обявя, че за първи път Enlightenment е в този списък, дано след няколко дни да съм още по-щастлив да обявя по кои от идеите ще работят студенти.

Четеейки списъка не мога да не се зарадвам и на FreeBSD, GIMP, Inkscape (макар че идеите им тази година мисля, че можеха да бъдат далеч по-добри), Scribus, Blender. Изненадан съм от липсата на OpenOffice.org - би ми било интересно да разбера какви са причините да бъдат отхвърлени, лично аз предполагам че е заради директната финансова подкрепа от Sun и други компании.

7.0 New Stuff

Прекрасна статия в ONLamp във формата на интервюта с ключови фигури от FreeBSD ни разкрива в детайл какви са новите неща във версия 7.0.

FreeBSD 7.0-RELEASE

И ето, че след много отлагане и много проблеми 7.0-RELEASE най-сетне е факт!

Анонсът, бележките по изданието, бележките по хардуера.

FreeBSD 7.0-RELEASE Torrents

Преди малко се появиха торенти за 7.0-RELEASE.

До няколко дни ще е официално.  Дерзаем!

Nokia 6120 Classic/FreeBSD

Да свържете Nokia 6120 Classic към FreeBSD система и да обменяте файлове (от компютъра към телефона и обратно) е лесно. Ето как го направих аз.

1) Свързвате USB кабела.

2) Телефона ви пита какъв режим да изберете. Избирате “Прехвърляне на данни”. След това смартфончето обяснява, че MicroSD картата (ако има такава) няма да е достъпна докато е вързано към компютъра.

3) Питате dmesg какво вижда. Отговорът трябва да е такъв:

umass0: <Nokia Nokia 6120 classic, class 0/0, rev 2.00/1.00, addr 2> on uhub2
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <Nokia S60 1.0> Removable Direct Access SCSI-0 device
da0: 1.000MB/s transfers
da0: 968MB (1983751 512 byte sectors: 64H 32S/T 968C)
GEOM_LABEL: Label for provider da0 is msdosfs/Memory card.

4) Телефона се появява като da0. Правим се на много важни (root). Монтираме го с mount_msdosfs:

$> mount_msdosfs /dev/da0 /mnt/phone

Като разбира се точката на монтиране може да е всяка директория.

5) Готово. В /mnt/phone имаме няколко директории: Images, Others, Private, Sounds, System, Videos и вие вече знаете какво да правите. Само не забравяйте да демонтирате телефона след като приключите, че стават страшни неща.

Enjoy.

ZFS Tuning

Ако инсталирате FreeBSD/ZFS със сигурност ще се сблъскате с един проблем: ядрото се панира след няколко часа работа. Защо? За това защото ZFS кешира адски много и не стига пемет. Не, не трябва да слагате още желязо. Не и ако имате повече от 1 ГБ памет. Просто адресното пространство (по-точен превод на address space? Някой?) което е определено за kmem по подразбиране е около 300 МБ, което е много малко за нуждите на ZFS. Независимо от архитектурата трябва да му дадете поне 512 МБ и проблемът е решен. Ето как:

/boot/loader.conf:

vm.kmem_size=”536870912″
vfs.zfs.arc_max=”67108865″

КАКДА: Zfs root on FreeBSD

Въведение

Zfs е последната дума, или по-скоро последният писък във файловите системи. Представя една изцяло нова концепция за това как трябва да работи една такава система, какви възможности трябва да има, какво и как трябва да прави. При нея няма дялове, а просто един “басейн” (pool) в който цопвате колкото си искате файлови системи, които де факто използват неограничено от дялове пространство. Например, да речем, че имате 80 GB твърд диск. Използвате UFS или друга класическа файлова система(Ext3, Resierfs, XFS, няма значение). Инсталирате си някаква система и в началото разпределяте: 1 дял от 1 GB за SWAP, 1 дял от 10 GB за / и един дял от 69 GB за /home. Обаче, след 1 година мястото на / не ви достига поради някаква си причина. Какво правим? Слагаме друг твърд диск, занимаваме се с излишни глупости, имаме излишно главоболие и, разбира се - губим ценно време. А ако бяхме сложили Zfs този проблем въобще нямаше да съществува, защото / щеше да си “вземе” колкото му трябва от /home дяла и дори нямаше да забележим. Е, стига да не ни свърши дисковото пространство като цяло, разбира се.

Zfs привлече вниманието на всички след като Sun направиха анонса, че ще я публикуват като част от OpenSolaris. Някои казват, че заедно с Dtrace това са двете най-хубави неща, които Sun някога са пускали на пазара. За съжаление на Linux потребителите обаче, файловата система (както и всичко, което е под шапката на OpenSolaris) е лицензирана под CDDL. А CDDL е несъвместим с GPL и съответно кода не може да влезе в Linux ядрото.

За мое щастие обаче, този проблем не съществува при BSD лицензираните ядра като това на FreeBSD. И за да съм още по-щастлив Павел Давидек (Pawel Dawidek) направи хубав порт, който в момента е във FreeBSD_7 като експериментална възможност на системата. Все още има няколко остри ръба, но в моя случай само един има съществено значение: FreeBSD не може да стартира директно от Zfs pool (както и от огледален pool и RAIDZ). Boot loader-а  трябва да се нагоди за тази цел и в момента се работи по проблема. Все пак обаче е възможно да използвате Zfs като root фйалова система с един малък, хитър хак, който ще опиша в тази статия.

Внимание! Zfs е нова файлова система и като такава изисква повече ресурси, особено за някои от по-атрактивните си възможности (компресия, снапшоти). Абсолютно непрепоръчително е да инсталирате Zfs на машина с по-малко от 1 GB RAM.

Стъпка 1.

Най-лесно е от диск. Необходим ви е инсталационен таъкъв на FreeBSD 7. В момента на писане последната версия от бранш 7 е BETA1 и върши работа.

Зареждате диска и избирате Custom Install. От там  създавате само един slice за целия диск, в моя случай ad1. След това от менюто Label  правите 1 дял от 512 (UFS) MB за / (ad1s1a) и още един за останалото място от твърдия диск, който няма файлова система и няма точка на монтиране (ad1s1d). Това става по следния начин: избирате му някаква точка на монтиране като ви пита инсталатора, например /blah, след това избирате дяла, натискате бутончето M и променяте точката на монтиране на… никаква. :-)

По желание може да направите още един дял за swap с размери според вашата RAM памет (ad1s1b при мен). Продължаваме с меню Distributions и изибирате минималната система. Трябва да я съберем в рамките на тези 512 MB, все пак. И накрая инсталираме. Всичко би трябвало да мине гладко и ако е така - рестартираме машината.

Стъпка 2.

FreeBSD се стартира и при prompt-а в началото избираме Single User Mode. След като се зареди натискаме Enter, за да ни пусне в sh и пишем:

$_ mount -w / 

И сега започва забавната част. Правим басейнчето, в което ще цопат монтираните файлови системи. Т.е. нашият pool. В този пример той ще заема целия дял ad1s1d, който направихме преди малко.

$_ zpool create lilly /dev/ad1s1d

Думичката “lilly” тук е просто пример и всъщност е името на pool-а. Можете да си изберете друго, каквото си поискате име. Сега да направим няколко точки на монтиране.

$_ 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

Сега да видим какво сме направили:

$_ df -h

$_ zfs list

Ммм… :-)

Сръчкваме rc.conf да включва Zfs при стартиране:

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

И сега, както сте забелязали навярно си имаме директория с името на вашият pool в /. Така де, /lilly в моя случай. Обаче, басейнчето горкото е празно. Да го напълним със съдържанието от UFS slice-a, който направихме. По този начин ще имаме работеща система на Zfs дяла.

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

Тъй. Система имаме. Но уви - не можем да я буутнем…

Стъпка 3.

Проблемът, както вече споменах е, че зареждача (ех, че красива дума) не знае нищо за Zfs и не може да буутва от нея. Съответно, ще трябва да буутва от UFS дялчето, което след това директно ни прехвърля в Zfs, като нашият pool вече се монтира като root, а не като самостоятелна директория както сега. Разбира се. Самият UFS дял пък го монтираме на едно скришно място, но за това след малко…

Първо затриваме /boot директорията в /lilly която току що копирахме от UFS дяла:

$_ rm -rf /lilly/boot

Сега вече правим директорията, в която ще монтираме UFS дяла. След това линкваме, за да сме сигурни, че след това ще можем да обновяваме ядрото от работеща система и че Zfs ще вижда UFS дяла когато стартира.

$_ mkdir /lilly/bootdir

$_ cd /lilly

$_ ln -s bootdir/boot boot

И трябва да кажем на lodaer.conf (който е на UFS дяла) да зарежда Zfs и коя файлова система да използва за / :

$_ echo ‘zfs_load=”YES”‘ >> /boot/loader.conf

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

Друга добра идея е да направите файл /bootdir/etc/fstab със следния ред:

 lilly /        zfs        rw        0        0

Сега редактираме един друг fstab, който ще е “официалният”, демек онзи на Zfs файловата система. В този случай /lilly/etc/fstab  Пишем следното:

/dev/ad1s1a         /bootdir        ufs        1        1

Това ще монтира UFS дяла в /bootdir.

Почти приключихме. Създадените вече файлови системи ги помните, нали? Нека им направим точки на монтиране:

$_ 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

И накрая казваме на zfs да не се монтира самичко, а че ние го монтираме (т.е. не ние, ами loader-a)

$_ zfs set mountpoint=legacy lilly

Стъпка 4.

Рестартираме и сме щастливи!

Още благинки 

Може да сте се учудили защо направих отделни системи за /usr/ports и /usr/ports/distfiles. Защото /usr/pors включва само текстови файлове и спокойно можем да включим компресия там, за да спестим място:

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

Това е прекрасно, но няма за какво да компресираме distfiles/ при условие, че файловете там са архиви (=> вече са компресирани):

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

Аз, както и много други имам повече от един твърд диск. Добавянето на друг твърд диск към същия pool става само с една (една!!!) команда на работеща в момента система. В моя случай това е диска ad3:

$_ zpool add lilly /dev/ad3

И пльооос, още 250 GB в басейнчето :-)

Заключение

Това със сигурност е най-невероятната файлова система на всички времена. Струва си да я използвате, независимо дали сте системен админ, администриращ 150 машини или просто краен потребител, като мен. И все пак имайте предвид, че съществуването й във FreeBSD все още е нещо експериментално и че си иска мощна машина.

Относно Лили

Intel Core 2 Duo 3.0 Ghz CPU

2 GB RAM

150 GB HDD

250 GB HDD

Библиография

Zfs

Zfs commited to FreeBSD

Zfs страницата на FreeBSD Wiki 

Администриране на Zfs (PDF) Внимание! Има разлики в администрирането на Zfs върху Solaris и върху FreeBSD!

Zfs man page (FreeBSD)

 Zpool man page (FreeBSD)

FreeBSD 7.0-BETA1

Днес е хубав ден. Излезе първата бета версия на FreeBSD 7. Новите неща в 7 са наистина много, непълен списък тук. Дерзайте и тествайте!

И ако всичко върви по план на 12 декември би трябвало да излезе 7.0-RELEASE :-)

15.10.07

Може би е просто някакъв странен период… Но се чувствам някак слаб и нищожен. Ниско самочувствие. Комплекси. Аз съм малък, никой, никакъв. Никому. Чудя се, дали просто по природа съм прекалено взискателен към себе си и каквото и да направя/постигна все ми е малко или наистина не правя нищо с живота си… Уж някак ми върви и все пак не ми върви… И въобще не съм креативен последните две-три седмици. Все оставям “за утре”, все нищо не ми се прави, а като започна нещо, разбира се - срещам затруднения (това съм аз, все пак - не може без проблеми) и се отказвам набързо.

***

Винаги съм казвал, че съм от онези хора, които всичко правят сами, но в един момент имат нужда някой да ги побутне и насърчи, прегърне, целуне и т.н. За добро или за лошо все в такива моменти няма такъв човек около мен. Някакви идеи как да изкореня тази нужда?

***

Чувствам се като триглава ламя с мигрена. Толкова не ме е боляла глава отдавна. И очите ме болят, сълзят. Отново чувам как врата и гърба ми ме псуват при всяко протягане. Пръщя, пукам, скърцам. Ебати кошмара…

***

В училище ми отровиха нервите около проклетия бал. Историята е дълга, но замалко щях да се откажа, да си умра на ината и да не отида. Сега май се вразумили. Ще видим. Както казах - достатъчно неконформист съм, за да не ида. А и… Голяма част от тези хора уважавам по-малко от колкото заслужават или не харесвам повече, от колкото трябва. Няма да ми е голям проблем да си остана у дома и да си работя, вместо да гледам пищящи (и/или пияни) момичета в скъпи рокли.

***

Уважение… Ах, уважение. Морал. Ах, морал… Сега, не съм сигурен дали това е за в блога. По-скоро не е. Ама карай…

Според мен уважението трябва да се заслужи някак. Аз не мога и не искам да уважавам някой, само защото ми е роднина или е по-възрастен или е учител или каквото и да е там. Той или тя трябва да направи нещо, което аз да възприема като нещо достойно и така да ме спечели. Сестра ми е един от хората, които аз не уважавам. Да - сестра ми е. Но… Освен, че цял живот съм бил ощетен заради нея - къде чисто финансово, къде по друг начин, извърши тонове простотии и прочие тя сега почти се подигра с мен. Средата на септември, малко след като й платих семестъра от 400 лв. в един колеж, където след 4 години най-сетне се накани да учи ме помоли да й дам 150 лв. назаем, за да изкарат месеца, защото била болна и дала много пари за лекарства. Тя и годеника й. Тогава се замислих - родителите на приятеля й им плащат буквално целия живот - от храната до тока. Но й дадох пари - какво да я правя, сестра ми е. Оказа се, че тия пари били за някаква си фирма за сватбата. Излъгала ме е. А аз много мразя да ме лъжат. Бях и казал, че ако има нужда от пари за сватбата - да се обади, ще помогна ако мога. Защо ме излъга? Идея нямам. Сега, две седмици след обещания срок да ми върне парите още не съм видял и стотинка от нея. Да не говорим, че всячески ме избягва. За капак и се изтърсила някъде, че “той брат ми взима много, ще дава, не го събаря него”.

Егати… Значи, мен в действителност тия 150 лв. не ме събарят. Но това са си 150 лв - за много хора това е цяла пенсия или половин заплата… А и въпросът не е в парите - пари се изкарват винаги. Лесна работа. Въпросът е, защо трябваше да ме излъже и да се подигра е с добротата ми? Защо има такива хора бе… Защо? Ти му правиш добро, то гледа да те прецака. Най-малкото защото сме една кръв да дойде и да каже “бе, брат ми, ей ти 50 лв сега, другите после” или нещо такова, ако толкова няма пари. Или поне да не беше казвала “обещавам, този път ще ти ги върна”. Аз мразя някой да не си държи на думата. Извън кожата си съм просто… Ужасна работа!

***

Ако някой е с машина с 2 или повече процесора или процесора му има две или повече ядра и използва FreeBSD RELENG_7 да си знае, че $MAKEFLAGS -j* не работи с портове и компилиране ядро. Само buildworld. Полудях докато разбера къде е бил проблема, то какво се оказа…

***

Новата Лили прегря. За сега веднъж, след 2 дни нон-стоп работа. Това не бива да става. Чувствам, че пича от магазина е объркал нещата, подозирам твърде много паста по процесора. Айде и там разправии…

***

Пф…

Next Page »