GNU/Linux >> Linux Esercitazione >  >> Linux

Una guida per principianti a LVM

Versione 1.0
Autore:Falko Timme
Ultimo aggiornamento:09-02-2015

Questa guida mostra come lavorare con LVM (Logical Volume Management) su Linux. Descrive anche come utilizzare LVM insieme a RAID1 in un capitolo aggiuntivo. Poiché LVM è un argomento piuttosto astratto, questo articolo viene fornito con un'immagine Debian Etch VMware che puoi scaricare e avviare, e su quel sistema Debian Etch puoi eseguire tutti i comandi che eseguo qui e confrontare i tuoi risultati con i miei. Attraverso questo approccio pratico dovresti abituarti a LVM molto velocemente.

Tuttavia, non garantisco che questo tutorial funzionerà per te!

1 Nota preliminare

Questo tutorial è stato ispirato da due articoli che ho letto:

  • http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html
  • http://www.debian-administration.org/articles/410

Questi sono ottimi articoli, ma difficili da capire se non hai mai lavorato con LVM prima. Ecco perché ho creato questa immagine Debian Etch VMware che puoi scaricare ed eseguire in VMware Server o VMware Player (vedi https://www.howtoforge.com/import_vmware_images per sapere come farlo).

Ho installato tutti gli strumenti di cui abbiamo bisogno nel corso di questa guida sul sistema Debian Etch (eseguendo

apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs

) quindi non devi preoccuparti di questo.

La rete del sistema Debian Etch è configurata tramite DHCP, quindi non devi preoccuparti di indirizzi IP in conflitto. La password di root è howtoforge. Puoi anche connetterti a quel sistema con un client SSH come PuTTY. Per scoprire l'indirizzo IP del sistema Debian Etch, esegui

ifconfig

Il sistema ha sei dischi rigidi SCSI, /dev/sda - /dev/sdf. /dev/sda è usato per il sistema Debian Etch stesso, mentre useremo /dev/sdb - /dev/sdf per LVM e RAID. /dev/sdb - /dev/sdf hanno ciascuno 80 GB di spazio su disco. All'inizio agiremo come se ciascuno avesse solo 25GB di spazio su disco (utilizzando quindi solo 25GB su ciascuno di essi), e nel corso del tutorial "sostituiremo" i nostri hard disk da 25GB con hard disk da 80GB, dimostrando così come puoi sostituire i piccoli dischi rigidi con quelli più grandi in LVM.

L'articolo http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html utilizza dischi rigidi da 250 GB e 800 GB, ma alcuni comandi come pvmove richiedono tanto tempo con dischi rigidi di tali dimensioni, ecco perché ho deciso di utilizzare dischi rigidi da 25 GB e 80 GB (abbastanza per capire come funziona LVM).

1.1 Riepilogo

Scarica questa immagine Debian Etch VMware (~310 MB) e avviala in questo modo. Accedi come root con la password howtoforge.

2 Layout LVM

Fondamentalmente LVM si presenta così:

Hai uno o più volumi fisici (/dev/sdb1 - /dev/sde1 nel nostro esempio), e su questi volumi fisici crei uno o più gruppi di volumi (es. file server) e in ogni gruppo di volumi puoi creare uno o più volumi logici. Se utilizzi più volumi fisici, ogni volume logico può essere più grande di uno dei volumi fisici sottostanti (ma ovviamente la somma dei volumi logici non può superare lo spazio totale offerto dai volumi fisici).

È buona norma non allocare tutto lo spazio ai volumi logici, ma lasciare un po' di spazio inutilizzato. In questo modo puoi ingrandire uno o più volumi logici in seguito, se ne senti la necessità.

In questo esempio creeremo un gruppo di volumi chiamato fileserver e creeremo anche i volumi logici /dev/fileserver/share, /dev/fileserver/backup e /dev/fileserver/media (che utilizzerà solo metà dello spazio offerto dai nostri volumi fisici per ora - in questo modo possiamo passare a RAID1 in seguito (descritto anche in questo tutorial)).

3 La nostra prima configurazione LVM

Scopriamo insieme i nostri hard disk:

fdisk -l

L'output è simile a questo:

server1:~# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          18      144553+  83  Linux
/dev/sda2              19        2450    19535040   83  Linux
/dev/sda4            2451        2610     1285200   82  Linux swap / Solaris

Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/sdd: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdd doesn't contain a valid partition table

Disk /dev/sde: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sde doesn't contain a valid partition table

Disk /dev/sdf: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdf doesn't contain a valid partition table

Non ci sono ancora partizioni su /dev/sdb - /dev/sdf. Creeremo le partizioni /dev/sdb1, /dev/sdc1, /dev/sdd1 e /dev/sde1 e per ora lasceremo /dev/sdf intatto. Agiamo come se i nostri dischi rigidi avessero solo 25 GB di spazio invece di 80 GB per ora, quindi assegniamo 25 GB a /dev/sdb1, /dev/sdc1, /dev/sdd1 e /dev/sde1:

fdisk /dev/sdb

server1:~# fdisk /dev/sdb

Il numero di cilindri per questo disco è impostato su 10443.
Non c'è niente di sbagliato in questo ma è maggiore di 1024,
e potrebbe in alcune impostazioni causare problemi con:
1) software che è in esecuzione al avvio (ad es., vecchie versioni di LILO)
2) avviare e partizionare software da altri OS
   (ad es. DOS FDISK, OS/2 FDISK)

