Conjunto de armazenamento do servidor de arquivos Linux

8

É possível fazer com que o servidor Linux compartilhe vários discos rígidos como um pool de armazenamento através do Samba? Para que, quando eu uso o compartilhamento, não tenha que me preocupar em salvar em uma determinada unidade que tenha espaço livre, mas sim em um pool que cuide de tudo isso.

Acho que eu poderia fazer isso através de algum tipo de invasão (software), mas muitos dos meus arquivos não precisam ser invadidos. Meu objetivo é ter uma configuração em que eu tenha ~ 500GB invadido e alguns TB sem espaço.

Atualmente, tenho um servidor W2008 leve e gostaria de mudar para o Linux, e isso seria um recurso muito bom.

Illotus
fonte

Respostas:

19

No Linux, você pode usar o LVM para reunir vários discos rígidos (PV) em um Grupo de Volume (VG) e particioná-lo com os Volumes Lógicos (LV) que deseja compartilhar através do samba.

Veja este link para mais informações.

Esquema LVM

ℝaphink
fonte
11
Ótima opção de imagem para ilustrar o conceito.
andol 18/12/2009
7

Eu secundaria a sugestão do Raphink sobre o LVM (e a votarei de fato) - é exatamente para isso que o LVM é projetado e funciona bem na minha experiência.

Uma coisa a ser observada é que o uso do LVM em várias unidades é apenas um pouco mais seguro que o RAID0 - se uma unidade estiver inativa, você poderá perder mais de uma unidade em sistemas de arquivos devido a volumes lógicos que ultrapassam os limites das unidades. Portanto, embora "muitos dos meus arquivos não precisem ser invadidos", verifique se você tem um bom plano de backup para os arquivos que não são tão fáceis de substituir.

Se é provável que o servidor de armazenamento veja muita atividade, considere usar o RAID0 e o LVM. Isso fornecerá um aumento significativo no desempenho de muitos padrões de E / S e não reduzirá o espaço total de armazenamento disponível (como o RAID0 não oferece redundância, portanto, não usa espaço para dados espelhados ou blocos de paridade). Depois de vincular algumas unidades em uma matriz RAID0, você pode transformar a matriz em um PV LVM como qualquer outra unidade / partição e usar volumes lógicos para particionar o espaço conforme necessário.

É claro que, com o RAID0, você definitivamente perde tudo se uma unidade morrer, mas se você tiver um plano de backup suficiente para o JBOD (que é o que você está fazendo apenas com o LVM, é equivalente ao que algumas referências de RAID chamam de "modo linear"). ") você possui um que é suficiente para dados em RAID0 (e qualquer pessoa que não diz não é paranóica o suficiente sobre os dados que possui em várias unidades usando LVM!).

Você pode misturar e combinar os níveis de RAID nas mesmas unidades. Em uma das máquinas sob meu controle que é executada como um host de VM para desenvolvimento e teste, as unidades em sua matriz têm algumas partes como RAID0 (para as próprias VMs) e outras como RAID1 (para backups das VMs). Cada uma das unidades é dividida em partições de ~ 100Gb e cada conjunto ou partições pode ser uma matriz RAID. Atualmente, os dois primeiros em cada unidade são RAID0 (vinculados como um volume lógico pelo LVM), os três últimos RAID1 (novamente vinculados como um LV) e os deixados no meio estão livres para ficar quando houver mais espaço. Se você fizer isso, obviamente precisará ter cuidado com a contenção de E / S (não é um problema no meu caso, como as duas matrizes RAID raramente veem atividade perceptível ao mesmo tempo, porque o conjunto RAID1 só é acessado ao fazer um novo backup ou restaurar um antigo) e movimentos excessivos da cabeça quando ambas as matrizes estão em uso ativo (como eles estão nas extremidades opostas das unidades), mas você deve estar ciente disso por usar o LVM sem nenhum RAID de qualquer maneira. Esse arranjo significava que eu não precisava adivinhar com precisão, no momento da instalação, qual equilíbrio de quanto espaço em alta velocidade (R0) e espaço em alta segurança (R1) a máquina precisariaX meses abaixo da linha sem comprometer e apenas indo para uma única matriz RAID10.

David Spillett
fonte
"se uma unidade cair, você poderá perder mais de uma unidade em sistemas de arquivos devido a volumes lógicos que ultrapassam os limites da unidade." Obrigado por essa pepita, parece que vou ter que revisar um pouco meu plano.
Illotus
Observe que este é o mesmo problema que você terá com um sistema RAID0: se uma unidade ficar inativa, você perderá dados. Conforme sugerido na resposta de David, você pode combinar RAID e LVM. Combinar um sistema RAID0 com LVM é redundante e inútil, mas combinar RAID1, 10, 4, 5 ou 6 com LVM garante que seus dados não serão perdidos se você perder um ou mais discos rígidos. Também custará mais em hardware, pois você precisa de mais espaço em disco que o espaço de dados utilizável real. O tipo de RAID depende principalmente do tipo de uso que você faz para fazer isso. Se você não possui um RAID de hardware, pode usar o LVM em cima do mdadm.
22909 Dech
3
Combinar RAID0 com LVM não é inútil - dependendo da sua carga de E / S (por exemplo, muitas operações simultâneas de arquivos na rede Gbit), você pode ver um aumento no desempenho devido à distribuição realizada pelo RAID0. Mesmo em um link de 100 Mbits, você pode ver uma diferença em vários acessos simultâneos e / ou muito não sequenciais. Para uma carga de E / S menos árdua, a diferença pode ser insignificante.
David Spillett
Combinar RAID-0 com LVM não é inútil. Por padrão, o LVM aloca espaço sequencialmente desde o início. Isso pode afetar o desempenho se uma parte do conjunto LVM receber toda a atenção de E / S, concentrando essa atividade em um disco. O RAID-0 distribui explicitamente os dados em todos os discos na matriz RAID-0. Isso pode acelerar a atividade de leitura e gravação. A diferença é que, se um dos discos de um conjunto LVM falhar, você provavelmente perderá pelo menos alguns dados. Se um disco em um conjunto RAID-0 falhar, você perderá TODOS os dados. A idéia RAID-5 posta por Raphink lhe dá pelo menos a ilusão de alguma proteção contra falha de disco
David Mackintosh
Obrigado por esses esclarecimentos, David e David, que é muito interessante considerar. Você considera que o LVM em cima do RAID0 vale a pena, mesmo que você use um sistema RAID de software como o mdadm ou apenas com um sistema RAID de hardware?
22909
2

Eu também recomendaria dar uma olhada no ZFS, que também contém pool de unidades e espelhamento RAID embutido.

Há alguns problemas com o licenciamento, o que dificulta a implementação, mas eu o tenho executado no meu sistema doméstico com unidades de 3 x 1 TB sem problemas.

Dave Drager
fonte
2
Sou um grande fã do ZFS, mas não recomendo executá-lo no Linux como um sistema de arquivos FUSE em um ambiente de produção. Para Linux, é melhor esperar o BTRFS amadurecer. O BTRFS tem um design melhor que o ZFS, mas acho que ainda há pelo menos um ano, talvez um par, de estar pronto para produção.
3dinfluence