Linux iscsi multipath настройка

GFS2 на iSCSI с Multipath

GFS2 — кластерная файловая система обеспечивающая одновременный доступ к общим хранилищам в кластере. GFS2 позволяет всем узлам иметь прямой одновременный доступ к одному общему хранилищу.

Введение

В данной статье рассмотрим развертывание GFS2 на устройстве, подключенном по интерфейсу iSCSI c использованием двух сетевых подключений.

  • Server-iSCSI (ip: 10.10.10.202; ip: 192.168.155.100) — сервер предоставляющий блочное устройство через iSCSI;
  • iSCSI1 (ip: 10.10.10.164; ip: 192.168.155.111) — первая нода кластера;
  • iSCSI2 (ip: 10.10.10.211; ip: 192.168.155.112) — вторая нода кластера.

Для работы GFS2 необходим работающий кластер LVM. В качестве кластера можно использовать ALT PVE. В данной статье мы рассмотрим минимально-необходимую конфигурацию.

Настройка iSCSI target

iSCSI-target — сервер предоставляющий блочное устройство (если необходимо, как правило этот сервис предоставляется оборудованием).

Устанавливаем пакет scsitarget-utils, запускаем и добавляем в автозагрузку сервис tgt:

# apt-get install scsitarget-utils # systemctl enable tgt # systemctl start tgt

В файле /etc/tgt/conf.d/sample.conf находятся примеры target-ов.

Настроим отдачу по iSCSI блочного устройства /dev/sdb для этого добавим в файл /etc/tgt/targets.conf следующие строки:

iqn.2016-12.com.example:server.target1 — это IQN (iSCSI qualified name) имя длиной до 255 символов в следующем формате:

# tgtadm --lld iscsi --op show --mode target Target 1: iqn.2016-12.com.example:server.target1 System information: Driver: iscsi State: ready I_T nexus information: I_T nexus: 100 Initiator: iqn.2017-01.ru.alt:01:9daa1def62d3 alias: iSCSI3 Connection: 0 IP Address: 10.10.10.201 LUN information: LUN: 0 Type: controller SCSI ID: IET 00010000 SCSI SN: beaf10 Size: 0 MB, Block size: 1 Online: Yes Removable media: No Prevent removal: No Readonly: No SWP: No Thin-provisioning: No Backing store type: null Backing store path: None Backing store flags: LUN: 1 Type: disk SCSI ID: IET 00010001 SCSI SN: beaf11 Size: 10737 MB, Block size: 512 Online: Yes Removable media: No Prevent removal: No Readonly: No SWP: No Thin-provisioning: No Backing store type: rdwr Backing store path: /dev/sdb Backing store flags: Account information: ACL information: ALL

iSCSI-target по умолчанию работает на порту 3260/tcp. На этом базовая настройка iSCSI-target окончена.

Читайте также:  Чем запустить installer linux

Настройка iSCSI initiator

iSCSI-initiator — клиент подключающийся к iSCSI-target.

Установим пакет open-iscsi запустим и добавим в автозагрузку сервис iscsid:

# apt-get install open-iscsi # systemctl enable iscsid # systemctl start iscsid

Присоединим iSCSI хранилище к нашему кластеру:

Для этого выполним команды:

Посмотреть доступные для подключения target-ы можно с помощью команды:

# iscsiadm -m discovery -t sendtargets -p 10.10.10.202

То же самое нужно выполнить для второго подключения к серверу.

Настроим автоматическое подключение iSCSI-target-ов. Для этого необходимо поменять следующие параметры:

В файле /etc/iscsi/iscsid.conf :

В файле (до p9.2) /etc/iscsi/send_targets/,/st_config

В файле (>=p9.2) /var/lib/iscsi/send_targets/,/st_config

discovery.sendtargets.use_discoveryd = Yes

Вместо подставляем IP адреса серверов.

В итоге при загрузке у нас должны подключаться два устройства ( /dev/sdb , /dev/sdc ).

Настройка Multipath

Сам по себе open-iscsi не умеет подключаться к нескольким IP одного target-а. При одновременном подключении мы получили два блочных устройства. Для решения этой проблемы существует multipath, который находит диски с одинаковым идентификаторами и обрабатывает их как один диск.

