Ho 10 dischi con 8 TB ciascuno in un RAID6 hardware (quindi, 8 dischi dati + 2 parità). Dopo aver risposto a una domanda molto simile , speravo in un rilevamento automatico di tutti i parametri necessari. Tuttavia, quando ho creato il file system XFS alla fine, ho ottenuto
# mkfs.xfs /dev/vgdata/lvscratch
meta-data=/dev/vgdata/lvscratch isize=256 agcount=40, agsize=268435455 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=10737418200, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Sembra che lo striping non sia stato usato. A causa dei diversi termini che ho trovato su siti diversi (dimensione della striscia, dimensione della striscia, blocco della striscia, ...), vorrei chiedere se ho ottenuto i parametri manuali giusti.
Il RAID 6 è stato configurato con una dimensione di strip di 256 KB:
# ./storcli64 /c0/v1 show all | grep Strip
Strip Size = 256 KB
Pertanto, la dimensione della striscia è 8 * 256 KB = 2048 KB = 2 MB. È corretto? Secondo questo (e se lo capisco correttamente), pvcreate
è necessario utilizzare la dimensione strip (o chunk) come argomento per dataalignment
:
# pvcreate --dataalignment 256K /dev/sdb
Physical volume "/dev/sdb" successfully created
Si noti che ho usato l'intero dispositivo RAID senza partizioni. Ora a
# vgcreate vgdata /dev/sdb
Volume group "vgdata" successfully created
con una dimensione PE predefinita di 4 MB dovrebbe andare bene perché è un multiplo della dimensione della striscia di 2 MB. Corretta?
Ora, una parte del vgroup è assegnata a un volume logico:
# lvcreate -L 40T vgdata -n lvscratch
Logical volume "lvscratch" created.
Infine, viene creato il file system ma ora con gli argomenti corretti (dimensione della striscia di 2 MB, larghezza della striscia di 8):
# mkfs.xfs -d su=2048k,sw=8 /dev/vgdata/lvscratch
meta-data=/dev/vgdata/lvscratch isize=256 agcount=41, agsize=268434944 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=10737418240, imaxpct=5
= sunit=512 swidth=4096 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Questo approccio è corretto? C'è qualcosa da tenere a mente per un'estensione del volume logico o del gruppo di volumi? Suppongo che se il gruppo di volumi fosse esteso con un altro sistema RAID6, la dimensione dello strip dovrebbe essere uguale all'attuale RAID6.
EDIT : La mia confusione sembra essere principalmente basata sul diverso uso dei termini collegati alla striscia. Il produttore del mio controller RAID, LSI o Avago, definisce i termini nel modo seguente :
Larghezza della banda
La larghezza della striscia è il numero di unità coinvolte in un gruppo di unità in cui è implementata la striscia. Ad esempio, un gruppo di unità a quattro dischi con striping del disco ha una larghezza di striping di quattro.
Dimensione della striscia
La dimensione dello striping è la lunghezza dei segmenti di dati interlacciati che il controller RAID scrive su più unità, escluse le unità di parità. Ad esempio, si consideri uno stripe che contiene 64 KB di spazio su disco e ha 16 KB di dati residenti su ciascun disco nello stripe. In questo caso, la dimensione della striscia è 64 KB e la dimensione della striscia è 16 KB.
Dimensione della striscia
La dimensione della striscia è la porzione di una striscia che risiede su una singola unità.
Wikipedia (e IBM ) sembrano usare altre definizioni:
I segmenti di dati sequenziali scritti o letti da un disco prima che l'operazione continui sul disco successivo sono generalmente chiamati blocchi, falcate o unità di striping, mentre i loro gruppi logici che formano singole operazioni di striping sono chiamati strip o strip. La quantità di dati in un blocco (unità di striping), spesso denominata in byte, viene variamente definita dimensione del blocco, dimensione del passo, dimensione del tratto, profondità del tratto o lunghezza del tratto. Il numero di dischi di dati nell'array è talvolta chiamato larghezza della striscia, ma può anche riferirsi alla quantità di dati all'interno di una striscia.
La quantità di dati in un passo moltiplicata per il numero di dischi di dati nell'array (vale a dire, profondità della striscia per larghezza della striscia, che nell'analogia geometrica darebbe un'area) viene talvolta chiamata dimensione della striscia o larghezza della striscia. Lo striping esteso si verifica quando blocchi di dati vengono distribuiti su più array, possibilmente tutte le unità del sistema. Lo striping stretto si verifica quando i blocchi di dati vengono distribuiti tra le unità in un singolo array.
Anche nel testo di Wikipedia sopra la dimensione della striscia viene utilizzato con due significati diversi. Tuttavia, suppongo ora, quando si crea il file system xfs, la dimensione di un singolo blocco memorizzato su una singola unità deve essere data come argomento a su. Questo, dovrebbe essere mkfs.xfs -d su=256k,sw=8
nel comando sopra. Corretta?
pvcreate
s'--dataalignment
?