Criar matriz RAID de arquivos de imagem

9

OK, então eu tenho três arquivos de imagem /home/e cada um deles reside em diferentes unidades físicas:

image1.img

image2.img

image3.img

Cada imagem tem o mesmo tamanho e quero colocar as imagens em RAID0.

Como devo proceder para RAIDing neles?

EDIT: Usando mdadm eu recebo este erro:

insira a descrição da imagem aqui

EDIT: Saída de cat /proc/mdstat

insira a descrição da imagem aqui

EDIT: Saída de sudo gparted /dev/md0

insira a descrição da imagem aqui

Daniel
fonte
Se bem entendi, você deseja ter uma unidade RAID-0 três vezes maior que o tamanho dos arquivos de imagem e que está dividida entre os três arquivos de imagem?
Lemonslice
Sim. A idéia é poder criar uma unidade RAID que possa abranger várias unidades sem realmente colocar as unidades no RAID.
Daniel
O que cat /proc/mdstatdiz sobre esse erro?
Lemonslice
Veja a edição em questão
Daniel
Quais são as mídias abaixo dos arquivos de imagem? Com base na mensagem de erro que não suportam procurar ...
lemonslice

Respostas:

8

Para instalar o RAID do software Linux, você precisa instalar o mdadmpacote.

sudo apt-get install mdadm

Se você deseja criar um software RAID-0 a partir dos três arquivos de imagem, é necessário criar dispositivos de loop para cada arquivo de imagem:

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

Depois de criar uma matriz RAID-0 a partir deles:

sudo mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/loop1 /dev/loop2 /dev/loop3
limão
fonte
comando mdadm não encontrado
Daniel
Você precisa instalar o pacote mdadm.
Lemonslice 27/08/2015
Veja editar para a pergunta
Daniel
Isso é com uma nova instalação do mdadm.
Daniel
1

Se o seu sistema atender aos requisitos básicos que você pode usar zfs( 8 GB de RAM, sistema de 64 bits ):

Adicione repositório e atualize a lista de pacotes:

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

Instale o pacote:

sudo apt-get install ubuntu-zfs

Crie um vdev listrado (sem redundância, mas você pediu RAID0):

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

Isso cria a faixa e a monta em / vol0.

sudo zfs create vol0/filesystem

Isso cria um sistema de arquivos zfs na faixa e o monta em / vol0 / filesystem. Usar

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

se você deseja alterar o ponto de montagem.

Você também pode adicionar compactação automática:

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

Agora tudo o que você colocar em / mnt / filesystem / compact será automaticamente compactado.

Niclas Börlin
fonte
"E: Não foi possível localizar pacote ubuntu-ZFS"
Daniel
E isso também deve funcionar com arquivos iso, certo?
Daniel
Esqueceu-se de adicionar instruções sobre como adicionar o repositório. Editou agora.
Niclas Börlin
Não sei o que você quer dizer com arquivos iso ... As instruções criarão um sistema de arquivos em branco distribuído pelos três arquivos em questão. Você tem dados em seus arquivos iso que de alguma forma deseja acessar em uma partição distribuída?
Niclas Börlin
Não, eu estava curioso para saber se isso poderia ser feito, digamos, um DVD-RW, por exemplo, ou algo assim.
Daniel
0

Eu literalmente apenas toquei na imagem # .img de cada uma. Há algo mais que devo fazer?

Este é realmente o problema. Os arquivos são 0 bytes e você não pode procurar dentro deles. Você precisa criar arquivos que realmente tenham um tamanho. Pode ser um arquivo esparso, se você desejar:

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

Agora eu posso criar dispositivos de loop e montar 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

Os arquivos esparsos crescerão até o tamanho máximo, à medida que os dados forem gravados neles. Eles não encolherão se os arquivos dentro do sistema de arquivos forem excluídos.

vidarlo
fonte