Parteneriat Apple – IBM

Apple și IBM, vechi inamici până de curând, își vor uni forțele pentru a redefini peisajul business. Dacă până acum Apple se axa în special pe segmentul de divertisment iar IBM era sinonim cu soluții pentru mediul de afaceri, cele două companii vor începe în următoarele luni o integrare a serviciilor pentru clienții lor. Astfel, IBM va dezvolta și distribui dispozitive cu iOS clienților săi (în industrie, medicină, servicii bancare, telecomunicații, asigurări etc), va dezvolta zeci de aplicații pentru a-și aduce soluțiile proprii de cloud computing pe dispozitivele iOS iar Apple, prin serviciul AppleCare, va oferi consultanță pentru clienții enterprise.

Este o mișcare interesantă, care probabil va înlătura complet deja defuncta platformă Blackberry și cu siguranță va genera un răspuns din partea Microsoft, companie înfiptă destul de serios în sectorul enterprise. Eu mă gândesc doar la ce ar însemna pentru clienții celor două companii dacă Watson s-ar îndrăgosti de Siri.

Comunicatul de presă este disponibil pe site-ul Apple.

Cum convertim .iso în .img?

Îmi place să instalez și să testez diverse sisteme de operare dar un CD sau DVD cu Linux sau orice alt sistem de operare modern devine depășit în 6 luni, așa că ar fi o risipă de bani și spațiu să păstrez toate sistemele de operare pe care le testez. De când există stick-uri de 8GB la prețuri decente și USB 2.0, este mult mai comod să instalăm un sistem de operare direct de pe stick. Cum facem însă asta, dacă avem la îndemână doar o imagine .iso? Nu întotdeauna merge să scriem un .iso pe un stick USB din Disk Utility, dar OS X oferă câteva unelte prin care putem converti imaginea .iso în .img, format care poate fi scris fără probleme pe un stick.

Înainte de toate, trebui să descărcăm fișierul .iso dorit. Apoi, să avem la îndemână un stick USB cu spațiu suficient. Asigurați-vă că datele de pe stick sunt salvate și în altă parte, deoarece următorii pași vor șterge complet conținutul acestuia.

Pentru a converti un .iso într-un .img, folosim următoarea comandă:

hdiutil convert /cale/către/imagine.iso -format UDRW -o /cale/către/imagine.img

OS X va adăuga automat extensia .dmg fișierului nostru, așa că vom avea de fapt imagine.img.dmg, dar acest lucru nu ne încurcă prea mult. Putem oricând redenumi fișierul din imagine.img.dmg în imagine.img.

Acum suntem gata să scriem fișierul .img pe stick-ul USB. O putem face simplu din Disk Utility, dar dacă tot avem Terminalul deschis, haideți să o facem manual.

Introduceți stick-ul în portul USB. În continuare, trebuie să vedem ce număr îi alocă sistemul nostru noului device. Pentru acest lucru, rulăm comanda:

diskutil list

Identificați din listă numărul corespunzător discului USB. Atenție, să nu confundați device-ul USB cu un disc intern, pentru că veți pierde toate datele de pe el dacă veți continua! Presupunem că este /dev/diskN, iar numărul N poate să difere de la un sistem la altul.

diskutil unmountDisk /dev/diskN

Această comandă va face ca discul în cazuă să fie inaccesibil operațiunilor uzuale, putând fi accesat de sistem pentru formatare. Din nou, asigurați-vă că ați înlocuit /dev/diskN cu numărul discului vostru (/dev/disk2, de exemplu).

sudo dd if=/cale/către/imagine.img of=/dev/rdiskN bs=1m

Folosind /dev/rdiskN în loc de /dev/diskN va face ca scrierea să se facă la o viteză mai mare, device-ul fiind astfel accesat în modul raw.

Veți fi nevoit să introduceți parola, apoi așteptați câteva minute. Terminalul nu va oferi nicio informație în timpul scrierii și va dura mai mult sua mai puțin, în funcție de dimensiunea imaginii și de calitatea stick-ului USB. La final, veți avea din nou control asupra cursorului și vor fi afișate câteva informații despre operațiunea de scriere.

Nu mai rămâne decât să boot-ați sistemul de pe stick-ul USB ca și cum ar fi o unitate optică.

Un iMac G3 în 2013