Command (m for help): <-- m
Command action
   a   attiva/disattiva un flag avviabile
   b   edit bsd disklabel
   c   attiva/disattiva il flag di compatibilità dos
   d   elimina una partizione
   l   elenca i tipi di partizione noti
  m   stampa questo menu
  n   aggiungi una nuova partizione
   o   crea una nuova tabella delle partizioni DOS vuota
   p   stampare la tabella delle partizioni
   q  uscire senza salvare le modifiche
   s   creare una nuova etichetta disco Sun vuota
  t   cambiare l'id di sistema di una partizione
   u cambiare unità di visualizzazione/immissione
   v   verificare la tabella delle partizioni    w   scrivi tabella su disco ed esci
   x   funzionalità extra (solo esperti)

Comando (m per aiuto): <-- n
Comando azione
e   esteso
   p   partizione primaria (1-4)
<-- p
Numero partizione (1-4): <-- 1
Primo cilindro (1-10443, predefinito 1).
Comando (m for help): <-- t
Partizione 1 selezionata
Codice esadecimale (digitare L per elencare i codici): <-- L

 0  Vuoto 1E nascosto W95 FAT1 80 Old Minix BE BE SOLIS SCOORE
1 FAT12 24 NEC DOS 81 Minix/Old Lin BF Solaris
2 Xenix Root 39 Piani 9 82 Linux Swap/SO C1 DRDOS/sec (grasso-
3 Xenix USR 3C PartitionMagic 83 Linux C4 DRDOS/sec (Fat-
4 FAT16 <32m 40 VENIX 80286 84 OS/2 Hidden C:C6 DRDOS/SEC (Fat-
5 Extended 41 pp C boot preparazione 85 Linux esteso C7 Syrinx
6 FAT16 42 SFS 86 NTFS Volume set DA Non-FS Dati
7 hpfs/ntfs 4d qnx4.x 87 ntfs set db cp/m/ctos/.
8 AIX 4E QNX4.x 2nd Parte 88 Linux Plaintext De Dell Utility
9 Aix Bootable 4F QNX4.X 3rd Parte 8E Linux LVM DF Bootit
A OS /2 Boot Manag 50 OnTrack DM 93 AMoeba AMoeba E1 DOS Accesso
B W95 FAT32 51 ONTRACK DM6 AUX 94 AMOBEB BBT E3 DOS R /O
C W95 FAT32 (LBA) 52 CP /M 9F BSD /OS E4 Speedstor
E W95 Fat16 ( Lba) 53 ontrack dm6 aux a0 ibm Thinkpad hi eb beos fs
f w95 extd (lba) 54 ontrackdm6 a5 freebsd ee efi gpt
10 opus 55 ez-drive a6 openbsd ef efi (fat-12 /16/
11  Nascosto FAT12    56  Arco d'oro      a7  NeXTSTEP        f0  Linux/PA-RISC b
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS F1 Speedstor
14 FAT16 nascosto16 <3 61 Speedstor A9 NetBSD F4 Speedstor
16 Hidden Fat16 63 GNU HURD o SYS AB Darwin Boot F2 DOS Secondary
17 Hidden HPFS /NTF 64 Novell B7 B7 BSDI FS fd  Linux raid auto
18  AST SmartSleep  65  Novell Netware  b8 BSDI swap       fe  LANstep
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid ff  BBT
1c F AT W95 /> Codice esadecimale (digitare L per elencare i codici): <-- 8e
Tipo di partizione di sistema modificato a 8e (Linux LVM)

Comando (m per aiuto): <-- w
La tabella delle partizioni è stata modificata!

Chiamata ioctl() per rileggere la tabella delle partizioni.
Sincronizzazione dei dischi.

Ora facciamo lo stesso per i dischi rigidi /dev/sdc - /dev/sde:

fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde

Quindi esegui

fdisk -l

ancora. L'output dovrebbe essere simile a questo:

server1:~# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          18      144553+  83  Linux
/dev/sda2              19        2450    19535040   83  Linux
/dev/sda4            2451        2610     1285200   82  Linux swap / Solaris

Disk /dev/sdb: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sdc: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sdd: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sde: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1               1        3040    24418768+  8e  Linux LVM

Disk /dev/sdf: 85.8 GB, 85899345920 bytes
255 heads, 63 sectors/track, 10443 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdf doesn't contain a valid partition table

Ora prepariamo le nostre nuove partizioni per LVM:

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created
  Physical volume "/dev/sdd1" successfully created
  Physical volume "/dev/sde1" successfully created

Riprendiamo quest'ultima azione per scopi di formazione:

pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
  Labels on physical volume "/dev/sdb1" successfully wiped
  Labels on physical volume "/dev/sdc1" successfully wiped
  Labels on physical volume "/dev/sdd1" successfully wiped
  Labels on physical volume "/dev/sde1" successfully wiped

Quindi esegui

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

ancora:

server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created
  Physical volume "/dev/sdd1" successfully created
  Physical volume "/dev/sde1" successfully created

Ora corri

pvdisplay

per conoscere lo stato attuale dei tuoi volumi fisici:

server1:~# pvdisplay
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               G8lu2L-Hij1-NVde-sOKc-OoVI-fadg-Jd1vyU

  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               40GJyh-IbsI-pzhn-TDRq-PQ3l-3ut0-AVSE4B

  --- NEW Physical volume ---
  PV Name               /dev/sdd1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               4mU63D-4s26-uL00-r0pO-Q0hP-mvQR-2YJN5B

  --- NEW Physical volume ---
  PV Name               /dev/sde1
  VG Name
  PV Size               23.29 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               3upcZc-4eS2-h4r4-iBKK-gZJv-AYt3-EKdRK6

Linux
  1. Creazione di volumi logici in Linux con LVM

  2. La guida completa per principianti a LVM in Linux

  3. Guida per principianti al multipathing Device Mapper (DM).

  4. CentOS / RHEL 7:Guida per principianti a systemd

  5. Guida per principianti a SELinux

Spark Guida allo streaming per principianti

Impostazione di un IP statico su Ubuntu:una guida per principianti

Una guida per principianti per comprendere sudo su Ubuntu

Una guida per principianti a Cron Jobs

Guida per principianti all'editor vi (riferimento alla riga di comando)

Guida per principianti alla gestione degli utenti MySQL