Ceph (software) - Ceph (software)
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
|
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 |
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
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
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
Nome | Liberar | Primeiro lançamento | Fim de vida |
Milestones |
---|---|---|---|---|
Argonauta | 0,48 | 3 de julho de 2012 | Primeira grande versão "estável" | |
Bobtail | 0,56 | 1 ° de janeiro de 2013 | ||
Choco | 0,61 | 7 de maio de 2013 | ceph-deploy é estável | |
Bolinho de massa | 0,67 | 14 de agosto de 2013 | Maio de 2015 | namespace, região, monitoramento da API REST |
Imperador | 0,72 | 9 de novembro de 2013 | Maio de 2014 | replicação de multi-datacenter para o radosgw |
Vaga-lume | 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 | 0,87 | 29 de outubro de 2014 | Abril de 2015 | |
Martelo | 0,94 | 7 de abril de 2015 | Agosto de 2017 | |
Infernalis | 9.2.0 | 6 de novembro de 2015 | Abril de 2016 | |
Jóia | 10.2.0 | 21 de abril de 2016 | 01/06/2018 | CephFS estável, backend experimental RADOS chamado BlueStore |
Kraken | 11.2.0 | 20 de janeiro de 2017 | 01/08/2017 | BlueStore é estável |
Luminoso | 12.2.0 | 29 de agosto de 2017 | 01-03-2020 | |
Mímico | 13.2.0 | 1 ° de junho de 2018 | 22-07-2020 | os instantâneos são estáveis, o Beast está estável |
Nautilus | 14.2.0 | 19 de março de 2019 | 2021-06-01 | |
Polvo | 15.2.0 | 23 de março de 2020 | 2022-06-01 | |
Pacífico | 16.2.0 | 31 de março de 2021 | 2023-06-01 |
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
- BeeGFS
- Sistema de arquivos distribuído
- Sistemas de arquivos tolerantes a falhas paralelos distribuídos
- Sistema de arquivos Gfarm
- GlusterFS
- IBM General Parallel File System (GPFS)
- Kubernetes
- LizardFS
- Brilho
- MapR FS
- Moose File System
- OrangeFS
- Sistema de Arquivo Virtual Paralelo
- Sistema de Arquivos Quantcast
- RozoFS
- Armazenamento definido por software
- XtreemFS
- ZFS
- Comparação de sistemas de arquivos distribuídos
Referências
Leitura adicional
- M. Tim Jones (04/05/2010). "Ceph: um sistema de arquivos distribuído em escala de petabytes do Linux" . developerWorks> Linux> Biblioteca técnica . Página visitada em 06-05-2010 .
- Jeffrey B. Layton (20/04/2010). "Ceph: a criatura do sistema de arquivos distribuído da lagoa do objeto" . Linux Magazine . Página visitada em 2010-04-24 .
- Carlos Maltzahn; Esteban Molina-Estolano; Amandeep Khurana; Alex J. Nelson; Scott A. Brandt; Sage Weil (agosto de 2010). "Ceph como uma alternativa escalonável ao Hadoop Distributed File System" . ; login: . 35 (4) . Página visitada em 2012-03-09 .
- Martin Loschwitz (24 de abril de 2012). "O repositório de objetos RADOS e o sistema de arquivos Ceph" . Revista HPC ADMIN . Página visitada em 2012-04-25 .