Ceph como armazenamento conectável: 5 informações práticas de um grande projeto

Dado o crescimento dos dados, hoje em dia é dito mais e mais frequentemente sobre data warehouses definidos e distribuídos por software, e muita atenção é tradicionalmente prestada à plataforma aberta da Ceph. Hoje, queremos falar sobre as conclusões a que chegamos no processo de implementação de um projeto de armazenamento de dados para um grande departamento russo.



Quando se trata de armazenar dados de vários tipos, é claro, um data warehouse distribuído imediatamente vem à mente. Teoricamente, existem muitas vantagens em tais soluções: você pode usar qualquer disco, o sistema funciona em qualquer servidor (mesmo os muito antigos), praticamente não há limites para o dimensionamento. É por isso que a introdução desse sistema foi lançada há vários anos em um dos maiores departamentos russos, com unidades não apenas em todas as regiões da Federação Russa, mas também em todas as cidades mais ou menos grandes.

Após analisar as soluções disponíveis, a escolha foi feita em favor da Ceph. Havia várias razões para esta decisão:
• O Ceph é um produto bastante maduro, e hoje existem instalações do Ceph com petabytes de informações.
• Uma grande comunidade está envolvida no desenvolvimento (incluindo nós), o que significa que novas funções e melhorias aparecerão para o armazenamento.
• O Ceph já possui uma boa API com suporte para várias linguagens de programação. Isso foi importante porque obviamente o produto precisava ser refinado para atender aos requisitos e expectativas do cliente.
• As licenças não custam nada. Não, é claro que o sistema precisa ser mais desenvolvido, mas, no caso de tarefas específicas do cliente, seria necessário realizar um desenvolvimento adicional; por que não fazê-lo com base em um produto gratuito?
• Finalmente, sanções. As empresas estatais devem ter certeza de que, da próxima vez que alguém tiver a idéia de impor restrições a elas, depender, portanto, de um produto estrangeiro e especialmente americano é perigoso. Outra coisa, código aberto.

Conclusões práticas
A introdução do Ceph ocorreu gradualmente ao longo de vários meses. Primeiro, o armazenamento foi lançado na região central e, em seguida, replicamos a solução conectando data centers regionais. Com o advento de cada novo nó da rede, o desempenho do armazenamento aumentou, apesar do aumento nos fluxos de dados, garantindo a transferência de informações de região para região.
Um recurso do trabalho de qualquer organização grande é a necessidade de armazenar informações heterogêneas, que geralmente são um arquivo binário. Como mostra a prática, os funcionários simplesmente não têm tempo para descobrir que tipo de arquivos são, categorizá-los e processá-los em tempo hábil - as informações conseguem acumular-se mais rapidamente. E, para não perder dados potencialmente importantes para atividades operacionais, é necessário organizar seu armazenamento competente. Por exemplo, com base no armazenamento distribuído.
E no processo de implementação de um projeto desse tipo, tiramos várias conclusões sobre o uso do Ceph:

Conclusão 1: Ceph substitui completamente todas as soluções de backup
Como a prática demonstrou, o backup da maioria das informações não estruturadas não é realizado, pois é extremamente difícil implementá-las. Quando o Ceph é implementado, o backup é obtido como se "sob a forma de um bônus". Ao configurar, simplesmente definimos parâmetros de replicação - o número de cópias e o local de sua veiculação. Se o cliente tiver vários datacenters, é obtida uma configuração desastrosa que simplesmente não requer backups adicionais se houver 3-4 cópias de dados em diferentes discos e servidores. Esse sistema funciona melhor do que qualquer solução de hardware, pelo menos por enquanto estamos falando de grandes quantidades de dados e sistemas distribuídos geograficamente.

Conclusão 2: Em instalações grandes, o desempenho do Ceph é 99% igual ao desempenho da rede.
Quando transferimos dados de um banco de dados PostgreSQL (mais sobre isso abaixo) para um armazenamento baseado em Ceph, a velocidade de upload na maioria dos casos era igual à largura de banda da rede de transmissão de dados. Se, em alguns casos, não fosse esse o caso, reconfigurar o Ceph permitia atingir essa velocidade. Obviamente, não estamos falando de conexões de 100 Gb / s, mas com canais de dados padrão para infraestruturas distribuídas geograficamente, é bem possível obter um desempenho de ponto de ponto de Ceph de 10 Mbit / s, 100 Mbit / s ou 1 Gbit / s. É suficiente distribuir corretamente os discos e configurar o agrupamento de informações.

