Como montar dois locais de pasta separados para um?

0

Estou tentando conectar duas pastas de dois locais diferentes a uma pasta da qual o software de rádio reproduz música.

Isso foi o que eu fiz até agora:

  1. Em /etc/fstab , coloquei as duas linhas a seguir:

    /usr/local/centovacast/var/vhosts/adminaw/var/spool/media   /mnt/mounted-drive/awmusic_songs/   none   bind
    /usr/local/centovacast/var/vhosts/adminaw/var/spool/media   /home/centos/awmusic_songs_1/   none   bind
    
  2. Em seguida, executei os dois comandos a seguir:

    mount --bind /mnt/mounted-drive/awmusic_songs/ /usr/local/centovacast/var/vhosts/adminaw/var/spool/media
    mount --bind /home/centos/awmusic_songs_1/ /usr/local/centovacast/var/vhosts/adminaw/var/spool/media
    

Então, basicamente, o software do rádio lê músicas de /usr/local/centovacast/var/vhosts/adminaw/var/spool/media e as músicas estão nas pastas awmusic_songs e awmusic_songs_1 .

Depois de ter feito o que descrevi acima, só vejo arquivos (músicas) da segunda pasta ( awmusic_songs_1 ).

É possível o que estou tentando alcançar? Se assim for, alguém poderia me ajudar?

    
por Vladimir Trajković 25.01.2017 / 23:05

1 resposta

0

É possível.

Nota: minha experiência no assunto é muito limitada; a seguinte resposta é baseada principalmente em pesquisas na web, eu mesmo não verifiquei isso na prática.

Em geral, o que quer que você monte em um /foo/bar/mountpoint , ele cobre completamente o conteúdo anterior do mountpoint (embora os programas mantenham seus identificadores já obtidos para arquivos "ocultos", eles ainda são válidos). Sua segunda montagem de bind fez exatamente isso.

O truque é usar um tipo de montagem que combine dois ou mais diretórios em um. O conceito geral é chamado union mount . Existem várias implementações:

Em geral, uma união pode ser montada sobre um dos diretórios combinados ou para um ponto de montagem completamente diferente (de preferência vazio). Na minha opinião, este último é uma solução mais elegante.

Estes são alguns aspectos que você pode considerar ao escolher um tipo de montagem de união para suas necessidades:

  • Alguns deles estão disponíveis somente como FUSE , alguns são mesclados no kernel do Linux (nesse caso, eles podem ter Implementações FUSE também). Verifique estas preocupações de segurança em relação ao FUSE.
  • O que acontece quando você altera diretamente um dos diretórios combinados? ( questão de exemplo ).
  • O que acontece quando você adiciona um novo arquivo a um sindicato. Mhddfs parece promissor para mesclar diretórios contendo arquivos de mídia. Verifique este artigo , diz:

    When you create a new file in the virtual filesystem, mhddfs will look at the free space, which remains on each of the drives. If the first drive has enough free space, the file will be created on that first drive. Otherwise, if that drive is low on space (has less than specified by mlimit option of mhddfs, which defaults to 4 GB), the second drive will be used instead. If that drive is low on space too, the third drive will be used. If each drive individually has less than mlimit free space, the drive with the most free space will be chosen for new files.

    It's even more than that; if a certain drive runs out of free space in the middle of a write (suppose, you tried to create a very large file on it), the write process will not fail; mhddfs will simply transfer the already written data to another drive (which has more space available) and continue the write there. All this completely transparently for to the application which writes the file (it will not even know that anything happened).

    Eu não sei como outras implementações lidam com isso. Eu acho que eles foram originalmente criados para permitir a união de um sistema de arquivos com capacidade de gravação com um sistema de leitura (como em essa questão ), então qualquer um deles pode não ser tão flexível quanto o mhddfs quando se trata de (re) distribuição de arquivos. Não tenho certeza, você pode querer testá-lo por conta própria.

por 01.01.2018 / 13:45