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


Схема подключения свичей для Cluster Interconnect

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

  • Конвертации FAS2240/255x в полку с последующим подключением к новой FAS истеме (у которой тоже есть полка с дисками), при этом требуется онлайн перенос без останова доступа к данным. На обоих системах должны работать ОС cDOT
  • Обновление 7M до cDOT с последующей онлайн миграцией данных назад
  • Обновление прошивки контроллеров (хотя его и можно выполнять без останова, исспользуя всего два контроллера, но если у вас есть ещё пара контроллеров с дисками, почему бы их не задейстовать)
  • В случае если нужно выполнить более рациональную перезазбивку дисков (к примеру для получения фичи ADP)
  • И др.


Как для временных конфигураций кластера сосстоящего из более двух контроллеров, так и для постоянных, требуется наличие поддерживаемого кластерного свича. На данный момент таких свича всего два это NetApp CN1610 и Cisco Nexus 5596. Если вы покупали сразу четыре или более контроллера, то этот свич у вас конечно же есть. А если это временная конфигурация из примеров выше, скорее всего такого свича нет. И что делать? Ответ очевиден: настроить тот свич, которыей у вас есть сейчас под рукой.

Не смотря на то, что другие свичи официально не поддержуются, они конечно же работают:
Тестировались следующие свичи с MTU 1500:
  • HP Pro Curve 6120XG (Image stamp Z.14.44, 1564) from HP c7000 with 10Gb links to 2240 and 8020
  • Cisco WS-C3850-48T (IOS 03.03.03SE RELEASE SOFTWARE (fc2)) with 1Gb links to 2240 and 8020

Настройки HP Pro Curve 6120XG from HP c7000
# HP Pro Curve 6120XG from HP c7000

swbl2# sh ver
Image stamp:    /ws/swbuildm/Z_zinfandel_fip_t4b_qaoff/code/build/vern(Z_zinfandel_fip_t4b_qaoff)
                Aug 26 2013 16:32:58
                Z.14.44
                1564
Boot Image:     Primary

swbl2# sh vlan

 Status and Counters - VLAN Information

  Maximum VLANs to support : 256
  Primary VLAN : TECH
  Management VLAN :

  VLAN ID Name                 | Status     Voice Jumbo
  ------- -------------------- + ---------- ----- -----
  1       DEFAULT_VLAN         | Port-based No    No
  210     NetApp-Cluster       | Port-based No    No


vlan 210
   name "NetApp-Cluster"
   untagged 19-20,22
   tagged Trk1-Trk2
# Trk1-Trk2 - connection of both HP switches to each other and to Cisco WS-C3850-48T
   no ip address
   exit


wbl1# sh vlans 210

 Status and Counters - VLAN Information - VLAN 210

  VLAN ID : 210
  Name : NetApp-Cluster
  Status : Port-based
  Voice : No
  Jumbo : Yes

  Port Information Mode     Unknown VLAN Status
  ---------------- -------- ------------ ----------
  22               Untagged Learn        Up

swbl2# sh cdp neighbors 22 detail

 CDP neighbors information for port 22

  Port : 22
  Device ID : clA-02
  Address Type : IP
  Address      : 169.254.166.38
  Platform     : NetApp Release 8.3RC1: Fri Oct 31 20:13:33 PDT 2014FAS8020
  Capability   :
  Device Port  : e0b
  Version      : NetApp Release 8.3RC1: Fri Oct 31 20:13:33 PDT 2014FAS8020


Настройка Cisco WS-C3850
#Cisco WS-C3850-48T
interface Vlan210
 description NetApp-Cluster
 no ip address

interface GigabitEthernet2/0/10
 switchport access vlan 210
 switchport mode access
 flowcontrol receive on
 spanning-tree portfast
!

core1-co2#sh cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
                  S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
                  D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID


netapp2          Gig 1/0/10        149               H    FAS2240-2 e0b
netapp2          Gig 1/0/9         149               H    FAS2240-2 e0a
netapp2          Gig 2/0/9         149               H    FAS2240-2 e0d
netapp2          Gig 2/0/10        149               H    FAS2240-2 e0c
netapp2          Gig 1/0/40        149               H    FAS2240-2 e0M
netapp1          Gig 2/0/8         166               H    FAS2240-2 e0d
netapp1          Gig 2/0/7         166               H    FAS2240-2 e0c
netapp1          Gig 1/0/8         166               H    FAS2240-2 e0a
netapp1          Gig 1/0/7         166               H    FAS2240-2 e0b
netapp1          Gig 1/0/39        166               H    FAS2240-2 e0M

clA-02           Gig 2/0/12        142               H    FAS8020   e0f
clA-02           Gig 2/0/6         142               H    FAS8020   e0e
clA-01           Gig 2/0/11        168               H    FAS8020   e0f
clA-01           Gig 1/0/6         168               H    FAS8020   e0e

core1-co2#sh vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Te1/1/3, Te1/1/4, Gi2/0/37, Gi2/0/38, Gi2/0/41, Gi2/0/48, Te2/1/3
                                                Te2/1/4
210  NetApp-Cluster                   active    Gi1/0/6, Gi1/0/7, Gi1/0/8, Gi1/0/9, Gi1/0/10, Gi2/0/6, Gi2/0/7
                                                Gi2/0/8, Gi2/0/9, Gi2/0/10, Gi2/0/11, Gi2/0/12

VLAN Type  SAID       MTU   Parent RingNo BridgeNo Stp  BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
210  enet  100210     1500  -      -      -        -    -        0      0

ore1-co2#sh ver
Cisco IOS Software, IOS-XE Software, Catalyst L3 Switch Software
(CAT3K_CAA-UNIVERSALK9-M), Version 03.03.03SE RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2014 by Cisco Systems, Inc.
Compiled Sun 27-Apr-14 18:33 by prod_rel_team
ROM: IOS-XE ROMMON
BOOTLDR: CAT3K_CAA Boot Loader (CAT3K_CAA-HBOOT-M) Version 1.2, RELEASE SOFTWARE (P)

Ipbase
License Type: Permanent
Next reload license Level: Ipbase

cisco WS-C3850-48T (MIPS) processor with 4194304K bytes of physical memory.
Processor board ID FOC1801U0WU
11 Virtual Ethernet interfaces
104 Gigabit Ethernet interfaces
8 Ten Gigabit Ethernet interfaces
2048K bytes of non-volatile configuration memory.
4194304K bytes of physical memory.
250456K bytes of Crash Files at crashinfo:.
250456K bytes of Crash Files at crashinfo-2:.
1609272K bytes of Flash at flash:.
1609272K bytes of Flash at flash-2:.
0K bytes of Dummy USB Flash at usbflash0:.
0K bytes of Dummy USB Flash at usbflash0-2:.
0K bytes of  at webui:.

Base Ethernet MAC Address          : 50:1c:bf:6c:65:00
Motherboard Assembly Number        : 73-14444-06
Motherboard Serial Number          : FOC180112WY
Model Revision Number              : M0
Motherboard Revision Number        : A0
Model Number                       : WS-C3850-48T
System Serial Number               : FOC1801U0WU


Switch Ports Model              SW Version        SW Image              Mode
------ ----- -----              ----------        ----------            ----
*    1 56    WS-C3850-48T       03.03.03SE        cat3k_caa-universalk9 INSTALL
     2 56    WS-C3850-48T       03.03.03SE        cat3k_caa-universalk9 INSTALL 


С MTU 9000 Cisco Nexus 5548UP:
Nexus 5548UP Software version 7.1(1)N1(1)
banner motd # Nexus 5548 NetApp Reference Configuration File (RCF) version 1.3-48p (2012-10-15)
#

feature lacp

cdp enable
cdp advertise v1
cdp timer 5

snmp-server community cshm1! ro

errdisable recovery interval 30
errdisable recovery cause pause-rate-limit

policy-map type network-qos cluster
  class type network-qos class-default
    mtu 9216
system qos
  service-policy type network-qos cluster

spanning-tree port type edge default
port-channel load-balance ethernet source-dest-port

interface port-channel1
  switchport mode trunk
  spanning-tree port type network
 
interface Ethernet1/1
  description Cluster Node 1  
  no lldp transmit
  no lldp receive
  spanning-tree port type edge
  spanning-tree bpduguard enable

