Nota:

Creare un array RAID software su Oracle Linux

Introduzione

Un array ridondante di dischi indipendenti o dispositivo RAID è un dispositivo virtuale creato da due o più dispositivi a blocchi reali. Questa funzionalità consente di combinare più dispositivi (in genere unità disco o partizioni di un disco) in un singolo dispositivo per contenere un singolo file system. Alcuni livelli RAID includono la ridondanza, consentendo al file system di sopravvivere a un certo grado di guasto al dispositivo.

Il kernel Oracle Linux utilizza il driver Multiple Device (MD) per supportare il RAID software Linux e consentire di organizzare unità disco in dispositivi RAID e implementare diversi livelli RAID.

Per ulteriori informazioni su questi diversi livelli RAID, vedere la documentazione Oracle.

Questa esercitazione funziona con la utility MD (mdadm) per creare un dispositivo RAID1 con una riserva e quindi risolvere un errore del disco.

Obiettivi

Prerequisiti

Qualsiasi sistema Oracle Linux 8 con le configurazioni seguenti:

Imposta ambiente laboratorio

Nota: quando si utilizza l'ambiente di laboratorio gratuito, vedere Oracle Linux Lab Basics per le connessioni e altre istruzioni d'uso.

  1. Se non è già connesso, aprire un terminale e connettersi tramite ssh a ciascuna istanza sopra indicata.

    ssh oracle@<ip_address_of_instance>
    
  2. Verificare che i volumi a blocchi esistano.

    sudo lsblk
    

    L'output dell'ambiente di lavoro gratuito dovrebbe contenere la variabile /dev/sda per il file system esistente e i dischi disponibili /dev/sdb, /dev/sdc e /dev/sdd.

Installare la utility MD

  1. Se non è già disponibile nel sistema, installare la utility MD.

    Verificare se mdadm è installato.

    sudo dnf list --installed mdadm
    

    Se non è installato, installare mdadm.

    sudo dnf -y install mdadm
    

    Nota: nell'ambiente di laboratorio gratuito è già installata la utility MD.

Creare un dispositivo RAID.

RAID1 fornisce ridondanza e resilienza dei dati scrivendo dati identici a ciascuna unità nell'array. In caso di guasto a un'unità, un mirror può soddisfare le richieste di I/O. Il mirroring è una soluzione costosa in quanto il sistema scrive le stesse informazioni su tutti i dischi dell'array.

Caratteristiche di RAID1:

  1. Elencare le opzioni disponibili per creare un dispositivo RAID.

    L'uso di mdadm --help consente di utilizzare l'opzione --create per creare un nuovo array da dispositivi non utilizzati.

    sudo mdadm --create --help
    
  2. Creare un dispositivo RAID1 con un disco di riserva.

    sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc --spare-devices=1 /dev/sdd
    
    • --create:: crea il nuovo array
    • --level: il livello raid
    • --raid-devices: il numero di dispositivi attivi nell'array
    • --spare-devices: il numero di dispositivi di riserva (extra) nell'array iniziale

    In questo comando il dispositivo (array) è denominato /dev/md0 e utilizza /dev/sdb e /dev/sdc per creare il dispositivo RAID1. Il dispositivo /dev/sdd viene utilizzato automaticamente come dispositivo di riserva per il ripristino da eventuali guasti del dispositivo attivo.

    Accettare il prompt Continue creating array? digitando y e premendo ENTER.

    Output di esempio:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc --spare-devices=1 /dev/sdd
    mdadm: Note: this array has metadata at the start and
        may not be suitable as a boot device.  If you plan to
        store '/boot' on this device please ensure that
        your boot-loader understands md/v1.x metadata, or use
        --metadata=0.90
    mdadm: size set to 52395008K
    Continue creating array? y
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.
    

Creazione di un file system

  1. Creare un file system ext4 sul dispositivo RAID e attivarlo.

    sudo mkfs.ext4 -F /dev/md0
    sudo mkdir /u01
    sudo mount /dev/md0 /u01
    
    
  2. Segnala l'uso del disco del file system.

    df -h
    

    Output di esempio:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ df -h
    Filesystem                  Size  Used Avail Use% Mounted on
    ...
    /dev/md0                     49G   53M   47G   1% /u01
    
  3. Aggiungere una voce a /etc/fstab e rendere persistente il punto di attivazione tra i reboot.

    echo "/dev/md0    /data01    ext4    defaults    0 0" | sudo tee -a /etc/fstab > /dev/null
    

Verifica dispositivo RAID

  1. Ottiene i dettagli dell'array.

    sudo mdadm --detail /dev/md0
    

    Output di esempio:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --detail /dev/md0
    /dev/md0:
               Version : 1.2
         Creation Time : Sat Jun  4 20:08:32 2022
            Raid Level : raid1
            Array Size : 52395008 (49.97 GiB 53.65 GB)
         Used Dev Size : 52395008 (49.97 GiB 53.65 GB)
          Raid Devices : 2
         Total Devices : 3
           Persistence : Superblock is persistent
    
           Update Time : Sat Jun  4 20:28:58 2022
                 State : clean, resyncing 
        Active Devices : 2
       Working Devices : 3
        Failed Devices : 0
         Spare Devices : 1
    
    Consistency Policy : resync
    
         Resync Status : 59% complete
    
                  Name : ol-mdadm-2022-06-04-180415:0  (local to host ol-mdadm-2022-06-04-180415)
                  UUID : f6c35144:66a24ae9:5b96e616:f7252a9f
                Events : 9
    
        Number   Major   Minor   RaidDevice State
           0       8       16        0      active sync   /dev/sdb
           1       8       32        1      active sync   /dev/sdc
    
           2       8       48        -      spare   /dev/sdd
    

    Nell'output, State mostra che l'array è pulito e risincronizzato. Il resysc si verifica sempre dopo la creazione iniziale dell'array o dopo il recupero. L'output mostra che la risincronizzazione è completata al 59%.

  2. Controllare le informazioni in tempo reale dal kernel.

    sudo cat /proc/mdstat
    

    Output di esempio:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ cat /proc/mdstat 
    Personalities : [raid1] 
    md0 : active raid1 sdd[2](S) sdc[1] sdb[0]
          52395008 blocks super 1.2 [2/2] [UU]
          [==================>..]  resync = 92.2% (48341824/52395008) finish=2.7min speed=24677K/sec
          
    unused devices: <none>
    

