Sun Java System Instant Messaging 7.2 관리 설명서

6장 서버 풀링에 의한 Instant Messaging 배포 확장

서버 풀링을 사용하면 단일 도메인에서 수백 만의 사용자를 지원할 수 있습니다. 즉 하나의 서버 풀에서 여러 서버 간에 동일한 도메인을 공유할 수 있습니다. 또한 리디렉션 서버와 같은 로드 밸런서를 사용하여 풀의 서버 활용을 관리할 수 있습니다. 서버 풀링을 설명하기 위해 이 장에서 다루는 내용은 다음과 같습니다.

로드 균형 조정과 리디렉션 서버에 대한 내용은 7 장, 리디렉션 서버를 사용하여 Instant Messaging 서버 풀 최적화을 참조하십시오. 이 장에서는 서버 풀의 호스트에 Instant Messaging을 이미 설치했다고 가정합니다. 또한 서버 풀의 각 노드에 Access Manager를 설치하고 단일 원격 Access Manager 서버와 통신하도록 SDK를 구성해야 합니다.

Instant Messaging을 위한 서버 풀링 개요

서버 풀을 만들면 Instant Messaging 배포에서 지원할 수 있는 사용자 수가 단일 서버 시스템 용량으로 인해 더 이상 제한되지 않습니다. 대신 단일 도메인에서 여러 시스템의 자원을 사용하여 사용자를 지원할 수 있습니다. 또한 서버 풀은 중복성을 제공하므로 풀의 한 서버에 장애가 발생하면 영향을 받는 클라이언트에서 별다른 불편 없이 풀의 다른 서버를 통해 해당 세션에 다시 연결하여 계속할 수 있습니다. 서버 풀에 여러 서버를 배포하는 경우 여러 노드 배포 환경이 됩니다.

서버 대 서버 포트를 통해 통신하고 같은 LDAP 디렉토리에서 사용자 데이터를 가져오도록 Instant Messaging을 구성하여 서버 풀을 만듭니다. 서버를 구성했으면 클라이언트 자원에서 단일 노드의 호스트와 포트가 아니라 로드 밸런서 또는 로드 디렉터를 가리키도록 구성해야 합니다.


주의 – 주의 –

LDAP 대신 공유 파일 시스템을 사용하여 사용자 등록 정보를 저장할 수 있지만 이렇게 하면 성능과 관리 효율성에 부정적인 영향을 미칩니다. 따라서 서버 풀에는 LDAP 저장소만 지원됩니다.


서버 풀의 모든 서버에서 일관된 데이터를 갖추도록 풀의 모든 서버에 다음 정보가 복제됩니다.

다음 정보는 복제되지 않습니다.

또한 배포 환경에서 액세스 제어 파일을 통해 정책을 시행하는 경우 서버 풀의 모든 서버에 있는 액세스 제어 파일의 내용이 같아야 합니다. 자세한 내용은 액세스 제어 파일을 사용한 정책 관리를 참조하십시오.

Instant Messaging 서버 풀의 가용성

서버 풀의 한 노드가 중지되면 현재 연결된 모든 클라이언트의 연결이 끊기고 세션과 자원을 사용할 수 없게 됩니다. 로드 밸런서를 사용하도록 배포 환경을 설정했으면 사용자는 즉시 다시 연결하여 로드 밸런서를 통해 풀의 다른 노드로 지정됩니다. 이렇게 하면 풀의 서버 간에 해당 정보가 공유되고 있으므로 회의 또는 뉴스 채널을 다시 만들 필요가 없습니다. 또한 사용자가 풀의 다른 노드로 지정된 후에는 일대일 채팅 세션도 계속할 수 있습니다.

서버 풀의 Instant Messaging 서버 간 서버 대 서버 통신 구성

이 절에서는 한 서버 풀의 두 Instant Messaging 서버 간 또는 피어 간 통신을 활성화하는 방법을 설명합니다. 풀의 다른 모든 서버에 대한 정보를 사용하여 풀의 모든 서버를 구성해야 합니다.

표 6–1에는 한 서버 풀에 있는 두 Instant Messaging 예제 서버(iimA.siroe.comiimB.siroe.com)의 통신을 설정하는 데 사용되는 iim.conf 파일의 매개 변수와 해당 값이 나열되어 있습니다.

구성 매개 변수에 대한 자세한 내용은 부록 A, iim.conf 의 Instant Messaging 구성 매개 변수를 참조하십시오.

표 6–1 서버 풀 내 두 Instant Messaging 서버의 구성 정보 예

iim.conf의 매개 변수

값(서버 A)  

값(서버 B)  

참고 

iim_server.serverid

iimA.siroe.com

iimB.siroe.com

서버 풀에서 이 아이디는 다이얼 백 메커니즘을 지원하는 데 사용되며 인증에는 사용되지 않습니다. 이 값은 서버 풀에서 고유해야 합니다. 

iim_server.password

secretforiimA

secret4iimB

 

iim_server.coservers

coserver1

coserver1

각 Instant Messaging 서버는 심볼릭 이름으로 식별됩니다. 서버의 심볼릭 이름은 iim.confiim_server.coservers 매개 변수에 추가됩니다. 이 매개 변수에는 여러 개의 값이 포함되며 각각의 값은 쉼표로 구분됩니다.

iim_server.domainname

siroe.com

siroe.com

한 서버 풀에 있는 피어 서버들은 같은 기본 도메인을 공유합니다. 

iim_server.coserver1.host

iimB.siroe.com:5269

iimA.siroe.com:5269

서버 풀 내 피어 서버의 호스트 이름과 포트 번호입니다. 

iim_server.coserver1.serverid

iimB.siroe.com

iimA.siroe.com

