[an error occurred while processing this directive]

Отказоустойчивое хранилище с автоматической репликацией на базе 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...
Ключи: glusterfs, nfs, cache, disk, ubuntu, linux, cluster
Раздел:    Корень / Администратору / Система / Кластерные технологии

[an error occurred while processing this directive]

[an error occurred while processing this directive]