На server01 я установил и настроил glusterfs-server и glusterfs-client для репликации каталога / var / appdata на 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
Хорошо, похоже, это актуальный вопрос:
В какое время file01, созданный на server01, появляется на server02, когда происходит репликация?
Репликация начинается, как только файл будет создан / изменен / удален на server01. Точное время выполнения репликации зависит от количества операций ввода-вывода хранилища, пропускной способности сети и количества данных, которые необходимо реплицировать.
Как я использовал glusterfs, файлы, которые находятся в томе gluster, обычно небольшие, поэтому репликация нового файла происходит практически мгновенно.
Обновить: Что касается того, следует ли писать напрямую в кирпич (/ var / appdata) или в монтирование (/ var / gfs_appdata), насколько я понимаю, вы всегда должны использовать монтирование для чтения и записи. Честно говоря, я не знаю подробностей того, почему именно это так, один (теперь уже бывший) коллега провел много тестов с glusterfs около года назад, прежде чем мы начали его использовать, и я не знаком с более тонким подробности.
Вот ответ на аналогичный вопрос, в котором подробно объясняется, почему это должно быть сделано именно так: Может ли Apache читать модуль GlusterFS напрямую, но записывать в монтировку GlusterFS?