Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

O mundo viu o primeiro protótipo de armazenamento de objetos em 1996. Em 10 anos, a Amazon Web Services lançará o Amazon S3, e o mundo começará a enlouquecer sistematicamente com um espaço de endereço plano. Graças ao trabalho com metadados e à sua capacidade de escalar sem ceder sob carga, o armazenamento de objetos rapidamente se tornou o padrão para a maioria dos serviços de armazenamento de dados em nuvem, e não apenas isso. Outra característica importante é que ele é adequado para armazenar arquivos e arquivos similares raramente usados. Todos os envolvidos no armazenamento de dados se alegraram e usaram a nova tecnologia nos braços.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

Mas os rumores das pessoas estavam cheios de rumores de que o armazenamento de objetos trata apenas de grandes nuvens, e se você não precisa de soluções dos malditos capitalistas, então será muito difícil criar as suas próprias. Muito já foi escrito sobre a implantação de sua própria nuvem, mas não há informações suficientes disponíveis sobre a criação das chamadas soluções compatíveis com S3.

Portanto, hoje vamos descobrir quais opções existem “Para que sejam como adultos, não CEPH e um arquivo maior”, implantaremos uma delas e verificaremos se tudo funciona usando Veeam Backup & Replication. Ele afirma oferecer suporte ao trabalho com armazenamentos compatíveis com S3 e testaremos essa afirmação.

E os outros?

Sugiro começar com uma pequena visão geral do mercado e das opções de armazenamento de objetos. O líder e padrão geralmente reconhecido é o Amazon S3. Os dois perseguidores mais próximos são o Microsoft Azure Blob Storage e o IBM Cloud Object Storage.

Isso é tudo? Não há realmente outros concorrentes? Claro que existem concorrentes, mas alguns seguem seu próprio caminho, como Google Cloud ou Oracle Cloud Object Storage, com suporte incompleto à API S3. Alguns usam versões mais antigas da API, como o Baidu Cloud. E alguns, como o Hitachi Cloud, exigem lógica especial, o que certamente causará suas próprias dificuldades. De qualquer forma, todos são comparados à Amazon, o que pode ser considerado o padrão da indústria.

Mas nas soluções locais há muito mais opções, então vamos delinear os critérios que são importantes para nós. Em princípio, apenas dois são suficientes: suporte para API S3 e uso de assinatura v4. Sinceramente, nós, como futuros clientes, estamos interessados ​​apenas em interfaces de interação, e não nos interessamos tanto pela cozinha interna do próprio armazém.

Muitas soluções se enquadram nessas condições simples. Por exemplo, pesos pesados ​​corporativos clássicos:

  • Dell EMC ECS
  • Grade de armazenamento NetApp S3
  • Baldes Nutanix
  • Pure Storage FlashBlade e StorReduce
  • Armazenamento Huawei Fusion

Existe um nicho de soluções puramente de software que funcionam imediatamente:

  • Red Hat CephName
  • Armazenamento Corporativo SUSE
  • Cloudian

E mesmo quem gosta de arquivar com cuidado após a montagem não se ofendeu:

  • CEPH em sua forma mais pura
  • Minio (versão Linux, pois há muitas dúvidas sobre a versão Windows)

A lista está longe de estar completa, pode ser discutida nos comentários. Só não se esqueça de verificar o desempenho do sistema, além da compatibilidade da API, antes da implementação. A última coisa que você deseja é perder terabytes de dados devido a consultas travadas. Portanto, não seja tímido com os testes de carga. Em geral, todo software adulto que trabalha com grandes quantidades de dados possui pelo menos relatórios de compatibilidade. No caso de Veeam tem programa inteiro em testes mútuos, o que nos permite declarar com segurança a total compatibilidade dos nossos produtos com equipamentos específicos. Este já é um trabalho de mão dupla, nem sempre rápido, mas em constante expansão lista soluções testadas.

Montando nosso estande

Gostaria de falar um pouco sobre a escolha de uma cobaia.

Primeiro, eu queria encontrar uma opção que funcionasse imediatamente. Bem, ou pelo menos com a máxima probabilidade de funcionar sem a necessidade de fazer movimentos desnecessários. Dançar com pandeiro e mexer no console à noite é muito emocionante, mas às vezes você quer que funcione imediatamente. E a confiabilidade geral de tais soluções costuma ser maior. E sim, o espírito de aventureirismo desapareceu em nós, deixamos de subir nas janelas das nossas queridas mulheres, etc.

