Criando uma partição RAID1 com o mdadm no Ubuntu

6

Estou tentando configurar uma partição RAID1 na minha estação de trabalho Ubuntu 9.10.

Neste sistema de inicialização dupla, o Ubuntu está sendo executado a partir de uma unidade separada ( /dev/sdc - um SSD que é bem pequeno, e é por isso que eu preciso de mais espaço em disco). Além disso, existem dois discos rígidos tradicionais de 500 GB, que têm o Windows 7 instalado (quero manter a instalação do Windows intacta) e cerca de metade do espaço não alocado. Este espaço é onde eu quero configurar uma única partição RAID1 grande para o Linux.

(Isso, no meu entender, seria RAID de software, enquanto as partições do Windows estão no RAID de hardware - espero que isso não seja um problema ... Editar : Veja o comentário de Peter. Eu acho isso não deve ser um problema, já que vejo as duas unidades separadamente no Linux.

Nos dois discos, /dev/sda e /dev/sdb , criei, usando o fdisk, novas partições idênticas do tipo "Linux autidetect do raid" para preencher o espaço não alocado.

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          10       80293+  de  Dell Utility
/dev/sda2   *          11         106      768000    7  HPFS/NTFS
Partition 2 does not end on cylinder boundary.
/dev/sda3             106       30787   246439936    7  HPFS/NTFS
/dev/sda4           30787       60801   241095200+  fd  Linux raid autodetect

Então, eu gostaria de criar uma matriz RAID de / dev / sda4 e / dev / sdb4 usando mdadm . Mas parece que não consigo funcionar:

$ sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sd{a,b}4
mdadm: Cannot open /dev/sda4: Device or resource busy
mdadm: Cannot open /dev/sdb4: Device or resource busy
mdadm: create aborted

Após inicializar a máquina, o mesmo comando gera:

$ sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sda4 /dev/sdb4
mdadm: Cannot open /dev/sda4: No such file or directory
mdadm: Cannot open /dev/sdb4: No such file or directory

Agora, parece que os dispositivos não são detectados automaticamente na inicialização ... Usando o fdisk, sda e sdb ainda parecem corretos.

Editar : após outra reinicialização, os dispositivos voltaram:

$ ls /dev/sd*
/dev/sda   /dev/sda2  /dev/sda4  /dev/sdb1  /dev/sdb3  /dev/sdc   /dev/sdc2
/dev/sda1  /dev/sda3  /dev/sdb   /dev/sdb2  /dev/sdb4  /dev/sdc1  /dev/sdc5

Mas também é "Dispositivo ou recurso ocupado" ao tentar criar a matriz RAID. Muito estranho. Qualquer ajuda seria apreciada!

Atualização : o mapeador de dispositivos poderia ter alguma coisa a ver com isso? Como /dev/mapper e dmraid se relacionam com todo esse mdadm de qualquer maneira? Ambos fornecem software RAID, mas .. diferentemente? Desculpe pela minha ignorância aqui.

Em /dev/mapper/ , há alguns arquivos de dispositivos que, de alguma forma, correspondem às três partições RAID do Windows (sd {a, b} 1 a sd {a, b} 3). Eu não sei porque existem quatro destes arrays.

$ ls /dev/mapper/
control               isw_dgjjcdcegc_ARRAY1  isw_dgjjcdcegc_ARRAY3
isw_dgjjcdcegc_ARRAY  isw_dgjjcdcegc_ARRAY2  

Resolução : foi o artigo da Wikipédia mdadm que me empurrou para a direita direção. Postei detalhes sobre como consegui que tudo funcionasse em esta resposta .

    
por Jonik 28.01.2010 / 10:16

3 respostas

5

Finalmente, algum progresso!

dmraid de fato foi o culpado, como a entrada da Wikipedia do mdadm sugerida. Eu tentei remover o dmraid pacotes (e executando update-initramfs , embora eu não tenha certeza se isso era relevante).

Depois disso, e reinicializando, os dispositivos em /dev/mapper sumiram (o que é bom - não preciso acessar as partições do Windows NTFS no Linux):

$ ls /dev/mapper/
control

E, mais importante, mdadm --create funciona!

$ sudo mdadm -Cv -l1 -n2  /dev/md0 /dev/sda4 /dev/sdb4
mdadm: size set to 241095104K
mdadm: array /dev/md0 started.

Eu verifiquei /proc/mdstat e mdadm --detail /dev/md0 e ambos mostram que está tudo bem com a matriz recém-criada.

$ cat /proc/mdstat
[..] 
md0 : active raid1 sdb4[1] sda4[0]
      241095104 blocks [2/2] [UU]
      [==========>..........]  resync = 53.1% (128205632/241095104) 
        finish=251.2min speed=7488K/sec      

Então eu criei um sistema de arquivos na nova partição:

$ sudo mkfs.ext4 /dev/md0 

E finalmente montamos a coisa em /opt (& atualizado /etc/fstab ). (Eu poderia, claro, ter usado o LVM aqui também, mas francamente, neste caso, eu não vi nenhum ponto nisso, e eu já perdi tempo suficiente tentando fazer isso funcionar ...)

Então agora a partição RAID está pronta para uso e eu tenho bastante espaço em disco. : -)

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdc5              70G   52G   15G  79% /
/dev/md0              227G  188M  215G   1% /opt

Atualização : ainda há alguns problemas com este meu dispositivo RAID. Na reinicialização, ele falha ao montar mesmo que eu o tenha no fstab, e algumas vezes (após a reinicialização) ele parece estar em um estado inativo e não pode ser montado mesmo manualmente. Veja a pergunta de acompanhamento que publiquei.

    
por 29.01.2010 / 11:02
2
sudo mdadm -Cv /dev/md0 -l1 -n2 /dev/sd{a,b}4
mdadm: Cannot open /dev/sda4: Device or resource busy
mdadm: create aborted

Esse truque funcionou para mim: Verifique /proc/mdstat : anote o nome do dispositivo declarado lá, por exemplo. md_d0 , então:

sudo mdadm --stop /dev/md_d0

Agora, o comando create deve funcionar.

    
por 21.04.2012 / 16:41
1

Talvez uma resposta estúpida, mas - você tem certeza que o sd {a, b} 4 não está montado em nenhum lugar pelo Ubuntu?

E qual placa-mãe você tem como diz sobre o ataque ao hardware? Pode ser uma invasão de software que talvez perturbe aqui.

    
por 29.01.2010 / 00:21