interface Ethernet1/2
  description Cluster Node 2  
  no lldp transmit
  no lldp receive
  spanning-tree port type edge
  spanning-tree bpduguard enable

interface Ethernet1/3
  description Cluster Node 3
  no lldp transmit
  no lldp receive  
  spanning-tree port type edge
  spanning-tree bpduguard enable

interface Ethernet1/4
  description Cluster Node 4
  no lldp transmit
  no lldp receive  
  spanning-tree port type edge
  spanning-tree bpduguard enable

interface Ethernet1/5
  description Cluster Node 5
  no lldp transmit
  no lldp receive  
  spanning-tree port type edge
  spanning-tree bpduguard enable

interface Ethernet1/6
  description Cluster Node 6
  no lldp transmit
  no lldp receive  
  spanning-tree port type edge
  spanning-tree bpduguard enable

interface Ethernet1/7
  description Cluster Node 7
  no lldp transmit
  no lldp receive  
  spanning-tree port type edge
  spanning-tree bpduguard enable

interface Ethernet1/8
  description Cluster Node 8
  no lldp transmit
  no lldp receive  
  spanning-tree port type edge
  spanning-tree bpduguard enable

interface Ethernet1/9
  description Cluster Node 9
  no lldp transmit
  no lldp receive  
  spanning-tree port type edge
  spanning-tree bpduguard enable

interface Ethernet1/10
  description Cluster Node 10
  no lldp transmit
  no lldp receive  
  spanning-tree port type edge
  spanning-tree bpduguard enable

interface Ethernet1/11
  description Cluster Node 11
  no lldp transmit
  no lldp receive  
  spanning-tree port type edge
  spanning-tree bpduguard enable

interface Ethernet1/12
  description Cluster Node 12
  no lldp transmit
  no lldp receive 
  spanning-tree port type edge
  spanning-tree bpduguard enable

interface Ethernet1/13
  description Cluster Node 13
  no lldp transmit
  no lldp receive
  spanning-tree port type edge
  spanning-tree bpduguard enable
  
interface Ethernet1/14
  description Cluster Node 14
  no lldp transmit
  no lldp receive
  spanning-tree port type edge
  spanning-tree bpduguard enable
  
interface Ethernet1/15
  description Cluster Node 15
  no lldp transmit
  no lldp receive
  spanning-tree port type edge
  spanning-tree bpduguard enable
  
interface Ethernet1/16
  description Cluster Node 16
  no lldp transmit
  no lldp receive
  spanning-tree port type edge
  spanning-tree bpduguard enable
  
interface Ethernet1/17
  description Cluster Node 17
  no lldp transmit
  no lldp receive
  spanning-tree port type edge
  spanning-tree bpduguard enable
  
interface Ethernet1/18
  description Cluster Node 18
  no lldp transmit
  no lldp receive
  spanning-tree port type edge
  spanning-tree bpduguard enable
  
interface Ethernet1/19
  description Cluster Node 19
  no lldp transmit
  no lldp receive
  spanning-tree port type edge
  spanning-tree bpduguard enable
  
interface Ethernet1/20
  description Cluster Node 20
  no lldp transmit
  no lldp receive
  spanning-tree port type edge
  spanning-tree bpduguard enable
  
interface Ethernet1/21
  description Cluster Node 21
  no lldp transmit
  no lldp receive
  spanning-tree port type edge
  spanning-tree bpduguard enable
  
interface Ethernet1/22
  description Cluster Node 22
  no lldp transmit
  no lldp receive
  spanning-tree port type edge
  spanning-tree bpduguard enable
  
interface Ethernet1/23
  description Cluster Node 23
  no lldp transmit
  no lldp receive
  spanning-tree port type edge
  spanning-tree bpduguard enable
  
 interface Ethernet1/24
  description Cluster Node 24
  no lldp transmit
  no lldp receive
  spanning-tree port type edge
  spanning-tree bpduguard enable
  
interface Ethernet1/25
  description Inter-Cluster Switch ISL Port 25 (port channel)
  no lldp transmit
  no lldp receive
  switchport mode trunk
  channel-group 1 mode active
  
