Gluster FS. Восстанавливает реплицированных том

Я играю с GlusterFS. И теперь мне любопытно, как полностью восстановить реплицированных том.

Таким образом, я создал 1 реплицированных том из server1 и server2 узлов:

root@server1:~# gluster volume create replicated replica 2 transport tcp server1:/mnt/repl1 server2:/mnt/repl2 force

root@server1:~# gluster volume start replicated
volume start: replicated: success

И смонтированный это к клиентскому узлу:

root@client:~# mount.glusterfs server1:/distributed /mnt/distrib/

Теперь я пытаюсь протестировать высокую доступность. Таким образом, я выключил server1 и пытающийся записать что-то в клиентскую точку монтирования:

root@client:/mnt/replica# ls -lh
total 106M
-rw-r--r-- 1 root root   19 Jul 12  2015 1.txt
-rw-r--r-- 1 root root 1.3K Jul 12  2015 2.txt
-rw-r--r-- 1 root root 106M Jul 12  2015 testfile1

Так хорошо до сих пор. Все файлы находятся также на server2:

root@server2:/mnt/repl2# ls -lh
total 106M
-rw-r--r-- 2 root root   19 Jul 12 03:52 1.txt
-rw-r--r-- 2 root root 1.3K Jul 12 03:54 2.txt
-rw-r--r-- 2 root root 106M Jul 12 03:53 testfile1
root@server2:/mnt/repl2# 

После того, как весь мой server1 идет онлайн, и там я вижу только скелет файлов w/o данные в нем:

root@server1:/mnt/repl1# ls -lh
total 4.0K
-rw-r--r-- 2 root root    0 Jul 12 12:21 1.txt
-rw-r--r-- 2 root root    0 Jul 12 03:54 2.txt
-rw-r--r-- 2 root root    0 Jul 12 12:21 testfile1

Только после доступа в файлы от клиентской точки монтирования (с кошкой или как это) информация вытягивает в server2 файлы:

root@client:/mnt/replica# cat 2.txt
GlusterFS — blalabla..

root@server1:/mnt/repl1# ls -lh
total 4.0K
-rw-r--r-- 2 root root    0 Jul 12 12:21 1.txt
-rw-r--r-- 2 root root 1.3K Jul 12 03:54 2.txt
-rw-r--r-- 2 root root    0 Jul 12 12:21 testfile1
root@server1:/mnt/repl1# 

Действительно ли возможно восстановить все файлы автоматически на ранее неудавшемся сервере w/o получающий доступ им от клиентской точки монтирования?

0
задан 12 July 2015 в 14:24
1 ответ

stat () - файлы с точки монтирования клиента - вот откуда Gluster знает, что файлы нужно заново переписать plicated, поэтому в основном ответ на ваш вопрос - «нет».

Решение, тем не менее, заключается в использовании stat () каждого файла - что на самом деле проще, чем кажется, просто запустите это с клиента:

find /mnt/repl1 -exec stat {} \;

Это описано здесь .

1
ответ дан 4 December 2019 в 16:53

Теги

Похожие вопросы