GNU/Linux >> Linux Esercitazione >  >> Linux

Come gestire lo storage su Linux con LVM

Logical Volume Manager (LVM) è un sistema simile a RAID basato su software che consente di creare "pool" di archiviazione e aggiungere spazio su disco rigido a tali pool secondo necessità. Ci sono molte ragioni per utilizzarlo, soprattutto in un data center o in qualsiasi luogo in cui i requisiti di archiviazione cambiano nel tempo. Molte distribuzioni Linux lo usano per impostazione predefinita per le installazioni desktop, tuttavia, perché gli utenti trovano conveniente la flessibilità e ci sono alcune funzionalità di crittografia integrate che la struttura LVM semplifica.

Tuttavia, se non sei abituato a vedere un volume LVM all'avvio da un Live CD per scopi di salvataggio o migrazione dei dati, LVM può creare confusione perché il montaggio il comando non può montare volumi LVM. Per questo, sono necessari gli strumenti LVM installati. È molto probabile che la tua distribuzione disponga di utilità LVM, se non sono già installate.

Questo tutorial spiega come creare e gestire i volumi LVM.

Crea un pool LVM

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Questo articolo presuppone che tu abbia una conoscenza pratica di come interagire con i dischi rigidi su Linux. Se hai bisogno di maggiori informazioni sulle basi prima di continuare, leggi la mia introduzione ai dischi rigidi su Linux.

Di solito, non è necessario configurare affatto LVM. Quando installi Linux, per impostazione predefinita spesso crea un "pool" virtuale di archiviazione e aggiunge i dischi rigidi della tua macchina a quel pool. Tuttavia, la creazione manuale di uno storage pool LVM è un ottimo modo per scoprire cosa accade dietro le quinte.

Puoi esercitarti con due chiavette USB di riserva di qualsiasi dimensione, o due dischi rigidi, o una macchina virtuale con due unità immaginarie definite.

Innanzitutto, formatta l'unità immaginaria /dev/sdx in modo da avere un nuovo disco pronto per l'uso per questa demo.

# echo "warning, this ERASES everything on this drive."
warning, this ERASES everything on this drive.
# dd if=/dev/zero of=/dev/sdx count=8196
# parted /dev/sdx print | grep Disk
Disk /dev/sdx: 100GB
# parted /dev/sdx mklabel gpt
# parted /dev/sdx mkpart primary 1s 100%

Questo comando LVM crea un pool di archiviazione. Un pool può essere costituito da una o più unità e in questo momento è costituito da una. Questo pool di archiviazione di esempio è denominato biliardo , ma puoi chiamarlo come vuoi.

# vgcreate billiards /dev/sdx1

Ora hai un grande e nebuloso pool di spazio di archiviazione. È ora di distribuirlo. Per creare due volumi logici (puoi pensarli come unità virtuali), uno chiamato vol0 e l'altro chiamato vol1 , inserisci quanto segue:

# lvcreate billiards 49G --name vol0
# lvcreate billiards 49G --name vol1

Ora hai due volumi ricavati da un pool di archiviazione, ma nessuno dei due ha ancora un filesystem. Per creare un filesystem su ogni volume, devi portare il biliardo gruppo di volume online.

# vgchange --activate y billiards

Ora crea i file system. La -L L'opzione fornisce un'etichetta per l'unità, che viene visualizzata quando l'unità è montata sul desktop. Il percorso del volume è leggermente diverso dai soliti percorsi dei dispositivi a cui sei abituato perché si tratta di dispositivi virtuali in un pool di archiviazione LVM.

# mkfs.ext4 -L finance /dev/billiards/vol0
# mkfs.ext4 -L production /dev/billiards/vol1

Puoi montare questi nuovi volumi sul desktop o da un terminale.

# mkdir -p /mnt/vol0 /mnt/vol1
# mount /dev/billiards/vol0 /mnt/vol0
# mount /dev/billiards/vol1 /mnt/vol1

Aggiungi spazio alla tua piscina

