Liberty 집합체에 대한 자동 스케일링 설정
자동 스케일링은 Liberty 서버에 자동 스케일링 기능을 제공합니다. 자동 스케일링 기능은 스케일링 제어기 및 스케일링 멤버의 두 Liberty 기능에 의해 사용으로 설정됩니다. 자동 스케일링은 워크로드를 서비스하는 데 사용되는 JVM(Java Virtual Machine)의 수를 자동으로 조정합니다. 이 기능은 조작의 민첩성을 제공하며 관리 오버헤드를 줄여서 미들웨어 환경의 복원을 개선합니다. 자동 스케일링의 조건은 스케일링 정책에 의해 정의됩니다. 이러한 조건에는 최소 및 최대 서버 인스턴스 수 및 각 서버 자원의 임계값이 포함됩니다.
시작하기 전에
이 기능은 동적 라우팅의 사용을 요구하지 않지만 자동 스케일링은 두 기능이 함께 사용될 때 잘 수행됩니다. 두 기능을 함께 사용할 것을 권장합니다. 동적 라우팅에 대한 자세한 정보는 Liberty 집합체의 동적 라우팅 설정의 내용을 참조하십시오.
Liberty 집합체 제어기는 Tivoli® Remote Execution and Access(RXA) 툴킷을 사용하여 집합체 멤버에서 선택된 조작을 수행할 수 있습니다. SSH의 설치 및 사용에 대해 자세히 학습하려면 Liberty 집합체 조작에 대한 RXA 설정의 태스크를 검토하십시오.
또한 자동 스케일링을 설정하기 전에 JAVA_HOME 경로를 설정해야 합니다. Liberty 집합체 멤버 및 제어기에 대한 JAVA_HOME 변수 설정의 태스크를 검토하십시오.
이 태스크 정보
자동 스케일링 클러스터는 사용자 환경의 워크로드에 따라 확대되고 수축될 수 있는 서버 클러스터입니다. Liberty 스케일링 제어기는 구성 가능한 스케일링 정책과 스케일링 멤버에서 수집된 성능 정보를 기반으로 하는 스케일링 멤버의 시작과 중지를 제어합니다. 서버 클러스터의 스케일링 멤버가 되려면 Liberty 스케일링 제어기 역시 Liberty 집합체의 멤버여야 합니다. 서버 클러스터에는 Liberty 집합체 내에서 고유 이름이 있습니다. Liberty에서 동일한 서버 클러스터의 멤버는 동일한 집합체에 있는 경우에 동일한 클러스터 이름을 보유합니다. 자동 스케일링 기능은 자원 소비가 임계값 위로 올라가거나 임계값 아래로 내려갈 때 정책을 사용하여 제어됩니다.
- scalingController-1.0
스케일링 제어기 기능은 자동 스케일링 클러스터를 확장하거나 축소할 시기를 결정합니다. 집합체 제어기는 집합체 제어기의 스케일링 제어기를 관리하는 기능을 이용하는 관리 기능을 제공하므로 필요합니다. 실행 중인 스케일링 제어기 중 하나만 의사결정을 할 수 있습니다. 집합체 제어기 및 고가용성을 위해 사용자의 제어기를 구성하는 방법에 대한 자세한 정보는 Liberty 집합체 구성의 내용을 참조하십시오. 스케일링 제어기는 증가된 자원 사용량에 대한 응답으로 자동 스케일링 클러스터 멤버를 시작할 수 있으며 전체 클러스터에서 감소된 자원 사용량에 대한 응답으로 자동 스케일링 클러스터 멤버를 중지할 수 있습니다. 복제본 세트가 사용되는 경우, 모든 집합체 제어기 멤버는 스케일링 제어기여야 합니다. 복제본 세트를 사용 중인 경우 제어기가 중지되면 다른 실행 중인 스케일링 제어기가 대신합니다. 복제본 세트에 대한 자세한 정보는 Liberty 집합체 복제본 세트 구성의 내용을 참조하십시오.
참고: 스케일링 제어기는 스케일링 멤버의 마지막으로 알려진 상태를 유지합니다. 스케일링 제어기를 중지하고 스케일링 멤버의 상태를 변경하면 스케일링 제어기를 다시 시작할 때 스케일링 제어기가 최신 스케일링 멤버 상태를 모을 때까지 몇몇 올바르지 않은 조치의 원인이 될 수 있습니다.스케일링 제어기는 다음과 같은 사용 시나리오를 지원합니다.- JVM 탄력성
스케일링 제어기는 자원 사용량과 선택적 스케일링 정책을 기반으로 하는 기존 Liberty 서버를 시작하고 중지합니다. 새 서버에 대한 프로비저닝은 없습니다.
- Liberty 탄력성
스케일링 제어기는 Liberty 소프트웨어를 등록된 호스트에 설치하고 새 서버를 프로비저닝한 후에 자원 사용량과 선택적 스케일링 정책을 기반으로 해당 서버를 시작하고 중지할 수 있습니다.
- JVM 탄력성
- scalingMember-1.0
스케일링 멤버 기능은 서버 및 해당 호스트 내의 워크로드를 모니터링하고 필요한 경우 이 정보를 다시 스케일링 제어기로 보냅니다. 스케일링 멤버 기능은 집합체 내에서 집합체 멤버로 사용되어야 합니다.
참고: 모든 정책 정보는 클러스터 멤버에 적용되므로 모든 스케일링 멤버 서버는 클러스터에도 속해야 합니다.하나의 호스트에 둘 이상의 스케일링 멤버가 있는 경우, 스케일링 멤버는 하나의 스케일링 멤버만 스케일링 제어기와 통신하도록 구성됩니다. 호스트 리더는 호스트에 있는 모든 스케일링 멤버 중에서 지정됩니다. 호스트 리더가 중지되면 다른 스케일링 멤버가 대신 호스트 리더가 됩니다.
각 스케일링 멤버는 server.xml 내의 hostSingleton 요소에 포트를 정의해야 합니다. 동일한 호스트 및 클러스터에 있는 모든 스케일링 멤버는 동일한 포트를 사용해야 합니다. 이 포트는 선택 서비스가 호스트 리더를 식별하는 데 사용합니다. 호스트 리더는 스케일링 제어기와 통신하는 유일한 스케일링 멤버입니다. 호스트 리더는 멤버로부터 제어기로 메트릭 데이터를 전달하고 제어기가 작성한 스케일링 의사결정을 호스트의 멤버로 전달합니다. 예:
<hostSingleton name="ScalingMemberSingletonService" port="5164" />
hostSingleton 요소에 대한 자세한 정보는 집합체 멤버를 참조하십시오.
스케일링 멤버는 서버 프로세스 내에서 다음 자원의 사용을 모니터링합니다.- CPU
- 힙
- 메모리
스케일링 멤버는 호스트 레벨에서 다음 자원의 사용을 모니터링합니다.- CPU
- 메모리
프로시저
결과
자동 스케일링 기능을 사용함으로써, 이제는 워크로드를 서비스하는 데 사용되는 JVM(Java Virtual Machine) 또는 Liberty 서버의 수를 동적으로 조정할 수 있습니다.