메인 컨텐츠로 가기

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

솔라리스에서 AIX로 이주하기 (한글)

파티셔닝과 가상화

Ken Milberg, 대표와 컨설턴트, 기술 편집자, 지역 전문가, techtarget.com
Ken Milberg, PMP는 IBM Systems Magazine, Power Systems을 위한 기술 편집자이자 작가다. Milberg는 Unix-Linux Solutions 대표이자 컨설턴트를 관리하고 있다. Milberg는 매릴랜드 대학교 컴퓨터와 정보 과학 학사 과정에 이어 정보 관리 석사 과정을 마쳤다. Milberg는 뉴욕 시 파워-AIX/리눅스 사용자 그룹 발기인이자 그룹 리더다. 여러 해 동안 Milberg는 다양한 규모의 조직에서 일했고, CIO부터 선임 AIX 엔지니어에 이르기까지 다양한 직책을 맡았다. Milberg는 PMI 인증 프로젝트 관리 전문가이며, IBM 인증 첨단 기술 전문가(IBM System p5 2006년)이며, IBM Scon 인증을 획득했다. 연락이 가능한 전자편지 주소는 ken@unix-linux.org다.

요약:  솔라리스 경력이 10년인데, 다른 많은 회사와 마찬가지로 막 대규모 서버 통합을 시작해 솔라리스 10에서 AIX® 6.1로 프로젝트를 이주해야 할지도 모릅니다. 명령어 대다수가 비슷하지만 파티셔닝과 가상화를 수행하는 방법을 알아야 할 필요가 있습니다. IBM®과 썬 서버 사이에 존재하는 파티셔닝 차이점이 무엇일까요? 한 걸음 더 나가 컨테이너로부터 이주를 성공적으로 마치기 위해 WPAR(Workload PARtition)을 이해하는 과정에서 필요한 내용이 무엇일까요? WPAR과 존(zone) 사이에 유사점과 차이점이 무엇이며, 존과 WPAR을 생성하는 과정에서 차이점이 무엇일까요? 마지막으로 썬 서버에서 하지 못하는 작업 중에 IBM System p™에서 할 수 있는 작업이 무엇일까요? 이번 기사에서 던진 몇몇 질문은 시스템 이주를 좀더 쉽게 만들기 위한 힌트를 제공합니다.

원문 게재일:  2008 년 3 월 18 일
난이도:  중급 영어로:  보기
페이지뷰:  1840 회
의견:  


서론

가장 먼저 System p™, AIX®와 연관된 몇 가지 기본 개념 이해가 필요하다. 명령어 자체에 나타나는 차이점은 쉽게 조사가 가능하다. (참고 자료에 나오는) 로제타 스톤과 같은 인기 있는 사이트는 다양한 유닉스(UNIX®)와 리눅스 변종에서 공통적인 시스템 관리 작업을 나란히 놓고 비교해준다. IBM은 또한 여러 IBM 레드북(Redbooks®) 시리즈를 통해 파일 시스템 관리, 사용자 관리, 커널 튜닝(참고 자료를 살펴보기 바란다)과 같은 작업에 대한 정보를 특별히 솔라리스 관리자에게 맞춤식으로 제공하고 있다. 하지만 파티셔닝과 가상화 같은 전통적이지 않은 작업은 어떻게 해야 하나? 여기가 바로 정말 개념을 이해하기 위해 깊이 파고 들어가야 하는 부분이다. WPAR(Workload Partition)은 IBM에서조차 상대적으로 새로운 기술이다. 간단히 말하면, WPAR은 운영체제를 가상화해 파티션으로 나눈 물리 서버(IBM 논리 파티션(LPAR), 솔라리스 논리 도메인(LDom), 썬 동적 시스템 도메인과 관련을 지을 수 있다)에서 몇몇 운영체제 시스템 이미지를 올리도록 만들어줌으로써 관리자의 삶을 편하게 만든다. WPAR은 시스템 배포와 관리를 단순하게 만들고 응용 프로그램을 통합한다. 실제 운영체제 가상화에 앞서 IBM LPAR, 솔라리스 LDom, 썬 동적 시스템 도메인(DSD)을 사용한 서버 자체 파티셔닝이 필요하다.

IBM 유닉스 플랫폼(참고로 IBM은 가상화를 하이퍼바이저를 통해 1967년부터 시작했으며, 1987년에는 LPAR을 사용해 메인프레임 파티셔닝을 지원했다)에서 파티셔닝 역사는 2001년에 출시된 POWER4 아키텍처에서 동작하는 AIX 5L™에 도입된 LPAR 기술부터 시작한다. IBM LPAR 기술은 물리 서버를 분리된 LPAR로 나눠 각각에 AIX나 리눅스를 설치하도록 허용한다. (하이퍼바이저 기반 기술인) 이 기술 자체는 가상 기계 기술의 일종으로 VMWare나 Xen과 비교할 수 있다. AIX 5.2가 출현하면서, 파티션 리부팅 없이도 동적으로 CPU, I/O 어댑터, 메모리를 이동하는 기능이 추가되었다. 이런 기능은 DLPAR(Dynamic Logical Partitioning)을 통해 현실화되었는데, 추가적인 CPU나 메모리 서버를 동작중인 LPAR에 동적으로 할당하는 과정을 지원한다. AIX 5.3과 POWER5 아키텍처는 APV(Advanced POWER Virtualization)를 IBM System p에 추가했으며, 가상 I/O 서버(공유 이더넷과 가상 SCSI), 마이크로 파티셔닝, (공유 프로세서 풀을 활용한) 제한이 풀린 파티션, 최근에 은퇴한 PLM(Partition Load Manager) 지원을 포함한다. IBM System p에서 AIX나 리눅스 파티션은 동일 프레임 내부에서 LPAR로 동작하며, 각각은 독자적인 운영체제 이미지(CPU, RAM, I/O)로 구성되어 있다. IBM 서버를 파티션하기 위해서는, HMC(Hardware Management Console)나 상대적으로 새로운 제품인 IVM(Integrated Virtualization Manager)을 사용한다. HMC는 IBM이 꼭꼭 감춰버린 독자적으로 설정한 리눅스 버전이 돌아가는 PC이며, 파티션으로 나뉜 서버를 생성하고 설정하고 유지하도록 돕는다. IVM은 독자적인 워크스테이션이 없어도 파티션 작업을 수행한다. IVM은 브라우저 기반 인터페이스이며, 서버에 있는 지역 자원을 설정하도록 돕는다.

