Quadstor — виртуальный SAN для бюджетников +15


Еще примерно год назад я наткнулся на статью «50 инструментов для автоматизации облачной ифраструктуры» в котором описывались инструменты для работы с виртуализацией и в нем промелькнул инструмент под названием Quadstor. И недавно, наконец-то дошли руки до этого замечательного софта, и теперь хочу немного о нем рассказать, что это такое и с чем его едят!
Quadstor — это виртуализация хранилищ которая работает на основе iSCSI. quadstor.com

И так, что он умеет:

  1. Поддержка виртуальных дисков по Fibre Channel, iSCSI или локально.
  2. Тонкие диски (Thin Provisioning)
  3. Дедупликация данных
  4. Высокая доступность (High Availability)
  5. Поддержка VAAI (Hardware Acceleration)
  6. Поддержка кластеров Windows server 2012, Hyper-V, VMware
  7. Поддержка ZFS
  8. И самое основное — он бесплатный (ну а поддержка за деньги).
  9. Размер виртуального диска до 64Тб.

Quadstor работает на Linux и поддерживает RHEL/CentOS, SLES и Debian.
Самые интересные фишки это — HA (High Availability), высокая доступность (синхронное зеркалирование), она может быть: Active-Active, Active-Pasive. А так же поддержка ZFS, что очень удобно если использовать обычный ПК с несколькими дисками и без аппаратного RAID.
Установка и настройка Quadstor — проста и не требует «танцев с бубнами».
И сейчас я опишу установку и настройку Quadstor на примере OS CentOS 7.
При этом на сервере один диск или раздел должен быть не форматированым и не размеченым (сырым).

Установка Quadstor


Установим пакеты для удобства и работы:

yum update && yum upgrade
yum install epel-release
yum install mc wget unzip bash-completion screen htop logwatch net-tools

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

yum install httpd gcc perl kernel-devel sg3_utils iotop sysstat lsscsi
yum install fence-agents

Далее отключаем selinux. С помощью vi nano или mc открываем файл /etc/selinux/config
и ставим SELINUX=disabled. Делаем reboot. Скачиваем дистрибутив QUADStor. На данный момент последняя версия 3.2.11, и устанавливаем:

wget http://www.quadstor.com/virtentdub3z/quadstor-virt-3.2.11-rhel.x86_64.rpm
rpm -i quadstor-virt-3.2.11-rhel.x86_64.rpm

Если все прошло удачно то процесс установки проходит без ошибок, а если не хватает пакета то в процессе установки будут ошибки и инсталятор укажет каких пакетов нехватает.

