Tutorial

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

Published on July 16, 2020
Português
Como criar uma pool de armazenamento com redundância usando o GlusterFS no Ubuntu 20.04

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.

O 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:

Hostname Papel na pool de armazenamento
gluster0 Servidor
gluster1 Servidor
gluster2 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 glusterN 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:

  1. 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 glusterN.example.com e um menor que segue o padrão de glusterN. Você pode alterar as partes glusterN.example.com e glusterN 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+X, Y 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:

  1. 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:

  1. 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.

Passo 3 — Instalando componentes do servidor e criando uma pool de armazenamento confiável

Uma pool de armazenamento é qualquer quantidade de capacidade de armazenamento agregada a partir de mais de uma fonte de armazenamento. Neste passo, você irá configurar dois dos seus servidores — o gluster0 e o gluster1 — como os componentes do cluster.

Em ambos o gluster0 e o gluster1, instale o pacote de servidor do GlusterFS digitando:

  1. sudo apt install glusterfs-server

Quando solicitado, pressione Y e então ENTER para confirmar a instalação.

O processo de instalação configura automaticamente o GlusterFS para ser executado como um serviço do systemd. No entanto, ele não inicializa automaticamente o serviço ou o habilita para ser executado na inicialização do sistema.

Para iniciar o glusterd, o serviço do GlusterFS, execute o seguinte comando systemctl start em ambos o gluster0 e gluster1:

  1. sudo systemctl start glusterd.service

Então, execute o seguinte comando em ambos os servidores. Isso permitirá que o serviço seja iniciado sempre que o servidor for inicializado:

  1. sudo systemctl enable glusterd.service

Depois disso, você pode verificar o status do serviço em ambos os servidores:

  1. sudo systemctl status glusterd.service

Se o serviço estiver em operação, você receberá um resultado parecido com este:

Output
● glusterd.service - GlusterFS, a clustered file-system server Loaded: loaded (/lib/systemd/system/glusterd.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-06-02 21:32:21 UTC; 32s ago Docs: man:glusterd(8) Main PID: 14742 (glusterd) Tasks: 9 (limit: 2362) CGroup: /system.slice/glusterd.service └─14742 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO

Supondo que você tenha seguido o guia de configuração inicial do servidor pré-requisito, você terá configurado um firewall com o UFW em cada uma das suas máquinas. Por isso, é necessário abrir o firewall em cada nó antes de estabelecer comunicações entre eles e criar uma pool de armazenamento.

O daemon do Gluster usa a porta 24007, então será necessário permitir que cada nó tenha acesso a essa porta através do firewall de cada um dos nós em sua pool de armazenamento. Para fazer isso, execute o seguinte comando no gluster0. Lembre-se de alterar gluster1_ip_address para o endereço IP do gluster1:

  1. sudo ufw allow from gluster1_ip_address to any port 24007

E execute o seguinte comando no gluster1. Novamente, certifique-se de alterar gluster0_ip_address para o endereço IP do gluster0:

  1. sudo ufw allow from gluster0_ip_address to any port 24007

Também será necessário permitir que sua máquina cliente (gluster2) tenha acesso a esta porta. Caso contrário, você encontrará problemas mais tarde quando for tentar montar o volume. Execute o seguinte comando tanto no gluster0 quanto no gluster1 para abrir esta porta para a sua máquina cliente:

  1. sudo ufw allow from gluster2_ip_address to any port 24007

Então, para garantir que nenhuma outra máquina seja capaz de acessar a porta do Gluster em ambos os servidores, adicione a seguinte regra ampla deny ao gluster0 e ao gluster1:

  1. sudo ufw deny 24007

Agora, você está pronto para estabelecer uma comunicação entre o gluster0 e o gluster1. Para fazer isso, você precisará executar o comando gluster peer probe em um dos seus nós. Não importa qual nó você use, mas o seguinte exemplo mostra o comando sendo executado no gluster0:

  1. sudo gluster peer probe gluster1

Essencialmente, este comando diz ao gluster0 para confiar no gluster1 e registrá-lo como parte de sua pool de armazenamento. Se a investigação for bem-sucedida, ela irá retornar o seguinte resultado:

Output
peer probe: success

Você pode verificar se os nós estão se comunicando a qualquer momento, executando o comando gluster peer status em cada um dos dois. Neste exemplo, ele está sendo executado no gluster1:

  1. sudo gluster peer status

Se você executar este comando do gluster1, ele irá mostrar um resultado desta forma:

Output
Number of Peers: 1 Hostname: gluster0.example.com Uuid: a3fae496-c4eb-4b20-9ed2-7840230407be State: Peer in Cluster (Connected)

Neste momento, seus dois servidores estão se comunicando e prontos para criar volumes de armazenamento um com o outro.

Passo 4 — Criando um volume de armazenamento

Lembre-se que o objetivo principal deste tutorial é criar uma pool de armazenamento redundante. Para este fim, você irá configurar um volume com funcionalidade de réplica. Ele permitirá que você mantenha várias cópias dos seus dados e impedirá que seu cluster tenha um ponto único de falha.

Para criar um volume, você irá usar o comando gluster volume create com esta sintaxe geral:

sudo gluster volume create volume_name replica number_of_servers domain1.com:/path/to/data/directory domain2.com:/path/to/data/directory force

Veja o que os argumentos e opções do comando gluster volume create significam:

  • volume_name: Este é o nome que você irá usar para se referir ao volume depois de ele ser criado. O comando de exemplo a seguir cria um volume chamado volume1.
  • replica number_of_servers: Após o nome do volume, você pode definir que tipo de volume você deseja criar. Lembre-se que o objetivo deste tutorial é criar uma pool de armazenamento redundante, então vamos usar o tipo de volume replica. Isso requer um argumento que indique para quantos servidores os dados do volume serão replicados (2, no caso deste tutorial).
  • domain1.com:/… e domain2.com:/…: Eles definem a localização das máquinas e do diretório do bricks — o termo do GlusterFS para sua unidade básica de armazenamento, que inclui todos os diretórios em todas as máquinas que sirvam como parte ou uma cópia de um volume maior — que formarão o volume1. O exemplo a seguir irá criar um diretório chamado gluster-storage no diretório root de ambos os servidores.
  • force: Essa opção irá sobrescrever quaisquer avisos ou opções que de outra forma apareceriam e interromperiam a criação do volume.

Seguindo as convenções estabelecidas anteriormente neste tutorial, você pode executar este comando para criar um volume. Observe que pode executá-lo tanto a partir do gluster0 quanto do gluster1:

  1. sudo gluster volume create volume1 replica 2 gluster0.example.com:/gluster-storage gluster1.example.com:/gluster-storage force

Se o volume for criado com sucesso, você receberá o seguinte resultado:

Output
volume create: volume1: success: please start the volume to access data

Neste momento, seu volume foi criado, mas ele ainda não está ativo. Você pode iniciar o volume e torná-lo disponível para uso executando o seguinte comando novamente a partir de um dos seus servidores do Gluster:

  1. sudo gluster volume start volume1

Você receberá este resultado se o volume for iniciado corretamente:

Output
volume start: volume1: success

Em seguida, verifique se o volume está online. Execute o seguinte comando a partir de um dos seus nós:

  1. sudo gluster volume status

Isso irá retornar um resultado semelhante a este:

Output
Status of volume: volume1 Gluster process TCP Port RDMA Port Online Pid ------------------------------------------------------------------------------ Brick gluster0.example.com:/gluster-storage 49152 0 Y 18801 Brick gluster1.example.com:/gluster-storage 49152 0 Y 19028 Self-heal Daemon on localhost N/A N/A Y 19049 Self-heal Daemon on gluster0.example.com N/A N/A Y 18822 Task Status of Volume volume1 ------------------------------------------------------------------------------ There are no active volume tasks

Com base neste resultado, os bricks em ambos os servidores estão online.

Como um passo final para configurar seu volume, você precisará abrir o firewall em ambos os servidores para que sua máquina cliente seja capaz de se conectar e montar o volume. De acordo com o resultado amostral do comando anterior, o volume1 está em execução na porta 49152 em ambas as máquinas. Esta é a porta padrão do GlusterFS para seu volume inicial, e o próximo volume que você criar irá usar a porta 49153, então 49154 e assim por diante.

Execute o seguinte comando em ambos o gluster0 e o gluster1 para permitir que o gluster2 tenha acesso a esta porta através dos seus respectivos firewalls:

  1. sudo ufw allow from gluster2_ip_address to any port 49152

Então, para uma camada adicional de segurança, adicione outra regra ampla deny para a porta do volume tanto no gluster0 quanto no gluster1. Isso irá garantir que nenhuma máquina que não seja o seu cliente possa acessar o volume em ambos os servidores:

  1. sudo ufw deny 49152

Agora que seu volume está em operação, você pode configurar sua máquina cliente e começar a usá-la remotamente.

Passo 5 — Instalando e configurando componentes do cliente

Seu volume agora está configurado e disponível para uso pela sua máquina cliente. Apesar disso, antes de começar, você precisa instalar o pacote glusterfs-client a partir do PPA que você configurou no Passo 1 na sua máquina cliente. As dependências deste pacote incluem algumas das bibliotecas comuns e módulos de tradutor do GlusterFS, além das ferramentas FUSE necessárias para que ele funcione.

Execute o seguinte comando no gluster2:

  1. sudo apt install glusterfs-client

Você irá montar seu volume de armazenamento remoto em seu computador cliente em breve. Antes que possa fazer isso, no entanto, você precisa criar um ponto de montagem. Tradicionalmente, ele está localizado no diretório /mnt, mas qualquer lugar que seja conveniente pode ser usado.

Para simplificar, crie um diretório chamado /storage-pool em sua máquina cliente para servir como o ponto de montagem. Este nome de diretório começa com uma barra (/) que o coloca no diretório root. Sendo assim, você precisará criá-lo com privilégios sudo:

  1. sudo mkdir /storage-pool

Agora, você pode montar o volume remoto. Antes disso, porém, dê uma olhada na sintaxe do comando mount que você irá usar para isso.

sudo mount -t glusterfs domain1.com:volume_name /path/to/mount/point

O mount é um utilitário encontrado em muitos sistemas operacionais semelhantes ao Unix. Ele é usado para montar sistemas de arquivos — qualquer coisa desde dispositivos de armazenamento externo, como cartões SD ou pendrives, até armazenamento ligado à rede como no caso deste tutorial — em diretórios no sistema de arquivos existente da máquina. A sintaxe do comando mount que você irá usar inclui a opção -t, que requer três argumentos: o tipo do sistema de arquivos a ser montado, o dispositivo onde o sistema de arquivos a ser montado pode ser encontrado, e o diretório no cliente onde você irá montar o volume.

Observe que neste exemplo de sintaxe, o argumento do dispositivo aponta para um nome de host seguido por dois pontos e depois o nome do volume. O GlusterFS abstrai os diretórios de armazenamento reais em cada host, o que significa que este comando não procura montar o diretório /gluster-storage, mas sim o volume volume1.

Também observe que você só precisa especificar um membro do cluster de armazenamento. Isso pode ser qualquer um dos nós, pois o serviço do GlusterFS os trata como uma máquina.

Execute o seguinte comando em sua máquina cliente (gluster2) para montar o volume no diretório /storage-pool que você criou:

  1. sudo mount -t glusterfs gluster0.example.com:/volume1 /storage-pool

Depois disso, execute o comando df. Isso irá exibir a quantidade de espaço em disco disponível para sistemas de arquivos aos quais o usuário que o invocou tem acesso:

  1. df

Este comando irá mostrar que o volume do GlusterFS está montado na localização correta:

Output
Filesystem 1K-blocks Used Available Use% Mounted on . . . gluster0.example.com:/volume1 50633164 1938032 48695132 4% /storage-pool

Agora, teste se todos os dados que você escreve no volume no seu cliente são replicados para os nós do servidor como esperado.

Passo 6 — Testando recursos de redundância

Agora que você configurou seu cliente para usar sua pool de armazenamento e volume, você pode testar sua funcionalidade.

Em sua máquina cliente (gluster2), navegue até o ponto de montagem que você definiu no passo anterior:

  1. cd /storage-pool

Em seguida, crie alguns arquivos de teste. O comando a seguir cria dez arquivos vazios separados em sua pool de armazenamento:

  1. sudo touch file_{0..9}.test

Se você examinar os diretórios de armazenamento definidos anteriormente em cada host de armazenamento, você irá descobrir que todos os arquivos estão presentes em cada sistema.

No gluster0:

  1. ls /gluster-storage
Output
file_0.test file_2.test file_4.test file_6.test file_8.test file_1.test file_3.test file_5.test file_7.test file_9.test

Da mesma forma, no gluster1:

  1. ls /gluster-storage
Output
file_0.test file_2.test file_4.test file_6.test file_8.test file_1.test file_3.test file_5.test file_7.test file_9.test

Como estes resultados mostram, os arquivos de teste que você adicionou ao cliente também foram escritos em ambos os seus nós.

Se um dos nós em seu cluster de armazenamento estiver desligado em algum momento, eles podem perder a sincronia com o pool de armazenamento, caso haja alterações feitas no sistema de arquivos. Fazer uma operação de leitura no ponto de montagem do cliente depois que o nó voltar a ficar online irá alertar o nó para obter qualquer arquivo em falta:

  1. ls /storage-pool

Agora que verificou que seu volume de armazenamento está montado corretamente e pode replicar dados para ambas as máquinas no cluster, você pode bloquear o acesso à pool de armazenamento.

Passo 7 — Restringindo recursos de redundância

Neste momento, qualquer computador pode se conectar ao seu volume de armazenamento sem nenhuma restrição. Você pode mudar isso alterando a opção auth.allow que define os endereços IP de quais clientes têm acesso ao volume.

Se estiver usando a configuração do /etc/hosts, os nomes que você configurou para cada servidor não serão encaminhados corretamente. Você deve usar um endereço IP estático disso.ao invés disso. Por outro lado, se você estiver usando registros DNS, o nome de domínio que você configurou irá funcionar aqui.

Em um dos seus nós de armazenamento (gluster0 ou gluster1), execute o seguinte comando:

  1. sudo gluster volume set volume1 auth.allow gluster2_ip_address

Se o comando terminar com sucesso, ele irá retornar este resultado:

Output
volume set: success

Se precisar remover a restrição a qualquer momento, você pode digitar:

  1. sudo gluster volume set volume1 auth.allow *

Isso permitirá as conexões de qualquer máquina novamente. Isso é inseguro, mas pode ser útil para depurar problemas.

Se você tiver vários clientes, pode especificar os endereços IP ou nomes de domínio deles ao mesmo tempo (dependendo se estiver usando a resolução /etc/hosts ou a resolução de nomes de host DNS), separados por vírgulas:

  1. sudo gluster volume set volume1 auth.allow gluster_client1_ip,gluster_client2_ip

Seu pool de armazenamento agora está configurado, seguro e pronto para uso. Em seguida, você irá aprender alguns comandos que lhe ajudarão a obter informações sobre o status da sua pool de armazenamento.

Passo 8 — Obtendo informações sobre sua pool de armazenamento com comandos do GlusterFS

Quando começar a alterar algumas das configurações para seu armazenamento do GlusterFS, você pode se confundir com as opções disponíveis, quais volumes estão ativos e quais nós estão associados a cada volume.

Há vários comandos diferentes que estão disponíveis em seus nós para recuperar esses dados e interagir com sua pool de armazenamento.

Se você quiser informações sobre cada um dos seus volumes, execute o comando gluster volume info:

  1. sudo gluster volume info
Output
Volume Name: volume1 Type: Replicate Volume ID: a1e03075-a223-43ab-a0f6-612585940b0c Status: Started Snapshot Count: 0 Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: gluster0.example.com:/gluster-storage Brick2: gluster1.example.com:/gluster-storage Options Reconfigured: auth.allow: gluster2_ip_address transport.address-family: inet storage.fips-mode-rchecksum: on nfs.disable: on performance.client-io-threads: off

Da mesma forma, para obter informações sobre quaisquer pares aos quais este nó esteja conectado, você pode digitar:

  1. sudo gluster peer status
Number of Peers: 1

Hostname: gluster0.example.com
Uuid: cb00a2fc-2384-41ac-b2a8-e7a1793bb5a9
State: Peer in Cluster (Connected)

Se quiser informações detalhadas sobre como cada nó está desempenhando, faça um perfil de volume digitando:

  1. sudo gluster volume profile volume_name start

Quando este comando for concluído, obtenha as informações que foram reunidas digitando:

  1. sudo gluster volume profile volume_name info
Output
Brick: gluster0.example.com:/gluster-storage -------------------------------------------- Cumulative Stats: %-latency Avg-latency Min-Latency Max-Latency No. of calls Fop --------- ----------- ----------- ----------- ------------ ---- 0.00 0.00 us 0.00 us 0.00 us 30 FORGET 0.00 0.00 us 0.00 us 0.00 us 36 RELEASE 0.00 0.00 us 0.00 us 0.00 us 38 RELEASEDIR Duration: 5445 seconds Data Read: 0 bytes Data Written: 0 bytes Interval 0 Stats: %-latency Avg-latency Min-Latency Max-Latency No. of calls Fop --------- ----------- ----------- ----------- ------------ ---- 0.00 0.00 us 0.00 us 0.00 us 30 FORGET 0.00 0.00 us 0.00 us 0.00 us 36 RELEASE 0.00 0.00 us 0.00 us 0.00 us 38 RELEASEDIR Duration: 5445 seconds Data Read: 0 bytes Data Written: 0 bytes . . .

Como mostrado anteriormente, para uma lista de todos os componentes associados ao GlusterFS em execução em cada um dos seus nós, execute o comando gluster volume status:

  1. sudo gluster volume status
Output
Status of volume: volume1 Gluster process TCP Port RDMA Port Online Pid ------------------------------------------------------------------------------ Brick gluster0.example.com:/gluster-storage 49152 0 Y 19003 Brick gluster1.example.com:/gluster-storage 49152 0 Y 19040 Self-heal Daemon on localhost N/A N/A Y 19061 Self-heal Daemon on gluster0.example.com N/A N/A Y 19836 Task Status of Volume volume1 ------------------------------------------------------------------------------ There are no active volume tasks

Se você estiver administrando seus volumes de armazenamento do GlusterFS, pode ser uma boa ideia adentrar-se no console do GlusterFS. Isso permitirá que você interaja com seu ambiente do GlusterFS sem precisar digitar sudo gluster antes de tudo:

  1. sudo gluster

Isso lhe dará um prompt onde você pode digitar seus comandos. O help é um bom recurso para se orientar:

  1. help
Output
peer help - display help for peer commands volume help - display help for volume commands volume bitrot help - display help for volume bitrot commands volume quota help - display help for volume quota commands snapshot help - display help for snapshot commands global help - list global commands

Quando você terminar, execute exit para sair do console do Gluster:

  1. exit

Com isso, você está pronto para começar a integrar o GlusterFS com seu próximo aplicativo.

Conclusão

Após completar este tutorial, você tem agora um sistema de armazenamento redundante que lhe permitirá escrever em dois servidores separados simultaneamente. Isso pode ser útil para uma série de aplicativos e pode garantir que seus dados estejam disponíveis mesmo quando um servidor cair.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors
Default avatar

Manager, Developer Education

Technical Writer @ DigitalOcean

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Featured on Community

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel