Visão geral do armazenamento do Red Hat OpenShift on IBM Cloud

Nuvem privada virtual Infraestrutura clássica Satellite

Revise as seguintes seções para obter uma visão geral das opções de armazenamento disponíveis para seu cluster.

Antes de decidir qual tipo de armazenamento é a solução adequada para seus clusters do Red Hat® OpenShift® on IBM Cloud®, é preciso entender o provedor de infraestrutura IBM Cloud, os requisitos do seu aplicativo, o tipo de dados que você deseja armazenar e com que frequência pretende acessar esses dados.

Decida se os seus dados devem ser armazenados permanentemente

Armazenamento persistente: os dados armazenados no armazenamento persistente persistem mesmo quando o contêiner, o nó do trabalhador ou o cluster é removido. Utilize armazenamento persistente em aplicativos com estado, dados essenciais ao negócio ou dados que devam estar disponíveis devido a exigências legais, como um período de retenção definido. Armazenamento persistente também é uma boa opção para auditoria.

Armazenamento não persistente: seus dados podem ser removidos quando o contêiner, o nó do trabalhador ou o cluster é removido. O armazenamento não persistente é geralmente usado para registrar informações, como logs do sistema ou logs de contêiner, teste de desenvolvimento ou quando você deseja acessar dados do sistema de arquivos do host.

Se seus dados devem ser persistidos, analise se o app requer um tipo específico de armazenamento. Ao usar um aplicativo já existente, é possível que ele tenha sido projetado para armazenar dados de uma das seguintes maneiras.

Em um sistema de arquivos: os dados podem ser armazenados como um arquivo em um diretório. Por exemplo, você poderia armazenar esse arquivo em seu disco rígido local. Alguns apps requerem que os dados sejam armazenados em um sistema de arquivos específico, como nfs ou ext4, para otimizar o armazenamento de dados e atingir os objetivos de desempenho.

Em um banco de dados: os dados devem ser armazenados em um banco de dados que segue um esquema específico. Alguns apps vêm com uma interface de banco de dados que pode ser usada para armazenar dados. Por exemplo, o WordPress é otimizado para armazenar dados em um banco de dados MySQL. Nesses casos, o tipo de armazenamento é selecionado para você.

Determine o tipo de dados que você deseja armazenar

Dados estruturados: dados que podem ser armazenados em um banco de dados relacional no qual você tem uma tabela com colunas e linhas. Os dados em tabelas podem ser conectados usando chaves e geralmente são fáceis de acessar devido ao modelo de dados predefinido. Exemplos são números de telefone, números de conta, números de seguridade social ou códigos de endereçamento postal.

Dados semiestruturados: dados que não se ajustam a um banco de dados relacional, mas que vêm com algumas propriedades organizacionais que podem ser usadas para ler e analisar esses dados mais facilmente. Exemplos são arquivos de linguagem de marcações, como CSV, XML ou JSON.

Dados não estruturados: dados que não seguem um padrão organizacional e que são tão complexos que não é possível armazená-los em um banco de dados relacional com modelos de dados predefinidos. Para acessar esses dados, você precisa de ferramentas e software avançados. Exemplos incluem mensagens de e-mail, vídeos, fotos, arquivos de áudio, apresentações, dados de redes sociais ou páginas da web.

Se você tiver dados estruturados e não estruturados, tente armazenar cada tipo de dados separadamente em uma solução de armazenamento que seja projetada para esse tipo de dados. Usar uma solução de armazenamento apropriada para o seu tipo de dados facilita o acesso aos seus dados e fornece os benefícios de desempenho, escalabilidade, durabilidade e consistência.

