Existe uma versão anterior deste tutorial, escrita por Justin Ellingwood.

Introdução

Ao armazenar dados críticos, ter um ponto único de falha é bastante arriscado. Embora muitos bancos de dados e outros softwares permitam que você distribua dados no contexto de um único aplicativo, outros sistemas podem operar no nível de sistema de arquivos para garantir que os dados sejam copiados para outro local sempre que eles são escritos para o disco.

GlusterFS é um sistema de arquivos de armazenamento conectado à rede que lhe permite agrupar recursos de armazenamento de várias máquinas. Desta forma, isso permite que você trate vários dispositivos de armazenamento que são distribuídos entre vários computadores como uma unidade única e mais poderosa. O GlusterFS também lhe dá a liberdade de criar diferentes tipos de configurações de armazenamento, muitas das quais são similares em funcionamento aos níveis RAID. Por exemplo, você pode distribuir os dados em diferentes nós no cluster, ou implementar redundância para uma melhor disponibilidade de dados.

Objetivos

Neste guia, você irá criar uma matriz de armazenamento em clusters redundante, também conhecida como um sistema de arquivos distribuído ou, como ela está referida na documentação do GlusterFS, uma Trusted Storage Pool (pool de armazenamento confiável). Isso irá proporcionar funcionalidades semelhantes a uma configuração RAID espelhada pela rede: cada servidor independente irá conter sua própria cópia dos dados, permitindo que suas aplicações acessem qualquer cópia, ajudando assim a distribuir sua carga de leitura.

Esse cluster do GlusterFS redundante consistirá em dois servidores do Ubuntu 20.04. Isso irá agir de maneira semelhante a um servidor NAS com RAID espelhado. Então, você irá acessar o cluster a partir de um terceiro servidor Ubuntu 20.04 configurado para funcionar como um cliente do GlusterFS.

Uma nota sobre como executar o GlusterFS com segurança

Quando você adiciona dados a um volume do GlusterFS, esses dados são sincronizados para todas as máquinas na pool de armazenamento onde o volume está hospedado. Este tráfego entre nós não é criptografado por padrão, o que significa que há um risco dele ser interceptado por agentes maliciosos.

Por isso, se você vai usar o GlusterFS na produção, é recomendado que você execute-o em uma rede isolada. Por exemplo, você pode configurá-lo para executar em uma *Virtual Private Cloud *(VPC) ou com um VPN em funcionamento entre cada um dos nós.

Se você planeja implantar o GlusterFS na DigitalOcean, você pode configurá-lo em uma rede isolada adicionando sua infraestrutura de servidor a uma Virtual Private Network da Digital Ocean. Para obter detalhes sobre como configurar isso, consulte nossa documentação de produtos VPC .

Pré-requisitos

Para seguir este tutorial, você precisará de três servidores executando o Ubuntu 20.04. Cada servidor deve ter um usuário não-root com privilégios administrativos e um firewall configurado com o UFW. Para configurar isso, siga nosso guia de configuração inicial de servidor para o Ubuntu 20.04.

Note : Como mencionado na seção de Objetivos, este tutorial irá guiá-lo para configurar dois dos seus servidores Ubuntu para que atuem como servidores em sua pool de armazenamento e o servidor restante para agir como um cliente que você usará para acessar esses nós.

Para maior clareza, este tutorial irá se referir a essas máquinas com os seguintes nomes de host:

HostnamePapel na pool de armazenamentogluster0 Servidorgluster1 Servidorgluster2 Cliente

Os comandos que devem ser executados em gluster0  ou gluster1  terão fundo em azul e vermelho, respectivamente:

Os comandos que só devem ser executados no cliente (gluster2 ) terão um fundo verde:

Os comandos que podem ou devem ser executados em mais de uma máquina terão um fundo cinza:

Passo 1 — Configurando a resolução de DNS em cada máquina

Configurar algum tipo de resolução de nome de host entre cada computador pode ajudar na gestão da sua pool de armazenamento do Gluster. Desta forma, sempre que precisar fazer referência a uma de suas máquinas em um comando gluster mais tarde neste tutorial, faça isso com um nome de domínio de fácil memorização ou um apelido em vez dos respectivos endereços IP.

Se você não tiver um nome de domínio sobrando ou se você quiser configurar algo rapidamente, você pode editar o arquivo /etc/hosts em cada computador como alternativa. Este é um arquivo especial em máquinas Linux, onde é possível configurar o sistema de forma estática para atribuir todos os nomes de host contidos no arquivo para endereços IP estáticos.

