Создание отказоустойчивой ИТ инфраструктуры. Часть 1 — подготовка к развёртыванию кластера oVirt 4.3

Вниманию читателей предлагается ознакомиться с принципами построения отказоустойчивой инфраструктуры небольшого предприятия в рамках одного ЦОДа, которые будут детально рассмотрены в небольшом цикле статей.

Вводная часть

Под ЦОДом (Центром Обработки Данных) может пониматься:

  • собственная стойка в своём «серверном помещении» на территории предприятия, удовлетворяющем минимальным требованиям по обеспечению электропитанием и охлаждением оборудования, а также имеющее выход в Интернет через двух независимых провайдеров;
  • арендуемая стойка с собственным оборудованием, расположенная в настоящем ЦОДе – т.н. collocation, который соответствует стандарту Tier III или IV, и в котором гарантируется надёжное электропитание, охлаждение и обеспечивается отказоустойчивый выход в Интернет;
  • полностью арендуемое оборудование в ЦОДе Tier III или IV.

Какой вариант размещения выбрать – в каждом случае всё индивидуально, и обычно зависит от нескольких основных факторов:

  • для чего предприятию вообще собственная IT инфраструктура;
  • чего именно хочет предприятие от IT инфраструктуры (надёжности, масштабируемости, управляемости и т.д.);
  • объёма начальных инвестиций в IT инфраструктуру, а также какого типа затраты на неё – капитальные (значит покупается своё оборудование), или операционные (оборудование обычно арендуется);
  • горизонта планирования самого предприятия.

Про факторы, влияющие на решение предприятия по созданию и использование его IT инфраструктуры, можно писать много, но наша цель в том, чтобы показать на практике, как создать эту самую инфраструктуру, чтобы она была и отказоустойчивая, и ещё можно было бы при этом сэкономить – снизить расходы на приобретение коммерческого ПО, или вообще их избежать.

Как показывает долгая практика, на железе экономить не стоит, так как скупой платит дважды, и даже гораздо больше. Но опять же – хорошее железо, это всего лишь рекомендация, и в конечном итоге что именно покупать и за сколько, зависит от возможностей предприятия, и «жадности» его руководства. Причём слово «жадность» следует понимать в хорошем смысле этого слова, так как лучше вложиться в железо на начальном этапе, чтобы потом не иметь серьёзных проблем по его дальнейшей поддержке и масштабированию, так как изначально неправильное планирование и чрезмерная экономия, могут привести в будущем к большим затратам, чем при запуске проекта.

Итак, исходные данные для проекта:

  • имеется предприятие, которое решило создать собственный веб-портал и вывести свою деятельность в Интернет;
  • предприятие решило арендовать стойку для размещения своего оборудования в хорошем датацентре, имеющем сертификацию по стандарту Tier III;
  • предприятие решило сильно не экономить на железе, и поэтому купило следующее оборудование с расширенными гарантиями и поддержкой:

Список оборудования

  • два физических сервера Dell PowerEdge R640 в таком составе:
  • два процессора Intel Xeon Gold 5120
  • 512 Gb RAM
  • два SAS диска в RAID1, для установки ОС
  • встроенная 4-х портовая сетевая карта 1G
  • две 2-х портовые сетевые карты 10G
  • один 2-х портовый FC HBA 16G.
  • 2-х контроллерная СХД Dell MD3820f, подключенная посредством FC 16G напрямую к хостам Dell;
  • два коммутатора второго уровня — Cisco WS-C2960RX-48FPS-L объединённые в стек;
  • два коммутатора третьего уровня — Cisco WS-C3850-24T-E, объединённые в стек;
  • Стойка, UPS, PDU, консольные сервера – предоставляются датацентром.

Как мы видим, у имеющегося оборудования имеются хорошие перспективы для горизонтального и вертикального масштабирования, в случае, если предприятие сможет конкурировать с другими компаниями схожего профиля в Интернете, и начнёт получать прибыль, которую можно будет вложить в расширение ресурсов для дальнейшей конкуренции и роста прибыли.

Какое оборудование мы можем добавить, если предприятие решит увеличить производительность нашего вычислительного кластера:

  • у нас есть большой резерв по количеству портов на коммутаторах 2960Х, значит можно добавить больше аппаратных серверов;
  • докупить два FC коммутатора, чтобы подключить к ним СХД и дополнительные сервера;
  • уже имеющиеся сервера можно проапгрейдить – добавить памяти, заменить процессоры на более производительные, подключить к сети 10G уже имеющимися сетевыми адаптерами;
  • к СХД можно добавить дополнительные дисковые полки с необходимым типом дисков – SAS, SATA или SSD, зависит от планируемой нагрузки;
  • после добавления FC коммутаторов можно докупить ещё одну СХД, чтобы добавить ещё больше дисковой ёмкости, а если к ней докупить специальную опцию Remote Replication, то можно будет настроить репликацию данных между СХД как в границах одного ЦОДа, так и между ЦОДами (но это уже за рамками статьи);
  • также имеются коммутаторы третьего уровня – Cisco 3850, которые можно задействовать в качестве отказоустойчивого ядра сети, для высокоскоростной маршрутизации между внутренними сетями. Это очень поможет в дальнейшем, по мере роста внутренней инфраструктуры. Также у 3850 имеются порты 10G, которые можно задействовать позже, при обновлении сетевого оборудования до скорости 10G.

Так как сейчас без виртуализации никуда, то и мы конечно же будем в тренде, тем более это отличный способ для уменьшения расходов на приобретение дорогостоящих серверов для отдельных элементов инфраструктуры (веб-серверов, баз данных и т.п.), которые не всегда оптимально используются в случае низкой нагрузки, а именно так и будет в начале запуска проекта.

К тому же виртуализация имеет многие другие преимущества, которые нам очень могут пригодиться: отказоустойчивость ВМ от сбоя аппаратного сервера, Live migration между аппаратными узлами кластера для их обслуживания, ручное или автоматическое распределение нагрузки между узлами кластера, и т.п.

Для железа, приобретённого предприятием, напрашивается развёртывание высоко-доступного кластера VMware vSphere, но так как любое ПО от VMware известно своими «конскими» ценниками, то мы будем использовать абсолютно бесплатное программное обеспечение для управления виртуализацией – oVirt, на основе которого создаётся известный, но уже коммерческий продукт — RHEV.

Программное обеспечение oVirt необходимо для объединения между собой всех элементов инфраструктуры в одно целое, чтобы получить возможность удобной работы с высоко-доступными виртуальными машинами – это базы данных, веб-приложения, прокси-сервера, балансировщики, сервера для сбора логов и аналитики и т.п., то есть то, из чего и состоит веб-портал нашего предприятия.

Подытоживая это введение, нас ожидают следующие статьи, которые на практике покажут, как именно развернуть всю аппаратно-программную инфраструктуру предприятия:

Список статей

  • Часть 1. Подготовка к развёртыванию кластера oVirt 4.3.
  • Часть 2. Установка и настройка кластера oVirt 4.3.
  • Часть 3. Настройка кластера VyOS, организация отказоустойчивой внешней маршрутизации.
  • Часть 4. Настройка стека Cisco 3850, организация внутрисетевой маршрутизации.

Часть 1. Подготовка к развёртыванию кластера oVirt 4.3

Базовая настройка хостов

Установка и настройка ОС – это самый простой этап. Статей как правильно установить и настроить ОС – великое множество, так что нет смысла пытаться выдать что-то эксклюзивное по этому поводу.

Итак, у нас имеется два хоста Dell PowerEdge R640, на которые необходимо установить ОС и выполнить предварительные настройки, для их использования в качестве гипервизоров для запуска виртуальных машин в кластере oVirt 4.3.

Так как мы планируем использовать бесплатное некоммерческое ПО oVirt, то для развёртывания хостов выбрана ОС CentOS 7.7, хотя на хосты для oVirt’а возможна установка и других ОС:

  • специального билда на основе RHEL, т.н. oVirt Node;
  • OS Oracle Linux, летом 2019 г. было объявлено о поддержке работы oVirt на ней.

Перед установкой ОС рекомендуется:

  • настроить сетевой интерфейс iDRAC на обоих хостах;
  • обновить прошивки для BIOS и iDRAC до последних версий;
  • настроить System Profile сервера желательно в режиме Performance;
  • настроить RAID из локальных дисков (рекомендуется RAID1), для установки ОС на сервер.

Затем устанавливаем ОС на созданный ранее через iDRAC диск – процесс установки обычный, каких-то особых моментов в нём нет. Доступ к консоли сервера для начала установки ОС также можно получить через iDRAC, хотя ничто не мешает подключить монитор, клавиатуру и мышь напрямую к серверу и установить ОС с «флэшки».

После установки ОС, выполняем её начальные настройки:

systemctl enable network.service
systemctl start network.service
systemctl status network.service

systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl status NetworkManager

yum install -y ntp
systemctl enable ntpd.service
systemctl start ntpd.service

cat /etc/sysconfig/selinux
SELINUX=disabled
SELINUXTYPE=targeted

cat /etc/security/limits.conf
 *               soft    nofile         65536
 *               hard   nofile         65536

cat /etc/sysctl.conf
vm.max_map_count = 262144
vm.swappiness = 1

Устанавливаем базовый набор ПО

Для начальной настройки ОС, нужно настроить любой сетевой интерфейс на сервере, чтобы можно было бы получить доступ в Интернет, для обновления ОС и установки необходимых пакетов ПО. Это можно сделать как в процессе установки ОС, так и после него.

yum -y install epel-release
yum update
yum -y install bind-utils yum-utils net-tools git htop iotop nmon pciutils sysfsutils sysstat mc nc rsync wget traceroute gzip unzip telnet 

Все вышеуказанные настройки и набор ПО – это дело личных предпочтений, и данный набор носит всего лишь рекомендательный характер.

Так как наш хост будет играть роль гипервизора, то включим нужный профиль производительности:

systemctl enable tuned 
systemctl start tuned 
systemctl status tuned 

tuned-adm profile 
tuned-adm profile virtual-host 

Подробнее о профиле производительности можно почитать здесь: «Chapter 4. tuned and tuned-adm«.

После установки ОС, переходим к следующей части – настройке сетевых интерфейсов на хостах, и стека коммутаторов Cisco 2960X.

Настройка стека коммутаторов Cisco 2960X

В нашем проекте будут использоваться следующие номера VLAN’ов — или широковещательных доменов, изолированных друг от друга, с целью разделения различных видов трафика:

VLAN 10 – Internet
VLAN 17 – Management (iDRAC, СХД, switches management)
VLAN 32 – VM production network
VLAN 33 – interconnection network (to external contractors)
VLAN 34 – VM test network
VLAN 35 – VM developer network
VLAN 40 – Monitoring network

Перед началом работ, приведём схему на уровне L2, к которой мы в итоге должны прийти:

Создание отказоустойчивой ИТ инфраструктуры. Часть 1 — подготовка к развёртыванию кластера oVirt 4.3

Для сетевого взаимодействия хостов oVirt и виртуальных машин между собой, а также для управления нашей СХД, необходима настройка стека коммутаторов Cisco 2960X.

У хостов Dell имеются встроенные 4-х портовые сетевые карты, следовательно, организовать их подключение к Cisco 2960X целесообразно с помощью отказоустойчивого сетевого подключения, используя для этого группировку физических сетевых портов в логический интерфейс, и протокол LACP (802.3ad):

  • первые два порта на хосте настраиваются в режиме бондинга и подключаются к коммутатору 2960X – на этом логическом интерфейсе будет настроен bridge с адресом для управления хостом, мониторинга, связи с другими хостами в кластере oVirt, также он будет использоваться для Live migration виртуальных машин;
  • вторые два порта на хосте также настраиваются в режиме бондинга и подключаются к 2960X – на этом логическом интерфейсе с помощью oVirt, в дальнейшем будут созданы bridge’и (в соответствующих VLAN’ах) к которым будут подключаться виртуальные машины.
  • оба сетевых порта, в рамках одного логического интерфейса, будут активными, т.е. трафик по ним может передаваться одновременно, в режиме балансировки.
  • сетевые настройки на узлах кластера должны быть абсолютно ОДИНАКОВЫМИ, за исключением IP адресов.

Базовая настройка стека коммутаторов 2960X и его портов

Предварительно наши коммутаторы должны быть:

  • смонтированы в стойку;
  • соединены посредством двух специальных кабелей нужной длины, например, CAB-STK-E-1M;
  • подключены к электропитанию;
  • подключены к рабочей станции администратора через консольный порт, для их начального конфигурирования.

Необходимое руководство для этого имеется на официальной странице производителя.

После выполнения вышеуказанных действий, выполняем настройку коммутаторов.
Что означает каждая команда, расшифровывать в рамках данной статьи не предполагается, при необходимости всю информацию можно найти самостоятельно.
Наша цель – максимально быстро настроить стек коммутаторов и подключить к нему хосты и управляющие интерфейсы СХД.

1) Подключаемся к ведущему коммутатору, переходим в привилегированный режим, далее заходим в режим конфигурирования и производим основные настройки.

Базовый конфиг коммутатора:

 enable
 configure terminal

 hostname 2960X

 no service pad
 service timestamps debug datetime msec
 service timestamps log datetime localtime show-timezone msec
 no service password-encryption
 service sequence-numbers

 switch 1 priority 15
 switch 2 priority 14
 stack-mac persistent timer 0

 clock timezone MSK 3
  vtp mode transparent
  ip subnet-zero

 vlan 17
  name Management

 vlan 32
  name PROD 

 vlan 33
  name Interconnect

 vlan 34
  name Test

 vlan 35
  name Dev

 vlan 40
  name Monitoring

 spanning-tree mode rapid-pvst
 spanning-tree etherchannel guard misconfig
 spanning-tree portfast bpduguard default
 spanning-tree extend system-id
 spanning-tree vlan 1-40 root primary
 spanning-tree loopguard default
 vlan internal allocation policy ascending
 port-channel load-balance src-dst-ip

 errdisable recovery cause loopback
 errdisable recovery cause bpduguard
 errdisable recovery interval 60

line con 0
 session-timeout 60
 exec-timeout 60 0
 logging synchronous
line vty 5 15
 session-timeout 60
 exec-timeout 60 0
 logging synchronous

 ip http server
 ip http secure-server
 no vstack

interface Vlan1
 no ip address
 shutdown

 exit 

Сохраняем конфиг командой «wr mem» и перезагружаем стек коммутаторов командой «reload» на ведущем коммутаторе switch 1.

2) Настраиваем сетевые порты коммутатора в режиме доступа (access) в VLAN 17, для подключения управляющих интерфейсов СХД и iDRAC серверов.

Настройка портов управления:

interface GigabitEthernet1/0/5
 description iDRAC - host1
 switchport access vlan 17
 switchport mode access
 spanning-tree portfast edge

interface GigabitEthernet1/0/6
 description Storage1 - Cntr0/Eth0
 switchport access vlan 17
 switchport mode access
 spanning-tree portfast edge

interface GigabitEthernet2/0/5
 description iDRAC - host2
 switchport access vlan 17
 switchport mode access
 spanning-tree portfast edge

interface GigabitEthernet2/0/6
 description Storage1 – Cntr1/Eth0
 switchport access vlan 17
 switchport mode access
 spanning-tree portfast edge
 exit

3) После перезагрузки стека, проверяем, чтобы он работал корректно:

Проверка функционирования стека:

2960X#show switch stack-ring speed

Stack Ring Speed        : 20G
Stack Ring Configuration: Full
Stack Ring Protocol     : FlexStack

2960X#show switch stack-ports
  Switch #    Port 1       Port 2
  --------    ------       ------
    1           Ok           Ok
    2           Ok           Ok

2960X#show switch neighbors
  Switch #    Port 1       Port 2
  --------    ------       ------
      1         2             2
      2         1             1

2960X#show switch detail
Switch/Stack Mac Address : 0cd0.f8e4.ХХХХ
Mac persistency wait time: Indefinite
                                           H/W   Current
Switch#  Role   Mac Address     Priority Version  State
----------------------------------------------------------
*1       Master 0cd0.f8e4.ХХХХ    15     4       Ready
 2       Member 0029.c251.ХХХХ     14     4       Ready

         Stack Port Status             Neighbors
Switch#  Port 1     Port 2           Port 1   Port 2
--------------------------------------------------------
  1        Ok         Ok                2        2
  2        Ok         Ok                1        1

4) Настройка SSH доступа к стеку 2960X

Для удаленного управления стеком через SSH, будем использовать IP 172.20.1.10, настроенный на SVI (switch virtual interface) VLAN17.

Хотя для целей управления желательно использовать специальный выделенный порт на коммутаторе, но это дело личных предпочтений и возможностей.

Настройка SSH доступа к стеку коммутаторов:

ip default-gateway 172.20.1.2

interface vlan 17
 ip address 172.20.1.10 255.255.255.0

hostname 2960X
 ip domain-name hw.home-lab.ru
 no ip domain-lookup

clock set 12:47:04 06 Dec 2019

crypto key generate rsa

ip ssh version 2
ip ssh time-out 90

line vty 0 4
 session-timeout 60
 exec-timeout 60 0
 privilege level 15
 logging synchronous
 transport input ssh

line vty 5 15
 session-timeout 60
 exec-timeout 60 0
 privilege level 15
 logging synchronous
 transport input ssh

aaa new-model
aaa authentication login default local 
username cisco privilege 15 secret my_ssh_password

Настраиваем пароль для входа в привилегированный режим:

enable secret *myenablepassword*
service password-encryption

Настраиваем NTP:

ntp server 85.21.78.8 prefer
ntp server 89.221.207.113
ntp server 185.22.60.71
ntp server 192.36.143.130
ntp server 185.209.85.222

show ntp status
show ntp associations
show clock detail

5) Настраиваем логические интерфейсы Etherchannel и физические порты, подключаемые к хостам. Для простоты конфигурации, все имеющиеся VLAN’ы будут разрешены на всех логических интерфейсах, но обычно рекомендуется настраивать только то, что нужно:

Настройка интерфейсов Etherchannel:

interface Port-channel1
 description EtherChannel with Host1-management
 switchport trunk allowed vlan 10,17,30-40
 switchport mode trunk
 spanning-tree portfast edge trunk

interface Port-channel2
 description EtherChannel with Host2-management
 switchport trunk allowed vlan 10,17,30-40
 switchport mode trunk
 spanning-tree portfast edge trunk

interface Port-channel3
 description EtherChannel with Host1-VM
 switchport trunk allowed vlan 10,17,30-40
 switchport mode trunk
 spanning-tree portfast edge trunk

interface Port-channel4
 description EtherChannel with Host2-VM
 switchport trunk allowed vlan 10,17,30-40
 switchport mode trunk
 spanning-tree portfast edge trunk

interface GigabitEthernet1/0/1
 description Host1-management
 switchport trunk allowed vlan 10,17,30-40
 switchport mode trunk
 channel-protocol lacp
 channel-group 1 mode active

interface GigabitEthernet1/0/2
 description Host2-management
  switchport trunk allowed vlan 10,17,30-40
 switchport mode trunk
 channel-protocol lacp
 channel-group 2 mode active

interface GigabitEthernet1/0/3
 description Host1-VM
  switchport trunk allowed vlan 10,17,30-40
 switchport mode trunk
 channel-protocol lacp
 channel-group 3 mode active

interface GigabitEthernet1/0/4
 description Host2-VM
 switchport trunk allowed vlan 10,17,30-40
 switchport mode trunk
 channel-protocol lacp
 channel-group 4 mode active

interface GigabitEthernet2/0/1
 description Host1-management
 switchport trunk allowed vlan 10,17,30-40
 switchport mode trunk
 channel-protocol lacp
 channel-group 1 mode active

interface GigabitEthernet2/0/2
 description Host2-management
  switchport trunk allowed vlan 10,17,30-40
 switchport mode trunk
 channel-protocol lacp
 channel-group 2 mode active

interface GigabitEthernet2/0/3
 description Host1-VM
  switchport trunk allowed vlan 10,17,30-40
 switchport mode trunk
 channel-protocol lacp
 channel-group 3 mode active

interface GigabitEthernet2/0/4
 description Host2-VM
 switchport trunk allowed vlan 10,17,30-40
 switchport mode trunk
 channel-protocol lacp
 channel-group 4 mode active

Первичная настройка сетевых интерфейсов для виртуальных машин, на хостах Host1 и Host2

Проверяем наличие необходимых для работы бондинга модулей в системе, устанавливаем модуль для управления бриджами:

modinfo bonding
modinfo 8021q
yum install bridge-utils

Настройка на хостах логического интерфейса BOND1 для виртуальных машин, и его физических интерфейсов:

cat /etc/sysconfig/network-scripts/ifcfg-bond1
#DESCRIPTION - management
DEVICE=bond1
NAME=bond1
TYPE=Bond
IPV6INIT=no
ONBOOT=yes
USERCTL=no
NM_CONTROLLED=no
BOOTPROTO=none
BONDING_OPTS='mode=4 lacp_rate=1 xmit_hash_policy=2'

cat /etc/sysconfig/network-scripts/ifcfg-em2
#DESCRIPTION - management
DEVICE=em2
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond1
SLAVE=yes
USERCTL=no 
NM_CONTROLLED=no 

cat /etc/sysconfig/network-scripts/ifcfg-em3
#DESCRIPTION - management
DEVICE=em3
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond1
SLAVE=yes
USERCTL=no 
NM_CONTROLLED=no 

После завершения настроек на стеке 2960Х и хостах, рестартуем сеть на хостах, и проверяем работоспособность логического интерфейса.

  • на хосте:

systemctl restart network

cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (2)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
...
802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
...
Slave Interface: em2
MII Status: up
Speed: 1000 Mbps
Duplex: full
...
Slave Interface: em3
MII Status: up
Speed: 1000 Mbps
Duplex: full

  • на стеке коммутаторов 2960Х:

2960X#show lacp internal
Flags:  S - Device is requesting Slow LACPDUs
        F - Device is requesting Fast LACPDUs
        A - Device is in Active mode       P - Device is in Passive mode

Channel group 1
                            LACP port     Admin     Oper    Port        Port
Port      Flags   State     Priority      Key       Key     Number      State
Gi1/0/1   SA      bndl      32768         0x1       0x1     0x102       0x3D
Gi2/0/1   SA      bndl      32768         0x1       0x1     0x202       0x3D

2960X#sh etherchannel summary
Flags:  D - down        P - bundled in port-channel
        I - stand-alone s - suspended
        H - Hot-standby (LACP only)
        R - Layer3      S - Layer2
        U - in use      N - not in use, no aggregation
        f - failed to allocate aggregator

        M - not in use, minimum links not met
        m - not in use, port not aggregated due to minimum links not met
        u - unsuitable for bundling
        w - waiting to be aggregated
        d - default port

        A - formed by Auto LAG

Number of channel-groups in use: 11
Number of aggregators:           11

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)         LACP      Gi1/0/1(P)  Gi2/0/1(P)

Первичная настройка сетевых интерфейсов для управления ресурсами кластера, на хостах Host1 и Host2

Настройка на хостах логического интерфейса BOND1 для управления, и его физических интерфейсов:

cat /etc/sysconfig/network-scripts/ifcfg-bond0
#DESCRIPTION - management
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPV6INIT=no
ONBOOT=yes
USERCTL=no
NM_CONTROLLED=no
BOOTPROTO=none
BONDING_OPTS='mode=4 lacp_rate=1 xmit_hash_policy=2'

cat /etc/sysconfig/network-scripts/ifcfg-em0
#DESCRIPTION - management
DEVICE=em0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no 
NM_CONTROLLED=no 

cat /etc/sysconfig/network-scripts/ifcfg-em1
#DESCRIPTION - management
DEVICE=em1
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no 
NM_CONTROLLED=no 

После завершения настроек на стеке 2960Х и хостах, рестартуем сеть на хостах, и проверяем работоспособность логического интерфейса.

systemctl restart network
cat /proc/net/bonding/bond1

2960X#show lacp internal
2960X#sh etherchannel summary

Настраиваем управляющий сетевой интерфейс на каждом хосте в VLAN 17, и привязываем его к логическому интерфейсу BOND1:

Настройка VLAN17 на Host1:

cat /etc/sysconfig/network-scripts/ifcfg-bond1.17
DEVICE=bond1.17
NAME=bond1-vlan17
BOOTPROTO=none
ONBOOT=yes 
USERCTL=no 
NM_CONTROLLED=no 
VLAN=yes
MTU=1500  
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
IPADDR=172.20.17.163
NETMASK=255.255.255.0
GATEWAY=172.20.17.2
DEFROUTE=yes
DNS1=172.20.17.8
DNS2=172.20.17.9
ZONE=public

Настройка VLAN17 на Host2:

cat /etc/sysconfig/network-scripts/ifcfg-bond1.17
DEVICE=bond1.17
NAME=bond1-vlan17
BOOTPROTO=none
ONBOOT=yes 
USERCTL=no 
NM_CONTROLLED=no 
VLAN=yes
MTU=1500  
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
IPADDR=172.20.17.164
NETMASK=255.255.255.0
GATEWAY=172.20.17.2
DEFROUTE=yes
DNS1=172.20.17.8
DNS2=172.20.17.9
ZONE=public

Делаем рестарт сети на хостах и проверяем их видимость между собой.

На этом настройка стека коммутаторов Cisco 2960X закончена, и если всё было сделано правильно, то теперь мы имеем сетевую связанность всех элементов инфраструктуры между собой на уровне L2.

Настройка СХД Dell MD3820f

Перед началом работ по настройке СХД, она уже должна быть подключена к стеку коммутаторов Cisco 2960Х управляющими интерфейсами, а также к хостам Host1 и Host2 через FC.

Общая схема, как СХД должна быть подключена к стеку коммутаторов, приводилась в предыдущей главе.

Схема подключения СХД по FC к хостам, должна выглядеть так:

Создание отказоустойчивой ИТ инфраструктуры. Часть 1 — подготовка к развёртыванию кластера oVirt 4.3

