Solaris 컨테이너

Solaris Containers
Solaris 존
원저작자Sun Microsystems
개발자일루미노와 오라클
초기 릴리즈2005년 1월 (2005년 1월)
기입처C
운영 체제Oracle Solaris
플랫폼SPARC, x86
이용가능기간:영어
유형OS 레벨의 가상화
면허증. CDDL, 독자 사양
웹 사이트oracle.com/solaris

Solaris Containers(Solaris Zones 포함)는 x86 및 SPARC 시스템용 운영체제 수준의 가상화 테크놀로지를 구현한 으로, 2004년 2월에 Solaris 10의 빌드 51 베타로 처음 공개되었으며, 이후 Solaris 10의 첫 번째 정식 릴리스로 2005년에 공개되었습니다.OpenIndiana, SmartOS, Tribblix, OmniOS 등의 일루미노(구 OpenSolaris) 배포판 및 Oracle Solaris 11 정식 릴리스에 있습니다.

Solaris 컨테이너는 시스템자원 제어와 존에 의한 경계 분리의 조합입니다.존은 단일 운영 체제 인스턴스 내에서 완전히 분리된 가상 서버 역할을 합니다.여러 애플리케이션 서비스 세트를 하나의 시스템에 통합하고 각각의 애플리케이션 서비스를 분리된 가상 서버 컨테이너에 배치함으로써 시스템 관리자는 비용을 절감하고 단일 시스템에서 동일한 보호 기능을 제공할 수 있습니다.[1]

용어.

이 테크놀로지의 이름은 개발 및 출시 전 공개 이벤트에서 변경되었습니다.2005년 Solaris Zones가 출시되기 전까지 Solaris Container는 Solaris 자원 관리 기능에 의해 제약되는 모든 유형의 워크로드였습니다.후자는 초기 역사에서 별도의 소프트웨어 패키지였습니다.2007년에는 Solaris Containers라는 용어가 자원 관리 컨트롤과 결합된 Solaris Zone을 의미하게 되었습니다.

이후 Solaris Containers는 자원 관리 추가 유무에 관계없이 비글로벌 존을 구체적으로 언급하는 등 점진적인 움직임이 있었습니다.글로벌 존이 호스트하는 존을 '비글로벌존'이라고 부르지만 단순히 '존'이라고 부르기도 합니다."local"은 "global"의 반의어가 아니기 때문에 "local zone"이라는 용어는 특히 권장되지 않습니다.글로벌 존에는 시스템상의 모든 리소스가 표시됩니다(글로벌존과 관련된 자원인지 비글로벌존인지에 관계없이).특별히 명기되어 있지 않는 한, 이 문서의 「zone」은 비글로벌 존을 가리킵니다.

용어의 심플화를 위해 Oracle은 Solaris 11에서 Container라는 용어의 사용을 중지하고 자원 관리 컨트롤의 사용에 관계없이 Solaris Zone이라는 용어로 되돌렸습니다.

묘사

각 존에는 독자적인 노드명, 가상 또는 물리 네트워크인터페이스에 [2]대한 액세스 및 할당된 스토리지가 있습니다.존에 고유 구성에 필요한 디스크 스토리지 이외의 전용 하드웨어를 최소화할 필요는 없습니다.특히 전용 CPU, 메모리, 물리 네트워크 인터페이스 또는 HBA가 필요하지 않습니다.다만, 이것들 중 어느 것도 1개의 [3]존에 할당할 수 있습니다.

각 존에는 그 주위에 보안 경계가 있어 1개의 존과 관련된 프로세스가 다른 존의 프로세스와 상호 작용하거나 프로세스를 감시할 수 없습니다.각 존에는, 독자적인 유저 리스트를 설정할 수 있습니다.시스템은 사용자 ID 경합을 자동으로 관리합니다.즉, 시스템상의 2개의 존에 사용자 ID 10000이 정의되어 각 존이 고유의 글로벌 [4]ID에 매핑될 수 있습니다.

존의 상태는 다음 중 하나입니다.

  • 구성: 구성이 완료되어 커밋되었습니다.
  • 미완료:설치 또는 제거 작업 중 전환 상태.
  • 인스톨 완료:패키지가 성공적으로 설치되었습니다.
  • 준비 완료: 가상 플랫폼이 구축되었습니다.
  • 실행 중:존이 정상적으로 기동해, 현재 동작하고 있다.
  • 셧다운:존이 셧다운되고 있습니다.이것은 일시적인 상태이기 때문에, 「Down」이 됩니다.
  • [Down] :존이 셧다운 프로세스를 완료하고 다운되어 있습니다.이것은 일시적인 상태이며, 「Installed」가 됩니다.

일부 프로그램은 비글로벌존 내에서 실행할 수 없습니다.일반적으로 컨테이너 내에서 부여할 수 없는 권한이 응용 프로그램에 필요하기 때문입니다.영역에는 별도의 커널이 없으므로(하드웨어 가상 시스템과 달리) 커널 기능을 직접 조작해야 하는 애플리케이션(예: 커널 메모리 공간을 직접 읽거나 변경하는 기능)은 컨테이너 내에서 작동하지 않을 수 있습니다.

필요한 자원

존은 CPU와 메모리의 오버헤드를 매우 낮춥니다.대부분의 존 유형은 글로벌존의 가상 주소 공간을 공유합니다.존을 자원 풀(프로세서 세트+스케줄링 클래스)에 할당하여 특정 사용을 보증하거나 고정 컴퓨팅 용량("CPU 상한")으로 제한하거나 공평한 공유 [5]스케줄링을 통해 공유를 제공할 수 있습니다.

현재 1개의 운영체제인스턴스 내에서 최대 8191개의 비글로벌존을 작성할 수 있습니다.대부분의 파일 시스템 콘텐츠가 글로벌 영역과 공유되는 "희박 영역"은 50MB의 디스크 공간을 사용할 수 있습니다.각 존에 자체 운영체제 파일 복사가 있는 "전체 루트존"은 설치된 소프트웨어에 따라 수백 MB에서 수 기가바이트까지 점유할 수 있습니다.8191 제한은 Solaris 인스턴스당 8,192개의 루프백 접속 제한으로 인해 발생합니다.각 존에는 루프백 접속이 필요합니다.글로벌 존이1개를 취득하고 비글로벌존은 8,191개를 남깁니다.

전체 루트 존을 사용하더라도 스냅샷 이미지와 다른 블록만 디스크에 저장하면 되기 때문에 존의 OS 파일 시스템이 글로벌존 이미지의 ZFS 클론인 경우 디스크 공간 요건은 무시할 수 있습니다.이 방법을 사용하면 몇 초 만에 새로운 존을 만들 수 있습니다.

브랜드 존

