본문 바로가기

OS & network/solaris

솔라리스 11을 이용한 IPMP 구성 ( Active-Standby ) 방식

테크넷 마스터 김재벌 입니다.


지난 포스팅에 이어 IPMP 를 연재 합니다.


솔라리스 11을 이용한 IPMP 구성 (Active-Active ) 방식  ( http://solatech.tistory.com/299 ) 에 이어 ( Active-standby ) 방식의 구성을 소개하도록 하겠습니다.



그림과 같이 기존의 NIC 을 IPMP 그룹으로 만들어 놓고 운영하다가 net1 에 장애가 발생할 때 net2 인터페이스가 자동으로 대체 할 수 있도록 active-standby 모드로 구성할 수 있습니다.


먼저 지난 포스팅에 이어 구성이 동일하게 유지되고 있다면 다음과 같이 링크를 확인해 봅니다.
새롭게 추가된 net2가 보입니다.


root@sol11-2:~# dladm show-link

LINK                CLASS     MTU    STATE    OVER

net1                phys      1500   up       --

net0                phys      1500   up       --

net2                phys      1500   up       --

net3                phys      1500   unknown  --

vswitch0            etherstub 9000   unknown  --

dbint0              vnic      9000   up       vswitch0

vswitch1            etherstub 9000   unknown  --

appint0             vnic      9000   up       vswitch1

labint0             vnic      9000   up       vswitch1

webint0             vnic      9000   up       vswitch0


ipmp 그룹을 확인 봅니다.

현재 기존의 구성된 ipmpnet0 가 구성되어 있고 net0 와 net1 이 등록되어 있음을 확인 할 수 있습니다.

root@sol11-2:~# ipmpstat -g

GROUP       GROUPNAME   STATE     FDT       INTERFACES

ipmpnet0    ipmpnet0    ok        --        net1 net0


이제 추가된 인터페이스 net2를 활성화 합니다. 저는 기존에 이미 활성화 되어 있으므로 따로 구성할 필요는 없지만, 안되어 있다면 아래 명령으로 활성화 합니다.


 root@sol11-2:~# ipadm create-ip net2


현재 인터페이스의 구성을 확인해 봅니다.

root@sol11-2:~# ipadm show-if

IFNAME     CLASS    STATE    ACTIVE OVER

lo0        loopback ok       yes    --

net0       ip       ok       yes    --

net1       ip       ok       yes    --

net2       ip       down     no     --

ipmpnet0   ipmp     ok       yes    net0 net1


ipmp 그룹에 net2를 추가 합니다.


root@sol11-2:~# ipadm add-ipmp -i net2 ipmpnet0 


정상적으로 그룹에 포함되었는지 확인합니다.

정상적으로 추가되었음을 확인할 수 있습니다.

root@sol11-2:~# ipmpstat -g

GROUP       GROUPNAME   STATE     FDT       INTERFACES

ipmpnet0    ipmpnet0    ok        --        net2 net1 net0


현재 인터페이스 정보를 다시 확인해 봅니다.

root@sol11-2:~# ipadm show-if

IFNAME     CLASS    STATE    ACTIVE OVER

lo0        loopback ok       yes    --

net0       ip       ok       yes    --

net1       ip       ok       yes    --

net2       ip       ok       yes    --

ipmpnet0   ipmp     ok       yes    net0 net1 net2



현재 IP 주소 할당 정보를 확인해 봅니다.

root@sol11-2:~# ipadm show-addr

ADDROBJ           TYPE     STATE        ADDR

lo0/v4            static   ok           127.0.0.1/8

ipmpnet0/ad1      static   ok           192.168.56.10/24

ipmpnet0/ad2      static   ok           192.168.56.11/24

ipmpnet0/testad1  static   ok           192.168.56.200/24

ipmpnet0/testad2  static   ok           192.168.56.201/24

lo0/v6            static   ok           ::1/128


새롭게 추가된 net2를 위한 테스트 ip를 추가 설정 합니다.


 root@sol11-2:~# ipadm create-addr -T static -a 192.168.56.202/24 ipmpnet0/testad3




현재 IP 주소 할당 정보를 확인해 봅니다.

root@sol11-2:~# ipadm show-addr

ADDROBJ           TYPE     STATE        ADDR

lo0/v4            static   ok           127.0.0.1/8

ipmpnet0/ad1      static   ok           192.168.56.10/24

ipmpnet0/ad2      static   ok           192.168.56.11/24

ipmpnet0/testad1  static   ok           192.168.56.200/24

ipmpnet0/testad2  static   ok           192.168.56.201/24

ipmpnet0/testad3  static   ok           192.168.56.202/24

lo0/v6            static   ok           ::1/128



net2 인터페이스의 인터페이스 프로퍼티 정보를 확인해 봅니다.

현재 net2 인터페이스의 standby 모드가 off 임을 확인할 수 있습니다.


root@sol11-2:~# ipadm show-ifprop -p standby net2

IFNAME      PROPERTY        PROTO PERM CURRENT    PERSISTENT DEFAULT    POSSIBLE

net2        standby         ip    rw   off        --         off        on,off


해당 모드를 on으로 변경하기 위해 다음과 같이 입력합니다.


 root@sol11-2:~# ipadm set-ifprop -p standby=on -m ip net2 


net2 인터페이스의 인터페이스 프로퍼티 정보를 확인해 봅니다.

root@sol11-2:~# ipadm show-ifprop -p standby net2

IFNAME      PROPERTY        PROTO PERM CURRENT    PERSISTENT DEFAULT    POSSIBLE

net2        standby         ip    rw   on       on         off        on,off


ipmp 그룹 정보를 확인해 봅니다. 정상적으로 구성되었음을 확인할 수 있습니다.


root@sol11-2:~# ipmpstat -g

GROUP       GROUPNAME   STATE     FDT       INTERFACES

ipmpnet0    ipmpnet0    ok        --        net1 net0 (net2)


root@sol11-2:~# ipmpstat -an

ADDRESS                   STATE  GROUP       INBOUND     OUTBOUND

::                        down   ipmpnet0    --          --

192.168.56.202            up     ipmpnet0    net0        net1 net0

192.168.56.201            up     ipmpnet0    net1        net1 net0

192.168.56.200            up     ipmpnet0    net0        net1 net0

192.168.56.11             up     ipmpnet0    net1        net1 net0

192.168.56.10             up     ipmpnet0    net0        net1 net0


root@sol11-2:~# ipmpstat -i

INTERFACE   ACTIVE  GROUP       FLAGS     LINK      PROBE     STATE

net2        no      ipmpnet0    is-----   up        disabled  ok

net1        yes     ipmpnet0    -------   up        disabled  ok

net0        yes     ipmpnet0    --mbM--   up        disabled  ok

 


아래와 같이 ping 명령어를 이용하여 점거해 보면 정상적으로 연결됨을 확인 할 수 있습니다.

이 상태에서 정상적으로 서비스 되는지 확인하기 위해서 장애를 유발해 봅니다.

NIC의 연결을 제거하거나 아래와 같이 명령어를 이용하여 net1을 분리시켜 장애를 유발해 봅니다.


 root@sol11-2:~# if_mpadm -d net1


장애가 발생되었음에도 불구하고 끊김 없이 ping 응답이 오는 것을 확인 할 수 있습니다.



다시 ipmp 그룹 정보들을 확인해 보면 아래와 같습니다.

net1 가 분리되고 net2로 대체되어 있음을 확인할 수 있으며 , net1이 disable offline 임을 확인 할 수 있습니다.

만약 명령이 아닌 NIC 이나 연결장애 였다면 fail 이라고 표기 됩니다.


root@sol11-2:~# ipmpstat -g

GROUP       GROUPNAME   STATE     FDT       INTERFACES

ipmpnet0    ipmpnet0    degraded  --        net2 net0 [net1]


root@sol11-2:~# ipmpstat -i

INTERFACE   ACTIVE  GROUP       FLAGS     LINK      PROBE     STATE

net2        yes     ipmpnet0    -s-----   up        disabled  ok

net1        no      ipmpnet0    -----d-   up        disabled  offline

net0        yes     ipmpnet0    --mbM--   up        disabled  ok

 



기본적으로 IPMP 는 fail over 되고 복구되면 자동 fail back 이 지원됩니다.

다시 net1을 복구 시켜서 상태를 확인해 보면 다음과 같습니다.



root@sol11-2:~# if_mpadm -r net1


root@sol11-2:~# ipmpstat -i

INTERFACE   ACTIVE  GROUP       FLAGS     LINK      PROBE     STATE

net2        no      ipmpnet0    is-----   up        disabled  ok

net1        yes     ipmpnet0    -------   up        disabled  ok

net0        yes     ipmpnet0    --mbM--   up        disabled  ok

 


정상적으로 복구 되었음을 확인 할 수 있습니다.


IPMP는 Aggregation 과 달리 ICMP 기반이고 , 성능 향상보다는 장애 극복에 포커스가 있으며 클러스터링을 할 때 NIC HA 개념으로 사용할 수 있습니다.