Em segundo lugar, para ser honesto, a necessidade de trabalhar com armazenamento de objetos surge em empresas bastante grandes, então este é o caso quando procurar soluções de nível empresarial não só não é vergonhoso, mas até encorajado. De qualquer forma, ainda não conheço nenhum exemplo de alguém que tenha sido demitido por adquirir tais soluções.

Com base em tudo o que foi dito acima, minha escolha recaiu sobre Dell EMC ECS Community Edition. Este é um projeto muito interessante e considero necessário falar sobre ele.

A primeira coisa que vem à mente quando você vê o complemento Edição da comunidade - que esta é apenas uma cópia de um ECS completo com algumas restrições que são removidas com a compra de uma licença. Então não!

Lembre-se:

!!!Community Edition é um projeto separado criado para testes e sem suporte técnico da Dell!!
E não pode ser transformado em um ECS completo, mesmo que você realmente queira.

Vamos entender

Muitas pessoas acreditam que o Dell EMC ECS é quase a melhor solução se você precisar de armazenamento de objetos. Todos os projetos da marca ECS, inclusive comerciais e corporativos, baseiam-se em githabe. Uma espécie de gesto de boa vontade da Dell. E além do software que roda em seu hardware de marca, existe uma versão de código aberto que pode ser implantada na nuvem, em uma máquina virtual, em um contêiner ou em qualquer hardware seu. Olhando para o futuro, existe até uma versão OVA, que usaremos.
O DELL ECS Community Edition em si é uma miniversão de software completo executado em servidores Dell EMC ECS da marca.

Identifiquei quatro diferenças principais:

  • Sem suporte de criptografia. É uma pena, mas não é crítico.
  • Falta camada de tecido. Essa coisa é responsável pela construção de clusters, gerenciamento de recursos, atualizações, monitoramento e armazenamento de imagens Docker. É aqui que já é muito ofensivo, mas a Dell também pode ser compreendida.
  • A consequência mais nojenta do ponto anterior: o tamanho do nó não pode ser ampliado após a conclusão da instalação.
  • Sem suporte técnico. Este é um produto para teste, que não é proibido de ser usado em pequenas instalações, mas eu pessoalmente não me atreveria a fazer upload de petabytes de dados importantes ali. Mas tecnicamente ninguém pode impedir você de fazer isso.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

O que há na versão grande?

Vamos galopar pela Europa e passar por soluções rígidas para ter uma compreensão mais completa do ecossistema.

De alguma forma, não confirmarei ou refutarei a afirmação de que o DELL ECS é o melhor armazenamento de objetos local, mas se você tiver algo a dizer sobre esse assunto, ficarei feliz em ler nos comentários. Pelo menos de acordo com a versão Mercado IDC 2018 A Dell EMC está seguramente entre os cinco principais líderes do mercado de OBS. Embora as soluções baseadas em nuvem não sejam levadas em consideração lá, esta é uma conversa à parte.

Do ponto de vista técnico, ECS é um armazenamento de objetos que fornece acesso a dados por meio de protocolos de armazenamento em nuvem. Suporta AWS S3 e OpenStack Swift. Para buckets habilitados para arquivo, o ECS oferece suporte a NFSv3 para exportação arquivo por arquivo.

O processo de gravação de informações é bastante incomum, especialmente após os sistemas clássicos de armazenamento em bloco.

  • Quando novos dados chegam, é criado um novo objeto que possui um nome, os próprios dados e metadados.
  • Os objetos são divididos em pedaços de 128 MB e cada pedaço é gravado em três nós ao mesmo tempo.
  • O arquivo de índice é atualizado, onde são registrados identificadores e locais de armazenamento.
  • O arquivo de log (entrada de log) é atualizado e também gravado em três nós.
  • Uma mensagem sobre a gravação bem-sucedida é enviada ao cliente
    Todas as três cópias dos dados são gravadas em paralelo. A gravação é considerada bem-sucedida somente se todas as três cópias foram gravadas com sucesso.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

A leitura é mais fácil:

  • O cliente solicita dados.
  • O índice procura onde os dados estão armazenados.
  • Os dados são lidos de um nó e enviados ao cliente.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

Existem alguns servidores, então vamos dar uma olhada no menor Dell EMC ECS EX300. Começa a partir de 60 TB, com capacidade de crescer até 1,5 PB. E seu irmão mais velho, o Dell EMC ECS EX3000, permite armazenar até 8,6 PB por rack.

Implantar

