ZFS Zettabyte Filsystemet



Relevanta dokument
ZFS. Linuxadministration I 1DV417. Wednesday, January 23, 13

Linuxadministration I 1DV417 - Laboration 3 Installation av ny hårddisk, RAID och logisk volymhantering

Prestandajämförelse - Sekventiell skrivhastighet i RAID 4 och RAID 5

Administration / Disk Management. EC Utbildning AB

Övning Installation av Gentoo och/eller Arch Linux

Laborationsrapport Projektarbete

Institutionen för Datavetenskap Department of Computer Science

Prestandaundersökning och återställning av degraderade RAIDsystem

BOOK-IT 6.0. Backup Solaris

Övningar för del I av kursen

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn

Prestandaskillnader mellan olika ZFS-implementationer

Filsäkerhet i Windows NT (NTFS)

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Handbok Kfloppy diskettformaterare

Introduktion till hårdvara, mjukvara och operativsystem

Avslutning. Kapitel Komprimering av filer

Programvaror - Jo, tack, det vill vi ha...

Installation av atmel Studio på mac / linux

Installation OBS! Jag utgår från att alla diskar utom just systemdisken är fysiskt bortkopplade under installationen.

Tips och tricks. Några bra tips. Lägg till sökvägar

Allmänt om programvaror och filer i Windows.

Open Source - Eller som vi säger, Fri programvara

Open Source - Eller som vi säger, Fri programvara

Virtuell Server Tjänstebeskrivning

komplett kopia av hårddisken 20 minu En instabil dator som ofta drabbas av fel får du snabbt på rätt kurs med en kopia av Windows och alla program.

Trust-IT Cloud Services

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner

Prestandatest av sekventiella läs- och skrivoperationer i UNIX-liknande operativsystem 4 hp

Städa hemområdet (och andra filsystem)

Dokumentation för VLDIT AB. Online classroom

Jonas Gustavsson. Leverans av 10PB Isilon

PNSPO! Minneskort till CJ. 14 mars 2012 OMRON Corporation

Introduktion till git

Ladda upp filer fra n PLC till PC

Linuxadministration I 1DV417 - Laboration 4 Nätverk, DHCP, säkerhetskopiering, processhantering, Samba och NFS

DIG IN TO Dator och nätverksteknik

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

D A T A U T V I N N I N G F R Å N D I G I T A L A L A G R I N G S M E D I A K U N S K A P S P R O V DT

Versionshantering. Problem som uppstår i större (samt även mindre) projekt:

Projekt Fake för Virtutech

Datorhårdvaruteknik 1DV426 - Laboration Konfiguration av Delat virtuellt diskbibliotek på ATAboy, SVTL

LABORATIONSRAPPORT Operativsystem 1 Laboration 1, Ghost, pingpong och Windows 2003 installation

Unix design. Unix är ett operativsystem från mellan 1969 och 1972, beroende på hur man räknar. Unix utvecklas fortfarande.

Installationshandbok för SunForum 3.2

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Övervakning med GnilronEye

En dummy för FreeNAS Thomas Schrimp Mattsson

Linuxadministration I 1DV417 - Laboration 2 Filsystemet och kickstart. Marcus Wilhelmsson

Nyheter i. Solen Administration 6.6

Marcus Wilhelmsson 12 april 2013

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7

Data Sheet - Secure Remote Access

Anujan Balasingam IDA14 NAND flashminnen

audiocd Rik Hemsley Benjamin Meyer Översättare: Stefan Asserhäll

JAWS Nätverksauktorisering

LAJKA-GUIDE. Jätteguide till molnets 9 bästa. näthårddiskar. 7 De bästa gratisalternativen 7 Så väljer du rätt 7 Smarta säkerhetstips

Sun Fire TM E2900 Komma igång

SQL Server bygger på ett antal Windows tjänster (services), vilket är prioriterade program som körs i bakgrunden under OS kontroll.

Övning 1: Skapa virtuell maskin för utveckling.

22 Användarnas hemmamappar

MaxxECU MDash Android App

Detta dokument skall ge en kortfattad introduktion till Jasmine installationen vid DSV.

IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, ]

Linux på skrivbordet - Myt eller möjlighet

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Inledande programmering med C# (1DV402) Introduktion till C#

Guide inför ett. storageprojekt. Viktiga överväganden inför lagringskonsolidering

irule Status Statusindikering i irule utan feedback från enhet. Skapat av: Pär Skärlund, Sydia Teknik AB

Olika OS. Unix, Linux och Windows. Unix. Unix. En översikt av ett par OS. Titt på hur de gör. Många varianter. Mycket gemensamt. En del som skiljer

KAP 16 BACKUP, RESTORE OCH RECOVERY

Manual - Phonera Online Backup

Förutsättningar: Konto på Azure, kontot har fått File Storage tillagt, Azure Powershell version eller senare.

1 Vad är Versionshantering? 2 Git. 2.1 GitHub

Automatisk start. Anne-Marie Mahfouf Översättare: Stefan Asserhäll

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

UNIX verktyg. Användbara kommandon Fil och informationssökning Tags Versionshanteringssystem

Nexsan lanserar ytterligare en ny modell i sin serie av lagringssystem på den Svenska marknaden.

STYRKAN I ENKELHETEN. Business Suite

Insamlingsverktyg - teknisk beskrivning av metadataformuläret

Kunskapsbank ICARUS DB

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Handbok KBackup. Martin Koller

5 frågor som hjälper dig i valet av redundant lösning

UpTIME. Innehåll: Kallelse till Höstmöte. Updates CD-brännare. Linux-sektionen. Förslag till nya stadgar. Medlemstidning för datorföreningen Update

Advanced Format. Examensarbete i Datavetenskap. En prestandajämförelse av sektorer i RAID. B-nivå. Författare: Jesper Lindgren

Övning: Arbeta med Azure Explorer

Sun Java W1100z och W2100z arbetsstationer: Versionsinformation

Start-Up Customization Applikation för TI-83 Plus

Kort-kort om utdelade användarkonton och datormiljön på NADA

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

Svensk version. Inledning. Innehåll. Specifikationer. PU101 Sweex 2 Port Serial ATA RAID PCI Card

Linuxadministration I 1DV417 - Laboration 1 Installation, användare och allmänt Linuxhandhavande

Elements, säkerhetskopiering och dina bilder

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

Användarmanual. SMS Fjärrkontroll för Värmepump / Air Condition. Modell: GARD

Linuxadministration I 1DV417 - Laboration 7 SSH-magi och systemtrolleri. Marcus Wilhelmsson 6 mars 2013

Sun Fire V1280/Netra 1280 System Komma igång

Transkript:

Andres Fuentes BSD Jgr LX10 2010-10-22 ZFS Zettabyte Filsystemet Introduktion För vissa handlar filsystem bara om lagring ju större desto bättre, för andra handlar det både om lagring och snabb tillgång till filerna. En annan grupp tycker också att de här sakerna är viktiga men att det är vitalt att ha ett skalbart filsystem som ska kunna växa i framtiden, den här gruppen tycker att RAID är en bra lösning eftersom den också ger data redundans. Andra ökar flexibiliteten ännu mer och kör någon volymhanterare ovanpå RAID samtidigt som de kan ta snapshots av sina volymer. Nackdelarna med den här metoden var att RAID kontrollerna är dyra. Komplexiteten hade blivit större och svårare att adressera, den ökade med varje ny implementation. ZFS är systemadministratörens panacé. Alla överkomplexa lager försvinner och administrationen simplifieras. Man kan utan tvekan säga att ZFS är filsystemets filsystem. ZFS Vad är ZFS? Sun Microsystems meddelade 2004 att de höll på att utveckla ett nytt filsystem, året därpå kom källkoden in i trunk trädet på Solaris utveckling. 2006 meddelade Sun att deras nya filsystem hette ZFS och att den skulle inkluderas i Solaris 10. ZFS är en ny sorts filsystem som ger en simplifierad administration, transitional semantics (övergångssemantik), datorintegritet, feltolerans och en enorm skalbarhet. ZFS är inte en förbättring av den nuvarande teknologin; fundamentalt är det en ny annalkande data administration. Detta föreställer en modell som sammanställer lagring och utesluter konceptet av volymhantering och problemen associerade med partitioner, försörjning av resurser, förlorad bandbredd och immobiliserad lagring. ZFS kan lagra 16 Exabytes i varje pool (16 miljoner Terabytes). ZFS är ett 128-bits filsystem, den kan alltså adressera 18 triljoner mer gånger data än ett 64-bits system. Filsystemet är designad att bli så pass stor att den aldrig kommer att drabbas av våra psykiska begränsningar. Ett exempel om ZFS förmåga: om en användare skulle skapa 1000 filer per sekund, skulle det ta honom 9000 år för att nå filsystemets lagringsgränser. Operativsystem som stödjer ZFS ZFS är del av Oracles Solaris operativsystem, den är tillgänglig till både SPARC och x86 baserade operativsystem. Eftersom koden är fri programvara har filsystemet portats till andra operativsystem och plattformar: - OpenSolaris (är den fria versionen av Solaris och kommer med ZFS som default) - FreeBSD (ZFS har varit del av FreeBSD sedan version 7, den är inte default) - GNU/kFreeBSD (FreeBSD kärnan med ett GNU userland. ZFS är inte default) - FreeNAS - NetBSD Tyvärr har ZFS inte kunnat portas till GNU/Linux på grund av inkompatibilitet mellan licenserna GPL

och CDDL, filsystemet kan inte levereras direkt i Linuxkärnan. Dock finns det en pågående utveckling av ett filsystem med samma egenskaper som ZFS har men licensierad under GPLv2 till Linux kärnan som heter Btrfs (utalat Butter-FS eller Btree-FS). Särdrag hos ZFS Storage pools ZFS använder konceptet av storage pools, också kallad zpool, för att hantera psykiska lagringsenheter. Förr i tiden var filsystemen uppbyggda ovanpå en enda psykiskt enhet. För att adressera flera enheter och tillföra data redundans, var konceptet av volymhantering introducerat för att ge en representation av en enda enhet så att filsystemen inte skulle behöva modifieras för att utnyttja flera diskar. Vad ZFS gör är att lägga till enheterna i en pool istället för att vara tvungen att skapa virtuella volymer. Poolen beskriver de psykiska karakteristikerna av enheten och agerar som ett egenmäktigt data lager där filsystem kan skapas. Filsystem är inte längre begränsade i enskilda diskar, ZFS tillåter dela med sig diskutrymmet med alla filsystem som finns i poolen. Med den här tekniken behöver man inte längre fastställa i förväg filsystemets storlek, filsystemet växer automatiskt i diskutrymmet som det har blivit tilldelat till poolen. Trasnactional Semantics ZFS är ett övergångsfilsystem, det betyder att filsystemets tillstånd alltid är jämnt i disken. Traditionella filsystem skriver över datan på plats, vilket betyder att vid ett strömavbrott, mellan tiden en data block tilldelas och när den länkas in till en katalog, kommer filsystemet att lämnas i ett ojämnt tillstånd. Nyligen har filsystemen introducerat konceptet av journaling. Journal processen sparar händelserna i en skild journal som sedan kan spolas tillbaka om ett systemkrasch inträffar. Nackdelen med journalförande filsystem är att de kan ha en hög overhead med metadata eftersom datan måste skrivas två gånger till journalen. Med ett övergångsfilsystem hanteras datan med copy-on-write semantiken. Den grundläggande tanken är att om flera systemanrop begär resurser som ursprungligen skiljts, kan alla ges pekare till samma resurs. Denna funktion kan bibehållas tills ett systemanrop försöker ändra sin kopia av resursen, då en äkta kopia skapas för att förhindra att förändringar blir synliga för alla andra. Om ett systemanrop aldrig gör några ändringar behöver inga ytterligare kopior skapas. Checksums och självläkande data Den traditionella designen menar att vissa fel, tex som att skriva ett helt block till en felaktig plats, kan resultera i att datan blir inkorrekt, på grund av att det inte finns ett checksum error. ZFS lagrar checksum på så sätt att när dessa fel upptäcks kan problemet lätt återhämtas. ZFS har också en självläkande mekanism. Filsystemet stödjer storage pools med varierande nivåer av data redundas. När en felaktig block har upptäckts, ger ZFS den korrekta datan från en annan redundant kopia som reparerar den felaktiga datan, och byter ut den med den korrekta datan. Snapshots En snapshot (eller en ögonblicksbild ) är en read-only kopia av ett filsystem eller volym, den kan skapas snabbt och enkelt. Snapshots går ut på att man skapar en exakt kopia av sitt filsystem som inte tar något extra lagringsutrymme så länge originalet inte förändras. Nu när vi har fått en översikt av ZFS ska vi se några praktiska exempel. ZFS i praktiken Alla exempel här var utförda på en virtualiserad 64-bits miljö med OpenSolaris 2009.06.

