Unidades compartilhadas de alta disponibilidade usando o Vultr Block Storage e GlusterFS

O GlusterFS é um sistema de arquivos conectados à rede que permite compartilhar duas unidades em vários dispositivos da rede. Esse sistema de arquivos é perfeito para a oferta de armazenamento em bloco do Vultr, pois você pode compartilhar uma unidade pela rede, o que não é possível imediatamente.

Em termos de recursos, extensibilidade e confiabilidade, o GlusterFS provou ser um dos sistemas de arquivos mais sofisticados e estáveis ​​disponíveis.

Quando são feitas alterações na unidade em um servidor, elas serão automaticamente replicadas para o outro servidor em tempo real. Para conseguir isso e seguir este guia, você precisará de:

  • Duas instâncias da nuvem Vultr, executando preferencialmente o mesmo sistema operacional.
  • Duas unidades de armazenamento em bloco do mesmo tamanho.

Depois de encomendar essas duas unidades de armazenamento em bloco, você deve conectá-las à VM 1 e VM 2. Como usaremos as duas unidades de armazenamento em bloco para o mesmo sistema de arquivos, dividir o tamanho total de ambas as unidades por dois fornecerá a quantidade utilizável de GB. Por exemplo, se você tiver duas unidades de 100 GB, 100 GB serão utilizáveis ​​(100 * 2/2).

Além disso, as duas VMs precisam estar no mesmo local para estarem na mesma rede privada. Estaremos nos conectando aos servidores usando seus endereços IP internos. Observe que limparemos os dados na unidade de armazenamento em bloco. Verifique se eles são novos e não formatados.

Neste guia, usaremos storage1e storage2, respectivamente, os endereços IP privados 10.0.99.10 e 10.0.99.11. Seus nomes de servidor e endereços IP provavelmente serão diferentes, portanto, altere-os no processo de configuração do GlusterFS.

Este guia foi escrito com o CentOS / RHEL 7 em mente. No entanto, o GlusterFS é relativamente compatível em várias distribuições Linux.

Configurando o GlusterFS

Etapa 1: alterar o /etc/hostsarquivo

Para podermos nos conectar rapidamente às instâncias respectivas, devemos adicionar nomes fáceis de lembrar ao hostsarquivo. Abra o /etc/hostsarquivo e adicione as seguintes linhas na parte inferior:

10.0.99.10 storage1
10.0.99.11 storage2

Etapa 2: adicione o disco storage1

SSH storage1e execute os seguintes comandos. Por padrão, as unidades de armazenamento em bloco conectadas são montadas como /dev/vdb. Se isso diferir no seu caso por qualquer motivo, altere-o nos comandos abaixo.

Formate o disco:

fdisk /dev/vdb

Pressione "enter" para as três perguntas a seguir (em relação ao tamanho da partição e similares, queremos usar todo o espaço disponível nas unidades de armazenamento em bloco) e escreva "w" para gravar essas alterações no disco. Depois que isso for concluído com êxito, escreva:

/sbin/mkfs.ext4 /dev/vdb1

Fomos em frente e criamos um sistema de arquivos agora, pois o Vultr não cria nenhum sistema de arquivos no armazenamento em bloco por padrão.

Em seguida, criaremos a pasta na qual armazenaremos nossos arquivos. Você pode alterar esse nome, mas não o verá muito; portanto, para eliminar a complexidade, recomendo deixá-lo em paz.

mkdir /glusterfs1

Para montar automaticamente a unidade na inicialização, abra /etc/fstabe adicione a seguinte linha na parte inferior do arquivo:

/dev/vdb1 /glusterfs1      ext4    defaults        1 2

Por fim, monte a unidade:

mount -a

A montagem permanecerá persistente durante as reinicializações; portanto, quando você reinicia o servidor, a unidade será montada automaticamente novamente.

Etapa 3: adicione o disco storage2

Agora que adicionamos e montamos o disco storage1, precisamos criar o disco storage2também. Os comandos mal diferem. Para fdisk, siga os mesmos passos acima.

