null

Конфигурация SunCluster при наличии двух сетевых интерфейсов на каждой ноде.

Согласно документации рекомендуется использовать 4 и более сетевых интерфейса для каждой ноды кластера. Однако из-за конструктивных особенностей некоторых серверов не всегда есть возможность установить дополнительные интерфейсы - например на блейд-серверах. В статье будет рассмотрены некоторые особенности конфигурирования SunCluster на серверах с двумя сетевыми интерфейсами.
И так, после инсталяции Solaris и SunCluster имеется следующая конфигурация:

root@node1 #
root@node1 # dladm show-dev
e1000g0         link: up        speed: 1000  Mbps       duplex: full
e1000g1         link: unknown   speed: 0     Mbps       duplex: half
root@node1 # dladm show-link
e1000g0         type: non-vlan  mtu: 1500       device: e1000g0
e1000g1         type: non-vlan  mtu: 1500       device: e1000g1
root@node1 # ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000  
e1000g0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.56.11 netmask ffffff00 broadcast 192.168.56.255
        ether 8:0:27:0:49:75  
root@node1 #  

Запускаем scinstall и при попытке конфигурировани интерконнекта получаем:
  >>> Cluster Transport Adapters and Cables <<<
 
    You must configure the cluster transport adapters for each node in the
    cluster. These are the adapters which attach to the private cluster  
    interconnect.
 
    Select the first cluster transport adapter:
 
        1) e1000g1
        2) Other
 
    Option:  2
 
    What is the name of the first cluster transport adapter (help)?  e1000g0
 
Adapter "e1000g0" is already in use as a public network adapter.
Для решения этой проблемы производим реконфигурацию сетевых интерфейсов:
root@node1 # ifconfig e1000g0 down unplumb
root@node1 # ifconfig e1000g10000 plumb
root@node1 # ifconfig e1000g10000 192.168.56.11/24 up
root@node1 # ifconfig e1000g11000 plumb
root@node1 # ifconfig e1000g11000 192.168.57.11/24 up
root@node1 # ifconfig e1000g12001 plumb
root@node1 # ifconfig e1000g12001 192.168.58.11/24 up
root@node1 #  
root@node1 # dladm show-dev
e1000g0         link: up        speed: 1000  Mbps       duplex: full
e1000g1         link: up        speed: 1000  Mbps       duplex: full
root@node1 # dladm show-link
e1000g0         type: non-vlan  mtu: 1500       device: e1000g0
e1000g10000     type: vlan 10   mtu: 1500       device: e1000g0
e1000g11000     type: vlan 11   mtu: 1500       device: e1000g0
e1000g1         type: non-vlan  mtu: 1500       device: e1000g1
e1000g12001     type: vlan 12   mtu: 1500       device: e1000g1
root@node1 # ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000  
e1000g10000: flags=201000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu 1500 index 3
        inet 192.168.56.11 netmask ffffff00 broadcast 192.168.56.255
        ether 8:0:27:0:49:75  
e1000g11000: flags=201000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu 1500 index 4
        inet 192.168.57.11 netmask ffffff00 broadcast 192.168.57.255
        ether 8:0:27:0:49:75  
e1000g12001: flags=201000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS> mtu 1500 index 5
        inet 192.168.58.11 netmask ffffff00 broadcast 192.168.58.255
        ether 8:0:27:d2:7b:1f  
root@node1 #
Для других нод кластера выполняем аналогичные действия.
Кроме этого необходимо соответствующим образом настроить активное сетевое оборудование. Далее проверяем сетевую конфигурацию (ххх.ххх.ххх.12 - адреса сетевых интерфейсов другой ноды в соответствующих VLAN-ах):
root@node1 # ping 192.168.56.12
192.168.56.12 is alive
root@node1 # ping 192.168.57.12
192.168.57.12 is alive
root@node1 # ping 192.168.58.12
192.168.58.12 is alive
Сохряняем настройки для public интерфейса
root@node1 # mv /etc/hostname.e1000g0 /etc/hostname.e1000g10000
и не забываем расконфигурировать интерфейсы для интерконнекта (интерфейсы должны быть unplumb).
root@node1 # ifconfig e1000g11000 down unplumb
root@node1 # ifconfig e1000g12001 down unplumb
Заново запускаем scinstall и конфигурируем интерконнект:
  >>> Cluster Transport Adapters and Cables <<<
 
    You must configure the cluster transport adapters for each node in the
    cluster. These are the adapters which attach to the private cluster  
    interconnect.
 
    Select the first cluster transport adapter:
 
        1) e1000g0
        2) e1000g1
        3) Other
 
    Option:  1
 
    This adapter is used on the public network also, you will need to  
    configure it as a tagged VLAN adapter for cluster transport.
 
    What is the cluster transport VLAN ID for this adapter?  11
 
    Searching for any unexpected network traffic on "e1000g11000" ... done
    Verification completed. No traffic was detected over a 10 second  
    sample period.
 
    Select the second cluster transport adapter:
 
        1) e1000g0
        2) e1000g1
        3) Other
 
    Option:  2
 
    Will this be a dedicated cluster transport adapter (yes/no) [yes]?  no
 
    What is the cluster transport VLAN ID for this adapter?  12
 
    Searching for any unexpected network traffic on "e1000g12001" ... done
    Verification completed. No traffic was detected over a 10 second  
    sample period.
 
    Plumbing network address 172.16.0.0 on adapter e1000g0 >> NOT DUPLICATE ... done
    Plumbing network address 172.16.0.0 on adapter e1000g1 >> NOT DUPLICATE ... done
Проверяем, что scinstall правильно сгенерил команду конфигурации кластера
  >>> Confirmation <<<
 
    Your responses indicate the following options to scinstall:
 
      scinstall -i \  
           -C test \  
           -F \  
           -G lofi \  
           -T node=node1,node=node2,authtype=sys \  
           -w netaddr=172.16.0.0,netmask=255.255.240.0,maxnodes=64,maxprivatenets=10,numvirtualclusters=12 \  
           -A trtype=dlpi,name=e1000g0,vlanid=11 -A trtype=dlpi,name=e1000g1,vlanid=12 \  
           -B type=switch,name=switch1 -B type=switch,name=switch2 \  
           -m endpoint=:e1000g0,endpoint=switch1 \  
           -m endpoint=:e1000g1,endpoint=switch2 \  
           -P task=quorum,state=INIT
 
    Are these the options you want to use (yes/no) [yes]?   
 
    Do you want to continue with this configuration step (yes/no) [yes]?   
и если да - то подтверждаем ее.
После перезагрузки первой ноды приступаем у конфигурации второй ноды. Запускаем scinstall и при конфигурации интерконнекта соглашаемся на autodiscovery
  >>> Autodiscovery of Cluster Transport <<<
 
    If you are using Ethernet or Infiniband adapters as the cluster  
    transport adapters, autodiscovery is the best method for configuring  
    the cluster transport.
 
    Do you want to use autodiscovery (yes/no) [yes]?   
 
 
    Probing ....  
 
    The following connections were discovered:
 
        node1:e1000g0  switch1  node2:e1000g0 [VLAN ID 11]
        node1:e1000g1  switch2  node2:e1000g1 [VLAN ID 12]
 
    Is it okay to configure these connections (yes/no) [yes]?   
Если по каким-то причинам autodiscovery отработала некорректно - задаем конфигурацию самостоятельно с указанием интерфейсов и соответствующих VLAN-ов. Проверяем команду конфигурирования
  >>> Confirmation <<<
 
    Your responses indicate the following options to scinstall:
 
      scinstall -i \  
           -C test \  
           -N node1 \  
           -G lofi \  
           -A trtype=dlpi,name=e1000g0,vlanid=11 -A trtype=dlpi,name=e1000g1,vlanid=12 \  
           -m endpoint=:e1000g0,endpoint=switch1 \  
           -m endpoint=:e1000g1,endpoint=switch2
 
    Are these the options you want to use (yes/no) [yes]?   
 
    Do you want to continue with this configuration step (yes/no) [yes]?  
и если все правильно - подтверждаем.
После перезагрузки второй ноды она должна быть подключенной к кластеру. Проверяем состояние интерфейсов и конфигурацию кластера:
root@node1 # dladm show-dev
e1000g0         link: up        speed: 1000  Mbps       duplex: full
e1000g1         link: up        speed: 1000  Mbps       duplex: full
clprivnet0              link: unknown   speed: 0     Mbps       duplex: unknown
root@node1 # dladm show-link
e1000g0         type: non-vlan  mtu: 1500       device: e1000g0
e1000g10000     type: vlan 10   mtu: 1500       device: e1000g0
e1000g11000     type: vlan 11   mtu: 1500       device: e1000g0
e1000g1         type: non-vlan  mtu: 1500       device: e1000g1
e1000g12001     type: vlan 12   mtu: 1500       device: e1000g1
clprivnet0      type: legacy    mtu: 1486       device: clprivnet0
root@node1 # ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000  
e1000g10000: flags=209000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,NOFAILOVER,CoS> mtu 1500 index 2
        inet 192.168.56.11 netmask ffffff00 broadcast 192.168.56.255
        groupname sc_ipmp0
        ether 8:0:27:0:49:75  
e1000g11000: flags=201008843<UP,BROADCAST,RUNNING,MULTICAST,PRIVATE,IPv4,CoS> mtu 1500 index 4
        inet 172.16.0.129 netmask ffffff80 broadcast 172.16.0.255
        ether 8:0:27:0:49:75  
e1000g12001: flags=201008843<UP,BROADCAST,RUNNING,MULTICAST,PRIVATE,IPv4,CoS> mtu 1500 index 3
        inet 172.16.1.1 netmask ffffff80 broadcast 172.16.1.127
        ether 8:0:27:d2:7b:1f  