Analise como você deseja acessar os seus dados. As soluções de armazenamento são geralmente projetadas e otimizadas para suportar operações de leitura ou gravação.
Somente leitura: você não deseja gravar ou mudar os dados. Seus dados são somente leitura.
Leitura e gravação: você deseja ler, gravar e mudar seus dados. Para dados que são lidos e gravados, é importante entender se as operações são de leitura pesada, de gravação pesada ou balanceada.
Determine a frequência em que seus dados são acessados.
Dados quentes: dados que são acessados frequentemente. Casos de uso comuns são apps da web ou móveis.
Dados frescos ou mornos: dados que são acessados infrequentemente, como uma vez por mês ou menos. Os casos de uso comuns são archives, retenção de dados de curto prazo ou recuperação de desastre.
Dados frios: dados que são raramente acessados, se forem. Os casos de uso comuns são archives, backups de longo prazo, dados históricos.
Dados congelados: dados que não são acessados e que você precisa manter devido a motivos jurídicos.

Se não for possível prever a frequência ou se a frequência não seguir um padrão estrito, determine se as cargas de trabalho têm leitura pesada, gravação pesada ou são balanceadas. Em seguida, consulte a opção de armazenamento que se ajusta à sua carga de trabalho e investigue qual camada de armazenamento fornece a flexibilidade necessária. Por exemplo, o IBM Cloud Object Storage fornece uma classe de armazenamento flex que considera como os dados frequentes são acessados em um mês e leva em conta essa medida para otimizar seu faturamento mensal.

Investigue se seus dados devem ser compartilhados entre diversas instâncias de app, zonas ou regiões.
Acessar entre pods: ao usar volumes persistentes do Kubernetes para acessar seu armazenamento, é possível determinar o número de pods que podem montar o volume ao mesmo tempo. Algumas soluções de armazenamento podem ser acessadas por apenas um pod de cada vez. Com outras soluções de armazenamento, é possível compartilhar o volume entre diversos pods.
Acessar entre zonas e regiões: você pode requerer que os seus dados estejam acessíveis entre zonas ou regiões. Algumas soluções de armazenamento, como File Storage and Block Storage, são específicas de data center e não podem ser compartilhadas entre zonas em uma configuração de cluster multizona.

Para tornar seus dados acessíveis entre zonas ou regiões, certifique-se de consultar seu departamento jurídico para verificar se os dados podem ser armazenados em diversas zonas ou em um país diferente.

Entenda outras características de armazenamento que impactam sua opção.
Consistência: a garantia de que uma operação de leitura retorna a versão mais recente de um arquivo. As soluções de armazenamento podem fornecer strong consistency quando você tem garantia de sempre receber a versão mais recente de um arquivo ou eventual consistency quando a operação de leitura pode não retornar a versão mais recente. Frequentemente, você localiza uma consistência eventual em sistemas distribuídos geograficamente nos quais uma operação de gravação deve primeiro ser replicada em todas as instâncias.
Desempenho: o tempo que leva para concluir uma operação de leitura ou gravação.
Durabilidade: a garantia de que uma operação de gravação que está confirmada em seu armazenamento mantenha-se permanentemente e não seja corrompida ou perdida, mesmo se gigabytes ou terabytes de dados forem gravados em seu armazenamento ao mesmo tempo.
Resiliência: a capacidade de se recuperar de uma indisponibilidade e continuar as operações, mesmo se um componente de hardware ou software falhou. Por exemplo, seu armazenamento físico experimenta uma indisponibilidade de energia, uma indisponibilidade de rede ou é destruído durante um desastre natural.
Disponibilidade: a capacidade de fornecer acesso a seus dados, mesmo que um data center ou uma região esteja indisponível. A disponibilidade para seus dados é geralmente obtida pela inclusão de redundância e configuração de mecanismos de failover.
Escalabilidade: a capacidade de ampliar a capacidade e customizar o desempenho com base em suas necessidades.
Criptografia: o mascaramento de dados para evitar visibilidade quando os dados são acessados por um usuário não autorizado.

O armazenamento local secundário deve ser adicionado no momento da criação do pool de trabalho. A adição manual de armazenamento a partir do nível da infraestrutura após a criação de um pool de trabalho não é suportada e não resulta em armazenamento efêmero adicional no cluster.