fdisk /dev/sdb
/sbin/mkfs.ext4 /dev/sdb1
mkdir /glusterfs2

Edite /etc/fstabe adicione a seguinte linha:

/dev/vdb1 /glusterfs2      ext4    defaults        1 2

Assim como storage1a unidade será montada automaticamente nas reinicializações.

Monte a unidade:

mount -a

Finalmente, vamos verificar se podemos ver a partição aparecer:

df -h

Você deve ver sua unidade aparecer aqui. Caso contrário, tente seguir as etapas acima.

Etapa 4: Instalando o GlusterFS no storage1estorage2

Precisamos instalar o GlusterFS a seguir. Adicione o repositório e instale o GlusterFS:

rpm  -ivh  http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/3.7/3.7.5/CentOS/glusterfs-epel.repo
yum -y install glusterfs glusterfs-fuse glusterfs-server

É possível que você receba um erro yumporque a assinatura do repositório não está correta. Nesse caso, é seguro forçar a não verificação da assinatura GPG:

yum -y install glusterfs glusterfs-fuse glusterfs-server --nogpgcheck

Nos dois servidores, execute os seguintes comandos para iniciar o GlusterFS agora e iniciá-lo automaticamente após uma reinicialização:

systemctl enable glusterd.service
systemctl start glusterd.service

Se você usa uma versão mais antiga do CentOS, pode usar os comandos servicee chkconfig:

chkconfig glusterd on
service glusterd start

Etapa 5: Desativando o firewall storage1estorage2

Embora não seja a melhor solução em si, é uma boa ideia desativar o firewall para eliminar possíveis conflitos com portas bloqueadas. Se você não se sentir à vontade para fazer isso, sinta-se à vontade para alterar as regras ao seu gosto, mas devido à natureza do GlusterFS, recomendo desabilitar o firewall. Considerando que uma rede privada é realmente privada no Vultr (e você não precisa fazer firewall para outros clientes), você pode simplesmente bloquear todo o tráfego de entrada da Internet e restringir as conexões permitidas à rede privada. No entanto, desligar o firewall e não alterar outras configurações do sistema também seria suficiente:

systemctl stop firewalld.service
systemctl disable firewalld.service

Caso você use uma versão anterior do CentOS que não suporta systemctl, use os comandos servicee chkconfig:

service firewalld stop
chkconfig firewalld off

Caso você não use firewalld, tente desativar iptables:

service iptables stop
chkconfig iptables off

Etapa 6: adicionar servidores ao pool de armazenamento

Após desligar o firewall, podemos adicionar os dois servidores ao pool de armazenamento. Este é um pool que consiste em todo o armazenamento disponível. Execute o seguinte comando em storage1:

gluster peer probe storage2

O que esse comando faz é adicionar storage2ao seu próprio conjunto de armazenamentos. Ao executar o seguinte comando storage2, as duas unidades estarão sincronizadas:

gluster peer probe storage1

Depois de executar isso nos dois servidores, devemos verificar o status nos dois servidores:

gluster peer status

Ambos os servidores devem mostrar um estado de "Pares: 1". Um erro comum são as pessoas que esperam ver Peers: 2, mas como storage1estarão observando storage2e vice-versa, elas não observam consigo mesmas. Portanto, Peers: 1é o que precisamos.

Etapa 7: Criando uma unidade compartilhada no storage1

Agora que os dois servidores podem se conectar através do GlusterFS, vamos criar uma unidade compartilhada.

Em storage1, execute:

gluster volume create mailrep-volume replica 2  storage1:/glusterfs1/files  storage2:/glusterfs2/files force

O volume agora foi criado. No GlusterFS, você precisa "iniciar" um volume para que ele seja compartilhado ativamente entre vários dispositivos. Vamos começar:

gluster volume start mailrep-volume

Em seguida, escolha uma pasta que deve estar no volume e replicada nos dois servidores. Neste tutorial vamos usar a pasta /var/files. Naturalmente, isso pode ser o que você quiser. Crie storage1 apenas :

