Implementar um Servidor de Cluster NFS no OCI Usando o Armazenamento de Objetos como um Repositório
Quando temos um volume ilimitado de dados críticos não estruturados acessados com frequência após seu início, mas raramente posteriormente, a melhor opção é o Oracle Cloud Infrastructure Object Storage.
No entanto, como alguns aplicativos não podem usar o Object Storage nativamente, precisamos usar soluções de terceiros. Para essa arquitetura, usaremos:
- Rclone para leitura e gravação no Object Storage.
- Corosync e Pacemaker para criar ao cluster (stand-by ativo) e garantir a alta disponibilidade exigida por aplicativos críticos (por exemplo, Rclone, IP secundário, serviço NFS, ponto de montagem etc.).
- IP secundário para montar o sistema de arquivos de rede (NFS) compartilhado pelo cluster e para failover automático entre os nós do cluster.
Esta arquitetura de referência descreve uma configuração inspirada no cliente, combinando alta disponibilidade e flexibilidade.
Arquitetura
O diagrama a seguir ilustra essa arquitetura de referência.
Nesse cenário, para agilizar o processo de switchover, mantivemos: os serviços Rclone e NFS em execução; Rclone no modelo de montagem; o serviço NFS que compartilha a pasta que foi montada pelo Rclone; e o IP secundário conectado a apenas um dos nós.
A arquitetura tem os seguintes componentes:
oci-rclone-arquitetura-diagrama-oracle.zip
O processo de switchover entre nós pode ser visto em OTube.
APP Server => inst-i6hjc-rclone-ha - Client Server
/mnt/nfs_rclone_v2 = Mount point client side
NFS - Floating IP = 172.10.0.100
RCLONE => nfs-rclone = Cluster Node1 = IP = 172.10.0.287
RCLONE STANDBY => inst-e2fc3-rclone-ha = Cluster Node 2 - IP = 172.10.0.121
NFS - SHARE
/mnt/nfs_rclone = From Object Storage
Você pode usar o backup entre regiões para criar uma recuperação de desastre; se você usar uma variável na configuração, a configuração Rclone será estática.
oci-nfs-cluster-arquitetura-diagrama-oracle.zip
Para recuperação de desastres:
- Use a replicação do Object Storage para recuperação de desastres, criando uma réplica dos dados em outras regiões. Consulte Explorar Mais: Usando Replicação.
- Crie uma solução de recuperação de desastres para instâncias de computação. Consulte Explorar Mais: Replicando um Volume.
Esta arquitetura inclui os seguintes componentes:
- Região
Uma região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, denominada domínios de disponibilidade. As regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou até mesmo continentes).
- Domínios de disponibilidade
Os domínios de disponibilidade são data centers independentes e independentes dentro de uma região. Os recursos físicos em cada domínio de disponibilidade são isolados dos recursos dos outros domínios de disponibilidade, o que oferece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura como energia ou resfriamento ou a rede interna do domínio de disponibilidade. Portanto, provavelmente uma falha em um domínio de disponibilidade não afetará os outros domínios de disponibilidade da região.
- Domínio de falha
Um domínio de falha é um agrupamento de hardware e infraestrutura dentro de um domínio de disponibilidade. Cada domínio de disponibilidade tem três domínios de falha com potência e hardware independentes. Quando você distribui recursos entre diversos domínios de falha, seus aplicativos podem tolerar falhas físicas no servidor, na manutenção do sistema e na alimentação dentro de um domínio de falha.
- Rede virtual na nuvem (VCN) e sub-redes
Uma VCN é uma rede personalizável e definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes tradicionais de data center, as VCNs oferecem total controle sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você pode alterar após criar a VCN. Você pode segmentar uma VCN em sub-redes, que podem ter escopo em uma região ou em um domínio de disponibilidade. Cada sub-rede consiste em um intervalo ininterrupto de endereços que não se sobrepõem às outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.
- Object Storage
O armazenamento de objetos oferece acesso rápido a grandes quantidades de dados estruturados e não estruturados de qualquer tipo de conteúdo, incluindo backups de bancos de dados, dados analíticos e conteúdo avançado, como imagens e vídeos. Você pode armazenar de forma segura e depois recuperar dados diretamente da internet ou de dentro da plataforma da nuvem. Você pode dimensionar o armazenamento de forma integrada sem prejudicar o desempenho ou a confiabilidade do serviço. Use o armazenamento padrão para armazenamento de acesso frequente que você precisa acessar de forma rápida, imediata e com frequência. Use o armazenamento de arquivos compactados para armazenamento "frio" que você mantém por longos períodos de tempo e raramente acessa.
- Rclone
O Rclone é um programa de linha de comando de código-fonte aberto para gerenciar arquivos no armazenamento na nuvem, usado aqui para entregar o Object Storage via NFS.
- Corosync e Pacemaker
Corosync e Pacemaker são serviços de código-fonte aberto adequados para clusters pequenos e grandes e responsáveis por fornecer alta disponibilidade nos aplicativos.
- CLI do OCI
A CLI do OCI é responsável pela integração do recurso Linux Corosync/Pacemaker VirtualIP IPaddr2 com o IP Secundário da vNIC do Oracle Cloud Infrastructure.
- Oracle Linux
As instâncias do Oracle Linux 8.6 são usadas para hospedar esse ambiente. Outras distros do Linux também podem ser usadas, desde que suportem Linux Rclone/Corosync/Pacemaker.
- IP Secundário
Um IP privado secundário pode ser adicionado a uma instância após seu início. Você pode adicioná-lo à VNIC principal ou secundária na instância. Esse IP secundário flutuará entre os nós; se um nó estiver inativo, o IP flutuante passará para outro. Corosync e Pacemaker será responsável por esse processo de alteração.
Recomendações
- Rclone
Use o mesmo nome de diretório nos dois nós do cluster. Preste atenção à configuração de exportação NFS, de modo que não haja problemas ao usar o sistema de arquivos Rclone. Se você usar a interface gráfica para montar o diretório, poderá monitorá-lo por meio da interface gráfica.
Se você não configurar os serviços Rclone no cluster Linux, recomendamos usar um script shell no crontab para iniciar os serviços durante a inicialização do servidor
- VCN
Quando você cria uma VCN, determina o número de blocos CIDR necessários e o tamanho de cada bloco com base no número de recursos que planeja anexar às sub-redes na VCN. Use blocos CIDR que estão dentro do espaço de endereço IP privado padrão.
Selecione blocos CIDR que não se sobrepõem a nenhuma outra rede (no Oracle Cloud Infrastructure, no seu data center local ou em outro provedor de nuvem) para a qual você pretende configurar conexões privadas.
Depois de criar uma VCN, você poderá alterar, adicionar e remover seus blocos CIDR.
Ao projetar as sub-redes, considere seu fluxo de tráfego e os requisitos de segurança. Anexe todos os recursos dentro de uma camada ou atribuição específica à mesma sub-rede, que pode servir como limite de segurança.
- Formas de computação
Essa arquitetura usa uma imagem do SO Oracle Linux com configuração flex E3 ou E4 com recursos mínimos para hospedar hosts de computação em nós de cluster. Se seu aplicativo precisar de mais rede, memória ou núcleos de throughput, você poderá escolher outra configuração.
- Cluster do Oracle Linux
Depois que as instâncias do Oracle Linux tiverem sido provisionadas, você precisará configurar a CLI conforme explicado na documentação pública e instalar e configurar o cluster do Corosync/Pacemaker juntamente com seus requisitos (stonith, quorum, recursos, restrições etc.). Depois de configurar seu cluster do Corosync/Pacemaker e a CLI, você precisará configurar seu recurso VirtualIP. Neste link, há um rápido exemplo de como configurar um recurso VirtualIP no Corosync/Pacemaker usando a linha de comando. O mesmo processo também pode ser feito por meio da interface do usuário do navegador da Web.
- Object Storage
Use o Gerenciamento do Ciclo de Vida de Objetos (consulte Explorar Mais) para alterar o tipo e usar as regras de retenção para preservar dados (consulte Explorar Mais) para alterar e gerenciar os dados no bucket após o upload dos arquivos.
- Corosync e Pacemaker
Use o maior número possível de variáveis ao integrar o Linux Corosync e Pacemaker com a CLI do OCI, para manter o script estático e independente do servidor em execução.
Explorar Mais
Saiba mais sobre recuperação de desastres.
Revise estes recursos adicionais:
- OCI
- Usando a Replicação
- Replicando um Volume
- Usando o Gerenciamento de Ciclo de Vida de Objetos
- Usando Regras de Retenção para preservar dados
- Estrutura de melhores práticas do Oracle Cloud Infrastructure
- Visão Geral do Object Storage
- Configurando o Clustering de Alta Disponibilidade
- Failover Automático de IP Virtual no Oracle Cloud Infrastructure Parece Rígido, Mas não é
- restaurando um backup para um novo volume
- Outras