Utilizzo di unità 4k con md / LVM / dm-crypt


8

So che devo allineare le mie unità 4k per un multiplo di 8 settori, ma che dire di md-RAID / LVM / dm-crypt? Come faccio a dire a questi livelli che il mio disco è 4K? Se non rispettano le dimensioni del settore 4k, l'allineamento della partizione è inutile. Come allineare LVM / md / crypto-layer? Grazie.


2
Stavo solo pensando, "Hmm, 4 kilobyte sembrano terribilmente piccoli per un'unità disco". Forse è il nuovo 640k.
Tom O'Connor,

@ Tom. Molti filesystem usano una dimensione di blocco di 4 KB, quindi settori più grandi porterebbero a molte scritture di modifica-modifica che compromettono le prestazioni. In secondo luogo, la spinta verso settori più grandi è stata principalmente quella di aumentare l'efficienza dell'ECC e vi sono rendimenti decrescenti per renderlo ancora più grande.
janneb,

@janneb Sei Buzz Killington AICMFP
Tom O'Connor,

Risposte:


4

Stai attento! le etichette gpt, necessarie per dischi> 2 TiB, sono lunghe 39 settori (512 byte). Quindi, se crei la tua prima partizione immediatamente dopo l'etichetta, non sarà su un limite di 4KiB.

GNU parted non lo fa di default, probabilmente perché molte unità "Advanced Format" affermano erroneamente che i loro settori fisici , non solo i loro settori logici, sono ancora solo 512B.

Quindi, se stai usando GNU parted, assicurati che ogni partizione inizi su un LBA divisibile per 8 (gli LBA rimangono 512B, quindi 8 * 512B = 4KiB). Gli LBA hanno origine a 0, quindi avvia la prima partizione su "40s".

Inoltre, se usi GRUB, lascia spazio al suo bootstrap di secondo livello. Le etichette MS-DOS sono 63 settori, con abbastanza spazio inutilizzato per GRUB per riporre il bootstrap del secondo stadio, ma non c'è spazio inutilizzato in un'etichetta gpt. Quindi crea una piccola partizione 1, imposta il suo flag "bios_grub", quindi crea le tue partizioni "reali" dopo - assicurandoti che ognuno inizi su un LBA che sia un multiplo di 8.


3

Vedi https://ata.wiki.kernel.org/index.php/ATA_4_KiB_sector_issues

La versione breve è che se hai una distro recente, dovrebbe fare automaticamente la cosa giusta. Per le distro più vecchie, è un po 'più complicato.

Per LVM dovresti studiare l' --dataalignmentopzione per pvcreate, o per distribuzioni ancora più vecchie -–metadatasize.

MD, AFAIK, mette i propri metadati alla fine delle partizioni, quindi dovrebbe essere sempre allineato alla partizione sottostante.

Per mkfs, di nuovo il filesystem dovrebbe essere allineato con la partizione sottostante. Per alcuni filesystem è possibile aggiungere opzioni per la larghezza e la dimensione dello stripe nel caso in cui si stia eseguendo un dispositivo RAID, in modo che il filesystem possa provare ad allineare le cose sui limiti dello stripe RAID.


1

il problema è principalmente con l'allineamento della partizione che inizia con la struttura del disco sottostante. per mantenere all'indietro i dischi di compatibilità 'mentono' al bios / os che hanno settori da 512B, mentre in realtà hanno settori da 4096B in caso di hard disk moderni, settori da 32-64kB nel caso dei raid / ssds di stripping più comuni.

le partizioni disallineate danneggeranno la tua performance. ho fatto alcuni benchmark solo su partizioni regolari nella parte superiore del disco - senza lvm e i miei risultati misurati con Bonnie ++ erano senza un corretto allineamento:

Sequential Output Block: 29MB/s
Sequential Output Rewrite: 20MB/s

con allineamento:

Sequential Output Block: 70MB/s
Sequential Output Rewrite: 37MB/s

controllare questo per l'allineamento LVM.


0

La maggior parte delle nuove distribuzioni sono state aggiornate per conoscere la cosa 4K ormai. Ho appena creato un'installazione md-RAID / LVM / XFS su un gruppo di unità da 2 TB senza problemi. Non ho fatto niente di speciale.


non sono d'accordo ... certo - tutto funziona, ma le partizioni sono allineate in modo errato, il che fa male alle prestazioni.
pQd

Bene, questo pone le domande. Ho diversi raid diversi che usano unità da 2 TB a 500 GB con un LVM sopra formattato con XFS. Quindi, come funzionerebbe esattamente tutto se tutte le unità non fossero 4K? Mi piacerebbe fare dei benchmark ma il mio server Terra è più lento delle unità, quindi sarebbe inutile.
Portico,
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.