Sun Java System Application Server Enterprise Edition 8.1 2005Q2 고가용성 관리 설명서

가용성 손실 없이 응용 프로그램 업그레이드

가용성 손실 없이 응용 프로그램을 새 버전으로 업그레이드하는 것을 롤링 업그레이드라고 합니다. 업그레이드 중에 응용 프로그램의 두 버전을 주의해서 관리하면 응용 프로그램의 현재 사용자가 중단 없이 작업을 완료하면서 새로운 사용자가 새 버전의 응용 프로그램을 투명하게 가져올 수 있습니다. 롤링 업그레이드 수행 시 사용자는 업그레이드가 발생하는지 모릅니다.

응용 프로그램 호환성

롤링 업그레이드는 두 응용 프로그램 버전 간 변경 사항의 정도에 따라 간단할 수도 있고 복잡할 수도 있습니다.

정적 텍스트나 이미지가 변경된 경우처럼 표면적인 부분만 변경되면 응용 프로그램의 두 버전은 호환되며 동일한 클러스터에서 실행될 수 있습니다. 호환되는 응용 프로그램은 다음과 같아야 합니다.

단일 클러스터나 다중 클러스터에서 호환되는 응용 프로그램의 롤링 업그레이드를 수행할 수 있습니다. 자세한 내용은 단일 클러스터에서 업그레이드를 참조하십시오.

응용 프로그램의 두 버전이 위의 기준을 만족하지 않으면 응용 프로그램은 호환되지 않는 것으로 간주됩니다. 한 클러스터에서 응용 프로그램의 호환되지 않는 버전을 실행하면 응용 프로그램 데이터가 손상되고 세션 페일오버가 제대로 작동하지 않을 수 있습니다. 이러한 문제는 비호환 상태의 유형 및 정도에 따라 다릅니다. 새 버전을 배포할 "섀도우 클러스터"를 만들어 호환되지 않는 응용 프로그램을 업그레이드하고 이전 클러스터 및 응용 프로그램을 천천히 정지하는 것이 좋습니다. 자세한 내용은 호환되지 않는 응용 프로그램 업그레이드를 참조하십시오.

응용 프로그램 버전의 호환 여부는 응용 프로그램 개발자 및 관리자는 판단하는 것이 가장 좋습니다. 호환 여부가 불확실하면 안전하게 호환되지 않는 것으로 간주합니다.

단일 클러스터에서 업그레이드

클러스터 구성이 다른 클러스터와 공유되지 않을 경우, 단일 클러스터에 배포된 응용 프로그램의 롤링 업그레이드를 수행할 수 있습니다.

Procedure단일 클러스터에서 응용 프로그램 업그레이드

  1. 이전 버전의 응용 프로그램을 저장하거나 도메인을 백업합니다.

    도메인을 백업하려면 asadmin backup-domain 명령을 사용합니다.

  2. 클러스터에 대해 동적 재구성(활성화된 경우)을 해제합니다.

    관리 콘솔에서 다음 작업을 수행합니다.

    1. 구성 노드를 확장합니다.

    2. 클러스터의 구성 이름을 누릅니다.

    3. 구성 시스템 등록 정보 페이지에서 동적 재구성 사용 가능 확인란을 선택 해제합니다.

    4. 저장을 누릅니다.

    또는 다음 명령을 사용합니다.

    asadmin set --user user --passwordfile password_file cluster_name -config.dynamic-reconfiguration-enabled=false

  3. 업그레이드된 응용 프로그램을 대상 domain에 다시 배포합니다.

    관리 콘솔을 사용하여 재배포할 경우 도메인이 자동으로 대상이 됩니다. asadmin을 사용할 경우 대상 domain을 지정합니다. 동적 재구성을 사용할 수 없기 때문에 이전 응용 프로그램은 계속해서 클러스터에서 실행됩니다.

  4. asadmin enable-http-lb-application을 사용하여 인스턴스에 재배포된 응용 프로그램을 활성화합니다.

  5. 로드 밸런서에서 클러스터에 있는 한 서버 인스턴스를 정지합니다.

    다음 단계를 수행합니다.

    1. asadmin disable-http-lb-server를 사용하여 서버 인스턴스를 비활성화합니다.

    2. asadmin export-http-lb-config를 사용하여 로드 밸런서 구성 파일을 내보냅니다.

    3. 내보낸 구성 파일을 웹 서버 인스턴스의 구성 디렉토리에 복사합니다.

      예를 들어, Sun Java System Web Server의 경우 해당 위치는 web_server_install_dir/https-host-name/config/loadbalancer.xml입니다. 로드 밸런서가 새 구성 파일을 로드하게 하려면 로드 밸런서 구성에서 reloadinterval을 설정하여 동적 재구성이 활성화되도록 합니다.

    4. 시간 초과가 만료될 때까지 대기합니다.

      로드 밸런서의 로그 파일을 모니터링하여 인스턴스가 오프라인인지 확인합니다. 재시도 URL을 만나면 정지 기간을 건너뛰고 서버를 즉시 다시 시작합니다.

  6. 클러스터의 다른 인스턴스가 계속 실행되는 동안 비활성화된 서버 인스턴스를 다시 시작합니다.

    다시 시작하면 서버가 도메인과 동기화되고 응용 프로그램이 업데이트됩니다.

  7. 다시 시작한 서버의 응용 프로그램을 테스트하여 제대로 실행되는지 확인합니다.

  8. 로드 밸런서에서 서버 인스턴스를 다시 활성화합니다.

    다음 단계를 수행합니다.

    1. asadmin enable-http-lb-server를 사용하여 서버 인스턴스를 활성화합니다.

    2. asadmin export-http-lb-config를 사용하여 로드 밸런서 구성 파일을 내보냅니다.

    3. 단일 클러스터에서 업그레이드 단일 클러스터에서 업그레이드에 설명된 대로 웹 서버의 구성 디렉토리로 구성 파일을 복사합니다.

  9. 클러스터의 각 인스턴스에 대해 5-8 단계를 반복합니다.

  10. 모든 서버 인스턴스에 새로운 응용 프로그램이 있고 실행 중일 경우 클러스터에 대한 동적 재구성을 다시 활성화할 수 있습니다.