Opções de armazenamento não persistente

Será possível usar as opções de armazenamento não persistente se os seus dados não precisarem ser armazenados persistentemente ou se você desejar fazer teste de unidade de seus componentes de app. A imagem a seguir mostra as opções de armazenamento de dados não persistentes disponíveis no Red Hat OpenShift on IBM Cloud.

Opções de armazenamento não persistente
Características Dentro do contêiner No disco primário ou secundário do nó do trabalhador
Com capacidade multizona Não Não
Tipos de dados Todos Todos
Capacidade Limitada ao disco secundário disponível do nó do trabalhador. Para limitar a quantidade de armazenamento secundário que é consumido pelo pod, use solicitações de recursos e limites para armazenamento efêmero. Limitado ao espaço disponível do nó do trabalhador no disco primário (hostPath) ou secundário (emptyDir). Para limitar a quantidade de armazenamento secundário que é consumida pelo pod, use solicitações de recursos e limites para armazenamento efêmero.
Padrão de acesso a dados Operações de leitura e gravação de qualquer frequência Operações de leitura e gravação de qualquer frequência
Acesso Através do sistema de arquivos local do contêiner Via Kubernetes hostPath para acesso ao armazenamento primário do nó do trabalhador. Via volume do Kubernetes emptyDir para acesso ao armazenamento secundário do nó do trabalhador.
Desempenho Alta Alto com latência inferior ao usar SSD
Resiliência Baixo Baixo
Disponibilidade Específico para o contêiner Específico para o nó do trabalhador
Escalabilidade Difícil de ampliar conforme limitado à capacidade do disco secundário do nó do trabalhador Difícil de ampliar conforme limitado à capacidade do disco primário e secundário do nó do trabalhador
Durabilidade Os dados são perdidos quando o contêiner trava ou é removido. Os dados nos volumes de hostPath ou emptyDir são perdidos quando o nó do trabalhador é excluído, o nó do trabalhador é recarregado ou atualizado, o cluster é excluído, a conta do IBM Cloud atinge um estado suspenso. Além disso, os dados em um volume de emptyDir são removidos quando o pod designado é excluído permanentemente do nó do trabalhador, o pod designado é planejado em outro nó do trabalhador.
Casos de uso comuns Cache de imagem local ou logs de contêiner Configurando um cache local de alto desempenho, acessando arquivos por meio do sistema de arquivos do nó do trabalhador ou executando testes unitários.
Casos de uso não ideais Armazenamento de dados persistentes ou compartilhando dados entre contêineres Armazenamento de dados persistentes

Clusters de zona única

Se você tiver um cluster de região com uma única zona, poderá escolher entre as seguintes opções no Red Hat OpenShift on IBM Cloud, que oferecem acesso rápido aos seus dados. Para obter maior disponibilidade, utilize uma opção de armazenamento projetada para dados distribuídos geograficamente e, se for viável para suas necessidades, crie um cluster multizona.

A imagem a seguir mostra as opções que você tem no Red Hat OpenShift on IBM Cloud para armazenar permanentemente seus dados em um único cluster.

Opções de armazenamento para clusters de zona única
Características Descrição
Guia de implementação Configurando File Storage for Classic.
Tipos de dados ideais Todos
Tipo de fornecimento suportado: Dinâmico e estático
Padrão de uso de dados Operações aleatórias de leitura/gravação, operações sequenciais de leitura/gravação ou cargas de trabalho com uso intensivo de gravação
Acesso Via sistema de arquivos no volume montado
Modos de acesso ao Kubernetes compatíveis
  • ReadWriteMany (RWX)
  • ReadOnlyMany (ROX)
  • ReadWriteOnce (RWO)