Finora, LVM non ha fornito nient'altro che il partizionamento normalmente fornito da un'unità:due sezioni distinte di spazio su disco su una singola unità fisica (in questo esempio, 49 GB e 49 GB su un'unità da 100 GB). Immagina ora che il dipartimento finanziario abbia bisogno di più spazio. Tradizionalmente, dovresti ristrutturare. Forse sposteresti i dati del dipartimento finanziario su una nuova unità fisica dedicata, o forse aggiungeresti un'unità e quindi utilizzeresti un brutto hack di collegamento simbolico per fornire agli utenti un facile accesso al loro spazio di archiviazione aggiuntivo. Con LVM, invece, tutto ciò che devi fare è espandere lo storage pool.

Puoi aggiungere spazio al tuo pool formattando un'altra unità e utilizzandola per creare più spazio aggiuntivo.

Innanzitutto, crea una partizione sulla nuova unità che stai aggiungendo al pool.

# part /dev/sdy mkpart primary 1s 100%

Quindi usa vgextend comando per contrassegnare la nuova unità come parte del pool.

# vgextend billiards /dev/sdy1

Infine, dedica parte del nuovo pool di archiviazione disponibile al volume logico appropriato.

# lvextend -L +49G /dev/billiards/vol0

Naturalmente, l'espansione non deve essere così lineare. Immagina che il reparto di produzione abbia improvvisamente bisogno di 100 TB di spazio aggiuntivo. Con LVM, puoi aggiungere tutte le unità fisiche necessarie, aggiungendo ognuna di esse e utilizzando vgextend per creare uno storage pool da 100 TB, quindi utilizzando lvextend per "allungare" lo spazio di archiviazione del reparto di produzione su 100 TB di spazio disponibile.

Utilizza le utility per comprendere la tua struttura di archiviazione

Una volta che inizi a utilizzare LVM sul serio, il panorama dello storage può diventare travolgente. Sono disponibili due comandi per raccogliere informazioni sulla struttura della tua infrastruttura di archiviazione.

Innanzitutto, c'è vgdisplay , che mostra informazioni sui tuoi gruppi di volumi (puoi considerarli come le grandi unità virtuali di alto livello di LVM).

# vgdisplay
  --- Volume group ---
  VG Name               billiards
  System ID            
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <237.47 GiB
  PE Size               4.00 MiB
  Total PE              60792
  Alloc PE / Size       60792 / <237.47 GiB
  Free  PE / Size       0 / 0  
  VG UUID               j5RlhN-Co4Q-7d99-eM3K-G77R-eDJO-nMR9Yg

Il secondo è lvdisplay , che mostra informazioni sui tuoi volumi logici (puoi considerarli unità rivolte all'utente).

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/billiards/finance
  LV Name                finance
  VG Name                billiards
  LV UUID                qPgRhr-s0rS-YJHK-0Cl3-5MME-87OJ-vjjYRT
  LV Write Access        read/write
  LV Creation host, time localhost, 2018-12-16 07:31:01 +1300
  LV Status              available
  # open                 1
  LV Size                149.68 GiB
  Current LE             46511
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

[...]

Utilizza LVM in un ambiente di salvataggio

Il "problema" con LVM è che avvolge le partizioni in un modo che non è familiare a molti utenti amministrativi che sono abituati al partizionamento tradizionale delle unità. In circostanze normali, le unità LVM vengono attivate e montate in modo abbastanza invisibile durante il processo di avvio o l'integrazione desktop LVM. Non è qualcosa a cui di solito devi pensare. Diventa problematico solo quando ti trovi in ​​modalità di ripristino dopo che qualcosa è andato storto con il tuo sistema.

Se è necessario montare un volume "nascosto" all'interno della struttura di LVM, è necessario assicurarsi che la toolchain LVM sia installata. Se hai accesso al tuo /usr/sbin directory, probabilmente hai accesso a tutti i tuoi soliti comandi LVM. Ma se hai avviato una shell minima o un ambiente di salvataggio, potresti non avere quegli strumenti. Un buon ambiente di salvataggio ha installato LVM, quindi se ti trovi in ​​una shell minima, trova un sistema di salvataggio che lo faccia. Se stai utilizzando un disco di ripristino su cui non è installato LVM, installalo manualmente o trova un disco di ripristino che lo abbia già.

Per motivi di ripetizione e chiarezza, ecco come montare un volume LVM.

# vgchange --activate y
2 logical volume(s) in volume group "billiards" now active
# mkdir /mnt/finance
# mount /dev/billiards/finance /mnt/finance

Integra LVM con la crittografia LUKS

Molte distribuzioni Linux utilizzano LVM per impostazione predefinita durante l'installazione del sistema operativo. Ciò consente l'estensione di archiviazione in un secondo momento, ma si integra perfettamente anche con la crittografia del disco fornita dalla toolchain di crittografia LUKS (Unified Key Setup) di Linux.

La crittografia è piuttosto importante e ci sono due modi per crittografare le cose:puoi crittografare in base al file con uno strumento come GnuPG, oppure puoi crittografare un'intera partizione. Su Linux, crittografare una partizione è facile con LUKS, che, essendo completamente integrato in Linux tramite moduli del kernel, consente di montare le unità per leggere e scrivere senza interruzioni.

La crittografia dell'intera unità principale di solito avviene come opzione durante l'installazione. Scegli di crittografare l'intera unità o solo la partizione home quando richiesto e da quel momento in poi stai utilizzando LUKS. È per lo più invisibile per te, a parte una richiesta di password durante l'avvio.

Se la tua distribuzione non offre questa opzione durante l'installazione, o se desideri solo crittografare manualmente un'unità o una partizione, puoi farlo.

È possibile seguire questo esempio utilizzando un'unità di riserva; Ho usato una piccola chiavetta USB da 4 GB.

Innanzitutto, collega l'unità al computer. Assicurati che sia sicuro cancellare l'unità e utilizza lsblk per individuare l'unità sul tuo sistema.

Se l'unità non è già partizionata, partizionarla ora. Se non sai come partizionare un'unità, controlla il link sopra per le istruzioni.

Ora puoi impostare la crittografia. Innanzitutto, formatta la partizione con cryptsetup comando.

# cryptsetup luksFormat /dev/sdx1

Tieni presente che stai crittografando la partizione , non l'unità fisica stessa. Vedrai un avviso che LUKS cancellerà l'unità; devi accettarlo per continuare. Ti verrà richiesto di creare una passphrase, quindi fallo. Non dimenticare quella passphrase. Senza di esso, non sarai mai più in grado di entrare in quella guida!

Hai crittografato la partizione della chiavetta USB, ma non c'è ancora nessun filesystem sull'unità. Ovviamente, non puoi scrivere un filesystem sull'unità mentre ne sei bloccato, quindi apri prima l'unità con LUKS. Puoi fornire un nome a misura d'uomo per il tuo disco; per questo esempio ho usato mySafeDrive .

# cryptsetup luksOpen /dev/sdx1 mySafeDrive

Inserisci la tua passphrase per aprire l'unità.

Cerca in /dev/mapper e vedrai che hai montato il volume insieme a qualsiasi altro volume LVM che potresti avere, il che significa che ora hai accesso a quell'unità. Il nome personalizzato (ad es. mySafeDrive) è un collegamento simbolico a un designatore generato automaticamente in /dev/mapper . È possibile utilizzare entrambi i percorsi quando si opera su questa unità.

# ls -l /dev/mapper/mySafeDrive
lrwxrwxrwx. 1 root root 7 Oct 24 03:58 /dev/mapper/mySafeDrive -> ../dm-4

Crea il tuo filesystem.

# mkfs.ext4 -o Linux -L mySafeExt4Drive /dev/mapper/mySafeDrive

Ora esegui ls -lh su /dev/mapper e vedrai che mySafeDrive è in realtà un collegamento simbolico a qualche altro sviluppatore; probabilmente /dev/dm0 o simili. Questo è il filesystem che puoi montare:

# mount /dev/mapper/mySafeExt4Drive /mnt/hd

Ora il filesystem sull'unità crittografata è montato. Puoi leggere e scrivere file come ti aspetteresti con qualsiasi unità.

Utilizza unità crittografate con il desktop

LUKS è integrato nel kernel, quindi il tuo sistema Linux è pienamente consapevole di come gestirlo. Scollegare l'unità, ricollegarla e montarla dal desktop. Nel file manager Dolphin di KDE, ti verrà richiesta una password prima che l'unità venga decifrata e montata.

L'uso di LVM e LUKS è facile e offre flessibilità per te come utente e amministratore. Essendo strettamente integrato in Linux stesso, è ben supportato e un ottimo modo per aggiungere un livello di sicurezza ai tuoi dati. Provalo oggi!


Linux
  1. Come gestire le capacità dei file Linux

  2. Come gestire i servizi Systemd con Systemctl su Linux

  3. Come utilizzare Google Drive su Linux

  4. Come gestire gli utenti con useradd in Linux

  5. Come gestire le workstation Linux con le policy

Come gestire più versioni Java con jEnv su Linux

Come gestire le versioni di Nodejs con n in Linux

Come creare un gruppo di volumi in Linux con LVM

Come proteggere i server Linux con SE Linux

Come gestire in remoto un server Linux con SSH

Come gestire l'archiviazione con GParted Linux