Partizione file system UNIX ottimale + strategia di installazione


16

Quando si partiziona un / i nuovo / i disco / i di sistema per UNIX, qual è la strategia preferita per desktop e / o server?

Includere il layout della partizione del disco, i formati e le opzioni del file system, i punti di montaggio, i livelli RAID, i gruppi e i volumi LVM, la crittografia e qualsiasi altra impostazione pertinente.


La domanda sembra quasi un duplicato di questo ( serverfault.com/questions/1145/… ).
Zoredache,

è per una workstation, un server di prova o per un server online completamente maturo?
Djangofan,

Risposte:


9

Sono un fan di LVM per questo tipo di problemi. Hai solo bisogno di spazio per / boot (utilizzo circa 100 MB). In combinazione con filesystem che possono crescere e ridursi in modo dinamico (o almeno crescere) non devi mai più pensare a piccole partizioni.

Sul mio desktop utilizzo un LVM con XFS come filesystem per tutte le partizioni. Creo il più piccolo possibile e li lascio crescere quando ho bisogno di più spazio.


7

Se è Linux, avere un / boot separato.

Per altre varianti di Unix, in genere, ho raccomandato le partizioni per / e / var, i dati sono generalmente montati su / u001, / u002 ecc.

In precedenza, era necessario partizionare pesantemente poiché lo spazio su disco era limitato e non si voleva una singola partizione riempita per arrestare l'intero sistema. Con lo spazio di archiviazione notevolmente maggiore disponibile oggi e le numerose opzioni di ridimensionamento e virtualizzazione disponibili, la necessità di molte partizioni IMO è diminuita. Ciò, unito al fatto che è una seccatura spostare le cose quando hai molte partizioni, significa che se riesci a cavartela con meno, fallo.

Avere lo scambio come 2xRAM non ha senso quando si dice 32 GB di memoria. Quindi ricorda, le "regole" sono in realtà linee guida e alcune semplicemente non hanno senso alla luce del nuovo hardware disponibile ora.


2
+1 per menzionare la necessità di un partizionamento in corso di recente, inoltre se hai bisogno di più spazio in / home potresti sempre montare un nuovo hard disk.
Spoike,