Acum câteva săptămâni am văzut un iMac G3 (albastru) funcțional, scos la vânzare. Prețul mi s-a părut destul de bun, așa că nu am stat prea mult pe gânduri. L-am comandat și după câteva zile a și ajuns la mine. Spre marea mea surpriză, iMac-ul chiar era funcțional. În afară de unele mici zgârieturi laterale abia vizibile, arată și se comporta foarte bine pentru un computer apărut acum 13 ani.

M-am pus imediat pe treabă și a început o perioadă haotică, în care instalam câte 2–3 sisteme de operare pe zi. Nu mai știu ordinea, dar săracul meu iMac a trecut prin următoarele Mac OS 9.2.2, Mac OS X Tiger, Mac OS X Panther, OpenBSD 5.3 și -current, FreeBSD 9.2 și 10.0-beta, Debian 7. De mai multe ori fiecare. Am încercat și un Mac OS X Server “Rhapsody” dar nu a fost să fie.

Avem un iMac G3, cum îl folosim?

Între timp, încercam să îi găsesc o întrebuințare:

  • Player audio, dar am un alt computer chiar lângă el care are un sistem audio 2.1 mult mai bun decât boxele de altfel excelente ale iMac-ului. Plus mai mult spațiu la dispoziție și o librărie iTunes ordonată.
  • Platformă pentru retrogaming, am încercat și asta. Până la urmă, jocurile vechi nu mai sunt chiar atât de interesante. Desigur, pot juca StarCraft pe el, dar de ce să mă chinui jucând StarCraft cu un mouse cu un singur buton, când pot juca același StarCraft pe computerul de lângă el? Iar alt joc vechi care să ruleze pe iMac și care chiar să mă captiveze mai mult de 10 minute nu am găsit.
  • Webserver iese din discuție, pentru că bănuiesc că nu e foarte atent la câtă energie consumă iar o soluție de backup nu e foarte comod de implementat (acces dificil la disc, USB v1 etc). Iar astăzi sunt variante virtuale mult mai bune, care probabil costă cam cât diferența de preț al factura electrică. Deși iMac-ul e  silențios, nu m-ar deranja dacă ar rula permanent.
  • Editor de text. Ei bine, asta da. Îl pot transforma în mașină de scris. Să vedem cum.

Mașină de scris

După ce decizia a fost luată, urma căutarea unui mediu cu adevărat folositor. Așadar, în primă fază, aveam nevoie de un editor de text. Simplu, veți spune. S-a dovedit a fi mult mai complicat decât anticipasem. Deși editoare de text se găsesc la tot pasul și de toate felurile, eu aveam două nevoi esențiale:

  • Mod full-screen. Din două motive: monitorul iMac-ului este un CRT, așa că prefer să-l folosesc la frecvența maximă pentru a nu-mi afecta prea mult ochii, dacă stau cu nasul în el câteva ore. Iar la 95 Hz, o frecvență acceptabilă pentru mine, rezoluția poate fi de doar 800×600. Asta, împreună cu o diagonală nu prea generoasă, face ca un editor de texte care rulează în fereastră să pară aglomerat, cu butoane, linii ale ferestrei, meniuri etc. Un mod full-screen înlătură toate aceste decorațiuni deloc necesare scrisului;
  • Suport pentru diacritice, adică suport pentru Unicode. De obicei, scriu texte în românește, așa că am nevoie de caracterele speciale. Asta se traduce și printr-un sistem de operare care să se descurce cu un layout românesc al tastaturii.

Ei bine, căutarea nu a fost simplă. Un editor care părea că îndeplinește cerințele de mai sus era chiar vim. Spre deosebite de alte editoare, are un plugin care permite criptare prin GPG, o unealtă destul de utilă pentru paranoici. Pentru vim cerințele erau minime, nu aveam nevoie decât de un Linux/BSD în consolă, fără X (nici nu am reușit să pornesc X-ul pe iMac, indiferent de sistemul de operare, cred că există un bug în versiunea actuală de X pe care nu se mai chinuie nimeni să-l rezolve având în vedere vârsta plăcii grafice). Fiind rulat direct în consolă, era deja full-screen, însă problema apărea la diacritice. wscons din OpenBSD nu are suport în consolă pentru layout românesc, trebuia recompilat, însă pentru asta trebuia repartiționat discul, deci o reinstalare. Prea complicat, trebuie să existe soluții mai simple. Se pare că nici în FreeBSD și Debian nu este simplu de configurat consola să accepte caractere speciale, cel puțin nu pe PPC. În plus, vim ar fi necesitat o serie de configurări suplimentare pentru a-l adapta prozei, și nu codului, așa că nu știu cât de comod mi-ar fi fost în final. Așa că am renunțat la vim și am privit mai departe.