Desempenho Previsível devido ao IOPS e tamanho designados. Os IOPS são compartilhados entre os pods que acessam o volume.
Consistência Forte
Durabilidade Alta
Resiliência Medium conforme específico para um data center. O servidor de armazenamento de arquivo é agrupado pela IBM com rede redundante.
Disponibilidade Medium conforme específico para um data center.
Escalabilidade Difícil de ampliar além do data center. Não é possível mudar uma camada de armazenamento existente.
Criptografia Em repouso
Backup e recuperação Configurar capturas instantâneas periódicas, duplicar o armazenamento, fazer backup de dados para o IBM Cloud Object Storage ou copiar dados de e para pods e contêineres.
Casos de uso comuns Armazenamento de arquivo ou compartilhamento de arquivo único ou em massa por meio de um único cluster de zona.
Casos de uso não ideais Clusters multizona ou dados distribuídos geograficamente.
Opções de armazenamento para clusters de zona única
Características Descrição
Guia de implementação Configurando Block Storage for Classic.
Tipos de dados ideais Todos
Tipo de fornecimento suportado: Dinâmico e estático
Padrão de uso de dados Operações aleatórias de leitura/gravação, operações sequenciais de leitura/gravação ou cargas de trabalho com uso intensivo de gravação
Acesso Por meio do sistema de arquivos no volume montado.
Modos de acesso ao Kubernetes compatíveis ReadWriteOnce (RWO)
Desempenho Previsível devido ao IOPS e tamanho designados. Os IOPS não são compartilhados entre os pods.
Consistência Forte
Durabilidade Alta
Resiliência Medium conforme específico para um data center. O servidor de armazenamento de bloco é agrupado pela IBM com rede redundante.
Disponibilidade Medium conforme específico para um data center.
Escalabilidade Difícil de ampliar além do data center. Não é possível mudar uma camada de armazenamento existente.
Criptografia Em repouso.
Backup e recuperação Configurar capturas instantâneas periódicas, duplicar o armazenamento, fazer backup de dados para o IBM Cloud Object Storage ou copiar dados de e para pods e contêineres.
Casos de uso comuns Conjuntos stateful, armazenamento de apoio quando você executa seu próprio banco de dados ou acesso de alto desempenho para pods únicos.
Casos de uso não ideais Clusters multizona, dados distribuídos geograficamente ou compartilhamento de dados entre várias instâncias de app.
Opções de armazenamento para clusters de zona única
Característica Descrição
Guia de implementação Configurando o File Storage for VPC.
Tipos de dados ideais Todos
Tipo de fornecimento suportado: Dinâmico e estático
Padrão de uso de dados Operações aleatórias de leitura/gravação, operações sequenciais de leitura/gravação ou cargas de trabalho com uso intensivo de gravação
Acesso Via sistema de arquivos no volume montado
Modos de acesso ao Kubernetes compatíveis
  • ReadWriteMany (RWX)
  • ReadOnlyMany (ROX)
  • ReadWriteOnce (RWO) Versão 1.2 e posteriores.
