Игорь Олемской — практические заметки по системному администрированию Linux CentOS

Архив февраля, 2011

Настройка GlusterFS 3.1.2 под CentOS 5 в контейнере OpenVZ

2 комментария

Если вам нужен NFS (или Gluster Native FS) в OpenVZ-контейнере, GlusterFS — отличное решение.

Ниже будут встречаться следующие обозначения:

  • HN1 — первая физическая нода
  • HN2 — вторая физическая нода
  • VPS1 — первый OpenVZ-контейнер
  • VPS2 — второй OpenVZ-контейнер

1. Создаем на HN1 и HN2 файл «/etc/sysconfig/modules/fuse.modules» со следующим содержанием:

/sbin/modprobe fuse

И делаем его исполняемым:

chmod +x /etc/sysconfig/modules/fuse.modules

2. Добавляем на HN1 и HN2 в файл «/etc/vz/conf/$VEID.conf» следующие строки:

CAPABILITY="NET_ADMIN:on SYS_ADMIN:on"
DEVICES="c:10:229:rw"

3. На контейнерах VPS1 и VPS2 создаем файл «/etc/init.d/fusedev» со следующим содержимым:

#!/bin/bash
#
# chkconfig: 05 05 05
# description: /dev/fuse file creation
#
# Get function from functions library

. /etc/rc.d/init.d/functions
/bin/mknod /dev/fuse c 10 229

И делаем его исполняемым, а так же добавляем в автозагрузку fusedev и автоматическое монтирование сетевых файловых систем из /etc/fstab:

chmod +x /etc/init.d/fusedev
chkconfig fusedev on
chkconfig netfs on

4. В контейнерах VPS1 и VPS2 в файле «/etc/glusterfs/glusterd.vol» удаляем из строки «rdma»:

option transport-type socket

5. Загружаем по ссылке «http://download.gluster.com/pub/gluster/glusterfs/3.1/LATEST/» RPM-пакеты «glusterfs-core» и «glusterfs-fuse», а так по ссылке «http://download.gluster.com/pub/gluster/glusterfs/fuse/» — fuse.
Устанавливаем на VPS1 и VPS2 пакеты «fuse, fuse-libs, glusterfs-core, glusterfs-fuse».

6. Прописываем на VPS1 и VPS2 в файле «/etc/hosts»:

10.0.0.11 lapi1.domain.ru lapi1
10.0.0.12 lapi2.domain.ru lapi2

7. На VPS1 и VPS2 создаем папки для хранилища:

mkdir -p /storage/api

8. Перезагружаем HN1 и HN2.

9. Составляем кластер. Запускаем на VPS1 команду (lapi2 — хост из /etc/hosts):

gluster peer probe lapi2

10. Создаем и запускаем для примера реплицируемый volume с названием «api» (подробнее о replication и stripe):

gluster volume create api replica 2 transport tcp lapi1:/storage/api lapi2:/storage/api
gluster volume start api

lapi1 и lapi2 — хосты из /etc/hosts.

11. И некоторые оптимизации — добавляем кэш. Выполняем команды на VPS1:

gluster volume set api performance.cache-size 500MB
gluster volume set api performance.write-behind-window-size 500MB

12. Добавляем в автозагрузку VPS1 и VPS2 монтирование файловой системы. В файл «/etc/fstab» добавляем:

localhost:/api /mnt/api glusterfs defaults,_netdev,noatime 0 0

Монтируем GlusterFS:

mount -a

Готово!

df -H

08.02.2011

Написал Игорь Олемской

Рубрики: Мои записи