Pentru că un Linux/BSD iese din discuție, să vedem ce oferă sistemele de operare de la Apple. Mac OS 9.2.2 este drăguț cu un aer retro interesant. Aproape că m-aș putea obișnui cu el. Dar suportul pentru Unicode șchioapătă și editoarele de text cu full-screen par să lipsească cu desavârșire. Sau sunt prea vechi pentru a fi cu adevărat utile, iar vechi înseamnă fără Unicode. Există chiar și o variantă mai veche de vim care merge pe Mac OS 9, mai există SUE care se laudă cu suport pentru Unicode, dar nu am full-screen. Așa că mergem spre OS X.

Mac OS X Panther se mișcă excelent pe iMac G3. Sunt câteva editoare care au versiune mai vechi încă disponibile pentru Panther: TextWrangler, BBEdit, Smultron, xPad, Nisus și Mellel. Ultimele două au chiar și mod full-screen, dar sunt prea complexe pentru ce am eu nevoie, nu sunt gratuite și… scroll-barul din dreaptă mă irită.

Concluzia mai multor zile de instalări și reinstalări de sisteme de operare? Un computer funcționează cel mai bine cu sistemul de operare pentru care a fost gândit. Un Linux/BSD poate fi rulat pe iMac, dar apar bătăi de cap suplimentare. Un Mac OS 9 sau Mac OS X oferă mai multă funcționalitate, mult mai rapid.

jDarkRoom

În cele din urmă, am găsit soluția aproape ideală și se numește jDarkRoom. Este o clonă de WriteRoom scrisă din păcate în Java, iar ultima versiune rulează doar în Java 1.5, iar pentru asta am nevoie de Mac OS X Tiger. Ei bine, Mac OS X 10.4 nu este chiar cel mai sprinten sistem de operare pe care îl putem instala pe un iMac G3, dar, cum nu am de gând să petrec ore întregi în softuri de benchmark, eu zic că e un compromis bun. jDarkRoom are un mod fullscreen perfect, fonturile și culoarea acestora poate fi modificată (deși setarea din oficiu, acel verde pe negru este perfectă, cred că nu ar strica să încerc niște variante de culori bazate pe Solarized), salvează automat la un interval de timp ales un backup în /tmp și chiar știe să exporte în Markdown, ceea ce nu e puțin lucru.

Alte setări

Pentru layout-ul românesc, folosesc fie pachetul lui Sorin Paliga, fie un layout propriu, creat cu Ukelele. Pentru a înlătura mouse-ul de pe ecran, există Cursorcerer (care poate dezactiva cursorul după un anumit număr de secunde sau la apăsarea unor taste). Surprinzător, ultima versiune de Dropbox (2.4.6) poate fi instalată și pe Tiger/PPC. Mă temeam că spațiul ocupat de fișierele mele din Dropbox ar putea fi o problemă, dar nu e pentru că pot alege care din foldere să fie sincronizate pe Tiger, așa că nu are rost să-mi ocup tot discul cu fișiere pe care nu le voi folosi niciodată pe iMac. În schimb, sincronizez unul sau două foldere, pentru a salva în nori textul pe care-l scriu în jDarkRoom (și pentru a-l propaga pe alte computere).

Lucrul cu jDarkRoom este foarte simplu și elegant: F1 pentru Open, F2 pentru Save, F3 pentru Save As.., F4 pentru New File, F5 pentru Help, F6 pentru Settings, F7 pentru Find, Ctrl-Cmd-S pentru export în Markdown. Cine are nevoie de mai mult?

Cu un font Monospace de 16 pe un ecran de 800×600 și o setare în jDarkRoom cu margini de 0–0 stânga-dreapta, am pe o linie 80 de caractere. Dar parcă textul este puțin cam lăbărțat, așa că am pus o margine de 50–50 și acum am 70 de caractere. Perfect.

Am încercat și un soft care făcea ca orice tastă apăsată să imite sunetul unei mașini de scris. Deși este amuzant primele cinci minute, devine deranjant destul de repede, atât pentru mine cât și pentru cei din jur.