Desempenho Previsível devido ao IOPS e tamanho designados. Os IOPS não são compartilhados entre os pods.
Consistência Forte
Durabilidade Alta
Resiliência Medium conforme específico para um data center. O servidor de armazenamento de arquivo é agrupado pela IBM com rede redundante.
Disponibilidade Medium conforme específico para um data center.
Escalabilidade Difícil de ampliar além do data center. Não é possível mudar uma camada de armazenamento existente.
Criptografia Nenhum
Backup e recuperação Execute kubectl cp ou copie dados para e de pod e contêineres.
Casos de uso comuns Armazenamento de arquivo ou compartilhamento de arquivo único ou em massa por meio de um único cluster de zona.
Casos de uso não ideais Clusters multizona, dados distribuídos geograficamente ou compartilhamento de dados entre várias instâncias de app.
Opções de armazenamento para clusters de zona única
Características Descrição
Guia de implementação Configurando o Block Storage for VPC.
Com capacidade multizona Não, conforme específico para um data center. Os dados não podem ser compartilhados nas zonas, a menos que você implemente sua própria replicação de dados.
Tipos de dados ideais Todos
Padrão de uso de dados Operações aleatórias de leitura/gravação, operações sequenciais de leitura/gravação ou cargas de trabalho com uso intensivo de gravação
Acesso Via sistema de arquivos no volume montado
Gravações de acesso suportadas do Kubernetes ReadWriteOnce (RWO)
Desempenho Previsível devido ao IOPS e tamanho designados. Os IOPS não são compartilhados entre os pods.
Consistência Forte
Durabilidade Alta
Resiliência Medium conforme específico para um data center. O servidor de armazenamento de bloco é agrupado pela IBM com rede redundante.
Disponibilidade Medium conforme específico para um data center.
Escalabilidade Difícil de ampliar além do data center. Não é possível mudar uma camada de armazenamento existente.
Criptografia Criptografia em trânsito com o Key Protect
Backup e recuperação Configurar capturas instantâneas periódicas, duplicar o armazenamento, fazer backup de dados para o IBM Cloud Object Storage ou copiar dados de e para pods e contêineres.
Casos de uso comuns Conjuntos stateful, armazenamento de apoio quando você executa seu próprio banco de dados ou acesso de alto desempenho para pods únicos.
Casos de uso não ideais Clusters multizona, dados distribuídos geograficamente ou compartilhamento de dados entre várias instâncias de app.

Clusters multizona

As seções a seguir mostram as opções disponíveis no Red Hat OpenShift on IBM Cloud para armazenar permanentemente seus dados em um cluster multizona e garantir alta disponibilidade para esses dados. É possível usar essas opções em um cluster de zona única, mas é possível que não obtenha os benefícios de alta disponibilidade que seu app requer.

Opções de armazenamento para clusters multizona
Característica Descrição
Guia de implementação Configurando o IBM Cloud Object Storage.
Provedores de infraestrutura suportados Clássico, VPC, Satellite
Tipos de dados ideais Dados semiestruturados e não estruturados
Padrão de uso de dados Cargas de trabalho de leitura intensiva. Operações com pouca ou nenhuma gravação.
Acesso Via sistema de arquivos no volume montado (plug-in) ou via API de REST em seu app
Modos de acesso ao Kubernetes compatíveis ReadWriteMany (RWX)
Desempenho Alto para operações de leitura. Previsível devido ao IOPS e tamanho designados ao usar máquinas não SDS.
Consistência Eventual
Durabilidade Muito alto, pois as fatias de dados são dispersas em um cluster de nós de armazenamento. Cada nó armazena somente uma parte dos dados.
Resiliência Alta, pois as fatias de dados são dispersas em três zonas ou regiões. Médio, quando configurado apenas em uma região com uma única zona.
Disponibilidade Alta devido à distribuição entre zonas ou regiões.
Escalabilidade Escalas automaticamente
Criptografia Em trânsito e em repouso
Backup e recuperação Os dados são replicados automaticamente em diversos nós para alta durabilidade. Para obter mais informações, consulte o SLA nos Termos de serviço do IBM Cloud Object Storage.
Casos de uso comuns Dados distribuídos geograficamente, big data estático, conteúdo multimídia estático, aplicativos web, backups, arquivos, conjuntos stateful.
Casos de uso não ideais Cargas de trabalho de gravação intensivas, operações de gravação aleatória, atualizações de dados incrementais ou bancos de dados de transações.
Opções de armazenamento para clusters multizona
Características Descrição
Guia de implementação Configurando o Portworx
Provedores de infraestrutura suportados Clássico, VPC, Satellite
Tipos de dados ideais Qualquer
Padrão de uso de dados Cargas de trabalho com uso intenso de leitura e gravação.
Acesso Via sistema de arquivos no volume montado (plug-in) ou via API de REST em seu app
Modos de acesso ao Kubernetes compatíveis
  • ReadWriteMany (RWX)
  • ReadOnlyMany (ROX)
  • ReadWriteOnce (RWO)
