Erstellen Sie ein RAID-Array mit Bilddateien

9

OK, ich habe drei Image-Dateien /home/, die sich jeweils auf verschiedenen physischen Laufwerken befinden:

image1.img

image2.img

image3.img

Jedes Bild hat die gleiche Größe und ich möchte die Bilder selbst in RAID0 einfügen.

Wie soll ich sie RAIDEN?

EDIT: Mit mdadm bekomme ich diesen Fehler:

Geben Sie hier die Bildbeschreibung ein

EDIT: Ausgabe von cat /proc/mdstat

Geben Sie hier die Bildbeschreibung ein

EDIT: Ausgabe von sudo gparted /dev/md0

Geben Sie hier die Bildbeschreibung ein

Daniel
quelle
Wenn ich das richtig verstehe, möchten Sie ein RAID-0-Laufwerk haben, das dreimal so groß wie die Bilddateien ist und zwischen den drei Bilddateien entfernt wird?
Zitronenscheibe
Ja. Die Idee ist, eine RAID-Einheit zu erstellen, die mehrere Laufwerke umfassen kann, ohne die Laufwerke tatsächlich in RAID zu platzieren.
Daniel
Was cat /proc/mdstatsagt über diesen Fehler aus?
Zitronenscheibe
Siehe Bearbeiten zu Frage
Daniel
Was sind die Medien unter den Bilddateien? Basierend auf der Fehlermeldung unterstützen sie nicht suchen ...
Zitronenscheibe

Antworten:

8

Um das Linux-Software-RAID zu installieren, müssen Sie das mdadmPaket installieren .

sudo apt-get install mdadm

Wenn Sie aus den drei Bilddateien ein Software-RAID-0 erstellen möchten, müssen Sie für jede Bilddatei Loop-Geräte erstellen:

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

Nachdem Sie daraus ein RAID-0-Array erstellen können:

sudo mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/loop1 /dev/loop2 /dev/loop3
Zitronenscheibe
quelle
Befehl mdadm nicht gefunden
Daniel
Sie müssen das Paket installieren mdadm.
Zitronenscheibe
Siehe Bearbeiten zu Frage
Daniel
Das ist mit einer Neuinstallation von mdadm.
Daniel
1

Wenn Ihr System den grundlegenden Anforderungen entspricht, die Sie verwenden können zfs( 8 GB RAM, 64-Bit-System ):

Repo hinzufügen und Paketliste aktualisieren:

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

Installationspaket:

sudo apt-get install ubuntu-zfs

Erstellen Sie ein gestreiftes vdev (ohne Redundanz, aber Sie haben nach RAID0 gefragt):

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

Dadurch wird der Streifen erstellt und bei / vol0 montiert.

sudo zfs create vol0/filesystem

Dadurch wird ein zfs-Dateisystem auf dem Streifen erstellt und unter / vol0 / filesystem bereitgestellt. Verwenden

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

Wenn Sie den Einhängepunkt ändern möchten.

Sie können auch eine automatische Komprimierung hinzufügen:

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

Jetzt wird alles, was Sie in / mnt / filesystem / compressed abgelegt haben, automatisch komprimiert.

Niclas Börlin
quelle
"E: Paket ubuntu-zfs konnte nicht gefunden werden"
Daniel
Und das sollte auch mit ISO-Dateien funktionieren, oder?
Daniel
Ich habe vergessen, Anweisungen zum Hinzufügen des Repos hinzuzufügen. Habe jetzt bearbeitet.
Niclas Börlin
Ich bin nicht sicher, was Sie mit ISO-Dateien meinen ... Die Anweisungen erstellen ein leeres Dateisystem, das über die 3 fraglichen Dateien gestreift ist. Haben Sie Daten in Ihren ISO-Dateien, auf die Sie auf einer gestreiften Partition zugreifen möchten?
Niclas Börlin
Nein, ich war nur neugierig, ob das möglich ist oder nicht, zum Beispiel eine DVD-RW oder so etwas.
Daniel
0

Ich habe buchstäblich nur das Bild # .img für jedes einzelne berührt. Gibt es noch etwas, was ich tun sollte?

Das ist in der Tat das Problem. Die Dateien sind 0 Bytes und können nicht in ihnen gesucht werden. Sie müssen Dateien erstellen, die tatsächlich eine Größe haben. Es kann eine spärliche Datei sein, wenn Sie möchten:

[/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

Jetzt kann ich Schleifengeräte erstellen und ein Array zusammenstellen:

[/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

Sparse-Dateien werden maximal maximal, wenn Daten in sie geschrieben werden. Sie werden nicht verkleinert, wenn Dateien im Dateisystem gelöscht werden.

vidarlo
quelle