Manual
do
Maker
.
com
O MergerFS é mais uma opção de junção de sistemas de arquivos e, talvez a melhor delas.
O MergerFS tem uma ampla flexibilidade políticas de acesso e gravação, permitindo especificar detalhadamente como as leituras e escritas devem ser distribuídas entre os sistemas de arquivos subjacentes. Por usar fuse, não necessidade de módulos especiais no kernel.
O MergerFS tem muitas características como:
Por isso que o prefiro diante das opções UnionFS ou OverlayFS.
No OpenSuSE Tumbleweed não tem pacote nativo ou pisei na bola ao procurar. Aqui diz que o pacote existe. Enfim, compilar é uma opção.
Para Debian e variantes:
sudo apt-get install mergerfs
Assim como AUFS (velho), OverlayFS e UnionFS, a montagem por linha de comando é bastante simples. Vamos fazer o mesmo laboratório dos artigos anteriores, supondo a existência de 2 pendrives conectados, para facilitar a ilustração. Também vamos considerar que os pendrives estejam sendo identificados no sistema operacional como sdb1 e sdc1. Isso, para nosso exemplo, mas poderia ser uma outra partição do mesmo dispositivo e assim por diante.
Supondo os pendrives, a primeira etapa seria "montar" os sistemas de arquivos:
sudo mount /dev/sdb1 pendrive_1 #se o diretório pendrive_1 existir, claro
sudo mount /dev/sdc1 pendrive_2 #o mesmo aqui
Vamos criar nosso laboratório e fazer a prova de conceito:
mkdir -p LAB/{pendrive_1,pendrive_2,merged}
touch LAB/{pendrive_1/{arquivo_1,arquivo_2},pendrive_2/{arquivo_3,arquivo_4}}
cd LAB
mergerfs -o cache.files=partial,dropcacheonclose=true,category.create=mfs pendrive_1:pendrive_2 merged
Espero que esteja claro isso, mas para enfatizar, pendrive_x é um path. Como os diretórios pendrive_1 e pendrive_2 do ambiente de testes criado está no mesmo nível de diretório, basta seus nomes, mas se o diretório com o pendrive montado estive em /mnt/pendrive_1, então a linha de exemplo acima apontaria para o caminho absoluto onde o dispositivo está montado. Do mesmo modo, o diretório merged poderia ter qualquer nome e estar em qualquer lugar.
Uma listagem do diretório merged agora deve mostrar os arquivos criados nos diretórios pendrive_1 e pendrive_2.
Supondo uma montagem no /etc/fstab, poderia ser algo como:
/mnt/hdd0:/mnt/hdd1 /media fuse.mergerfs cache.files=partial,dropcacheonclose=true,category.create=mfs 0 0
Nesse exemplo, os dispositivos de discos rígidos foram montados em /mnt/hddx e então unidos em /media. Nesse caso, é necessário garantir os sistemas de arquivos disponibilizados ao recurso, que devem ser montados previamente.
A documentação também descreve a criação de um serviço no systemd:
[Unit]
Description=mergerfs service
[Service]
Type=simple
KillMode=none
ExecStart=/usr/bin/mergerfs \
-f \
-o cache.files=partial \
-o dropcacheonclose=true \
-o category.create=mfs \
/mnt/hdd0:/mnt/hdd1 \
/media
ExecStop=/bin/fusermount -uz /media
Restart=on-failure
[Install]
WantedBy=default.target
Se interessa criar um serviço de sistema, confira o artigo de como criar serviço no Raspberry.
Todas as opções disponíveis no MergerFS podem ser encontradas aqui. É uma documentação extremamente vasta e agradável.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.