Olá pessoal! O artigo de hoje apresenta principalmente como implantar um cluster MinIO de alta disponibilidade com um clique por meio do Sealos.
O que é armazenamento de objetos MinIO?
Objetos são dados binários, como imagens, arquivos de áudio, planilhas e até mesmo código binário executável. Os objetos podem variar em tamanho de alguns B a vários TB. Plataformas de armazenamento de objetos como MinIO fornecem ferramentas e funcionalidades especializadas para armazenar, listar e recuperar objetos usando APIs padrão compatíveis com S3.
O armazenamento de objetos MinIO usa buckets para organizar objetos. Os buckets são semelhantes a pastas ou diretórios em um sistema de arquivos, onde cada bucket pode conter qualquer número de objetos. Os buckets MinIO fornecem a mesma funcionalidade que os buckets AWS S3.
Link original: https://forum.laf.run/d/1029
Codificação de apagamento do MinIO
MinIO suporta implantação distribuída e alta disponibilidade de serviços e dados.O núcleo é a função de codificação de eliminação do MinIO.
MinIO implementa recursos de codificação de eliminação como um componente principal que fornece redundância e disponibilidade de dados. Suponha que o MinIO divida um objeto em fragmentos de dados K. A codificação de apagamento pode gerar fragmentos de verificação M com base em fragmentos de dados K. O MinIO requer pelo menos K fragmentos de qualquer tipo para restaurar o objeto original. Isso significa que os fragmentos M podem falhar em um total de fragmentos K+M.
Tomemos a figura a seguir como exemplo: dividimos um objeto em 12 fragmentos de dados (fragmentos de dados) e, em seguida, geramos 4 fragmentos de paridade (fragmentos de paridade). Há um total de 16 fragmentos, que são armazenados em um único driver. O método pode tolerar a falha de 4 drivers e tem uma eficiência de armazenamento de 0,75 (12/16). (Este é EC:4, EC é Erasure Coding, 4 é o número de fragmentos de verificação)
Para melhor comparação com o método de três cópias, assumimos que existem atualmente 2 fragmentos de dados e 2 fragmentos de verificação. Os resultados da comparação são os seguintes:
Caminho | Número de fragmentos com falha (réplicas) tolerados | Eficiência de armazenamento |
---|---|---|
Codificação de apagamento (EC:2) | 2 | 1/2 |
três cópias | 2 | 1/3 |
Por meio de comparação, pode-se observar que a codificação de eliminação pode melhorar a eficiência do armazenamento e reduzir o uso de recursos de armazenamento (Suplementar: Quando o número de fragmentos de dados é igual ao número de fragmentos de verificação, a fim de evitar o problema de divisão do cérebro no MinIO , a maioria dos dados é gravada. Fragmentação, ou seja, 3 shards, detalhes podem ser encontrados em: Disponibilidade e elasticidade do MinIO ).
A proporção de fragmentos de paridade/total de fragmentos pode ser ajustada em MinIO e o intervalo de proporção é de 0 a 1/2. Quanto maior a proporção, maior será a disponibilidade dos dados (o número de fragmentos com falha que podem ser tolerados) e menor será a eficiência do armazenamento.
Tutorial para implantar rapidamente MinIO de alta disponibilidade
O MinIO implantado pelo modelo usa 4 nós e EC:2. Ele pode garantir que o tempo de inatividade de um único nó não afete os serviços de leitura e gravação, o desligamento de dois nós não afete os serviços de leitura e a eficiência de armazenamento seja 1/2.
- Clique no link https://cloud.sealos.top/?openapp=system-fastdeploy%3FtemplateName%3Dminio
- Digite a senha da conta e o tamanho do armazenamento. (Observação: a senha da conta requer pelo menos 8 caracteres e o tamanho do armazenamento não pode ser modificado após a implantação)
- Clique em Deploy Application e o MinIO será iniciado!
- Clique em Confirmar para ver os detalhes.
- Clique no link para acessar a interface do console MinIO.
- Digite sua conta e senha para começar a usar o MinIO. Basta criar um bucket e fazer upload do arquivo install.sh.
Neste ponto, implantamos com sucesso um poderoso aplicativo de armazenamento de objetos. Você pode começar a armazenar objetos com alegria!
MinIO no Kubernetes
Vamos apresentar brevemente a arquitetura do MinIO no K8S:
- Pod : como unidade básica para executar instâncias MinIO, cada pod implanta uma instância de contêiner MinIO.
- StatefulSet: usado para gerenciar 4 cópias do MinIO Pod, garantindo o número e a ordem das cópias e fornecendo uma identificação de rede estável (como nome DNS) e identificação de armazenamento (volume PV) para cada Pod.
- Serviço (sem cabeça): fornece descoberta de serviço interno para pods MinIO no StatefulSet. Outros pods podem acessar cada instância MinIO por meio de um nome DNS fixo.
- Serviço (ClusterIP): Fornece a porta de acesso e o mapeamento da porta de destino do serviço MinIO Console para o mundo externo.
- Entrada : Configure o nome de domínio de entrada da rede externa e as regras de mapeamento de caminho, e você pode acessar o Console Minio por meio do nome de domínio.