IBM LPAR과 솔라리스 컨테이너 및 존을 비교하려는 목적으로 이 기사를 작성하지 않은 이유는 성격이 다른 두 기술을 비교하는 행위는 어리석기 때문이다. 하지만 IBM과 썬 모두 과거 여러 해 동안 마케팅에 집중해 서로 경쟁 제품을 팔기 위해 노력해왔다는 사실을 말하는 편이 공정하겠다. 파티션으로 나뉜 IBM System p에서 각 LPAR은 독자적인 이미지로 구성되어 있는 반면에 컨테이너와 존은 각각 동일한 기반 운영체제로 구성되어 있다. 이런 점에서 LPAR은 썬의 DSD(실제 가상화 기능이 없는 하드웨어 기반 파티셔닝)이나 LDoms와 더 비슷하다. 기술 관점에서 바라보면, LAPR은 썬이 새롭게 선보일 xVM과 오히려 더 비슷한데, xVM은 Xen을 기반으로 하는 의사 가상화(paravirtualization) 기술이다. 이 기사에서는 썬의 컨테이너 가상 서버 기술을 설명하고 IBM WPAR 기술과 비교하고 솔라리스 관리자로서 IBM 영역에 발을 내딛기 위해 필요한 지식을 설명한다. 참고로 이 기사는 (WPAR과 존과 같은) OS 가상화를 이해하려는 AIX 관리자에게도 도움이 될 것이다.

WPAR이 필요한 이유?

LPAR이나 DSD나 LDom을 사용함에도 불구하고 WPAR이나 존이 필요한 이유는 도대체 무엇일까? IBM과 썬이 서로에게 이끌려 중심으로 향하는 모습을 지켜보면 아주 재미있다. LPAR과 컨테이너 가상 서버 기술의 장단점을 따지기에 앞서, IBM과 썬은 모두 상대방이 제공하는 기술의 중요성을 깨달았기에 IBM은 WPAR을 밀어붙이고 썬은 (솔라리스를 좀더 파티션에 친밀하도록 만들기 위한 시도로 LPAR 뒤에 나온) LDom에 이어 xVM과 같은 의사 가상화 제품을 밀어붙이고 있다. AIX 관리자라면 누구나 LPAR이 환상적이라고 말하긴 하지만 LPAR에는 다중 이미지 관리 취약성과 램과 같은 하드웨어 자원의 과도한 점유라는 단점이 있다. 정리하자면 (하드웨어나 하이퍼바이저나 펌웨어 기반이거나) 파티셔닝은 단일 물리 서버 내부에 하드웨어를 통합하고 가상화하는 데 도움을 주며, 대규모 물리 기계 내에서 독립적인 호스트 시스템을 설정하는 데 중요한 기능을 제공한다. WPAR이나 존과 같은 운영체제 가상화는 심지어 자원 관리에 대해 좀더 세밀한 방법을 제공한다. 운영체제 이미지 공유로 이런 기능을 제공하는데, 프로세서 메모리와 I/O 자원을 최대한 효율적으로 활용하는 명쾌한 방법이다.

WPAR이 LPAR을 보완하는 방식으로, 존은 DSD나 LDOM을 보완한다. 양쪽 다 비즈니스에 실제 가치를 부여한다. 존이나 WPAR 형태로 나타나는 운영체제 가상화는 응용 프로그램 작업 부하를 가상화해 다중 작업 부하 이미지를 운영체제의 단일 인스턴스로 돌리도록 지원한다. 새로운 응용 프로그램은 이런 가상화된 운영체제 파티션을 통해 번개처럼 배포가 가능하며, IBM의 경우에는 매번 새로운 파티션을 직접 만들어 새로운 운영체제를 설치할 필요조차 없다. 더구나 관리하고 패치할 필요가 있는 이미지 개수가 줄어들며, 할당되어야 하는 하드웨어 자원도 줄어든다. 반면에 WPAR에는 단일 실패 지점이 있다. 예를 들어, LPAR 문제가 발생할 때 모든 기반 WPAR 역시 영향을 받는다. 또한 계획된 장애에 영향을 받는데, 파티션된 LPAR에서 동작하는 각 WPAR 인스턴스는 픽스팩이 LPAR에 설치될 필요가 있을 경우 동일 운영체제 모드에 놓여 있어야 한다.

컨테이너와 존

솔라리스에서 컨테이너 가상 서버 기술은 존 파티셔닝 기술과 자원 관리 도구라는 두 가지 주요 컴포넌트를 포함한다. 용어를 섞어서 사용하긴 하지만 존은 실제 가상화된 환경이며, 컨테이너는 운영체제 관리 기능을 사용하는 존으로 통한다. 이런 기술은 솔라리스 10에서 처음 등장했다. 존은 동작 중인 응용 프로그램을 위해 분리되고 안전한 환경을 제공하는 데 쓰이며, 솔라리스 단일 인스턴스 내부에서 생성된 환경이다. 이론상으로 존을 8192개까지 만들 수 있지만, 시스템에 존재하는 다른 제약 사항 때문에 최대 생성 개수가 제한된다.

솔라리스 전역 존은 다른 존을 생성하기에 앞서 만들어야 한다. 시스템을 처음 설치하고 배포할 때, 모든 프로세스는 전역 존에서 동작한다. 모든 측면에서 비 전역 존도 실제 존이다. 비 전역 존에는 두 가지 유형이 있다. 첫 번째는 드문드문한 루트 존이고, 두 번째는 꽉 찬 루트 존이다. (inherit-pkg-dir 자원을 갖춘) 드문드문한 존은 객체 공유를 최적화하며, 패키지와 파일에서 단지 일부만 복사한 자료를 포함하는 루트 파일 시스템으로 구성되어 있다. 이런 존 유형은 일반적으로 대략 100GB 정도 공간을 차지한다. 이 모델에서 루트 파일 시스템에 속한 디렉토리 넷은 다음과 같다.

  • /lib
  • /platform
  • /sbin
  • /usr

SUNW_PKGTYPE을 root로 설정해 놓은 곳에서 단지 가장 중요한 파일만 복사한다. 나머지 패키지는 존에 설치되지 않으며, 읽기 전용 모드에서 루프백 파일 시스템으로 접근이 가능하다. 꽉 찬 루트 존은 완벽한 솔라리스 10 설치를 요구한다. 공간을 좀더 차지하는 반면에 유연성을 제공하므로 드문드문한 루트 존과는 달리 설치하기를 원하지 않는 파일이나 패키지 제거가 가능하다.

드문드문한 모델이 기본이다. (부팅 가능한 시스템인) 전역 존은 비 전역 존을 관리할 수 있는 유일한 존이다. 이 존은 완벽한 솔라리스 설치를 포함하며 컴퓨터에 존재하는 모든 디바이스와 파일 시스템을 인식한다. 자원 관리는 CPU와 메모리를 포함한 시스템 자원을 관리하도록 허용한다. 썬은 (컨테이너 가상 서버 기술의 컴포넌트로) 솔라리스 자원 관리자를 통해 동적 자원 풀을 제공한다. 솔라리스 자원 관리자는 리소스 풀과 리소스 상한 지정을 비롯해 좀더 많은 통제 방식으로 자원 배포를 허용한다. 일반적인 규칙에 따르면, 대다수 응용 프로그램은 특별히 물리적인 디바이스에 접근할 필요가 없는 이상 컴퓨터 외부 존에서 동작한다. 몇몇 경우에 있어 이는 단순히 환경 설정 문제로 끝난다. 다른 경우라면 응용 프로그램은 존을 지원하기 위해 반드시 수정되어야 한다. /dev/kmem이나 네트워크 디바이스 접근이 필요한 응용 프로그램인 경우가 이에 해당한다. 썬은 완벽하게 지원하는 응용 프로그램 목록을 제공하는데, 이런 응용 프로그램은 ISV에서 평가했다. 응용 프로그램이 목록에 없다면 동작하지 않으리라 지레 짐작하지 말자. 몇몇 ISV는 다른 응용 프로그램과 마찬가지로 존을 취급하기에, 인증을 받아야 한다는 필요성을 느끼지 못한다.

존 생성과 관리

이 절에서는 솔라리스 존 생성과 설정을 다룬다. 작업 환경은 썬 파이어 V210이며, 1336Mhz 울트라스팍 IIIi CPU 두 개를 장착하고 있다.

가장 먼저 존 초기화가 필요하다.

. root[ksh]@ezqspc18# zonecfg -z testzone

그 다음으로 현재 환경 설정 기본 정보를 출력해 파일에 저장하자(Listing 1 참조).


Listing 1. 현재 환경 설정 기본 정보를 출력하기
                
zonecfg:testzone>
zonecfg:testzone> export
create -b
set zonepath=/home/zones/myzone
set autoboot=false
set ip-type=shared
add inherit-pkg-dir
set dir=/lib
end
add inherit-pkg-dir
set dir=/platform
end
add inherit-pkg-dir
set dir=/sbin
end
add inherit-pkg-dir
set dir=/usr
end
add net
set address=192.168.0.22
set physical=e1000g0
end

이 결과로부터 몇몇 환경 설정 변수에 변경을 가해 설치 존 경로와 환경 설정 파일을 설정한다(Listing 2 참조).


Listing 2. 몇몇 환경 설정 변수 변경하기
                
zonecfg:testzone>
zonecfg:testzone> set zonepath=/zones/testzone
zonecfg:testzone> commit
zonecfg:testzone> export -f /testzone.cfg

이제 설치 준비가 끝났다(Listing 3 참조).


Listing 3. 설치하기
                
root[ksh]@ezqspc18# zoneadm -z testzone install

WARNING: skipping network interface 'e1000g0' which may not be present/plumbed \
    in the global zone.
Preparing to install zone <testzone>.
Creating list of files to copy from the global zone.
Copying <7231> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1580> packages on the zone.
Initializing package <367> of <1580>: percent complete: 23%

대략 17분이 지나면, 설치가 끝난다(Listing 4 참조).


Listing 4. 설치 완료
                
Initialized <1580> packages on zone.
Zone <testzone> is initialized.
The file </zones/testzone/root/var/sadm/system/logs/install_log> contains a log \
    of the zone installation.
root[ksh]@ezqspc18#

다음으로 존을 부팅한다(Listing 5 참조).


Listing 5. 존 부팅
                
root[ksh]@ezqspc18# zoneadm -z testzone boot
WARNING: skipping network interface 'e1000g0' which may not be present/plumbed \
    in the global zone.
root[ksh]@ezqspc18#

이 시점에서 zlogin을 사용해서 전역 환경에서 로그인한다.

zlogin -C testzone

로그인한 다음에, 연결된 화면이 나타나지만 아무 내용도 나오지 않는다.

Connected to zone 'testzone' console]

다음 메시지를 보기 전까지 5분 정도 걸린다. 즉시 로그인되지 않는다고 당황하지 말자. 이런 작업을 처음 수행할 경우 환경 설정을 바꿔 터미널 유형과 호스트 이름과 네트워크 정보를 입력해야 한다(Listing 6 참조).


Listing 6. 환경 설정 추가하기
                
Select a Language

  0. English

Please make a choice (0 - 0), or press h or ? for help: 0
What type of terminal are you using?
 1) ANSI Standard CRT
 2) DEC VT52
 3) DEC VT100
 4) Heathkit 19
 5) Lear Siegler ADM31
 6) PC Console
 7) Sun Command Tool
 8) Sun Workstation
 9) Televideo 910
 10) Televideo 925
 11) Wyse Model 50
 12) X Terminal Emulator (xterms)
 13) CDE Terminal Emulator (dtterm)
 14) Other
Type the number of your choice and press Return: 3
Creating new rsa public/private host key pair
Creating new dsa public/private host key pair
Configuring network interface addresses:.
? Host Name ????????????????????????????????????????????????????

  Enter the host name which identifies this system on the network.  The name
  must be unique within your domain; creating a duplicate host name will cause
  problems on the network after you install Solaris.

  A host name must have at least one character; it can contain letters,
  digits, and minus signs (-).

    Host name

System identification is completed.
rebooting system due to change(s) in /etc/default/init

[NOTICE: Zone rebooting]

System identification is completed.

rebooting system due to change(s) in /etc/default/init

[NOTICE: Zone rebooting]
SunOS Release 5.10 Version Generic_120011-14 64-bit
Copyright 1983-2007 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: testzone

testzone console login: Jan 13 15:57:10 testzone sendmail[25411]: 
My unqualified host name (localhost) unknown; sleeping for retry

이 시점에서 존에 들어갔는지 확인해야 한다(Listing 7 참조).


Listing 7. 존에 들어갔는지 확인하기
                
#hostname
Testzone

전역 환경 설정에서 존 정보를 찾아보자(Listing 8 참조).


Listing 8. 전역 환경에서 존 정보 찾기
                
root[ksh]@ezqspc18# zoneadm list -v
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   1 testzone         running    /zones/testzone                native   shared
root[ksh]@ezqspc18#

(-Z 플래그를 붙인) df 명령은 존을 포함하여 파일 시스템 출력 결과를 보여준다(Listing 9 참조).


Listing 9. -Z 플래그를 붙인 df 명령
                
root[ksh]@ezqspc18# df -kZ
Filesystem            kbytes    used   avail capacity  Mounted on
/dev/dsk/c0t0d0s0    60502476 11620301 48277151    20%    /
/devices                   0       0       0     0%    /devices
ctfs                       0       0       0     0%    /system/contract
proc                       0       0       0     0%    /proc
mnttab                     0       0       0     0%    /etc/mnttab
swap                 16904432    1376 16903056     1%    /etc/svc/volatile
objfs                      0       0       0     0%    /system/object
fd                         0       0       0     0%    /dev/fd
swap                 16903568     512 16903056     1%    /tmp
swap                 16903104      48 16903056     1%    /var/run
/platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1
        60502476 11620301 48277151    20%    /platform/sun4u-us3/lib/libc_psr.so.1
/platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1
     60502476 11620301 48277151    20%    /platform/sun4u-us3/lib/sparcv9/libc_psr.so.1
/zones/testzone/dev  60502476 11620301 48277151    20%    /zones/testzone/root/dev
/lib                 60502476 11620301 48277151    20%    /zones/testzone/root/lib
/platform            60502476 11620301 48277151    20%    /zones/testzone/root/platform
/sbin                60502476 11620301 48277151    20%    /zones/testzone/root/sbin
/usr                 60502476 11620301 48277151    20%    /zones/testzone/root/usr
proc                       0       0       0     0%    /zones/testzone/root/proc
ctfs                       0       0       0     0%  /zones/testzone/root/system/contract
mnttab                     0       0       0     0%    /zones/testzone/root/etc/mnttab
objfs                      0       0       0     0%    /zones/testzone/root/system/object
swap            16903248     192 16903056     1%    /zones/testzone/root/etc/svc/volatile
/zones/testzone/root/platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1
                     60502476 11620301 48277151    20% \
       /zones/testzone/root/platform/sun4u-us3/lib/libc_psr.so.1
/zones/testzone/root/platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1
                     60502476 11620301 48277151    20% \
       /zones/testzone/root/platform/sun4u-us3/lib/sparcv9/libc_psr.so.1
fd                         0       0       0     0%    /zones/testzone/root/dev/fd
swap                 16903056       0 16903056     0%    /zones/testzone/root/tmp
swap                 16903056       0 16903056     0%    /zones/testzone/root/var/run
root[ksh]@ezqspc18#

WPAR

