MinIo para os mais pequenos

MinIO é uma excelente solução quando você precisa organizar o armazenamento de objetos de maneira fácil e simples. Configuração elementar, muitas plataformas e bom desempenho fizeram seu trabalho no campo do amor popular. Então não tivemos outra escolha senão declarar compatibilidade há um mês Veeam Backup & Replication e MinIO. Incluindo um recurso tão importante como a Imutabilidade. Na verdade, MinIO tem todo um seção na documentação dedicada à nossa integração.

Portanto, hoje falaremos sobre como:

  • Configurar o MinIO é muito rápido.
  • Configurar o MinIO é um pouco menos rápido, mas muito melhor.
  • Use-o como uma camada de arquivamento para o repositório escalável Veeam SOBR.

MinIo para os mais pequenos

O que você está?

Uma breve introdução para quem ainda não encontrou o MinIO. Este é um armazenamento de objetos de código aberto compatível com a API Amazon S3. Lançado sob a licença Apache v2 e segue a filosofia do minimalismo espartano.

Ou seja, não possui uma GUI extensa com dashboards, gráficos e inúmeros menus. MinIO simplesmente inicia seu servidor com um comando, onde você pode simplesmente armazenar dados usando todo o poder da API S3. Mas deve-se notar que esta simplicidade pode ser enganosa no que diz respeito aos recursos utilizados. RAM e CPU são absorvidas perfeitamente, mas os motivos serão discutidos a seguir. E, a propósito, combinações como FreeNAS e TrueNAS usam MinIO nos bastidores.

Esta introdução pode terminar aqui.

Configurar o MinIO é muito rápido

A configuração é tão rápida que veremos isso para Windows e Linux. Existem opções para Docker, Kubernetis e até MacOS, mas o significado será o mesmo em todos os lugares.

Então, no caso do Windows, acesse o site oficial https://min.io/download#/windows e baixe a versão mais recente. Lá também vemos instruções para começar:

 minio.exe server F:Data

E também há um link para um um pouco mais detalhado Guia de início rápido. Não faz sentido não acreditar nas instruções, então executamos e obtemos algo como esta resposta.

MinIo para os mais pequenos
Isso é tudo! O armazenamento está funcionando e você pode começar a trabalhar com ele. Eu não estava brincando quando disse que o MinIO é minimalista e simplesmente funciona. Se você seguir o link oferecido durante o lançamento, o máximo de funções disponíveis é para criar um bucket. E você pode começar a gravar dados.

Para os amantes do Linux, tudo não é menos simples. As instruções mais simples:


wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data

O resultado será indistinguível do que foi visto anteriormente. 

Configurar o MinIO é um pouco mais significativo

Pelo que entendemos, o parágrafo anterior é um mimo para fins de teste. E, sejamos honestos, usamos amplamente o MinIO para testes, o que não temos vergonha de admitir. Claro, funciona, mas é uma pena suportar isso além dos bancos de testes. Portanto, pegamos um arquivo em nossas mãos e começamos a trazê-lo à mente.

HTTPS

O primeiro passo obrigatório no caminho para a produção é a criptografia. Já existem um milhão e mil manuais na rede para adicionar certificados ao MiniIO, mas o plano geral é este:

  • Crie um certificado
  • No caso do Windows, coloque em C:Users%User%.miniocerts
  • Para Linux em ${HOME}/.minio/certs 
  • Reiniciando o servidor

O banal Let's Encrypt é chato e está descrito em todos os lugares, então nosso caminho é o caminho do samurai, então no caso do Windows baixamos Cygwin, e no caso do Linux simplesmente verificamos se temos o openssl instalado. E fazemos um pouco de mágica no console:

  • Crie chaves: openssl ecparam -genkey -name prime256v1 | openssl ec -out private.key
  • Criamos um certificado usando a chave: openssl req -new -x509 -days 3650 -key private.key -out public.crt
  • Copie private.key e public.crt para a pasta especificada acima
  • Reinicie o MinIO

Se tudo correr como deveria, algo assim aparecerá no status.

MinIo para os mais pequenos

Habilitar codificação de apagamento MinIO