Desempenho Alto para operações de leitura. Previsível devido ao IOPS e tamanho designados ao usar máquinas não SDS.
Consistência Forte
Durabilidade Muito alto, pois as fatias de dados são dispersas em um cluster de nós de armazenamento. Cada nó armazena somente uma parte dos dados.
Resiliência Alta, pois as fatias de dados são dispersas em três zonas ou regiões. Médio, quando configurado apenas em uma região com uma única zona.
Disponibilidade Alta devido à distribuição entre zonas ou regiões.
Escalabilidade Escalas automaticamente
Criptografia Traga sua própria chave para proteger seus dados em trânsito e em repouso com o IBM Key Protect.
Backup e recuperação Os dados são replicados automaticamente em diversos nós para alta durabilidade. Para obter mais informações, consulte o SLA nos Termos de serviço do IBM Cloud Object Storage. Use capturas instantâneas locais ou em nuvem para salvar o estado atual de um volume. Para obter mais informações, consulte “Criar e usar instantâneos locais ”.
Casos de uso comuns Clusters multizona. Dados distribuídos geograficamente. Big data estático. Conteúdo estático de multimídia
Casos de uso não ideais Cargas de trabalho de gravação intensivas, operações de gravação aleatória, atualizações de dados incrementais ou bancos de dados de transações.
Opções de armazenamento para clusters multizona
Característica Descrição
Guia de implementação Implantação do OpenShift Data Foundation.
Provedores de infraestrutura suportados Clássico, VPC, Satellite
Tipos de dados ideais Qualquer
Padrão de uso de dados Cargas de trabalho de gravação intensiva. Operação aleatória de leitura e gravação. Operações sequenciais de leitura e gravação.
Acesso Todos
Desempenho Próximo ao desempenho de bare metal para operações de leitura e gravação sequenciais ao usar máquinas SDS. Crie uma camada de armazenamento com base no desempenho da classe de armazenamento (IOPs) que você precisa.
Consistência Forte
Durabilidade Muito alto, visto que três cópias de dados são sempre mantidas.
Resiliência Alta quando configurada com replicação em três zonas. Média, quando você armazena dados em somente uma única zona.
Disponibilidade Alta quando você replica dados em três nós do trabalhador em zonas diferentes.
Escalabilidade Aumente a capacidade do volume redimensionando o volume. Para aumentar a capacidade da camada de armazenamento geral, deve-se incluir os nós do trabalhador ou o armazenamento de bloco remoto. Ambos os cenários requerem monitoramento de capacidade pelo usuário.
Criptografia Traga a sua própria chave com IBM Key Protect ou HPCS. No-trânsito e em repouso.
Backup e recuperação Use capturas instantâneas locais ou em nuvem para salvar o estado atual de um volume.
Opções de armazenamento para clusters multizona
Características Descrição
Guia de implementação Conecte uma implantação de Cloud Databases a um aplicativo IBM Cloud Kubernetes Service.
Provedores de infraestrutura suportados Clássico, VPC, Satellite
Tipos de dados ideais Depende do DBaaS
Padrão de uso de dados Cargas de trabalho com uso intensivo de leitura/gravação
Acesso Por meio da API de REST de seu app.
Gravações de acesso suportadas do Kubernetes N/D conforme acessado diretamente por meio do app.
Desempenho Alto, se implementado no mesmo data center que seu app.
Consistência Depende do DBaaS
Durabilidade Alta
Resiliência Depende do DBaaS e de sua configuração.
Disponibilidade Alta se você configurar diversas instâncias.
Escalabilidade Escalas automaticamente
Criptografia Em repouso
Backup e recuperação Depende do DBaaS
Casos de uso comuns Clusters multizona, bancos de dados relacionais e não relacionais ou dados distribuídos geograficamente.
Casos de uso não ideais App projetado para gravar em um sistema de arquivos.

Próximas etapas

Para continuar o processo de planejamento, documentar a arquitetura do seu ambiente.