WPAR은 (AIX 6.1에서만 지원하는) 단일 AIX 이미지 내부에 만들어진 가상화된 운영체제 환경이다. 각 파티션은 분리되고 안전한 환경을 제공하며, 각자 이미지 내부에서 프로세스를 실행한다. 비록 프로세스는 파티션되지 않은 완전한 물리 서버에서 생성될 수도 있지만 보통 LPAR 내부에 생성된다. 파티션을 수용하는 AIX 운영체제 일부는 전역 환경으로 부른다. 솔라리스와 비슷하게 WPAR이 운영하지 않는 (WPAR을 품고 있는 LPAR인) 전역 환경에서 응용 프로그램을 돌릴 수도 있다. 전역 환경은 LPAR의 모든 물리 자원(CPU, 램, 네트워크, 디스크 I/O)을 소유하며, 각 WPAR에 CPU와 메모리 자원을 할당한다. WPAR은 모두 WPAR 외부에서 동작하는 다른 프로세스와 완벽하게 독립적으로 움직이며(개별 실행 환경을 포함한다), 전용 네트워크 주소를 확보할 수도 있다. WPAR 종류는 두 가지로, 응용 프로그램 작업 부하 파티션과 시스템 작업 부하 파티션으로 나뉜다. 시스템 WPAR은 완벽한 AIX 버전에 가까우며, 드문드문하거나 꽉 찬 루트 존과 비슷하다. 각 WPAR마다 독립적이며 쓰기 가능한 파일 시스템이 있다. WPAR이 시작될 때, WPAR을 위한 init 프로세스를 실제로 생성하며, WPAR을 필요로 하는 (inetdcron과 같은) 다른 프로세스를 동작시킨다. 시스템 LPAR은 기본 옵션으로 읽기 전용 /usr과 /opt 파일 시스템을 공유한다. 이런 점에서 드문드문한 루트 및 꽉 찬 존과 비슷하다.

응용 프로그램 WPAR은 가상화된 운영체제 환경의 경량 버전으로, 전체 응용 프로그램이 아닌 프로세스를 수행하도록 조정되어 있다. 이런 파티션 유형은 전역 환경에서 파일 시스템을 공유하지만, 독립적인 저장소를 소유하지는 못한다. 응용 프로그램 데몬을 돌릴 수는 있지만, inetdcron과 같은 다른 데몬을 실행하지는 못한다. 이런 파티션 유형은 또한 특별한 환경에서 원격 접속을 허용하지 않는다. 응용 프로그램 WPAR은 임시 객체일 뿐이다. 응용 프로그램 WPAR은 프로세스가 시작할 때 만들어져 이 응용 프로그램 파티션 내부에서 마지막 프로세스가 끝날 때 소멸된다. 응용 프로그램 WPAR은 전역 환경 내부에 존재하는 모든 자원을 공유하며, 이런 방식으로 분리를 위한 동작 중인 프로세스를 감싸는 싸개로 취급할 수 있다.

AIX 관리자 입장에서 보면, WPAR의 장점은 새로운 AIX 파티션을 만들어 관리할 필요없이 새로운 환경을 생성하는 유연함이다. 한 걸음 더 나가 응용 프로그램을 통합하고 개발이나 테스트와 같은 작업 환경을 확장하도록 만들어 준다. 각 응용 프로그램은 분리된 LPAR을 생성하는 대신 WPAR 한 곳에서 실행할 수 있다. WPAR은 하드웨어에 의존성이 없으며, 심지어 (예전에 IBM 첨단 POWER 가상화라고 알려진) IBM PowerVM 에디션을 지원하지 않는 POWER4 시스템에서도 사용할 수 있다. 이론적으로, LPAR 하나에서 실행할 수 있는 WPAR 최대 숫자는 (솔라리스와 같은) 8192이지만, 실제로는 AIX의 다른 제약으로 인해 여기에 미치지 못한다. 리로케이티브 소프트웨어 패키지라는 신형 소프트웨어 설치 방법을 사용하면, 실제로 AIX 이미지 하나에 들어있는 동일한 응용 프로그램을 다중 버전으로 설치해 독립적인 WPAR에서 각 응용 프로그램 버전을 수행할 수도 있다.

LPAR을 업그레이드하고 패치할 때, 이런 작업이 LPAR에 정의된 각 WPAR에 어떤 영향을 미치는지 반드시 이해하고 있어야 한다. 따라서 실제 운영 시스템 외부에 다중 테스트 환경을 갖춰 놓는 정책이 더욱 중요해졌다. 또한 시스템 관리자는 파일 시스템을 더 많이 관리해야만 한다. WPAR은 적어도 네 가지 전용 파일 시스템(/, /home, /tmp, /var)을 갖춰야 하므로 전역 환경에서 더 많은 파일 시스템을 생성해야 하기 때문이다. (솔라리스 존과 비슷하게) 응용 프로그램 관점에서 보면, 대다수 응용 프로그램은 기계 외부에서도 동작해야 한다. 하지만 시스템 디바이스를 사용할 필요가 있는 응용 프로그램은 문제를 일으킬 가능성도 있다. 물리 디바이스는 WPAR 내부에서 지원하지 않는다. 디바이스를 외부로 공개하는 방법이 있긴 하지만 공개가 불가능한 디바이스를 요구하는 응용 프로그램은 전역 환경에서만 동작하도록 제약이 가해진다. WPAR은 또한 라이브 애플리케이션 모빌리티라는 AIX 6.1에서 제공하는 중요한 기능을 지원한다. 이 기능은 LAPR 하나에서 수행하는 WPAR용 응용 프로그램이 정지시간 없이 다른 LPAR로 임시로 이동할 수 있게 도와준다.

