Ceph (software) - Ceph (software)

Armazenamento Ceph
Ceph logo.png
Autor (es) original (is) Armazenamento do Inktank ( Sage Weil , Yehuda Sadeh Weinraub, Gregory Farnum, Josh Durgin, Samuel Just, Wido den Hollander)
Desenvolvedor (s) Red Hat , Intel , CERN , Cisco , Fujitsu , SanDisk , Canonical e SUSE
Versão estável
16.2.4 "Pacífico" / 13 de maio de 2021 ; há 4 meses ( 2021-05-13 )
Repositório
Escrito em C ++ , Python
Sistema operacional Linux , FreeBSD
Modelo Armazenamento de objetos distribuídos
Licença LGPLv2.1
Local na rede Internet cef .io

Cef (pronunciada / s ɛ f / ) é um software-fonte aberto (armazenamento definida por software) de armazenamento plataforma , implementos objeto armazenamento em uma única distribuída cluster de computadores , e fornece-3-em-um interface para a objetos, BLOCO e armazenamento em nível de arquivo . O Ceph visa principalmente a operação totalmente distribuída sem um único ponto de falha , escalonável até o nível de exabyte e disponível gratuitamente.

O Ceph replica dados e o torna tolerante a falhas , usando hardware comum , Ethernet IP e não requerendo suporte de hardware específico. O sistema do Ceph oferece recuperação de desastres e redundância de dados por meio de técnicas como replicação, codificação de eliminação, instantâneos e clonagem de armazenamento. Como resultado de seu design, o sistema é autocorretivo e autogerenciado , visando minimizar o tempo de administração e outros custos.

Dessa forma, os administradores têm um sistema único e consolidado que evita silos e coleta o armazenamento em uma estrutura de gerenciamento comum. O Ceph consolida vários casos de uso de armazenamento e melhora a utilização de recursos. Ele também permite que uma organização implante servidores onde necessário.

Projeto

Uma visão geral de alto nível da organização interna do Ceph

O Ceph emprega cinco tipos distintos de daemons :

  • Monitores de cluster ( ceph-mon ) que rastreiam nós de cluster ativos e com falha, configuração de cluster e informações sobre o posicionamento de dados e estado global do cluster.
  • Dispositivos de armazenamento de objeto ( ceph-osd ) que usam um armazenamento em disco direto com registro (chamado BlueStore, que desde a versão v12.x substitui o FileStore que usaria um sistema de arquivos)
  • Servidores de metadados ( ceph-mds ) que armazenam em cache e intermediam o acesso a inodes e diretórios dentro de um sistema de arquivos CephFS.
  • Gateways HTTP ( ceph-rgw ) que expõem a camada de armazenamento de objetos como uma interface compatível com Amazon S3 ou APIs OpenStack Swift
  • Gerenciadores ( ceph-mgr ) que realizam tarefas de monitoramento, contabilidade e manutenção de cluster e interface com sistemas de monitoramento externo e gerenciamento (por exemplo, balanceador, painel, Prometheus , plugin Zabbix)

Todos eles são totalmente distribuídos e podem ser executados no mesmo conjunto de servidores. Clientes com necessidades diferentes podem interagir diretamente com diferentes subconjuntos deles.

O Ceph faz striping de arquivos individuais em vários nós para obter um rendimento mais alto, semelhante à forma como o RAID0 distribui partições em vários discos rígidos . O balanceamento de carga adaptável é compatível, por meio do qual os objetos acessados ​​com frequência são replicados em mais nós. Em setembro de 2017, BlueStore é o tipo de armazenamento padrão e recomendado para ambientes de produção, que é a própria implementação de armazenamento do Ceph fornecendo melhor latência e configurabilidade do que o back-end de armazenamento de arquivos e evitando as deficiências do armazenamento baseado em sistema de arquivos envolvendo camadas adicionais de processamento e armazenamento em cache. O back-end do armazenamento de arquivos ainda é considerado útil e muito estável; O XFS costumava ser o tipo de sistema de arquivos subjacente recomendado para ambientes de produção, enquanto o Btrfs era recomendado para ambientes de não produção. Os sistemas de arquivos ext4 não eram recomendados devido às limitações resultantes no comprimento máximo dos objetos RADOS. Mesmo usando o BlueStore, o XFS é usado para uma pequena partição de metadados.