interface Ethernet1/26
  description Inter-Cluster Switch ISL Port 26 (port channel)
  no lldp transmit
  no lldp receive
  switchport mode trunk
  channel-group 1 mode active
  
interface Ethernet1/27
  description Inter-Cluster Switch ISL Port 27 (port channel)
  no lldp transmit
  no lldp receive
  switchport mode trunk
  channel-group 1 mode active
  
interface Ethernet1/28
  description Inter-Cluster Switch ISL Port 28 (port channel)
  no lldp transmit
  no lldp receive
  switchport mode trunk
  channel-group 1 mode active
  
interface Ethernet1/29
  description Inter-Cluster Switch ISL Port 29 (port channel)
  no lldp transmit
  no lldp receive
  switchport mode trunk
  channel-group 1 mode active
  
interface Ethernet1/30
  description Inter-Cluster Switch ISL Port 30 (port channel)
  no lldp transmit
  no lldp receive
  switchport mode trunk
  channel-group 1 mode active
  
interface Ethernet1/31
  description Inter-Cluster Switch ISL Port 31 (port channel)
  no lldp transmit
  no lldp receive
  switchport mode trunk
  channel-group 1 mode active
  
interface Ethernet1/32
  description Inter-Cluster Switch ISL Port 32 (port channel)
  no lldp transmit
  no lldp receive
  switchport mode trunk
  channel-group 1 mode active

end


Тестировались следующие операционные cисиетмы cDOT 8.3RC1, 8.3.1RC1 с хранилищами:
  • FAS2240
  • FAS8020

При необходимости перенастраиваем MTU для кластерных портов NetApp:
network port broadcast-domain modify -broadcast-domain Cluster -mtu 1500-or-9000 -ipspace Cluster

При необходимости конвертируем SwitchLess-Cluster в Switched:
cluster1::*> network options switchless-cluster modify -enabled true


При необходимости мигрируем кластерные LIF'ы
Если у ноды только один кластерный LIF, создайте второй и мигрируйте их по-очереди, так чтобы все ноды видели друг-друга хотябы по одному пути: через swichless коммутацию или через свичи.
Не мигрируйте все LIF'ы одной ноды сразу, отвалившаяся нода с включённым HA сразу ребутнётся!
HA конечно же сработает, но зачем, если можно без этого обойтись?
cluster1::> network interface show -role cluster
cluster1::> network interface modify -vserver vsm0 -lif clus1_1 -home-node node01 -home-port e0c -auto-revert false
cluster1::> network interface modify -vserver vsm0 -lif clus2_1 -home-node node02 -home-port e0c -auto-revert false
#Мигрируем LIF
#Выполняем из Cluster Node Management консоли, той ноды на которой расположен LIF.
cluster1-01::> network interface revert -vserver vsm0 -lif clus1_1
cluster1-02::> network interface revert -vserver vsm0 -lif clus2_1


Обязательно тестируем кластреную сеть из advanced режима:
cluster1::*> cluster ping-cluster -node local
Host is node1
Getting addresses from network interface table...
Local = 10.254.231.102  10.254.91.42
Remote = 10.254.42.25    10.254.16.228
Ping status:
....
Basic connectivity succeeds on 4 path(s)
Basic connectivity fails on 0 path(s)
................
Detected 1500 byte MTU on 4 path(s):
    Local 10.254.231.102 to Remote 10.254.16.228
    Local 10.254.231.102 to Remote 10.254.42.25
    Local 10.254.91.42 to Remote 10.254.16.228
    Local 10.254.91.42 to Remote 10.254.42.25
Larger than PMTU communication succeeds on 4 path(s)
RPC status:
2 paths up, 0 paths down (tcp check)
2 paths up, 0 paths down (udp check)



В продакшн, NetApp не рекомендует исспользовать Cluster Interconnect свичи для чего бы то ни было, кроме как для кластерного подключения хранилищ NetApp, для этого необходимо иметь отдельные свичи, хотя технически возможно исспользовать те же свичи для обоих задач.

Блочный доступ:


Напомню, что начиная с cDOT 8.3 по-умолчанию работает новая фича SLM и в случае онлайн миграции необходимо, на нодах которые принимают мигрирующий лун, разрешить «рассказывать» драйверам мультипасинга хостов, что лун теперь доступен по новым, дополнительным путям.
cluster1::> lun mapping add-reporting-nodes -vserver vserver_name -path lun_path -igroup igroup_name [-destination-aggregate aggregate_name | -destination-volume volume_name]

