Основное хранилище данных

Материал из ISPWiki

Перейти к: навигация, поиск

Содержание

Подготовка сервера

Разметка диска для DRBD

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

DRBD – это блочное устройство, которое позволяет организовывать RAID1-массив через сеть. На каждом из хранилищ DRBD связывает виртуальное устройство /dev/drbdX (Х – номер устройства) и локальный раздел диска. Запись информации осуществляется на основном сервере хранилища на устройство /dev/drbdX, которое передает эти данные для записи на связанный локальный раздел диска и отсылает по сети на резервный сервер хранилища. В случае выхода из строя основного сервера хранилища его место автоматически занимает резервный.

Для организации хранилища на основе DRBD необходимо создать 2 дополнительных раздела на жестком диске для:

  • метаданных (расчет размера описан здесь);
  • хранилища.

Настройка внутренней сети

Если на текущем сервере нет второго сетевого интерфейса, то пропустите данный шаг.

Откройте файл /etc/network/interfaces

 # nano /etc/network/interfaces

и добавьте строки

 auto ethX
 iface ethX inet static
     address 10.0.0.2
     netmask 255.0.0.0

где X - это номер сетевого интерфейса.

Чтобы изменения вступили в силу, необходимо выполнить команду:

 # /etc/init.d/networking restart

Установка и настройка дисковых квот

Выполните установку пользовательской утилиты для работы с дисковыми квотами:

 # apt-get install quota

Если Вы не используете DRBD, то откройте файл /etc/fstab

 # nano /etc/fstab

и добавьте опции grpquota и usrquota к разделу хранилища

 ...
 /dev/sdaX / ext4 errors=remount-ro,grpquota,usrquota 0 1
 ...

где X - это номер раздела диска.

Перемонтируйте раздел

 # mount -o remount,grpquota,usrquota /dev/sdaX

Установка и настройка libnss-extrausers

Выполните установку дополнительного модуля для NSS сервиса, который предоставляет системе записи о пользователях и группах из дополнительных файлов: /var/lib/extrausers/passwd, /var/lib/extrausers/shadow и /var/lib/extrausers/groups.

 # apt-get install libnss-extrausers

Откройте файл /etc/nsswitch.conf

 # nano /etc/nsswitch.conf

и измените опции passwd, group и shadow

 ...
 passwd: compat extrausers
 group:  compat extrausers
 shadow: compat extrausers
 ...

Установка и настройка NFS-сервера

Выполните установку NFS-сервера командой:

 # apt-get install nfs-kernel-server

Откройте файл /etc/default/nfs-common

 # nano /etc/default/nfs-common

и измените опции NEED_STATD и NEED_IDMAPD

 ...
 NEED_STATD="yes"
 ...
 NEED_IDMAPD="yes"
 ...

Откройте файл /etc/idmapd.conf

 # nano /etc/idmapd.conf

и измените опции Domain в разделе General и Method в разделе Translation

 [General]
 Domain = cluster.lan
 ...
 [Translation]
 Method = nsswitch
 ...

Создайте директории /storage

 # mkdir /storage

Откройте файл /etc/exports

 # nano /etc/exports

и добавьте строку

 /storage 10.0.0.0/8(rw,async,secure,no_root_squash,no_all_squash,no_subtree_check,fsid=root,no_acl)

Перезапустите NFS-сервер командой:

 # /etc/init.d/nfs-common restart

Установка и настройка DRBD

Если Вы не используете DRBD пропустите данный шаг.

Выполните установку модулей и утилит для поддержки DRBD:

 # apt-get install drbd8-utils drbd8-modules-`uname -r`

Откройте файл /etc/drbd.conf

 # nano /etc/drbd.conf

и измените следующим образом

 common {
     protocol C;
     syncer {
         rate 20M;
     }
     startup {
         wfc-timeout 1;
     }
 }
 resource storage {
     on H {
         address 10.0.0.2:7802;
         disk /dev/sdbX;
         flexible-meta-disk /dev/sdbY;
         device /dev/drbdZ;
     }
     on localhost {
         address 127.0.0.1:65535;
         disk /dev/sdbX;
         flexible-meta-disk /dev/sdbY;
         device /dev/drbdZ;
     }
 }

где H - имя локального хоста, X - номер устройства хранения, Y - номер устройства для метаданных и Z - номер DRBD устройства.

