Estrutura de diretórios para discos montados no armazenamento de rede

2

Eu criei recentemente um pequeno homeserver, que eu quero usar como NAS , além de outros aplicativos como hospedagem de VMs, etc. O espaço em disco deve ser acessível via NFS , SAMBA (e SSHFS ), mas isso não faz parte da questão. Uma das razões para começar este projeto foi que eu deixei um monte de HDDs. Como esses HDDs são de modelos e tamanhos diferentes, não quero usá-los como parte de um RAID [de software] ou usá-los para criar o LVM.

Minha primeira tentativa foi criar uma pasta chamada share como uma subpasta de /mnt onde eu montei todos os HDDs assim:

/mnt
    /share
        /disk_a
        /disk_b
        /...

Depois, a pasta share deve ser acessível por NFS e SAMBA .

Depois de ler o artigo NFS da ArchWiki, onde a opção --bind de mount foi mencionada , Alterei a estrutura de diretórios para tornar a pasta shared independente dos pontos de montagem:

/mnt
    /disk_a
    /disk_b
    ...

/nas
    /disk_a     # mount --bind /mnt/disk_a /nas/disk_a
    ...

Nesta solução, a pasta /nas seria compartilhada.

A minha pergunta é , qual é a melhor estrutura de diretórios para compartilhar esses discos? Existem outras práticas recomendadas para saber quando configurar esse armazenamento de rede?

    
por klingt.net 17.12.2013 / 20:57

2 respostas

2

Sua estratégia para nomear parece boa. No meu departamento na universidade, os discos são exportados de forma semelhante como:

/machine-name/s0
/machine-name/s1
/machine-name/s2

para todas as outras máquinas locais. Este é essencialmente o mesmo esquema de nomeação que você propõe.

Uma coisa que você terá que considerar se quiser acessar seu NAS de várias máquinas é a consistência do ID do usuário entre as máquinas. O Samba pode cuidar disso para os clientes Windows, mas para os clientes Linux, você provavelmente desejará sincronizar os userids nas caixas. Minha experiência com isso é usar o NIS, mas existem outras maneiras (LDAP, mesclagem manual de passwd / shadow / group, etc).

    
por 17.12.2013 / 21:52
2

Se o LVM não é nada para você, por que você não usa um sistema de arquivos aufs (overlay).

Funciona assim:

user@host:~# mount -t aufs -o br=/mnt/disk1:/mnt/disk2 none /nas/share/

O comando mount, especifica que vai montar a união /mnt/disk1/ e /mnt/disk2/ sob /nas/share/ . O diretório /nas/share/ terá o conteúdo de ambos /mnt/disk1/ e /mnt/disk2/ .

Veja a listagem a seguir:

user@host:~# ls -l /mnt/disk1/
-rwxr--r--   1 root root  267386880 May  1  2013 file_on_disk1
user@host:~# ls -l /mnt/disk2/
-rwxr--r--   1 root root 1325274146 Aug 31 23:29 file_on_disk2
user@host:~# ls -l /nas/share/
-rwxr--r--   1 root root  267386880 May  1  2013 file_on_disk1
-rwxr--r--   1 root root 1325274146 Aug 31 23:29 file_on_disk2

aufs é altamente configurável e personalizável. Você pode configurar em qual partição o sistema de arquivos deve gravar novos arquivos ao acessá-lo. Por exemplo, um sistema de arquivos pode ser montado somente leitura e o outro readwrite, portanto, o comando aufs mount pode ser configurado para gravar somente na partição readwrite.

A vantagem é que você pode ter um grande diretório para compartilhar via NFS ou Samba. Consulte aqui para todas as opções de montagem.

    
por 17.12.2013 / 21:53