시스템의 모든 존이 공통 커널을 공유하지만 브랜드 존(BrandZ)이라는 기능 세트가 추가되었습니다.이것에 의해, 개개의 존이 글로벌존의 디폴트브랜드 이외의 방법으로 동작할 수 있습니다.기존 브랜드(2009년 10월)는 2개의 카테고리로 분류할 수 있습니다.

  • 시스템콜번역을실행하지않는브랜드:
    • Solaris 10의 디폴트는 '네이티브'입니다.
    • OpenSolaris, OpenIndiana 및 OmniOS에서는 'ipkg'이 기본입니다.
    • 스마트에서는 'joyent'가 기본입니다.OS
    • '클러스터'는 Solaris 클러스터 존에 사용됩니다.
    • '라벨'은 Solaris Trusted Extensions 환경에서 존에 사용됩니다.
  • 시스템 콜 번역을 실시하는 브랜드:
    • 'solaris8'은 Solaris 8 시스템콜에서 Solaris 10 시스템콜로의 변환을 포함한 Solaris 10 시스템상의 Solaris 8 환경을 제공합니다(SPARC 시스템에서만 사용 가능).
    • 'solaris9'는 Solaris 9 시스템콜에서 Solaris 10 시스템콜로의 변환을 포함한 Solaris 10 시스템상의 Solaris 9 환경을 제공합니다(SPARC 시스템에서만 사용 가능).
    • 'lx'는 RHEL 3 시스템 콜에서 Solaris 10 시스템 콜로의 변환을 포함한 Solaris 10 시스템 상의 Red Hat Enterprise Linux 3 환경을 제공합니다(x86 시스템에서만 사용 가능).SmartOS에서는 lx 브랜드 존을 통해 Ubuntu, Debian, CentOS, Alpine 등 대부분의 최신 Linux 디스트리뷰션을 실행할 수 있습니다.LX 지원이 일루미노로 업스트림되지 않았습니다.
    • 's10brand'는 Solaris 10 시스템 콜에서 OpenSolaris/Oracle Solaris 11 시스템 콜로의 변환을 포함한 OpenSolaris 또는 Oracle Solaris 11 시스템 상의 Solaris 10 환경을 제공합니다.
    • 'solaris-kz'는 Oracle Solaris 11.2 이상의 [6]시스템에 개별 Solaris 11.2 이상의 인스턴스와 자체 커널 및 독립 패키지를 제공합니다.이 기능은 Solaris 11.2 베타판(공용 다운로드판)[7]에서 최초로 공개되었습니다.

존의 브랜드는 존이 작성될 때 설정됩니다.두 번째 카테고리는 OS 커널 내의 인터벤션 포인트를 사용하여 구현되며, 시스템 콜, 프로세스 로드, 스레드 생성 및 기타 요소의 동작을 변경하기 위해 사용할 수 있습니다.

'lx' 브랜드의 경우 에뮬레이트 환경을 완료하려면 Red Hat 3 또는 CentOS와 같은 동등한 배포판의 라이브러리가 필요합니다.

문서

Solaris 운영체제시스템은 기본적으로 Solaris 컨테이너의 man 페이지를 제공합니다.자세한 내용은 다양한 온라인 기술자원을 참조하십시오.

Solaris Zones에 대한 첫 번째 공개 문서 및 실제 참조 자료는 Blastwave의 Dennis Clarke에 의해 2004년 2월에 작성되었으며, 시작하기 위한 필수 요소를 제공합니다.이 문서는 2005년 [8]7월에 Brendan Gregg에 의해 대폭 확대되었습니다.Solaris 8 및 Solaris 9 컨테이너는 2008년 4월 Blastwave에서 Dennis Clarke에 의해 상세하게 문서화되었습니다.Blastwave Solaris 8 및 Solaris 9 Containers 문서는 Solaris Containers 테크놀로지의 릴리스 사이클 초기에 작성되었으며 Blastwave에서의 액션과 구현은 Sun Microsystems 마케팅의 후속 조치로 이어졌습니다.Jeff Victor 등이 쓴 Oracle Solaris 10 System Virtualization Essentials 에는 기능의 상세와 베스트 프랙티스가 기재되어 있습니다.자세한 내용은 Oracle 설명서 [9]사이트를 참조하십시오.

구현 문제

Solaris 10 10/08 현재 브랜드 존은 FJSVs8brandr 및 FJSVs9brandr [10]패키지를 통해 Sun4us 아키텍처(Fujitsu PRIMEPOWER 서버)에서 지원됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Introduction to Oracle Solaris Zones".
  2. ^ "Zone Network Interfaces".
  3. ^ "Capabilities Provided by Non-Global Zones".
  4. ^ "Capabilities Provided by Non-Global Zones".
  5. ^ "Resource Controls".
  6. ^ "About Oracle Solaris Kernel Zones".
  7. ^ "Oracle Solaris 11.2 Beta Downloads".
  8. ^ "Zones". Solaris Internals wiki. November 6, 2007. Retrieved April 21, 2008.
  9. ^ "Oracle Solaris 11.1 Information Library".
  10. ^ "What's New in the Solaris 10 10/08 Packages". Oracle. September 1, 2008. Retrieved September 1, 2008.

외부 링크