QUADStor имеет web-интерфейс и для этого использует apache. Его особо настраивать не надо, только установить в автозагрузку и установить «ServerName». Заходим /etc/httpd/conf/ и открываем фаил httpd.conf. Находим строчки начинающиеся на ServerName снимаем знак (#) коментария и меняем:

ServerName localhost:80

Если хотите настроить аутентификацию/авторизацию (SSL) для web-интерфейса QUADStor, то это легко сделать с помощью веб-сервера Apache. И такую настройку можно легко найти в интернете или на сайте QUADStor.

Запускаем сервис quadstor и apache и включаем в автозагрузку.

systemctl start httpd
systemctl start quadstor
chkconfig httpd on
chkconfig quadstor on

Если оставить firewallD (CentOS 7) включенным, тогда надо прописать порты:

firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --permanent --add-port=25/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=8090/tcp
firewall-cmd --permanent --add-port=8091/tcp
firewall-cmd --permanent --add-port=860/tcp
firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --permanent --add-port=3261/tcp
firewall-cmd --permanent --add-port=9950/tcp
firewall-cmd --permanent --add-port=9951/tcp
firewall-cmd --permanent --add-port=9952/tcp
firewall-cmd --permanent --add-port=9953/tcp
firewall-cmd --permanent --add-port=9954/tcp
firewall-cmd --permanent --add-port=9955/tcp
firewall-cmd --permanent --add-port=9956/tcp
firewall-cmd --reload
firewall-cmd --permanent --list-all

Web-интерфейс QUADStor


С помощью браузера заходим на сервер по ip адресу http://<адрес QUADStor>
Web-интерфейс очень простой и содержит всего 4 пункта меню:



1. System
Пункт в котором общая информация: имя сервера, версия QUADStor, состояние сервера, кнопки перезапуска сервиса и системы в целом, а так же есть кнопка которая позволяет сгинерировать лог работы QUADStor и сохранить себе на ПК.

2. Physical Storage
Список дисков которые можно добавить в общий пул дисков, а так же глобальная статистика дисков: размер, использование дедубликация, сжатие и др.

3. Storage Pools
В этом пункте мы создаем пул дисков и даем ему имя, а так же включение логирования и дедупликации.

4. Virtual Disks
В этом пункте сосредоточены практически основные настройки виртуальных дисков: создавать виртуальные диски и включать их в пул дисков, включать/выключать сжатие, дедупликацию, верификацию, а так же настройка зеркалирования (High Availability) и настройки iSCSI.

Для создания виртуального диска, для начала нужно создать пул дисков. Заходим в пункт меню «Storage Pools», нажимаем кнопку «Add Pool».



Даем имя пулу дисков (например HA) и ставим галочки напротив «Enable Dedupe Metadata» и «Enable Logs» и нажимаем кнопку «Submit».



Далее заходим в «Physical Storage» и на свободном диске нажимаем ссылку «Add».



Выбираем имя пула к которому хотим привязать физический диск. Ставим галочки «Log Disk» (Включить лог) и «HA Disk» (Включить HA).

«Enable Compression» — включение сжатия данных. Можно включить, если хотите экономить место, но для работы сжатия требуется мощный процессор и много ОЗУ (мин 4Гб). Если будет слабый ПК или сервер, то запись/чтение будет притормаживать.



Последний шаг — это создать виртуальный диск.

Заходим в «Virtual Disks» и нажимаем «Add Vdisk». Задаем имя виртуальному диску (любое — например: HAVDisk). Задаем размер диска в Гб (но не больше размера физического диска). Указываем пул в котором мы хотим создать виртуальный диск. И нажимаем «Submit».



Если использовать только один нод то процесс создания диска закончен и теперь его можно подключать к любому серверу по iSCSI.

Настройка QUADStor High Availability


Для работы HA (High Availability) необходимо два физических или виртуальных сервера с двумя сетевыми интерфейсами, одни сетевые интерфейсы смотрят на общую или общественную сеть, а другие только связаны между собой для синхронизации.

Для настройки кластера HA делаем два нода по инструкции выше. Настраиваем отдельную сеть для нодов что бы была синхронизация.

Node1
Name: vm-qs1
lan1 — 10.5.113.207 — общая сеть (общедоступная сеть)
lan2 — 192.168.0.1 — внутренняя сеть (перемычка между нодами)


Node2
Name: vm-qs2
lan1 — 10.5.113.208 — общая сеть (общедоступная сеть)
lan2 — 192.168.0.2 — внутренняя сеть (перемычка между нодами)


По адресам 10.5.113.207 и 10.5.113.208 будут подключатся сервера по iscsi. По адресам 192.168.0.1 и 192.168.0.2 включается сихронизация нодов.

Для включения сихронизации, на каждом ноде создаем файл /quadstor/etc/ndrecv.conf — пишем в этом файле RecvAddr=192.168.0.1 # Для нода1

echo "RecvAddr=192.168.0.1" > /quadstor/etc/ndrecv.conf

RecvAddr=192.168.0.2 # Для нода2

echo "RecvAddr=192.168.0.2" > /quadstor/etc/ndrecv.conf

Это означает что мы по ip адресу на ноде включаем синхронизацию. Далее перезапускаем сервис quadstor.

systemctl stop quadstor
systemctl start quadstor

Теперь с помощью браузера заходим на один из нодов (например vm-qs1) по адресу 10.5.113.207 и создаем виртуальный диск (как описано выше), а на втором ноде (ip-10.5.113.208) создаем только «Storage Pools» и «Physical Storage». Все действия (имена и настройки) должны в точности совпадать с первым нодом. Создавать виртуальный диск на втором ноде не нужно. Он создается автоматически при конфигурации зеркалирования. После этого на первом ноде заходим в «Virtual Disks» и на виртуальном диске нажимаем ссылку «Modify».



И перед нами открываются все настройки виртуального диска. Мы можем включить/выключить: дедубликацию, сжатие и верификацию. А так же можем настроить логин и пароль для iSCSI клиента. И самое главное указать второй нод для зеркалирования.

В строке «Mirror IP Address» указываем IP адрес второго нода 192.168.0.2 (IP адрес для синхронизации) И нажимаем «Submit». Если все удачно то в строке увидим «Mirror Address», «Source Address», «Curent Role» и «Status».



На втором ноде в «Virtual Disks» виртуальный диск будет создан автоматически. Нажимаем ссылку «Modify» и там такие же настройки как на первом ноде, но только наоборот.



Зеркалирование HA настроено и теперь можно диск подключать к серверам по адресам 10.5.113.207 и 10.5.113.208. На клиенте необходимо будет настроить iSCSI multipath (поддержка многопутевых накопителей).

Теперь осталось сделать еще одну важную настройку. Дело в том что если один из нодов «падает», то отвалится весь виртуальный диск на клиенте. Чтобы этого не произошло, нужно на нодах включить «игнорировать падение зеркала». Сначала заходим на первый нод (vm-qs1) по ssh и даем команду (от root)

/quadstor/bin/qmirrorcheck -a -t ignore -r 192.168.0.2

Затем заходим на второй нод (vm-qs2) по ssh и даем команду (от root)

/quadstor/bin/qmirrorcheck -a -t ignore -r 192.168.0.1

Теперь ноды не будут контролировать «падение» друг друга, и если один из нодов «упадет» то второй не отключится, а перехватит инициативу работы виртуального диска на себя.
Чтобы посмотреть режим работы можно дать команду.

/quadstor/bin/qsync -l



Как только восстановится «упавший» нод то начнется синхронизация данных и это можно увидеть с помощью команды

/quadstor/bin/qsync -l

Вот пожалуй все. В следующем посте я попробую сравнить скорость работы Quadstor HA и StarWind HA.
-->


К сожалению, не доступен сервер mySQL