GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare il filesystem ZFS su Linux con esempi di comandi zpool

ZFS ha combinato il gestore del volume e il filesystem con diverse funzionalità avanzate.

Questa è la prima parte di una serie di articoli su ZFS.

Nell'articolo forniremo un'introduzione di alto livello a ZFS, spiegheremo come installare ZFS su Linux, creare un pool ZFS e diversi comandi ZFS zpool.

1. Introduzione a ZFS

Le seguenti sono alcune delle caratteristiche del filesystem ZFS:

  • Protezione contro il danneggiamento dei dati
  • Supporto per capacità di archiviazione elevate
  • Compressione dati efficiente
  • Scatta istantanee del filesystem
  • Cloni copia su scrittura
  • Supporto RAID Z
  • Verifica dell'integrità
  • Riparazione automatica e supporto per ACL NFSV4 nativa

Questo è stato sviluppato originariamente da Sun Microsystems per la piattaforma Solaris. Nel 2010, Oracle ha acquisito i microsistemi Sun e ha apportato molti miglioramenti al filesystem ZFS.

ZFS sta diventando popolare di recente su Linux poiché è diventato più stabile.

Il port ZFS su Linux è prodotto dal Lawrence Livermore National Laboratory (LLNL).

ZFS su Linux è un modulo del kernel che puoi scaricare, compilare e installare. Non è necessario applicare patch o ricompilare il kernel.

Puoi scaricare i pacchetti sorgente per la tua rispettiva distribuzione del sistema operativo da qui.

2. Installa ZFS su Linux

In questo articolo, installeremo ZFS sul server CentOS. Ma i comandi zfs menzionati di seguito sono gli stessi per quasi tutte le distribuzioni su distribuzioni Linux eccetto la parte di installazione.

Esegui i seguenti comandi yum per installare ZFS su Redhat / CentOS.

# yum localinstall --nogpgcheck https://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

# yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release.el6.noarch.rpm

# yum install kernel-devel zfs

Assicurati che tutte le dipendenze siano soddisfatte. Una delle dipendenze in cui l'installazione normalmente non riesce, sarebbe un requisito per installare il compilatore GCC. In questo caso, installa il compilatore GCC prima di installare ZFS.

Assicurati che i moduli ZFS siano caricati con il comando lsmod come mostrato di seguito:

# lsmod | grep zfs
zfs                  1188621  0
zcommon                45591  1 zfs
znvpair                81046  2 zfs,zcommon
zavl                    6900  1 zfs
zunicode              323051  1 zfs
spl                   264548  5 zfs,zcommon,znvpair,zavl,zunicode

In una nota correlata, potresti voler leggere le nozioni di base su come vengono creati i moduli del kernel caricabili Linux.

Abbiamo aggiunto alcuni dischi su questo server (da /dev/sdb a /dev/sdf) per testare la funzionalità ZFS.

# ls -l /dev/sd*
brw-rw----. 1 root disk 8,  0 Jul 15 15:52 /dev/sda
brw-rw----. 1 root disk 8,  1 Jul 15 15:52 /dev/sda1
brw-rw----. 1 root disk 8,  2 Jul 15 15:52 /dev/sda2
brw-rw----. 1 root disk 8,  3 Jul 15 15:52 /dev/sda3
brw-rw----. 1 root disk 8, 16 Jul 16 10:57 /dev/sdb
brw-rw----. 1 root disk 8, 32 Jul 16 10:57 /dev/sdc
brw-rw----. 1 root disk 8, 48 Jul 16 10:58 /dev/sdd
brw-rw----. 1 root disk 8, 64 Jul 16 11:27 /dev/sde
brw-rw----. 1 root disk 8, 80 Jul 16 11:27 /dev/sdf

3. Crea uno zpool

Comando Zpool utilizzato per configurare gli storage pool in ZFS. Il pool di archiviazione è una raccolta di dispositivi che fornisce archiviazione fisica e replica dei dati per i set di dati zfs.

Quanto segue crea uno zpool.

# zpool create -f mypool raidz sdb sdc sdd sde sdf

Nell'esempio sopra:

  • create sta per creare un nuovo pool.
  • L'opzione -f consiste nell'ignorare le etichette delle partizioni del disco poiché si tratta di nuovi dischi
  • raidz è il livello del raid. RAIDZ non è altro che la variante di RAID-5 che consente una migliore distribuzione sulla parità ed elimina il buco di scrittura "RAID-5" (incoerenza di dati e parità dopo una perdita di alimentazione).
  • Un gruppo raidz può avere parità singola, doppia o di tribù, il che significa che può sostenere rispettivamente uno, due o tre fallimenti senza perdere alcun dato. I dati e la parità vengono sottoposti a striping su tutti i dischi all'interno di un gruppo raidz.

Successivamente, verifica lo stato dello zpool appena creato.

# zpool status
  pool: mypool
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        mypool      ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0
            sdf     ONLINE       0     0     0

errors: No known data errors

Una volta creato il pool, se esegui df –h, vedrai che il pool appena creato viene montato automaticamente sul mountpount.

# df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/vglocal-rootlv   14G  2.4G   11G  18% /
tmpfs                       939M     0  939M   0% /dev/shm
/dev/sda1                   504M   46M  433M  10% /boot
mypool                      3.9G     0  3.9G   0% /mypool

4. Crea un pool con mirroring

Per creare un pool con mirroring, usa il comando zpool create con le seguenti opzioni.

Se uno qualsiasi dei dischi nel particolare gruppo di mirror è guasto, l'altro disco conserva ancora i dati. Non appena il disco guasto viene sostituito, il contenuto viene eseguito nuovamente (noto anche come resilvering) sul disco appena sostituito.

# zpool create -f mypool mirror sdb sdc mirror sdd sde

Quindi, verifica lo stato dello zpool con mirroring che abbiamo appena creato:

# zpool status -v
  pool: mypool
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        mypool      ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
          mirror-1  ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0

errors: No known data errors

5. Importazione ed esportazione Zpool

In alcuni casi potrebbe essere necessario migrare un pool zfs tra i sistemi.

ZFS lo rende possibile esportando un pool da un sistema e importandolo in un altro sistema.

Per esportare qualsiasi pool, utilizzare il comando zpool export e il comando zpool import viene utilizzato per importare il pool come mostrato nell'esempio seguente:

# zpool export mypool

# zpool import mypool

6. Visualizza le statistiche di I/O del Pool ZFS

Per visualizzare le statistiche di I/O di zpool, utilizzare il comando zpool iostat come mostrato di seguito:

# zpool iostat -v mypool
               capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
mypool       147K  4.95G      0      0     33    252
  mirror      54K  3.97G      0      0     10     84
    sdb         -      -      0      0    536    612
    sdc         -      -      0      0    282    612
  mirror      93K  1008M      0      0     23    168
    sdd         -      -      0      0    288    696
    sde         -      -      0      0    294    696
----------  -----  -----  -----  -----  -----  -----

7. Elimina un pool ZFS

Per distruggere un pool, usa il comando zpool destroy come mostrato di seguito:

# zpool destroy mypool

8. Sostituisci il disco danneggiato nel pool ZFS

Per sostituire un disco, dopo un guasto o un danneggiamento, utilizzare il comando seguente:

# zpool replace mypool sde sdf

9. Espandi ZFS Pool con il nuovo disco

Per espandere zpool aggiungendo un nuovo disco, utilizzare il comando zpool come indicato di seguito:

# zpool add -f mypool sde

10. Aggiungi un disco di riserva al pool ZFS

Puoi anche aggiungere un disco di riserva al pool zfs utilizzando il comando seguente, aggiungendo un dispositivo di riserva a un pool zfs.

I dischi guasti vengono automaticamente sostituiti dal dispositivo di riserva e l'amministratore può sostituire i dischi guasti in un secondo momento.

Tieni presente che puoi anche condividere il dispositivo di riserva tra più pool ZFS.

# zpool add -f mypool spare sde

Nella parte successiva dell'articolo, spiegheremo come utilizzare i pool ZFS per creare il filesystem ZFS, montare il filesystem ZFS e manipolarlo dalla riga di comando.


Linux
  1. Come utilizzare il comando Hexdump di Linux con esempi pratici

  2. Comando SCP in Linux:come usarlo, con esempi

  3. Comando JQ in Linux con esempi

  4. Come utilizzare il comando Rmmod su Linux con esempi

  5. Come creare filesystem ZFS con compressione file su Linux

Come clonare dischi con il comando dd di Linux

15 Comando Linux ps con esempi

Come utilizzare il comando gunzip di Linux con esempi

Come utilizzare il comando Linux rm con esempi

Come installare Dig in Linux con esempi di riga di comando

Come utilizzare il comando Sleep in Linux:spiegato con esempi