clprivnet0: flags=1009843<UP,BROADCAST,RUNNING,MULTICAST,MULTI_BCAST,PRIVATE,IPv4> mtu 1500 index 5
        inet 172.16.4.1 netmask fffffe00 broadcast 172.16.5.255
        ether 0:0:0:0:0:1  
root@node1 # clinterconnect show
 
=== Transport Cables ===                        
 
Transport Cable:                                node1:e1000g11000,switch1@1
  Endpoint1:                                       node1:e1000g11000
  Endpoint2:                                       switch1@1
  State:                                           Enabled
 
Transport Cable:                                node1:e1000g12001,switch2@1
  Endpoint1:                                       node1:e1000g12001
  Endpoint2:                                       switch2@1
  State:                                           Enabled
 
Transport Cable:                                node2:e1000g11000,switch1@2
  Endpoint1:                                       node2:e1000g11000
  Endpoint2:                                       switch1@2
  State:                                           Enabled
 
Transport Cable:                                node2:e1000g12001,switch2@2
  Endpoint1:                                       node2:e1000g12001
  Endpoint2:                                       switch2@2
  State:                                           Enabled
 
 
=== Transport Switches ===                      
 
Transport Switch:                               switch1
  State:                                           Enabled
  Type:                                            switch
  Port Names:                                      1 2
  Port State(1):                                   Enabled
  Port State(2):                                   Enabled
 
Transport Switch:                               switch2
  State:                                           Enabled
  Type:                                            switch
  Port Names:                                      1 2
  Port State(1):                                   Enabled
  Port State(2):                                   Enabled
 
 
--- Transport Adapters for node1 ---            
 
Transport Adapter:                              e1000g11000
  State:                                           Enabled
  Transport Type:                                  dlpi
  device_name:                                     e1000g
  device_instance:                                 0
  lazy_free:                                       1
  dlpi_heartbeat_timeout:                          10000
  dlpi_heartbeat_quantum:                          1000
  nw_bandwidth:                                    80
  bandwidth:                                       70
  vlan_id:                                         11
  ip_address:                                      172.16.0.129
  netmask:                                         255.255.255.128
  Port Names:                                      0
  Port State(0):                                   Enabled
 
Transport Adapter:                              e1000g12001
  State:                                           Enabled
  Transport Type:                                  dlpi
  device_name:                                     e1000g
  device_instance:                                 1
  lazy_free:                                       1
  dlpi_heartbeat_timeout:                          10000
  dlpi_heartbeat_quantum:                          1000
  nw_bandwidth:                                    80
  bandwidth:                                       70
  vlan_id:                                         12
  ip_address:                                      172.16.1.1
  netmask:                                         255.255.255.128
  Port Names:                                      0
  Port State(0):                                   Enabled
 
 
--- Transport Adapters for node2 ---            
 
Transport Adapter:                              e1000g11000
  State:                                           Enabled
  Transport Type:                                  dlpi
  device_name:                                     e1000g
  device_instance:                                 0
  vlan_id:                                         11
  lazy_free:                                       1
  dlpi_heartbeat_timeout:                          10000
  dlpi_heartbeat_quantum:                          1000
  nw_bandwidth:                                    80
  bandwidth:                                       70
  ip_address:                                      172.16.0.130
  netmask:                                         255.255.255.128
  Port Names:                                      0
  Port State(0):                                   Enabled
 
Transport Adapter:                              e1000g12001
  State:                                           Enabled
  Transport Type:                                  dlpi
  device_name:                                     e1000g
  device_instance:                                 1
  vlan_id:                                         12
  lazy_free:                                       1
  dlpi_heartbeat_timeout:                          10000
  dlpi_heartbeat_quantum:                          1000
  nw_bandwidth:                                    80
  bandwidth:                                       70
  ip_address:                                      172.16.1.2
  netmask:                                         255.255.255.128
  Port Names:                                      0
  Port State(0):                                   Enabled
 
root@node1 # clinterconnect status
 
=== Cluster Transport Paths ===
 
Endpoint1               Endpoint2               Status
---------               ---------               ------
node1:e1000g12001       node2:e1000g12001       Path online
node1:e1000g11000       node2:e1000g11000       Path online
 
Далее остается настроить IPMP для public сети используя интрефейс e1000g10001 и можно считать, что по крайней мере сетевые ресурсы кластера мы сконфигурировали.
Таким образом, для конфигурации SunCluster на серверах с двумя сетевыми интерфейсами нам потребовалось три VLAN-а - один для public сети и два для интерконнекта. Public сеть должна быть переведена в VLAN до запуска scinstall.
 

Назад

Konstantin Borzov, Baku 2009

Коротко о себе:

Закончил Пушкинское высшее училище радиоэлектроники противовоздушной обороны (ПВУРЭ ПВО).

Служил в ВС и МВД, работал в народном хозяйстве. В настоящее время сотрудник компании Tune-It.

Привлекает решение "стандартных" задач - создание конфет из имеющегося сырья подручными средствами.

Ненавижу питерские пробки. Еще больше ненавижу общественный транспорт. В результате ежедневно пару часов провожу за рулем.