Innan man kör ZFS finns det en del viktiga saker att ha i tanken: - Köra ZFS i ett system som kör en 64-bitars kärna. - Ha minst 1GB ledig RAM-minne. - Ungefär 64KB minne förbrukas för varje ZFS montering. ==>Att skapa en pool Här kommer vi att skapa en 4GB stor pool med diskarna c1d0 och c1d1 var och en är 2GB. För att skapa en pool med namnet babilonia använder vi kommandot zpool på följande sätt: zpool create -f [poolens namn] [våra diskar] #/usr/sbin/zpool create -f babilonia c1d0 c1d1 För att se om poolen skapades kör vi kommandot zpool list: # zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT babilonia 3,88G 59,5K 3,87G 0% ONLINE - Vi kan se att poolen är 3,88GB stor och att den är tillgänglig från /babilonia. ==>Att skapa ett ZFS filsystem Nu när vi har skapat en pool kan vi nu definiera filsystemet. Vi kommer att skapa två filsystem, en för att att installera våra applikationer och den andra för annan data: zfs create [poolens namn/filsystem] # /usr/sbin/zfs create babilonia/applikationer # /usr/sbin/zfs create babilonia/data För att lista de nya filsystemen kör vi kommandot zfs igen men denna gången med parametern list: # zfs list babilonia 138K 3,81G 27,5K /babilonia babilonia/applikationer 24,5K 3,81G 24,5K /babilonia/applikationer #babilonia/data 24,5K 3,81G 24,5K /babilonia/data Utmatningen visar oss två nya filsystem som också är synliga med kommandot df -k. Vi kan observera att alla filsystem delar samma utrymme som är 3,81GB vilket är poolens storlek. Filsystemen som skapas med ZFS monteras automatiskt och ständigt. Med ZFS har vi sparat oss stegen med kommandon: format, newfs, mount och editera /etv/vfstab. ==>ZFS egenskaper ZFS filsystemet har egenskaper som kan aktiveras och inaktiveras beroende på våra behov. Vi kan göra detta med kommandot zfs och parametern set för att fastställa, och get för att läsa. Vi ska gå igenom de mest intressanta. Skapa kvotor och reservera utrymme ZFS ger oss möjligheten att kontrollera utrymmet i vårt filsystem, sätta kvotor och reserva utrymme i filsystemet.