Во время подключения, необходимо записать WWPN адреса для FC HBA хостов, подключенных к FC портам на СХД – это будет необходимо для последующей настройки привязки хостов к LUN’ам на СХД.

На рабочую станцию администратора скачиваем и устанавливаем утилиту для управления СХД Dell MD3820f – PowerVault Modular Disk Storage Manager (MDSM).
Подключаемся к ней через её IP адреса по умолчанию, и затем настраиваем наши адреса из VLAN17, для управления контроллерами через TCP/IP:

Storage1:

ControllerA IP - 172.20.1.13, MASK - 255.255.255.0, Gateway - 172.20.1.2
ControllerB IP - 172.20.1.14, MASK - 255.255.255.0, Gateway - 172.20.1.2

После настройки адресов, заходим в интерфейс управления СХД и задаём пароль, настраиваем время, обновляем прошивки для контроллеров и дисков, если это необходимо и т.п.
Как это делается – описано в руководстве по администрированию СХД.

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

  1. Настроить идентификаторы хостовых FC портов – Host Port Identifiers.
  2. Создать группу хостов – Host group и добавить в неё два наших хоста Dell.
  3. Создать дисковую группу и в ней виртуальные диски (или LUN’ы), которые будут презентованы хостам.
  4. Настроить презентацию виртуальных дисков (или LUN’ов) для хостов.

Добавление новых хостов и привязка к ним идентификаторов хостовых FC портов, делается через меню – Host Mappings -> Define -> Hosts…
WWPN адреса FC HBA хостов можно найти, например, в iDRAC сервера.

В результате у нас должна получиться примерно такая картинка:

Создание отказоустойчивой ИТ инфраструктуры. Часть 1 — подготовка к развёртыванию кластера oVirt 4.3

Добавление новой группы хостов и привязка к ней хостов, делается через меню – Host Mappings -> Define -> Host Group…
Для хостов выбираем тип ОС – Linux (DM-MP).

После создания группы хостов, через вкладку Storage & Copy Services, создаём дисковую группу – Disk Group, с типом зависящим от требований к отказоустойчивости, например, RAID10, а в ней виртуальные диски нужного размера:

Создание отказоустойчивой ИТ инфраструктуры. Часть 1 — подготовка к развёртыванию кластера oVirt 4.3

И наконец, финальный этап — презентация виртуальных дисков (или LUN’ов) для хостов.
Для этого через меню – Host Mappings -> Lun mapping -> Add… делаем привязку виртуальных дисков к хостам, назначая им номера.

Всё должно получиться так, как на этом скриншоте:

Создание отказоустойчивой ИТ инфраструктуры. Часть 1 — подготовка к развёртыванию кластера oVirt 4.3

На этом с настройкой СХД мы заканчиваем, и если всё сделано было правильно, то хосты должны увидеть презентованные им LUN’ы через свои FC HBA.
Заставим систему обновить информацию о подключенных дисках:

ls -la /sys/class/scsi_host/
echo "- - -" > /sys/class/scsi_host/host[0-9]/scan

Посмотрим, какие устройства видны на наших серверах:

cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 02 Id: 00 Lun: 00
  Vendor: DELL     Model: PERC H330 Mini   Rev: 4.29
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi15 Channel: 00 Id: 00 Lun: 00
  Vendor: DELL     Model: MD38xxf          Rev: 0825
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi15 Channel: 00 Id: 00 Lun: 01
  Vendor: DELL     Model: MD38xxf          Rev: 0825
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi15 Channel: 00 Id: 00 Lun: 04
  Vendor: DELL     Model: MD38xxf          Rev: 0825
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi15 Channel: 00 Id: 00 Lun: 11
  Vendor: DELL     Model: MD38xxf          Rev: 0825
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi15 Channel: 00 Id: 00 Lun: 31
  Vendor: DELL     Model: Universal Xport  Rev: 0825
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi18 Channel: 00 Id: 00 Lun: 00
  Vendor: DELL     Model: MD38xxf          Rev: 0825
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi18 Channel: 00 Id: 00 Lun: 01
  Vendor: DELL     Model: MD38xxf          Rev: 0825
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi18 Channel: 00 Id: 00 Lun: 04
  Vendor: DELL     Model: MD38xxf          Rev: 0825
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi18 Channel: 00 Id: 00 Lun: 11
  Vendor: DELL     Model: MD38xxf          Rev: 0825
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi18 Channel: 00 Id: 00 Lun: 31
  Vendor: DELL     Model: Universal Xport  Rev: 0825
  Type:   Direct-Access                    ANSI  SCSI revision: 05