서버 풀 내 피어 서버의 서버 아이디(iim_server.serverid)입니다.

iim_server.coserver1.password

secret4iimB

secretforiimA

서버 풀 내 피어 서버의 비밀번호(iim_server.password)입니다.

iim_server.coserver1.domain

siroe.com

siroe.com

한 서버 풀에 있는 피어 서버들은 같은 기본 도메인을 공유합니다. 

Procedure서버 풀 내 두 Instant Messaging 서버 간에 통신을 설정하려면

  1. 표 6–1에 나열된 정보를 수집합니다.

  2. iimA.siroe.com 서버의 im-cfg-base로 이동합니다.

    im-cfg-base 찾기에 대한 지침은 Instant Messaging 서버 디렉토리 구조를 참조하십시오.

  3. iim.conf를 엽니다.

    iim.conf 찾기 및 수정에 대한 지침은 부록 A, iim.conf 의 Instant Messaging 구성 매개 변수를 참조하십시오.


    주 –

    iim.conf 파일에 대한 소유권은 설치 중에 사용자가 만든 Instant Messaging 서버 계정에 있습니다. 따라서 Instant Messaging 서버 계정으로 iim.conf 파일을 읽을 수 없으면 서버와 멀티플렉서에서 해당 구성을 읽을 수 없습니다. 또한 iim.conf 파일을 편집할 수도 없습니다.


  4. 배포 환경에 맞게 매개 변수 값을 수정합니다.

    표 8–1에는 수정해야 하는 매개 변수가 나열되어 있습니다. iim.conf에 매개 변수가 없으면 해당 매개 변수를 추가합니다. 다음 예는 수정해야 하는 서버 대 서버 통신 설정에 해당하는 iimA.siroe.comiim.conf 섹션을 보여 줍니다.


    iim_server.serverid=iimA.siroe.com
    iim_server.password=secretforiimA
    iim_server.domainname=siroe.com
    iim_server.coservers=coserver1
    iim_server.coserver1.host=iimB.siroe.com:5269
    iim_server.coserver1.serverid=iimB.siroe.com
    iim_server.coserver1.password=secret4iimB
    iim_server.coserver1.domain=siroe.com
                   
  5. iimB.siroe.com 서버의 iim.conf 파일에서 2-4단계를 수행합니다.

    다음 예는 수정해야 하는 서버 대 서버 통신 설정에 해당하는 iimB.siroe.comiim.conf 섹션을 보여 줍니다.


    iim_server.serverid=iimB.siroe.com
    iim_server.password=secret4iimB
    iim_server.domainname=siroe.com
    iim_server.coservers=coserver1
    iim_server.coserver1.host=iimA.siroe.com:5269
    iim_server.coserver1.serverid=iimA.siroe.com
    iim_server.coserver1.password=secretforiimA
    iim_server.coserver1.domain=siroe.com
  6. 변경 내용을 저장한 다음 iim.conf를 닫습니다.

  7. 두 서버의 구성을 새로 고칩니다.


    imadmin refresh server
    

기존 Instant Messaging 배포에 새 노드 추가

기존 서버 풀에 노드를 추가해야 하는 경우 먼저 새 서버에 서버 대 서버 통신을 구성한 다음 이 서버에 대한 구성 정보를 서버 풀에 있는 기존의 모든 서버에 추가해야 합니다. 또한 서버 풀의 모든 서버에 대한 구성 정보도 새 노드에 추가해야 합니다. 자세한 지침은 서버 풀 내 두 Instant Messaging 서버 간에 통신을 설정하려면을 참조하십시오.

여러 노드 배포 보안

노드는 원격 서버에 연결될 때 dialback 키를 제공합니다. 그러면 원격 서버에서 해당 노드로 다시 연결하여 수신된 dialback 키를 확인합니다. 여러 노드 배포 환경에서 원격 서버는 원래 dialback 키를 보낸 노드에서 서버 풀의 다른 노드로 연결할 수 있습니다. 이 경우 원격 서버에서 연결하는 노드는 원래 연결 노드에서 제공한 것과 같은 dialback 키를 제공해야 합니다. iim_server.dialback key 구성 매개 변수는 노드에서 사용해야 하는 dialback 키를 정의합니다. 사용자가 명시적으로 지정하지 않으면 dialback 키 값은 임의로 생성됩니다. 자세한 지침은 서버 풀 내 Instant Messaging 서버의 dialback 키를 수동으로 정의하려면을 참조하십시오.

From 속성은 원격 서버에서 이 키를 보낸 서버에 다시 연결하는 데 사용됩니다. Jabber 서버 대 서버 통신에서는 일반적으로 서버의 도메인 이름이 From 속성의 값으로 사용됩니다. 그러나 서버 풀의 모든 서버는 같은 도메인 이름을 공유합니다. 따라서 도메인 이름은 서버 풀에서 단일 서버를 찾기 위한 키로 사용할 수 없으므로Instant Messaging에서는 From 속성 값으로 도메인 이름을 사용하는 대신 서버 아이디 또는 피어 아이디(serverid)를 사용합니다.

Procedure서버 풀 내 Instant Messaging 서버의 dialback 키를 수동으로 정의하려면

사용자가 명시적으로 지정하지 않으면 dialback 키 값은 임의로 생성됩니다.

  1. iim.conf를 엽니다.

    iim.conf 파일 찾기 및 수정에 대한 지침은 iim.conf 파일 구문을 참조하십시오.

  2. iim_server.dialback.key 매개 변수의 값을 수정합니다.

    예를 들면 다음과 같습니다.


    iim_server.dialback.key=mymultinodedialbackkey
    
  3. 변경 내용을 저장한 다음 iim.conf를 닫습니다.

  4. 두 서버의 구성을 새로 고칩니다.


    imadmin refresh server