Tecnicamente, o Dell ECS CE pode ser implantado do tamanho que você desejar. De qualquer forma, não encontrei nenhuma restrição explícita. No entanto, é conveniente fazer todo o dimensionamento clonando o primeiro nó, para o qual precisamos:

  • 8 vCPUs
  • RAM 64GB
  • 16 GB para sistema operacional
  • Armazenamento direto de 1 TB
  • Última versão do CentOS mínimo

Esta é uma opção quando você deseja instalar tudo sozinho desde o início. Esta opção não é relevante para nós, porque... Usarei a imagem OVA para implantação.

Mas, em qualquer caso, os requisitos são muito ruins, mesmo para um nó, e se você seguir estritamente a letra da lei, precisará de quatro desses nós.

No entanto, os desenvolvedores do ECS CE vivem no mundo real e a instalação é bem-sucedida mesmo com um nó, e os requisitos mínimos são:

  • 4 vCPUs
  • 16 GB RAM
  • 16 GB para sistema operacional
  • 104 GB de armazenamento propriamente dito

Estes são os recursos necessários para implantar a imagem OVA. Já é muito mais humano e realista.

O próprio nó de instalação pode ser obtido no site oficial github. Também há documentação detalhada sobre implantação multifuncional, mas você também pode ler no site oficial leia os documentos. Portanto, não vamos nos alongar em detalhes sobre o desenrolar do OVA, não há truques aí. O principal é que antes de iniciá-lo não se esqueça de expandir o disco até o volume desejado ou anexar os necessários.
Iniciamos a máquina, abrimos o console e usamos as melhores credenciais padrão:

  • login: administrador
  • senha: ChangeMe

Em seguida, executamos sudo nmtui e configuramos a interface de rede - IP/máscara, DNS e portão. Lembrando que o CentOS minimal não possui net-tools, verificamos as configurações via ip addr.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

E como só os corajosos conquistam os mares, fazemos uma atualização do yum, depois da qual reiniciamos. Na verdade, é bastante seguro porque... toda a implantação é feita por meio de playbooks e todos os pacotes importantes do docker são bloqueados para a versão atual.

Agora é hora de editar o script de instalação. Nenhuma janela sofisticada ou pseudo UI para você - tudo é feito através do seu editor de texto favorito. Tecnicamente, existem duas maneiras: você pode executar cada comando manualmente ou iniciar imediatamente o configurador videoploy. Ele simplesmente abrirá a configuração no vim e, ao sair, começará a verificá-la. Mas não é interessante simplificar deliberadamente sua vida, então vamos executar mais dois comandos. Embora isso não faça sentido, eu avisei =)

Então, vamos criar vim ECS-CommunityEdition/deploy.xml e fazer as alterações mínimas ideais para que o ECS esteja instalado e funcionando. A lista de parâmetros pode ser reduzida, mas fiz assim:

  • licenciado_accepted: true Você não precisa alterá-lo, então, ao implantar, você será explicitamente solicitado a aceitá-lo e verá uma frase legal. Talvez este seja até um ovo de Páscoa.
    Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços
  • Remova o comentário das linhas autonames: e custom: Insira pelo menos um nome desejado para o nó - o nome do host será substituído por ele durante o processo de instalação.
  • install_node: 192.168.1.1 Especifique o IP real do nó. No nosso caso, indicamos o mesmo que em nmtui
  • dns_domain: insira seu domínio.
  • dns_servers: insira seu dns.
  • ntp_servers: você pode especificar qualquer um. Peguei o primeiro que encontrei no pool 0.pool.ntp.org (tornou-se 91.216.168.42)
  • autonaming: custom Se você não descomentar, a lua se chamará Luna.
  • ecs_block_devices:
    / dev / sdb
    Por alguma razão desconhecida, pode haver um dispositivo de armazenamento em bloco inexistente /dev/vda
  • pools de armazenamento:
    membros:
    192.168.1.1 Aqui novamente indicamos o IP real do nó
  • ecs_block_devices:
    /dev/sdb Repetimos a operação de corte de dispositivos inexistentes.

Em geral, todo o arquivo é descrito detalhadamente em documentação, mas quem irá lê-lo em um momento tão conturbado. Também diz que o mínimo suficiente é especificar o IP e a máscara, mas no meu laboratório esse conjunto começou mal e tive que expandi-lo para o especificado acima.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

Depois de sair do editor, você precisa executar update_deploy /home/admin/ECS-CommunityEdition/deploy.yml e, se tudo for feito corretamente, isso será relatado explicitamente.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