Удостоверьтесь, что драйвер мультипасинга на хосте обнаружил эти новые пути.

NAS:


В случае миграции вольюма, который исспользуется для файловых протоколов NFS/CIFS(SMB), после миграции не забудьте переместить LIF на ноду, куда переехал вольюм.
cluster1::> network interface migrate -vserver vs0 -lif datalif1 -source-node vs0 -dest-node node2 -dest-port e0c


Подробнее том, как вывести ноды из кластера.
Подробнее том, как настроить зонинг для кластерного хранилища.

Замечания по ошибкам и предложения правок в тексте прошу направлять в ЛС.

Комментарии (10)


  1. navion
    15.09.2015 14:53
    +2

    А не тестировали производительность? Хотелось бы увидеть сравнение Catalyst с Nexus по IOPS и Latency.


    1. syncer
      15.09.2015 21:50
      +1

      проверял nexus 5010
      для iscsi печально с латенси, FC\FCoE не пробовал, бытует мнение что они годны только для FC\FCoE
      HP Pro Curve 6120XG from HP c7000 хорошо себя показал


      1. Maxim_ka
        17.09.2015 15:19
        +1

        На счет FC/FCoE могу заверить, что проблем с latency вообще не было, у меня была отдельная плата FC, как положено, настроен zoning и прочее, если честно завелось с пол пинка, поэтому проводить замеры по скоростям не стали, да и особо времени не было.
        На счет iscsi к сожалению ничего сказать не могу.


      1. bbk
        17.09.2015 15:42

        А вы использовали QoS, MTU900, функции DCB такие как LLDP, TLV, PFC?


        1. syncer
          18.09.2015 01:56
          +1

          QoS и MTU 9000
          nexus 5010 не умеет DCB нормально для iscsi, нету всех TLVs
          согласно рекомендациям делл отключили DCB
          Задержка заметно возросла по сравнению с 6120XG


    1. pcmaniac
      22.09.2015 01:48
      +1

      Использую HP Pro Curve 6120XG (MTU 9000) и FAS2240. Игрался с дёрганьем линков и ребутом голов/свичей под нагрузкой. Протормозок не заметил, но им особо не откуда было бы взяться, максимальная нагрузка на порт составила всего 40%


      1. bbk
        22.09.2015 07:18

        У меня с 6120 и mtu 9000 почему-то кластерная сеть не поднялась с ontap 8.3rc1/8.3.1rc1.
        Вы могли бы дать свой конфиг свича, версию прошивки, включенные фичи?


        1. pcmaniac
          22.09.2015 15:12
          +1

          Не уточнил, у меня не кластер, а обычный HA Pair 7-Mode. Стоит ontap 8.1.2, одна полка FAS2240-2 с двумя головами, два свича, с каждой головы по шнурку в каждый свич. У каждого коннекта свой IP и на клиенте все 4 подключены в iSCSI Multipath. Всё как по учебнику :)
          Первый вариант был с объединением линков в LAGG, но тогда при пропадании линка терялась пара пакетов, что не айс, а в таком конфиге как сейчас, всё ок.


  1. bbk
    15.09.2015 15:42

    navion
    Производительность свичей не тестировалась. В данном случае в этом нет большой надобности.

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

    • ALUA (для SAN)
    • pNFS 4.1 (NAS)
    • и CIFS v3.0 (NAS)

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

    Вопрос ухудшения отклика меня не интересовал, так при выборе двух из трех пунктов
    • Онлайн миграция
    • Скорость отклика
    • Возможность исспользования подручных свичей

    Вопрос скорости отклика был на самом последнем приоритете.


  1. Smasher
    17.09.2015 16:11
    +1

    Неплохо бы добавить информацию о том, что при обращении в техподдержку NetApp, такое решение поддерживаться не будет :)
    А в целом очень полезная статья. У многих существует соблазн построить кластер на уже имеющихся коммутаторах хотя бы для тестов. Хоть цены на CN1610 более, чем адекватные.