Conclusão 3: O principal é configurar corretamente o Ceph, levando em consideração as peculiaridades da empresa
Por falar em configurações, a maior parte da experiência no trabalho do Ceph é necessária no estágio de configuração do sistema. Além dos parâmetros de replicação, a solução também permite definir níveis de acesso, regras de retenção de dados e assim por diante. Por exemplo, se tivermos centros de mini-computação em toda a Rússia, poderemos organizar o acesso rápido a documentos e arquivos criados em nossa região, bem como o acesso a todos os documentos corporativos de qualquer lugar. Este último trabalhará com atrasos um pouco mais longos e com menor velocidade, mas essa "concentração" de informações no local de propriedade cria condições ideais para a organização.

Conclusão 4: Quando já estiver configurado, qualquer administrador Linux pode gerenciar o Ceph
Talvez uma das características mais agradáveis ​​do Ceph seja que o sistema funcione sem envolvimento humano desnecessário quando já estiver configurado. Ou seja, descobriu-se que em mini-datacenters remotos é suficiente conter apenas o administrador do Linux, pois o suporte para o próximo segmento Ceph não requer nenhum conhecimento adicional.

Conclusão 5: A suplementação de Ceph com um sistema de indexação externo facilita o armazenamento para pesquisa contextual
Como você sabe, dentro do Ceph não há índice que possa ser usado para pesquisar por contexto. Portanto, quando um objeto é inserido no armazenamento, é possível salvar os metadados que servem como índice. Seu volume é bastante pequeno e, portanto, um DBMS relacional regular pode lidar facilmente com eles. Obviamente, esse é um sistema adicional, mas essa abordagem permite que você encontre rapidamente informações por contexto entre os enormes volumes de dados não estruturados.



Algumas palavras sobre transferência de dados
Um grande projeto envolve muitos estágios, mas talvez o mais interessante para nós tenha sido o processo de transferência de grandes quantidades de dados do PostgreSQL para um novo repositório. Após o lançamento do Ceph, surgiu a tarefa de migrar dados de vários bancos de dados sem interromper os serviços e processos de negócios e garantir a integridade das informações.
Para fazer isso, tivemos que contribuir para o desenvolvimento do projeto Ceph Open Source e criar o módulo de migração pg_rbytea, cujo código fonte pode ser encontrado no link ( https://github.com/val5244/pg_rbytea ). A essência da solução era transferir simultaneamente dados do banco de dados especificado para o repositório Ceph. O módulo desenvolvido permite migrar dados instantaneamente sem interromper o banco de dados, usando a abstração do armazenamento de objetos Rados, cujo suporte é implementado no Ceph no nível nativo. A propósito, fizemos um relatório sobre isso na PG Conf no início de 2018 ( https://pgconf.ru/2018/107082 ).
No primeiro estágio, vários dados binários necessários para o trabalho funcional dos departamentos do departamento foram movidos para o repositório. De fato, todos os arquivos e objetos que não estão claros como armazenar por causa de seu enorme volume total e estrutura difusa. Em seguida, está planejado transferir vários conteúdos de mídia para o Ceph, armazenando os documentos originais criados antes do reconhecimento e anexos de cartas corporativas.
Para que tudo isso funcionasse sobre o armazenamento, foram desenvolvidos serviços RESTful que permitiram o uso do Ceph para integração nos sistemas do cliente. Aqui, novamente, a presença de uma API conveniente desempenhou um papel, o que permite criar um serviço de plug-in para vários sistemas de informação. Portanto, o Ceph se tornou o repositório principal, reivindicando cada vez mais volumes e tipos de informações dentro da organização.

Conclusão
Vários data warehouses distribuídos estão no mercado, incluindo soluções comerciais e outros produtos de código aberto. Alguns deles usam otimizações especiais, outros trabalham com compactação ou usam o Erasure Coding. No entanto, na prática, estávamos convencidos de que o Ceph é ideal para ambientes verdadeiramente distribuídos e grandes armazenamentos, porque nesse caso o desempenho do sistema é limitado apenas pela velocidade dos canais de comunicação e você economiza muito dinheiro em licenças pelo número de servidores ou pela quantidade de dados (dependendo da quantidade de dados). com qual produto comparar). Um sistema Ceph bem ajustado permite garantir desempenho ideal com supervisão mínima dos administradores locais em campo. E essa é uma grande vantagem se você introduzir uma implementação distribuída geograficamente.

Source: https://habr.com/ru/post/pt417613/


All Articles