Vi ska skapa en kvota för filsystemet babilonia/applikationer och reservera utrymme från poolen till babilonia/data. För att skapa kvotan använder vi kommandot zfs följt med set quota=1gb: zfs set quota=[storlek] [poolens namn/filsystemet] # /usr/sbin/zfs set quota=1gb babilonia/applikationer Om vi kör kommandot zfs list för att se filsystemet kan vi se att kvotan har skapats: # zfs list babilonia 138K 3,81G 27,5K /babilonia babilonia/applikationer 24,5K 1024M 24,5K /babilonia/applikationer babilonia/data 24,5K 3,81G 24,5K /babilonia/data En kvota begränsar utrymmet i filsystemet men garanterar inte ovanstående utrymme. För att reservera utrymmet för filsystemet i poolen, kör vi kommandot zfs med parametrarna set reservation=1gb: zfs set reservation=[storlek] [poolens namn/filsystemet] # /usr/sbin/zfs set reservation=1gb babilonia/data Det finns nu 1GB reserverat i poolen för filsystemet babilonia/data. Nu finns det ingen fara om resten av filerna råkar fylla poolen, vårt utrymme är redan reserverat. Om vi kör kommandot zfls list kan vi se att poolen babilonia har använt 1GB och för resten av filsystemet finns det 2,81GB ledigt utrymme: # zfs list babilonia 1,00G 2,81G 27,5K /babilonia babilonia/applikationer 24,5K 1024M 24,5K /babilonia/applikationer babilonia/data 24,5K 3,81G 24,5K /babilonia/data Komprimerat filsystem ZFS erbjuder nya möjligheter, som att ha ett filsystem med komprimerad information. Kommandot för att aktivera filsystemets komprimering är zfs med parametrarna compression=on. Följande exempel aktiverar komprimeringen på filsystemet babilionia/data: zfs set compression=[on/off] [poolens namn/filsystemet] #/usr/sbin/zfs set compression=on babilonia/data För att inhämta information om filsystemets komprimerings ratio: zfs get [informationen vi vill se] [poolens namn/filsystemet] #zfs get compressratio babilonia/data NAME PROPERTY VALUE SOURCE babilonia/data compressratio 1.00x - Read-only filsystem För att sätta filsystemet i ett read-only läge använder vi kommandot zfs med parametern readonly=on: zfs set readonly =[on/off] [poolens namn/filsystemet] #/usr/sbin/zfs set readonly=on babilonia/data Ändra monteringspunkten För att ändra monteringspunkten i ett filsystem kör vi kommandot zfs och sätter den nya monterings

punkten med parametern mountpoint. Följande exempel visar hur man byter monteringspunkten från babilionia/data till /unixrummet: zfs set mountpoint =[/monteringspunkt] [poolens namn/filsystemet] # cd / # zfs set mountpoint=/aulaunix babilonia/data Vi kolla om det gjordes några ändringar: # zfs list babilonia 1,00G 2,81G 25,5K /babilonia babilonia/applikationer 24,5K 1024M 24,5K /babilonia/applikationer babilonia/data 24,5K 3,81G 24,5K /aulaunix Titta på ZFS eganskaper Hitills har vi använt kommandot zfs set för att sätta egenskaper på filsystemet. För att se värden på ett ZFS filsystem, gör vi det med kommandot zfs och parametern get: zfs get [värdet] pool/filsystem # zfs get quota babilonia/applikationer NAME PROPERTY VALUE SOURCE babilonia/applikationer quota 1G local Med parametern all kan vi se alla egenskaper och default värden. # zfs get all babilonia/applikationer NAME PROPERTY VALUE SOURCE babilonia/applikationer type filesystem - babilonia/applikationer creation Wed Oct 20 19:11 2010 - babilonia/applikationer used 24,5K - babilonia/applikationer available 1024M - babilonia/applikationer referenced 24,5K babilonia/applikationer compressratio 1.00x - babilonia/applikationer mounted yes - babilonia/applikationer quota 1G local babilonia/applikationer reservation none default babilonia/applikationer recordsize 128K default babilonia/applikationer mountpoint /babilonia/applikationer default babilonia/applikationer sharenfs off default babilonia/applikationer checksum on default babilonia/applikationer compression off default babilonia/applikationer atime on default babilonia/applikationer devices on default babilonia/applikationer exec on default babilonia/applikationer setuid on default babilonia/applikationer readonly off default babilonia/applikationer zoned off default babilonia/applikationer snapdir hidden default babilonia/applikationer aclmode groupmask default babilonia/applikationer aclinherit secure default