Загрузите модуль DRBD:

 # modprobe drbd

Произведите очистку устройства для хранения метаданных:

 # dd if=/dev/zero of=/dev/sdbY bs=1M

где Y - номер устройства для метаданных.

Создайте DRBD устройство:

 # drbdadm -- --force create-md storage

Подключите DRBD устройство:

 # drbdadm up storage

Переместите устройство ресурса в главную роль:

 # drbdadm -- --overwrite-data-of-peer primary storage

Создайте файловую систему:

 # mkfs.X /dev/drbdY

где X - файловая система и Y - номер DRBD устройства.

Установка и настройка Heartbeat

Если Вы не используете DRBD пропустите данный шаг.

Выполните установку heartbeat командой:

 # apt-get install heartbeat

Создайте и откройте файл /etc/ha.d/authkeys

 # touch /etc/ha.d/authkeys && nano /etc/ha.d/authkeys

и добавьте следующие строки

 auth 1
 1 md5 X

где X - это секретная фраза для аутентификации.

Установите права на файл /etc/ha.d/authkeys:

 # chmod 0600 /etc/ha.d/authkeys

Создайте и откройте файл /etc/ha.d/ha.cf

 # touch /etc/ha.d/ha.cf && nano /etc/ha.d/ha.cf

и добавьте следующие строки

 logfile /var/log/ha-log
 keepalive 1
 warntime 2
 deadtime 10
 initdead 30
 bcast ethX
 ucast ethX 10.0.0.2
 auto_failback off
 autojoin none
 node H fake
 stonith_host H external/fake

где X - номер сетевого интерфейса и H - имя локального хоста.

Создайте и откройте файл /usr/lib/stonith/plugins/external/fake

 # touch /usr/lib/stonith/plugins/external/fake && nano /usr/lib/stonith/plugins/external/fake

и добавьте следующие строки

 #!/bin/sh
 exit 0

Установите права на файл /usr/lib/stonith/plugins/external/fake:

 # chmod +x /usr/lib/stonith/plugins/external/fake

Создайте и откройте файл /etc/ha.d/haresources

 # touch /etc/ha.d/haresources && nano /etc/ha.d/haresources

и добавьте следующую строку

 H IPaddr2::10.0.0.1/32/ethX drbddisk::storage Filesystem::/dev/drbdY::/storage::Z::usrquota,grpquota nfs-kernel-server

где H - имя локального хоста, X - номер сетевого интерфейса, Y - номер DRBD устройства и Z - файловая система DRBD.

Заметьте, что указан IP-адрес 10.0.0.1, а не 10.0.0.2! Данный IP-адрес называется "плавающим" и будет автоматически назначен резервному серверу хранилища при выходе из строя основного. При последующей установке Мастер-узла и HTTP-бекэндов в качестве IP-адреса сервера хранилища нужно будет указывать именно "плавающий" IP-адрес.

Перезапустите heartbeat:

 # /etc/init.d/heartbeat restart

Установка базовой системы в хранилище

Выполните установку утилиты debootstrap:

 # apt-get install debootstrap

Выполните проверку дисковых квот:

 # quotacheck -ugm /storage

Внимание: Если DRBD не используется, то проверка дисковых квот выполняется для устройства на котором расположена вышеуказанная директория.

Установите базовую систему GNU/Linux Debian в хранилище:

 # debootstrap stable /storage

Добавьте символические ссылки на файлы /storage/etc/passwd и /storage/etc/group в /var/lib/extrausers/:

 # ln -s /storage/etc/passwd /storage/etc/group /var/lib/extrausers/

Создайте и откройте файл /storage/etc/mtab

 # touch /storage/etc/mtab && nano /storage/etc/mtab

и добавьте строку

 /storage / X rw,usrquota,grpquota 0 0

где X - это файловая система DRBD.

Внимание: Если DRBD не используется, то '/storage' необходимо заменить на имя устройства на котором расположена данная директория.

Создайте и откройте файл /storage/etc/adduser.conf

 # cp /storage/usr/share/adduser/adduser.conf /storage/etc/ && nano /storage/etc/adduser.conf

и измените опции FIRST_SYSTEM_UID и FIRST_SYSTEM_GID:

 ...
 FIRST_SYSTEM_UID=501
 ...
 FIRST_SYSTEM_GID=501
 ...
Была ли эта информация полезной? Да | Нет
Личные инструменты