Crea array RAID di file immagine


9

OK, quindi ho tre file di immagine /home/e ognuno risiede su unità fisiche diverse:

image1.img

image2.img

image3.img

Ogni immagine ha le stesse dimensioni e voglio inserire le immagini stesse in RAID0.

Come devo fare per RAIDing?

EDIT: Usando mdadm ottengo questo errore:

inserisci qui la descrizione dell'immagine

EDIT: output di cat /proc/mdstat

inserisci qui la descrizione dell'immagine

EDIT: output di sudo gparted /dev/md0

inserisci qui la descrizione dell'immagine


Se ho capito bene, vuoi avere un'unità RAID-0 che abbia tre volte la dimensione dei file di immagine e sia spogliata tra i tre file di immagine?
— Lemonslice,

Sì. L'idea è quella di essere in grado di creare un'unità RAID in grado di estendere più unità senza effettivamente collocare le unità in RAID.
— Daniel,

Cosa cat /proc/mdstatdice di questo errore?
— Lemonslice,

Vedi modifica alla domanda
— Daniel,

Quali sono i media sotto i file di immagine? Sulla base del messaggio di errore che non supportano seek ...
— Lemonslice,

Risposte:


8

Per installare il RAID software Linux è necessario installare il mdadmpacchetto.

sudo apt-get install mdadm

Se si desidera creare un software RAID-0 dai tre file di immagine, è necessario creare dispositivi loop per ciascun file di immagine:

sudo losetup /dev/loop1 image1.img
sudo losetup /dev/loop2 image2.img
sudo losetup /dev/loop3 image3.img

Dopo aver creato un array RAID-0 da loro:

sudo mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/loop1 /dev/loop2 /dev/loop3

comando mdadm non trovato
— Daniel

Devi installare il pacchetto mdadm.
— Lemonslice,

Vedi modifica alla domanda
— Daniel,

Questo è con una nuova installazione di mdadm.
— Daniel,

1

Se il tuo sistema soddisfa i requisiti di base che potresti utilizzare zfs( 8 GB di RAM, sistema a 64 bit ):

Aggiungi repository e aggiorna l'elenco dei pacchetti:

sudo add-apt-repository ppa:zfs-native/stable
sudo apt-get update

Installa pacchetto:

sudo apt-get install ubuntu-zfs

Crea un vdev a strisce (senza ridondanza, ma hai chiesto RAID0):

sudo zpool create vol0 ~/image[1-3].img

Questo crea la striscia e la monta su / vol0.

sudo zfs create vol0/filesystem

Questo crea un file system zfs sulla stripe e lo monta su / vol0 / filesystem. Uso

sudo zfs set mountpoint=/mnt/filesystem vol0/filesystem

se si desidera modificare il punto di montaggio.

Puoi anche aggiungere la compressione automatica:

sudo zfs create vol0/filesystem/compressed
sudo zfs set compression=on vol0/filesystem/compressed

Ora tutto ciò che metti in / mnt / filesystem / compressed verrà automaticamente compresso.


"E: Impossibile trovare il pacchetto ubuntu-zfs"
— Daniel

E questo dovrebbe funzionare anche con i file ISO, giusto?
— Daniel,

Hai dimenticato di aggiungere istruzioni su come aggiungere il repository. Ho modificato ora.
— Niclas Börlin,

Non sono sicuro di cosa intendi con i file iso ... Le istruzioni creeranno un file system vuoto con striping sui 3 file in questione. Hai dei dati nei tuoi file ISO che in qualche modo desideri accedere su una partizione con striping?
— Niclas Börlin,

No, ero solo curioso di sapere se si potesse fare o meno, per esempio un DVD-RW o qualcosa del genere.
— Daniel,

0

Ho letteralmente toccato l'immagine # .img per ognuno. C'è qualcos'altro che dovrei fare?

Questo è davvero il problema. I file sono 0 byte e non è possibile cercarli al loro interno. Devi creare file che abbiano effettivamente una dimensione. Può essere un file sparso se vuoi:

[/tmp]$ dd if=/dev/zero of=1.img bs=1M count=25 conv=sparse
25+0 records in
25+0 records out
26214400 bytes (26 MB, 25 MiB) copied, 0.00334608 s, 7.8 GB/s
[/tmp]$ dd if=/dev/zero of=2.img bs=1M count=25 conv=sparse
25+0 records in
25+0 records out
26214400 bytes (26 MB, 25 MiB) copied, 0.00347987 s, 7.5 GB/s
[/tmp]$ dd if=/dev/zero of=3.img bs=1M count=25 conv=sparse
25+0 records in
25+0 records out
26214400 bytes (26 MB, 25 MiB) copied, 0.00330069 s, 7.9 GB/s
[/tmp]$ du  1.img 
0       1.img

Ora posso creare loopdevices e assemblare array:

[/tmp]$ sudo losetup loop0 1.img 
[/tmp]$ sudo losetup loop1 2.img 
[/tmp]$ sudo losetup loop2 3.img 
[/tmp]$ sudo mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/loop0 /dev/loop1 /dev/loop2
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[/tmp]$ sudo mkfs.ext4 /dev/md0 
mke2fs 1.42.11 (09-Jul-2014)
Discarding device blocks: done                            
Creating filesystem with 73728 1k blocks and 18432 inodes
Filesystem UUID: 8123197c-a9aa-434d-9233-103fe20727ed
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
[/tmp]$ mkdir mnt/
[/tmp]$ sudo mount /dev/md0 mnt/
[/tmp]$ df -h mnt/
Filesystem      Size  Used Avail Use% Mounted on
/dev/md0         66M  1.3M   60M   3% /tmp/mnt
[/tmp]$ cat /proc/mdstat 
Personalities : [raid0] 
md0 : active raid0 loop2[2] loop1[1] loop0[0]
      73728 blocks super 1.2 512k chunks

unused devices: <none>
[/tmp]$ du -h 1.img 2.img 3.img 
1.3M    1.img
1.6M    2.img
1.6M    3.img

I file sparsi aumenteranno fino alla dimensione massima, man mano che i dati vengono scritti su di essi. Essi non ridursi se i file all'interno del file system vengono cancellati.

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.