mkdir /var/files

Em seguida, monte-o:

mount.glusterfs storage1:/mailrep-volume /var/files/

Atualize /etc/fstabpara que a unidade seja montada automaticamente na inicialização. Adicione o seguinte:

storage1:/mailrep-volume /var/files glusterfs defaults,_netdev 0 0

Remonte a unidade:

mount -a

Etapa 8: Criando uma unidade compartilhada no storage2

Agora que criamos uma unidade compartilhada storage1, precisamos criar uma storage2também. Crie uma pasta com o mesmo local / caminho e nome:

mkdir /var/files
mount.glusterfs storage2:/mailrep-volume /var/files/

Assim como em storage1, adicione a seguinte linha a /etc/fstab:

storage2:/mailrep-volume /var/files glusterfs defaults,_netdev 0 0

Remonte a unidade:

mount -a

Etapa 9: testar o armazenamento compartilhado

Navegue até a /var/filespasta storage1e crie um arquivo:

cd /var/files
touch created_on_storage1

Em seguida, vá para o storage2servidor. Execute ls -lae você deverá ver o arquivo created_on_storage1aparecer.

Em storage2, navegue até a /var/filespasta e crie um arquivo:

cd /var/files
touch created_on_storage2

Volte para storage1e execute ls -la /var/files. Você deve ver o arquivo created_on_storage2aparecer aqui.

Etapa 10: reinicie todos os servidores (opcional)

Para verificar se sua configuração permanecerá persistente durante as reinicializações, como prática recomendada, você deve reiniciar todos os servidores. Como mencionado, você deve aguardar a inicialização de um servidor e, em seguida, reiniciar o outro para que a unidade compartilhada seja montada automaticamente.

Reinicialize storage1primeiro, aguarde até que ele ative e depois reinicie storage2. Agora faça login e execute nos dois servidores:

cd /var/files
ls -la

Agora você deve ver os dois arquivos aparecerem. Certifique-se de começar sem nenhum arquivo no volume; remova os arquivos de teste que criamos. Você pode fazer isso storage1, storage2ou ambos. As alterações serão replicadas instantaneamente:

cd /var/files
rm created_on_storage1
rm created_on_storage2

Você deve ter um volume compartilhado idêntico nos dois servidores, independentemente das ações nos dois volumes.

Agora você configurou uma instalação completa do GlusterFS com 100 GB (ou mais) de espaço utilizável. Caso você precise de mais no futuro, a configuração é facilmente escalável para adicionar mais capacidade e / ou mais servidores, caso sua carga de trabalho exija isso.

Obrigado pela leitura!


Nota importante sobre remontagem

O GlusterFS permite manter seus dados atualizados em duas unidades. No entanto, observe que, quando os dois servidores são reinicializados ao mesmo tempo , você precisará forçar a montagem das unidades nos dois servidores. Você deve forçar a montagem manualmente executando o seguinte comando:

gluster volume start mailrep-volume force

Isso ocorre porque um dos servidores atua como servidor e o outro como cliente. Embora a diferença não seja notada com muita facilidade na prática, isso significa que, quando precisar reiniciar os dois servidores, reinicie um, aguarde até que ele ative e, em seguida, inicialize o outro.

Nota importante sobre backups

Mesmo que seus dados sejam replicados em duas unidades, você deve replicá-los pelo menos três vezes. Embora seus dados estejam mais bem protegidos contra corrupção de dados e similares, observe que as alterações são instantâneas e você nunca será protegido contra erros humanos. Quando você remove todos os arquivos em uma unidade, essas alterações são replicadas imediatamente na outra unidade, o que significa que seus dados serão limpos em ambas as instâncias.

Felizmente, existem várias abordagens para evitar isso. Primeiro, recomendo ativar os backups na própria instância da nuvem. Embora esses backups não incluam dados no armazenamento em bloco, eles protegerão os dados na própria instância.

