이 장에서는 컨테이너와 프로젝트 및 제품 시작 방법에 대해 설명합니다.
이 장은 다음 내용으로 구성되어 있습니다.
프로젝트는 호스트에 연결된 컨테이너로,물리적 시스템 자원 모음을 구성 및 관리하도록 도와줍니다. 전체 서버 통합 계획을 구현하는 경우 프로젝트를 유용하게 사용할 수 있습니다. 프로젝트는 다음과 같은 기능을 제공합니다.
응용 프로그램이 시스템 자원의 균형 조절을 돕도록 최소 CPU 예약 및 메모리 캡 설정
각 응용 프로그램에는 해당 프로젝트에 대한 최소 CPU 예약과 선택적 메모리 캡 설정이 보장됩니다. 예를 들어, 응용 프로그램 기반 프로젝트를 사용하면 네트워크에서 실행되는 응용 프로그램에 대한 최소 CPU 예약 및 메모리 캡을 모두 설정할 수 있습니다. 여러 프로젝트가 동일한 호스트에서 사용 중인 경우 해당 고유 프로젝트에서 각 응용 프로그램을 사용하여 시스템 자원의 충돌을 줄입니다. 이 경우 각 프로젝트에 대한 자원 경계 설정이 호스트에서 작동하는 Solaris 커널에 의해 실행됩니다.
프로젝트에서 사용하는 총 자원 양은 부분적으로 프로젝트 구성원을 사용하여 추적됩니다. 사용자 및 그룹이 하나 이상의 프로젝트에 속할 수 있지만 각 UNIX 사용자는 기본 프로젝트에 할당되어야 합니다. UNIX 사용자가 시작하는 프로세스는 해당 사용자가 구성원인 임의의 프로젝트에 바운드될 수 있습니다. 프로젝트는 프로젝트 구성원 및 자원 풀을 모두 사용하여 응용 프로그램 자원 소비에 대한 추적 및 제어를 돕습니다.
프로젝트의 작동 방법과 프로젝트에서 사용하는 자원 관리 도구에 대한 자세한 정보는 1 장, Solaris Container Manager 3.6.1 소개을 참조하십시오.
소프트웨어를 설치 및 설정한 후, 몇 개의 기본 프로젝트는 즉시 사용할 수 있습니다. 프로세스를 안내하는 마법사를 사용하여 고유 프로젝트를 만들 수도 있습니다. 각 프로젝트는 컨테이너에 연결됩니다. 이 컨테이너는 새 프로젝트 작성을 위해 계속해서 사용할 수 있습니다. 프로젝트는 다음과 같은 이점을 제공합니다.
동일한 CPU 집합 및 메모리 자원 경계 설정을 통한 다중 프로젝트 인스턴스 작성 기능
여러 호스트에 존재하는 다중 프로젝트 인스턴스. 단일 활성 프로젝트는 여러 호스트에 있을 수 없으나, 동일한 컨테이너를 가진 추가 프로젝트 인스턴스는 여러 호스트에 있을 수 있습니다.
새 프로젝트 인스턴스를 만드는 데 필요한 시간 단축. 이를 통해 필요성에 따라 자원을 신속히 할당할 수 있습니다.
GUI는 브라우저를 기반으로 하며 다음과 같은 세 가지 관리 뷰(탭)를 제공합니다. 호스트 관점의 뷰, 컨테이너 관점의 뷰 및 경보 열기에 대한 뷰. 그룹을 만들고 그룹에 포함해야 할 요소를 선택하여 호스트 뷰 및 컨테이너 뷰를 자세히 구성할 수 있습니다.
또한 컨테이너 내부에서 실행되는 프로세스와 사용되는 자원을 소프트웨어에서 쉽게 확인할 수 있습니다. 데이터를 파일에 내보내는 기능을 포함하여 컨테이너 또는 호스트당 자원 이용률 수준을 평가하도록 도와주는 몇 가지 그래프 옵션도 사용할 수 있습니다. 이러한 기능을 사용하면 자원 소비를 모니터하고 다시 평가하여 적절히 조정할 수 있습니다.
컨테이너의 자원 이용률이 설정 임계값에 도달하는 경우 소프트웨어의 경보 기능을 통해 전자 우편으로 알림 메시지를 받을 수 있습니다. 또한 경보 아이콘은 호스트 및 컨테이너의 GUI에 표시됩니다.
자원 변경 작업 기능을 사용하면 하나 이상의 컨테이너에서 한 가지 요청을 사용하여 현재 자원 경계의 변경 사항을 예약할 수 있습니다. 마법사가 자원 변경 작업을 작성 또는 수정하는 데 필요한 단계를 안내합니다.
이름
Description(선택 사항)
프로젝트 유형
컨테이너에 연결된 프로젝트 이름
컨테이너 응용 프로그램에 연결된 UNIX 사용자 및 그룹
일치식(있는 경우)
컨테이너에 할당하는 이름은 영구적이며 변경할 수 없습니다. 프로젝트 이름도 마찬가지로 영구적입니다. 컨테이너에 대한 기타 식별 정보는 변경할 수 있습니다.
컨테이너는 소프트웨어에서 저장되고 컨테이너를 삭제할 때까지 반복적으로 사용할 수 있습니다. 프로젝트는 호스트에 연결된 컨테이너입니다. 프로젝트는 호스트에 연결되고 해당 자원 예약이 설정되면 사용할 수 있습니다.
동일한 정의 및 자원 예약을 갖는 여러 프로젝트를 서로 다른 여러 호스트에서 동시에 사용할 수 있으므로 컨테이너가 데이터 센터에서 프로젝트를 편리하게 관리할 수 있습니다. 컨테이너를 저장하면 언제든지 적합한 호스트에서 프로젝트를 활성화하는 데 사용할 수 있습니다. 따라서 새 프로젝트를 만들기 위한 템플릿으로 컨테이너를 사용할 수 있습니다.
컨테이너는 다중 프로젝트에 대한 템플릿 역할을 합니다. 컨테이너는 프로젝트의 일반 등록 정보를 중앙 위치에 저장합니다. 프로젝트의 일반 등록 정보는 다음과 같습니다.
프로젝트 이름
프로젝트에서 해당 프로젝트에 포함되어야 할 프로세스를 결정하는 방법(예: 컨테이너 또는 일치식에 연결된 UNIX 사용자 및 그룹)
CPU 공유 및 메모리 제한과 같은 다른 등록 정보는 프로젝트가 활성화되는 호스트에 따라 다릅니다. Solaris Container Manager 3.6에서는 중앙에서 저장되는 이러한 일반 등록 정보 집합을 컨테이너라고 합니다. 컨테이너가 특정 호스트에서 활성화되면 Solaris 프로젝트로 인스턴스화되고 /etc/project에 저장됩니다.
예를 들어, 한 회사가 전자 우편 응용 프로그램용으로 컨테이너를 설정하려고 합니다. 이 프로젝트의 일반 등록 정보는 다음과 같습니다.
프로젝트 이름: mail_services.
프로젝트에서 해당 프로젝트에 포함되어야 할 프로세스를 결정하는 방법은 “mozilla”를 포함하는 일치식이 됩니다.
컨테이너가 특정 호스트에서 활성화되면 이 회사는 해당 프로젝트를 인스턴스화하고 이제 자원 풀, CPU 공유 및 메모리 제한을 지정할 수 있습니다.
컨테이너를 사용하여 영역 및 호스트에서 여러 프로젝트를 만들 수 있습니다. 예를 들어, 하나의 컨테이너를 사용하여 세 개의 다른 호스트에 세 개의 활성 프로젝트를 만들 경우, 하나의 컨테이너와 해당 컨테이너에 세 개의 프로젝트를 갖게 됩니다. 컨테이너의 기본 정보를 변경하면 해당 컨테이너를 기반으로 하는 모든 프로젝트도 변경됩니다.
프로젝트 작성 마법사는 모든 단계가 완료될 때 활성화되는 프로젝트를 작성할지의 여부를 선택하는 옵션을 제공합니다. 컨테이너가 동시에 만들어지고 해당 이름이 GUI에 저장됩니다. 또한 컨테이너만 작성하고 프로젝트는 프로세스를 안내하는 마법사를 사용하여 나중에 활성화하는 옵션도 제공됩니다.
컨테이너의 경우 GUI를 사용하여 다음 작업을 수행할 수 있습니다.
새 컨테이너 만들기
새 그룹 만들기
컨테이너를 그룹 외부로 이동
등록 정보 수정
호스트에 새 프로젝트 작성
컨테이너 삭제
프로젝트의 경우 GUI를 사용하여 다음 작업을 수행할 수 있습니다.
새 그룹 만들기
프로젝트 이동
등록 정보 수정
자원 예약 변경
자원 변경 작업 만들기
내부에 실행되는 프로세스 상태 확인
이용률 보고서 요청 및 파일에 데이터 내보내기
프로젝트 비활성화 또는 활성화
경보 설정
프로젝트 삭제
프로젝트는 사용자가 응용 프로그램에 대해 설정하는 자원 소비 경계를 실제로 실행하지 않습니다. 대신 최소 CPU 예약 및 메모리 캡이 제공되고 프로젝트가 활성화된 후, Solaris 커널은 이러한 경계를 실행하기 시작합니다. 프로젝트를 사용하기 전에 프로젝트 상태에 대해 자세히 이해해야 합니다. 프로젝트는 정의됨, 활성화 및 비활성화의 세 상태 중 하나가 될 수 있습니다.
프로젝트는 수명 주기 동안 이러한 상태 사이를 이동할 수 있습니다.
컨테이너는 프로젝트가 아직 완전히 형성되지 않은 초기 단계에서 만들어집니다. 각 프로젝트는 고유 이름을 가져야 하며 데이터베이스에 무한히 저장할 수 있습니다.
그림 3–2에서는 컨테이너가 호스트와 연결된 후 프로젝트가 활성 상태로 이동하는 것을 보여줍니다. 비활성 프로젝트는 비활성화된 후 정의됨 상태로 다시 이동할 수 있으며, 더 이상 호스트와 연결되지 않습니다.
프로젝트를 활성화하는 첫 단계는 해당 컨테이너를 호스트에 연결하는 것입니다. 두 번째 단계는 자원 경계의 설정으로 프로젝트에 최소 CPU 예약 및 메모리 캡을 할당하는 것입니다. 프로젝트는 이러한 자원 경계를 지원할 수 있는 호스트에 연결되어야 합니다. 활성 프로젝트는 프로젝트가 푸시되어 호스트에 상주하므로 배포 중이라는 표현도 사용할 수 있습니다.
새 프로젝트 마법사를 사용하여 응용 프로그램 기반 프로젝트를 만들 때 응용 프로그램에 연결된 프로세스를 식별하는 일치식이 제공될 수 있습니다. 그러면 일치식에 해당하는 모든 프로세스가 이 컨테이너 아래로 자동으로 이동됩니다. 프로젝트가 활성화되면 /etc/project 데이터베이스의 항목이 컨테이너 컨테이너가 연결된 호스트에 만들어집니다. 마찬가지로 일치하는 프로세스가 컨테이너의 프로젝트 이름 아래로 이동합니다. 프로세스가 이동되면 해당 프로젝트에 대한 자원 이용률 데이터가 모두 수집되고 저장됩니다.
프로젝트가 비활성화되면 자원 경계가 더 이상 실행되지 않습니다. 비활성화된 프로젝트가 비활성 상태로 들어가고 호스트의 /etc/project 파일에서 삭제됩니다. 비활성 상태인 동안에도 프로젝트는 나중에 활성화될 때까지 소프트웨어의 데이터베이스에 계속 남아 있습니다. 비활성 프로젝트가 다시 활성화되면 컨테이너의 자원 경계가 다시 실행됩니다.
프로젝트가 활성 상태일 때 프로젝트의 자원 사용에 대해 수집된 모든 데이터는 데이터베이스에 보존됩니다. 프로젝트가 비활성화된 후 최대 30일까지 비활성 프로젝트에 대한 이용률 보고서를 요청할 수 있습니다.
Solaris 소프트웨어 자원 관리의 표준 명령줄 명령은 컨테이너 관리자 소프트웨어에서 지원되지 않습니다. 컨테이너 관리자 그래픽 사용자 인터페이스(GUI)에서 컨테이너를 관리해야 합니다. GUI는 브라우저를 사용하여 Java 웹 콘솔에서 시작됩니다. 다음과 같은 브라우저가 지원됩니다.
Solaris 릴리스 8 및 9의 Netscape NavigatorTM 4.7x, 6.2x 및7.x
Microsoft Windows(98/2000/XP)의 Netscape Navigator 4.7x, 6.2x 및 7.x
MozillaTM 1.4 이상
Microsoft Windows(98/2000/XP)의 Internet Explorer 5.0 이상(6.x 포함)
UNIX 사용자 ID가 /var/opt/SUNWsymon/cfg/esusers 파일에 없는 경우 이 항목을 만듭니다.
또한 사용자는 esadm 또는 esdomadm 그룹에 할당되어야 합니다.
항목을 작성하고 그룹에 할당하는 방법에 대한 자세한 지침은 Sun Management Center 3.6 설치 및 구성 안내서의 사용자 설정을 참조하십시오.
브라우저를 시작합니다.
지원되는 브라우저 목록은 컨테이너 관리자 GUI를 참조하십시오.
다음을 입력하여 컨테이너 관리자 GUI에 액세스합니다.
https://sunmc-server_machine_name:6789/containers |
Java 웹 콘솔 로그인 페이지가 나타납니다.
로그인 페이지가 나타나지 않을 경우, Java 웹 콘솔을 다시 시작해야 할 수 있습니다. 자세한 내용은 Java 웹 콘솔 재시작을 참조하십시오.
콘솔 페이지에 액세스할 경우 System 절 아래의 Solaris Container Manager 3.6.1 링크를 눌러 GUI에 액세스합니다.
UNIX 사용자 ID 및 암호를 사용하여 Java 웹 콘솔에 로그인합니다.
컨테이너 관리자 GUI가 나타납니다. 호스트, 컨테이너, 경보 열기의 세 가지 탭이 있습니다.
Java 웹 콘솔에 액세스할 수 없는 경우, 이 명령을 사용하여 재시작합니다.
수퍼유저로 다음과 같이 입력하여 Java 웹 콘솔을 다시 시작합니다.
# /usr/sbin/smcwebserver restart |
다음 표에서는 컨테이너 관리자 GUI의 오른쪽 창에 나타나는 탭에 대한 정보를 제공합니다.
표 3–1 컨테이너 관리자 GUI 탭
탭(T) |
탭 이름 |
내용 |
---|---|---|
호스트(뷰) |
내용 |
선택한 호스트의 자원 풀에 대한 정보를 제공합니다. |
등록 정보 |
선택한 호스트, 영역, 프로젝트 또는 자원 풀의 등록 정보에 대한 정보를 제공합니다. |
|
사용률 |
호스트, 영역, 프로젝트 또는 풀의 일별, 주별 또는 월별 자원 이용률에 대한 정보를 제공합니다. 활성 프로젝트에 대한 실시간 이용률 데이터를 사용할 수 있습니다. 이 탭은 Performance Reporting Manager 소프트웨어가 설치되어 있는 경우에만 표시됩니다. |
|
프로젝트 |
호스트에 연결된 프로젝트에 대한 정보를 제공합니다. |
|
영역 |
호스트에 연결된 영역에 대한 정보를 제공합니다. |
|
컨테이너(뷰) |
내용 |
프로젝트에 대한 정보를 제공합니다. |
등록 정보 |
선택한 호스트, 컨테이너, 프로젝트 또는 자원 풀의 등록 정보에 대한 정보를 제공합니다. |
|
사용률 |
호스트, 영역, 프로젝트 또는 풀의 일별, 주별 또는 월별 자원 이용률에 대한 정보를 제공합니다. 활성 프로젝트에 대한 실시간 이용률 데이터를 사용할 수 있습니다. 이 탭은 Performance Reporting Manager 소프트웨어가 설치되어 있는 경우에만 표시됩니다. |
|
작업(자원 변경 작업) |
예약된 자원 변경 작업에 대한 정보를 제공합니다. 이 탭에서 새 자원 변경 작업을 만들 수도 있습니다. 기본 컨테이너에는 연결된 자원 변경 작업이 있으면 안됩니다. |
|
경보 열기 |
심각도, 메시지, 관리되는 객체, 시작 시간 및 승인을 포함한 경보 열기에 대한 정보를 제공합니다. |
|
자원 풀(드릴 다운) |
내용 |
선택한 자원 풀의 영역에 대한 정보를 제공합니다. |
등록 정보 |
선택한 자원 풀의 등록 정보에 대한 정보를 제공합니다. |
|
사용률 |
풀의 일별, 주별 또는 월별 자원 이용률에 대한 정보를 제공합니다. 이 탭은 Performance Reporting Manager 소프트웨어가 설치되어 있는 경우에만 표시됩니다. |
|
프로젝트 |
선택한 자원 풀에 연결된 프로젝트에 대한 정보를 표시합니다. |
|
영역(드릴 다운) |
내용 |
선택한 영역의 프로젝트에 대한 정보를 제공합니다. |
등록 정보 |
선택한 영역의 등록 정보에 대한 정보를 제공합니다. |
|
사용률 |
영역의 일별, 주별 또는 월별 자원 이용률에 대한 정보를 제공합니다. 이 탭은 Performance Reporting Manager 소프트웨어가 설치되어 있는 경우에만 표시됩니다. |
|
프로젝트(드릴 다운) |
등록 정보 |
선택한 프로젝트의 등록 정보에 대한 정보를 제공합니다. |
사용률 |
프로젝트의 일별, 주별 또는 월별 자원 이용률에 대한 정보를 제공합니다. 이 탭은 Performance Reporting Manager 소프트웨어가 설치되어 있는 경우에만 표시됩니다. |
|
프로세스 |
선택한 프로젝트의 프로세스에 대한 정보를 제공합니다. |
|
임계값 경보 |
경보 임계값을 설정 또는 제거하는 데 사용합니다. |
호스트 보기는 호스트 관점에서 정보를 구성합니다. 관리하는 모든 에이전트 시스템이 탐색 창에 나타납니다. 호스트 이름 옆의 확장용 삼각 기호를 누르면 각 호스트에 사용할 수 있는 자원 풀이 표시됩니다. 이 뷰에서 호스트에 연결된 컨테이너를 관리할 수도 있습니다.
소프트웨어가 설치된 모든 에이전트 호스트는 자동으로 검색되고 호스트 보기에 추가됩니다. 이 뷰는 탐색 창의 왼쪽 탭에서 액세스할 수 있습니다. 검색한 모든 에이전트 호스트는 초기에 호스트라는 제목의 기본 그룹 아래에 배치됩니다. 새 그룹을 만들고 호스트를 관련 그룹으로 이동하여 이 뷰를 자세히 구성할 수 있습니다.
Sun Management Center 서버 컨텍스트의 일부인 에이전트 시스템 및 Solaris Container Manager 3.6이 설치되어 있는 에이전트 시스템만 호스트 보기에 로드됩니다. 서버 컨텍스트에 대한 자세한 정보는 Sun Management Center 3.6.1 사용 설명서의 Sun Management Center 구조를 참조하십시오.
호스트 보기에서 사용할 수 있는 탭 및 정보는 표 3–1에 나열되어 있습니다.
호스트에 연결된 모든 프로젝트 인스턴스에 대한 정보가 프로젝트 테이블에 나열되어 있습니다.
다음 그림은 기본 풀에 연결된 호스트 뷰를 프로젝트 테이블과 함께 보여 줍니다.
프로젝트 테이블에는 각 프로젝트에 대한 정보가 제공되며 각 행에 하나의 프로젝트에 대한 세부사항이 표시됩니다. 프로젝트 테이블에는 다음 데이터가 제공됩니다.
프로젝트 이름
컨테이너 이름
프로젝트 상태: 활성 및 비활성
프로젝트가 바인드되는 자원 풀입니다.
프로젝트가 상주하는 영역 이름입니다. Solaris 8 및 Solaris 9 호스트의 경우, 영역 이름은 항상 전역입니다.
프로젝트에 대해 설정된 최소 CPU 공유
프로젝트가 사용하는 CPU 용량
최대 메모리 한계(MB 단위)
프로젝트에서 사용한 메모리(MB 단위)
프로젝트 내에서 실행되는 프로세스에서 사용할 수 있는 총 메모리 양(MB 단위)
자원 풀 테이블에는 각 자원 풀에 대한 정보가 제공됩니다. 자원 풀 테이블은 다음 데이터를 제공합니다.
자원 풀의 이름
자원 풀에 대해 현재 설정된 CPU 수
자원 풀의 영역 또는 프로젝트에 할당되지 않은 CPU 공유
자원 풀에 설정된 스케줄러: 타임 쉐어 스케줄러 또는 페어 쉐어 스케줄러
자원 풀에 대해 설정된 CPU 공유
자원 풀에 대해 설정된 최소 CPU 수
자원 풀에 대해 설정된 최대 CPU 수
영역 테이블에는 각 영역에 대한 정보가 제공됩니다. 영역 테이블에는 다음 데이터가 제공됩니다.
영역의 이름
영역의 상태: 구성 완료, 완료되지 않음, 설치 완료, 준비 완료, 실행 중, 종료 중, 다운 상태
가상 호스트로서 영역에 대한 고유한 이름
루트(/) 디렉토리에서 시작되는 절대 경로
영역에 대한 IP 주소
영역에서 프로젝트에 할당된 CPU 공유 수
이 영역과 연결된 프로젝트에 할당할 수 있는 CPU 공유 수
자원 풀에서 이 영역에 할당되어 있는 CPU 공유 수
영역에 대한 자원 풀
컨테이너 보기는 컨테이너 관점에서 정보를 구성합니다. 모든 컨테이너 및 프로젝트가 탐색 창에 표시됩니다. 새 프로젝트를 만들기 위해 컨테이너를 반복적으로 사용할 수 있기 때문에, 이 뷰를 통해 컨테이너에 쉽게 액세스하고 다른 관리 작업을 수행할 수 있습니다.
설치 및 설정이 완료되면 컨테이너 보기에 자동으로 컨테이너 그룹이 기본값으로 추가됩니다. 컨테이너는 컨테이너 보기에서 관리됩니다.
다음 그림은 컨테이너 뷰를 나타냅니다.
컨테이너 보기에서 사용할 수 있는 정보가 표 3–1에 나열되어 있습니다.
호스트 보기에는 기본 그룹 호스트가 포함되어 있습니다. 소프트웨어를 설치한 이후에 검색된 모든 호스트는 이 그룹에 배치됩니다. 마찬가지로 컨테이너 보기에는 호스트의 기본 컨테이너가 모두 배치되는 Default라는 이름의 기본 그룹이 있습니다. 호스트 및 컨테이너를 구성하도록 각 뷰에 추가 그룹을 만들 수 있습니다.
그룹을 사용하여 데이터 센터에 있는 수많은 시스템을 구성할 수 있습니다. 예를 들어, 호스트를 그룹 안에 함께 배치할 수 있습니다. 그룹 내의 같은 사용자(내부 또는 외부) 또는 부서에서 컨테이너를 소유하도록 할 수 있습니다. 마찬가지로 유사한 응용 프로그램과 함께 컨테이너를 그룹에 배치할 수 있습니다.
컨테이너 관리자 GUI가 열려 있지 않은 경우, 컨테이너 관리자 GUI 시작의 설명에 따라 액세스합니다.
탐색 창에서 적절한 뷰를 선택합니다.
새 컨테이너 그룹의 경우 컨테이너 보기를 선택합니다. 오른쪽 창에 컨테이너 테이블이 표시됩니다.
새 호스트 그룹의 경우 호스트 보기를 선택합니다. 호스트 및 그룹 테이블이 오른쪽 창에 표시됩니다.
새 그룹 버튼을 누릅니다.
대화 상자가 나타납니다.
그룹 이름을 입력하고 확인을 누릅니다.
이름은 32자를 초과할 수 없습니다.
새 그룹이 선택한 뷰에 나타납니다.
컨테이너 관리자 GUI가 열려 있지 않은 경우, 컨테이너 관리자 GUI 시작에 설명된 대로 액세스합니다.
탐색 창에서 적절한 뷰를 선택합니다.
컨테이너를 다른 그룹으로 이동하려면 컨테이너 보기를 선택합니다. 오른쪽 창에 컨테이너 테이블이 표시됩니다.
호스트를 다른 그룹으로 이동하려면 호스트 보기를 선택합니다. 호스트 및 그룹 테이블이 오른쪽 창에 표시됩니다.
오른쪽 창에서 이동 버튼을 누릅니다.
대화 상자에 사용 가능한 그룹이 나열됩니다.
컨테이너 또는 호스트를 이동할 그룹을 선택합니다.
확인을 누릅니다.
컨테이너 또는 호스트가 선택한 그룹으로 이동됩니다.
소프트웨어가 설정되면 컨테이너 보기가 Default라는 그룹과 함께 초기에 로드됩니다. 이 그룹은 Solaris 9 또는 Solaris 10 운영 체제를 실행하는 호스트에서 다음과 같은 5개의 컨테이너를 보유합니다.
기본값
프로젝트가 없는 프로세스
루트 사용자
시스템 프로세스
그룹 스태프를 갖는 사용자
각 5개의 기본 컨테이너는 /etc/project 파일에 해당하는 항목이 있습니다. 구체적인 5개의 항목은 default, noproject, user.root, system 및 group.staff입니다.
Solaris 8 릴리스를 실행하는 호스트에는 Users with Group Staff(group.staff) 컨테이너가 없습니다. 그 이외에 기본 컨테이너는 동일합니다.
각 기본 컨테이너는 활성 상태이고 경계는 최소 1 CPU 예약(CPU 공유)으로 설정되어 있으며 메모리 캡은 없습니다. 기본 컨테이너는 항상 호스트의 기본 자원 풀(pool_default)에 바운드됩니다. Performance Reporting Manager가 설치되어 있으면 자원 이용률을 모니터하고 각 기본 컨테이너에서 보고서를 실행할 수 있습니다.
이러한 기본 컨테이너는 비활성화, 편집 또는 삭제할 수 없습니다. 따라서 각 컨테이너는 읽기 전용으로 레이블됩니다.
모든 UNIX 사용자는 기본 프로젝트에 할당되고 따라서 기본 컨테이너에 할당됩니다. 초기에 기본 컨테이너는 시스템에서 실행되는 모든 프로세스를 보유합니다. 프로젝트를 작성함에 따라 프로세스가 해당하는 기본 컨테이너에서 사용자가 작성하는 프로젝트로 이동됩니다.
모든 프로젝트는 컨테이너를 사용하여 시작합니다. 프로젝트는 작성하는 동안 선택하는 프로젝트 유형에 따라 세 가지 유형 중 하나가 될 수 있습니다. 프로젝트 유형으로 프로세스를 추적하는 방법이 결정됩니다.
새 컨테이너를 만들 때 프로젝트 유형을 선택합니다. 프로젝트는 관련 작업에 대한 전체 네트워크 관리 식별자(ID)입니다. 컨테이너에서 실행되는 모든 프로세스는 동일한 프로세스 ID를 가지며, 컨테이너는 프로젝트 ID로 사용되고 있는 자원을 추적합니다. 컨테이너 유형은 컨테이너를 작성할 때 선택하는 프로젝트 유형을 기반으로 합니다.
모든 컨테이너에는 프로젝트 이름이 있으며, 이 이름은 해당 정보의 일부로 영구히 보존됩니다. 컨테이너가 호스트에서 활성화되면 이 프로젝트 이름이 해당 호스트의 /etc/project 파일에 추가됩니다. 이 항목은 컨테이너가 해당 호스트에서 활성화되어 있는 동안 남아 있게 됩니다.
같은 프로젝트 이름을 가진 두 개의 프로젝트를 호스트에서 동시에 사용할 수 없습니다. 컨테이너에서 실행되는 프로세스는 프로젝트 ID로 추적되므로 호스트의 모든 프로젝트 이름은 고유해야 합니다.
사용자 기반 및 그룹 기반 프로젝트를 만들 때 사용자 또는 그룹 이름은 프로젝트 이름의 일부가 됩니다. 사용자 기반 컨테이너의 경우 프로젝트 이름은 사용자.사용자이름이 됩니다. 그룹 기반 컨테이너의 경우 프로젝트 이름은 그룹.그룹이름이 됩니다. 따라서 사용자 기반 또는 그룹 기반 프로젝트를 작성할 때 기본 컨테이너에 대한 /etc/project 항목과 중복되는 사용자 이름 또는 그룹 이름은 사용할 수 없습니다. 자세한 내용은 기본 컨테이너를 참조하십시오.
응용 프로그램 기반 컨테이너에 대한 작성 프로세스의 일부로 프로젝트 이름을 선택하여 제공합니다. 프로젝트 작성 마법사는 서로 다른 응용 프로그램 기반의 프로젝트에 대해 중복된 프로젝트 이름을 허용합니다. 그러나 같은 프로젝트 이름을 가진 두 개의 응용 프로그램 기반 프로젝트를 호스트에서 동시에 사용할 수는 없습니다. 서로 다른 호스트에서 이러한 컨테이너를 활성화하려는 경우에만 응용 프로그램 기반 프로젝트를 작성할 때 프로젝트 이름을 다시 사용하십시오. 동일한 프로젝트 이름을 가진 프로젝트가 이미 있는 호스트에서 두 번째 프로젝트를 활성화하려는 경우에는 활성화되지 않습니다.
다음 표는 사용 가능한 세 가지 유형의 프로젝트 및 선택에 따라 나타나는 변경 사항에 대한 자세한 내용을 제공합니다.
표 3–2 프로젝트 유형 세부사항
프로젝트 유형 |
OS 버전 |
세부 정보 |
---|---|---|
사용자 기반 |
Solaris 8 |
Solaris 8 릴리스에서 지원되는 프로젝트 유형만 해당됩니다. /etc/project 파일의 프로젝트 이름은 사용자.사용자이름이 됩니다. 프로젝트는 해당 사용자의 주요 기본 프로젝트가 됩니다. |
|
Solaris 9 및 Solaris 10 |
/etc/project 파일의 프로젝트 이름은 사용자.사용자이름입니다. 유효한 형식은 사용자이름입니다. |
그룹 기반 |
Solaris 9 및 Solaris 10 |
/etc/project 파일의 프로젝트 이름은 그룹.그룹이름이 됩니다. 유효한 형식은 그룹이름입니다. |
응용 프로그램 기반 |
Solaris 9 및 Solaris 10 |
프로젝트 이름은 응용 프로그램 이름 또는 기타 선택한 이름이 될 수 있습니다. 제공한 이름이 /etc/project 파일에 추가됩니다. 일치하는 프로세스를 프로젝트 이름에 자동으로 이동하기 위해 일치식을 제공할 수 있습니다. 이 표현식은 대소문자를 구별합니다. 프로세스가 현재 실행되고 있는 해당 사용자이름 또는 그룹이름을 제공해야 합니다. |
프로젝트를 사용하여 응용 프로그램의 자원을 만들기 전에 우선 응용 프로그램에 대한 자원 경향을 알아야 합니다. 메모리 캡 용량이 충분하지 않으면 ORACLE® 같은 특정 응용 프로그램의 성능이 상당히 저하됩니다. 모든 프로젝트에는 자원 예약, 즉최소 CPU 공유 및 선택 사항인 최대 메모리 예약(메모리 캡)이 설정되어 있어야 합니다. 응용 프로그램에 대한 자원 요구 사항을 설정한 이후에 이러한 예약을 관리하기 위해서만 프로젝트 사용을 시작해야 합니다.
응용 프로그램에서 일반적으로 사용하는 프로젝트보다 작은 프로젝트에 대해 물리적 메모리 캡을 설정하지 마십시오. 그렇게 할 경우, 응용 프로그램에 보다 많은 가상 메모리가 사용되기 때문에 페이징 및 스와핑이 증가하여 응용 프로그램의 성능에 부정적인 영향을 주므로 상당한 지연이 발생할 수 있습니다.
프로젝트를 사용하여 시스템 자원을 관리하기 전에 서버 통합 계획을 종료해야 합니다. 중요한 관련 작업은 통합 계획에 포함한 응용 프로그램에 대한 자원 소비의 경향을 식별하는 것입니다. 이상적으로는작업 환경에 계획을 구현하기 전에 테스트 환경에서 최소 한 달 이상 응용 프로그램에 대한 자원 이용률의 경향을 식별합니다. CPU 및 메모리 소비 경향을 설정한 후, 일반적인 메모리 요구 사항보다 최소한 몇 포인트(백분율)를 더 허용해야 합니다.
프로젝트에 필요한 CPU 공유 양을 예약할 때 CPU의 양을 정수로 할당합니다. 예를 들어, 25, 1, 37 등은 모두 유효한 양입니다. 공유라는 용어를 사용하여 프로젝트에 할당되어 있는 시스템의 CPU 자원 일부를 정의합니다. 다른 프로젝트에 비례하여 한 프로젝트에 많은 수의 CPU 공유를 할당하면 해당 프로젝트가 페어 쉐어 스케줄러로부터 더 많은 CPU 자원을 받습니다.
CPU 공유는 CPU 자원의 백분율과 같지 않습니다. 공유는 다른 작업 부하와 관련하여 작업 부하의 상대적인 중요성을 정의하는 데 사용됩니다. 예를 들어, 판매 프로젝트가 마케팅 프로젝트보다 두 배 중요한 경우, 판매 프로젝트에는 마케팅 프로젝트에 대해 두 배의 공유를 할당해야 합니다. 할당하는 공유 수와는 무관합니다. 판매 프로젝트 공유 2개와 마케팅 프로젝트 공유 1개는 판매 프로젝트 공유 18개와 마케팅 프로젝트 공유 9개와 동일합니다. 두 경우 모두에서 판매 프로젝트에는 마케팅 프로젝트에 대해 두 배의 CPU 양이 지정됩니다.
CPU 공유는 보다 자세하게 다음 두 개의 범주로 나눌 수 있습니다.
CPU 공유
(Solaris 10의 경우만) 프로젝트 CPU 공유(특정 영역에서)
Solaris 8 OS를 실행하는 호스트에서는 하나의 자원 풀 pool_default만 사용할 수 있습니다. pool_default에는 100 CPU 공유 값이 들어 있습니다.
Solaris 9 및 Solaris 10 OS를 실행하는 호스트에서는 새 자원 풀을 만들 때 해당 풀에 대한 CPU 공유 값을 설정해야 합니다. Solaris Container Manager에서 기본 값을 제공하지만 원하는 정수 값을 입력할 수 있습니다. 일부 시스템 관리자는 자원 풀에 사용할 수 있는 CPU당 100개의 CPU 공유 방식을 사용합니다. 예를 들어, 1개의 CPU가 있는 풀 하나에 100개의 CPU 공유를 할당합니다.
이 풀의 경우Project X, Project Y 및 Project Z로 이루어진 세 개의 프로젝트가 있다고 가정합니다. 가장 중요한 프로젝트인 Project X에 50개의 CPU 공유를 할당하고, 다음 프로젝트인 Project Y와 Project Z에는 각각 10개 및 40개의 공유를 할당합니다.
새 프로젝트 마법사를 사용하여 프로젝트를 작성할 때 해당 프로젝트에 CPU 공유를 할당합니다. 새 프로젝트 마법사에서 풀에 예약되지 않은 CPU 공유를 보여주므로 사용자는 사용 가능한 CPU 공유를 확인하고 적절한 양을 프로젝트에 할당할 수 있습니다.
호스트가 Solaris 10 운영 체제에서 실행되는 경우, 영역을 작성하고 해당 영역 전체에 대한 CPU 공유 및 프로젝트에 대한 프로젝트 CPU 공유를 영역에 할당할 수 있습니다. 이들은 관련된 엔티티입니다.
새 영역 마법사를 사용하여 영역을 작성하는 동안 CPU 공유 및 프로젝트 CPU 공유를 할당합니다. 새 영역 마법사의 4단계에서 자원 풀을 선택합니다. 마법사에서 해당 풀에 대한 전체 CPU 공유 및 사용 가능한 전체 CPU 공유를 표시합니다.
자원 풀에서 이 영역에 할당하려는 CPU 공유에 값을 입력합니다. 이 정수는 풀에 대한 전체 사용 가능 CPU 공유 수보다 작거나 같아야 합니다.
풀에 100개의 전체 사용 가능 CPU 공유가 있는 경우, 이 영역에 100개의 모든 공유 또는 일부를 할당할 수 있습니다. 이 예제에서는 자원 풀에서 20개의 CPU 공유를 영역에 할당한다고 가정합니다.
새 영역 마법사의 4단계에서 프로젝트 CPU 공유도 입력할 수 있습니다. 이 필드는 영역 안의 프로젝트에 할당되는 CPU 공유 수를 지정합니다. 이 값을 만들 때 해당 영역에 대한 프로젝트 CPU 공유 값을 설정하게 됩니다. 모든 정수를 입력할 수 있습니다. 입력하는 정수에 따라 얻으려는 값이 결정됩니다.
예를 들어, 영역 A에 대한 프로젝트 CPU 공유를 1000으로 할당한다고 가정합니다. 물리적 수준에서 1000 프로젝트 CPU 공유는 자원 풀에서 상속된 20 CPU 공유를 1000 공유로 나눈 값입니다. 이 예제에서 1개의 프로젝트 CPU 공유와 CPU 공유 사이의 관계를 보여주는 공식은 다음과 같습니다.
1개의 프로젝트 CPU 공유 = 20 (영역에 할당된 CPU 공유의 수)/1000 (프로젝트 CPU 공유의 수) = 0.02 CPU 공유
영역 A에서 프로젝트 1을 작성할 때 프로젝트 1은 공유를 자원 풀에서 직접 가져오지 않고 영역에서 가져옵니다. 영역 A에서 프로젝트 1에 300 공유가 할당되면 300 프로젝트 CPU 공유 또는 300/1000 x 20/100 = 0.06 CPU 공유가 됩니다.
새 프로젝트 마법사를 호출하면 프로젝트 CPU 공유를 프로젝트에 할당합니다. 새 프로젝트 마법사의 7단계에서 프로젝트에 자원 예약을 제공한 다음 CPU 예약(CPU 공유)으로 표시된 필드에 프로젝트 CPU 공유를 입력합니다. 이 작업은 Solaris 10 호스트의 영역에 프로젝트를 만드는 경우에만 적용됩니다.
Solaris 8 또는 Solaris 9 호스트에서 프로젝트를 작성할 때 예약되지 않은 CPU 공유 필드를 사용하여 CPU 공유를 입력합니다(프로젝트 CPU 공유 아님).
명령줄(zonecfg 명령)을 사용하여 CPU 공유를 수동으로 변경하지 마십시오. 이 경우 Solaris Container Manager 계산에 방해가 됩니다.
전역 영역은 하나의 자원 풀에만 바운드되지 않는 유일한 영역입니다. 이 영역은 모든 풀에서 CPU 자원을 가져올 수 있습니다. 숨겨진 전역 영역이 호스트의 모든 자원 풀에 나타나므로 전역 영역의 프로젝트는 호스트의 모든 자원 풀에서 CPU 자원을 얻을 수 있습니다.
예를 들어, Pool_default 자원 풀에는 4개의 CPU가 있으며 zone_1 및 zone_2가 배포되어 있습니다. Pool_default에는 10개의 CPU 공유가 있습니다. zone_1에는 5개의 CPU 공유가 있고, zone_2에는 4개의 CPU 공유가 있으며, 전역 영역에는 1개의 CPU 공유가 있습니다.
다른 자원 풀인 Pool_1에는 2개의 CPU와 10개의 CPU 공유가 있습니다. Pool_1에는 하나의 영역인 zone_3이 배포되어 있습니다. zone_3에는 9개의 CPU 공유가 있습니다. 전역 영역에는 1개의 CPU 공유가 있습니다.
전역 영역의 프로젝트는 배치되어 있는 풀의 CPU 공유 1개로부터 해당 CPU 자원을 가져옵니다.
Solaris Container Manager에서 전역 영역의 프로젝트는 pool_default로 배포되어야 합니다.
컨테이너 관리자는 페어 쉐어 스케줄러(FSS)를 사용하여 사용자가 설정한 최소 CPU 공유를 확인합니다. 페어 쉐어 스케줄러는 기본 스케줄러입니다. 페어 쉐어 스케줄러는 프로젝트의 공유를 전체 활성 프로젝트 공유의 수로 나눠서 프로젝트에 할당된 CPU 비율을 계산합니다. 활성 프로젝트는 하나 이상의 프로세스에서 CPU를 사용하는 프로젝트입니다. 유휴 프로젝트, 즉 활성 프로세스가 없는 프로젝트의 공유는 계산에 사용되지 않습니다.
예를 들어, 판매, 마케팅, 데이터베이스의 세 프로젝트에 각각 2개, 1개, 4개의 공유가 할당되어 있습니다. 모든 프로젝트는 활성 프로젝트입니다. 자원 풀에 대한 CPU 자원은 다음과 같이 할당됩니다. 판매 프로젝트는 2/7, 마케팅 프로젝트는 1/7, 데이터베이스 프로젝트는 4/7의 CPU 자원을 받습니다. 판매 프로젝트가 유휴 상태인 경우, 마케팅 프로젝트는 1/5, 데이터베이스 프로젝트는 4/5의 CPU 자원을 받습니다.
페어 쉐어 스케줄러는 CPU에 대한 경쟁이 있을 경우 CPU 사용만 제한합니다. 시스템에서 유일하게 활성인 프로젝트는 보유하는 공유 수에 관계없이 100퍼센트의 CPU를 사용할 수 있습니다. CPU 주기는 낭비되지 않습니다. 프로젝트에 수행할 작업이 없어서 사용할 CPU를 모두 사용하지 않게 되는 경우, 남은 CPU 자원은 다른 활성 프로세스에 배포됩니다. 프로젝트에 정의된 CPU 공유가 없는 경우, 하나의 공유로 할당됩니다. 공유가 0개인 프로젝트의 프로세스는 가장 낮은 시스템 우선 순위로 실행됩니다. 이러한 프로세스는 공유가 1개 이상인 프로젝트가 CPU 자원을 사용하지 않을 때만 실행됩니다.
타임 쉐어 스케줄러(TS)는 모든 프로세스가 사용 가능한 CPU를 상대적으로 균등하게 액세스하도록 하여 우선 순위를 기반으로 CPU 시간을 할당합니다. TS는 관리하지 않아도 되기 때문에 사용이 쉽습니다. 그러나 TS는 특정 응용 프로그램에 대한 성능을 보장하지는 않습니다. CPU 할당이 필수가 아닌 경우, TS를 사용해야 합니다.
예를 들어, FSS 자원 풀에 두 프로젝트가 할당되고 각 프로젝트에 두 개의 공유가 있는 경우, 이 두 프로젝트에서 실행되는 프로세스의 수는 아무런 관련이 없습니다. 프로젝트는 사용 가능한 CPU의 절반만 액세스할 수 있습니다. 따라서 판매 프로젝트에서 1개의 프로세스가 실행되고 마케팅 프로젝트에서 99개의 프로세스가 실행될 경우, 판매 프로젝트의 하나의 프로세스는 CPU의 절반에 액세스할 수 있습니다. 마케팅 프로세스의 99개 프로세스는 사용 가능한 CPU 자원의 절반을 공유해야 합니다.
TS 자원 풀에서는 CPU가 프로세스마다 할당됩니다. 판매 프로젝트에 있는 1개의 프로세스는 CPU의 1퍼센트에만 액세스할 수 있는 반면, 마케팅 프로젝트에 있는 99개의 프로세스는 사용 가능한 CPU 자원의 99퍼센트에 액세스할 수 있습니다.
페어 쉐어 스케줄러 또는 타임 쉐어 스케줄러에 대한 자세한 내용은 System Administration Guide: Network Services를 참조하십시오.
테스트 환경에서 컨테이너 관리자를 도구로 사용하여 다음 작업을 통해 응용 프로그램 자원 소비의 경향을 파악할 수 있습니다.
필요한 소프트웨어와 함께 컨테이너 관리자 소프트웨어를 설치 및 설정합니다.
자세한 내용은 2 장, 컨테이너 관리자 설치 및 설정을 참조하십시오.
모니터하려는 모든 에이전트 시스템에 Performance Reporting Manager를 설치합니다.
자세한 내용은 2 장, 컨테이너 관리자 설치 및 설정 및 Sun Management Center 3.6.1 Performance Reporting Manager User’s Guide를 참조하십시오.
경향을 파악하려는 응용 프로그램에 대한 활성 응용 프로그램 기반 컨테이너를 작성합니다. 새 작성 마법사에서 최소 CPU 예약만 만듭니다. 메모리 캡을 설정하지 마십시오.
자세한 내용은 응용 프로그램 기반 프로젝트 작성 및 응용 프로그램 기반 프로젝트 작성을 참조하십시오.
일별, 주별 또는 실시간 그래프를 사용하여 2주 동안 사용된 자원을 모니터링합니다. 개별 호스트에서 실행 중인 컨테이너에 대한 그래프 및 사용된 CPU 및 메모리 자원에 대한 그래프로 총 2개의 그래프를 사용할 수 있습니다. 또한 프로세스 테이블을 통해 응용 프로그램에서 실행 중인 프로세스를 모니터할 수도 있습니다.
자세한 내용은 활성 프로젝트에 대한 자원 이용률 보고서 요청 및 프로젝트 프로세스 보기를 참조하십시오.
응용 프로그램에 대한 최대 물리적 메모리 요구 사항을 설정한 후, 메모리 캡을 포함하도록 컨테이너의 등록 정보를 수정합니다. 캡은 응용 프로그램에서 사용한 최대 메모리보다 크게 설정해야 합니다.
자세한 내용은 등록 정보를 사용하여 프로젝트 수정을 참조하십시오.
사용된 메모리가 설정된 메모리 캡을 초과하기 시작하면 알려주도록 경보를 설정합니다. 등록 정보 시트를 사용하여 메모리 캡을 조정합니다.
자세한 내용은 경보 임계값 설정 및 등록 정보를 사용하여 프로젝트 수정을 참조하십시오.
컨테이너 관리자를 사용하여 자원 이용률 경향을 설정한 이후 컨테이너를 사용하여 작업 환경에서 서버를 통합할 수 있습니다.
서버 통합 계획 및 실행에 대한 자세한 내용은 Sun Blueprint 문서 Consolidation in the Data Center(David Hornby 및 Ken Pepple 저)를 참조하십시오. ORACLE 데이터베이스를 실행하는 시스템에서의 서버 통합에 대한 자세한 내용은 Sun 백서 Consolidating Oracle RDBMS Instances Using Solaris Resource Manager Software를 참조하십시오.