Administração do Sistema

Configuração do servidor de armazenamento de alta disponibilidade usando Glusterfs

Configuração do servidor de armazenamento de alta disponibilidade usando Glusterfs

12 de março de 2013
por Lubos Rendek

Introdução

Esteja você administrando uma pequena rede doméstica ou uma rede corporativa para uma grande empresa, o armazenamento de dados é sempre uma preocupação. Pode ser em termos de falta de espaço em disco ou solução de backup ineficiente. Nos dois casos. Neste guia, configuraremos o armazenamento de dados distribuídos e replicados/espelhados. Como o nome sugere que o modo de armazenamento distribuído de um Glusterfs permitirá que você redistribua uniformemente seus dados em vários nós de rede, enquanto um modo replicado garantirá que todos os seus dados sejam espelhados em todos os nós de rede.

O que é Glusterfs

Depois de ler a introdução, você já deve ter uma boa idéia do que Glusterfs é. Você pode pensar nisso como um serviço de agregação para todo o seu espaço de disco vazio em toda a sua rede. Ele conecta todos os nós com a instalação do Glusterfs sobre TCP ou RDMA, criando um único recurso de armazenamento que combina todo o espaço de disco disponível em um único volume de armazenamento ( distribuído modo) ou usa o máximo de espaço de disco disponível em todas as notas para refletir seus dados ( replicado modo ). Portanto, cada volume consiste em vários nós, que na terminologia de Glusterfs são chamados tijolos.

Suposições preliminares

Embora o Glusterfs possa, por instalação e usada em qualquer distribuição Linux, este artigo usará principalmente o Ubuntu Linux. No entanto, você deve poder usar este guia em qualquer distribuição Linux como Redhat, Fedora, Suse, etc. A única parte que será diferente será o processo de instalação do Glusterfs.

Além disso, este guia usará 3 exemplos de nomes de host:

Use o arquivo DNS Server ou etc /hosts para definir seus nomes de host e ajustar seu cenário a este guia.

Instalação de Glusterfs

O servidor Glusterfs precisa ser instalado em todos os hosts que você deseja adicionar ao seu volume final de armazenamento. No nosso caso, será armazenado.Servidor1 e armazenamento.Server2. Você pode usar o Glusterfs como um único servidor e uma conexão de cliente para atuar como um servidor NFS. No entanto, o verdadeiro valor de Glusterfs é quando o uso de vários hosts de servidor para atuar como um. Use o seguinte comando linux nos dois servidores para instalar o servidor Glusterfs:

armazenar.Server1 $ sudo apt-get install glusterfs-server

e

armazenar.Server2 $ sudo apt-get install glusterfs-server

Os comandos acima instalarão e iniciarão o Glusterfs-Server em ambos os sistemas. Confirme que os dois servidores estão em execução:

$ sudo service glusterfs-server status

Configuração de armazenamento distribuído

Primeiro, criaremos um volume distribuído Glusterfs. No modo distribuído, Glusterfs distribuirá uniformemente todos os dados em todos os tijolos conectados. Por exemplo, se os clientes gravarem arquivos File1, File2, File3 e File4 para um diretório montado Glusterfs, então servidor.Storage1 conterá o arquivo1 e o arquivo2 e o servidor.Storage2 receberá o arquivo3 e o arquivo4. Este cenário é ilustrado usando o diagrama abaixo.

Sonda de pares

Primeiro, precisamos fazer com que os dois servidores Glusterfs conversem, o que significa que estamos efetivamente criando um pool de servidores confiáveis.

armazenar.servidor1 $ sudo gluster par sond storage.Server2
Sonda bem -sucedida

O comando acima adicionará armazenamento.Servidor2 para um pool de servidores confiável. Essas configurações são replicadas em todos os servidores conectados para que você não precise executar o comando acima em outros saques. Até agora, os dois servidores terão o arquivo de configuração de pares disponíveis semelhante ao abaixo:

$ cat/etc/glusterd/pares/951b8732-42f0-42e1-a32f-0e1c4baec4f1
UUID = 951B8732-42F0-42E1-A32F-0E1C4BAEC4F1
estado = 3
hostName1 = armazenamento.Server2

Crie volume de armazenamento

Em seguida, podemos usar os dois servidores para definir um novo volume de armazenamento composto por dois tijolos, um para cada servidor.

armazenar.Servidor1 $ sudo volume de brilho Crie armazenamento dist-vol.Server1:/Dist-Data \ Storage.Servidor2:/Dist-Data
A criação de volume de volume foi bem-sucedida. Inicie o volume para acessar dados.

O comando acima criou um novo volume chamado Dist-Vol, composto por dois tijolos. Se não existir diretório /data não existir, ele também será criado em ambos os servidores pelo comando acima. Como já foi mencionado antes, você pode adicionar apenas um tijolo ao volume e, assim, fazendo o servidor Clusterfs atuar como um servidor NFS. Você pode verificar se seu novo volume foi criado por:

$ sudo gluster volume informações dist-volum
Nome do volume: Dist-Vol
Tipo: distribuir
Status: criado
Número de tijolos: 2
Tipo de transporte: TCP
Tijolos:
Brick1: armazenamento.Server1:/Dist-Data
Brick2: armazenamento.Servidor2:/Dist-Data

Inicie o volume de armazenamento

Agora, estamos prontos para iniciar seu novo volume:

armazenar.Servidor1 $ sudo volume de brilho Iniciar Dist-Vol
O volume inicial do volume distor foi bem-sucedido
armazenar.Server1 $ sudo gluster volume Info Dist-Vol
Nome do volume: Dist-Vol
Tipo: distribuir
Status: Iniciado
Número de tijolos: 2
Tipo de transporte: TCP
Tijolos:
Brick1: armazenamento.Server1:/Dist-Data
Brick2: armazenamento.Servidor2:/Dist-Data

Isso conclui uma configuração do servidor de dados Glusterfs no modo distribuído. O resultado final deve ser um novo volume distribuído chamado Dist-Vol, composto por dois tijolos.

Configurar o cliente

Agora que criamos um novo volume Glusterfs, podemos usar o cliente Glusterfs para montar este volume para qualquer hosts. Faça login no host do cliente e instale o cliente Glustefs:

armazenar.cliente $ sudo apt-get install glusterfs-client

Em seguida, crie um ponto de montagem para o qual você montará seu novo volume Dist-Vol Glusterfs, por exemplo, Dist Dist:

armazenar.Cliente $ sudo mkdir /export-dist

Agora, podemos montar o volume de Glusterfs com o volume com o montar comando:

armazenar.cliente $ sudo montagem -t armazenamento Glusterfs.Servidor1: Dist-Vol /Export-Dist

Todos os gritos estão prontos. Use o montar comando para ver se você montou o volume do Glusterfs corretamente:

$ monte | Grep Glusterf

Testando a configuração distribuída Glusterfs

Tudo está pronto para que possamos iniciar alguns testes. No lado do cliente Crate 4 arquivos no diretório montado Glusterfs:

armazenar.cliente $ touch /export-dist /file1 file2 file3 file4

Os Glusterfs agora levarão todos os arquivos e os redistribuirão uniformemente entre todos os tijolos no volume de volume distante. Portanto, armazenamento.Server1 conterá:

armazenar.servidor1 $ ls /dist-dados /
arquivo3 file4

e armazenamento.Server2 conterá:

armazenar.Server2 $ LS /Dist-Data
File1 File2

Claro que seus resultados podem ser diferentes.

Configuração de armazenamento replicada

O procedimento para criar um volume replicado Glusterfs é semelhante ao volume distribuído explicado anteriormente. De fato, a única diferença é a maneira como o volume do clusterfs é criado. Mas vamos novamente desde o início:

Sonda de pares

Primeiro, precisamos fazer com que os dois servidores Glusterfs conversem, o que significa que estamos efetivamente criando um pool de servidores confiáveis.

armazenar.servidor1 $ sudo gluster par sond storage.Server2
Sonda bem -sucedida

Se isso já estiver pronto, você pode pular esta etapa.

Crie volume de armazenamento

Nesta etapa, precisamos criar um volume de réplica.

$ sudo volume de gluster criar réplica REPL-VOL 2 \ armazenamento.Servidor1:/Repl-Data Storage.Servidor2:/repl-Data de volume repl-vol foi bem-sucedido. Inicie o volume para acessar dados. 

A tradução básica do comando acima pode ser que criamos um volume replicado (réplica) chamado Repl-Vol . O número 2 no comando indica a contagem de faixas, o que significa que, ao expandir esse volume, sempre precisamos adicionar o número de tijolos iguais ao múltiplo de contagem de faixas de volume (2, 4, 8 16 etc.).

Inicie o volume de armazenamento

É hora de iniciar nosso novo volume replicado:

$ sudo volume de gluster iniciar repl-vol
O volume inicial repl-vol foi bem-sucedido

Verifique o status:

armazenar.Server1 $ sudo gluster volume Info Repl-Vol
Nome do volume: Repl-Vol
Tipo: replicar
Status: Iniciado
Número de tijolos: 2
Tipo de transporte: TCP
Tijolos:
Brick1: armazenamento.servidor1:/repl-data
Brick2: armazenamento.servidor2:/repl-data

Configurar o cliente

A configuração do cliente é a mesma que quando configura o cliente para a montagem de volume distribuída.

Instale o cliente:

armazenar.cliente $ sudo apt-get install glusterfs-client

Crie um ponto de montagem:

armazenar.Cliente $ sudo mkdir /export-repl

Monte o volume Repl-Vol Glusterfs com o montar comando:

armazenar.cliente $ sudo montagem -t armazenamento Glusterfs.Servidor1: repl-vol /export-repl

Todos os gritos estão agora prontos. Use o montar comando para ver se você montou o volume do Glusterfs corretamente:

$ monte | Grep Glusterf

Testando a configuração replicada Glusterfs

O ponto do volume Glusterfs replicado é que os dados serão perfeitamente espelhados em todos os nós. Assim, ao criar arquivos em /exportar-repl /

$ touch /export-repl /file1 file2 file3 file4

Todos os arquivos estarão disponíveis nos dois servidores:

armazenar.servidor1 $ ls /repl-data /
File1 file2 file3 file4

e

armazenar.Server2 $ LS /Repl-Data /
File1 file2 file3 file4

Expandindo volumes de Glusterfs

No caso de você precisar ampliar o armazenamento de dados para incluir tijolos adicionais, o processo é simples:

$ sudo volume gluster add-brick rep-vol armazenamento.Servidor3:/repl-vol armazenamento.Servidor4: repl-vol /export-repl

Isso adicionará outros dois tijolos de armazenamento ao seu repl-vol. Depois de adicionar novos tijolos, pode ser necessário re-equilibrar todo o volume com:

$ sudo volume de gluster replumer repl-vol

e sincronizar / migrar todos os dados com:

$ sudo volume de gluster replumance repl-vol-volte-data-data start

Além disso, você pode verificar o progresso do equilíbrio com

$ sudo gluster volume de reequilância volum volume status

Configurações de segurança

Além da configuração acima, você pode tornar todo o volume mais seguro, permitindo que apenas certos hosts se juntem ao pool de confiança. Por exemplo, se queremos apenas o host com 10.1.1.10 Para poder participar do volume Repl-Vol, usamos o seguinte comando Linux:

$ sudo gluster volume conjunto de repl-vol-vol-vol.Aguarde 10.1.1.10

No caso de precisarmos de toda a sub -rede, basta usar asterisco:

$ sudo gluster volume conjunto de repl-vol-vol-vol.Aguarde 10.1.1.*

Conclusão

Glusterfs é um poderoso software licenciado GPL3. Pode -se também usá -lo como um rápido software RAID 1, definindo dois tijolos de dispositivo físico separados no host único no volume replicado Glusterfs. Claro que seria melhor usar o ataque de software para esse trabalho, mas ainda assim a possibilidade está lá. Achei Glusterfs fácil de usar e configurar.

Apêndice

Aqui vou listar poucos erros e respostas que encontrei enquanto brincará com Glusterfs:

Número incorreto de tijolos

Número incorreto de tijolos fornecidos 1 para o tipo REPLICE com a contagem 2

Se você criou um volume com a contagem de faixas 2, precisa adicionar pelo menos 2 tijolos adicionais naquele momento.

Armazenamento do host.servidor1 não é um amigo

Armazenamento do host.servidor1 não é um amigo

Primeiro, adicione o servidor Glusterfs ao pool de confiança antes de tentar incluí -lo no volume.

Página manual
Nome LS - Sinopse do conteúdo do diretório List [Opção]… [Arquivo]… Descrição Lista de informações sobre os arquivos (o diretório atual por padrão). O...
Como obter wdiddle3 para definir o timer de idli
Aqui são simples de seguir as etapas sobre como desativar e definir timer para estacionamento na cabeça com WD Ears Drive. Para fazer esta tarefa, vam...
Usando .arquivo htaccess para redirecionar para o host www
Às vezes, gostaríamos de instruir o Apache a redirecionar todos os visitantes que chegam de Our_sample_Domain.com www.Our_Sample_Domain.com fazer isso...