Quando se trata de fazer backup dos dados no próprio armazenamento em bloco, recomendo criar uma instância separada (por exemplo, um plano SATA) para que você possa executar um backup de um dos dois servidores conectados todas as noites, por exemplo. Dessa forma, seus dados estarão seguros em outro dispositivo separado.

Perguntas frequentes

Posso aumentar meu armazenamento em disco?

Você pode aumentar o tamanho do armazenamento em bloco no painel de controle do Vultr. Você deve redimensionar o disco dentro do sistema operacional depois, mas isso está fora do escopo deste artigo.

Posso anexar o armazenamento em bloco a mais de dois servidores?

Embora este guia tenha sido escrito para dois servidores (portanto, duas unidades de armazenamento em bloco conectadas aos dois servidores), é possível pegar este guia e usá-lo também por mais de dois servidores. Uma configuração com mais de dois servidores / unidades pode ter esta aparência para 6 servidores, por exemplo:

VM: storage1
VM: storage2
VM: storage3
VM: storage4
Block Storage: attached to storage1
Block Storage: attached to storage2
Block Storage: attached to storage3
Block Storage: attached to storage4

Dado que todas as unidades de armazenamento em bloco têm capacidade de, por exemplo, 200 GB, você receberá 200 * 4 / 4. Em outras palavras, o espaço utilizável é sempre a capacidade de uma única unidade de armazenamento em bloco. Isso ocorre porque um servidor com armazenamento em bloco conectado é tratado como "mestre" pelo GlusterFS e é replicado nos outros servidores. No entanto, a configuração foi criada para poder sobreviver sem um servidor mestre, o que a torna uma solução estável, redundante e confiável.



Leave a Comment

Configure sua própria rede privada com o OpenVPN

Configure sua própria rede privada com o OpenVPN

O Vultr oferece uma incrível conectividade de rede privada para servidores executando no mesmo local. Mas às vezes você quer dois servidores em países diferentes

Como instalar e configurar o CyberPanel no servidor CentOS 7

Como instalar e configurar o CyberPanel no servidor CentOS 7

Usando um sistema diferente? Introdução O CyberPanel é um dos primeiros painéis de controle do mercado, tanto de código aberto quanto de OpenLiteSpeed. What thi

Instale o eSpeak no CentOS 7

Instale o eSpeak no CentOS 7

Usando um sistema diferente? O ESpeak pode gerar arquivos de áudio de conversão de texto em fala (TTS). Isso pode ser útil por vários motivos, como criar seu próprio Turim

Monitore seus dispositivos usando o LibreNMS no CentOS 7

Monitore seus dispositivos usando o LibreNMS no CentOS 7

Usando um sistema diferente? O LibreNMS é um sistema de monitoramento de rede de código aberto completo. Ele usa o SNMP para obter os dados de diferentes dispositivos. Uma variedade

Como usar o Sudo no Debian, CentOS e FreeBSD

Como usar o Sudo no Debian, CentOS e FreeBSD

Usar um usuário sudo para acessar um servidor e executar comandos no nível raiz é uma prática muito comum entre o Linux e o Unix Systems Administrator. O uso de um sud

Como instalar o RabbitMQ no CentOS 7

Como instalar o RabbitMQ no CentOS 7

Usando um sistema diferente? O RabbitMQ é um intermediário de mensagens de código aberto amplamente usado, escrito na linguagem de programação Erlang. Como um middleware orientado a mensagens

Configurar o Nginx-RTMP no CentOS 7

Configurar o Nginx-RTMP no CentOS 7

Usando um sistema diferente? O RTMP é ótimo para veicular conteúdo ao vivo. Quando o RTMP é emparelhado com o FFmpeg, os fluxos podem ser convertidos em várias qualidades. Vultr i

Como instalar o Gradle no CentOS 7

Como instalar o Gradle no CentOS 7

