MinIo para os mais pequenos

MinIO é uma ótima solução quando você precisa organizar o armazenamento de objetos de maneira fácil e fácil. Customização básica, múltiplas plataformas e bom desempenho têm cumprido seu papel no campo do amor das pessoas. Portanto, não tivemos outra maneira a não ser declarar a compatibilidade do Veeam Backup & Replication e do MinIOum mês . Incluindo um recurso tão importante como Imutabilidade. Na verdade, MinIO tem uma seção inteira na documentação dedicada à nossa integração.



Portanto, hoje vamos falar sobre como:



  • A configuração do MinIO é muito rápida.
  • Configurar o MinIO é um pouco menos rápido, mas muito melhor.
  • Use-o como o Archive Tier para o repositório escalonável Veeam SOBR.






O que você é?



Uma breve introdução para aqueles que ainda não encontraram o MinIO. É um armazenamento de objeto 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 que se espalha com painéis, gráficos e vários menus. O MinIO simplesmente inicia seu servidor com um comando, onde você pode simplesmente armazenar dados usando todo o poder da API S3. Mas é preciso destacar que essa simplicidade pode enganar no que diz respeito aos recursos utilizados. A RAM e a CPU são absorvidas perfeitamente bem, mas os motivos serão descritos a seguir. E, a propósito, combinações como FreeNAS e TrueNAS usam MinIO sob o capô.



Esta introdução pode ser completada.



Configurar o MinIO é muito rápido



A configuração é tão rápida que cobriremos para Windows e Linux. Existem opções para docker e para kubernetis e até para makosi, mas o significado será o mesmo em todos os lugares.



Portanto, no caso do Windows, acesse o site oficial https://min.io/download#/windows e baixe a versão mais recente. No mesmo local, observamos as instruções de lançamento:



 minio.exe server F:\Data


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





Isso é tudo! O armazenamento está funcionando e você pode começar a trabalhar com ele. Eu não estava brincando quando disse que MinIO é minimalismo e simplesmente funciona. Se você seguir o link sugerido ao inicializar, então o máximo de funções disponíveis é para criar um balde. E você pode começar a escrever dados.



Para os amantes do Linux, tudo permanece não menos simples. A instrução 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 é prejudicial para fins de teste. E, francamente, é para testar o MinIO que usamos amplamente, o que não temos vergonha de admitir. É claro que funciona, mas é uma pena suportar tal coisa além de bancadas de teste. Portanto, pegamos um arquivo em nossas mãos e começamos a trazê-lo à mente.



HTTPS



A primeira etapa obrigatória no caminho para a produção é a criptografia. Já existem um milhão e mil manuais na rede para adicionar certificados ao MiniIO, mas seu plano geral é o seguinte:



  • Crie um certificado
  • No caso do Windows, coloque em C: \ Usuários \% Usuário% \. Minio \ certs
  • No caso do Linux em $ {HOME} /. Minio / certs 
  • Reiniciamos o servidor


Banal Let's Encrypt é chato e descrito em todo lugar, então nosso caminho é o caminho de um samurai, então no caso do Windows baixamos o Cygwin , e no caso do Linux apenas verificamos se temos o openssl instalado. E fazendo alguma mágica de console:



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


Se tudo correu como deveria, então as seguintes linhas aparecerão no status.





Ativar MinIO Erasure Coding



Primeiro, algumas palavras sobre o assunto. Resumindo: é a proteção de dados baseada em software contra danos e perdas. Como uma invasão, só que muito mais confiável. Enquanto o RAID6 clássico pode perder duas unidades, o MinIO se sente confortável em perder a metade. A tecnologia é descrita com mais detalhes no guia oficial . Mas se você pegar a essência, esta é a implementação dos códigos Reed-Solomon: todas as informações são armazenadas na forma de blocos de dados, para os quais existem blocos de paridade. E parece que tudo isso já foi feito muitas vezes, apenas há um importante "mas": podemos indicar explicitamente a proporção de blocos de paridade para blocos de dados para objetos armazenados.

Quer 1: 1? Você é bem vindo!

Quer 5: 2? Sem problemas!



Uma função muito importante se você usar vários nós ao mesmo tempo e quiser encontrar seu próprio equilíbrio entre a segurança máxima de dados e os recursos gastos. Fora da caixa, o MinIO usa a fórmula N / 2 (onde N é o número total de discos), ou seja, divide seus dados entre N / 2 discos de dados e N / 2 discos de paridade. Traduzindo para um humano: você pode perder metade dos discos e recuperar dados. Essa proporção é definida por meio da Classe de armazenamento , permitindo que você escolha independentemente o que é mais importante: confiabilidade ou capacidade.



