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.
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
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
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.
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
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.
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.
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
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.
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.
- 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
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.
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.
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.
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
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 😉
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.
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.
Vamos escolher por que tudo começou - Compatível com S3.
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
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.
Seguimos o assistente até o fim e aproveitamos o resultado.
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.
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.
É 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