Usando um sistema diferente? Gradle é um conjunto de ferramentas de automação de compilação de código aberto e gratuito baseado nos conceitos do Apache Ant e Apache Maven. Gradle fornece

Instale um servidor FTP com ProFTPd no CentOS 6 ou CentOS 7

Instale um servidor FTP com ProFTPd no CentOS 6 ou CentOS 7

Usando um sistema diferente? Neste guia, veremos como configurar um servidor FTP (ProFTPd) para transferir arquivos entre o seu PC e o seu servidor.

Instalando o Netdata no CentOS 7

Instalando o Netdata no CentOS 7

Usando um sistema diferente? O Netdata é uma estrela em ascensão no campo do monitoramento de métricas do sistema em tempo real. Comparado com outras ferramentas do mesmo tipo, o Netdata:

Como instalar o Apache Cassandra 3.11.x no CentOS 7

Como instalar o Apache Cassandra 3.11.x no CentOS 7

Usando um sistema diferente? O Apache Cassandra é um sistema de gerenciamento de banco de dados NoSQL gratuito e de código aberto, projetado para fornecer escalabilidade, alta

Como instalar um servidor Just Cause 2 (JC2-MP) no CentOS 7

Como instalar um servidor Just Cause 2 (JC2-MP) no CentOS 7

Neste tutorial, aprenda como configurar um servidor multiplayer Just Cause 2. Pré-requisitos Verifique se o sistema está totalmente atualizado antes de começarmos

Como instalar o servidor Starbound no CentOS 7

Como instalar o servidor Starbound no CentOS 7

Usando um sistema diferente? Neste tutorial, explicarei como configurar um servidor Starbound no CentOS 7. Pré-requisitos Você precisa ser o proprietário deste jogo

Instalando e configurando o ZNC no CentOS 7

Instalando e configurando o ZNC no CentOS 7

O ZNC é um segurança IRC gratuito e de código aberto que permanece permanentemente conectado a uma rede para que os clientes possam receber mensagens enviadas enquanto estiverem offline. Thi

Como instalar o Django no CentOS 7

Como instalar o Django no CentOS 7

O Django é uma estrutura Python popular para escrever aplicativos da web. Com o Django, você pode criar aplicativos mais rapidamente, sem reinventar a roda. Se você quiser você

Como instalar o CMS de outubro no CentOS 7

Como instalar o CMS de outubro no CentOS 7

Outubro é um sistema de gerenciamento de conteúdo de código aberto baseado no Laravel PHP Framework. Com uma interface elegante e uma arquitetura modular concisa

Como configurar a autenticação de dois fatores (2FA) para SSH no CentOS 6 usando o Google Authenticator

Como configurar a autenticação de dois fatores (2FA) para SSH no CentOS 6 usando o Google Authenticator

Após alterar a porta SSH, configurar a batida na porta e fazer outros ajustes para a segurança SSH, talvez haja mais uma maneira de protegê-lo

Como instalar o MyCLI no Linux (CentOS, Debian, Fedora e Ubuntu)

Como instalar o MyCLI no Linux (CentOS, Debian, Fedora e Ubuntu)

Introdução O MyCLI é um cliente de linha de comando para MySQL e MariaDB que permite concluir automaticamente e ajuda na sintaxe de seus comandos SQL. MyCL

Como instalar o Directus 6.4 CMS em um CentOS 7 LAMP VPS

Como instalar o Directus 6.4 CMS em um CentOS 7 LAMP VPS

Usando um sistema diferente? O Directus 6.4 CMS é um sistema de gerenciamento de conteúdo sem cabeça (CMS) poderoso e flexível, gratuito e de código aberto que fornece

Como instalar o Reader Self 3.5 RSS Reader em um CentOS 7 LAMP VPS

Como instalar o Reader Self 3.5 RSS Reader em um CentOS 7 LAMP VPS

Usando um sistema diferente? O Reader Self 3.5 é um leitor de RSS auto-hospedado, simples e flexível, gratuito e de código aberto, e uma alternativa ao Google Reader. Leitor Sel

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.