Note : Se você quiser configurar seus servidores para se autenticarem com um domínio que você possua, será necessário primeiro obter um nome de domínio de registrador de domínios — como o Namecheap  ou o Enom  — e configurar os registros de DNS apropriados.

Depois de configurar um registro A para cada servidor, você pode seguir em frente para o Passo 2. Conforme for seguindo este guia, certifique-se de substituir o glusterN.example.com  e o gluster****N  pelo nome de domínio que direciona para o servidor respectivo referenciado no comando de exemplo.

Se você obteve sua infraestrutura da DigitalOcean, é possível adicionar seu nome de domínio à DigitalOcean  e, em seguida, configurar um registro A único para cada um de seus servidores .

Usando seu editor de texto preferido, abra este arquivo com privilégios de root em cada uma das suas máquinas. Aqui, usaremos o nano:

sudo nano /etc/hosts

Por padrão, o arquivo vai ficar parecido com isto aqui,com os comentários removidos:

/etc/hosts

127.0.1.1 hostname hostname
127.0.0.1 localhost

::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Em um dos seus servidores Ubuntu, adicione o endereço IP de cada servidor seguido dos nomes que você deseja utilizar para fazer referência a eles em comandos abaixo da definição local de host.

No exemplo a seguir, cada servidor recebe um nome de host longo que segue o padrão de gluster``N``.example.com e um menor que segue o padrão de gluster``N. Você pode alterar as partes gluster``N``.example.com e gluster``N de cada linha para qualquer nome — ou nomes separados por espaços únicos — que você quiser usar para acessar cada servidor. Observe, porém, que este tutorial irá usar estes exemplos a todo momento:

Nota : Se seus servidores fazem parte de uma pool de infraestrutura Virtual Private Cloud , você deve usar o endereço IP privado de cada servidor no arquivo /etc/hosts  em vez de seus IP públicos.

/etc/hosts

. . .
127.0.0.1       localhost
first_ip_address gluster0.example.com gluster0
second_ip_address gluster1.example.com gluster1
third_ip_address gluster2.example.com gluster2

. . .

Quando você terminar de adicionar estas novas linhas ao arquivo /etc/hosts de uma máquina, copie e adicione-as aos arquivos /etc/hosts em suas outras máquinas. Cada arquivo /etc/hosts deve conter as mesmas linhas, ligando os endereços IP dos seus servidores aos nomes que você selecionou.

Salve e feche cada arquivo quando você terminar. Se usou o nano, faça isso pressionando as teclas CTRL+XY e depois ENTER.

Agora que você configurou a resolução de nomes de host entre cada um dos seus servidores, será mais fácil executar comandos mais tarde enquanto configura uma pool de armazenamento e um volume. Em seguida, você vai percorrer outro passo que deve ser concluído em cada um dos seus servidores. Isto é, você irá adicionar o arquivo de pacotes pessoais (PPA) oficial do projeto Gluster a cada um dos seus três servidores Ubuntu para garantir que você possa instalar a versão mais recente do GlusterFS.

Passo 2 — Configurando as fontes de software em cada máquina

Embora os repositórios APT padrão do Ubuntu 20.04 contém os pacotes do GlusterFS, no momento em que este tutorial está sendo escrito, eles não são as versões mais recentes. Uma maneira de instalar a última versão estável do GlusterFS (versão  7.6 no momento em que este tutorial está sendo escrito) é adicionando o PPA oficial do projeto Gluster a cada um dos seus três servidores Ubuntu.

Adicione o PPA para os pacotes do GlusterFS executando o seguinte comando em cada servidor:

sudo add-apt-repository ppa:gluster/glusterfs-7

Pressione ENTER quando solicitado para confirmar se você realmente deseja adicionar o PPA.

Depois de adicionar o PPA, atualize o índice de pacotes local de cada servidor. Isso fará com que cada servidor reconheça os novos pacotes disponíveis:

sudo apt update

Depois de adicionar o PPA oficial do projeto Gluster a cada servidor e atualizar o índice de pacotes local, você está pronto para instalar os pacotes do GlusterFS necessários. No entanto, como duas de suas três máquinas irão atuar como servidores Gluster e a outra irá agir como cliente, há dois procedimentos de instalação e configuração separados. Primeiro, você irá instalar e configurar os componentes do servidor.

#ubuntu

Como criar uma pool de armazenamento com redundância usando o GlusterFS no Ubuntu 20.04
1.15 GEEK