O guia dá um 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 tamanho, ou seja, 200 MB. Se a proporção da unidade for 10/6, 160 MB serão necessários. 14/2 - 114 Mb.



Outra diferença importante dos ataques: em caso de queda de discos, o MinIO funcionará no nível do objeto, restaurando um a um sem interromper todo o sistema. Enquanto um ataque normal será forçado a restaurar todo o volume, o que levará uma quantidade imprevisível de tempo. Na memória do autor, a estante de discos, que, após a perda de dois discos, foi recontada por uma semana e meia. Foi muito desagradável.



E uma observação importante: MinIO divide todos os discos para Erasure Coding em conjuntos de 4 a 16 discos, usando o maior tamanho de conjunto possível. E, no futuro, uma parte das informações será armazenada apenas em um conjunto.



Tudo isso parece ótimo, mas quão difícil será a configuração? Vamos dar uma olhada. Pegamos o comando para iniciar e simplesmente listamos os discos nos quais você precisa criar armazenamento. Se tudo for feito corretamente, então no relatório veremos a quantidade de discos usados. E aviso de que é inútil adicionar metade dos discos a um host de uma vez, porque isso é uma perda de dados.



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




Além disso, para controlar e personalizar o servidor MinIO, precisamos de um agente, que você pode baixar da mesma forma com o site oficial.



Para não apagar seus dedos, cada vez que digitar o endereço e as teclas de acesso (e não é seguro), é conveniente, no início, criar imediatamente um alias usando a fórmula mc alias set <YOUR-MINIO-ENDPOINT> [YOUR-ACCESS-KEY] [YOUR-SECRET- CHAVE]



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


Ou você pode adicionar seu host imediatamente:



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


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



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


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



-l significa --with-lock, o que significa imutável.



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





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



Você também pode ter certeza de que tudo funciona 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 alguma razão incrível você deseja trabalhar em HTTP, então em HKEY_LOCAL_MACHINE \ SOFTWARE \ Veeam \ Veeam Backup and Replication \ crie uma chave DWORD SOBRArchiveS3DisableTLS. Defina seu valor como 1 e lembre-se de que desaprovamos fortemente esse comportamento e não o recomendamos a ninguém.



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



Bem, os preparativos acabaram, vamos abrir a interface VBR e ir para a aba Backup Infrastructure, onde chamaremos o wizard para adicionar um novo repositório.





Claro, estamos interessados ​​em armazenamento de objetos, nomeadamente S3 Compatible. No assistente aberto, defina o nome, siga as etapas com o endereço e a conta. Se necessário, não se esqueça de especificar a porta por meio da qual as solicitações para o armazenamento serão encaminhadas por proxy.





Em seguida, selecione o intervalo, pasta e marque a caixa de seleção Tornar backups recentes imutáveis. Ou não. Mas como fizemos um repositório com suporte para esta função, será pecado não usá-la.





Avançar> Conclua e aproveite o resultado.



Agora você precisa adicioná-lo ao repositório SOBR como um nível de capacidade. Para fazer isso, crie um novo ou edite o existente. Estamos interessados ​​na etapa do Nível de capacidade.





Aqui, precisamos escolher com qual cenário trabalharemos. Todas as opções são descritas muito bem em outro artigo , então não vou me repetir.



E depois que o assistente for concluído, as tarefas de cópia ou transferência de backups serão iniciadas automaticamente. Mas se não estiver em seus planos emitir imediatamente a carga em todos os sistemas, certifique-se de definir os intervalos permitidos para trabalhar com o botão Janela.





E, claro, você pode fazer trabalhos de cópia de backup separados. Algumas pessoas acham que é ainda mais conveniente desta forma, pois são um pouco mais transparentes e previsíveis para um usuário que não quer se aprofundar nos detalhes do funcionamento de uma galeria de tiro importante. E há detalhes suficientes, então, mais uma vez, recomendo o artigo correspondente do link acima.



E, finalmente - a resposta à pergunta insidiosa: o que acontecerá se você ainda tirar e tentar remover o backup do armazenamento Imutável?



Aqui está a resposta:





Isso é tudo por hoje. Por verdadeira tradição, pegue uma lista de tópicos úteis sobre o assunto:






All Articles