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
nfsouext4, 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 consistencyquando você tem garantia de sempre receber a versão mais recente de um arquivo oueventual consistencyquando 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.
| 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.
| 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 |
|
| 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. |
| 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. |
| 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 |
|
| 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. |
| 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.
| 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. |
| 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 |
|
| 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. |
| 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. |
| 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.