GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare e configurare ZFS su Linux usando Debian Jessie 8.1

In questa pagina

  1. Prerequisiti:
  • Fase 1 - Aggiorna il repository e aggiorna il sistema Debian Linux
  • Passaggio 2 - Installa zfsonlinux
  • Fase 3:crea e configura il pool
  • Fase 5:crea e configura il filesystem ZFS
  • Conclusione
  • ZFS è un filesystem combinato e un gestore di volumi logici. Le funzionalità di ZFS includono protezione contro il danneggiamento dei dati, supporto per capacità di archiviazione elevate, compressione dati efficiente, integrazione del filesystem e concetto di gestione del volume, snapshot e cloni copy-on-write, controllo continuo dell'integrità e riparazione automatica, RAID-Z e nativo ACL NFSv4.

    ZFS è stato originariamente implementato come software open source, concesso in licenza in base alla Common Development and Distribution License (CDDL).

    Quando parliamo del filesystem ZFS, possiamo evidenziare i seguenti concetti chiave:

    • Integrità dei dati.
    • Amministrazione semplice dello storage con due soli comandi:zfs e zpool.
    • Tutto può essere fatto mentre il filesystem è online.

    Per una panoramica completa e una descrizione di tutte le funzionalità disponibili, consulta questo articolo dettagliato di Wikipedia.

    In questo tutorial, ti guiderò passo dopo passo attraverso l'installazione del filesystem ZFS su Debian 8.1 (Jessie). Ti mostrerò come creare e configurare i pool usando raid0 (stripe), raid1 (Mirror) e RAID-Z (Raid con parità) e spiegherò come configurare un file system con ZFS.

    Sulla base delle informazioni dal sito Web www.zfsonlinux.org, ZFS è supportato solo sull'architettura AMD64 e Intel a 64 bit (amd64). Iniziamo con la configurazione.

    Prerequisiti:

    • Debian 8 con kernel a 64 bit.
    • privilegi di root.

    Passaggio 1:aggiornamento del repository e aggiornamento del sistema Debian Linux

    Per aggiungere il repository zfsonlinux al nostro sistema, scarica e installa il pacchetto zfsonlinux come mostrato di seguito. Questo aggiungerà i file /etc/apt/sources.list.d/zfsonlinux.list e /etc/apt/trusted.gpg.d/zfsonlinux.gpg sul tuo computer. Successivamente, puoi installare zfs come qualsiasi altro pacchetto Debian con il comando apt-get. Un altro vantaggio dell'utilizzo del repository zfsonlinux è che si ottengono gli aggiornamenti automaticamente eseguendo "apt-get update &&apt-get upgrade".

    Accedi al server Debian con accesso SSH, diventa utente root, quindi esegui i seguenti comandi.

    # uname -a
    Linux debian-zfs 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux
    # wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_6_all.deb
    # dpkg -i zfsonlinux_6_all.deb
    # apt-get update

    Passaggio 2 - Installa zfsonlinux

    Zfsonlinux ha molte dipendenze software che vengono installate automaticamente da apt. Questo processo richiederà del tempo. Al termine dell'installazione, riavviare il server.

    # apt-get install lsb-release
    # apt-get install debian-zfs
    # shutdown -r ora

    Passaggio 3:crea e configura il pool

    Dopo che il server è stato riavviato, controlla che zfsonlinux sia installato e funzioni bene.

    # dpkg -l | Grep ZFS 
    II Debian-ZFS 7 ~ Jessie AMD64 Metapackage del filesystem ZFS nativo per Debian.
    II libzfs2 0.6.5.2-2 AMD64 Libreria del filesystem ZFS nativo per Linux
    II ZFS-DKMS 0.6.5.5.5.5.2 -2 Tutti i moduli kernel del filesystem ZFS nativo per Linux
    II ZFSONLINUX 6 All Archive.zfsonLinux.org Pacchetto fiduciario
    II Zfsutils 0.6.5.2-2 AMD64 Strumenti di linea di comando per gestire i filesystems

    Il risultato sopra mostra che zfs su Linux è già installato, quindi possiamo procedere con la creazione del primo pool.

    Ho aggiunto cinque dischi a questo server, ciascuno con una dimensione di 2 GB. Possiamo controllare i dischi disponibili con questo comando:

    # ls /dev/sd*
    /dev/sda  /dev/sda1  /dev/sda2  /dev/sda5  /dev/sdb  /dev/sdc  /dev/sdd  /dev/sde  /dev/sdf /dev/sdg

    Possiamo vedere che abbiamo /dev/sda finché /dev/sdg, /dev/sda non viene utilizzato per il sistema operativo Debian Linux Jessie 8.1. Useremo /dev/sdb fino a /dev/sdg per il filesystem ZFS.

    Ora possiamo iniziare a creare il pool, per il primo ti mostro come creare un raid0 (stripe).

    # zpool list
    nessun pool disponibile
    # zpool create -f pool0 /dev/sdb
    # zpool list
    NAME    SIZE ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
    pool0  1.98G    64K  1.98G          -     0%     0%  1.00 x ONLINE -

    Il comando "zpool list" mostra che abbiamo creato con successo un pool raid0 zfs, il nome del pool è pool0 e la dimensione è 2 GB.

    Successivamente creeremo un raid1 (mirror) con gli altri dischi.

    # zpool create -f pool1 mirror /dev/sdc /dev/sdd
    # zpool list
    NAME    SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
    pool0  1.98G    64K  1.98G         - 0%     0%  1,00x  ONLINE  ​​-
    pool1  1,98G    64K  1,98G         -     0%     0%  1,00x ONLINE  ​​-

    Possiamo vedere che ora abbiamo due pool, pool0 per raid0 e pool1 per raid1.

    Per verificare lo stato dei pool, possiamo utilizzare il comando seguente:

    # zpool status
      pool:pool0
     state:ONLINE
      scan:nessuno richiesto
    config:

            NAME        STATE     READ WRITE CKSUM
            pool0       ONLINE       0     0     0
              sdb       ONLINE       0     0     0

    errori:Nessun errore noto nei dati

      pool:pool1
     state:ONLINE
    Scansione:nessuna richiesta
    config:

    Nome State Leggi scrivi cksum
    pool1 online 0 0
    mirror-0 online 0 0 0
    sdc online 0     0     0
               sdd     ONLINE       0     0     0

    errori:nessun errore di dati noto

    Possiamo controllare lo stato del pool con il comando "zpool status". Possiamo vedere la differenza tra pool0 e pool1, pool0 ha un solo disco e pool1 ha due dischi e lo stato dei dischi è mirror (mirror-0).

    Successivamente, creeremo un pool con RAID-Z, RAID-Z è uno schema di distribuzione di dati/parità come RAID-5, ma utilizza una larghezza di stripe dinamica:ogni blocco ha il proprio stripe RAID, indipendentemente dalle dimensioni del blocco, con il risultato che ogni scrittura RAID-Z è una scrittura full-stripe.

    RAID-Z richiede un minimo di tre dischi rigidi ed è una sorta di compromesso tra RAID 0 e RAID 1. In un pool RAID-Z:se un singolo disco nel pool si esaurisce, sostituisci semplicemente quel disco e ZFS ricostruirà automaticamente i dati in base alle informazioni sulla parità degli altri dischi. Per perdere tutte le informazioni nel pool di archiviazione, due dischi dovrebbero morire. Per rendere la configurazione dell'unità ancora più ridondante, puoi utilizzare RAID 6 (RAID-Z2 in caso di ZFS) per ottenere la doppia parità.

    Creiamo prima un pool RAID-Z con una parità.

    # zpool create -f poolz1 raidz sde sdf sdg
    # zpool list poolz1
    NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
    poolz1  5.94G   117K  5.94G         -     0%      0%     1:00 volte ONLINE -
    # zpool status poolz1
      pool:poolz1
     state:ONLINE
      scan:nessuno richiesto
    config:

            NOME        STATO     LEGGI SCRIVERE CKSUM
    Poolz1 online 0 0 0
    raidz1-0 online 0 0 0
    sde online 0 0 0
    sdf online 0 0
    sdg online 0 0

    errori:nessun errore di dati noto
    # df -h /poolz1
    Filesystem      Dimensioni  Usato Avail Use% Montato su
    poolz1          3,9G     0  3,9G   0% /poolz1

    Come possiamo vedere, df -h mostra che il nostro pool da 6 GB è stato ora ridotto a 4 GB, 2 GB vengono utilizzati per contenere le informazioni sulla parità. Con il comando zpool status, vediamo che il nostro pool utilizza RAID-Z ora.

    Successivamente creeremo RAID-Z2 (raid 6), a questo scopo dobbiamo rimuovere il pool esistente perché non sono più disponibili dischi. Rimuovere un pool è molto semplice, possiamo usare il comando zpool destroy per questo.

    # Elenco ZPool 
    Nome Dimensione alloc Free ExpandSz Frag Cap Dedup Altroot Health
    Pool0 1,98G 64K 1.98G -0%0%1.00x Online -
    Pool1 1.98G 64K 1.98G - 0%     0%  1,00x  ONLINE  ​​-
    poolz1  5,94G   117K  5,94G         -     0%     0%  1,00x ONLINE  ​​-
    # zpool destroy pool0
    # zpool destroy pool1
    # zpool destroy poolz1
    # elenco zpool
    nessun pool disponibile

    Ora tutti i nostri zpool sono spariti, quindi possiamo creare un pool RAID-Z2.

    # zpool create poolz2 raidz2 sdb sdc sdd sde
    # zpool list
    NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
    poolz2  7.94G   135K  7.94G         -     0%      0%      0%      0%     ONLINE -
    # df -h /poolz2
    Filesystem      Dimensioni  Usato Avail Use% Montato su
    poolz2          3,9G     0  3,9G   0% /poolz2
    # zpool status poolz2
      pool:poolz2
     state:ONLINE
      scan:nessuno richiesto
    config:

            NOME        STATO     LEGGI SCRIVERE CKSUM
    Poolz2 online 0 0 0
    raidz2-0 online 0 0 0
    sdb online 0 0 0
    sdc online 0 0
    sdd online 0 0
    sde ONLINE       0     0     0

    errori:nessun errore di dati noto

    Come possiamo vedere, df -h mostra che il nostro pool di 8 GB è stato ora ridotto a 4 GB, poiché 4 GB vengono utilizzati per contenere le informazioni di parità due volte. Con il comando "zpool status", vediamo che il nostro pool utilizza RAID-Z2 ora.

    Fase 4 - Simula un errore del disco

    In questo passaggio, simuleremo un guasto catastrofico del disco (ovvero uno degli HDD nello zpool smette di funzionare).

    Crea un file nel poolz2 e assicurati di potervi accedere.

    # echo "Solo test"> /poolz2/test.txt
    # cat /poolz2/test.txt
    Solo test

    Prima di simulare l'errore:controlla lo stato di poolz2 e assicurati che lo stato sia Online e che lo stato di tutti i dischi sia Online.

    L'errore viene simulato scrivendo dati casuali con il comando dd su /dev/sdb .

    # dd if=/dev/urandom of=/dev/sdb bs=1024 count=20480
    # zpool scrub poolz2
    # zpool status
      pool:poolz2
     state :ONLINE
    stato:su uno o più dispositivi si è verificato un errore irreversibile. È stato effettuato un tentativo di
            per correggere l'errore. Le applicazioni non sono interessate.
    azione:determina se il dispositivo deve essere sostituito e cancella gli errori
            utilizzando 'zpool clear' o sostituisci il dispositivo con 'zpool replace'.
       vedi:http://zfsonlinux.org/msg/ZFS-8000-9P
      scan:scrub riparato 17K in 0h0m con 0 errori martedì 8 dicembre 22:37:49 2015
    config:

    Nome State Leggi scrivi cksum
    poolz2 online 0 0 0
    raidz2-0 online 0 0 0
    sdb online 0 0 25
    sdc online 0 0
    sdd online 0     0     0
               sde     ONLINE       0     0     0

    errori:nessun errore di dati noto

    Ora possiamo vedere che uno o più dischi hanno riscontrato un errore irreversibile, quindi dobbiamo sostituire il disco. In questo caso, sostituiamo il disco /dev/sdb con /dev/sdf.

    # zpool replace poolz2 sdb sdf
    # zpool status
      pool:poolz2
     stato:ONLINE
      scan:resilvered 49.5K in 0h0m con 0 errori il mar 8 22 dic:43:35 2015
    config:

    Nome State Leggi Scrivi cksum
    poolz2 online 0 0
    raidz2-0 online 0 0 0
    sdf online 0 0 0
    SDC online 0 0 0
    SDD Online 0 0 0
    SDE Online 0 0 0

    Errori:nessun errore di dati noto

    Dopo aver sostituito /dev/sdb con /dev/sdf, l'errore è scomparso e possiamo ancora accedere al file di test che abbiamo creato in precedenza.

    # cat /poolz2/test.txt
    Solo test

    Fino a questo passaggio, sappiamo come creare e configurare uno zpool.

    Passaggio 5:crea e configura il filesystem ZFS

    Nel passaggio successivo impareremo come creare e configurare il filesystem ZFS.

    Elenco # zfs
    NOME     USATO  DISPONIBILE  REFER  MOUNTPPOINT
    poolz2   105K  3.83G  26.1K  /poolz2

    Abbiamo già un filesystem ZFS, questo viene aggiunto automaticamente quando creiamo lo zpool. Ora creeremo un altro filesystem ZFS.

    # zfs create poolz2/tank
    elenco di # zfs
    NOME          USATO  DISPONIBILE  REFER  MOUNTPPOINT
    poolz2        132K  3.83G  26.1K  /poolz2
    poolz2/tank  25.4K  3.83G  25.4K /poolz2/serbatoio
    # df -h | grep poolz2
    poolz2          3,9G  128K  3,9G   1% /poolz2
    poolz2/tank     3,9G  128K  3,9G   1% /poolz2/tank

    Molto facile vero? Creiamo un nuovo filesystem ZFS chiamato tank e lo montiamo automaticamente come /poolz2/tank.

    Come creare un punto di montaggio personalizzato per un filesystem ZFS? Usa il comando seguente:

    # zfs create poolz2/data -o mountpoint=/data
    # df -h | grep poolz2
    poolz2          3.9G     0  3.9G   0% /poolz2
    poolz2/tank     3.9G     0  3.9G   0% /poolz2/tank
    poolz2/data     3.9G     0  3.9G   0%

    Come modificare il punto di montaggio esistente? Possiamo farlo con il comando seguente:

    # zfs set mountpoint=/tank poolz2/tank
    # df -h | grep poolz2
    poolz2          3.9G     0  3.9G   0% /poolz2
    poolz2/data     3.9G     0  3.9G   0% /data
    poolz2/tank     3.9G     0  3.9G   0%/tank

    Per montare e smontare un filesystem, usa il comando seguente:

    # zfs smonta /data
    # df -h | grep poolz2
    poolz2          3,9G     0  3,9G   0% /poolz2
    poolz2/tank     3,9G     0  3,9G   0% /tank
    # zfs mount poolz2/data
    # df -h | grep poolz2
    poolz2          3.9G     0  3.9G   0% /poolz2
    poolz2/tank     3.9G     0  3.9G   0% /tank
    poolz2/data     3.9G     0  3.9G   0% /data

    Rimuovere un filesystem zfs è molto semplice, possiamo usare il comando zfs destroy per questo.

    # zfs destroy poolz2/data
    # zfs list
    NAME          USED  DISPONIBILE  REFER  MOUNTPPOINT
    poolz2        152K  3.83G  26.1K  /poolz2
    poolz2/tank  25.4K  3.83G  25.4K /serbatoio

    Il filesystem /data è sparito.

    Conclusione

    Il file system ZFS è un nuovo file system rivoluzionario che cambia radicalmente il modo in cui i file system vengono amministrati su sistemi operativi simili a Unix. ZFS offre funzionalità e vantaggi che non sono stati trovati in nessun altro file system oggi disponibile. ZFS è robusto, scalabile e facile da amministrare.


    Debian
    1. Come installare e configurare la finestra mobile su Debian 11

    2. Come installare e configurare Mariadb 10 in Debian 11

    3. Come installare e configurare MongoDB 5 su Debian 11

    4. Come installare e configurare Redis 6 su Debian 11

    5. Come installare e configurare Node.js e npm in Ubuntu, Debian o Linux Mint

    Come installare e configurare Monit su Debian 9

    Come installare e configurare vsftpd con TLS su Debian 8 (Jessie)

    Come installare e configurare Nagios su Linux

    Come installare e configurare Git in Debian 11

    Come installare e configurare KVM su Debian 11 Bullseye Linux

    Come installare e configurare Apache su Debian 11?