I meriti di un filesystem senza partizioni


39

Mi sono imbattuto in qualcosa un paio di settimane fa che non avevo mai visto prima: un filesystem (ext3 credo) installato su un dispositivo di archiviazione senza una partizione. In sostanza /dev/sdb era l'intero filesystem. So che molti filesystem possono essere estesi in uno spazio vuoto, quindi farlo consente di estenderlo senza occuparsi di LVM o di qualche altro tipo di gestore di volumi, ma ci sono altri vantaggi per configurare l'archiviazione in questo modo?

Il caso specifico che ho visto è stato come il volume di dati effimero per un server che crunching numerico, i volumi di avvio e di root erano partizioni tradizionali su un dispositivo di archiviazione completamente diverso. -


Anche Oracle VM lo fa - per "archiviazione locale".
Nils,

3
Ho perso questa domanda e ne ho iniziato uno nuovo che copre lo stesso motivo: unix.stackexchange.com/q/52389/4801 . La domanda ora è stata chiusa, ma alcune delle risposte potrebbero anche essere utili ai lettori di questa Q, e potrebbero essere fuse qui.
dubiousjim,


Funziona ma porta a problemi che finiranno per perdere tempo, come mostrato qui - access.redhat.com/documentation/en-us/red_hat_enterprise_linux/… .
slm

Risposte:


24

Pro: non sprecare un settore del disco su una tabella delle partizioni. (Sìì.)

Pro: il disco può essere utilizzato in un sistema operativo che non supporta partizioni in stile PC. (Come se ne userai uno.)

Contro: questo è insolito e può confondere i co-amministratori di sistema. (Vedere?)

Contro: se installi un altro sistema operativo, potresti pensare che il disco contenga spazzatura e rendere facile sovrascriverlo accidentalmente selezionando il disco sbagliato - mentre i sistemi operativi generalmente lasciano da sole partizioni di cui non comprendono il tipo.

Irrilevante: l'estensione del filesystem non è più semplice se è direttamente sul disco che se si trova in una partizione, né viceversa. (Essere su LVM semplificherebbe.)

Conclusione: funziona, ma non è una buona idea.


2
Confusione, ahoy! Il mio contatore interno è attualmente incline al "tentativo errato di ottimizzazione".
sysadmin1138,

6
un altro svantaggio: rende più difficile dividere in seguito la partizione in due.
Kim,

3
Ho trovato domande e risposte su questo superutente che ha alcuni buoni esempi di utilizzo hexdumpe odche mostrano in termini molto concreti cosa sta succedendo con una configurazione /dev/sdavs ... /dev/sda1
slm

4
È un po 'più semplice estendere il volume su un intero disco poiché non è necessario estendere prima la partizione.
psusi

2
In un ambiente non commerciale, l'installazione di un altro sistema operativo può essere pertinente, ma chi si avvale di più sistemi in un ambiente commerciale? Sono turbato dal fatto che questa è la risposta canonica. Niente di sbagliato, tranne che è opinione. Sto lavorando sull'uso del disco senza partizioni, ma di seguito sono riportate alcune buone ragioni.
Graham Nicholls,

18

Non sono sicuro di come questo si applicherebbe a Linux ma con ZFS nativo, un motivo per cui si consiglia di creare pool su interi dischi e non su partizioni è nel primo caso che la cache di scrittura del disco può essere abilitata.

Diverse altre ragioni menzionate anche qui:

http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide#Storage_Pools

Conclusione: funziona e potrebbe essere una buona idea a seconda del filesystem.


Buono a sapersi. In questo caso specifico era nel cloud! quindi l'archiviazione è piuttosto pesantemente sottratta al momento della configurazione del sistema.
sysadmin1138,

1
Cosa diavolo ha a che fare la cache di scrittura su disco con se è in uso una tabella delle partizioni?
psusi,

3
La cache di scrittura non può essere abilitata a livello di partizione. Se abilitato, influisce sul disco nel suo insieme. Se un file system utilizza un intero disco, "possiede" quel disco in modo da poter attivare e disattivare quella cache senza alcun rischio collaterale. Altrimenti, farlo potrebbe influire su un altro utente del disco che ha bisogno di disabilitare quella cache per i propri motivi.
jlliagre,

4
Certo, ma avere il sistema operativo che accende accecantemente la cache senza conoscere i requisiti del file system o del consumatore del dispositivo non è un approccio affidabile. Esistono applicazioni come i database che devono essere sicuri che una transazione impegnata sia su disco e non solo in memoria.
jlliagre,

1
@psusi Se fsync scaricherà o meno la cache del disco sembra essere dipendente dal file system.
jlliagre,

16

Vedo il vero vantaggio quando questo viene fatto in un ambiente virtuale. Poiché i nostri VMDK sono archiviati sul nostro NAS, possiamo farli crescere in modo dinamico.

Se stiamo usando le partizioni, o dobbiamo usare LVM (e il sovraccarico ad esso associato) e mettere insieme le partizioni, oppure dobbiamo eliminare l'host (o il filesystem se non in uso) per usare qualcosa come gparted.

Tuttavia, se si utilizza l'intero disco anziché una partizione, è possibile forzare una nuova scansione sui dischi SCSI e utilizzare resize2fs per far crescere il filesystem mentre è online (e in uso!).


Buon punto! Con i dischi virtuali (come è possibile creare, rimuoverli e ridimensionarli secondo necessità) le partizioni sembrano essere un livello inutile.
pabouk,

11

Posizionare un filesystem su un dispositivo disco senza creare alcuna partizione non è così raro.

vantaggi:

  • quando si desidera utilizzare comunque l'intero spazio, non è necessario perdere tempo con alcuni strumenti di partizionamento
  • non devi preoccuparti delle incompatibilità del formato di partizione "standard" (a proposito, quale formato di partizione è lo standard, quello DOS, quello BSD?), ad esempio il formato di partizione DOS consente solo partizioni fino a 2 TB quando si utilizza Settori logici da 512 byte!
  • non devi preoccuparti di problemi di allineamento indotti dalla partizione su unità con dimensioni del settore (attualmente) insolite (ad es. 4 k) - certo, le attuali distribuzioni dovrebbero fornire strumenti di partizionamento che correggano l'allineamento con diverse dimensioni del settore

Essere in grado di ridimensionare un filesystem su un dispositivo raw non è una buona ragione. Lo spazio che risparmi in questo modo, non puoi utilizzarlo per altre cose. Pertanto, è possibile creare direttamente il file system sull'intero dispositivo.


2

Una risposta che non è stata elencata è che, se non si crea una partizione, non è necessario attendere che il kernel lo rilevi, che potrebbe essere solo dopo un riavvio.

Un caso d'uso potrebbe essere un volume EBS EC2 che si aggiunge al nodo e si desidera inizializzare al primo avvio.

Se il processo di inizializzazione crea una partizione si corre il rischio di dover riavviare il kernel per vedere la partizione appena creata. In genere vedresti un messaggio come:

Errore: errore che informa il kernel sulle modifiche alla partizione / dev / xvde1 - Dispositivo o risorsa occupata. Ciò significa che Linux non sarà a conoscenza di eventuali modifiche apportate a / dev / xvde1 fino al riavvio, quindi non è necessario montarlo o utilizzarlo in alcun modo prima di riavviare.

In questo caso il processo di inizializzazione dovrebbe eseguire un riavvio e quindi continuare ad aggiungere un filesystem alla partizione appena creata.

Se sai che avrai bisogno solo di una singola partizione, potresti anche saltarla, senza correre il rischio di richiedere un riavvio.

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.