Melhor maneira de separar discos no Linux? (raid, partição ou LVM)

2

Existem algumas maneiras de separar discos no Linux: raid, partition e o LVM. Como escolher?

Temos um servidor com mais de 10 discos. Alguns dados em nosso sistema são temporários e desejamos usar o RAID 0 neles. Alguns são importantes, por isso usamos o RAID 1. É claro que existem sistemas operacionais e aplicativos, mas podemos permitir que eles saiam, portanto, nenhum ataque foi planejado para eles.

Aqui está a lista de arquivos e o RAID planejado para eles:

/ : no raid
/opt/app/logs : raid 0
/opt/data/tmp : raid 0
/opt/data/database/data : raid 1
/opt/backup : raid 1

Existem algumas maneiras de separar os discos:

1) use o RAID:

one disk without RAID
2 RAID 0
2 RAID 1

2) use partição:

one disk without RAID
one RAID 0 with 2 partitions
one RAID 1 with 2 partitions

3) use o LVM:

one disk without RAID
one RAID 0 with 2 logvols
one RAID 1 with 2 logvols

Por favor, alguém pode descobrir isso, contar sobre prática ou experiência pessoal da indústria ou referência de especialistas / livros?

Estamos em um projeto de produção real. Desculpe, não temos conhecimento suficiente, mas temos que realizá-lo.

Inglês ruim, por favor, deixe-me saber se você precisar de mais informações.

Obrigado! XM

EDITAR: O Linux configura 2 partições (uma delas é / boot) e uma delas possui 2 logvols (swap, /) em seu disco; nós não nos importamos com eles.

    
por X.M. 28.02.2011 / 04:39

3 respostas

4

Meu layout preferido seria:

2 disks for the OS in RAID1 (protected against a HDD failure)
2n disks for the RAID10 (protected against a HDD failure)
rest of the disks for RAID0 (no redundancy, maximum speed)

Se você realmente insistir em ter um disco de sistema único, isso não alterará o layout.

Em (cada um dos) discos do sistema eu teria uma partição separada para o sistema de arquivos / boot. O resto do (s) disco (s) que eu fiz em um volume físico LVM. Eu gosto de ter sistemas de arquivos do SO que podem ser preenchidos em volumes lógicos separados (/ tmp, / var, / opt se algo gravar logs lá). Isso resultaria nos sistemas de arquivos / boot (espelhado, sem LVM) e /, / tmp, var e possivelmente / opt, cada um em um volume lógico separado em um disco espelhado.

Em cada um dos outros discos eu criaria uma única partição do tipo Linux raid e criaria matrizes RAID apropriadas (um RAID 10, um RAID 0). Em cada uma das matrizes eu criaria uma única partição do tipo Linux LVM e criaria dois grupos de volumes separados, um para dados redundantes e outro para dados não redundantes. Então, para cada sistema de arquivos que você planeja fazer, eu faria um volume lógico.

Em cada grupo de volume eu recomendaria deixar algum espaço não utilizado, para que você possa fazer um instantâneo LVM e executar o fsck de um sistema de arquivos sem desativar o servidor. Eu também desabilitaria o fsck automático de todos os sistemas de arquivos (tune2fs -i 0 -c 0 / device / name).

Fundamentação

1) Espelhamento dos discos do sistema operacional.

Falha do sistema O disco rígido baixa toda a máquina. Seus dados estão protegidos, mas sua produção pára até que você possa trazer um disco de substituição e reinstalar / restaurar o sistema operacional. Em um ambiente de produção, geralmente é mais barato ter mais um disco instalado.

2) Particionar discos para matrizes RAID.

Todos os servidores que eu uso possuem tabelas de partição. Você pode usar apenas discos inteiros como volumes RAID / LVM, mas depois você acaba com algumas máquinas que possuem tabelas de partição (coisas em / dev / sdX1) e outras, que não têm (coisas em / dev / sdX). Em caso de falha e necessidade de recuperação sob estresse, gosto de ter uma variável a menos no ambiente.

3) LVM nos arrays RAID

O LVM oferece duas vantagens: mudanças fáceis de tamanhos de sistema de arquivos e capacidade de fsck sistemas de arquivos sem derrubar todo o servidor. A corrupção de dados silenciosa é possível e acontece. A verificação pode poupar muita emoção.

4) tune2fs -i 0 -c 0

Ter um fsck surpresa de um sistema de arquivos grande depois de uma reinicialização é um assunto que consome tempo e é um grande problema. Desativar e fazer fscks regulares de instantâneos LVM de sistemas de arquivos.

Uma pergunta: / opt / backup é onde você planeja manter backups de seu ambiente de produção?

Não.

Tenha os backups em algum outro lugar da máquina. Um programa mal-intencionado, um comando mal escrito (por exemplo, rm -rf / tmp/unimportant/file ) ou um pouco de água derramada no local errado deixarão você sem o seu sistema e sem backups. Se tudo mais falhar, tenha dois discos USB externos para backups, ainda melhor do que uma partição dentro da mesma caixa.

    
por 28.02.2011 / 10:33
1

Você não deu muita informação sobre o tamanho das várias áreas e como elas são usadas. Supondo que o tmp precise de acesso aleatório rápido e armazene arquivos pequenos, que o banco de dados tenha uma carga de trabalho transacional e que os logs sejam principalmente somente de gravação e que o backup seja restaurado com pouca frequência, provavelmente seria:

 /opt/data/database/data
         4 (maybe 6) dedicated disks as RAID 1+0

Isto é presumivelmente onde o valor do servidor está - então você quer que ele seja o mais rápido / seguro possível.

Raid 0 para o sistema de arquivos tmp só faz sentido de você estar armazenando muitos arquivos muito grandes lá e usando acesso sequencial. Normalmente, esse não é o padrão de acesso que esperaria dos arquivos temporários. Raid 0 é OK para seus logs - mas você realmente quer dedicado 2 discos apenas para os logs? Eu provavelmente iria para 2 discos divididos em 2 partições, um de cada disco como raid 0 para logs, um de cada disco como raid 1 para tmp.

Eu recomendo strongmente que o sistema de arquivos raiz seja espelhado para tolerância a falhas. Então, 2 discos aqui, novamente em 2 partições, espelhados para o sistema de arquivos raiz e distribuídos para a troca.

Dependendo da relação entre o espaço tmp e a memória virtual, pode ser aconselhável se eles não estão fazendo a mesma coisa para mesclar os dois conjuntos de 2 partições para tmp e trocar para uma matriz de conjunto de faixas de 4 discos. p>

.... e você tem dois discos para backup. Mas eu recomendo que você mantenha seus backups em outro lugar. Se fosse eu, eu usaria isso como membros temporários do conjunto de raid do banco de dados - depois, quebre o conjunto e inicie-o como um conjunto independente / inicie uma nova instância do DBMS nele para obter backups com o mínimo de tempo de inatividade. / p>

Para saber se você usa partições ou LVM - não há muito o que escolher - gostaria de me inclinar para as partições, pois fica mais difícil configurar um conjunto realmente confuso de dependências cruzadas.

    
por 28.02.2011 / 12:29
0

Provavelmente, o que você deve fazer é fazer o que seu fornecedor de armazenamento recomendar. Presumivelmente, você tem um sistema de controlador RAID com backup de bateria, para que você possa usar as ferramentas do fornecedor para configurá-lo da maneira mais ideal.

É realmente importante nestes tipos de sistemas, não fazer coisas que são "muito estranhas".

    
por 28.02.2011 / 13:32