==>Pool hantering Lägga till nya diskar i poolen För att utöka utrymmet i en pool måste vi lägga till nya diskar i maskinen eller använda partitioner (slices) som inte används på andra diskar. För att utöka poolen använder vi kommandot zpool med parametern add: zpool add -f [poolens namn] [disk som ska läggas till] bash-3.00# zpool list -H babilonia 1,98G 77,5K 1,98G 0% EN LÍNEA - bash-3.00# /usr/sbin/zpool add -f babilonia c0d1 bash-3.00# zpool list -H babilonia 3,97G 184K 3,97G 0% EN LÍNEA - Som vi kan se på zpool add s utmatning har utrymmet ökat från 1,89GB till 3,97GB. Man kan lägga till hur många diskar man tror att det är nödvändigt. Ta bort diskar från poolen Man kan ta veck en disk som är del av poolen med kommandot zpool remove: zpool remove [poolens namn] [disk som ska bort] # zpool remove babilonia c0d1 Eliminera en pool Om vi ska eliminera en pool helt och lämna diskarna fria för att använda de till någonting annat, använder vi kommandot zpool: zpool destroy -f [poolens namn] # /usr/sbin/zpool destroy -f babilonia Kommandot är destruktivt och vi måste vara helt säkra att vi inte har värdefull information i poolen som kommer att tas bort. Byta ut en disk i poolen Om en av diskarna skulle krångla eller gå sönder och måste bytas ut, använder vi kommandot zpool med parametern replace: zpool replace -f [pool] [disk som ska bytas] [ny disk] Innan ändringen: # zpool status conjunto: babilonia limpiar: resilver completed con 0 errores en Wed Oct 20 16:46:57 2010 almoroz ONLINE 0 0 0 mirror ONLINE 0 0 0 c1d1 ONLINE 0 0 0 errores: ningún error de datosconocido Skapa en mirror (RAID 1) Om vi skulle skapa en spegel av två diskar med verktyg som Solaris Volume Manager skulle vi göra en hel del steg för att nå vårt mål. Med ZFS är det mycket enkelt, vi behöver bara kommandon zpool och zfs.

zpool create -f [poolens namn] mirror [diskar] #zpool create -f babilonia mirror c0d1 c1d1 med zpool status verifierar vi om de har skapats korrekt: bash-3.00# zpool status conjunto: babilonia limpiar: no se ha solicitado ninguna babilonia EN LÍNEA 0 0 0 mirror EN LÍNEA 0 0 0 c0d1 EN LÍNEA 0 0 0 c1d1 EN LÍNEA 0 0 0 Skapa en mirror från en befintlig disk Om vi har en zpool formad av en enda disk och vi vill lägga till en disk för att skapa en mirror, avänder vi kommandot zpool med parametern attach: zpool attach -f [pool] [disk] [ny disk] #zpool attach -f almoroz c0d1 c1d1 Kommandot skapar en mirror bestående av diskar, c0d1 som redan fanns i maskinen och den nya disken c1d1. Byta ut en disk från spegeln Om en av diskarna skulle krångla eller gå sönder och måste ersättas, använder vi kommandot zpool med parametern replace: zpool replace -f [pool] [disk som ska ersättas] [ny disk] Innan ändringen # zpool status conjunto: almoroz limpiar: resilver completed con 0 errores en Wed Oct 20 16:46:57 2010 almoroz ONLINE 0 0 0 mirror ONLINE 0 0 0 c1d1 ONLINE 0 0 0 errores: ningún error de datosconocido Vi byter disken c1d1 mot c0d1s0: #/usr/sbin/zpool replace -f babilonia c0d1 c1d1 och verifierar: #zpool status conjunto: almoroz limpiar: resilver completed con 0 errores en Wed Oct 20 16:46:57 2010