Crea file di configurazione RAID

  1. (Opzionale) Aggiungere la configurazione RAID a /etc/mdadm.conf

    Il file di configurazione identifica i dispositivi RAID e a cui appartiene un determinato dispositivo. In base a questo file di configurazione, mdadm è in grado di assemblare gli array in fase di boot.

    sudo mdadm --examine --scan | sudo tee -a /etc/mdadm.conf
    

    Output di esempio:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --examine --scan | sudo tee -a /etc/mdadm.conf
    ARRAY /dev/md/0  metadata=1.2 UUID=f6c35144:66a24ae9:5b96e616:f7252a9f name=ol-mdadm-2022-06-04-180415:0
       spares=1
    

Gestisci dispositivi RAID

Questa opzione consente di gestire i dispositivi dei componenti all'interno di un array, ad esempio l'aggiunta, la rimozione o l'errore di un dispositivo.

  1. Elencare le opzioni disponibili per la gestione di un dispositivo RAID.

    sudo mdadm --manage --help
    
    • --add: dispositivi successivi Hotadd.
    • --remove: rimuovere i dispositivi non attivi successivi.
    • --fail: contrassegna i dispositivi successivi come difettosi.
  2. Sincronizza le scritture inserite nella cache nella memoria persistente.

    Questa operazione è necessaria prima di eseguire qualsiasi gestione del disco per garantire che tutte le cache del disco siano scritte su disco.

    sudo sync
    
  3. Contrassegnare un disco come non riuscito.

    sudo mdadm --manage /dev/md0 --fail /dev/sdb
    
  4. Recupera i dettagli dell'array.

    sudo mdadm --detail /dev/md0 
    

    Output di esempio:

    [oracle@ol-mdadm-2022-06-04-180415 ~]$ sudo mdadm --detail /dev/md0 
    /dev/md0:
               Version : 1.2
         Creation Time : Sat Jun  4 20:08:32 2022
            Raid Level : raid1
            Array Size : 52395008 (49.97 GiB 53.65 GB)
         Used Dev Size : 52395008 (49.97 GiB 53.65 GB)
          Raid Devices : 2
         Total Devices : 3
           Persistence : Superblock is persistent
    
           Update Time : Sat Jun  4 21:34:19 2022
                 State : clean, degraded, recovering 
        Active Devices : 1
       Working Devices : 2
        Failed Devices : 1
         Spare Devices : 1
    
    Consistency Policy : resync
    
        Rebuild Status : 1% complete
    
                  Name : ol-mdadm-2022-06-04-180415:0  (local to host ol-mdadm-2022-06-04-180415)
                  UUID : f6c35144:66a24ae9:5b96e616:f7252a9f
                Events : 19
    
        Number   Major   Minor   RaidDevice State
           2       8       48        0      spare rebuilding   /dev/sdd
           1       8       32        1      active sync   /dev/sdc
    
           0       8       16        -      faulty   /dev/sdb
    

    L'array è contrassegnato come degraded e recovering. L'output mostra inoltre che il dispositivo di riserva /dev/sdd ricostruisce automaticamente l'array, mentre /dev/sdb è difettoso.

  5. Rimuovere il disco guasto.

    sudo mdadm --manage /dev/md0 --remove /dev/sdb
    
  6. Sostituire il disco che presenta problemi.

    Sostituire il disco fisico guasto del server con uno nuovo.

    Nota: non è necessario eseguire alcuna operazione per questo passo quando si utilizza l'ambiente di laboratorio gratuito. Il laboratorio riprodurrà il dispositivo dev/sdb esistente.

  7. Rimuovere la firma linux_raid_member precedente.

    Una firma, i metadati, vengono scritti un disco quando viene utilizzato in un array RAID e tale disco non può essere spostato in un altro sistema o riproposto fino a quando non vengono rimosse tali firme.

    sudo wipefs -a -f /dev/sdb
    

    Avvertenza: il comando wipefs è distruttivo e rimuove l'intera tabella di partizione nel disco di destinazione (/dev/sdb) e tutte le firme.

  8. Aggiungere una nuova riserva all'array.

    sudo mdadm --manage /dev/md0 --add /dev/sdb
    
  9. Verificare che il disco di riserva esista.

    sudo mdadm --detail /dev/md0 
    

    Nella parte inferiore dell'output, il dispositivo /dev/sdb deve essere incluso nell'elenco con lo stato impostato su spare.

Per ulteriori informazioni:

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi ad altri contenuti per la formazione gratuita sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.

Per la documentazione sul prodotto, visitare Oracle Help Center.