OS/SOLARIS2007. 8. 28. 01:50
반응형

IPMP Link-based Failure Detection with Solaris [TM] 10 Operating System (OS) and higher


 

Public network의 이중화 솔루션은 Sun Cluster 2.x에서부터 제공되어져 왔다.
첫 시작은 link base failure detection에서 시작되었으며, sc2.x에서 NAFO
(Network Adapter Failover)이라 불리어졌으며, 해당되는 데몬은 pnmd (public
network management daemon)이었다.

NAFO는 NAFO group에 NIC (Network Interface Card)를 설정하고, 한 순간에 단 하나의
interface만이 동작하는 Active-Standby 구성만 가능하였다. 그 이후에 Solaris 8에서
이러한 public network 관리하는 cluster function을 OS에 탑재하였고, IPMP라 칭하였다.

이러한 IPMP는 Solaris 9까지 ICMP partner를 선정하여, 해당 partner (default router 설정이 있을 경우 default router가 ICMP partner)와 지속적으로 ping test(Probe based failure detection)를 하여 public network의 가용여부를 판단하였다.

이러한 구성에서의 문제(?)점은 test를 위한 test ip address가 각 interface별로 요구 되어졌다. 그러나 IPMP의 기능은 OSI 7 layer의 제 4계층(transport layer)를 사용하여 기존의 link base (2계층 data link layer)를 사용하던 방식과는 차별적 우위를 가지고 있다. 이는 단순히 network의 link뿐만 아니라 상위 계층을 지원하므로 많은 이득을 얻을 수 있다. 그러나, 간혹 network 전체에 부하 또는 default router에 과부하 발생시에 원하지 않는 failover를 발생하기도 한다.

OSI 7 layer
7 Application Layer
6 Presentation Layer
5 Session Layer
4 Transport Layer
3 Network Layer
2 Data Link Layer
1 Physical Layer

그리하여, Solaris10에서부터는 제 4계층의 network failure detection을 원하지 않을 경우, 기존 방식대로 link base failure detection을 지원하도록 IPMP를 구성하였다.

그럼, Solaris10에서 link base failure detection으로 구성하는 방법을 살펴보도록 하자.

1.1. Single Interface

/etc/hostname.ce0
192.168.10.10 netmask + broadcast + group ipmp0 up

# ifconfig -a
ce0: flags=1000843 mtu 1500 index 4
inet 192.168.10.10 netmask ffffff00 broadcast 192.168.10.255
groupname ipmp0
ether 0:3:ba:93:90:fc

1.2. Multiple Interfaces

1.2.1. Active-Active

1.2.1.1. Two Interfaces

/etc/hostname.ce0
192.168.10.10 netmask + broadcast + group ipmp0 up

/etc/hostname.ce1
group ipmp0 up

# ifconfig -a
ce0: flags=1000843 mtu 1500 index 4
inet 192.168.10.10 netmask ffffff00 broadcast 192.168.10.255
groupname ipmp0
ether 0:3:ba:93:90:fc
ce1: flags=1000843 mtu 1500 index 5
inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
groupname ipmp0
ether 0:3:ba:93:91:35

1.2.1.2. Two Interfaces + logical

/etc/hostname.ce0
192.168.10.10 netmask + broadcast + group ipmp0 up \
addif 192.168.10.11 netmask + broadcast + up

/etc/hostname.ce1
group ipmp0 up

# ifconfig -a
ce0: flags=1000843 mtu 1500 index 4
inet 192.168.10.10 netmask ffffff00 broadcast 192.168.10.255
groupname ipmp0
ether 0:3:ba:93:90:fc
ce0:1: flags=1000843 mtu 1500 index 4
inet 192.168.10.11 netmask ffffff00 broadcast 192.168.10.255
ce1: flags=1000843 mtu 1500 index 5
inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
groupname ipmp0
ether 0:3:ba:93:91:35

1.2.1.3. Three Interfaces

/etc/hostname.ce0
192.168.10.10 netmask + broadcast + group ipmp0 up

/etc/hostname.ce1
group ipmp0 up

/etc/hostname.bge1
group ipmp0 up

# ifconfig -a
bge1: flags=1000843 mtu 1500 index 3
inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
groupname ipmp0
ether 0:9:3d:11:91:1b
ce0: flags=1000843 mtu 1500 index 4
inet 192.168.10.10 netmask ffffff00 broadcast 192.168.10.255
groupname ipmp0
ether 0:3:ba:93:90:fc
ce1: flags=1000843 mtu 1500 index 5
inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
groupname ipmp0
ether 0:3:ba:93:91:35

1.2.2. Active-Standby

1.2.2.1. Two Interfaces

/etc/hostname.ce0
192.168.10.10 netmask + broadcast + group ipmp0 up

/etc/hostname.ce1
group ipmp0 standby up

# ifconfig -a
ce0: flags=1000843 mtu 1500 index 4
inet 192.168.10.10 netmask ffffff00 broadcast 192.168.10.255
groupname ipmp0
ether 0:3:ba:93:90:fc
ce0:1: flags=1000843 mtu 1500 index 4
inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
ce1: flags=69000842 mtu 0 index 5
inet 0.0.0.0 netmask 0
groupname ipmp0
ether 0:3:ba:93:91:35

1.2.2.2. Two Interfaces + logical

/etc/hostname.ce0
192.168.10.10 netmask + broadcast + group ipmp0 up \
addif 192.168.10.11 netmask + broadcast + up

/etc/hostname.ce1
group ipmp0 standby up

# ifconfig -a
ce0: flags=1000843 mtu 1500 index 4
inet 192.168.10.10 netmask ffffff00 broadcast 192.168.10.255
groupname ipmp0
ether 0:3:ba:93:90:fc
ce0:1: flags=1000843 mtu 1500 index 4
inet 192.168.10.11 netmask ffffff00 broadcast 192.168.10.255
ce0:2: flags=1000843 mtu 1500 index 4
inet 0.0.0.0 netmask ff000000 broadcast 0.255.255.255
ce1: flags=69000842 mtu 0 index 5
inet 0.0.0.0 netmask 0
groupname ipmp0
ether 0:3:ba:93:91:35

실제 예제)

[root@ZGCANA01 /]# cat /etc/hostname.e1000g0
group web standby up

[root@ZGCANA01 /]# cat /etc/hostname.e1000g2
ZGCANA01 netmask 255.255.255.0 broadcast + group web up

[root@ZGCANA02 /]# cat /etc/hostname.e1000g0
group datos standby up

[root@ZGCANA02 /]# cat /etc/hostname.e1000g2
ZGCANA02 netmask 255.255.255.0 broadcast + group datos up

반응형
Posted by [PineTree]