Então você ainda precisa iniciar o videoploy, aguardar a atualização do ambiente e iniciar a instalação propriamente dita com o comando ova-step1 e, após sua conclusão bem-sucedida, o comando ova-step2. Importante: não interrompa os scripts manualmente! Algumas etapas podem levar muito tempo, podem não ser concluídas na primeira tentativa e podem parecer que tudo está quebrado. De qualquer forma, você precisa esperar que o script seja concluído naturalmente. No final você deverá ver uma mensagem semelhante a esta.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

Agora podemos finalmente abrir o painel de controle WebUI usando o IP que conhecemos. Se a configuração não foi alterada neste estágio, a conta padrão será root/ChangeMe. Você pode até usar nosso armazenamento compatível com S3 imediatamente. Está disponível nas portas 9020 para HTTP e 9021 para HTTPS. Novamente, se nada foi alterado, então access_key: object_admin1 e secret_key: ChangeMeChangeMeChangeMeChangeMeChangeMe.

Mas não vamos nos precipitar e começar em ordem.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

Ao fazer login pela primeira vez, você será forçado a alterar sua senha para uma adequada, o que é absolutamente correto. O painel principal é extremamente claro, então vamos fazer algo mais interessante do que explicar as métricas óbvias. Por exemplo, vamos criar um usuário que usaremos para acessar o armazenamento. No mundo dos prestadores de serviços, estes são chamados de inquilinos. Isso é feito em Gerenciar > Usuários > Novo Usuário de Objeto

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

Ao criar um usuário, somos solicitados a especificar um namespace. Tecnicamente, nada nos impede de criar tantos quantos usuários. E vice versa. Isto permite-lhe gerir recursos de forma independente para cada inquilino.

Assim, selecionamos as funções necessárias e geramos chaves de usuário. S3/Atmos será suficiente para mim. E não se esqueça de salvar a chave 😉

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

O usuário foi criado, agora é hora de alocar um bucket para ele. Vá para Gerenciar > Bucket e preencha os campos obrigatórios. Tudo é simples aqui.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

Agora temos tudo pronto para o uso em combate de nosso armazenamento S3.

Configurando a Veeam

Assim, como lembramos, um dos principais usos do armazenamento de objetos é o armazenamento de longo prazo de informações que raramente são acessadas. Um exemplo ideal é a necessidade de armazenar backups em um local remoto. No Veeam Backup & Replication, esse recurso é chamado de nível de capacidade.

Vamos começar a configuração adicionando nosso Dell ECS CE à interface Veeam. Na guia Infraestrutura de Backup, inicie o Assistente para Adicionar Novo Repositório e selecione Armazenamento de Objetos.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

Vamos escolher por que tudo começou - Compatível com S3.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

Na janela que aparece, escreva o nome desejado e vá para a etapa Conta. Aqui você precisa especificar o ponto de atendimento no formulário https://your_IP:9021, a região pode ser deixada como está e o usuário criado pode ser adicionado. Um servidor de portão é necessário se o seu armazenamento estiver localizado em um local remoto, mas este já é um tópico para otimização de infraestrutura e um artigo separado, então você pode ignorá-lo com segurança aqui.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

Se tudo estiver especificado e configurado corretamente, aparecerá um aviso sobre o certificado e a seguir uma janela com um bucket onde você poderá criar uma pasta para nossos arquivos.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

Seguimos o assistente até o fim e aproveitamos o resultado.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

A próxima etapa é criar um novo repositório de backup escalável ou adicionar nosso S3 ao existente - ele será usado como um nível de capacidade para armazenamento de arquivamento. Não há função para usar armazenamento compatível com S3 diretamente, como um repositório normal, na versão atual. Muitos problemas pouco óbvios precisam ser resolvidos para que isso aconteça, mas tudo é possível.
Vá para as configurações do repositório e habilite o Capacity Tier. Tudo é transparente aí, mas há uma nuance interessante: se você quiser que todos os dados sejam enviados para o armazenamento de objetos o mais rápido possível, basta definir como 0 dias.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

Depois de passar pelo assistente, se não quiser esperar, você pode pressionar ctrl + RMB no repositório, iniciar com força o trabalho de Tiering e observar o rastreamento dos gráficos.

Armazenamento de objetos na sala dos fundos ou como se tornar seu próprio provedor de serviços

É tudo por agora. Acho que consegui mostrar que o armazenamento em bloco não é tão assustador quanto as pessoas pensam. Sim, existem soluções e opções para carroça e carrinho pequeno, mas não dá para cobrir tudo em um artigo só. Então vamos compartilhar nossa experiência nos comentários.

Fonte: habr.com

Adicionar um comentário