1
+1 - Accetto di minimizzare la necessità di folli giochi di partizionamento sulla maggior parte dei sistemi. Se sai che hai bisogno di / var per essere su un disco veloce a causa di alcune applicazioni, così sia. Il più delle volte, quando mi sono imbattuto in folli giochi di partizionamento nei sistemi di produzione è stato un singolo volume RAID-1 hardware suddiviso in un mucchio di piccole partizioni, tutte in attesa di essere riempite e devono essere ridimensionate (per lavorare per l'amministratore, apparentemente). Se sai di avere un'applicazione per un qualche tipo di schema di partizione complesso, provalo. Se non lo fai, non lo fai.
Evan Anderson,

5

La pianificazione di una buona struttura di partizionamento dipende in gran parte dalla conoscenza effettiva di come si utilizzerà il sistema. Qualsiasi consiglio casuale che non tenga conto di ciò che il sistema sta facendo non sarà particolarmente utile.

Tutti i fantasiosi filesystem possono essere utili in alcune occasioni, ma se vuoi un sistema stabile potrebbe essere una buona idea attenersi al filesystem "standard" (cioè ext3) a meno che tu non abbia una buona ragione per usare qualcos'altro.

RAID è buono, eseguo sempre RAID1 su tutti i miei personal computer perché ho avuto troppi dischi rigidi guasti.

La crittografia con qualcosa come dm-crypt è buona se il tuo sistema è un dispositivo portatile, ha dati di alto valore o sei semplicemente paranoico.

Mentre stai pianificando le tue partizioni, è molto utile avere una buona comprensione di cose come il Filesystem Hierarchy Standard e se / come il tuo unix scelto devia dallo standard.

L'uso di LVM può rendere molto più semplice cambiare idea in futuro e regolare le partizioni senza dover riavviare. E la sua capacità di creare snapshot può essere molto semplice per creare buoni backup. Usa LVM e non allocare immediatamente tutto il tuo spazio.


5

Ci sono due ottimi motivi per partizionare oltre al tipo FS:

  1. Impedire la fuoriuscita eccessiva da un'applicazione che influisce sulla funzionalità del sistema. Se la tua app si riempie /usr, è utile lasciare un po 'di spazio /varper consentire al sistema di continuare e registrare i registri.

    Jauder ha detto sopra che questo è negato dalle dimensioni dei dischi rigidi oggi - non penso che sia strettamente vero. Le nostre unità potrebbero essere più grandi, ma i dati che stiamo consegnando sono in costante aumento. Non è necessario essere compiacenti.

  2. Opzioni di montaggio. È possibile definire con maggiore attenzione quali autorizzazioni dovrebbe adottare ogni partizione. Ad esempio, è buona norma non consentire l'esecuzione dei file, in particolare dei suid, /tmppoiché è un vettore di attacco comune per le macchine che servono applicazioni Web. A meno che tu non stia eseguendo jail, non dovresti aspettarti di vedere nodi di dispositivo ovunque ma /dev. E così via.

per esempio.

/ noatime  
/tmp noatime,nodev,nosuid,noexec  
/var noatime,nodev,nosuid  
/usr noatime,nodev  
/home noatime,nodev,nosuid  

4

Partizionamento dei dischi fisici
Inizia con almeno 2 dischi:

# 1 100 MB, ID = 83 (Linux), Boot Flag ON
# 2 rimanente, ID = FD (Linux Raid Auto)

La partizione da 100 MB è per il volume / boot. Lascio questo su tutte le mie unità (anche non di avvio) per consentire la flessibilità in modo che qualsiasi unità possa essere successivamente abilitata all'avvio. SE i dischi non hanno dimensioni corrispondenti, o si dispone di un numero dispari (500 GB, 250 GB x 2), quindi dividere le partizioni dell'unità da 500 GB in modo che corrispondano ai dischi più piccoli.

RAID
Utilizzando le partizioni da 100 MB su sdae sdbcreare un volume RAID1 (mirror) per /boot. Questo diventa md0.

md0 / boot 100MB Ext2

Non preoccuparti di usare un FS esotico su / boot, non ne vale la pena.

Lo spazio rimanente può essere impostato in diversi metodi. Opto per un RAID10 (mirror / stripe) che utilizza blocchi da 64 KB e "2 copie remote" per la velocità. Questo ti dà molta flessibilità per aggiornare progressivamente le unità lungo la linea. Le altre opzioni sono fare un RAID5 / 6. Tuttavia, lo spazio utilizzabile sarà limitato alla partizione più piccola e NON utilizzare partizioni dagli stessi dispositivi. Il nome del nuovo array RAID md1, md2e così via.

LVM
Prendi tutti gli array RAID tranne md0e li inserisce in un singolo gruppo di volumi LVM denominato lvm_vg0. Se hai volumi RAID5 e RAID10, probabilmente è meglio non combinarli, ma immagino che non farebbe male.

Partizionare VG0 per i rimanenti supporti di sistema. Ricorda che è relativamente facile aggiungere più spazio se necessario, quindi questi numeri possono essere alquanto conservativi.

lvm_vg0-root / 8GB Ext3 / ReiserFS (file core distro)
lvm_vg0-home / home 20 + GB Ext3 / ReiserFS (dati utente, documenti)
lvm_vg0-data / data 60 + GB XFS (media, file di grandi dimensioni, vm)

I file system XFS non possono essere ridotti, quindi tienilo a mente. Inoltre, la riduzione di un volume di root online probabilmente non è supportata.

Aggiornamento Se si desidera scambiare dischi per dimensioni maggiori, sono disponibili alcune opzioni. Il più semplice è l'aggiunta di unità in coppia o più e l'aggiunta dei nuovi array RAID all'attuale LVM VG.

Un'altra opzione è l'aggiunta di una singola unità che è> = alla somma dello spazio corrente. Ad esempio, se si dispone di due dispositivi da 100 GB in RAID10, è possibile aggiungere un nuovo dispositivo da 200 GB e eseguirne il mirroring utilizzando i due vecchi dispositivi. Questo è più soggetto a errori, ma funzionerà.

Se necessario, i md#dispositivi possono essere rimossi da LVM VG senza perdere dati. Questo può essere fatto se c'è abbastanza spazio libero LVM per spostare tutti i blocchi LVM usati dal md#dispositivo ad altri. LVM può utilizzare solo lo spazio che non è stato assegnato a un LV, quindi un file system vuoto non viene considerato come spazio "libero".


1
Non sono convinto dalla paura di file system esotici su / boot. ext3 e XFS non sono più esotici nel 2009. Era un problema quando i LiveCD non erano confezionati con i driver per loro, ma quasi tutti lo sono in questi giorni.
Dan Carley,

@Casey, puoi ridurre un volume Ext3 "live", a condizione che tu abbia abbastanza spazio libero per spostarti. Sì, questa è un'esperienza pungente, ma l'ho fatto e funziona come pubblicizzato. Basta essere MOLTO attenti con i parametri.
Avery Payne,

2

Ho appena eseguito Linux Workstations. Uso il file system ext3 e le dimensioni dipendono in qualche modo dalla dimensione dei dischi, essendo più generosa con le partizioni sui dischi più grandi. Questi sono approssimativamente nell'ordine in cui appaiono nella tabella delle partizioni:

  • / boot - 100 MB
  • spazio di scambio - 2xRAM
  • / usr - 10-20 GB
  • / - 5-10 GB
  • / var - 1-2 GB
  • / tmp - 1-2 GB
  • / usr / local - 10-20 GB
  • / home - tutto il resto.

Sulle stazioni di lavoro di mia moglie all'università, che hanno due unità da 750 GB, abbiamo creato, oltre a quanto sopra, una dozzina di partizioni da ~ 100 GB attraverso le varie unità tutte montate in / data / N dove N era un numero compreso tra 1 e 12 Li usa per conservare i dati per i suoi diversi progetti di ricerca.


Personalmente non vedo il vantaggio di avere / var, / usr separati in una partizione diversa. Sebbene / usr / local possa essere una buona idea se si dispone di un software personalizzato installato (= non installato tramite la gestione dei pacchetti), i due citati sono piuttosto inutili. Anche 2xRAM come swap non è necessario. Se il tuo sistema inizia a scambiare, tutto diventa molto lento, quindi all'inizio vuoi evitarlo. Personalmente ho solo una partizione di swap con Ramsize + X perché a volte uso suspend-to-disk.
Martin,

2
@Martin, su Linux box che funge da cache di calamari vuoi che la tua directory di spool e la directory di log siano su un disco veloce e di solito non hai bisogno che quel disco sia affidabile. Si potrebbe mettere (/ var) il proprio spool su un RAID0 (stripe) e lasciare tutto il resto su un drive più lento.
Zoredache,

@Martin - Hai ragione, dividere / usr off è probabilmente non necessario e non lo faccio neanche più. Lo swap = 2xRAM è una vecchia abitudine rimasta dai tempi in cui stavo configurando sistemi con solo 256 MB di RAM o meno.
dagorym,

1
in realtà, la suddivisione / usr e / var consente di abilitare l'inserimento nel journal su uno e non sull'altro.
Scott,

1
E mettere / var su una partizione separata assicura che solo / var possa riempire con i file di registro, che altrimenti potrebbero mettere il sistema in ginocchio.
wzzrd,

1

uso noatime su tutti i dischi (a meno che tu non abbia un motivo per non farlo) I mount / tmp in tmpfs anche se questo potrebbe non essere così buono su un server, mi assicurerei che sia una partizione separata e lo monti nodev, nosuid, noexec, noatime . Uso sempre ext2 per / boot, quindi non devo preoccuparmi di cambiare roba fs rovinando la mia capacità di avviare w / grub. ext4 su tutto il resto, uso journal = data on / home che probabilmente rallenta un po 'le cose (dato che non ha dealloc) ma non ho mai perso i dati con journal = data, ed essendo un po' più recente / più grande puttana, a volte il mio sistema si blocca e devo resettarlo duramente (perché ho provato qualcosa come kms e ho trovato un bug).


1
Non dimenticare di usare anche 'nodiratime', altrimenti spingerai sulla tua vfs_cache_pressure con tonnellate di inode (più le scritture effettive su disco!).
Gazzonyx,

0

Caspita, bella domanda. State navigando per la risposta perfetta per questo per yonks.

Personalmente ho 50 Mb / avvio ~ 8 GB / e il resto va verso / home Quello è ben lungi dall'essere perfetto. Ho bisogno di studiare filesystem alternativi, attualmente uso ext3 ma ho sentito grandi cose di altri filesystem come XFS.

Di solito creo anche un contenitore di file per / tmp in modo da poter essere più flessibile con esso in futuro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.