Primeiramente, algumas palavras sobre o assunto. Resumindo: trata-se de proteção de dados por software contra danos e perdas. Como um ataque, só que muito mais confiável. Se o RAID6 clássico pode perder dois discos, o MinIO pode facilmente lidar com a perda de metade. A tecnologia é descrita com mais detalhes em guia oficial. Mas se considerarmos a essência, então esta é uma implementação dos códigos Reed-Solomon: todas as informações são armazenadas na forma de blocos de dados, que possuem blocos de paridade. E parece que tudo isso já foi feito muitas vezes, mas há um “mas” importante: podemos indicar explicitamente a proporção entre blocos de paridade e blocos de dados para objetos armazenados.
Você quer 1:1? Por favor!
Você quer 5:2? Sem problemas!

Um recurso muito importante se você usa vários nós ao mesmo tempo e deseja encontrar seu próprio equilíbrio entre segurança máxima de dados e recursos gastos. Pronto para uso, MinIO usa a fórmula N/2 (onde N é o número total de discos), ou seja, divide seus dados entre discos de dados N/2 e discos de paridade N/2. Traduzindo em termos humanos: você pode perder metade dos discos e recuperar os dados. Essa relação é dada através Classe de armazenamento, permitindo que você escolha o que é mais importante: confiabilidade ou capacidade.

O guia dá o seguinte exemplo: suponha que você tenha uma instalação em 16 discos e precise salvar um arquivo de 100 MB. Se as configurações padrão forem usadas (8 discos para dados, 8 para blocos de paridade), o arquivo acabará ocupando quase o dobro do volume, ou seja, 200 MB. Se a proporção do disco for 10/6, serão necessários 160 MB. 14/2 - 114 MB.

Outra diferença importante dos ataques: em caso de falha do disco, o MinIO funcionará no nível dos objetos, restaurando um por um, sem parar todo o sistema. Enquanto um ataque regular será forçado a restaurar todo o volume, o que levará um tempo imprevisível. O autor lembra de uma prateleira de discos que, após a queda de dois discos, demorou uma semana e meia para recalcular. Foi bastante desagradável.

E uma observação importante: o MinIO divide todos os discos para Erasure Coding em conjuntos de 4 a 16 discos, usando o tamanho máximo de conjunto possível. E no futuro, um elemento de informação será armazenado apenas dentro de um conjunto.

Tudo isso parece muito legal, mas quão difícil será configurar? Vamos dar uma olhada. Pegamos o comando para executar e simplesmente listamos os discos nos quais o armazenamento precisa ser criado. Se tudo for feito corretamente, no relatório veremos a quantidade de discos envolvidos. E o conselho é que não é bom adicionar metade dos discos a um host de uma só vez, porque isso levará à perda de dados.

c:minio>minio.exe server F: G: H: I: J: K:

MinIo para os mais pequenos
A seguir, para gerenciar e configurar o servidor MinIO, precisaremos de um agente, que você pode baixar ibid do site oficial.

Para não desgastar os dedos cada vez que digita o endereço e as teclas de acesso (e não é seguro), é conveniente criar imediatamente um alias ao começar a usar o conjunto de alias da fórmula mc [SUA-CHAVE DE ACESSO] [SUA-CHAVE SECRETA]

mc alias set veeamS3 https://172.17.32.52:9000 YOURS3ACCESSKEY YOURSECERTKE

Ou você pode adicionar imediatamente seu host:

mc config host add minio-veeam https://minio.jorgedelacruz.es YOURS3ACCESSKEY YOURSECERTKEY

E então criaremos um balde imutável com uma equipe linda

mc mb --debug -l veeamS3/immutable 

mc: <DEBUG> PUT /immutable/ HTTP/1.1
Host: 172.17.32.52:9000
User-Agent: MinIO (windows; amd64) minio-go/v7.0.5 mc/2020-08-08T02:33:58Z
Content-Length: 0
Authorization: AWS4-HMAC-SHA256 Credential=minioadmin/20200819/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-bucket-object-lock-enabled;x-amz-content-sha256;x-amz-date, Signature=**REDACTED**
X-Amz-Bucket-Object-Lock-Enabled: true
X-Amz-Content-Sha256: UNSIGNED-PAYLOAD
X-Amz-Date: 20200819T092241Z
Accept-Encoding: gzip
mc: <DEBUG> HTTP/1.1 200 OK
Content-Length: 0
Accept-Ranges: bytes
Content-Security-Policy: block-all-mixed-content
Date: Wed, 19 Aug 2020 09:22:42 GMT
Location: /immutable
Server: MinIO/RELEASE.2020-08-16T18-39-38Z
Vary: Origin
X-Amz-Request-Id: 162CA0F9A3A3AEA0
X-Xss-Protection: 1; mode=block
mc: <DEBUG> Response Time:  253.0017ms