Armazenamento de objetos S3

Um diagrama de arquitetura mostrando as relações entre os componentes da plataforma de armazenamento Ceph

Ceph implementa armazenamento de objetos distribuídos - BlueStore. O gateway RADOS (ceph-rgw) expõe a camada de armazenamento de objetos como uma interface compatível com o Amazon S3.

Geralmente são discos capacitivos associados ao armazenamento de objetos S3 do Ceph para casos de uso: Big Data (datalake), backup e arquivos, IOT, mídia, gravação de vídeo, etc.

As bibliotecas de software do Ceph fornecem aos aplicativos cliente acesso direto ao armazenamento de objeto distribuído autônomo confiável (RADOS) sistema de armazenamento baseado em objeto e também fornecem uma base para alguns dos recursos do Ceph, incluindo RADOS Block Device (RBD), RADOS Gateway e o Ceph Sistema de arquivos . Dessa forma, os administradores podem manter seus dispositivos de armazenamento como um sistema unificado, o que torna mais fácil replicar e proteger os dados.

As bibliotecas de software "librados" fornecem acesso em C , C ++ , Java , PHP e Python . O RADOS Gateway também expõe o armazenamento de objeto como uma interface RESTful que pode se apresentar como Amazon S3 nativa e APIs OpenStack Swift .

Armazenamento em bloco

O sistema de armazenamento de objetos do Ceph permite que os usuários montem o Ceph como um dispositivo de bloco com provisionamento dinâmico . Quando um aplicativo grava dados no Ceph usando um dispositivo de bloco, o Ceph distribui e replica automaticamente os dados no cluster. O dispositivo de bloco RADOS (RBD) da Ceph também se integra a máquinas virtuais baseadas em kernel (KVMs).

Freqüentemente, são discos rápidos (NVMe, SSD) associados ao armazenamento em bloco do Ceph para casos de uso, incluindo bancos de dados, máquinas virtuais, análise de dados, inteligência artificial e aprendizado de máquina.

O Ceph-RBD faz interface com o mesmo sistema de armazenamento de objetos Ceph que fornece a interface librados e o sistema de arquivos CephFS, e armazena imagens de dispositivos de bloco como objetos. Como o RBD é construído em librados, o RBD herda as habilidades dos librados, incluindo instantâneos somente leitura e reverter para instantâneo. Ao distribuir imagens em todo o cluster, o Ceph melhora o desempenho de acesso de leitura para grandes imagens de dispositivo de bloco.

O Ceph-iSCSI é um gateway que permite o acesso a armazenamento em bloco distribuído e altamente disponível a partir de qualquer servidor ou cliente microsoft windows e vmware vsphere capaz de falar o protocolo iSCSI. Ao usar ceph-iscsi em um ou mais hosts de gateway iSCSI, as imagens Ceph RBD tornam-se disponíveis como unidades lógicas (LUs) associadas a destinos iSCSI, que podem ser acessados ​​de forma opcional com balanceamento de carga e alta disponibilidade.

Como toda a configuração ceph-iscsi é armazenada no armazenamento de objeto Ceph RADOS, os hosts de gateway ceph-iscsi são inerentemente sem estado persistente e, portanto, podem ser substituídos, aumentados ou reduzidos à vontade. Como resultado, o Ceph Storage permite que os clientes executem uma tecnologia de armazenamento corporativo verdadeiramente distribuída, altamente disponível, resiliente e de autocura em hardware comum e uma plataforma de código aberto totalmente.

O dispositivo de bloco pode ser virtualizado, fornecendo armazenamento de bloco para máquinas virtuais, em plataformas de virtualização como OpenStack , Kubernetes , OpenNebula , Ganeti , Apache CloudStack e Proxmox Virtual Environment .

Armazenamento do sistema de arquivos