WPAR 생성과 관리

이 절에서는 IBM WPAR(시스템과 응용 프로그램)을 생성하고 설정하는 방법을 다룬다. 작업하는 환경은 LPAR로 파티션된 p570 시스템이며, 1654Mhz로 동작하는 POWER5 CPU 1개를 탑재하고 있다.

시스템 WPAR

먼저 mkwpar 명령을 내려 WPAR 생성부터 시작한 다음에 파일 시스템을 설치한다(Listing 10 참조).


Listing 10. mkwpar 명령 내리기
                
lpar13ml16fd_pub[/] > mkwpar -n tstsystemWPAR
mkwpar: Creating file systems...
 /
 /home
 /opt
 /proc
 /tmp
 /usr
 /var

이 과정이 끝나면, 필요한 파일 집합을 설치함으로써 설치 과정을 종료한다(Listing 11 참조).


Listing 11. 필요한 파일 집합 설치하기
                
bos.rte.serv_aid            6.1.0.1         ROOT        COMMIT      SUCCESS
vac.C                       9.0.0.2         ROOT        COMMIT      SUCCESS
Workload partition testsystemWPAR created successfully.
mkwpar: 0960-390 To start the workload partition, execute the following as root: 
startwpar [-v] testsystemWPAR
lpar13ml16fd_pub[/] >

이 과정은 3분 미만에 끝나며, 파일 집합 217개 설치를 포함한다.

WPAR 상태를 점검하자(Listing 12 참조).


Listing 12. WPAR 상태 점검하기
                
lpar13ml16fd_pub[/] > lswpar
Name            State  Type  Hostname        Directory
-------------------------------------------------------------------
MyTestWpar1     A      S     MyTestWpar1     /wpars/MyTestWpar1
MyTestWpar2     A      S     MyTestWpar2     /wpars/MyTestWpar2
testsystemWPAR  D      S     testsystemWPAR  /wpars/testsystemWPAR
lpar13ml16fd_pub[/] >

설치한 WPAR이 이제 정의된 상태가 되었다. 활성화하려면 startwpar 명령을 사용한다(Listing 13 참조).


Listing 13. startwpar 명령 사용하기
                
lpar13ml16fd_pub[/] > startwpar -v testsystemWPAR
Starting workload partition testsystemWPAR.
Mounting all workload partition file systems.
Mounting /wpars/testsystemWPAR
Mounting /wpars/testsystemWPAR/home
Mounting /wpars/testsystemWPAR/opt
Mounting /wpars/testsystemWPAR/proc
Mounting /wpars/testsystemWPAR/tmp
Mounting /wpars/testsystemWPAR/usr
Mounting /wpars/testsystemWPAR/var
Loading workload partition.
$corral_t = {
              'name' => 'testsystemWPAR',
              'wlm_cpu' => [
                             undef,
                             undef,
                             undef,
                             undef
                           ],
              'path' => '/wpars/testsystemWPAR',
              'hostname' => 'testsystemWPAR',
              'wlm_procVirtMem' => [
                                     -1,
                                     undef
                                   ],
              'wlm_mem' => [
                             undef,
                             undef,
                             undef,
                             undef
                           ],
              'key' => 4,
              'vips' => [],
              'wlm_rset' => undef,
              'opts' => 4,
              'id' => 0
            };
Exporting workload partition devices.
Starting workload partition subsystem cor_testsystemWPAR.
0513-059 The cor_testsystemWPAR Subsystem has been started. Subsystem PID is 237720.
Verifying workload partition startup.
Return Status = SUCCESS.
lpar13ml16fd_pub[/] >

플래그를 붙이지 않은 표준 df 명령으로 결과 정보를 출력할 수 있다(Listing 14 참조).


Listing 14. df 명령으로 결과 정보 출력하기
                
df -k 
/dev/fslv13        131072    128660    2%        5     1% /wpars/testsystemWPAR/home
/opt               262144    119808   55%     3048    11% /wpars/testsystemWPAR/opt
/proc                   -         -    -         -     -  /wpars/testsystemWPAR/proc
/dev/fslv14        131072    128424    3%        9     1% /wpars/testsystemWPAR/tmp
/usr              3538944    158348   96%    91414    69% /wpars/testsystemWPAR/usr
/dev/fslv15        131072    117088   11%      370     2% /wpars/testsystemWPAR/var

몇몇 AIX 명령어는 또한 WPAR 지원 강화를 위해 최적화되었다는 사실을 염두에 둬야 한다. 좋은 예는 vmstat다. 전역 환경에서 수행한 vmstat 예를 보면, 모든 동작 중인 WPAR 자료를 출력하고 있다(Listing 15 참조).


Listing 15. 모든 동작 중인 WPAR 자료 출력 결과
                
lpar13ml16fd_pub[/] > vmstat -@ ALL 1 5

System configuration: lcpu=2 mem=2048MB drives=0 ent=0.25 wpar=3

wpar  kthr    memory              page              faults              cpu
----- ----- ----------- ------------------------ ------------ --------------------------
       r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa    pc    rc
System  0  0 264810 112840   0   0   0   0    0   0 849  104 250  0 32 67  0  0.10  39.4
Global  0  0     -     -     0   0   0   0    0   0   -    - 249  1 99  -  -  0.08  32.8
MyTestWpar1  0  0     -      0   0   0   0    0   0   -    -   1 54 46  -  -  0.00   0.1
MyTestWpar2  0  0     -      0   0   0   0    0   0   -    -   0  0  0  -  -  0.00   0.0
testsystemWPAR  0  0     -   0   0   0   0    0   0   -    -   0  0  0  -  -  0.00   0.0
----------------------------------------------------------------------------------------

