Hemsida » hur » En introduktion till Z-filsystemet (ZFS) för Linux

    En introduktion till Z-filsystemet (ZFS) för Linux

    ZFS används vanligtvis av datahammare, NAS-älskare och andra geeks som föredrar att lita på ett redundant lagringssystem i sig istället för molnet. Det är ett bra filsystem som används för att hantera flera dataskivor och rivaler några av de största RAID-inställningarna.

    Foto av Kenny Louie.

    Vad är ZFS och varför ska jag använda den?

    Z-filsystemet är en gratis och öppen källkods logisk volymhanterare som byggts av Sun Microsystems för användning i sitt Solaris-operativsystem. Några av dess mest tilltalande funktioner är:

    Ändlös skalbarhet

    Jo det är det inte tekniskt oändligt, men det är ett 128-bitars filsystem som kan hantera zettabytes (en miljard terabyte) data. Oavsett hur mycket hårddiskutrymme du har, kommer ZFS att vara lämplig för hantering av det.

    Maximal integritet

    Allt du gör inuti ZFS använder en kontrollsumma för att säkerställa filintegritet. Du kan vara säker på att dina filer och deras redundanta kopior inte kommer att stöta på tysta data korruption. Även när ZFS är upptagen med tyst kontroll av dina data för integritet, kommer det att göra automatiska reparationer när som helst det kan.

    Drive pooling

    Skaparna av ZFS vill att du ska tänka på det som liknar hur datorn använder RAM. När du behöver mer minne i din dator lägger du in en annan pinne och du är klar. På samma sätt som ZFS, när du behöver mer hårddiskutrymme, sätter du in en annan hårddisk och du är klar. Du behöver inte spendera tid partitionering, formatering, initiering eller göra något annat till dina diskar - när du behöver en större lagringspool, lägg bara till diskar.

    RÄD

    ZFS har många RAID-nivåer, samtidigt som den levererar prestanda som är jämförbar med den hos RAID-hårdvaror. Detta gör att du kan spara pengar, göra installationen enklare och ha tillgång till överlägsna RAID-nivåer som ZFS har förbättrats.

    Installera ZFS

    Eftersom vi bara täcker grunderna i den här guiden kommer vi inte att installera ZFS som ett rotfilsystem. Det här avsnittet förutsätter att du använder ext4 eller något annat filsystem och vill använda ZFS för vissa sekundära hårddiskar. Här är kommandon för att installera ZFS på några av de mest populära Linux-distributionerna.

    Solaris och FreeBSD bör redan komma med ZFS installerad och redo att användas.

    Ubuntu:

    $ sudo add-apt-repository ppa: zfs-native / stable
    $ sudo apt-get uppdatering
    $ sudo apt-get installera ubuntu-zfs

    Debian:

    $ su -
    # wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_2%7Ewheezy_all.deb
    # dpkg -i zfsonlinux_2 ~ wheezy_all.deb
    # apt-get update
    # apt-get install debian-zfs

    RHEL / CentOS:

    $ sudo yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release-1-3.el6.noarch.rpm
    $ sudo yum installera zfs

    Om du har någon annan distribution, kolla in zfsonlinux.org och klicka på din distribution under "Paket" listan för instruktioner om hur du installerar ZFS.

    När vi fortsätter med den här guiden kommer vi att använda Ubuntu eftersom det verkar vara # 1-valet för Linux-geeks. Du borde fortfarande kunna följa med, oavsett vad, eftersom ZFS-kommandona inte kommer att förändras över olika distributioner.

    Installationen tar en stund, men när den är klar kör du $ sudo zfs lista för att se till att den är korrekt installerad. Du ska få en utmatning så här:

    Vi använder en ny installation av Ubuntu-servern just nu, med bara en hårddisk.

    Konfigurera ZFS

    Låt oss nu säga att vi sätter sex hårddiskar i vår dator.

    $ sudo fdisk -l | grep Error visar oss de sex hårddiskar som vi just installerat. De är för närvarande oanvändbara eftersom de inte innehåller någon form av partitionstabell.

    Som vi nämnde tidigare är en av de fina sakerna om ZFS att vi inte behöver bry sig om partitioner (även om du kan om du vill). Låt oss börja med att ta tre av våra hårddiskar och sätta dem i en lagringspool genom att köra följande kommando:

    $ sudo zpool skapa -f geek1 / dev / sdb / dev / sdc / dev / sdd

    zpool skapa Kommandot används för att skapa en ny lagringspool, -f överträffar eventuella fel som uppstår (till exempel om disken / skivorna redan har information om dem), geek1 är namnet på lagringspoolen, och / dev / sdb / dev / sdc / dev / sdd är hårddiskarna vi lägger i poolen.

    När du har skapat din pool ska du kunna se den med df kommando eller sudo zfs lista:

    Som du kan se har / geek1 redan monterats och är klar att användas.

    Om du vill se vilka tre skivor du valt för din pool kan du springa sudo zpool-status:

    Vad vi hittills har gjort är att skapa en 9 TB dynamisk bandpool (effektivt, RAID 0). Om du inte är bekant med vad det betyder kan du föreställa dig att vi skapade en 3 KB-fil på / geek1. 1 KB skulle automatiskt gå till sdb, 1 kb till sdc och 1 kb till sdd. När vi sedan läser 3 KB-filen skulle varje hårddisk presentera 1 KB för oss, vilket kombinerar hastigheten på de tre enheterna. Detta gör skrivning och läsning av data snabbt, men betyder också att vi har en enda punkt av fel. Om bara en hårddisk misslyckas kommer vi att förlora vår 3 KB-fil.

    Förutsatt att skyddet av dina data är viktigare än att snabbt komma åt det, låt oss ta en titt på andra populära inställningar. Först tar vi bort zpoolen som vi har skapat så att vi kan använda dessa diskar i en mer redundant inställning:

    $ sudo zpool förstöra geek1

    Bam, vår zpool är borta. Den här gången, låt oss använda våra tre skivor för att skapa en RAID-Z-pool. RAID-Z är i grund och botten en förbättrad version av RAID 5, eftersom den undviker "skrivhålet" genom att använda copy-on-write. RAID-Z kräver minst tre hårddiskar och är en kompromiss mellan RAID 0 och RAID 1. I en RAID-Z-pool får du fortfarande hastigheten på blocknivå-stripning men kommer också att ha fördelat paritet. Om en enda skiva i din pool dör, ersätter du bara den skivan och ZFS kommer automatiskt att bygga upp data baserat på paritetsinformation från de andra skivorna. För att förlora all information i din lagringspool skulle två skivor behöva dö. För att göra sakerna ännu mer överflödiga kan du använda RAID 6 (RAID-Z2 i fallet med ZFS) och ha dubbelparitet.

    För att uppnå detta kan vi använda samma zpool skapa Kommando som tidigare men ange raidz efter poolens namn:

    $ sudo zpool skapa -f geek1 raidz / dev / sdb / dev / sdc / dev / sdd

    Som du kan se, df -h visar att vår 9 TB pool har nu minskats till 6 TB, eftersom 3 TB används för att hålla paritetsinformation. Med zpool status kommando, vi ser att vår pool är mestadels densamma som tidigare men använder RAID-Z nu.

    För att visa hur lätt det är att lägga till fler diskar i vår lagringspool, lägger vi till de andra tre diskarna (ytterligare 9 TB) i vår geek1-lagringspool som en annan RAID-Z-konfiguration:

    $ sudo zpool add -f geek1 raidz / dev / sde / dev / sdf / dev / sdg

    Vi hamnar med:

    Saga fortsätter ...

    Vi har knappt skrapat ytan på ZFS och dess möjligheter, men med det du har lärt dig i den här artikeln borde du nu kunna skapa överflödiga lagringsutrymmen av dina data. Kolla tillbaka med oss ​​för framtida artiklar om ZFS, se manens sidor, och leta efter de oändliga nischguiderna och Youtube-videon som täcker ZFS-funktionerna.