--depurar permite que você veja não apenas a mensagem final, mas também informações mais detalhadas. 

-l significa -com bloqueio, o que significa imutável

Se retornarmos agora à interface web, nosso novo bucket aparecerá lá.

MinIo para os mais pequenos
É tudo por agora. Criamos armazenamento seguro e estamos prontos para avançar para a integração com a Veeam.

Você também pode ter certeza de que tudo está funcionando perfeitamente:

c:minio>mc admin info veeamS3

●  172.17.32.52:9000
   Uptime: 32 minutes
   Version: 2020-08-16T18:39:38Z
   Network: 1/1 OK
   Drives: 6/6 OK
0 B Used, 1 Bucket, 0 Objects
6 drives online, 0 drives offline

MinIO e Veeam

Atenção! Se por algum motivo incrível você quiser trabalhar via HTTP, então em HKEY_LOCAL_MACHINESOFTWAREVeeamVeeam Backup and Replication crie uma chave DWORD SOBRarchiveS3DisableTLS. Defina seu valor como 1 e lembre-se de que não aprovamos veementemente tal comportamento e não o recomendamos a ninguém.

Atenção novamente! Se, devido a algum mal-entendido, você continuar usando o Windows 2008 R2, ao tentar conectar o MinIO ao Veeam, provavelmente receberá um erro como este: Falha ao estabelecer conexão com o endpoint Amazon S3. Isso pode ser tratado com um patch oficial da Microsoft.

Pois bem, os preparativos estão concluídos, vamos abrir a interface VBR e ir para a aba Infraestrutura de Backup, onde chamaremos o assistente para adição de um novo repositório.

MinIo para os mais pequenos
Claro, estamos interessados ​​​​no armazenamento de objetos, nomeadamente compatível com S3. No assistente que se abre, defina um nome e siga as etapas indicando o endereço e a conta. Se necessário, não se esqueça de especificar o portão através do qual as solicitações ao armazenamento serão proxy.

MinIo para os mais pequenos
Em seguida, selecione o bucket, a pasta e marque a caixa Tornar os backups recentes imutáveis. Ou não o instalamos. Mas como fizemos um armazenamento que suporta esta função, seria um pecado não utilizá-lo.

MinIo para os mais pequenos
Próximo > Finalize e aproveite o resultado.

Agora precisamos adicioná-lo ao repositório SOBR como um nível de capacidade. Para fazer isso, criamos um novo ou editamos um existente. Estamos interessados ​​na etapa do nível de capacidade.

MinIo para os mais pequenos
Aqui precisamos escolher com qual cenário trabalharemos. Todas as opções estão muito bem descritas em outro статье, então não vou me repetir

E após a conclusão do assistente, as tarefas de cópia ou transferência de backups serão iniciadas automaticamente. Mas se seus planos não incluem a colocação imediata de carga em todos os sistemas, certifique-se de definir intervalos aceitáveis ​​para trabalhar no botão Janela.

MinIo para os mais pequenos
E, claro, você pode realizar tarefas separadas de cópia de backup. Alguns acreditam que isso é ainda mais conveniente, pois são um pouco mais transparentes e previsíveis para o usuário que não deseja se aprofundar nos detalhes do funcionamento do campo de tiro. E há detalhes suficientes aí, então mais uma vez recomendo o artigo correspondente no link acima.

E por fim, a resposta para a pergunta traiçoeira: o que acontecerá se você ainda tentar excluir o backup do armazenamento imutável?

Aqui está a resposta:

MinIo para os mais pequenos
Isso é tudo por hoje. Na verdadeira tradição, confira a lista de tópicos úteis sobre o tema:

Fonte: habr.com

Adicionar um comentário