ifconfig, hostname, netstat, ps 역시 전역 환경과 WPAR 내부에서 동작하도록 최적화되었다. mpstat, sar 같은 다른 명령어는 제대로 동작하지 않을 것이다.

응용 프로그램 WPAR

기억을 되살려보면, 응용 프로그램 WPAR은 거의 겉싸개와 같이 WPAR 내부에서 프로세스나 응용 프로그램이 동작하도록 허용하는 WPAR로 정의한다. 응용 프로그램 WPAR은 일시적으로 만들어지며, 응용 프로그램이 끝나면 함께 끝난다. 응용 프로그램 WPAR을 만들려면, wparexec 명령을 사용한다. Listing 17은 응용 프로그램 WPAR이 만들어지고 동작하는 동안 수행한 lswpar(Listing 16 참조) 출력을 보여준다. 이 경우, WPAR 생성에 대략 6초 정도 걸리며, 명령 실행에 추가로 1초 정도 더 걸린다.


Listing 16. wparexec를 사용해 응용 프로그램 WPAR 생성하기
                
lpar13ml16fd_pub[/usr/bin] > wparexec /usr/bin/w applWPAR
Starting workload partition w.
Mounting all workload partition file systems.
Loading workload partition.
  01:18PM   up 2 days,   1:02,  2 users,  load average: 0.01, 0.09, 0.16
User     tty          login@       idle      JCPU      PCPU what
Shutting down all workload partition processes.

Listing 17lswpar 명령 결과를 보여준다.


Listing 17. lswpar 결과
                
lpar13ml16fd_pub[/] > lswpar
Name            State  Type  Hostname        Directory
-------------------------------------------------------------------
MyTestWpar1     A      S     MyTestWpar1     /wpars/MyTestWpar1
MyTestWpar2     A      S     MyTestWpar2     /wpars/MyTestWpar2
testsystemWPAR  A      S     testsystemWPAR  /wpars/testsystemWPAR
tstsystemWPAR   D      S     tstsystemWPAR   /wpars/tstsystemWPAR
w               T      A     w               /
            

프로세스 수행이 끝난 다음 1초가 지나기 전에 WPAR은 더 이상 존재하지 않는다(Listing 18 참조).


Listing 18. WPAR이 사라짐
                
lpar13ml16fd_pub[/] > lswpar
Name            State  Type  Hostname        Directory
-------------------------------------------------------------------
MyTestWpar1     A      S     MyTestWpar1     /wpars/MyTestWpar1
MyTestWpar2     A      S     MyTestWpar2     /wpars/MyTestWpar2
testsystemWPAR  A      S     testsystemWPAR  /wpars/testsystemWPAR
tstsystemWPAR   D      S     tstsystemWPAR   /wpars/tstsystemWPAR
lpar13ml16fd_pub[/] >

응용 프로그램 WPAR은 확실히 제약이 크긴 하지만, 목적이 분명하고 프로세스나 작은 응용 프로그램 테스트 과정에서 시스템 관리자에게 좀더 유연함을 제공한다.

요약 비교

이 절에서는 썬 존과 IBM WPAR 사이에 나타나는 주요 차이점을 설명한다. 운영체제 가상화 개념과 명령어를 비교하는 표도 살펴보기 바란다.

라이브 애플리케이션 모빌리티

AIX 6.1에 들어간 기능인 라이브 애플리케이션 모빌리티는 동작 중인 WPAR을 사용자 간섭 없이 이동하도록 만들어주는데, 존과 WPAR을 구분하는 가장 중요한 기능이다. 이 기능은 솔라리스에는 존재하지 않는다. 솔라리스에서 비슷한 기능을 수행하려면, 멈춰진 존을 분리했다가 결합해야 하므로, 솔라리스 관리자 입장에서는 여러 서버로 작업 부하를 분산하지 못한다. 이런 기능은 또한 다중 시스템 작업 부하 균등을 허용한다. 이렇게 하는 과정에서 관리자가 작업 부하를 좀더 여유있는 시스템으로 분산하게 만듦으로써 데이터 센터 유지 비용을 절약할 수 있다.

사용 편의성

존에서는 존 생성을 위해 여러 명령이 필요했으며, 부트 절차의 일부로 환경 설정 반복을 경험해야 했다. WPAR에서는 명령어 하나만 동작하면 간단하게 끝난다. 환경 설정 역시 훨씬 더 직관적이다.

속력

WPAR 시스템은 3분 내로 완료된다. 하지만 존 생성 과정은 거의 30분 정도 걸렸으며, 훨씬 더 많은 명령어 수행이 필요했다.

응용 프로그램 WPAR

솔라리스에는 존 형식이 두 가지가 있는데, 각각은 AIX에서 시스템 WPAR에 대응하고 있다. 솔라리스는 10초 미만으로 생성이 가능한 응용 프로그램 WPAR을 허용하지 않는다.

분리

존은 메모리와 프로세서 분리만 제공하는 반면에 WPAR은 프로세스와 페이징 분리를 포함한다.

작업 부하 파티션 관리자

작업 부하 파티션 관리자는 IBM Systems Director의 일부이며, 라이브 애플리케이션 모빌리티를 위한 권한을 추가했다. 작업 부하 파티션 관리자는 독립적으로 설치 가능한 프로그램이며, 썬이 제공하는 도구보다 훨씬 관리가 편리하다. 여러 기능 중에서도 WPAR을 위한 교차 시스템 관리 기능과 자동화된 정책 기반 응용 프로그램 이주 기능을 포함한다.