lsscsi
[0:2:0:0]    disk    DELL     PERC H330 Mini   4.29  /dev/sda
[15:0:0:0]   disk    DELL     MD38xxf          0825  -
[15:0:0:1]   disk    DELL     MD38xxf          0825  /dev/sdb
[15:0:0:4]   disk    DELL     MD38xxf          0825  /dev/sdc
[15:0:0:11]  disk    DELL     MD38xxf          0825  /dev/sdd
[15:0:0:31]  disk    DELL     Universal Xport  0825  -
 [18:0:0:0]   disk    DELL     MD38xxf          0825  -
[18:0:0:1]   disk    DELL     MD38xxf          0825  /dev/sdi
[18:0:0:4]   disk    DELL     MD38xxf          0825  /dev/sdj
[18:0:0:11]  disk    DELL     MD38xxf          0825  /dev/sdk
[18:0:0:31]  disk    DELL     Universal Xport  0825  -

На хостах также дополнительно можно настроить multipath, и хотя при установке oVirt он может сделать это и сам, но лучше проверить корректность работы MP заранее самим.

Установка и настройка DM Multipath

yum install device-mapper-multipath
mpathconf --enable --user_friendly_names y

cat /etc/multipath.conf | egrep -v "^s*(#|$)"
defaults {
    user_friendly_names yes
            find_multipaths yes
}

blacklist {
  wwid 26353900f02796769
  devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"     
  devnode "^hd[a-z]"
 }

Устанавливаем сервис MP в автостарт и запускаем его:

systemctl enable multipathd && systemctl restart multipathd

Проверка информации о загруженных модулях для работы MP:

lsmod | grep dm_multipath
dm_multipath           27792  6 dm_service_time
dm_mod                124407  139 dm_multipath,dm_log,dm_mirror

modinfo dm_multipath
filename:       /lib/modules/3.10.0-957.12.2.el7.x86_64/kernel/drivers/md/dm-multipath.ko.xz
license:        GPL
author:         Sistina Software <[email protected]>
description:    device-mapper multipath target
retpoline:      Y
rhelversion:    7.6
srcversion:     985A03DCAF053D4910E53EE
depends:        dm-mod
intree:         Y
vermagic:       3.10.0-957.12.2.el7.x86_64 SMP mod_unload modversions
signer:         CentOS Linux kernel signing key
sig_key:        A3:2D:39:46:F2:D3:58:EA:52:30:1F:63:37:8A:37:A5:54:03:00:45
sig_hashalgo:   sha256

Просматриваем сводную информацию о существующей конфигурации multipath:

mpathconf
multipath is enabled
find_multipaths is disabled
user_friendly_names is disabled
dm_multipath module is loaded
multipathd is running

После добавления нового LUN на СХД и презентации его хосту, на нём нужно выполнить сканирование подключенных к хосту HBA.

systemctl reload multipathd
multipath -v2

Ну и наконец, проверяем, все ли LUN’ы были презентованы на СХД для хостов, и ко всем ли ведут два пути.

Проверка работы MP:

multipath -ll
3600a098000e4b4b3000003175cec1840 dm-2 DELL    ,MD38xxf
size=2.0T features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 rdac' wp=rw
|-+- policy='service-time 0' prio=14 status=active
| `- 15:0:0:1  sdb 8:16  active ready running
`-+- policy='service-time 0' prio=9 status=enabled
  `- 18:0:0:1  sdi 8:128 active ready running
3600a098000e4b48f000002ab5cec1921 dm-6 DELL    ,MD38xxf
size=10T features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 rdac' wp=rw
|-+- policy='service-time 0' prio=14 status=active
| `- 18:0:0:11 sdk 8:160 active ready running
`-+- policy='service-time 0' prio=9 status=enabled
  `- 15:0:0:11 sdd 8:48  active ready running
3600a098000e4b4b3000003c95d171065 dm-3 DELL    ,MD38xxf
size=150G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 rdac' wp=rw
|-+- policy='service-time 0' prio=14 status=active
| `- 15:0:0:4  sdc 8:32  active ready running
`-+- policy='service-time 0' prio=9 status=enabled
  `- 18:0:0:4  sdj 8:144 active ready running

Как видно, все три виртуальных диска на СХД видны по двум путям. Таким образом все подготовительные работы выполнены, а значит можно переходить к выполнению основной части – настройке кластера oVirt, что будет рассмотрено в следующей статье.

Источник: habr.com