Pular para o conteúdo

Unindo partições Linux com o mhddfs

Dica publicada em Linux / Sistema de Arquivos
Andre Luiz Facina netbug
Hits: 10.699 Categoria: Linux Subcategoria: Sistema de Arquivos
  • Indicar
  • Impressora
  • Denunciar

Unindo partições Linux com o mhddfs

Imagine que você possui três HDs nos tamanhos de 80, 40 e 60 GB. Imagine agora que você precise de um lugar para armazenar suas músicas, mas não quer simplesmente criar uma pasta em cada disco; até porque esse método seria muito cansativo para se administrar.

Então criaremos um tipo de RAID e com isso criamos uma única partição (virtual) com a soma dos espaços livres dos três discos. Detalhe: tudo isso sem destruir os dados que já estão nos discos e, o mais interessante, com apenas um comando. :-)

Descobri essa solução utilizando o "mhddfs", que é um módulo do FUSE. O mhddfs permite agrupar pequenas partições em uma única partição virtual que irá conter todos os arquivos de todas partições membras.

Instalação

A distribuição Linux utilizada foi o Debian Lenny.

# apt-get install mhddfs

Utilização

Vamos dizer que você tenha três discos montados em /media/disco1, /media/disco2, /media/disco3. Você terá algo semelhante a isso:

# df -h
Depois de instalado o mhddfs, vamos criar um novo ponto de montagem (/mnt/virtual) que irá conter a concatenação de todas as unidades. E em seguida vamos executar o comando mhddfs seguido dos três diretórios (onde estão montados as três partições) e do ponto onde serão montados.

# mkdir /mnt/virtual
# mhddfs /media/disco1,/media/disco2,/media/disco3 /mnt/virtual -o allow_other

option: allow_other (1)
mhddfs: directory '/media/disco1' added to list
mhddfs: directory '/media/disco2' added to list
mhddfs: directory '/media/disco3' added to list
mhddfs: move size limit 4294967296 bytes
mhddfs: mount point '/mnt/virtual'

A opção "-o allow_other" permite que o /mnt/virtual seja visível para outros usuários e não apenas a quem o criou.

Digite novamente o comando "df -h" e observe que foi criado mais um ponto de montagem:

# df -h
Observe a inteligência dessa ferramenta: ela criou uma concatenação dos três discos, calculou o tamanho total das unidades juntas (180G), somou o espaço já utilizado (95G), e ainda trouxe o tamanho do espaço livre (85G). Se você entrar em /mnt/virtual perceberá que todos os arquivos provenientes das três unidades se encontram no mesmo lugar.

Mas se você tentar adicionar novos arquivos em /mnt/virtual? Quando você cria um novo arquivo em /mnt/virtual, o mhddfs vai olhar para o espaço livre que permanece em cada uma das unidades. Se a primeira unidade tem espaço livre suficiente, o arquivo será criado nela.

Caso contrário, se a unidade está com pouco espaço (tem menos que especificado pelo "mlimit" opção do mhddfs, que o padrão é de 4 GB), a segunda unidade será utilizado no lugar. Se essa unidade também tem pouco espaço, a terceira unidade será utilizada. Se todas as unidades tem pouco espaço, a unidade com mais espaço livre será escolhida para criar os novos arquivos.

Se resolver adicionar ao fstab para a montagem automática durante o boot, você pode adicionar a seguinte linha:

mhddfs#/mnt/hdd1,/mnt/hdd2,/mnt/hdd3 /mnt/virtual fuse defaults,allow_other 0 0

Bem, esse não é o método mais adequado de se criar um array de discos, mas em muitas situações da vida de um Sysadmin isso poderá ser muito útil. É sempre bom ter uma carta na manga. :-)

André Luiz Facina

AIX - Montar imagem ISO

Pfstat no OpenBSD 4.x

Bootchart: Monitorando o boot do sistema Linux

Replicação no LDAP com slurp

Migrando para o Ext4, o novo file system Linux

RootLess - Use o Gobolinux dentro de outro Linux

Docker: Persistindo dados -BTSync

Acessar compartilhamento Windows

ExFAT no Slackware

Instalando Windows XP + Windows 7 + Ubuntu 16.04 Desktop + Fedora 24 - quad boot

#1 Comentário enviado por rbn_jesus em 04/02/2009 - 10:51h
muito boa esta ferramenta!

valeu.
#2 Comentário enviado por mathcuei em 04/02/2009 - 15:44h
Muito bom artigo! Obrigado por compartilhar com a comunidade do Sofware Livre.

É uma ferramente que pode ajudar nas horas de emegência...
#3 Comentário enviado por f_tyet em 12/09/2014 - 17:46h
Aquele "#" na linha:



mhddfs#/mnt/hdd1,/mnt/hdd2,/mnt/hdd3 /mnt/virtual fuse defaults,allow_other 0 0



Tá certo?

É que não deu certo, depois de reinciar, no meu PC...

Contribuir com comentário

Entre na sua conta para comentar.