본문 바로가기

OS & network/solaris

솔라리스 11.2의 신기능 소개 - 솔라리스 커널 존

테크넷 마스터 김재벌 입니다.




솔라리스 11.2에서 제공되는 신기능중에 하나를 오늘 추가로 소개 합니다.


해당 기능은 "커널 존"이라고 불리우며, Brand 존이라고 불리우던 솔라리스의 독립 가상 존 입니다.


solaris-kz 라고 불리우는 이 존은 다른 존과 달리 커널과 프레임워크를 글로벌 존에서 공유 받아 쓰지 않고 독립적으로 사용 할 수 있습니다.


아시겠지만 솔라리스는 존을 생성하면 호스트 머신의 글로벌 존의 커널과 라이브러리 등을 공유 하게 되고 , 이는 매우 적은 리소스로 동작할 수 있게 해 주는 존의 핵심 컨셉이기도 합니다.


그럼에도 불구하고, OS를 분리시켜 인스턴스나 응용프로그램의 독립성을 보장하고 강력한 보안정책을 적용하기 위해서는 별도의 독립된 영역이 필요합니다. 


이를 solaris-kz 를 통해 지원합니다.


솔라리스 10 에서는 solaris 8,9,10의 존과 centos linux zone을 브랜드 존으로 지원했습니다만, 솔라리스 11은 솔라리스 10과 솔라리스 11 존만 지원합니다.


솔라리스 11.2부터는 커널 존을 통해 독립적으로 사용이 가능하며 , 당연하게도 패키지도 별도 관리 됩니다.

따라서 , ips를 이용한 업데이트 및 패치도 별도로 적용받게 됩니다.



해당 기능은 솔라리스 11.2 의 스팍 머신과 x86 모두에서 사용이 가능하지만 아래와 같은 제약이 있습니다.



물리적 호스트 시스템에 다음 구성 요소가 있어야 합니다.




SPARC 시스템: 

- SPARC T4 시스템에 최소 시스템 펌웨어 8.5.1 실행

- SPARC T5, SPARC M5, SPARC M6 시스템에 최소 시스템 펌웨어 9.2.1 실행

x86 시스템: 

- BIOS에서 CPU 가상화(예: VT-x)가 사용으로 설정된 Nehalem+ (Intel) 

  또는 Barcelona+ (AMD) 기반 x86 시스템. 

- x86의 커널 영역에는 EPT, NPT 또는 RVI(Rapid Virtualization Indexing)라고도 하는  확장/중첩 페이지 

  테이블 지원이 필요.



또한 SPARC 및 x86 시스템에는 모두 다음이 필요합니다.



최소 8GB의 물리적 RAM


커널 영역 브랜드 패키지 소프트웨어 패키지 brand/brand-solaris-kz.


아쉽게도 virtualbox 및 oracle vm server for x86 은 지원되지 않습니다.




솔라리스 11.2가 맞는지는 uname 명령어를 통해 확인 가능하며 , pkg 명령어를 이용하여 패키지를 설치 합니다. 


# pkg list brand/brand-solaris-kz

 NAME (PUBLISHER)                               VERSION                        IFO

 system/zones/brand/brand-solaris-kz            0.5.11-0.175.2.0.0.36.22321    i-- 


설치가 완료되면 virtinfo 명령어를 이용하여 해당 영역이 호스트에서 지원 되는지 유무를 확인 합니다.

# virtinfo 

NAME            CLASS

logical-domain  current

non-global-zone supported

kernel-zone     supported


커널 영역은 아래와 같이 손 쉽게 생성할 수 있습니다. 기존 방식과 크게 다르지 않게 생성, 구성 할 수 있습니다.

먼저 커널 존을 생성합니다.


#zonecfg -z kzone

Use 'create' to begin configuring a new zone.

zonecfg:kzone> create -t SYSsolaris-kz

 

그 뒤에 일반적인 zone 생성과 동일하게 commit 과 verify 를 수행하여 검증 합니다.


존의 구성을 변경하고자 하면 아래와 같은 방법으로 변경이 가능합니다.

일반적으로 존은 1개의 존에 1개의 가상 cpu가 할당됩니다. 여기서는 cpu 개수를 8로 변경합니다.


# zonecfg -z kzone

zonecfg:kzone> info virtual-cpu

zonecfg:kzone> add virtual-cpu

zonecfg:kzone:virtual-cpu> set ncpus=8

zonecfg:kzone:virtual-cpu> end

zonecfg:kzone> info virtual-cpu

virtual-cpu:

        ncpus: 8

zonecfg:kzone1> exit

 

변경 여부를 검증합니다.


zonecfg:kzone> info dedicated-cpu

dedicated-cpu:

        ncpus: 8



커널존의 특징은 독립적임으로 메모리 역시 capped 메모리 기능을 통해 메모리를 할당할 수 있습니다.


즉, cpu , 메모리 , nic 같은 장치등을 독립적으로 사용할 수 있습니다.


이처럼 솔라리스 11.2에서는 필요에 따라 구성하여 사용하실 수 있습니다.