OK, j'ai donc trois fichiers image dans /home/
, et chacun d'entre eux réside sur des lecteurs physiques différents:
image1.img
image2.img
image3.img
Chaque image a la même taille et je souhaite placer les images elles-mêmes dans RAID0.
Comment dois-je m'y prendre pour les mettre en RAID?
EDIT: En utilisant mdadm je reçois cette erreur:
EDIT: Sortie de cat /proc/mdstat
EDIT: Sortie de Sudo gparted /dev/md0
Pour installer le logiciel RAID Linux, vous devez installer le paquetage mdadm
.
Sudo apt-get install mdadm
Si vous souhaitez créer un logiciel RAID-0 à partir des trois fichiers image, vous devez créer des unités de boucle pour chaque fichier image:
Sudo losetup /dev/loop1 image1.img
Sudo losetup /dev/loop2 image2.img
Sudo losetup /dev/loop3 image3.img
Une fois que vous pouvez créer une matrice RAID-0 à partir d’eux:
Sudo mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/loop1 /dev/loop2 /dev/loop3
Si votre système répond aux exigences de base, vous pouvez utiliser zfs
( 8 Go de RAM, système 64 bits ):
Ajouter repo et mettre à jour la liste des paquets:
Sudo add-apt-repository ppa:zfs-native/stable
Sudo apt-get update
Installer le paquet:
Sudo apt-get install ubuntu-zfs
Créer un vdev par bandes (sans redondance, mais vous avez demandé RAID0):
Sudo zpool create vol0 ~/image[1-3].img
Cela crée la bande et la monte sur/vol0.
Sudo zfs create vol0/filesystem
Ceci crée un système de fichiers zfs sur la bande et le monte dans/vol0/système de fichiers. Utilisation
Sudo zfs set mountpoint=/mnt/filesystem vol0/filesystem
si vous voulez changer le point de montage.
Vous pouvez également ajouter une compression automatique:
Sudo zfs create vol0/filesystem/compressed
Sudo zfs set compression=on vol0/filesystem/compressed
Maintenant, tout ce que vous mettez dans/mnt/système de fichiers/compressé sera automatiquement compressé.
Je viens littéralement de toucher l'image # .img pour chacun. Y a-t-il autre chose que je devrais faire?
C'est en effet le problème. Les fichiers ont une taille de 0 octet et vous ne pouvez pas y chercher. Vous devez créer des fichiers qui ont réellement une taille. Cela peut être un n fichier fragmenté si vous voulez:
[/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
Maintenant, je peux faire des loopdevices et assembler des tableaux:
[/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
Les fichiers fragmentés augmenteront jusqu'à la taille maximale, à mesure que les données leur sont écrites. Ils ne réduiront pas si des fichiers du système de fichiers sont supprimés.