Установим необходимый пакет:

# apt-get install multipath-tools

Редактируем файл /etc/multipath.conf :

Добавляем сервис в автозагрузку и запускаем его:

# systemctl enable multipathd # systemctl start multipathd

Multipath обработает наши iSCSI устройства, сделает из них одно, и положит его в каталог /dev/mapper .

Посмотреть обработанные multipath устройства можно командой:

# multipath -ll mpatha (360000000000000000e00000000010001) dm-0 QEMU,QEMU HARDDISK size=10G features='0' hwhandler='0' wp=rw |-+- policy='service-time 0' prio=1 status=active | `- 3:0:0:1 sdb 8:16 active ready running `-+- policy='service-time 0' prio=1 status=enabled `- 4:0:0:1 sdc 8:32 active ready running

Отключить устройство можно командой:

Настройка Corosync

Для работы Cluster LVM нам необходимо настроить сервис Corosync.

Сначала изменим имена нод:

# hostnamectl set-hostname iSCSI1
# hostnamectl set-hostname iSCSI2

Далее пропишем в /etc/hosts на каждой ноде адреса нод:

10.10.10.164 iSCSI1 10.10.10.211 iSCSI2

Далее необходимо сгенерировать аутентификационный файл для коммуникации между нодами:

Читайте также:  Ping test mtu linux

Сгенерированный файл /etc/corosync/authkey нужно скопировать на каждую ноду.

Далее нужно на каждой ноде привести файл конфигурации /etc/corosync/corosync.conf к следующему виду:

logging  debug: off to_syslog: yes > nodelist  node  name: iSCSI1 nodeid: 1 quorum_votes: 1 ring0_addr: 10.10.10.164 > node  name: iSCSI2 nodeid: 2 quorum_votes: 1 ring0_addr: 10.10.10.211 > > quorum  provider: corosync_votequorum > totem  cluster_name: gfs2pve config_version: 2 ip_version: ipv4 secauth: on version: 2 interface  bindnetaddr: 10.10.10.0 ringnumber: 0 > > 

Далее добавляем сервис в автозагрузку и запускаем его:

# systemctl enable corosync # systemctl start corosync

Настройка Cluster LVM

Установим необходимые пакеты:

Настраиваем LVM для работы в кластере на каждой ноде:

Добавляем сервисы в автозагрузку и запускаем их:

# systemctl enable dlm # systemctl enable lvm2-cluster-activation # systemctl start dlm # systemctl start lvm2-cluster-activation

Для корректной работы CLVM и Multipath говорим LVM не сканировать наши iSCSI-диски (sd*):

В файл /etc/lvm/lvm.conf добавляем:

Инициализируем разделы для использования в LVM:

Создаём группу томов ‘shared_vg’:

# vgcreate --clustered y shared_vg /dev/mapper/mpatha

В группе ‘shared_vg’ создаем Logical ‘storage’:

# lvcreate -n storage -l +100%Free shared_vg

Говорим CLVM, какие Volume Groups надо активировать/деактивировать при запуске/остановке:

START_CLVM=yes LVM_VGS="shared_vg"

В итоге при запуске на всех нодах нам должно быть доступно устройство /dev/mapper/shared_vg-storage :

# lvscan ACTIVE '/dev/shared_vg/storage' [10,00 GiB] inherit

Настройка GFS2

Установим необходимые пакеты:

Отформатируем наше multipath устройство в GFS2:

# mkfs.gfs2 -p lock_dlm -t gfs2pve:mydata1 -j 2 /dev/mapper/shared_vg-storage

В данном примере файловая система использует протокол lock_dlm. Кластер имеет имя gfs2pve, имя файловой системы — mydata1. Файловая система создана на /dev/mapper/shared_vg-storage и содержит 2 журнала.

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

# mount /dev/mapper/shared_vg-storage /mnt/gfs2

Добавим в /etc/fstab строчку для монтирования нашей файловой системы при загрузке системы:

/dev/mapper/shared_vg-storage /mnt/gfs2 gfs2 noatime,rw 0 0

Источник

Оцените статью
Adblock
detector