Solaris OS용 Sun Cluster 개념 안내서

데이터 서비스 트래픽에 클러스터 상호 연결 사용

클러스터에는 클러스터 상호 연결을 형성하는 노드 사이에 여러 네트워크 연결이 있어야 합니다. 클러스터 소프트웨어는 고가용성 및 성능 향상을 모두 실현하기 위해 다중 상호 연결을 사용합니다. 내부 트래픽(예를 들어, 파일 시스템 데이터 또는 확장 가능 서비스 데이터)의 경우, 메시지는 사용 가능한 모든 상호 연결을 통해 라운드 로빈 방식으로 스트립됩니다.

클러스터 상호 연결은 노드 사이의 고가용 통신을 위해 응용 프로그램에도 사용 가능합니다. 예를 들어, 분산 응용 프로그램에는 통신을 필요로 하는 다른 노드에서 실행하는 구성 요소가 있을 수 있습니다. 공용 상호 연결이 아닌 클러스터 상호 연결을 사용하여, 이 연결은 각 링크에 대한 실패로부터 안전합니다.

노드간 통신을 위해 클러스터 상호 연결을 사용하려면, 응용 프로그램은 클러스터 설치 시 구성된 개인 호스트 이름을 사용해야 합니다. 예를 들어, 노드 1의 개인 호스트 이름이 clusternode1-priv인 경우, 클러스터 상호 연결을 통해 노드 1로 통신할 때 이 이름을 사용하십시오. 이 이름을 사용하여 열린 TCP 소켓은 클러스터 상호 연결을 통해 라우트되며 네트워크 오류가 발생하더라도 투명하게 다시 라우트될 수 있습니다.

개인 호스트 이름이 설치 중에 구성될 수 있기 때문에, 클러스터 상호 연결은 이 시점에 선택된 모든 이름을 사용할 수 있습니다. 실제 이름은 scha_cluster_get(3HA)에서 scha_privatelink_hostname_node 인자를 사용하여 얻을 수 있습니다.

응용 프로그램 수준에서 클러스터 상호 연결을 사용할 경우에는 각 노드 쌍 사이에 하나의 상호 연결이 사용되지만 서로 다른 노드 쌍에는 별도의 상호 연결이 사용될 수 있습니다. 예를 들어, 세 개의 SPARC 기반 노드에서 실행하고 클러스터 상호 연결을 통해 통신하는 응용 프로그램의 경우,인터페이스 qfe1에서 노드 1과 노드 3 사이의 통신이 진행되는 동안 인터페이스 hme0에서 노드 1과 노드 2 사이의 통신이 수행될 수 있습니다. 즉, 두 노드간 응용 프로그램 통신은 단일 상호 연결로 제한되는 반면, 내부 클러스터 통신은 모든 상호 연결을 통해 스트립됩니다.

응용 프로그램이 내부 클러스터 트래픽과 상호 연결을 공유하므로, 응용 프로그램에 사용 가능한 대역폭은 다른 클러스터 트래픽에 사용되는 대역폭에 따라 다릅니다. 장애가 발생할 경우에 내부 트래픽은 나머지 상호 연결을 통해 라운드 로빈될 수 있고, 장애가 발생한 상호 연결의 응용 프로그램 연결은 작동하는 상호 연결로 전환될 수 있습니다.

두 가지 유형의 주소가 클러스터 상호 연결을 지원하고, 독립 호스트 이름에 대하여 gethostbyname(3N) 명령을 실행하면 일반적으로 두 개의 IP 주소가 반환됩니다. 첫 번째 주소는 논리 pairwise 주소이고 두 번째 주소는 논리 pernode 주소입니다.

별도의 논리 pairwise 주소는 각 노드 쌍에 할당됩니다. 이 작은 논리 네트워크는 연결에 대한 페일오버를 지원합니다. 각 노드는 수정된 pernode 주소로도 할당됩니다. 즉, clusternode1-priv에 대한 논리 pairwise 주소는 노드마다 다른 반면, clusternode1-priv에 대한 논리 pernode 주소는 각 노드가 동일합니다. 그러나 노드 자체에는 pairwise 주소가 없기 때문에 노드 1에 대하여 gethostbyname(clusternode1-priv) 명령을 수행하면 논리 pernode 주소가 반환됩니다.

클러스터 상호 연결을 통해 연결을 받은 다음 보안을 위해 IP 주소를 확인하는 응용 프로그램은 첫 번째 IP 주소뿐 아니라 gethostbyname 명령에서 반환되는 모든 IP 주소에 대하여 확인해야 합니다.

응용 프로그램에서 모든 경우에 대해 일관된 IP 주소를 필요로 하는 경우, 클라이언트와 서버측 모두에서 pernode 주소를 바인드하여 모든 연결이 pernode 주소를 경유하는 것으로 보일 수 있도록 응용 프로그램을 구성하십시오.