Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si tratta di uno scenario comune per usare RAID software in macchine virtuali Linux in Azure per presentare più dischi dati collegati come un singolo dispositivo RAID. In genere questo può essere usato per migliorare le prestazioni e consentire una maggiore velocità effettiva rispetto all'uso di un solo disco.
Collegamento di dischi dati
Per configurare un dispositivo RAID sono necessari due o più dischi dati vuoti. Il motivo principale per la creazione di un dispositivo RAID è migliorare le prestazioni dell'I/O del disco. In base alle esigenze di I/O, è possibile scegliere di collegare dischi archiviati nell'archiviazione Standard, con un massimo di 500 operazioni di I/O/ps per disco o l'archiviazione Premium con un massimo di 5000 operazioni di I/O/ps per disco. Questo articolo non illustra in dettaglio come effettuare il provisioning e collegare dischi dati a una macchina virtuale Linux. Vedere l'articolo di Microsoft Azure collegare un disco per istruzioni dettagliate su come collegare un disco dati vuoto a una macchina virtuale Linux in Azure.
Importante
Non combinare dischi di dimensioni diverse, in questo modo le prestazioni del raidset sarebbero limitate a quello del disco più lento.
Installare l'utilità mdadm
Ubuntu
sudo apt-get update sudo apt-get install mdadm
CentOS & Oracle Linux
sudo yum install mdadm
SLES e openSUSE
zypper install mdadm
Creare le partizioni del disco
In questo esempio viene creata una singola partizione disco in /dev/sdc. La nuova partizione del disco verrà denominata /dev/sdc1.
Iniziare
fdisk
a creare partizionisudo fdisk /dev/sdc Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xa34cb70c. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').
Premere 'n' al prompt per creare una partizione new:
Command (m for help): n
Premere quindi "p" per creare una partizione primary:
Command action e extended p primary partition (1-4)
Premere "1" per selezionare il numero di partizione 1:
Partition number (1-4): 1
Selezionare il punto iniziale della nuova partizione oppure premere
<enter>
per accettare l'impostazione predefinita per posizionare la partizione all'inizio dello spazio disponibile nell'unità:First cylinder (1-1305, default 1): Using default value 1
Selezionare le dimensioni della partizione, ad esempio digitare "+10G" per creare una partizione da 10 gigabyte. In alternativa, premere
<enter>
crea una singola partizione che si estende sull'intera unità:Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): Using default value 1305
Modificare quindi l'ID e il tipo della partizione dall'ID predefinito '83' (Linux) all'ID 'fd' (Linux RAID auto).
Command (m for help): t Selected partition 1 Hex code (type L to list codes): fd
Infine, scrivere la tabella di partizione nell'unità e uscire da fdisk:
Command (m for help): w The partition table has been altered!
Creare la matrice RAID
L'esempio seguente eseguirà lo "striping" (livello RAID 0) delle tre partizioni situate su tre dischi dati separati (sdc1, sdd1, sde1). Dopo aver eseguito questo comando viene creato un nuovo dispositivo RAID denominato /dev/md127 . Si noti anche che se questi dischi dati in precedenza fanno parte di un'altra matrice RAID inattiva, potrebbe essere necessario aggiungere il
--force
parametro almdadm
comando:sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 \ /dev/sdc1 /dev/sdd1 /dev/sde1
Creare il file system nel nuovo dispositivo RAID
CentOS, Oracle Linux, SLES 12, openSUSE e Ubuntu
sudo mkfs -t ext4 /dev/md127
SLES 11
sudo mkfs -t ext3 /dev/md127
SLES 11 : abilitare boot.md e creare mdadm.conf
sudo -i chkconfig --add boot.md sudo echo 'DEVICE /dev/sd*[0-9]' >> /etc/mdadm.conf
Annotazioni
Un riavvio potrebbe essere necessario dopo aver apportato queste modifiche nei sistemi SUSE. Questo passaggio non è obbligatorio in SLES 12.
Aggiungere il nuovo file system a /etc/fstab
Importante
La modifica non corretta del file /etc/fstab potrebbe comportare un sistema non avviabile. In caso di dubbi, fare riferimento alla documentazione della distribuzione per informazioni su come modificare correttamente questo file. È inoltre consigliabile creare una copia di backup del file /etc/fstab prima della modifica.
Creare il punto di montaggio desiderato per il nuovo file system, ad esempio:
sudo mkdir /data
Quando si modifica /etc/fstab, l'UUID deve essere usato per fare riferimento al file system anziché al nome del dispositivo. Usare l'utilità
blkid
per determinare l'UUID per il nuovo file system:sudo /sbin/blkid ........... /dev/md127: UUID="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" TYPE="ext4"
Aprire /etc/fstab in un editor di testo e aggiungere una voce per il nuovo file system, ad esempio:
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults 0 2
Oppure su SLES 11:
/dev/disk/by-uuid/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext3 defaults 0 2
Salvare e chiudere /etc/fstab.
Verificare che la voce /etc/fstab sia corretta:
sudo mount -a
Se questo comando genera un messaggio di errore, controllare la sintassi nel file /etc/fstab.
Eseguire quindi il comando
mount
per assicurarsi che il file system sia montato:mount ................. /dev/md127 on /data type ext4 (rw)
(Facoltativo) Parametri di avvio sicuri
configurazione fstab
Molte distribuzioni includono i
nobootwait
parametri di montaggio onofail
che possono essere aggiunti al file /etc/fstab. Questi parametri consentono fallimenti durante il montaggio di un file system specifico e permettono al sistema Linux di continuare il processo di avvio anche se non è in grado di montare correttamente il file system RAID. Per altre informazioni su questi parametri, vedere la documentazione della distribuzione.Esempio (Ubuntu):
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults,nobootwait 0 2
Parametri di avvio di Linux
Oltre ai parametri precedenti, il parametro del kernel "
bootdegraded=true
" può consentire all'avvio del sistema anche se il RAID viene percepito come danneggiato o danneggiato, ad esempio se un'unità dati viene rimossa inavvertitamente dalla macchina virtuale. Per impostazione predefinita, questo potrebbe comportare anche un sistema non avviabile.Per informazioni su come modificare correttamente i parametri del kernel, vedere la documentazione della distribuzione. Ad esempio, in molte distribuzioni (CentOS, Oracle Linux, SLES 11) questi parametri possono essere aggiunti manualmente al file "
/boot/grub/menu.lst
". In Ubuntu questo parametro può essere aggiunto allaGRUB_CMDLINE_LINUX_DEFAULT
variabile in "/etc/default/grub".
Supporto TRIM/UNMAP
Alcuni kernel di Linux supportano operazioni TRIM/UNMAP allo scopo di rimuovere i blocchi inutilizzati sul disco. Queste operazioni sono particolarmente utili nell'archiviazione standard per informare Azure che le pagine eliminate non sono più valide e possono essere rimosse. L'eliminazione delle pagine può ridurre i costi se si creano file di grandi dimensioni e quindi li si elimina.
Annotazioni
RAID potrebbe non eseguire comandi di eliminazione se la dimensione del blocco per la matrice è impostata su meno del valore predefinito (512 KB). Ciò è dovuto al fatto che anche la granularità di unmap dell'host è di 512 KB. Se le dimensioni del blocco della matrice sono state modificate tramite il parametro di --chunk=
mdadm, le richieste TRIM/unmap potrebbero essere ignorate dal kernel.
Esistono due modi per abilitare la funzione TRIM in una VM Linux. Come di consueto, consultare la propria distribuzione per ottenere l'approccio consigliato.
Usare l'opzione di montaggio
discard
in/etc/fstab
, ad esempio:UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults,discard 0 2
In alcuni casi l'opzione
discard
può avere implicazioni sulle prestazioni. In alternativa, è possibile eseguire il comandofstrim
manualmente dalla riga di comando oppure aggiungerlo a crontab per eseguirlo a intervalli regolari:Ubuntu
# sudo apt-get install util-linux # sudo fstrim /data
RHEL/CentOS
# sudo yum install util-linux # sudo fstrim /data