102.1 Lezione 1
Certificazione: |
LPIC-1 |
---|---|
Versione: |
5.0 |
Argomento: |
102 L’Installazione di Linux e la Gestione Pacchetti |
Obiettivo: |
102.1 Progettare il Layout del Disco Rigido |
Lezione: |
1 di 1 |
Introduzione
Per completare questa sezione, è necessario comprendere la relazione tra dischi, partizioni, filesystem e volumi.
Pensa a un disco (o dispositivo di archiviazione, poiché i dispositivi moderni non contengono alcun “disco”) come a un “contenitore fisico” per i tuoi dati.
Prima che un disco possa essere utilizzato da un computer, deve essere partizionato. Una partizione è un sottoinsieme logico del disco fisico, come una “recinzione” logica. Il partizionamento è un modo per “compartimentare” le informazioni memorizzate sul disco, separando, per esempio, i dati del sistema operativo dai dati dell’utente.
Ogni disco ha bisogno di almeno una partizione, ma può avere più partizioni e le informazioni su di esse sono archiviate in una tabella delle partizioni. Questa tabella include informazioni sul primo e sull’ultimo settore della partizione e sul suo tipo, nonché ulteriori dettagli su ciascuna partizione.
All’interno di ogni partizione c’è un filesystem. Il filesystem descrive il modo in cui le informazioni sono effettivamente memorizzate sul disco. Queste informazioni includono come sono organizzate le directory, qual è la relazione tra loro, dove sono i dati per ciascun file, ecc.
Le partizioni non possono estendersi su più dischi. Ma utilizzando il Logical Volume Manager (LVM) è possibile combinare più partizioni, anche su più dischi, per formare un singolo volume logico.
I volumi logici astraggono i limiti dei dispositivi fisici e lasciano il tuo lavoro con “insiemi” di spazio su disco che possono essere combinati o distribuiti in un modo molto più flessibile rispetto alle partizioni tradizionali. LVM è utile in situazioni in cui è necessario aggiungere più spazio a una partizione senza dover migrare i dati su un dispositivo più grande.
In questa sezione imparerai come progettare uno schema di partizionamento del disco per un sistema Linux, allocando filesystem e spazio di swap per separare partizioni o dischi quando necessario.
Come creare e gestire partizioni e filesystem verrannà trattato in altre lezioni. In questa sezione, viene fornita una panoramica generale di LVM , senza però entrare nei dettagli operativi.
Punti di Montaggio
Prima di poter accedere a un filesystem su Linux, questo deve necessariamente essere montato. Ciò significa collegare il filesystem a un punto specifico nella struttura di directory del sistema, chiamato punto di montaggio.
Una volta montato, il contenuto del filesystem sarà disponibile sotto il punto di montaggio. Per esempio immagina di avere una partizione con i dati personali dei tuoi utenti (le loro home directory), contenenti le directory /john
, /jack
e /carol
. Se montate all’interno di /home
, il contenuto di tali directory sarà disponibile in /home/john
, /home/jack
e /home/carol
.
Il punto di montaggio deve esistere prima di montare il filesystem. Per esempio non è possibile montare una partizione in /mnt/userdata
se questa directory non esiste. Tuttavia, se la directory esiste e contiene file, tali file non saranno disponibili finché non si smonta il filesystem. Se si elenca il contenuto della directory, si vedranno i file memorizzati sul filesystem montato e non i contenuti originali della directory.
I filesystem possono essere montati ovunque si voglia. Tuttavia, ci sono alcune buone pratiche da seguire per facilitare l’amministrazione del sistema.
Tradizionalmente /mnt
era la directory in cui sarebbero stati montati tutti i dispositivi esterni e un numero di punti di montaggio preconfigurati per dispositivi comuni, come unità CD-ROM (/mnt /cdrom
) e floppy disk (/mnt/floppy
).
Questo è stato sostituito da /media
, che ora è il punto di montaggio predefinito per qualsiasi supporto rimovibile (per es. dischi esterni, unità flash USB, schede di memoria, dischi ottici, ecc.) collegati al sistema.
Sulla maggior parte delle moderne distribuzioni Linux in ambienti desktop, i dispositivi rimovibili vengono montati automaticamente su /media/USER/LABEL
quando sono collegati al sistema, dove USER
è il nome utente e LABEL
è l’etichetta del dispositivo . Per esempio, flash USB con l’etichetta FlashDrive
collegata da john
verrebbe montata sotto /media/john/FlashDrive/
. Il modo in cui ciò viene gestito può dipendere dall’ambiente desktop utilizzato.
Detto questo, ogni volta che è necessario montare manualmente un filesystem, è buona norma montarlo in /mnt
. I comandi specifici per effettuare il montaggio e lo smontaggio dei filesystem su Linux saranno discussi in un’altra lezione.
Tenere le Cose Separate
Su Linux, ci sono alcune directory che dovresti considerare di tenere su partizioni separate. Ci sono molte ragioni per questo: per esempio, mantenendo i file relativi al bootloader (memorizzati su /boot
) su una partizione di avvio, si garantisce che il sistema sarà ancora in grado di avviarsi in caso di un arresto anomalo del root filesystem.
Mantenere le directory personali dell’utente (in /home
) su una partizione separata semplifica la reinstallazione del sistema senza il rischio di toccare accidentalmente i dati dell’utente. Mantenere i dati relativi a un server Web o di database (di solito in /var
) su una partizione separata (o anche su un disco separato) semplifica l’amministrazione del sistema nel caso in cui sia necessario aggiungere più spazio disco per questi casi d’uso.
Ci possono essere anche motivi di prestazioni per mantenere determinate directory su partizioni separate. Potresti voler mantenere il filesystem di root (/
) su un’unità SSD veloce e directory più grandi come /home
e /var
su dischi rigidi più lenti che offrono però molto più spazio ad una frazione del costo.
La Partizione di Avvio (/boot
)
La partizione di avvio contiene i file utilizzati dal bootloader per caricare il sistema operativo. Sui sistemi Linux il bootloader è generalmente GRUB2 o, su sistemi più vecchi, GRUB Legacy. La partizione è di solito montata in /boot
e i suoi file sono memorizzati in /boot/grub
.
Tecnicamente non è necessaria una partizione di avvio, poiché nella maggior parte dei casi GRUB può montare la partizione di root (/
) e caricare i file da una directory /boot
separata.
Tuttavia è possibile che si desideri una partizione di avvio separata per motivi di sicurezza (assicurandosi che il sistema si avvii anche in caso di crash del root filesystem) o se si desidera utilizzare un filesystem che il bootloader non può comprendere nella partizione di root o se utilizza un tipo di crittografia e/o di compressione non supportata.
La partizione di avvio è in genere la prima partizione sul disco. Questo perché all’inizio il BIOS dei PC IBM indirizzava i dischi utilizzando cilindri(cylinder), testine(head) e settori(sectors) (CHS), con un massimo di 1024 cilindri, 256 testine e 63 settori, con una dimensione massima del disco di 528 MB (504 MB in MS-DOS) . Ciò significa che qualsiasi cosa oltre questo spazio non sarebbe accessibile sui sistemi legacy, a meno che non fosse utilizzato un diverso schema di indirizzamento del disco (come il Logical Block Addressing, LBA).
Quindi, per garantire la massima compatibilità, la partizione di avvio si trova di solito all’inizio del disco e termina prima del cilindro 1024 (528 MB), assicurando così che la macchina sia sempre in grado di caricare il kernel.
Poiché la partizione di avvio memorizza solo i file necessari al bootloader, il disco RAM iniziale (initrd) e le immagini del kernel, può rimanere di dimensioni piuttosto ristrette rispetto agli standard odierni. Una buona dimensione è di circa 300 MB.
La Partizione di Sistema EFI (ESP)
L'EFI System Partition (ESP) viene utilizzata dalle macchine basate su Unified Extensible Firmware Interface (UEFI) per memorizzare boot loader e immagini del kernel per i sistemi operativi installati.
Questa partizione è formattata in un filesystem basato su FAT. Su un disco partizionato con una tabella delle partizioni GUID ha un identificatore univoco globale di C12A7328-F81F-11D2-BA4B-00A0C93EC93B
. Se il disco è stato formattato invece con lo schema di partizionamento MBR, l’ID della partizione sarà 0xEF
.
Sui computer che eseguono Microsoft Windows questa partizione è in genere la prima sul disco, sebbene non sia strettamente necessario. L’ESP viene creata (o popolata) dal sistema operativo al momento dell’installazione. Su un sistema Linux è montata in /boot/efi
.
La Partizione /home
Ogni utente nel sistema ha una home directory home per memorizzare i file e le preferenze personali, e la maggior parte di essi si trova in /home
. Di solito la home directory è la stessa del nome utente, quindi l’utente John avrà la sua directory in /home/john
.
Tuttavia ci sono eccezioni. Per esempio la home directory per l’utente root è /root
e alcuni servizi di sistema potrebbero avere utenti associati con home directory posizionate altrove.
Non esiste una regola per determinare la dimensione di una partizione per la directory /home
(la partizione home). È necessario tenere conto del numero di utenti nel sistema e di come verrà utilizzato. Per esempio, un utente che esegue solo la navigazione Web ed elaborazione dei testi richiederà meno spazio di uno che lavora con l’editing video.
Dati variabili (/var
)
Questa directory contiene “dati variabili” o file e directory su cui il sistema deve poter scrivere durante il funzionamento. Ciò include i log di sistema (/var /log
), i file temporanei (/var/tmp
) e i dati delle applicazioni memorizzate nella cache (in /var/cache
).
/var/www/html
è anche la directory predefinita per i file dei dati del Web Server Apache e /var/lib/mysql
è la posizione predefinita per i file di database per il server MySQL. Tuttavia, entrambi questi possono essere modificati.
Un buon motivo per mettere /var
in una partizione separata è la stabilità. Molte applicazioni e processi scrivono su /var
e relative sottodirectory, come /var/log
o /var/tmp
. Un processo non corretto può scrivere dati fino a quando non c’è più spazio libero sul filesystem.
Se /var
è in /`ciò può innescare un evento di kernel panic e la corruzione del filesystem, causando una situazione difficilmente recuperabile. Ma se `/var
è tenuto in una partizione separata, il filesystem di root non sarà influenzato.
Come in /home
, non esiste una regola universale per determinare la dimensione di una partizione per /var
, poiché varierà al variare del modo in cui viene utilizzato il sistema. Su un sistema domestico, potrebbero essere necessari solo pochi gigabyte. Ma su un database o un server Web potrebbe essere necessario molto più spazio. In tali scenari, può essere saggio mettere /var
su una partizione su un disco diverso rispetto alla partizione root aggiungendo un ulteriore livello di protezione contro i guasti del disco fisico.
Lo Swap
La partizione di swap viene utilizzata per scambiare pagine di memoria dalla RAM al disco secondo necessità. Questa partizione deve essere di un tipo specifico e inizializzata con un’utilità adeguata chiamata mkswap
prima di poter essere utilizzata.
La partizione di swap non può essere montata come le altre, il che significa che non è possibile accedervi come una normale directory e dare un’occhiata al suo contenuto.
Un sistema può avere più partizioni di swap (anche se questo non è comune) e Linux supporta anche l’uso di file di swap invece di partizioni, che possono essere utili per aumentare rapidamente lo spazio di swap quando necessario.
La dimensione della partizione di swap è un problema controverso. La vecchia regola dei primi tempi di Linux: “due volte la quantità di RAM” potrebbe non essere più applicabile a seconda di come viene utilizzato il sistema e della quantità di RAM fisica installata.
Nella documentazione di Red Hat Enterprise Linux 7, Red Hat consiglia quanto segue:
Quantità di RAM | Dimensione Swap Raccomandata | Dimensione Swap Raccomandata con Ibernazione |
---|---|---|
< 2 GB di RAM |
2x la quantità di RAM |
3x la quantità di RAM |
2-8 GB di RAM |
Uguale alla quantità di RAM |
2x la quantità di RAM |
8-64 GB di RAM |
Almeno 4 GB |
1.5x la quantità di RAM |
> 64 GB di RAM |
Almeno 4 GB |
Non raccomandata |
Naturalmente la quantità di swap può dipendere dal carico di lavoro. Se la macchina esegue un servizio critico, come un database, un server Web o SAP, è consigliabile controllare la documentazione di questi servizi (o il fornitore del software) per le raccomandazioni specifiche.
Note
|
Per ulteriori informazioni sulla creazione e l’abilitazione di partizioni e file di swap, vedere la sezione 104.1 dell' LPIC-1. |
LVM
Abbiamo già discusso di come i dischi sono organizzati in una o più partizioni, con ciascuna partizione contenente un filesystem che descrive come sono memorizzati i file e i metadati associati. Uno degli svantaggi del partizionamento è che l’amministratore di sistema deve decidere in anticipo come verrà distribuito lo spazio su disco disponibile su un dispositivo. Ciò può presentare alcune sfide in seguito, se una partizione richiede più spazio di quanto inizialmente previsto. Naturalmente le partizioni possono essere ridimensionate, ma ciò potrebbe non essere possibile se, per esempio, non c’è ulteriore spazio libero sul disco.
Logical Volume Management (LVM) è una forma di virtualizzazione dello storage che offre agli amministratori di sistema un approccio più flessibile alla gestione dello spazio su disco rispetto al partizionamento tradizionale. L’obiettivo di LVM è facilitare la gestione delle esigenze di archiviazione. L’unità base è il Physical Volume (PV), che è un dispositivo a blocchi sul sistema come per esempio una partizione del disco o un array RAID.
I PV sono raggruppati in Volume Group (VG) che astraggono i dispositivi sottostanti e sono visti come un singolo dispositivo logico, con la capacità di archiviazione combinata dei vari PV.
Ogni volume in un Volume Group è suddiviso in parti di dimensioni fisse chiamati extents. Tali parti su un PV sono denominate Physical Extents (PE), mentre quelle su un volume logico sono chiamate Logical Extents (LE). In genere, ogni estensione logica è mappata su un’estensione fisica, ma ciò può cambiare se vengono utilizzate funzionalità come il mirroring del disco.
I Volume Groups possono essere suddivisi in Logical Volumes (LV), che funzionano in modo simile alle partizioni ma con maggiore flessibilità.
La dimensione di un Logical Volume, come specificato durante la sua creazione, è in effetti definita dalla dimensione delle estensioni (extents) fisiche (4 MB per impostazione predefinita) moltiplicata per il numero di estensioni sul volume. Da questo è facile capire che per far crescere un Logical Volume, per esempio, tutto ciò che l’amministratore di sistema deve fare è aggiungere ulteriori estensioni dal pool disponibile nel Volume Group. Allo stesso modo, le estensioni possono essere rimosse per ridurre l’LV.
Dopo la creazione di un Logical Volume, quest’ultimo viene visualizzato dal sistema operativo come un normale dispositivo a blocchi. Una nuova risorsa verrà creata in /dev
, chiamata come /dev/VGNAME/LVNAME
, dove VGNAME
è il nome del Volume Group e LVNAME
è il nome del Logical Volume.
Questi dispositivi possono essere formattati con un filesystem a scelta usando utility standard (come per esempio mkfs.ext4
) e montati manualmente con il comando mount
o automaticamente aggiungendoli al file /etc/fstab
.
Esercizi Guidati
-
Sui sistemi Linux, dove sono archiviati i file per il bootloader GRUB?
-
Dove dovrebbe terminare la partizione di avvio per garantire che un PC sia sempre in grado di caricare il kernel?
-
Dove si trova di solito la partizione EFI?
-
Quando si monta manualmente un filesystem, in quale directory dovrebbe essere montato di solito?
Esercizi Esplorativi
-
Qual è l’unità più piccola all’interno di un Volume Group?
-
Come viene definita la dimensione di un Logical Volume?
-
Su un disco formattato con lo schema di partizionamento MBR, qual è l’ID della partizione di sistema EFI?
-
Oltre che con partizioni, come è possibile aumentare rapidamente lo spazio di swap su un sistema Linux?
Sommario
In questa lezione abbiamo appreso i concetti fondamentali del partizionamento, quali directory di solito sono tenute in partizioni separate e il perché di ciò. Inoltre, abbiamo fatto una panoramica su LVM (Logical Volume Management) e sul come può offrire un modo più flessibile di allocare i dati e lo spazio su disco rispetto al partizionamento tradizionale.
Sono stati discussi i seguenti file, termini e utilità:
/
-
La radice pricipale del file system Linux.
/var
-
Il percorso standard per i “dati variabili”, dati che possono sia ridursi e crescere nel tempo.
/home
-
La directory principale standard per le home degli utenti su un sistema.
/boot
-
Il percorso standard per i file del bootloader, il kernel Linux e il disco RAM iniziale (Initrd).
- EFI System Partition (ESP)
-
Utilizzato dai sistemi che hanno implementato UEFI per l’archiviazione dei file di avvio del sistema.
- Spazio swap
-
Utilizzato per scambiare pagine di memoria del kernel quando la RAM è sovra utilizzata.
- Punti di montaggio
-
Posizioni della directory in cui verrà montato un dispositivo (come un disco rigido).
- Partizioni
-
Spazi di sezionamento logico di un disco rigido
Risposte agli Esercizi Guidati
-
Sui sistemi Linux, dove sono archiviati i file per il bootloader GRUB?
All’interno di
/boot/grub
. -
Dove dovrebbe terminare la partizione di avvio per garantire che un PC sia sempre in grado di caricare il kernel?
Prima del cilindro 1024.
-
Dove si trova di solito la partizione EFI?
All’interno di
/boot/efi
. -
Quando si monta manualmente un filesystem, in quale directory dovrebbe essere montato di solito?
All’interno di
/mnt
. Tuttavia, questo non è obbligatorio. È possibile montare una partizione in qualsiasi directory desiderata.
Risposte agli Esercizi Guidati
-
Qual è l’unità più piccola all’interno di un Volume Group?
I Volume Group sono suddivisi in estensioni (extents).
-
Come viene definita la dimensione di un Logical Volume?
Attraverso la dimensione delle estensioni fisiche (PE) moltiplicata per il numero di estensioni sul volume.
-
Su un disco formattato con lo schema di partizionamento MBR, qual è l’ID della partizione di sistema EFI?
L’ID è
0xEF
. -
Oltre che con partizioni, come è possibile aumentare rapidamente lo spazio di swap su un sistema Linux?
Si possono utilizzare i file di swap.