În viitor, s-ar putea să folosesc și plugin-ul de WordPress care știe să caute în Dropbox fișiere pentru a le posta pe blog. Ar fi mai rapid decât să deschid Safari sau TenFourFox pe Tiger, din moment ce viteza nu este una extraordinară iar paginile web complexe din ziua de azi i-ar face viața și mai grea bătrânulu iMac. Iar pentru o experiență completă, am setat ca jDarkRoom să pornească automat. Acum am o mașină de scris virtuală și iMac-ul nu stă să adune praf într-un colț ci, după 13 ani, încă este util.

ZFS și OS X (II)

Dacă data trecută am instalat ZFS pe OS X, de data asta încercăm să și folosim noul sistem de fișiere. Spuneam că este destul de complex, așa că nu vă așteptați să deschideți Disk Utility și să formatați partiția în formatul ZFS.

Atenție, în cele ce urmează vor fi descriși pași care duc la pierdea datelor. Nu uitați de backup și pregătiți-vă pentru ce-i mai rău. Să nu spuneți că nu ați fost avertizați :)

Ceea ce urmează se aplică oricărei implementări ZFS, nu contează dacă aveți MacZFS , OpenZFS sau ZEVO, atâta timp cât este vorba de v5000 (acolo unde sunt diferențe față de v28, va fi menționat). De asemenea, majoritatea pașilor următori nici măcar nu sunt specifici OS X-ului, ei putând fi aplicați cu succes și în FreeBSD, Linux sau OpenIndiana.

Pentru a profita cât de cât de facilitățile oferite de ZFS, voi folosi două discuri identice, care vor fi folosite ca mirror. În acest fel, ZFS se va putea vindeca singur dacă detectează date corupte, prin compararea acesteia cu copia aflată pe celălalt disc. În plus, defecțiunea unui disc nu va duce la pierderea datelor (similar cu RAID1).

Este recomandat să ștergeți discurile cu zerouri, dar este o operațiune care durează câteva ore și nu am avut răbdare. Acest lucru se poate face din Disk utility -> Erase -> Security options și mutați sliderul spre dreapta cu o poziție. Eu l-am lăsat la stânga și a fost extrem de rapid. Apoi dați unmount la discurile respective.

În Terminal, identificați care sunt cele două discuri pe care doriți să le formatați ZFS:

diskutil list

În cazul meu, au fost disk1 și disk2.

Să trecem la treabă și să creeam un pool, adică ierarhic, structura primară din cadrul ZFS-ului. Nu voi intra în amănunte cu privire la detalii legate de ZFS, le puteți găsi structurate în documentația oficială. Pentru mine, în cazul de față, un pool înseamnă colecția celor două discuri.

zpool create -f -o ashift=12 -O casesensitivity=insensitive -O compression=lz4 -O atime=off -O normalization=formD STORAGE mirror /dev/disk1 /dev/disk2

  • ashift este un parametru setat în funcție de tipul discului fizic. Dacă aveți discuri vechi, cu lungimea unui sector de 512 octeți, ashift poate avea valoarea ‘9’. Dacă aveți un disc mai nou, cu sectoare de 4K, ashift va fi ’12’. Dar dacă ashift are o valoare mai mare, nu este nici un fel de problemă, așa că dacă nu știți ce tip de HDD aveți, lăsați ashift=12 și nu vor fi nici un fel de probleme. ÎNsă invers nu e în regulă, dacă folosiți ashift=9 cu discuri de 4K, vor fi probleme de performanță. Dacă plănuiți în viitor să folosiți SSD, ashift va trebui să fie 13;
  • pentru că discul va fi folosit (și) sub OS X, nu-l vom face casesensitive, pentru a nu genera alte probleme;
  • ZFS suportă compresie în timp real, așa că folosim algoritmul lz4. Această opțiune este diposnibilă doar în ZFS v5000, astfel că pool-ul nu va fi accesibil din sisteme cu ZFS v28. Pentru a asigura compatibilitatea cu v28, aveți nevoie de opțiunea ‘-version=28′ și ‘compression=on';
  • atime se referă la access time și din motive de performanță, de regulă este dezactivat;
  • Don Brady recomandă normalization=formD pe OS X, așa că nu o să îl contrazic, o fi având omul motivele lui;
  • STORAGE este numele pool-ului, puteți alege altul, care vă este mai comod;
  • mirror este destul de evident ce efect va avea
  • /dev/disk1, dev/disk2 sunt cele două discuri pe care sistemul le va vedea ca un singur pool. Atenție maximă la aceste două argumente, la voi aproape cu siguranță numerele discurilor vor fi diferite.