O sistema de arquivos do Ceph (CephFS) é executado no mesmo sistema de armazenamento de objeto que fornece armazenamento de objeto e interfaces de dispositivo de bloco. O cluster de servidor de metadados Ceph fornece um serviço que mapeia os diretórios e nomes de arquivo do sistema de arquivos para objetos armazenados em clusters RADOS. O cluster do servidor de metadados pode expandir ou contrair e pode rebalancear o sistema de arquivos dinamicamente para distribuir dados uniformemente entre os hosts do cluster. Isso garante alto desempenho e evita cargas pesadas em hosts específicos dentro do cluster.

Os clientes montam o sistema de arquivos compatível com POSIX usando um cliente de kernel Linux . Um cliente mais antigo baseado em FUSE também está disponível. Os servidores funcionam como daemons Unix regulares .

O armazenamento de arquivos do Ceph geralmente está associado a casos de uso: coleta de registros, mensagens, armazenamento de arquivos.

História

Ceph foi inicialmente criado por Sage Weil para sua tese de doutorado , que foi aconselhado pelo professor Scott A. Brandt no Jack Baskin Escola de Engenharia , Universidade da Califórnia, Santa Cruz (UCSC), e patrocinado pela Advanced Simulation e do Programa de Computação (ASC ), incluindo Los Alamos National Laboratory (LANL), Sandia National Laboratories (SNL) e Lawrence Livermore National Laboratory (LLNL). A primeira linha de código que acabou fazendo parte do Ceph foi escrita por Sage Weil em 2004, enquanto fazia um estágio de verão no LLNL, trabalhando em gerenciamento de metadados de sistema de arquivos escalável (conhecido hoje como MDS do Ceph). Em 2005, como parte de um projeto de verão iniciado por Scott A. Brandt e liderado por Carlos Maltzahn, Sage Weil criou um protótipo de sistema de arquivos totalmente funcional que adotou o nome Ceph. O Ceph fez sua estreia com Sage Weil fazendo duas apresentações em novembro de 2006, uma no USENIX OSDI 2006 e outra no SC '06.

Após sua graduação no outono de 2007, Weil continuou a trabalhar no Ceph em tempo integral, e a equipe de desenvolvimento principal se expandiu para incluir Yehuda Sadeh Weinraub e Gregory Farnum. Em 19 de março de 2010, Linus Torvalds fundiu o cliente Ceph no kernel Linux versão 2.6.34 que foi lançado em 16 de maio de 2010. Em 2012, Weil criou o Inktank Storage para serviços profissionais e suporte para Ceph.

Em abril de 2014, a Red Hat comprou o Inktank, trazendo a maior parte do desenvolvimento do Ceph internamente para torná-lo uma versão de produção para empresas com suporte (linha direta) e manutenção contínua (novas versões).

Em outubro de 2015, o Conselho Consultivo da Comunidade Ceph foi formado para ajudar a comunidade a direcionar a tecnologia de armazenamento definido por software de código aberto. O conselho consultivo oficial inclui membros da comunidade Ceph de organizações globais de TI que estão comprometidas com o projeto Ceph, incluindo indivíduos da Red Hat , Intel , Canonical , CERN , Cisco , Fujitsu , SanDisk e SUSE .

Em novembro de 2018, a Linux Foundation lançou a Ceph Foundation como sucessora do Ceph Community Advisory Board. Os membros fundadores da Fundação Ceph incluem Amihan, Canonical , China Mobile , DigitalOcean , Intel , OVH , ProphetStor Data Services, Red Hat , SoftIron, SUSE , Western Digital , XSKY Data Technology e ZTE .

Em março de 2021, a SUSE descontinuou seu produto Enterprise Storage incorporando o Ceph em favor do Longhorn. e o antigo site do Enterprise Storage foi atualizado afirmando que "A SUSE redirecionou os esforços de armazenamento para atender nossos clientes estratégicos do SUSE Enterprise Storage e não está mais vendendo ativamente o SUSE Enterprise Storage."

Histórico de lançamento

