The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Отказоустойчивое хранилище с автоматической репликацией на базе GlusterFS
Инструкция по создании зеркалируемого (реплицированного) между двумя машинами
хранилища файлов на базе GlusterFS (http://www.gluster.com/) и Ubuntu 9.10.
Добавляемый в созданное хранилище файл на первом сервере буде сразу доступен на
втором и наоборот, при этом данные на каждой машине будут использоваться из
локального раздела, что обеспечивает значительно более высокую
производительность, по сравнению с NFS. С особенности кластерной файловой
системы GlusterFS можно познакомиться на данной странице.

В рассматриваемой конфигурации задействованы три машины: два сервера
(server1.example.com/192.168.0.100, server2.example.com/192.168.0.101) и один
клиент (client1.example.com: IP адрес 192.168.0.102). Серверы выступают в роли
машин для экспорта дисковых разделов, доступ к отказоустойчивому хранилищу
осуществляется на стороне клиента.

В представленном примере серверы и клиент размещены на разных машинах, но в
реальных условиях клиентские и серверные составляющие обычно совмещены  на
одной машине. Соответствующую конфигурацию можно сгенерировать при помощи
утилиты glusterfs-volgen.

Установка серверной части GlusterFS на server1.example.com и server2.example.com:

Так как GlusterFS доступен в стандартном репозитории Ubuntu 9.10, достаточно
выполнить (сейчас и далее все действия выполняются под пользователем root):

   apt-get install glusterfs-server

Для организации хранилища на сервере будем использовать каталог /data/export.

Приводим файл конфигурации /etc/glusterfs/glusterfsd.vol на серверах в следующий вид:

   volume posix
    type storage/posix
    option directory /data/export
   end-volume

   volume locks
    type features/locks
    subvolumes posix
   end-volume

   volume brick
    type performance/io-threads
    option thread-count 8
    subvolumes locks
   end-volume

   volume server
    type protocol/server
    option transport-type tcp
    # далее через запятую нужно перечислить IP или имена хостов клиентов
    # можно использовать маски вида 192.168.*,
    option auth.addr.brick.allow 192.168.0.102 
    subvolumes brick
   end-volume

Запускаем сервер GlusterFS:

   /etc/init.d/glusterfs-server start


Настройка клиента GlusterFS

Для установки клиентской части GlusterFS выполняем:

   aptitude install glusterfs-client glusterfs-server

Хранилище будем монтировать в каталог /mnt/glusterfs.

Приводим файл конфигурации клиента /etc/glusterfs/glusterfs.vol в следующий вид:

   volume remote1
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.0.100 # server1.example.com
    option remote-subvolume brick
   end-volume

   volume remote2
    type protocol/client
    option transport-type tcp
    option remote-host 192.168.0.101 # server2.example.com
    option remote-subvolume brick
   end-volume

   volume replicate
    type cluster/replicate
    subvolumes remote1 remote2
   end-volume

   volume writebehind
    type performance/write-behind
    option window-size 1MB
    subvolumes replicate
   end-volume

   volume cache
    type performance/io-cache
    option cache-size 512MB
    subvolumes writebehind
   end-volume


Монтируем файловую систему GlusterFS в каталог /mnt/glusterfs:

   glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs
или
   mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs

Для автоматизации монтирования во время загрузки в /etc/fstab сдедует добавить:

   /etc/glusterfs/glusterfs.vol  /mnt/glusterfs  glusterfs  defaults  0  0

Тестирование

Создаем в GlusterFS разделе на стороне клиента несколько файлов:

   touch /mnt/glusterfs/test1
   touch /mnt/glusterfs/test2

Эти файла сразу должны появиться на серверах в каталоге /data/export

Выключим первый сервер и добавить на стороне клиента еще несколько файлов:

   touch /mnt/glusterfs/test3
   touch /mnt/glusterfs/test4
   rm -f /mnt/glusterfs/test2

Изменения должны появиться на втором сервере.

Включим первый сервер и увидим, что данные на нем неактуальны. Изменения будут
синхронизированы автоматически, для инициирования синхронизации на стороне
клиента достаточно выполнить любую операцию с разделом, например, посмотреть
содержимое через "ls -l /mnt/glusterfs/".


GlusterFS в роли замены NFS с поддержкой кэширования.

Чтобы примонтировать раздел в NFS-подобном виде, без репликации, достаточно
добавить в конфигурации сервера в блоке "volume locks" опцию "option
mandatory-locks on". На стороне клиента нужно закомментировать в конфигурации
блок "volume replicate" и  убрать блок, описывающий вторую реплицируемую
директорию "volume remote2". В секции "volume writebehind" на стороне клиента
при этом заменяем опцию "subvolumes replicate" на "subvolumes remote", а также
можем уменьшить размер окна до 1 Мб ("option window-size 1MB").

Создание распределенного на 4 узла хранилища

При реализации хранилища, распределенного на 4 узла, настройка производится
аналогично, по аналогии с remote2 добавляются разделы remote3 и remote4. Вместо
"volume replicate" добавляется раздел "volume distribute":

   ...
   volume remote3
     type protocol/client
     option transport-type tcp
     option remote-host server3.example.com
     option remote-subvolume brick
   end-volume

   volume remote4
     type protocol/client
     option transport-type tcp
     option remote-host server4.example.com
     option remote-subvolume brick
   end-volume

   volume distribute
     type cluster/distribute
     subvolumes remote1 remote2 remote3 remote4
   end-volume
   ...

В блоке "volume writebehind" приписывается "subvolumes distribute".

Конфигурацию можно сгенерировать автоматически, например, запустив на одном из серверов:

   glusterfs-volgen --name repstore1 --raid 1 hostname1:/export/sdb1 \
     hostname2:/export/sdb1 hostname3:/export/sdb1 hostname4:/export/sdb1

При надлежащей настройке параметров доступа к серверам все параметры
конфигурации серверных и клиентских составляющих на всех машинах
распределенного хранилища будут обновлены автоматически. Для систем не
поддерживающих GlusterFS доступ к хранилищу можно организовать через NFS, SMB
или WebDAV.
 
15.01.2010 , Автор: petrov.pash , Источник: http://www.howtoforge.net/high-avai...
Раздел:    Корень / Администратору / Система / Кластерные технологии

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, Nas_tradamus, 17:52, 15/01/2010 [ответить] [смотреть все]
  • +/
    Отличная статья! Спасибо.
     
  • 1.2, VecH, 20:13, 15/01/2010 [ответить] [смотреть все]
  • +/
    А как можно автоматизировать процесс синхронизации в случае выключения одного из серверов и возобновления его работы?
     
     
  • 2.3, VecH, 20:14, 15/01/2010 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    И что будет если разместить там базу MySQL PostreeSQL ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.5, EveryonE, 23:55, 15/01/2010 [^] [ответить] [смотреть все]  
  • +/
    при запуске второй БД файл окажется залочен ... весь текст скрыт [показать]
     
     
  • 4.7, Sw00p aka Jerom, 10:01, 16/01/2010 [^] [ответить] [смотреть все]  
  • +/
    вот вот и ваще мускул рекомендует не ставить базу на НФС лайк Фс а сам гластер э... весь текст скрыт [показать]
     
     
  • 5.9, Аноним, 10:42, 16/01/2010 [^] [ответить] [смотреть все]  
  • +/
    Аргументы не, в самом деле интересно про грабли, ибо серьезно думаю над ... весь текст скрыт [показать]
     
     
  • 6.14, Sw00p aka Jerom, 13:09, 16/01/2010 [^] [ответить] [смотреть все]  
  • +/
    читаем коммент номер 8 внизу я ещё не говорю про производительность пс если ... весь текст скрыт [показать]
     
  • 5.10, VecH, 10:48, 16/01/2010 [^] [ответить] [смотреть все]  
  • +/
    А в какую сторону посмотреть для продакшен ... весь текст скрыт [показать]
     
     
  • 6.11, EveryonE, 12:17, 16/01/2010 [^] [ответить] [смотреть все]  
  • +/
    в цель какая - отказоустойчивость ... весь текст скрыт [показать]
     
     
  • 7.12, VecH, 12:25, 16/01/2010 [^] [ответить] [смотреть все]  
  • +/
    отказоустойчивость и полная сохранность данных при выходе из строя любого из хра... весь текст скрыт [показать]
     
     
  • 8.15, Sw00p aka Jerom, 13:11, 16/01/2010 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален вот как раз мне понравился механизм фейловера люстры пра... весь текст скрыт [показать]
     
  • 8.16, EveryonE, 13:14, 16/01/2010 [^] [ответить] [смотреть все]  
  • +/
    gt оверквотинг удален тогда вас интересует репликация на уровне приложения - m... весь текст скрыт [показать]
     
  • 6.13, Sw00p aka Jerom, 13:05, 16/01/2010 [^] [ответить] [смотреть все]  
  • +/
    для продакшена советую либо GPFS либо LustreFS если нужна распределённая шаред Ф... весь текст скрыт [показать]
     
     
  • 7.19, Аноним, 22:13, 16/01/2010 [^] [ответить] [смотреть все]  
  • +/
    А что скажете насчет drbd oсf2 для последующего экспорта в nfs и чтоб все жило... весь текст скрыт [показать]
     
     
  • 8.23, Sw00p aka Jerom, 13:22, 17/01/2010 [^] [ответить] [смотреть все]  
  • +/
    про oсf2 как раз хотел и сказать отмечу что oсf2 это шаред файловая система ... весь текст скрыт [показать]
     
     
  • 9.25, Аноним, 21:26, 17/01/2010 [^] [ответить] [смотреть все]  
  • +/
    а что делать при отказе хранилища в моем случае это обычныые сервера iscsi ... весь текст скрыт [показать]
     
     
  • 10.27, Sw00p aka Jerom, 23:37, 17/01/2010 [^] [ответить] [смотреть все]  
  • +/
    вероятность полного слета хранилища мала у вас может слететь один диск в рейде н... весь текст скрыт [показать]
     
  • 2.4, Антон, 20:25, 15/01/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Как я понял оно автоматически синхронизируется, при выполнении первой операции с... весь текст скрыт [показать] [показать ветку]
     
     ....нить скрыта, показать (16)

  • 1.6, bitlz, 08:58, 16/01/2010 [ответить] [смотреть все]  
  • +/
    А поддержку ACL в ней сделали ?
     
  • 1.8, Sw00p aka Jerom, 10:04, 16/01/2010 [ответить] [смотреть все]  
  • +/
    мне не нравиться то что репликация происходит только тогда когда идёт запрос на файл или на листинг директории

    получается ситуация если на одной ноде положили файл и на другой ноде не производили никаких действий то в случаее падения первой ноды добавленные файлы на второй ноде не появятся

     
     
  • 2.17, Nas_tradamus, 21:27, 16/01/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Ценное замечание Кто-нибудь из спецов не посоветует решение полноценной реплика... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.18, Sw00p aka Jerom, 22:04, 16/01/2010 [^] [ответить] [смотреть все]  
  • +/
    вы бенчмарк проводили как ведёт себя такая система при интенсивной записи на м... весь текст скрыт [показать]
     
     
  • 4.20, Nas_tradamus, 22:41, 16/01/2010 [^] [ответить] [смотреть все]  
  • +/
    Нет Подумал что такая система не должна влиять на производительность самого хра... весь текст скрыт [показать]
     
     
  • 5.21, named, 11:20, 17/01/2010 [^] [ответить] [смотреть все]  
  • +/
    под FreeBSD только костыль через GEOM, geom_gate и gmirror, в продакшен я бы не ... весь текст скрыт [показать]
     
  • 5.22, Sw00p aka Jerom, 13:13, 17/01/2010 [^] [ответить] [смотреть все]  
  • +/
    20 минут чтобы скопировать 500 метров с мастера на слейв О_о пс переходите... весь текст скрыт [показать]
     
  • 1.24, empty, 20:51, 17/01/2010 [ответить] [смотреть все]  
  • +/
    А есть какие-нибудь бенчмарки для glusterfs? типа bonnie+ - какая там будет скорость записи?
     
     
  • 2.26, Sw00p aka Jerom, 23:34, 17/01/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    тока не бони а обычный дд http www gluster com community documentation index p... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.29, empty, 09:52, 18/01/2010 [^] [ответить] [смотреть все]  
  • +/
    >тока не бони а обычный дд
    >
    >http://www.gluster.com/community/documentation/index.php/GlusterFS_2.0_I/O_Be
    >
    >ужос не производительность
    >

    Вроде бы ничего так себе производительность. Если бы они тома в страйп сконфигурировали, может и вообще-бы запредельные значения получились бы. Но хотелось бы на bonnie+ посмотреть.

    А этот glusterfs - это же fuse файловая система? Тогда как они монтировали эту систему на клиенте - с флагом direct_io или без? Оно может и улучшит значения чтения/записи, но это автоматически влечет запрет на выполнение в этой файловой системе.

    http://article.gmane.org/gmane.comp.file-systems.fuse.devel/5292

    >[оверквотинг удален]
    >          
    >          
    >        17,7 35,7
    >mit GlusterFS 1 Thread pro Server      
    >          33,1
    >27,85
    >mit GlusterFS 15 Lese- und 5 Schreibthreads pro Server 57,56 11,88
    >
    >lesen - чтение
    >shreiden - дословно писать

     
  • 2.28, Sw00p aka Jerom, 23:47, 17/01/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    >А есть какие-нибудь бенчмарки для glusterfs? типа bonnie+ - какая там будет
    >скорость записи?

    а еще смешно выглядит это

    гластер пытались доказать что он круче )) люстры

    http://www.gluster.com/community/documentation/index.php/GlusterFS_1.3.pre2-V

    если люстру маштабировать горизонтально то производительность также будет увеличиваться (хотя есть предел если не ошибаюсь до 64 нод (не помню))

    а гластер ваше чем больше нод тем хуже будет работать

     
     
  • 3.30, empty, 10:01, 18/01/2010 [^] [ответить] [смотреть все]  
  • +/
    >[оверквотинг удален]
    >а еще смешно выглядит это
    >
    >гластер пытались доказать что он круче )) люстры
    >
    >http://www.gluster.com/community/documentation/index.php/GlusterFS_1.3.pre2-V
    >
    >если люстру маштабировать горизонтально то производительность также будет увеличиваться (хотя есть предел
    >если не ошибаюсь до 64 нод (не помню))
    >
    >а гластер ваше чем больше нод тем хуже будет работать

    Я так понял, что они сконфигурировали с одинаковым количеством data-server-ов, что Люстру, что Гластер. Получилось, что на 10 нодах они ведут себя примерно одинаково.

     
     
  • 4.31, Sw00p aka Jerom, 10:44, 18/01/2010 [^] [ответить] [смотреть все]  
  • +/
    http://manual.lustre.org/manual/LustreManual16_HTML/Benchmarking.html

    вот бенч боннии и айозона (версия люстры староватая но всёже)

     
     
  • 5.32, empty, 11:07, 18/01/2010 [^] [ответить] [смотреть все]  
  • +/
    >http://manual.lustre.org/manual/LustreManual16_HTML/Benchmarking.html
    >
    >вот бенч боннии и айозона (версия люстры староватая но всёже)

    Ну, это ж для Люстры ... С ней и так всё более-менее понятно (как и с Саном). А я от автора статьи (как, по всей видимости, единственному человеку на всем опеннете, у которого есть работающая гластерфс), чтоб он показал свои бенчмарки и объяснил как там обстоят дела с direct_io и исполняемыми файлами.

     
     
  • 6.33, Sw00p aka Jerom, 11:34, 18/01/2010 [^] [ответить] [смотреть все]  
  • +/
    время будет проведу бенч на поверных серверах
    можно будет посмотреть здеся http://paranoidchaos.livejournal.com/
     
  • 6.34, Нихт Арбайтен, 21:19, 19/01/2010 [^] [ответить] [смотреть все]  
  • +/
    У меня вот что получилось с одним сервером и одним клиентом на локалхосте Versi... весь текст скрыт [показать]
     
  • 1.36, Нихт Арбайтен, 11:31, 20/01/2010 [ответить] [смотреть все]  
  • +/
    Ребята, прежде чем каменты тереть - прочтите их внимательно.

    "Приводим файл конфигурации клиента /etc/glusterfs/glusterfsd.vol в следующий вид:"

    Здесь /etc/glusterfs/glusterfsd.vol нужно заменить на /etc/glusterfs/glusterfs.vol, поскольку этот файл потом используется в:

    "Монтируем файловую систему GlusterFS в каталог /mnt/glusterfs:

       glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs
    или
       mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs"

    А glusterfsd.vol - это файл конфигурации сервера.

    О чём вам аноним в потёртом каменте и напейсал.

     
  • 1.37, luzers, 21:42, 26/01/2010 [ответить] [смотреть все]  
  • +/
    граждане а есть мастер-мастер ФС? время репликации неважно. работающяя нормально. желательно маштабируемая во все стороны. географически распределённая.
     
     
  • 2.38, empty, 15:57, 27/01/2010 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    >граждане а есть мастер-мастер ФС? время репликации неважно. работающяя нормально. желательно маштабируемая
    >во все стороны. географически распределённая.

    Работающая нормально - самый сложный пункт.

    Есть XtreemFS сделанная с прицелом на Cloud-вычисления, можно попробовать, может это, то что тебе нужно (если только низкая производительность не смущает) ...

     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList