visão global
Apesar do recente burburinho para mover tudo para a nuvem “todo poderoso”, às vezes você pode não querer suas informações no servidor de outra pessoa ou inviabilizar o download dos volumes de dados que você precisa da Internet toda vez (por exemplo, implantação de imagem ). Portanto, antes de esclarecer um lugar no seu orçamento para uma solução de armazenamento, considere uma configuração licenciada gratuitamente com o Linux.
Com isso dito, ir barato / livre não significa "jogar cautela ao vento", e para o efeito, vamos notar pontos para estar ciente de configurações, que devem ser definidas no lugar, além de usar o software RAID, para alcançar o preço máximo para relação de confiabilidade.
Imagem de Filomena Scalise
Sobre o RAID de software
Como o nome indica, esta é uma configuração RAID (Redundant Array of Inexpensive Disks) que é feita completamente em software, em vez de usar uma placa de hardware dedicada. A principal vantagem de tal coisa é o custo, já que este cartão dedicado é um prêmio adicional à configuração básica do sistema. As principais desvantagens são basicamente desempenho e alguma confiabilidade, pois uma placa geralmente vem com sua própria RAM + CPU para executar os cálculos necessários para a matemática de redundância, cache de dados para maior desempenho e a bateria opcional de backup que mantém operações não escritas no cache até a energia foi restaurada em caso de falta de energia.
Com uma configuração RAID por software, você sacrifica parte do desempenho da CPU do sistema para reduzir o custo total do sistema; no entanto, com as CPUs atuais, a sobrecarga é relativamente insignificante (especialmente se você dedicar esse servidor principalmente a ser um “servidor de arquivos”). Quanto ao desempenho do disco, há uma penalidade… no entanto, eu nunca encontrei um gargalo do subsistema de disco do servidor para observar o quão profundo ele é. O Tom's Hardware Guide “O Tom's vai para o RAID5” é um artigo antigo mas exaustivo sobre o assunto, que eu pessoalmente uso como referência, no entanto tomei os pontos de referência com um pouco de sal enquanto fala sobre a implementação do software RAID no Windows todo o resto, tenho certeza que o Linux é muito melhor:.
Pré-requisitos
- Paciência jovem, esta é uma leitura longa.
- Supõe-se que você saiba o que é RAID e para que é usado.
- Este guia foi escrito usando o Ubuntu server9.10 x64, portanto, é assumido que você tem um sistema baseado em Debian para trabalhar também.
- Você vai me ver usando o VIM como programa de edição, isso é porque eu estou acostumado … você pode usar qualquer outro editor que você queira.
- O sistema Ubuntu que usei para escrever este guia foi instalado em um disco-on-key. Isso permitiu que eu usasse sda1 como parte da matriz RAID, portanto, ajuste de acordo com sua configuração.
- Dependendo do tipo de RAID que você deseja criar, você precisará de pelo menos dois discos no sistema e, neste guia, usaremos 6 unidades.
Escolhendo os discos que fazem o array
O primeiro passo para evitar uma armadilha é saber sua existência (Thufir Hawat, de Dune).
Escolher os discos é um passo vital que não deve ser encarado com leveza, e seria sensato capitalizar a sua verdadeira experiência e ouvir este aviso:
Faz NÃO use unidades de "consumo de consumo" para criar sua matriz, use unidades de "grau de servidor" !!!!!!
Agora eu sei o que você está pensando, não dissemos que vamos ficar barato? e sim nós fizemos, mas, este é exatamente um dos lugares onde isso é imprudente e deve ser evitado. Apesar de seu preço atraente, os discos rígidos de grau de consumo não são projetados para serem usados em um tipo de uso 24 horas por dia, 7 dias por semana. Confie em mim, sinceramente você já tentou isso para você. Pelo menos quatro unidades de classe do consumidor nos três servidores que eu configurei desse modo (devido a restrições orçamentárias) falharam após cerca de 1,5 a 1,8 anos a partir do dia de lançamento inicial do servidor. Embora não tenha havido perda de dados, porque o RAID fez o trabalho bem e sobreviveu… momentos como este encurtar a expectativa de vida do administrador de sistema, para não mencionar o tempo de inatividade para a empresa para a manutenção do servidor (algo que pode acabar custando mais do que as unidades de maior qualidade).
Alguns podem dizer que não há diferença na taxa de falhas entre os dois tipos. Isso pode ser verdade, no entanto, apesar dessas afirmações, as unidades de nível de servidor ainda têm um nível mais alto de restrições SMART e controle de qualidade (como pode ser observado pelo fato de não serem lançadas no mercado assim que as unidades de consumo estiverem) Então eu ainda recomendo que você desembolsar o extra para a atualização.
Escolhendo o nível de RAID.
Enquanto eu não vou entrar em todas as opções disponíveis (isto está muito bem documentado na entrada da wikipedia do RAID), eu sinto que é digno de nota dizer que você deve sempre optar pelo menos pelo RAID 6 ou ainda mais ( nós estaremos usando Linux RAID10). Isso ocorre porque, quando um disco falha, há uma chance maior de uma falha de disco vizinha e, em seguida, há uma falha de “dois discos” nas mãos.Além disso, se você usar discos grandes, como discos maiores têm uma densidade de dados mais alta na superfície do prato, a chance de falha é maior. Discos IMHO de 2T e além sempre vai cair nesta categoria, então esteja ciente.
Vamos rachar
Discos de particionamento
Enquanto no Linux / GNU, poderíamos usar o dispositivo de bloco inteiro para as necessidades de armazenamento, usaremos partições porque isso facilita a utilização de ferramentas de resgate de disco, caso o sistema tenha ficado insensível. Estamos usando o programa "fdisk" aqui, mas se você for usar discos maiores que 2T, precisará usar um programa de particionamento que suporte particionamento GPT como parted.
sudo fdisk /dev/sdb
Nota: Observei que é possível fazer o array sem alterar o tipo de partição, mas como esta é a maneira descrita em toda a rede, vou seguir o exemplo (novamente, ao usar o dispositivo de bloco inteiro, isso é desnecessário).
Uma vez no fdisk, as teclas são:
n; para uma nova partição entrar p; para uma partição primária entrar 1; número de partição entrar; aceite o padrão entrar; aceite o padrão t; para mudar o tipo fd; define o tipo como “detecção automática do Linux Raid” (83h) W; gravar alterações no disco e sair
Enxaguar e repetir para todos os discos que farão parte do array.
Criando um array RAID10 do Linux
A vantagem de usar “Linux raid10”é que ele sabe como tirar vantagem de um número não uniforme de discos para aumentar ainda mais o desempenho e a resiliência do RAID10, além do fato de que, ao usá-lo, o array“10”pode ser criado em um único degrau.
Crie a matriz dos discos que preparamos na última etapa, emitindo:
sudo mdadm --create /dev/md0 --chunk=256 --level=10 -p f2 --raid-devices=5 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 --verbose
Nota: Tudo isso é apenas uma linha, apesar do fato de que a representação a divide em duas.
Vamos quebrar os parâmetros:
- “–Chunk = 256” - O tamanho dos bytes em que as faixas de ataque estão quebradas e esse tamanho é recomendado para discos novos / grandes (as unidades 2T usadas para fazer este guia foram, sem dúvida, nessa categoria).
- “–Level = 10” - usa o Linux raid10 (se um raid tradicional é necessário, por qualquer razão, você teria que criar dois arrays e se juntar a eles).
- “-P f2” - Usa o plano de rotação “distante” veja a nota abaixo para mais informações e “2” informa que a matriz manterá duas cópias dos dados.
Nota: Usamos o plano "far" porque isso faz com que o layout de dados físicos nos discos NÃO seja o mesmo. Isso ajuda a superar a situação em que o hardware de uma das unidades falha devido a uma falha de fabricação (e não acha que "isso não vai acontecer comigo", como o seu realmente fez). Devido ao fato de que os dois discos são da mesma marca e modelo, foram usados da mesma maneira e tradicionalmente mantêm os dados no mesmo local físico … Existe o risco de que a unidade que contém a cópia dos dados falhe também ou está próximo e não fornecerá a resiliência necessária até que um disco substituto chegue. O plano “distante” faz a distribuição de dados para um local físico completamente diferente nas unidades de cópia, além de usar discos que não são próximos uns dos outros dentro do gabinete do computador. Mais informações podem ser encontradas aqui e nos links abaixo.
Uma vez que o array tenha sido criado, ele iniciará seu processo de sincronização. Enquanto você pode querer esperar pelo bem das tradições (pois isso pode demorar um pouco), você pode começar a usar a matriz imediatamente.
O progresso pode ser observado usando:
watch -d cat /proc/mdstat
Crie o arquivo de configuração mdadm.conf
Embora tenha sido provado que o Ubuntu simplesmente sabe varrer e ativar a matriz automaticamente na inicialização, por causa da integridade e cortesia para o próximo administrador de sistema, criaremos o arquivo. Seu sistema não cria automaticamente o arquivo e tenta lembrar de todos os componentes / partições do seu conjunto de RAID, é uma medida da sanidade do administrador do sistema. Essas informações podem e devem ser mantidas no arquivo mdadm.conf. A formatação pode ser complicada, mas, felizmente, a saída do comando mdadm –detail –scan –verbose fornece isso.
Nota: Foi dito que: “A maioria das distribuições espera o arquivo mdadm.conf em / etc /, não em / etc / mdadm. Eu acredito que este é um "ubuntu-ism" para tê-lo como /etc/mdadm/mdadm.conf ". Devido ao fato de que nós está usando o Ubuntu aqui, vamos apenas seguir com ele.
sudo mdadm --detail --scan --verbose > /etc/mdadm/mdadm.conf
IMPORTANTE! você precisa remover um "0" do arquivo recém-criado porque a sintaxe resultante do comando acima não está totalmente correta (o GNU / Linux ainda não é um sistema operacional).
Se você quiser ver o problema que esta configuração errada causa, você podedigitalizar” comando neste ponto, antes de fazer o ajuste:
mdadm --examine --scan
Para superar isso, edite o arquivo /etc/mdadm/mdadm.conf e mude:
metadata=00.90
Ler:
metadata=0.90
Executando o mdadm –examine –scan comando agora deve retornar sem um erro.
Configuração do sistema de arquivos no array
Eu usei o ext4 para este exemplo, porque para mim ele se baseou apenas na familiaridade do sistema de arquivos ext3 que veio antes dele, enquanto oferecia melhor desempenho e recursos prometidos. Eu sugiro tomar o tempo para investigar o sistema de arquivos que melhor atende às suas necessidades e um bom começo para isso é o nosso artigo “Qual sistema de arquivos Linux você deve escolher?”.
sudo mkfs.ext4 /dev/md0
Nota: Nesse caso, eu não particionei a matriz resultante porque simplesmente não precisei dela na ocasião, pois a parte solicitante solicitou especificamente pelo menos 3,5 T de espaço contínuo. Com isso dito, se eu quisesse criar partições, eu teria que usar um utilitário com capacidade de particionamento GPT como "parted".
Montagem
Crie o ponto de montagem:
sudo mkdir /media/raid10
Nota: Isso pode ser qualquer local, o acima é apenas um exemplo.
Porque estamos lidando com um “dispositivo montado” não use o UUID do sistema de arquivos que está no dispositivo para montagem (como recomendado para outros tipos de dispositivos em nosso guia “o que é o linux fstab e como ele funciona”), pois o sistema pode ver parte do sistema de arquivos em um disco individual e tente incorretamente monte-o diretamente. Para superar isso, queremos explicitamente esperar que o dispositivo seja "montado" antes de tentarmos montá-lo, e usaremos o nome da matriz montada ("md") dentro fstab para conseguir isso. Edite o arquivo fstab:
sudo vim /etc/fstab
E adicione a ela esta linha:
/dev/md0 /media/raid10/ ext4 defaults 1 2
Nota: Se você alterar o local de montagem ou o sistema de arquivos do exemplo, será necessário ajustar o acima de acordo.
Use mount com o parâmetro automático (-a) para simular uma inicialização do sistema, para que você saiba que a configuração está funcionando corretamente e que o dispositivo RAID será montado automaticamente quando o sistema for reiniciado:
sudo mount -a
Agora você deve conseguir ver o array montado com o comando “mount” sem parâmetros.
Alertas por email para a matriz RAID
Ao contrário dos arrays RAID de hardware, com um array de software não há nenhum controlador que comece a apitar para avisá-lo quando algo deu errado. Portanto, os alertas de e-mail serão a única maneira de saber se algo aconteceu com um ou mais discos na matriz e, assim, torná-lo passo mais importante.
Siga o guia "Como configurar os alertas por e-mail no Linux usando o Gmail ou o SMTP" e, quando terminar, volte aqui para executar as etapas específicas do RAID.
Confirme se o mdadm pode enviar por e-mail O comando abaixo dirá ao mdadm para disparar apenas um e-mail e fechá-lo.
sudo mdadm --monitor --scan --test --oneshot
Se for bem-sucedido, você deverá receber um e-mail, detalhando a condição da matriz.
Definir a configuração do mdadm para enviar um e-mail na inicialização Embora não seja uma necessidade absoluta, é bom receber uma atualização de vez em quando da máquina para nos informar que a capacidade de e-mail ainda está funcionando e da condição da matriz. você provavelmente não ficará sobrecarregado com os E-mails, pois essa configuração afeta apenas as startups (que nos servidores não devem ser muitas). Edite o arquivo de configuração do mdadm:
sudo vim /etc/default/mdadm
Adicione o -teste parâmetro para o DAEMON_OPTIONS seção de modo que ficaria assim:
DAEMON_OPTIONS='--syslog --test'
Você pode reiniciar a máquina apenas para ter certeza de que está "no circuito", mas não é obrigatório.
Configuração do Samba
A instalação do SaMBa em um servidor Linux permite que ele funcione como um servidor de arquivos do Windows. Portanto, para obter os dados que hospedamos no servidor Linux disponível para os clientes Windows, instalaremos e configuraremos o SaMBa. É engraçado notar que o nome do pacote do SaMBa é um trocadilho com o protocolo da Microsoft usado para compartilhamento de arquivos chamado SMB (Service Message Block).
Neste guia, o servidor é usado para fins de teste, portanto, permitiremos o acesso ao seu compartilhamento sem exigindo uma senha, você pode querer aprofundar um pouco mais sobre como configurar permissões assim que a configuração estiver completa.
Também é recomendável que você crie um usuário não privilegiado para ser o proprietário dos arquivos. Neste exemplo, usamos o usuário "geek" que criamos para essa tarefa. As explicações sobre como criar um usuário e gerenciar a propriedade e as permissões podem ser encontradas nos guias “Criar um novo usuário no Ubuntu Server 9.10” e “Guia do iniciante no gerenciamento de usuários e grupos no Linux”.
Instale o Samba:
aptitude install samba
Edite o arquivo de configuração do samba:
sudo vim /etc/samba/smb.conf
Adicione um compartilhamento chamado “general” que concederá acesso ao ponto de montagem “/ media / raid10 / general” anexando o abaixo ao arquivo.
[general] path = /media/raid10/general force user = geek force group = geek read only = No create mask = 0777 directory mask = 0777 guest only = Yes guest ok = Yes
As configurações acima tornam o compartilhamento endereçável sem uma senha para qualquer pessoa e torna o proprietário padrão dos arquivos o usuário "geek".
Para sua referência, esse arquivo smb.conf foi retirado de um servidor em funcionamento.
Reinicie o serviço samba para que as configurações tenham efeito:
sudo /etc/init.d/samba restart
Uma vez feito você pode usar o testparm comando para ver as configurações aplicadas ao servidor samba. é isso, o servidor agora deve estar acessível em qualquer caixa do Windows usando:
server-namegeneral
Solução de problemas
Quando você precisa solucionar um problema ou um disco falhou em uma matriz, sugiro referir-se à folha de dicas do mdadm (é o que eu faço…).
Em geral, você deve se lembrar que, quando um disco falha, é preciso “removê-lo” do array, desligar a máquina, substituir a unidade com falha por uma substituição e depois “adicionar” a nova unidade à matriz depois de criar o disco apropriado. layout (partições) sobre ele, se necessário.
Feito isso, convém garantir que a matriz esteja sendo reconstruída e observe o progresso com:
watch -d cat /proc/mdstat
Boa sorte!:)
Referências: folha de fraude do mdadm Níveis de RAID divididos Linux RAID10 explicado Página do manual do comando mdadm Página do manual do arquivo de configuração do mdadm Limitações de partição explicadas
Usar o software RAID não custará muito … Apenas sua VOZ;-)