설상가상

파티셔닝과 가상화는 서로 보완하는 관계이므로, IBM은 오늘날 IBM PowerVM 에디션을 토대로 LPAR 기반 기술로 만든 더 나은 파티셔닝 제품군을 보유하고 있다. LPAR과 WPAR 조합은 더 나은 팀을 만들었으며, 컨테이너와 DSD 또는 컨테이너와 LDom보다 긴밀하게 통합되어 있다. LDom이 단지 (울트라스팍 T1이나 울트라스팍 T2 프로세서와 같은) 단일 칩에서 솔라리스 10을 구동하는 환경에서만 동작하며, System p 서버와는 달리 확장성이 떨어지고 다중 칩 SMP 역시 지원하지 않는다는 사실을 짚고 넘어가야겠다. 동적 시스템 도메인은 하드웨어 파티셔닝에 기반을 두며(DSD에 할당한 이동식 자원 조밀도는 시스템 보드에 따라 제약이 가해진다) 진짜 가상화 기능을 제공하지는 못한다.

성숙도

컨테이너 기반 기술은 WPAR보다 오래 되었으므로, 컨테이너가 좀더 성숙된 제품이며, 안정적이라고 말하는 편이 공평하다. 비록 인증이 정말로 필요하지는 않아도 대다수 응용 프로그램은 WPAR보다는 존에서 동작한다고 ISV가 "인증"했다. 비록 오라클 RAC는 어느 쪽 구현에서도 동작한다는 인증을 아직 받지 못했지만, 오라클은 양쪽 모두 인증을 받았다는 사실을 짚고 넘어가겠다.

표 1에서 솔라리스와 AIX 사이에 나타나는 운영체제 가상화 명령과 개념을 비교한다.


표 1. WPAR과 존 명령과 개념 비교
유형(설명)솔라리스(존)AIX(WPAR)
운영체제 이미지-마스터전역 존 전역 환경
생성 명령zonecfg & zoneadm (양쪽 명령에서 모두 필요)mkwpar (시스템) & wparexec (응용 프로그램)
유형드문드문한 루트 존, 꽉 찬 루트 존시스템 WPAR, 응용 프로그램 WPAR
정보 탐색하기zoneadm list -vlswpar
로그인zloginclogin
파일 시스템 정보df -kZdf -k

요약

이번 기사에서는 썬과 IBM이 제공하는 파티셔닝과 가상화를 설명했다. 존과 WPAR 구성 요소를 설명하고 생성하고 비교했다. AIX로 이전하는 솔라리스 관리자는 WPAR 생성 과정에서 단순함과 증가한 속력을 눈치챘을 것이다. (라이브 애플리케이션 모빌리티를 포함하여) 솔라리스와 존에 존재하지 않으나 AIX 6.1에서 추가된 최근 혁신은 방해없이 WPAR을 다른 LPAR에서 동작시키도록 허용한다. 또한 작업 부하 파티션 관리자를 통한 가능한 파티션 관리 기능이 강화되었음을 느낀다. 한 발자국 더 나가 응용 프로그램 WPAR이 응용 프로그램을 동작시키고 테스트하는 과정에서 도움을 주는 힌트는 이런 중요한 기능을 활용하는 데 있어 도움이 될 것이다. IBM이 만든 프론트엔드 인터페이스인 SMIT(System Management Interface Tool)를 사용해 여러 WPAR 명령을 내릴 수 있다. AIX로 이주했던 모든 솔라리스 관리자들은 이 도구를 정말 좋아하게 되었다.


참고자료

교육

제품 및 기술 얻기

토론

필자소개

Ken Milberg, PMP는 IBM Systems Magazine, Power Systems을 위한 기술 편집자이자 작가다. Milberg는 Unix-Linux Solutions 대표이자 컨설턴트를 관리하고 있다. Milberg는 매릴랜드 대학교 컴퓨터와 정보 과학 학사 과정에 이어 정보 관리 석사 과정을 마쳤다. Milberg는 뉴욕 시 파워-AIX/리눅스 사용자 그룹 발기인이자 그룹 리더다. 여러 해 동안 Milberg는 다양한 규모의 조직에서 일했고, CIO부터 선임 AIX 엔지니어에 이르기까지 다양한 직책을 맡았다. Milberg는 PMI 인증 프로젝트 관리 전문가이며, IBM 인증 첨단 기술 전문가(IBM System p5 2006년)이며, IBM Scon 인증을 획득했다. 연락이 가능한 전자편지 주소는 ken@unix-linux.org다.

잘못된 도움말 신고

부정사용 신고

감사합니다. 이 항목은 운영자가 관심을 표시했습니다.


잘못된 도움말 신고

부정사용 신고

제출실패 신고. 나중에 다시 실행해주세요.


디벨로퍼웍스 로그인


IBM ID가 필요하세요?
IBM ID를 잊으셨습니까?


비밀번호를 잊으셨습니까?
비밀번호 변경

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관.

 


developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

화면상에 보여지는 닉네임을 정하세요.

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

3개의 &이나 대쉬를 포함해주시고 31글자내로 제한해주세요.


developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관.

 


아티클 순위

의견

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=20
Zone=AIX와 UNIX
ArticleID=295545
ArticleTitle=솔라리스에서 AIX로 이주하기 (한글)
publish-date=03182008
author1-email=ken@unix-linux.org
author1-email-cc=mmccrary@us.ibm.com

태그

Help
검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오.

태그를 더 많이 보거나 적게 보기 위해 슬라이더 막대를 사용하십시오.

인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다.

내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.

검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오. 인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다. 내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.