almoroz ONLINE 0 0 0 mirror ONLINE 0 0 0 replacing ONLINE 0 0 0 c1d1 ONLINE 0 0 0 errores: ningún error de datosconocido # zpool status conjunto: almoroz limpiar: resilver completed con 0 errores en Wed Oct 20 16:46:57 2010 almoroz ONLINE 0 0 0 mirror ONLINE 0 0 0 c0d1s0 ONLINE 0 0 0 ==>RAID-Z ZFS tillåter skapa RAID-Z vilket är likartad till RAID-5. RAID-5 består minst av tre diskar och i varje disk reserveras det plats åt dataparitet. Fördelarna med RAID-Z är att den har distribuerad paritet, enkel och dubbel. Dubbel paritet tillåter överta en error på en av de två diskarna som RAID-Z omfattar. Att skapa en RAID-Z För att skapa en RAID-Z med enkel paritet kör vi kommandot: zpool create -f [pool] raidz [diskar] Följande exempel visar hur den skapas och verifieras: #/usr/sbin/zpool create -f babilonia raidz c0d1 c1d1 c2t0d0 # zpool status conjunto: babilonia limpiar: no se ha solicitado ninguna babilonia ONLINE 0 0 0 raidz1 ONLINE 0 0 0 c1d1 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 errores: ningún error de datos conocido För att skapa en RAID-Z med dubbel paritet kör vi kommandot: zpool create -f [pool] raidz2 [diskar] # zpool create -f babilonia raidz2 c0d1 c1d1 c2t0d0 # zpool status conjunto: babilonia limpiar: no se ha solicitado ninguna babilonia ONLINE 0 0 0

raidz2 ONLINE 0 0 0 c1d1 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 errores: ningún error de datos conocido Snapshots Vi kan dra stor nytta av snapshots. Tex för att göra modifikationer på tjänster om de inte skulle fungera. Vi har följande filsystem i babilonia poolen: # zfs list babilonia 500M 3,42G 27,5K /babilonia babilonia/test1 500M 3,42G 500M /babilonia/test1 babilonia/test2 24,5K 3,42G 24,5K /babilonia/test2 Filsystemet babilonia/test1 innehar följande filer: # ls -lrt total 1024223 -rw------t 1 root root 104857600 Oct 20 13:10 fil1 -rw------t 1 root root 104857600 Oct 20 13:10 fil2 -rw------t 1 root root 104857600 Oct 20 13:10 fil3 -rw------t 1 root root 104857600 Oct 20 13:10 fil4 -rw------t 1 root root 104857600 Oct 20 13:10 fil5 Vi skapar en snapshot av filsystemet babilionia/test1 med kommandot zfs och parametern snapshots: zfs snapshot [pool/filsystem]@ogonblick #zfs snapshot babilonia/test1@ogonblick Med zpool list kan vi se att ögonblicksbilden har skapats: #zfs list babilonia 300M 3,61G 27,5K /babilonia babilonia/test1 300M 3,61G 300M /babilonia/test1 babilonia/test1@ogonblick 0-300M - babilonia/test2 24,5K 3,61G 24,5K /babilonia/test2 Nu ska vi simulera en liten katastrof genom att ta bort fil4 och fil5: # rm fil4 fil5 # ls -lrt total 614541 -rw------t 1 root root 104857600 Oct 20 13:10 fil1 -rw------t 1 root root 104857600 Oct 20 13:10 fil2 -rw------t 1 root root 104857600 Oct 20 13:10 fil3

Vi kan återställa de raderade filerna med vår snapshot. Vi återställer filerna med kommandot zfs och parametern rollback: zfs rollback [pool/sistemadeficheros]@ogonblick #zfs rollback -r babilonia/prueba1@ogonblick # ls -lrt total 1024223 -rw------t 1 root root 104857600 Oct 20 13:10 fil1 -rw------t 1 root root 104857600 Oct 20 13:10 fil2 -rw------t 1 root root 104857600 Oct 20 13:10 fil3 -rw------t 1 root root 104857600 Oct 20 13:10 fil4 -rw------t 1 root root 104857600 Oct 20 13:10 fil5 Resultatet blir att vi återställer filerna fil4 och fil5. Slutsats Som vi har sett på tidigare exempel; ZFS är kanske det bästa filsystemet som finns idag. Den har tagit de bästa egenskaperna av tidigare filsystem, placerat de i ett enda ställe och förbättrat tekniken. ZFS är ett filsystem som siktar mot framtiden, den kombinerar innovation och erfarenhet. Den är kraftfull, robust och elegant. Personligen har jag fortfarande svårt att tro att det här filsystemet är ute på nätet och är fri att använda, och med det menar jag fri som i frihet.