Histórico de lançamento
Nome Liberar Primeiro lançamento Fim de
vida
Milestones
Argonauta Versão antiga, não mais mantida: 0,48 3 de julho de 2012 Primeira grande versão "estável"
Bobtail Versão antiga, não mais mantida: 0,56 1 ° de janeiro de 2013
Choco Versão antiga, não mais mantida: 0,61 7 de maio de 2013 ceph-deploy é estável
Bolinho de massa Versão antiga, não mais mantida: 0,67 14 de agosto de 2013 Maio de 2015 namespace, região, monitoramento da API REST
Imperador Versão antiga, não mais mantida: 0,72 9 de novembro de 2013 Maio de 2014 replicação de multi-datacenter para o radosgw
Vaga-lume Versão antiga, não mais mantida: 0,80 7 de maio de 2014 Abril de 2016 codificação de eliminação, classificação de cache, afinidade primária, back-end OSD de chave / valor (experimental), radosgw autônomo (experimental)
Gigante Versão antiga, não mais mantida: 0,87 29 de outubro de 2014 Abril de 2015
Martelo Versão antiga, não mais mantida: 0,94 7 de abril de 2015 Agosto de 2017
Infernalis Versão antiga, não mais mantida: 9.2.0 6 de novembro de 2015 Abril de 2016
Jóia Versão antiga, não mais mantida: 10.2.0 21 de abril de 2016 01/06/2018 CephFS estável, backend experimental RADOS chamado BlueStore
Kraken Versão antiga, não mais mantida: 11.2.0 20 de janeiro de 2017 01/08/2017 BlueStore é estável
Luminoso Versão antiga, não mais mantida: 12.2.0 29 de agosto de 2017 01-03-2020
Mímico Versão antiga, não mais mantida: 13.2.0 1 ° de junho de 2018 22-07-2020 os instantâneos são estáveis, o Beast está estável
Nautilus Versão mais antiga, mas ainda mantida: 14.2.0 19 de março de 2019 2021-06-01
Polvo Versão mais antiga, mas ainda mantida: 15.2.0 23 de março de 2020 2022-06-01
Pacífico Versão estável atual: 16.2.0 31 de março de 2021 2023-06-01
Lenda:
Versão antiga
Versão mais antiga, ainda mantida
Última versão
Versão de visualização mais recente
Lançamento futuro

Etimologia

O nome "Ceph" é uma abreviatura de " cefalópode ", uma classe de moluscos que inclui o polvo. O nome (enfatizado pelo logotipo) sugere o comportamento altamente paralelo de um polvo e foi escolhido para associar o sistema de arquivos a "Sammy", a mascote lesma banana da UCSC . Tanto os cefalópodes quanto as lesmas da banana são moluscos.

Kubernetes

O Rook permite a implantação do Ceph em um ambiente Kubernetes para fornecer armazenamento persistente.

Os contêineres do Kubernetes são sem estado como um princípio básico, mas os dados ainda devem ser gerenciados, protegidos e disponibilizados para outros serviços. Sem estado significa que o contêiner está sendo executado de forma isolada, sem nenhum conhecimento de transações anteriores, o que facilita a substituição, exclusão ou distribuição do contêiner. No entanto, também significa que, sem armazenamento persistente, os dados serão perdidos em certos eventos do ciclo de vida, como reinicialização ou exclusão.

Rook é uma ferramenta de orquestração de armazenamento que fornece uma solução nativa de nuvem e de código aberto para um conjunto diversificado de provedores de armazenamento. O Rook usa o poder do Kubernetes para transformar um sistema de armazenamento em serviços de autogerenciamento que fornecem uma experiência perfeita para salvar aplicativos Kubernetes ou dados de implantação.

Ceph é uma solução de armazenamento distribuído altamente escalonável que oferece armazenamento de objetos, blocos e arquivos. Os clusters Ceph são projetados para serem executados em qualquer hardware usando o algoritmo CRUSH (Replicação controlada sob Hashing escalonável) e oferece armazenamento persistente para contêineres Kubernetes.

Um benefício principal dessa implantação é que ela fornece a solução de armazenamento altamente escalonável do Ceph sem a necessidade de configuração manual usando a linha de comando do Ceph, porque o Rook lida com isso automaticamente. Os aplicativos Kubernetes podem então montar dispositivos de bloco e sistemas de arquivos do Rook para preservar e monitorar os dados do aplicativo.

Veja também

Referências

Leitura adicional

links externos