여러 클러스터에서 업그레이드

Procedure둘 이상의 클러스터에서 호환되는 응용 프로그램 업그레이드

  1. 이전 버전의 응용 프로그램을 저장하거나 도메인을 백업합니다.

    도메인을 백업하려면 asadmin backup-domain 명령을 사용합니다.

  2. 모든 클러스터에 대해 동적 재구성(활성화된 경우)을 해제합니다.

    관리 콘솔에서 다음 작업을 수행합니다.

    1. 구성 노드를 확장합니다.

    2. 한 클러스터의 구성 이름을 누릅니다.

    3. 구성 시스템 등록 정보 페이지에서 동적 재구성 사용 가능 확인란을 선택 해제합니다.

    4. 저장을 누릅니다.

    5. 다른 클러스터에 대해서도 반복합니다.

    또는 다음 명령을 사용합니다.

    asadmin set --user user --passwordfile password_file cluster_name-config.dynamic-reconfiguration-enabled=false

  3. 업그레이드된 응용 프로그램을 대상 domain에 다시 배포합니다.

    관리 콘솔을 사용하여 재배포할 경우 도메인이 자동으로 대상이 됩니다. asadmin을 사용할 경우 대상 domain을 지정합니다. 동적 재구성이 비활성화되어 있기 때문에 이전 응용 프로그램은 계속해서 클러스터에서 실행됩니다.

  4. asadmin enable-http-lb-application을 사용하여 클러스터에 재배포된 응용 프로그램을 활성화합니다.

  5. 로드 밸런서에서 한 클러스터를 정지합니다.

    1. asadmin disable-http-lb-server를 사용하여 클러스터를 비활성화합니다.

    2. asadmin export-http-lb-config를 사용하여 로드 밸런서 구성 파일을 내보냅니다.

    3. 내보낸 구성 파일을 웹 서버 인스턴스의 구성 디렉토리에 복사합니다.

      예를 들어, Sun Java System Web Server의 경우 해당 위치는 web_server_install_dir/https-host-name/config/loadbalancer.xml입니다. 로드 밸런서 구성에서 reloadinterval을 설정하여 로드 밸런서에 대해 동적 재구성을 활성화해야 합니다. 이렇게 해야 새 로드 밸런서 구성 파일이 자동으로 로드됩니다.

    4. 시간 초과가 만료될 때까지 대기합니다.

      로드 밸런서의 로그 파일을 모니터링하여 인스턴스가 오프라인인지 확인합니다. 재시도 URL을 만나면 정지 기간을 건너뛰고 서버를 즉시 다시 시작합니다.

  6. 다른 클러스터를 계속 실행하면서 비활성화된 클러스터를 다시 시작합니다.

    다시 시작하면 클러스터가 도메인과 동기화되고 응용 프로그램이 업데이트됩니다.

  7. 다시 시작한 클러스터의 응용 프로그램을 테스트하여 제대로 실행되는지 확인합니다.

  8. 로드 밸런서에서 클러스터를 다시 활성화합니다.

    1. asadmin enable-http-lb-server를 사용하여 클러스터를 활성화합니다.

    2. asadmin export-http-lb-config를 사용하여 로드 밸런서 구성 파일을 내보냅니다.

    3. 구성 파일을 웹 서버의 구성 디렉토리에 복사합니다.

  9. 다른 클러스터에 대해서도 5-8단계를 반복합니다.

  10. 모든 서버 인스턴스에 새로운 응용 프로그램이 있고 실행 중일 경우 모든 클러스터에 대한 동적 재구성을 다시 활성화할 수 있습니다.

