web-dev-qa-db-ja.com

レプリケーション用のglusterfsのより明確な理解

Server01に、ディレクトリ/ var/appdataをserver02にレプリケートするようにglusterfs-serverとglusterfs-clientをインストールして構成しました。

何でも問題ないようですが、穴のことを理解しているかどうかはわかりません。

  • ディレクトリ/ var/gfs_appdataは、/ var/appdataのビューです。つまり、/ var/appdataで生成されたすべてのファイルがserver02に複製されるか、アプリケーションで生成されたすべてのファイルを/ var/gfs_appdataに保存する必要があります。
  • ディレクトリ/ var/gfs_appdataは、物理データを保持していません。
  • Server01で生成されたfile01がserver02に表示されるのはいつですか?レプリケーションはいつ行われますか?

Server01では、glusterfsはfstabを介してマウントされます。

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

Server01およびserver02では、glusterfs-serverは起動時に/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
1
Alex

OK、これが実際の質問のようです:

Server01で生成されたfile01がserver02に表示されるのはいつですか?レプリケーションはいつ行われますか?

Server01でファイルが作成/変更/削除されるとすぐに、レプリケーションが開始されます。レプリケーションが完了するまでにかかる正確な時間は、ストレージI/O、ネットワーク帯域幅、およびレプリケートする必要のあるデータの量によって異なります。

私がglusterfsを使用した方法では、glusterボリュームに存在するファイルは通常小さいので、新しいファイルの複製はほとんど瞬時に行われます。

更新:ブリック(/ var/appdata)またはマウント(/ var/gfs_appdata)のどちらに直接書き込む必要があるかについては、私が理解している方法ですその場合、読み取りと書き込みには常にマウントを使用する必要があります。正直なところ、これが事実である理由の詳細はわかりません。(現在の)同僚は、使用を開始する前に約1年前にglusterfsで多くのテストを行いましたが、私はそれ以上のことを知りませんでした。詳細。

同様の質問に対する回答を次に示します。これは、なぜそのように行う必要があるのか​​を少し詳しく説明しています。 ApacheはGlusterFSブリックを直接読み取ることはできますが、GlusterFSマウントに書き込むことはできますか?

1
ThatGraemeGuy