Pentru a vedea starea pool-ului, rulați în Terminal:

zpool status

Cifrele din cele trei coloane reprezintă erori ale sistemului de fișiere. Cât timp sunt zero, e de bine.

E de preferat să vă însușiți noul pool înainte de a copia ceva în el:

sudo chown -R <username>:staff /STORAGE

Acum, pentru a profita la maxim de ZFS, putem creea seturi de date (datasets). Acestea vor fi văzute ca discuri virtuale și vor ușura procesul de generare de snapshot și backup astfel: în loc să faceți un snapshot întregului pool (care la mine are aproape 1 TB), puteți genera snapshoturi pentru fiecare set de date în parte. De exemplu, să presupunem că dorim să avem trei foldere: Poze, Muzica, Filme. Le putem lăsa foldere, ca până acum, sau putem creea trei seturi de date, astfel:

zfs create STORAGE/Poze
zfs create STORAGE/Muzica
zfs create STORAGE/Filme

Dacă nu au apărut deja pe desktop, deschideți Finder și le veți vedea ca discuri virtuale, ierarhic aflate sub discul STORAGE.

Se pot genera și subseturi și sub-subseturi de date:

zfs create STORAGE/Filme/Seriale
zfs create STORAGE/Filme/Documentare

sau

zfs create STORAGE/Filme/Seriale/StarTrek/TNG

dar am considerat că pentru nevoile mele, un singur nivel de subset este suficient.

O altă facilitate a ZFS este posibilitatea de a genera snapshoturi, la care se poate reveni în viitor. Desigur, vor consuma spațiu în timp, dar usnt deosebit de utile pentru backup. Nu uitați, chiar dacă aveți mirror, acest lucru nu înseamnă backup! Înseamnă protecție la erori și protecție în cazul unei defecțiuni. Pentru backup este nevoie de un disc separat, de preferință formatat tot cu ZFS. Să vedem cum procedăm.

Înainte, să generăm un snapshot al colecției de muzică:

zfs snapshot STORAGE/Poze@snap1

Presupunem că avem un alt disc cu ZFS în preajmă, care are un pool denumit BACKUP. Pentru a face backup-ul colecției de muzică de la STORAGE pe BACKUP, procedăm în felul următor:

zfs send STORAGE/Poze@snap1 | zfs recv BACKUP/Poze

Dacă după un timp, dorim să aducem la zi backup-ul, vom genera un nou snapshot:

zfs snapshot STORAGE/Poze@snap2

și îl vom transfera incremental:

zfs send -i  STORAGE/Poze@snap1  STORAGE/Poze@snap2 | zfs recv BACKUP/Poze

Nu-i așa că e elegant, simplu și că vă duce cu gândul la Time Machine?

Dacă doriți să folosiți pool-ul în alt sistem de operare, acesta va trebui exportat:

zpool export STORAGE

Pentru importul său, se folosește evident:

zpool import STORAGE

Priviți aceste comenzi ca pe un fel de mount/unmount. Nu este nevoie de aceste comenzi înainte de reboot, sistemul are grijă să facă un unmount curat al discurilor, dar dacă intenționați să importați pool-ul în FreeBSD, de pildă, se recomandă un export manual.

Pentru a scana sistemul de erori, acesta trebuie „frecat” cu scrub:

zpool scrub STORAGE

Procesul este destul de lung și poate dura câteva ore, în funcție de performanțele computerului (procesor, RAM etc), dar în acest timp, discurile respective pot fi folosite.

Verificați starea procesului de scanare astfel:

zpool status STORAGE

Veți fi informat cu privire la cantitatea de date scanată și la timpul estimat până la finalizarea procesului.

Dacă vă incomodează, îl puteți întrerupe și îl puteți lăsa să frece discurile peste noapte:

zpool scrub -s STORAGE

Pentru a accesa toate informațiile despre pool și seturile de date, rulați:

zfs get all

Dacă ați optat pentru încărcarea manuală a extensiilor, atunci după fiecare reboot, Finder vă va spune că nu poate folosi cele două discuri și vă întreabă dacă nu vreți să le inițializați. Nu vreți, ignorați ce spune Finder și porniți ZFS-ul cu zfsadm - k, după cum am văzut în episodul trecut.

Ar mai fi de povestit despre ZFS, dar în mare, cam acesta ar fi punctul de plecare. Documentația este stufoasă, dar merită răsfoită. Și comunitatea OpenZFS este una destul de prietenoasă, așa că dacă întâmpinați probleme, puteți oricând intra pe IRC pentru răspunsuri rapide (#openzfs și #mac-zfs, în rețeaua Freenode).

ZFS și OS X (I)

S-a mai discutat aici despre ZFS. Apple a fost, se pare, la un moment dat interesantă de acest sistem de fișiere și zvonurile spuneau că trebuia să-și facă debutul în (Snow) Leopard, pentru a înlocui bătrânul HFS+. Nu a fost să fie, probabil nu atât din cauza problemelor tehnice, cât de cele cauzate de licența dificilă a ZFS.

Scurt istoric

Inițiat de Sun pentru al său Solaris acum aproape 10 ani, ZFS se dorește a fi un sistem de fișiere al viitorului. Z vine de la Zeta, adică se vrea a fi ultimul cuvânt în materie de sisteme de fișiere, creat pentru a satisface nevoile tot mai mari în materia de stocare de date și cel puțin până acum se pare că nu are rival. Ce îl face atât de deosebit? Trecând pe lângă faptul că suportă teoretic fișiere cu dimensiunea de 2^64 octeți, 2^48 de fișiere sau partiții de 2^64 octeți, ZFS are și alte caracteristici ce-l fac atractiv: protecție aproape fanatică a datelor, pools, mirrors, raid și snapshots, pentru a enumera câteva din cele mai cunoscute caracteristici ale sale.

Din păcate, Oracle a cumpărat Sun și la un moment dat a încetat să mai facă publice modificările aduse sistemului de fișiere. Ultima versiune cu codul sursă făcut public este versiunea 28 (v28). Oracle a continuat să lucreze la ZFS, însă noile funcții sunt disponibile doar pentru Solaris. Din fericire, de câteva săptămâni, există o coagulare de forțe denumită OpenZFS, care are ca scop o dezvoltare open-source coerentă a sistemului de fișiere, pentru a-l face disponibil pe Linux, OS X, FreeBSD și sistemele open-source bazate pe kernelul illumos (dezvoltat din OpenSolaris, după ce Oracle a renunțat la distribuția open-source a sistemului de operare propriu). De notat că prima variantă după desprinderea de versiunile Oracle se numește v5000 și nu este compatibilă cu versiunea 28 de care pomeneam mai sus. Așa că în acest moment există două ramuri ale ZFS-ului, cea oficială, dezvoltată de Oracle (v34, la momentul scrierii acestui articol) și cea deschisă, dezvoltată de OpenZFS (v5000, denumită astfel pentru a evita confuzia cu ZFS-ul de la Oracle).

De ce am folosi ZFS?

Dacă țineți la datele voastre, s-ar putea ca HFS+ să nu fie o idee foarte bună. Chiar dacă aveți backup, un backup al unui fișier corupt este tot un fișier corupt. Dacă nu mă credeți că HFS+ suferă grav la partea de integritate a datelor, urmăriți vă rog acest slideshow (atenție, conține imagini șocante!). HFS+ este un sistem de fișiere vechi și dacă nu ați avut probleme până acum cu el, nu înseamnă că în viitor veți fi scutit. Așa că dacă sunteți maniaci în ceea ce privește securitatea datelor, continuați să citiți.

Un alt motiv pentru care eu mi-am propus să folosesc ZFS este faptul că pare să fie singura punte între OS X, FreeBSD și Linux. Singurul sistem de fișiere accesibil din toate cele trei sisteme de operare. Bine, ar mai fi Fat32, dar să păstrăm un ton serios al discuției și să povestim despre viitor, nu despre trecut. Un inconvenient ar fi faptul că încă nu poate fi accesibil pe Windows, dar asta se va remedia probabil în viitor și o măcar o modalitate de accesa read-only datele de pe o partiție ZFS va exista cândva. Până atunci, utilizatorii de Windows vor trebui să folosească un Linux/BSD într-o mașină virtuală, așa că posibilități există.

Un al treilea motiv ar fi o modalitate ușoară, rapidă și elegantă de backup, datorită snapshoturilor native (cred că Time Machine din OS X a fost o facilitate introdusă cu gândul la ZFS).

ZFS pe Mac?

A existat cândva ZEVO, o inițiativă privată și cu tentă comercială, care promitea ZFS pe OS X ușor accesibil. Din păcate, din câte știu, nu a ajuns să aibă un produs finit și între timp au fost cumpărați de alții mai mari. Vestea bună este însă că nu era singura modalitate de a folosi ZFS pe OS X, existând în același timp și proiectul MacZFS, care urmărea o abordare open-source și nu una comercială și care încă mai există. Dar cum nimic nu e gratis, pentru a folosi MacZFS, va trebui să vă murdăriți puțin pe mâini cu Terminalul și să cunoașteți destul de bine cu ce se mănâncă ZFS. Proiectul oferă ZFS v28, compatibilă cu ultima variantă liberă oferită de Oracle.

Trebuie să reținem că un sistem de fișiere nu este o aplicație software. Un update al MacZFS nu va face ca datele create cu o versiune mai veche să fie indisponibile. Însă și ZFS este viu și evoluează, s-ar putea doar ca noile facilități introduse să nu fie aplicabile unor configurații mai vechi, dar datele nu vor dispărea. Dacă aveți de-a face cu ZFS, fiți mereu cu un ochi pe versiunea folosită, versiunea sistemului de fișiere și nu a sculelor software folosite pentru a-l administra. Sunt două lucruri distincte.

MacZFS

Acestea fiind spuse, pentru a instala ZFS pe OS X avem două variante. Fie mergem pe mâna celor de la MacZFS, care oferă un installer pentru Mountain Lion, fie încercăm OpenZFS. Installerul nu face altceva decât să pună fișierele la locul lor, să nu vă închipuiți că avem unelte grafice. Însă este o versiune veche a ZFS (v28), iar dezvoltarea mac-zfs va fi integrată de acum cu OpenZFS, așa că mai logic ar fi să ignorăm MacZFS și să trecem direct la OpenZFS, deși în cel de-al doilea caz avem ceva de muncă.

Totuși, în cazul în care preferați MacZFS, mergeți pe site-ul lor și descărcați ultima versiune (74.3.0). Eu am avut unele probleme cu installerul, care nu reușea să termine decât cu un failure de toată frumusețea operațiunea de instalare. Dacă pățiți la fel, aveți iar două variante: fie instalați versiunea precedentă (74.2.0, diferențele dintre cele două sunt minore, ambele conțin ZFS v28), fie mai bine încercați o instalare manuală, conform instrucțiunilor de pe site. După ce ați făcut acest lucru, felicitări, aveți ZFS pe OS X și puteți termina de citit. Într-un episod viitor, voi detalia cum putem să și folosim facilitățile ZFS-ului. Vă puteți opri din citit, dacă ați ales MacZFS, dar veți rămâne blocat la ZFS v28 și nu veți beneficia de noutățile introduse de OpenZFS în versiunile următoare.

OpenZFS

Înainte să continuăm, dacă aveți instalat MacZFS, va trebui să scăpăm de el.

sudo kextunload -b org.maczfs.zfs.fs

Apoi urmăriți instrucțiunile de aici. Dacă folosiți ZEVO, va trebui să restartați sistemul.

Ați decis că aveți nevoie de ZFS și nu vă intimidează Terminalul. Ați ajuns până la acest punct al articolului, deci stați bine și la capitolul răbdare. Perfect, să trecem la treabă. Înainte de a începe, avem nevoie de trei lucruri: Xcode, Xcode Command Line Tools și Homebrew. Eu am instalat Xcode din Mac AppStore, Xcode Command Line tools de pe site-ul Apple. În loc de Homebrew se poate evident folosi și MacPorts, dar am vrut să încerc ceva nou astăzi, așa că am folosit următorul script pentru a descărca și instala Homebrew:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

Simplu, nu? Nu uități șă dați un brew doctor și să faceți cam ce vă recomandă el acolo, e o idee bună să avem un mediu curat înainte de a începe ostilitățile.

Dacă Xcode, Xcode Command Line Tools și Homebrew sunt instalate, putem trece la treabă. Prima dată, ne asigurăm că avem autoconf, automake și libtool în sistem, avem nevoie de ele pentru a compila ZFS (autoconf va fi instalat ca dependință).

brew install automake
brew install libtool

Asigurați-vă că sunteți acasă:

cd ~

Comanda vă va duce în /Users/username. În cele ce urmează, va trebui să aduce sursele ZFS de pe GitHub, să le compilăm și să le instalăm. Sună complicat, dar din fericire există un script care ne ușurează munca. Îl puteți descărca de aici, salva în /Users/username cu numele zfsadm și să-i dați drepturi de execuție:

chmod +x zfsadm

Va trebui să modificăm doar două lucruri: numele utilizatorului curent, în liniile 4 și 6. Atât. Nu uitați de acest detaliu, este vital. Și e o idee bună să creați un folder /Users/username/Developer

mkdir ~/Developer

Urmează să rulăm scriptul, care va descărca sursele și va începe compilarea lor.

./zfsadm

Ar trebui să dureze câteva minute. După ce a terminat și aveți din nou acces la cursorul Terminalului, rulați următoarea comandă:

./zfsadm -k

Aceasta va crea folderul /osxzfs ce conține două kext-uri: spl.kext (pentru compatibilitatea cu Solaris) și zfs.kext și ar trebui să le încarce automat. Verificați acest lucru cu:

sudo kextstat

Dacă primiți ceva asemătăro cu următorul output, înseamnă că totul este în regulă.

0xc000     net.lundman.spl (1.0.0) <7 5 4 3 1>2:46
0x180      net.lundman.kernel.dependencies (10.0.0)
0x1f3000   net.lundman.zfs (1.0.0) <98 97 16 7 5 4 3 1>

Probabil veți dori ca sistemul să încarce de fiecare dată kext-urile de fiecare dată după reboot. La mine acest lucru a dus la un kernel panic, dar e probabil din cauză că folosesc hacktintosh. Dacă se întâmplă să vă deranjeze un kernel panic la boot, reporniți OS X în safe mode, ținând apăsată tasta Shift, mutați kexturile din locul lor și rebootați normal. În acest caz, va trebui să încărcați manual kext-urile de fiecare dată când porniți computerul. un mic inconvenient despre care ne prefacem că nu e atât de deranjant.

Dacă doriți să descărcați manual cele două kexturi, rulați:

./zfsadm -u

Acum că totul a fost compilat, să trecem la instalarea fișierelor binare care ne vor permite să manipulăm discuri cu ZFS. Pentru instalare:

cd ~/Developer/zfs
sudo make install
cd ~/Developer/spl
sudo make install

În ~/.bash_profile (dacă fișierul nu există, îl creem) ar trebui să introduceți următoarea linie:

export PATH=$PATH:/usr/local/sbin

E o idee bună să putem rula comenzile ZFS ca user obișnuit, fără sudo. poate nu e cea mai sigură abordare, dar dacă folosim doar noi computerul e mult mai comod așa. Pentru acest lucru:

cd /usr/local/sbin
sudo chmod +s z*

Ar trebui să puteți rula următoarea comandă fără sudo:

zpool

Dacă nu primiți nici o eroare, ci o listă de opțiuni, înseamnă că ZFS s-a instalat cu succes.

Ca un rezumat, de fiecare dată când veți dori să aduceți la zi uneltele OpenZFS de pe github, rulați următoarele comnezi:

 ./zfsadm
cd ~/Developer/zfs
sudo make install
cd ~/Developer/spl
sudo make install
cd /usr/local/sbin
sudo chmod +s z*

Dacă aveți de gând să faceți update, înainte de zfsadm -k va trebui să rulați

zpool export poolname

pentru a evita un kernel panic.

Pentru a ușura și mai mult lucrurile, putem crea un director bin:

mkdir ~/bin

și apoi să mutăm scriptul zfsadm în ~/bin:

mv ~/zfsadm ~/bin

Introducem calea în profil, adăugând următoarea linie în ~/.bash_profile:

export PATH:$PATH:/Users/<username>/bin

De acum înainte, se poate rula simplu zfsadm în Terminal, fără a mai fi nevoie să vă aflați în directorul /Users/<username>.

În cele de mai sus am descris cum poate fi instalat OpenZFS folosind ultima versiune disponibilă pe GitHub. Nu ne-am atins de date, partiții și discuri, așa că pașii descriși nu vă pun în pericol datele. Despre cum folosim efectiv ZFS pentru stocarea datelor, într-un episod viitor.