호환되지 않는 응용 프로그램 업그레이드

응용 프로그램을 호환되게 만드는 방법에 대한 자세한 내용은 응용 프로그램 호환성을 참조하십시오. 새 버전의 응용 프로그램은 이전 버전과 호환되지 않습니다. 또한 두 개 이상의 클러스터에서 호환되지 않는 응용 프로그램을 업그레이드해야 합니다. 클러스터가 하나만 있으면 아래에 설명된 것처럼 업그레이드를 위해 "섀도우 클러스터"를 만듭니다.

호환되지 않는 응용 프로그램을 업그레이드할 경우:

Procedure또 다른 클러스터를 만들어 호환되지 않는 응용 프로그램 업그레이드

  1. 이전 버전의 응용 프로그램을 저장하거나 도메인을 백업합니다.

    도메인을 백업하려면 asadmin backup-domain 명령을 사용합니다.

  2. 기존 클러스터와 동일하거나 다른 시스템 집합에 "섀도우 클러스터"를 만듭니다.

    1. 관리 콘솔을 사용하여 새 클러스터를 만들고 기존 클러스터의 명명된 구성을 참조합니다.

      각 시스템에서 새 인스턴스에 대한 포트를 사용자 정의하여 기존 활성 포트와 충돌하지 않도록 합니다.

    2. 클러스터와 관련된 모든 자원에 대해 asadmin create-resource-ref를 사용하여 새로 만들어진 클러스터에 대한 자원 참조를 추가합니다.

    3. asadmin create-application-ref를 사용하여 새로 만들어진 클러스터에서 해당 클러스터로 배포된 다른 모든 응용 프로그램(현재 재배포된 응용 프로그램 제외)에 대한 참조를 만듭니다.

    4. asadmin configure-ha-cluster를 사용하여 클러스터를 고가용성 클러스터로 구성합니다.

    5. asadmin create-http-lb-ref를 사용하여 로드 밸런서 구성 파일에 새로 만들어진 클러스터에 대한 참조를 만듭니다.

  3. 새 버전의 응용 프로그램에 이전 버전과는 다른 이름을 지정합니다.

  4. 새 클러스터에 새 응용 프로그램을 대상으로 배포합니다. 다른 컨텍스트 루트를 사용합니다.

  5. asadmin enable-http-lb-application을 사용하여 클러스터에 배포된 응용 프로그램을 활성화합니다.

  6. 다른 클러스터를 계속 실행하면서 새 클러스터를 시작합니다.

    시작하면 클러스터가 도메인과 동기화되고 새 응용 프로그램으로 업데이트됩니다.

  7. 새 클러스터의 응용 프로그램을 테스트하여 제대로 실행되는지 확인합니다.

  8. asadmin disable-http-lb-server를 사용하여 로드 밸런서에서 이전 클러스터를 비활성화합니다.

  9. 느린 세션이 지속되는 기간에 대한 시간 초과를 설정합니다.

  10. asadmin enable-http-lb-server를 사용하여 로드 밸런서에서 새 클러스터를 활성화합니다.

  11. asadmin export-http-lb-config를 사용하여 로드 밸런서 구성 파일을 내보냅니다.

  12. 내보낸 구성 파일을 웹 서버 인스턴스의 구성 디렉토리에 복사합니다.

    예를 들어, Sun Java System Web Server의 경우 해당 위치는 web_server_install_dir/https-host-name/config/loadbalancer.xml입니다. 로드 밸런서 구성에서 reloadinterval을 설정하여 로드 밸런서에 대해 동적 재구성을 활성화해야 합니다. 이렇게 해야 새 로드 밸런서 구성 파일이 자동으로 로드됩니다.

  13. 시간 초과 기간이 만료되거나 이전 응용 프로그램의 모든 사용자가 종료하면 이전 클러스터를 중지하고 이전 응용 프로그램을 삭제하십시오.