Тестируем распределение контента в GlusterFS

    Нашел несколько статей на хабре о базовой установке и настройке GlusterFS, но не нашел ничего о типах распределения контента, которые он поддерживает и с которыми я долго игрался. О чем и пойдет речь в данной статье.
    image

    GlusterFS — это очень удобная и простая в использовании и настройке распределённая файловая система, которая работает в пользовательском пространстве используя FUSE технологию, т.е. работает поверх основной файловой системы. Для установки и настройки будем использовать ОС Ubuntu 12.04.

    Будем настраивать кластер из двух серверов и монтировать (тестить) на одном клиенте. Имеем следующие настройки:
    IP
    Hostname
    Short name
    192.168.1.100 server1.example.com server1
    192.168.1.101 server2.example.com server2
    192.168.1.102 client1.example.com client1


    1. Общие настройки


    Сначала, для удобства, добавим все адреса в хосты на каждой машине.
    root@server1:~# cat /etc/hosts
    127.0.0.1       localhost
    192.168.1.100   server1.example.com     server1
    192.168.1.101   server2.example.com     server2
    192.168.1.102   client1.example.com     client1
    
    root@server2:~# cat /etc/hosts
    127.0.0.1       localhost
    192.168.1.100   server1.example.com     server1
    192.168.1.101   server2.example.com     server2
    192.168.1.102   client1.example.com     client1
    
    root@client1:~# cat /etc/hosts
    127.0.0.1       localhost
    192.168.1.100   server1.example.com     server1
    192.168.1.101   server2.example.com     server2
    192.168.1.102   client1.example.com     client1
    


    Если используется firewall, нужно открыть TCP порты 111, 24007-24050 на всех машинах, которые выступают в роле серверов (двух, в нашем случаи).

    2. Настройка серверной части (кластера)


    На всех серверах нужно установить gluster-server. На данный момент самая свежая версия – 3.5.2. Установку будем делать из ppa репозиториев.
    root@server1:~#apt-get install python-software-properties
    root@server1:~#add-apt-repository ppa:semiosis/ubuntu-glusterfs-3.5
    root@server1:~#apt-get update
    root@server1:~#apt-get install glusterfs-server -у
    
    root@server2:~#apt-get install python-software-properties
    root@server2:~#add-apt-repository ppa:semiosis/ubuntu-glusterfs-3.5
    root@server2:~#apt-get update
    root@server2:~# apt-get install glusterfs-server -у
    

    Теперь подключаемся на один из серверов и создаем кластер.
    root@server1:~# gluster peer probe server2.example.com
    Probe successful
    


    Проверим статус:
    root@server1:~# gluster peer status
    Number of Peers: 1
    
    Hostname: server2.example.com
    Uuid: 0f3aa4f4-f9dd-4cd2-a7a5-126606fbab33
    State: Peer in Cluster (Connected) 
    


    Как видим, server2 был добавлен в кластер и его статус – Connected. Так же можно убедиться, что на втором сервере все ок.
    root@server2:~# gluster peer status
    Number of Peers: 1
    
    Hostname: 192.168.1.100
    Uuid: ae4e6766-787f-4d0c-8b96-8fc9523ef346
    State: Peer in Cluster (Connected) 
    


    GlusterFS поддерживает 5 типов распределения контента объединённого в volume:
    • Distributed (распределённый)
    • Replicated (реплицируемый)
    • Striped (разделенный по частям)
    • Distributed Striped (распределённый и разделенный по частям)
    • Distributed Replicated (распределённый и реплицируемый)


    Сначала настроим отдельно каждый тип распределения контента и потом смонтируем все 5 volum-ов на клиенте для тестов.

    2.1 Настройка distributed volume


    При данной настройке данные будут распределяться в случайном порядке между каждой папкой, которая входив в volume.
    Создадим на первом сервере паки dist1, dist2, на втором – dist3, dist4.
    root@server1:~# mkdir /mnt/dist{1,2}
    root@server2:~# mkdir /mnt/dist{3,4}
    

    Теперь можно создать и стартануть volume.
    root@server1:~# gluster volume create distributed transport tcp server1:/mnt/dist1 server1:/mnt/dist2 server2:/mnt/dist3 server2:/mnt/dist4 force        
    Creation of volume distributed has been successful. Please start the volume to access data.
    root@server1:~# gluster volume start distributed
    Starting volume distributed has been successful
    


    2.2 Настройка replicated volume


    При данной настройке данные будут зеркально (как RAID1) копироваться между каждой папкой (сервером), которая входив в volume. Разумеется, количество папок(серверов) входящих в volume должно быть кратно реплике(replica).
    Создадим на первом сервере паки repl1, repl2, на втором – repl3, repl4.
    root@server1:~# mkdir /mnt/repl{1,2}
    root@server2:~# mkdir /mnt/repl{3,4}
    


    Теперь можно создать и стартануть volume.
    root@server1:~# gluster volume create replicated replica 4 transport tcp server1:/mnt/repl1 server2:/mnt/repl3 server1:/mnt/repl2 server2:/mnt/repl4 force                   
    Multiple bricks of a replicate volume are present on the same server. This setup is not optimal.
    Do you still want to continue creating the volume?  (y/n) y
    volume create: replicated: success: please start the volume to access data
    root@server1:~# gluster volume start replicated
    volume start: replicated: success 
    


    В данном случаи все файлы будут реплицироваться на все 4 папки. Т.е. во всех папках будет находиться один и тот же контент.

    2.3 Настройка striped volume


    При данной настройке файлы будут разбиваться на части и каждый кусок будет храниться в каждой из папок которая входит в volume. Такой тип распределения контента подходит для хранение емкостных данных с очень большим размером (видеоконтент в хорошем качестве, к примеру). Разумеется, количество папок входящих в volume должно быть эквивалентно значению stripe. Т.е. если у нас 5 серверов, то файл будет разбиваться на 5 частей и каждый его кусочек будет храниться на всех 5 серверах.
    Создадим на первом сервере паки strip1, strip2, на втором – strip3, strip4.
    root@server1:~# mkdir /mnt/strip{1,2}
    root@server2:~# mkdir /mnt/strip{3,4}
    


    Теперь можно создать и стартануть volume.
    root@server1:~# gluster volume create striped stripe 4 transport tcp server1:/mnt/strip1 server1:/mnt/strip2 server2:/mnt/strip3 server2:/mnt/strip4 force                   
    Creation of volume striped has been successful. Please start the volume to access data.
    root@server1:~# gluster volume start striped
    Starting volume striped has been successful 
    


    В данном случаи на каждом из 4-х серверов(папок) будет находиться по одному кусочку залитого файла.

    2.4 Настройка distributed striped volume


    При данной настройке файлы будут разбиваться на части и куски файлов будут распределяться по папкам и храниться в одной из них. Разумеется, количество папок входящих в volume должно быть кратно значению stripe. Т.е. если у нас 8 серверов и значение stripe равно 4, то файлы будут разбиваться на 4 части и храниться или на первых 4-х серверах или на следующей 4-ке серверов. Так же само, если у нас 4 сервера и stripe равно 2, то файлы будут разбиваться на 2 части и храниться на первых 2-х или на следующих 2-х серверах.
    Создадим на первом сервере паки dist-strip1, dist-strip2, на втором – dist-strip3, dist-strip4.
    root@server1:~# mkdir /mnt/dist-strip{1,2}
    root@server2:~# mkdir /mnt/dist-strip{3,4}
    


    Теперь можно создать и стартануть volume. При этом, очередность серверов играет очень большую роль: части файлов будут храниться на первой паре серверов (при stripe=2), или на первой четверке серверов (при stripe=4), а распределяться контент будет между первой и второй парой или четверкой и т.п.
    root@server1:~# gluster volume create distributed-striped stripe 2 transport tcp server1:/mnt/dist-strip1 server2:/mnt/dist-strip3 server1:/mnt/dist-strip2 server2:/mnt/dist-strip4 force
    Creation of volume distributed-striped has been successful. Please start the volume to access data.
    root@server1:~# gluster volume start distributed-striped
    Starting volume distributed-striped has been successful 
    


    2.5 Настройка distributed replicated volume


    При данной настройке данные будут распределяться в случайном порядке между папками и каждая папка имеет свою зеркальную копию. Разумеется, количество папок входящих в volume должно быть кратно значению replica. Т.е. если у нас 4 сервера и значение replica равно 2, то файлы будут распределяться по 2-м серверам в произвольном порядке, а 2 оставшихся сервера будут хранить идентичную копию контента первых двух. Если у нас 8 серверов и replica равно 4, то у нас будет одно зеркало из 4-х серверов.
    Создадим на первом сервере паки dist-repl1, dist-repl2, на втором – dist-repl3, dist-repl4.
    root@server1:~# mkdir /mnt/dist-repl{1,2}
    root@server2:~# mkdir /mnt/dist-repl{3,4}
    


    Теперь можно создать и стартануть volume. При этом, очередность серверов играет очень большую роль: первая пара(четверка) серверов записана последовательно составляет одну реплику. Т.е. если у нас 8 серверов и replica равна 4, то первые 4 сервера будут иметь один одинаковый контент, а вторая четверка будет иметь другой одинаковый контент, и т.п.

    root@server1:~# gluster volume create distributed-replicated replica 2 transport tcp server1:/mnt/dist-repl1 server2:/mnt/dist-repl3 server1:/mnt/dist-repl2 server2:/mnt/dist-repl4 force    
    Creation of volume distributed-replicated has been successful. Please start the volume to access data.
    root@server1:~# gluster volume start distributed-replicated
    Starting volume distributed-replicated has been successful 
    


    Теперь проверим какие volum-ы мы создали.
    root@server1:~# gluster volume info
     
    Volume Name: distributed
    Type: Distribute
    Volume ID: 01622619-fd93-4ee1-85ad-ca8cf1d85f7e
    Status: Started
    Number of Bricks: 4
    Transport-type: tcp
    Bricks:
    Brick1: server1:/mnt/dist1
    Brick2: server1:/mnt/dist2
    Brick3: server2:/mnt/dist3
    Brick4: server2:/mnt/dist4
     
    Volume Name: replicated
    Type: Replicate
    Volume ID: 67afcb89-7e5d-4a02-b4ac-0c2de7cd97be
    Status: Started
    Number of Bricks: 1 x 4 = 4
    Transport-type: tcp
    Bricks:
    Brick1: server1:/mnt/repl1
    Brick2: server2:/mnt/repl3
    Brick3: server1:/mnt/repl2
    Brick4: server2:/mnt/repl4
     
    Volume Name: striped
    Type: Stripe
    Volume ID: e9ef42bf-8265-4973-85de-4cafd2a68fec
    Status: Started
    Number of Bricks: 1 x 4 = 4
    Transport-type: tcp
    Bricks:
    Brick1: server1:/mnt/strip1
    Brick2: server1:/mnt/strip2
    Brick3: server2:/mnt/strip3
    Brick4: server2:/mnt/strip4
     
    Volume Name: distributed-striped
    Type: Distributed-Stripe
    Volume ID: aa70dd67-3ca9-48cb-865b-b10f8ca1ccad
    Status: Started
    Number of Bricks: 2 x 2 = 4
    Transport-type: tcp
    Bricks:
    Brick1: server1:/mnt/dist-strip1
    Brick2: server2:/mnt/dist-strip3
    Brick3: server1:/mnt/dist-strip2
    Brick4: server2:/mnt/dist-strip4
     
    Volume Name: distributed-replicated
    Type: Distributed-Replicate
    Volume ID: 59a819c4-6e84-4c49-9e90-23daa59d12ee
    Status: Started
    Number of Bricks: 2 x 2 = 4
    Transport-type: tcp
    Bricks:
    Brick1: server1:/mnt/dist-repl1
    Brick2: server2:/mnt/dist-repl3
    Brick3: server1:/mnt/dist-repl2
    Brick4: server2:/mnt/dist-repl4 


    Как видим, у нас 5 volum-ов с различным типом распределения контента. Можно переходить к клиентской части.

    3. Настройка клиентской части


    На всех клиентах нужно установить gluster-client из ppa репозиториев.
    root@client1:~#apt-get install python-software-properties
    root@client1:~#add-apt-repository ppa:semiosis/ubuntu-glusterfs-3.5
    root@client1:~#apt-get update
    root@client1:~#apt-get install glusterfs-client 
    


    Далее всего лишь нужно смонтировать сетевую папку по имени созданного volum-a. При этом IP или доменное имя сервера роли не играет, т.е. если у нас 10 серверов добавлены в один кластер, то на клиенте можно монтировать шару используя любой из 10-ти IP, имя volum-a остается тем же.

    3.1 Монтирование и тест distributed volume


    Подключаемся к клиенту, создаем папку для нового диска и монтируем distributed volume.
    root@client1:~# mkdir /mnt/distrib 
    root@client1:~# mount.glusterfs server1:/distributed /mnt/distrib/
    root@client1:~# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda1             7.3G  1.5G  5.5G  21% /
    udev                  236M  4.0K  236M   1% /dev
    tmpfs                  49M  280K   49M   1% /run
    none                  5.0M     0  5.0M   0% /run/lock
    none                  245M     0  245M   0% /run/shm
    server1:/distributed   30G  6.3G   22G  23% /mnt/distrib
    


    Как видим, у нас успешно смонтировался новый сетевой диск размером 30Гб(суммарный размер дисков всех серверов входящих в volume). Теперь создадим десяток файлов.
    root@client1:~# seq 1 10 | while read line; do echo "This is File${line}" > /mnt/distrib/file${line};done
    root@client1:~# ls /mnt/distrib/ 
    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
    


    Смотрим как распределился контент по серверам.
    root@server1:~# ls /mnt/dist[0-9]/
    /mnt/dist1/:
    file10  file3  file4  file9
    
    /mnt/dist2/:
    file7
    
    root@server2:~# ls /mnt/dist[0-9]/
    /mnt/dist3/:
    file1  file2
    
    /mnt/dist4/:
    file5  file6  file8
    


    Как видим, файлы раскидало по всем четырем папкам, какие входили в distributed volume.

    3.2 Монтирование и тест replicated volume


    Подключаемся к клиенту, создаем папку для нового диска и монтируем replicated volume.
    root@client1:~# mkdir /mnt/replica
    root@client1:~# mount.glusterfs server1:/replicated /mnt/replica/
    root@client1:~# df -h
    Filesystem           Size  Used Avail Use% Mounted on
    /dev/sda1            7.3G  1.5G  5.5G  21% /
    udev                 131M  4.0K  131M   1% /dev
    tmpfs                 28M  280K   28M   1% /run
    none                 5.0M     0  5.0M   0% /run/lock
    none                 140M     0  140M   0% /run/shm
    server1:/replicated  7.3G  1.9G  5.1G  28% /mnt/replica 
    


    Как видим, у нас успешно смонтировался новый сетевой диск размером 7.3Гб(суммарный размер дисков всех серверов входящих в volume разделенный на число реплик). Теперь создадим десяток файлов.
    root@client1:~# seq 1 10 | while read line; do echo "This is File${line}" > /mnt/replica/file${line};done
    root@client1:~# ls /mnt/replica/ 
    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
    


    Смотрим как распределился контент по серверам.
    root@server1:~# ls /mnt/repl*
    /mnt/repl1:
    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
    
    /mnt/repl2:
    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9 
    
    root@server2:~# ls /mnt/repl*
    /mnt/repl3:
    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
    
    /mnt/repl4:
    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
    


    Как видим, файлы зеркально скопировались в каждую папку, которая входили в replicated volume.

    3.3 Монтирование и тест striped volume


    Подключаемся к клиенту, создаем папку для нового диска и монтируем striped volume.
    root@client1:~# mkdir /mnt/strip
    root@client1:~# mount.glusterfs server1:/striped /mnt/strip/
    root@client1:~# df -h
    Filesystem        Size  Used Avail Use% Mounted on
    /dev/sda1         7.3G  1.5G  5.5G  21% /
    udev              131M  4.0K  131M   1% /dev
    tmpfs              28M  280K   28M   1% /run
    none              5.0M     0  5.0M   0% /run/lock
    none              140M     0  140M   0% /run/shm
    server1:/striped   30G  6.3G   22G  23% /mnt/strip 
    


    Как видим, у нас успешно смонтировался новый сетевой диск размером 30Гб(суммарный размер дисков всех серверов входящих в volume). Теперь создадим пару больших файлов и скопируем в папку.
    root@client1:~# dd if=/dev/urandom of=test2.bin bs=30M count=10
    root@client1:~# dd if=/dev/urandom of=test1.bin bs=30M count=10
    root@client1:~# cp test* /mnt/strip/
    root@client1:~# ls -lh /mnt/strip/
    total 601M
    -rw-r--r-- 1 root root 300M Mar  2 14:13 test1.bin
    -rw-r--r-- 1 root root 300M Mar  2 14:13 test2.bin
    


    Как видно, у нас в папке лежит 2 файла размером 300Мб. Теперь посмотрим как распределился контент по серверам.
    root@server1:~# ls -lh /mnt/strip*
    /mnt/strip1:
    total 151M
    -rw-r--r-- 2 root root  75M Mar  2 14:13 test1.bin
    -rw-r--r-- 2 root root  75M Mar  2 14:13 test2.bin
    
    /mnt/strip2:
    total 151M
    -rw-r--r-- 2 root root  75M Mar  2 14:13 test1.bin
    -rw-r--r-- 2 root root  75M Mar  2 14:13 test2.bin 
    
    
    root@server2:~# ls -lh /mnt/strip*
    /mnt/strip3:
    total 151M
    -rw-r--r-- 2 root root  75M Mar  2 14:13 test1.bin
    -rw-r--r-- 2 root root  75M Mar  2 14:13 test2.bin
    
    /mnt/strip4:
    total 151M
    -rw-r--r-- 2 root root  75M Mar  2 14:13 test1.bin
    -rw-r--r-- 2 root root  75M Mar  2 14:13 test2.bin
    
    


    Как видим, файлы были разбиты на равные части по 75Мб и разбросаны по всем четырем папкам, какие входили в striped volume.

    3.4 Монтирование и тест distributed striped volume


    Подключаемся к клиенту, создаем папку для нового диска и монтируем distributed striped volume.
    root@client1:~# mkdir /mnt/distrib-strip
    root@client1:~# mount.glusterfs server1:/distributed-striped /mnt/distrib-strip/
    root@client1:~# df -h
    Filesystem                    Size  Used Avail Use% Mounted on
    /dev/sda1                     7.3G  1.8G  5.2G  25% /
    udev                          131M  4.0K  131M   1% /dev
    tmpfs                          28M  280K   28M   1% /run
    none                          5.0M     0  5.0M   0% /run/lock
    none                          140M     0  140M   0% /run/shm
    server1:/distributed-striped   30G  6.9G   21G  26% /mnt/distrib-strip 
    


    Как видим, у нас успешно смонтировался новый сетевой диск размером 30Гб(суммарный размер дисков всех серверов входящих в volume). Теперь создадим пару больших файлов и скопируем в папку.
    root@client1:~# dd if=/dev/urandom of=test2.bin bs=30M count=10
    root@client1:~# dd if=/dev/urandom of=test1.bin bs=30M count=10
    root@client1:~# cp test* /mnt/distrib-strip/
    root@client1:~# ls -lh /mnt/distrib-strip/
    total 600M
    -rw-r--r-- 1 root root 300M Mar  2 14:35 test1.bin
    -rw-r--r-- 1 root root 300M Mar  2 14:34 test2.bin 
    


    Как видно, у нас в папке лежит 2 файла размером 300Мб. Теперь посмотрим как распределился контент по серверам.
    root@server1:~# ls -lh /mnt/dist-strip*  
    /mnt/dist-strip1:
    total 151M
    -rw-r--r-- 2 root root 150M Mar  2 14:35 test1.bin
    
    /mnt/dist-strip2:
    total 151M
    -rw-r--r-- 2 root root 150M Mar  2 14:34 test2.bin
    
    root@server2:~# ls -lh /mnt/dist-strip*  
    /mnt/dist-strip3:
    total 151M
    -rw-r--r-- 2 root root 150M Mar  2 14:35 test1.bin
    
    /mnt/dist-strip4:
    total 151M
    -rw-r--r-- 2 root root 150M Mar  2 14:34 test2.bin
    


    Как видим, файлы были разбросаны по разным папкам и разбиты на равные части по 150Мб.

    3.5 Монтирование и тест distributed replicated volume


    Подключаемся к клиенту, создаем папку для нового диска и монтируем distributed replicated volume.
    root@client1:~# mkdir /mnt/distrib-repl
    root@client1:~# mount.glusterfs server1:/distributed-replicated /mnt/distrib-repl/
    root@client1:~# df -h
    Filesystem                       Size  Used Avail Use% Mounted on
    /dev/sda1                        7.3G  1.8G  5.1G  27% /
    udev                             131M  4.0K  131M   1% /dev
    tmpfs                             28M  280K   28M   1% /run
    none                             5.0M     0  5.0M   0% /run/lock
    none                             140M     0  140M   0% /run/shm
    server1:/distributed-replicated   15G  4.4G  9.5G  32% /mnt/distrib-repl 
    


    Как видим, у нас успешно смонтировался новый сетевой диск размером 15Гб(суммарный размер дисков всех серверов входящих в volume разделенный на число реплик). Теперь создадим десяток файлов.
    root@client1:~# seq 1 10 | while read line; do echo "This is File${line}" > /mnt/distrib-repl/file${line};done    
    root@client1:~# ls /mnt/distrib-repl/
    file1  file10  file2  file3  file4  file5  file6  file7  file8  file9 
    


    Смотрим как распределился контент по серверам.
    root@server1:~# ls /mnt/dist-repl*
    /mnt/dist-repl1:
    file10  file3  file4  file7  file9
    
    /mnt/dist-repl2:
    file1  file2  file5  file6  file8 
    
    root@server2:~# ls /mnt/dist-repl*
    /mnt/dist-repl3:
    file10  file3  file4  file7  file9
    
    /mnt/dist-repl4:
    file1  file2  file5  file6  file8
    
    


    Как видим, первый сервер имеет такой же контент как и второй разбросанный по папкам.

    4. Заключение


    В реальных условиях каждая папка должна быть отдельно смонтированным диском (не рутовой файловой системой). Теперь вы знакомы с каждым типом распределения контента, который используется в glusterFS.

    GlusterFS хорошо себя показывает в локальных сетях при базовой настройке, если переходить к распределённых по странам датацентрах, то нужно проводить тюнинг настроек как на стороне сервера, так и при монтирование на клиенте, о чем пойдет речь в следующей статье.
    Поделиться публикацией
    Комментарии 18
      +2
      Для тех, кто будет скоро обновляться с Debian wheezy до jessie с выходом последнего, будьте бдительны: GlusterFS 3.2 нельзя обновить до 3.5 «просто так».

      Обязательно ознакомьтесь:
        0
        либо можно будет посидеть на 7 с lts репами :)
          0
          А обещают ему LTS разве?
            0
            Вообще, пишут что все зависит от успеха squeezy, если будет востребован, то будет LTS для wheezy и jessie
        0
        Тогда и я добавлю до кучи (glusterfs-server 3.5.2-1): В случае если соединение между серверами содержащими replicated volume было какое-то отсутствовала, то произойдёт объединение содержимого brick. И в случае, если оба файла с имеют одно имя, то более старый будет затёрт.

          0
          И ещё докину: (glusterfs-server 3.5.2-1): Для replicated volume сервера синхронизируют данные 1-м потоком, что весьма важно при выборе между IEEE 802.3ad и balance-rr
          0
          В конфигурации distributed replicated volume будет ли GlusterFS нормально работать при потере сервера? Насколько безболезненно восстанавливается система при появлении сервера обратно? Как ведет себя GlusterFS в состоянии split brain (когда есть, скажем 2 сервера, клиент видит оба сервера, а вот они друг друга не видят)?
            0
            В конфигурации distributed replicated volume будет ли GlusterFS нормально работать при потере сервера?

            У нас на проекте был установлен и настроен glusterFS с 4-х серверов (по 20ТБ каждый) в distributed replicated режиме. Когда один из серверов падал — на клиенте никаких проблем не было, НО если при монтировании (с типом glusterfs) был прописан IP или домен сервера, который упал (mount.glusterfs dead-server.com:/testvol /mnt/glusterfs) — то клиент зависал при обращении к папке. Но я напишу, как бороться с этой проблемой в следующей статье.

            Насколько безболезненно восстанавливается система при появлении сервера обратно?

            Ничего делать не надо — восстановление вмешательств не требует.

            Как ведет себя GlusterFS в состоянии split brain

            За 11 месяцев работы — таких проблем не было. Но читал, что сталкивались люди с таким делом и даже tools для фикса есть.
              0
              Со «следующей статьёй» (как это часто бывает на Хабре) не срослось :)
            0
            С нетерпением жду вторую часть про тюнинг для гео-распределенной системы )
            С год назад тестировал тоже, но времени не хватило подробно разобраться.
            Заодно вопрос — работали ли с какими-то другими распределенными файловыми системами (особенно для задач когда ноды находятся в разных дата-центрах)? GlusterFS как лучшую выбирали или просто так сложилось? )
            Спасибо.
              +1
              работали ли с какими-то другими распределенными файловыми системами?

              Фирма разжилась на деньги, и купили супер-стореджы (2 x SuperServer 6047R-E1R36N x 110ТБ) и перешли на NFS из-за некоторых специфичных нюансов самой системы(не из-за проблем или прочего связанного с gluster-ом). Еще смотрим в сторону hadoop и ceph, но не хватает ресурсов(время и людей) для деплоя и теста.

              GlusterFS как лучшую выбирали или просто так сложилось?

              Когда пришел на проект — он уже был установлен и работал, деваться было некуда)
              0
              Немного визуального материала



                0
                Спасибо, добавлю.
                  0
                  Сомнительно что реплицируемые данные будут храниться на одной физической железке в последнем варианте.
                  Можно конечно и так настроить, но это выстрел себе в ногу.
                  0
                  Кто-нибудь сравнивал с GlusterFS с MooseFS? Я имею в виду впечатления от работы, ну и кто как в продакшене себя ведет.
                    0
                    Тоже интересует данный вопрос.
                    0
                    А что происходит если один брик вываливается из реплики? Будет ли задержка и есть ли таймаут?
                      0
                      А как замену HDFS не смотрели? Этот момент очень интересует

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое