Entendimento mais claro para glusterfs para replicação

1

No server01 instalei e configurei o glusterfs-server e o glusterfs-client para replicar o diretório / var / appdata para o server02.

Parece que tudo funciona bem, mas não tenho certeza se entendi a coisa do buraco.

  • Diretório / var / gfs_appdata é, deixe-me dizer uma visão, em / var / appdata, isso significa que todos os arquivos gerados em / var / appdata são replicados para server02 ou meu aplicativo deve armazenar todos os arquivos gerados em / var / gfs_appdata.
  • O diretório / var / gfs_appdata não contém dados físicos.
  • No momento em que o arquivo01 gerado no server01 aparece no server02, quando ocorre a replicação?

No server01 o glusterfs é montado via fstab:

/etc/glusterfs/glusterfs.vol              /var/gfs_appdata/  glusterfs  defaults  0  0

No server01 e server02 o glusterfs-server é iniciado automaticamente no momento da inicialização com /etc/glusterfs/glusterfsd.vol:

volume posix1
  type storage/posix
  option directory /var/appdata
end-volume

volume locks1
    type features/locks
    subvolumes posix1
end-volume

volume brick1
    type performance/io-threads
    option thread-count 8
    subvolumes locks1
end-volume

volume server-tcp
    type protocol/server
    option transport-type tcp
    option auth.addr.brick1.allow *
    option transport.socket.listen-port 6996
    option transport.socket.nodelay on
    subvolumes brick1
end-volume

/etc/glusterfs/glusterfs.vol:

# RAID 1
# TRANSPORT-TYPE tcp
volume data01
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.0.1
    option transport.socket.nodelay on
    option remote-port 6996
    option remote-subvolume brick1
end-volume

volume data02
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.0.2
    option transport.socket.nodelay on
    option remote-port 6996
    option remote-subvolume brick1
end-volume

volume mirror-0
    type cluster/replicate
    subvolumes data01 data02
end-volume

volume readahead
    type performance/read-ahead
    option page-count 4
    subvolumes mirror-0
end-volume

volume iocache
    type performance/io-cache
    option cache-size 'echo $(( $(grep 'MemTotal' /proc/meminfo | sed 's/[^0-9]//g') / 5120 ))'MB
    option cache-timeout 1
    subvolumes readahead
end-volume

volume quickread
    type performance/quick-read
    option cache-timeout 1
    option max-file-size 64kB
    subvolumes iocache
end-volume

volume writebehind
    type performance/write-behind
    option cache-size 4MB
    subvolumes quickread
end-volume

volume statprefetch
    type performance/stat-prefetch
    subvolumes writebehind
end-volume
    
por Alex 03.09.2010 / 14:58

1 resposta

1

OK, parece que esta é a pergunta real:

At which time does file01 which is generated on server01 appears on server02, when does replication takes place?

A replicação começa assim que o arquivo é criado / alterado / excluído no server01. Exatamente quanto tempo a replicação demora para ser concluída depende da E / S de armazenamento, da largura de banda da rede e da quantidade de dados que precisa ser replicada.

A maneira que eu usei o glusterfs, os arquivos que vivem no volume do gluster são geralmente pequenos, então replicar um novo arquivo é quase instantâneo.

Atualização: Para saber se você deve escrever diretamente no bloco (/ var / appdata) ou na montagem (/ var / gfs_appdata), do jeito que eu entendi, você deve sempre usar a montagem ler e escrever. Honestamente, eu não sei os detalhes de exatamente porque este é o caso, um (agora ex-) colega fez muitos testes com glusterfs cerca de um ano atrás antes de começarmos a usá-lo e eu não me familiarizei com o mais fino detalhes.

Aqui está uma resposta sobre uma questão semelhante que fornece um pequeno detalhe explicando por que isso deve ser feito dessa maneira: O Apache pode ler o Brick GlusterFS diretamente mas gravar no GlusterFS?

    
por 03.09.2010 / 15:20