수요일 9월 29, 2010

Installing Oracle Solaris 10 9/10 (Update 9)

새로 릴리즈된 Solaris 10 Update 9 버전을 버추얼박스 위에 설치해 보았습니다. 설치 과정 자체에서는 변화된 내용은 없고 Solaris 10 에서 Oracle Solaris 10으로 브랜드 변경에 따라 디자인이나 문구에만 약간의 변화가 있습니다.

또한 설치 시 My Oracle Support에 직접 등록할 수 있도록 계정을 입력할 수 있는 기능이 추가가 되어 있습니다. (자동 등록 관련 내용은 설치 가이드 참조 : http://docs.sun.com/app/docs/doc/821-2319/autoreg?l=en&n=1&a=view)

아래 설치한 과정이 있으며 클릭하시면 크게 보실 수 있습니다.


목요일 3월 25, 2010

New Solaris 10 Book

오랫만의 솔라리스10 한국어 서적인 '유닉스 관리자를 위한 엔터프라이즈 솔라리스 핵심 운영 가이드'가 출간되었습니다.

썬 교육 과정으로 보면 System Administration I에 해당하는 핵심적인 내용으로  예약  판매 기간 동안 구매하여 오늘  배송이 와서 일독하고 있는 중입니다.

저자 김석님(http://solatech.tistory.com/)은 솔라리스 테크넷, 한국 솔라리스 사용자 그룹 등 각종 솔라리스 커뮤니티를 이끌고 계시면서 강의 활동을 하시는 분이신데, 좋은 솔라리스 도서를 출판하신 것에 대해 독자로서 솔라리스를 사랑하는 사람으로서 큰 감사의 마음을 느낍니다.

도서 구매는 아래 사이트에서 하실 수 있습니다.

http://www.yes24.com/24/goods/3735740

월요일 11월 23, 2009

What's New in Solaris 10 Update 8 (10/09)

2009 년 10월자로 솔라리스 10의 업데이트 8 버전인 Solaris 10 10/09가 릴리즈 되었습니다. 현재 sun.com 사이트를 통하여 다운로드 가능하며 최근의 다른 업데이트들처럼 ZFS와 Container 를 중심으로 많은 기능들이 추가되었습니다. 또한 10G 이더넷 및 Infiniband와 같은 새로운 네트워크 장치에 대한 추가적인 지원들을 포함하고 있습니다. 차세대 네트워크 인터페이스를 사용하시거나 컨테이너를 사용하시는 분들은 이번 업데이트로 업그레이드하시거나 새로 설치하시는 것을 추천 드립니다. 아래 이번 업데이트의 주요 기능들을 정리해 보겠습니다.

주요 링크 :

Solaris 10 10/09 What's New 문서를 통해서 본 이번 업데이트의 상세한 내용입니다.


시스템 관리 기능 향상

  • 설치 및 부팅 디바이스로 2테라바이트 디스크 지원

기존의 릴리즈에서는 1TB 이상 크기의 디스크를 OS 디스크로 사용할 수 없었지만, Solaris 10 10/09 릴리즈부터 2TB이상 크기의 디스크를 설치 및 부트 디스크로 사용할 수 있습니다. 최근 SATA 디스크의 경우 최대 2TB에 달하는 대용량의 디스크들이 나오고 있는데, 기존에는 이들 디스크들을 데이터 디스크로만 사용할 수 있고 OS 디스크로는 사용할 수 없었습니다. 하지만 이번 릴리즈부터는 2TB 디스크들도 OS 디스크로 사용할 수 있게 되었습니다. 이는 이번 릴리즈부터 모든 용량의 디스크에 대하여 VTOC(Volume Table of Contents) label을 사용할 수 있도록 지원하게 되었기 때문인데요. 하지만 VTOC의 Addressable space가 2TB로 제한이 되어있기 때문에 2TB 이상 용량 이상의 디스크를 사용하여도 실제 가용 크기는 2TB로 제한이 됩니다.

  • pcitool 유틸리티

pcitool 툴은 시스템 관리자가 성능향상을 위하여 인터럽트를 특정 하드웨어 스트랜드에 바인드할 수 있습니다. 이 툴은 SUNWio-tools 패키지 내에 포함되어 있으며, 자세한 내용은 man 페이지를 통하여 확인할 수 있습니다.

ZFS 관련 기능 향상

  • Flash 인스톨의 ZFS 지원
Solaris 10 Update 6 이후 솔라리스 설치시 루트 파일시스템으로 ZFS를 선택하는 것을 지원하여 왔습니다. 하지만 네트워크를 통한 Jumpstart 설치는 지원하지 않고 있었는데요. 이번 Update 8부터는 ZFS root pool의 플래쉬 아카이브(Flash Archive)를 Jumpstart 프로파일(Profile)에서 인식할 수 있도록 지원함으로서 Jumpstart로부터 설치 시에도 ZFS 루트 파일 시스템으로 설치할 수 있습니다. Jumpstart 지원은 ZFS 파일시스템을 루트파일시스템으로 사용하는 사용자들의 큰 요구사항 가운데 하나였었는데, 이제는 솔라리스의 거의 모든 기능들이 ZFS 루트파일시스템을 지원하게 된 것 같습니다.
  • 사용자 및 그룹 쿼터 지원
기존에는 데이터셋에서 구성한 파일시스템 및 볼륨 단위로 용량을 제한(Quota)하고 사전할당(Reservation)할 수 있었는데,이번 릴리즈부터는 데이터셋에 대하여 사용자 및 그룹 단위로 용량 제한 및 사전할당을 지원합니다. 솔라리스의 자원관리(SRM, Solaris Resource Management) 기능을 통하지 않고도 아래처럼 간단하게 ZFS의 속성만을 부여함으로서 사용자 및 그룹 별 용량을 쉽게 제어할 수 있습니다.

# zfs set userquota@user1=5G tank/data
# zfs set groupquota@staff=10G tank/staff/admins


사용자, 그룹 별 용량 설정 정보를 조회하기 위해서는 아래와 같이 조회할 수 있습니다. 

# zfs get userquota@user1 tank/data
     NAME         PROPERTY VALUE SOURCE
tank/data  userquota@user1    5G  local

# zfs get groupquota@staff tank/staff/admins
             NAME         PROPERTY VALUE SOURCE
tank/staff/admins groupquota@staff   10G  local


  • 실행 권한에 대한 ZFS ACL의 선택적 상속 지원
ZFS에서는 데이터셋 내에서 디렉토리 및 파일이 생성될 때 ACL(Access Control List)의 상속에 대한 여부를 결정하기 위하여 discard | noallow | restricted | passthrough 네가지 옵션을 제공하고 있었습니다. 이 가운데 paththgough 옵션이 설정되어 있으면 생성되는 파일들이 dataset으로부터 모든 권한설정을 상속 받도록 되어 있었는데, 이번 릴리즈로부터는 실행비트에 대해서만 권한을 따로 상속받을 수 있도록 passthrough-x 옵션이 추가되었습니다. 데이터셋에 대하여 aclinherit=passthrough-x로 설정되어 있으면 하부 디렉토리에 새로 실행 파일이 생성될 때 실행권한만을 데이터셋으로부터 상속을 받으며 상속한 ACL에 실행권한이 없으면 chmod 등을 통해 따로 실행 권한을 부여하기 전까지는 실행할 수 없습니다.

  • ZFS 스토리지 풀 내 캐시 디바이스 지원
최근 스토리지 관련 기술 가운데 가장 핫이슈인 기술은 아마도 SSD(Solid State Drive)일 것입니다. 개인적으로 PC의 OS용 디스크로 SSD를 사용하고 있습니다만, 체감 속도로 볼 때 마치 신세계가 열리는 듯한 느낌일 정도로 뛰어난 성능을 보입니다. 이번 릴리즈부터는 ZFS 스토리지 풀 내에 cache 디바이스를 지정할 수 있는 기능을 제공하는데, cache 디바이스로 SSD를 사용하는 경우 '저비용으로' 스토리지 성능을 획기적으로 향상시킬 수 있습니다.

Cache 디바이스는 시스템 내에서 메인메모리와 하드디스크 사이에 존재하면서 메인메모리에 존재하는 데이터 캐시에 대해서 추가적인 캐시영역을 제공해 주는 것과 같은 역할을 합니다. 데이터 캐시는 속도가 느린 하드디스크로부터 시스템에서 자주 사용하는 데이터를 메모리 내에 저장함으로서 빠르게 억세스할 수 있도록 함으로서 데이터 I/O에 대한 성능을 향상시키는 역할을 하는데요. 메인메모리와 하드디스크 사이에 DRAM 메모리를 사용하는 경우에 비해 가격은 비교적 저렴하면서 더욱 큰 용량을 제공하는 SSD를 Level 2 캐시(L2ARC, L2 Adaptive Replacement Cache) 형태로 제공함으로서 캐시 영역을 크게 확장하는 것입니다. 이를 통해서 읽기 속도를 크게 향상시킬 수 있으며 하드디스크와 플래시 메모리의 읽기 특성의 차이로 인하여 Random Read에 있어서 더욱 크게 성능을 향상할 수 있습니다.

ZFS는 이미 ZIL(ZFS Intent Log) 기능을 제공하여 ZFS 스토리지 풀에 대해 쓰기 속도를 크게 향상시킬 수 있는 방안을 제공하고 있었는데요.  Write Cache로서 ZIL, Read Cache로서 L2ARC를 지원함으로써 '저렴한 비용'으로 뛰어난 성능의 대용량 스토리지 풀을 구성할 수 있도록 합니다. 

SSD 하면 뛰어난 성능을 제공하지만 가격이 비싼 것이 큰 단점인데 어떻게 '저렴한 비용'으로 성능과 용량을 제공할 수 있을까요? 그 방법을 제공하는 것이 바로 ZFS에서 제공하는 Hybrid Storage Pool입니다. 아래 실제 시스템에서 동일한 비용으로 'SAS 디스크만을 구성한 경우' vs. 'SSD와 SATA의 Hybrid Storage Pool을 구성한 경우' 두 경우를 비교해 보도록 하겠습니다.


- 'SAS 디스크' vs. 'SSD와 HDD의 Hybrid Storage Pool 조합'-


- Hybrid Storage Pool의 뛰어난 성능과 용량  -

Hybrid Storage Pool 을 구성한 쪽이 비용은 약 4% 밖에 더 들지 않았으면서 Read 성능은 거의 3배 이상, Write 성능은 10% 이상의 뛰어난 성능을 제공하면서 용량은 2배, 전력은 20% 밖에 소모하지 않는 것을 확인할 수 있습니다. 이는 ZFS에서 Hybrid Storage Pool을 구성하여 Read Cache 및 Write Cache로 SSD를 사용하여  뛰어난 성능을 제공하도록 하고, 저렴한 비용의 SATA  디스크를 사용하여 대용량을 제공할 수 있도록 하였기 때문입니다.

최근 서버 및 스토리지에 SSD 장착을 지원함에 따라 많은 분들이 SSD의 사용을 고려하고 있습니다만, 고가의 비용과 하드디스크에 비해 작은 용량 때문에 딜레마에 빠지는 경우가 많습니다. 이경우 ZFS의 Hybrid Storage Pool을 이용하여 부분적인 SSD 채택만으로도 전체 디스크 스토리지 풀에 대해서 SSD의 뛰어난 성능을 얻으면서도 스토리지 용량을 구성할 수 있어 아주 큰 장점이 있다고 할 수 있겠습니다.

OpenSolaris에서는 이미 ZFS log 디바이스 및 cache 디바이스 속성을 지원하고 있었는데 Solaris 10 또한 이번 릴리즈부터 cache 디바이스를 기능을 제공하며 사용은 다음과 같습니다.

# zpool create pool mirror c0t2d0 c0t4d0 cache c0t0d0
# zpool status pool
pool: pool
state: ONLINE
System Administration Enhancements
10 Solaris 10 10/09What's New • October 2009
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
pool ONLINE 0 0 0
mirror ONLINE 0 0 0
c0t2d0 ONLINE 0 0 0
c0t4d0 ONLINE 0 0 0
cache
c0t0d0 ONLINE 0 0 0
errors: No known data errors


  • zpool 속성 향상
  • zpool 생성시 zfs 속성 지정
zpool 생성시 옵션을 통해서 ZFS filesystem 속성을 지정하는 것이 가능해졌습니다. 예를 들어 아래는 풀 생성시 압축 속성을 on으로 지정하는 것입니다.

# zpool create -O compression=on pool mirror c0t1d0 c0t2d0


기존에는 zpool 커맨드 실행 후 zfs 커맨드를 추가로 실행하여야 하는 것을 명령어 한 번으로 실행할 수 있도록 하는 것입니다.

# zpool create pool mirror c0t1d0 c0t2d0
# zfs set compression=on pool


  • 캐시 데이터 컨트롤 기능
primary cache(ARC)와 secondary cache(ARC2)에 대하여 캐시되는 내용을 지정할 수 있습니다.

# zfs set primarycache=metadata tank/datab
# zfs create -o primarycache=metadata tank/newdatab


  • 데이터셋 용량  옵션
데이터셋의 용량에 대하여 다음과 같은 옵션을 제공하여 실제 용량이 어떻게 쓰였는지 상세한 정보를 제공합니다.

  • usedbychildren - child에 의하여 사용된 용량을 표시합니다.
  • usedbydataset - dataset 자체만에 의하여 사용된 용량을 포함합니다.
  • usedbyrefreservation - refreservation의 용량을 포함합니다. reservation은 최대값만을 지정하는 quota와 달리 미리 지정된 용량을 할당하는데 refreservation은 snapshot, clone 등을 제외한 dataset 자체만의 용량을 미리 할당한 크기를 이야기합니다.
  • usedbysnapshots - 스냅샷에 의해 사용된 용량들을 포함합니다. 단,이 용량이 해당 데이터셋에 달린 모든 snapshot들의 크기의 총합은 아닌데, 스냅샷은 copy-on-write에 따라 데이터의 비변동 부분은 데이터블록을 공유하기 때문입니다.

위 옵션 지원에 따라 zfs list 등에서 조회되는 used (사용)량 옵션은 used = usedbychildren + usedbydataset + usedbyrefreservation + usedbysnapshots 로 나뉘게 됩니다.

위 옵션들은 다음과 같이 조회해 볼 수 있습니다.

# zfs list -o space
NAME              AVAIL   USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD
pool              33.2G    72K        0    21K             0       51K
rpool             27.0G  6.27G    20.5K    97K             0     6.27G
rpool/ROOT        27.0G  4.73G        0    21K             0     4.73G
rpool/ROOT/zfsBE  27.0G  4.73G    97.5M  4.63G             0         0
rpool/dump        27.0G  1.00G      16K  1.00G             0         0
rpool/export      27.0G    60K      16K    23K             0       21K
rpool/export/home 27.0G    21K        0    21K             0         0
rpool/swap        27.5G   553M        0  41.5M          512M         0

  • zfs list 디스플레이 변경

이번 릴리즈 버전부터는 #zfs list 커맨드 실행시 스냅샷은 기본으로 보이지 않습니다. #zfs list -t snapshot 커맨드를 통해 타입을 지정하여야 스냅샷들을 조회할 수 있습니다. 데이터셋 리스트를 조회할 때 스냅샷이 기본으로 디스플레이되면 한번에 보이는 리스트가 너무 많기 때문에 기본으로 보이지 않도록 한 것 같습니다. 리스트의 타입은 filesystem | snapshot | volume 등으로 '|'기호를 통해서 연결하여 조회할 수 있습니다.

개인적으로 OpenSolaris에서 이미지 업데이트 이후 ZFS 리스트 조회시 snapshot이 보이지 않도록 변경이 된 것을 보고 당황한 적이 있었는데 이번 업데이트로 인하여 많은 분들이 스냅샷 조회 시 당황하실 수 있을 것 같습니다. :D

  • ZFS log 디바이스 복구

ZIL 디바이스가 failure 시 FMA를 통해서 보고될 뿐 아니라 zpool status 커맨드를 통해서 Intent Log Failure를 파악할 수 있습니다. ZFS와 FMA 모두 Failure에 대한 복구방안을 제시합니다. Log Device에 대한 복구, 교체 등은 ZFS Aministration Guide의 Chapter 11. ZFS Troubleshooting and Data Recovery를 참고하시면 됩니다.

  • ZFS ACL Sets 사용

이번 릴리즈부터 NFSv4 스타일의 ACL 세트 사용을 지원합니다. ACL들을 각각 나열해서 지원하지 않고 세트를 한 번에 지정할 수 있습니다.

  • full_set = all permissions
  • modify_set = all permissions except write_acl and write_owner
  • read_set = read_data, read_attributes, read_xattr, and read_acl
  • write_set = write_data, append_data, write_attributes, and write_xattr

설치 기능 향상

  • Turbo-Charging SVR4 Packaging
Solaris 10 10/09 버전부터, SVR4 패키지 설치가 현저하게 빨라졌습니다. 이는 곧 OS설치, 업그레이드, 라이브 업그레이드, 존 설치 등의 속도가 매우 빨라진 것을 의미합니다. 제가 설치해본 바로는 OS 설치 시간이 20~50% 이상 (1/3~1/2 시간) 빨라진 것 같습니다.


자원관리 향상
  • Zones Parallel Patching
Solaris Container 기술은 업계에서 독보적인 운영체제 가상화 기술로 커널의 공유를 통하여 최소의 자원 사용만으로 가상머신이 제공해 주는 그 것과 같은 독립적인 어플리케이션 실행 공간을 제공해준다는 점에서 매우 훌륭한 기능입니다. Update 4의 IP Instance 및 ZULU(Zone Upgrade Live Upgrade), Update 6의 Update-on-Attach, Update 7의 ZFS-Container 결합 등 지속적인 컨테이너 기능 향상에 이어 이번 Update 8부터는 Zones Parallel Patching 기능을 제공합니다. 기존에 여러 개의 로컬 존(local zone)을 가지고 있는 글로벌 존(global zone)을 업데이트하게 되면 동일한 내용의 패치를 적용하기 위해 글로벌 존을 패치한 뒤 로컬 존들을 차례대로 패치를 하게 되서 상당한 시간이 소요되었습니다만, Parallel Patching을 통해서 글로벌 존 패치 시간 + α 의 시간만으로 신속하게 패치를 적용할 수 있습니다. 특히 이번 릴리즈에는 Turbo-Charging SVR4 Packaging 기술이 적용되어 로컬 존을 가진 시스템의 패치가 더욱 빨라지게 되었습니다.

  • PVIO Drives in Solaris 10 Guest Domains
이번 릴리즈부터는 xVM hypervisor를 위한 Solaris 10 게스트 운영체제용 PV(Para Virtualization) 드라이버가 포함되어 있습니다. (Update 7 버전을 위해서는 패치가 제공됩니다.) xVM hypervisor는 OpenSolaris에 IPS 패키지 형태로 설치 가능한 Xen 기반의 가상화 하이퍼바이저입니다. xVM hypervisor는 가상화 I/O의 성능향상을 위한 반가상화(PV, Para Virtualization) 기능을 제공하는데 네트워크 및 디스크 I/O에 대하여 하이퍼바이저가 가상 디바이스를 일일히 에뮬레이션 하지 않고 hypervisor에서 제공하는 채널을 통하여 Back-end Device Driver(호스트 측)와 Front-end Device Driver(게스트 측)가 통신하도록 함으로서 I/O의 에뮬레이션에 대한 오버헤드를 없앨 수 있도록 하는 것입니다. 이번 릴리즈에서는 Solaris 10을 위한 PV 드라이버를 기본으로 내장하고 있습니다.


장치 관리 기능 향상

  • iSCSI Initiator SMF Service
svc:/network/iscsi/initiator:default 라는 SMF 서비스가 새로 추가되어 iSCSI 디바이스의 사용을 제어합니다. 또한 이 서비스는 시스템 부팅시에 iSCSI 디바이스의 탐색과 열거(enumeration)를 제어합니다.
  • LSI 6180 Controller Support in Solaris MPxIO

LSI 6180 Controller를 사용하는 스토리지 디바이스에 대하여 MPxIO를 지원합니다.


시스템 성능 향상

  • Callout SubsystemScalability
  • 성능 및 확장성 향상
Mutex 경쟁을 최소화 하기 위한 CPU별 데이터 스트럭쳐
확장성 향상을 위한 CPU별 callout 처리
polling 오버헤드를 피하기 위한 이벤트 기반의 구현
  • 고해상도 타이머 지원
고해상도 타이머 사용을 통한 다수 API들의 지연(latency) 감소
poll(), nanosleep() 등 콜 지원
  • 시스템 관측성 향상
Comprehensive set of options for the MDB dcmd callout
NewMDB dcmd calloutid
New callout kstats

드라이버 향상

  • 10Gigabit Ethernet 성능 향상
  • nxge 10GbE 드라이버 향상
TCP receive 쓰루풋 성능이 40%(8 커넥션)에서 90%(32, 100, 400, 1000 커넥션) 이상 향상
TCP transmit 쓰루풋 성능이 80%(8 커넥션)에서 100%(다수 커넥션) 이상 향상
UDP transmit 쓰루풋 성능이 80%(64바이트 메시지)에서 160%(8K바이트 메시지) 이상 향상
  • x86시스템의 ixgbe 드라이버 향상
TCP transmit 쓰루풋 성능이 거의 100%(8 커넥션 이상) 이상 향상
TCP receive rate 성능이 10Gb line rate에 상당
UDP transmit 최대 쓰루풋 성능이 10Gb line rate 2배에 상당
Pingpong data rate가 메시지 크기가 64바이트에서 512바이트로 변화함에 다라 2배에서 3배 향상

위에서 보이는 드라이버 성능 향상으로 인하여 Solaris의 10Gb 이더넷은 10G 네트워크 회선 자체가 낼 수 있는 최적의 성능을 발휘하고 있습니다.

  • InfiniBand Feature Improvements
  • InfiniBandHost Channel Adapter (HCA) – Mellanox ConnectXHCA에 대한 인피니밴드 드라이버가 현저히 향상되었습니다. 인피티밴드가 DDR(Double Data Rate) 및 QDR(Quad Data Rate) 모두에서 동작하고 또한 솔라리스 FMA 프레임워크에 통합되었습니다.
  • InfiniBand Transport Framework (IBTF) – 솔라리스 내의 RDMA기반 인피니밴드 프로토콜 지원을 위하여 IBTF 구현이 향상되었습니다.
  • Internet Protocol over InfiniBand (IPoIB) – IPoIB 드라이버(ibd)가 향상되었습니다. 이번 릴리즈의 ibd는 UserDatagram(UD) 동작 모드 및 IPv4 and IPv6 Addressing 등을 지원하며 ConnectXHCA를 이용한 하드웨어 Offloading 기능을 지원하여 CPU의 부하를 절감할 수 있습니다. IPoIB-UD 기능은 DDR 및 QDR 모두에서 SSH, HTTP, FTP, NFS 및 iSCSI 등의 TCP/IP 프로토콜을 사용할 수 있도록 합니다. 이번 릴리즈의 ibd는 기존의 드라이버에 비해서 현저한 성능 향상이 있었습니다.
  • Sockets Direct Protocol (SDP) – SDP 드라이버 및 sockfs 구현의 성능 향상이 있었습니다. SDP는 TCP와 유사한 신뢰성 있는 바이트스트림 및 플로우컨트롤된 쌍방향 데이터 전송 기능을 제공하는 IBTF 상의 전송 프로토콜입니다. 인피니밴드 개발자는 libsdp C 라이브러리를 이용하여 SDP를 사용하게 되는데 SDP는 supports graceful close, IPv4 and IPv6 addressing, the connecting/accepting connect model, out-of-band (OOB) data 및 일반적인 소켓 옵션들을 제공합니다.
  • Reliable Datagram Sockets (RDS) – 이번 릴리즈는 Oracle RAC 10gR2에 인증된(Certified)향상된 RDSv1 드라이버를 지원합니다.

이번 포스트에서는 조금 늦었지만 Solaris 10 Update 8 10/09 버전의 새로운 기능들을 간략히 살펴보았습니다. 대개 위의 설명만으로도 충분히 파악할 수 있는 직관적인 기능들입니다만, ZFS라던지 Container 등에 있어서 그 동안에 사용자들이 꼭 필요로 하는 내용들을 충실하게 반영한 업데이트라 판단됩니다. 많은 사용자 분들이 시스템 및 이번 업데이트 버전을 점검하여 업그레이드를 적용하시면 좋겠습니다.


목요일 6월 11, 2009

Installing OpenSolaris 2009.06 - 2nd

지난 포스팅에서는 기존 버전의 OpenSolaris로부터 OpenSolaris 2009.06로 라이브 업그레이드하는 방법을 알아보았는데요. 이번에는 가장 기본적인 LiveCD 이미지로부터 설치하는 과정을 소개 드리겠습니다. 최소 시스템 사양은 메모리 512GB 이상, 디스크 최소 3.2GB이상, 9GB이상 권장이며 설치 과정은 '이보다 더 쉬울 수 없다' 수준입니다.

우선 라이브 시디 이미지는 www.opensolaris.com/get 사이트를 통하여 무료로 다운로드 받으실 수 있고, 각종 미러 사이트들을 통해서도 배포되고 있습니다. iso 파일로 만들어진 이미지를 다운로드 받아서 CD로 굽거나 하여 부팅하시면 되고, 가상화된 환경에서 이미지를 마운트하여 사용하여도 됩니다. 참고로 저는 제 랩탑의 오픈솔라리스는 이미지업데이트를 통하여 라이브 업그레이드를 하였고, 이번에는 이미지 캡쳐를 위해서 VirtualBox 위에서 새로 설치하였습니다.

라이브 시디 부팅을 하게 되면 위와 같은 설치 메뉴가 나타나게 됩니다. 위부터 순서대로 기본 라이브시디 부팅, VESA 드라이버 모드로 부팅, 텍스트 콘솔 부팅을 하고 시디롬이 아닌 디스크로부터 부팅할 수도 있습니다. 또한 라이브시디 환경에 ssh 로 접속할 수 있는 부팅 모드가 지원됩니다. 재미있는 메뉴는 magnifier와 screen reader인데요. 각각 데스크탑 화면에 대한 돋보기 기능과 보이스 기능을 지원하여 시력이 약한 사용자(???)라도 OpenSolaris를 설치할 수 있도록 합니다. @.@


이번 2009.06 버전부터는 언어지원이 더욱 많아져서 Korean이 21번 메뉴에 있습니다.


키보드 레이아웃을 선택합니다.


짜잔~ 라이브 시디로 부팅한 기본 데스크탑 화면입니다. 바탕화면의 월 페이퍼 이미지가 구름과 같은 이미지로 바뀌었네요. 왠지 며칠 전에 봤던 '천사와 악마' 영화의 이미지가 연상됩니다. 바탕화면 아이콘은 예전과 마찬가지로 시디롬 내용보기, 장치드라이브 유틸리티, 시작가이드, 설치 버튼이 보입니다.


우선 장치 드라이버 유틸리티를 실행하면 위와 같이 내 시스템의 모든 디바이스의 드라이버 지원 여부를 검사해주고 패키지 저장소로부터 다운로드 가능한 드라이버는 바로 설치할 수도 있습니다. 저는 가상 시스템이기 때문에 오디오 컨트롤러의 드라이버가 지원되지 않는다고 나오네요. 제 랩탑에서는 네트워크 드라이버가 지원되지 않아 제조사 웹사이트에서 다운로드 받아서 설치해야 했습니다. 한편 위 창에서 '제출' 버튼을 누르면 내 시스템이 자동으로 썬의 '하드웨어 호환성 목록'에 등록되게 됩니다.


이제 설치를 진행합니다.


설치할 디스크를 선택하는 화면입니다. 디스크를 선택하고 디스크의 파티션을 지정하거나 디스크 전체 사용을 지정하면 그 곳에 설치를 진행하게 됩니다. 그런데 기존에 솔라리스를 설치해보신 분들은 눈치채시겠지만 절차가 굉장히 간단해졌지요? 네 바로 슬라이스를 나누는 과정이 없습니다. 기존 솔라리스 10 이전 인스톨러에서는 선택한 솔라리스 파티션에 다시 슬라이스를 나누고 swap 공간 및 export 등 주요 시스템 디렉토리의 크기 등을 지정하느라고 복잡한 산수계산도 해야되고 번거로운 과정이 있었었는데요. OpenSolaris에서는 이 과정이 없어졌습니다.

OpenSolaris의 가장 큰 특징 가운데 하나가 ZFS 파일 시스템을 사용한다는 것인데요. ZFS 파일 시스템에서는 스토리지 볼륨을 가상화된 스토리지 풀로서 관리하고 이를 데이터셋으로 나누어 관리를 하기 때문에 굳이 기존 슬라이스를 분할할 필요가 없어진 것입니다. 덕분에 설치가 한결 간편해 졌고 또한 잘못된 슬라이스 구성으로 인해서 더 이상 프로그램을 설치하지 못한다거나 사용자 용량을 추가한다거나 하는 일을 못하게 되는 문제도 발생하지 않게 되었습니다.

그러면 swap 공간은 어떻게 지정하는가? 설치 프로그램이 사용자가 선택한 솔라리스 파티션을 스토리지 풀로 생성하면서 아래와 같이 자동으로 rpool/dump, rpool/swap 데이터셋을 생성하게 됩니다.

snoopy@opensolaris-snoopy:~$ zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
rpool                     45.9G   106G  75.5K  /rpool
rpool/ROOT                3.85G   106G    18K  legacy
rpool/ROOT/opensolaris    84.2M   106G  3.32G  /
rpool/dump                1019M   106G  1019M  -
rpool/export              40.0G   106G    21K  /export
rpool/export/home         40.0G   106G    19K  /export/home
rpool/export/home/snoopy  40.0G   106G  40.0G  /export/home/snoopy
rpool/swap                1019M   106G   556M  -

크기는 swap, dump 디바이스 모두 최소 64MB ~ 최대 2GB 한도 내에서 물리적 메모리의 50%를 자동으로 생성하며, 설치 뒤  zfs 데이터셋의 볼륨 크기를 조절함으로서 swap 및 dump 디바이스의 크기를 조절할 수도 있습니다.


15

사용자 지역을 선택합니다. 지도에서 점만 선택하면 되는데, 주의하지 않으면 평양을 찍을 수도 있습니다. 요즘 같은 공안 정국에는 불려갈 수 있으니 주의 하여야 합니다. -_-


언어를 선택하구요.


사용자 계정을 추가하면 바로 설치가 들어가게 되는데요.

눈여겨 볼만한 것이 여기서 루트는 Role, 사용자 계정은 User 입니다. Role은 사용자 홈 디렉토리를 가지지 않고 콘솔 로그인을 할 수 없는 역할 유저이기 때문에 여기서 일반 사용자 계정을 만들고 설치 뒤 루트 사용자로 로그인하게 되면 로그인이 되지 않습니다. 일반 사용자로 로그인 한 뒤 su 커맨드로 root 사용자가 되거나 또는 pfexec 하여 "Primary Administrator" 사용자 프로파일을 통하여 명령어를 실행하여야 합니다.

단 여기서 아무 것도 입력하지 않고, 일반 사용자 계정을 만들지 않으면 root 가 일반 사용자가 되어 로그인할 수 있게 됩니다. 참고로 라이브 시디로 부팅한 환경에서는 사용자 계정/비밀번호는 root / opensolaris 및 jack / jack 이 기본으로 만들어져 있습니다.


모두 입력합니다.


이제 설치 버튼만 누르면 설치를 시작합니다.


위와 같이 다양한 이미지들이 나오면서 설치를 진행하게 됩니다. 설치는 시스템 마다 다르겠지만 15분 전후에 설치할 수 있습니다.

설치를 완료하고 재부팅을 합니다.


디스크에서 부팅하면 새로운 GRUB 메뉴를 확인할 수 있습니다.


'일반 사용자 계정'으로 로그인을 하시구요.


여기까지가 설치 완료입니다. 참 쉽죠~?

일반 랩탑이나 시스템에 설치한 경우는 여기까지가 설치완료이지만, 저처럼 버추얼박스 위에 설치한 경우에는 이후 추가 작업이 필요합니다. 바로 게스트 확장의 설치입니다.


버추얼박스 메뉴에서 장치-> 게스트 확장을 선택하면 CDROM 이미지를 가상시스템에 마운트하여 주게 됩니다. 게스트 확장은 반드시 설치하셔야 게스트-호스트 운영체제를 마우스가 seamless하게 이동할 수 있고, 다양한 해상도로 게스트 운영체제의 창 크기를 조절할 수 있는 등 편리하게 사용할 수 있습니다.


게스트 확장 설치를 누르면 자동으로 설치 프로그램이 실행되고 이를 실행시키면 아래와 같이 설치를 진행하게 됩니다.


게스트 확장까지 설치하고 이제 게스트를 재부팅하면 끝입니다. :)

다음에는 Automated Installer를 이용한 설치 방법에 대해서 포스팅해 보도록 하겠습니다.

화요일 6월 09, 2009

Installing OpenSolaris 2009.06

이번에는 OpenSolaris 2009.06을 설치해 보겠습니다.

OpenSolaris 2009.06을 설치하는 경우는 크게 세 가지 정도가 있겠는데요. 기존 오픈 솔라리스로부터 업데이트 하는 방법, LiveCD 이미지로 설치하는 방법 및 Automated Installer 이미지를 통해 설치하는 방법이 있겠습니다.

먼저 기존의 OpenSolaris를 업데이트해 보도록 하겠습니다. 업데이트는 단순히 현재 설치된 패키지들을 보다 최신 빌드의 패키지로 설치하는 패키지 업데이트와 새로운 부트 환경을 생성하는 이미지 업데이트로 나뉘는데요. 패키지 업데이트는 릴리즈가 업데이트되지는 않고 기존에 설치된 패키지들만 이미지 업데이트를 하여야 새로운 릴리즈 환경으로 설치가 가능합니다.

이미지 업데이트는 단지 'pkg image-update' 커맨드만을 실행하면 최신의 OpenSolaris 이미지로 업데이트를 하게 됩니다. 기존 솔라리스 10에서는 운영체제 이미지 업데이트를 위하여 Live Upgrade 기능을 제공했었는데, Live Upgrade는 새로운 부트 환경을 설치할 비어있는 파티션이 있어야 하고 때문에 용량을 많이 차지했었지만 OpenSolaris에서는 ZFS의 데이터셋 및 스냅샷 기능을 이용하여 새로운 부트 환경을 만들 수 있기 때문에 비어있는 파티션이 없어도 되고 마지막에 확인하실 수 있지만 새로운 부트 환경을 위한 용량도 거의 많이 차지하지 않습니다. 아래처럼 pkg 커맨드를 실행하기만 하면 새로운 부트 환경도 자동으로 생성하여 업데이트 합니다. 기존의 Live Upgrade에서는 lucreate-luupgrade-luactivate 를 실행하여야 했었는데, 업그레이드 과정도 매우 쉬워진 것이죠.

업데이트 해보겠습니다.

snoopy@opensolaris-snoopy:~# pkg image-update
경고: pkg(5)가 최신 버전이 아닌 것 같습니다. image-update를 실행하기 전에
업데이트해야 합니다.

'pfexec pkg install SUNWipkg'를 사용하여 pkg(5)를 업데이트한 후
image-update를 시도하십시오.

켁~!! ㅜ.ㅠ 저는 OpenSolaris 2008.11 버전을 설치하여 사용하고 있었는데 SUNWipkg를 먼저 설치하라고 하는군요. pkg 커맨드 자체를 업그레이드하라는 이야기인데요. 해당 패키지를 검색한 뒤 설치해 보겠습니다.

snoopy@opensolaris-snoopy:~# pkg search SUNWipkg
Search capabilities and performance are degraded.
To improve, run 'pkg rebuild-index'.
INDEX      ACTION    VALUE            PACKAGE
fmri       set       fmri             pkg:/SUNWipkg@0.5.11-0.101
snoopy@opensolaris-snoopy:~# pkg search -r SUNWipkg
INDEX      ACTION    VALUE            PACKAGE
srcpkgs    set       SUNWipkg         pkg:/SUNWipkg@0.5.11-0.75
srcpkgs    set       SUNWipkg                  pkg:/SUNWipkg@0.5.11-0.75
noopy@opensolaris-snoopy:~# pkg install SUNWipkg
PHASE                 ITEMS
Indexing Packages     554/554
DOWNLOAD              PKGS       FILES     XFER (MB)
Completed             8/8     480/480     2.20/2.20

PHASE                                        ACTIONS
Removal Phase                                46/46
Install Phase                                431/431
Update Phase                                 236/236
Reading Existing Index                       9/9
Indexing Packages                            8/8

Repository에 있는 패키지와 로컬에 있는 패키지를 검색해 봤더니 각각 111 빌드와 75 빌드의 파일이 있어 최신 빌드인 111 빌드로 패키지를 설치했습니다. 이제 다시 이미지 업데이트를 해보겠습니다.

snoopy@opensolaris-snoopy:~# pkg image-update
Creating Plan \\/

이미지 업데이트를 하면 위처럼 업데이트 계획을 세우고 곧 이어 업데이트에 들어가게 됩니다.

snoopy@opensolaris-snoopy:~# pkg image-update
DOWNLOAD                                    PKGS       FILES           XFER (MB)
Completed                                      565/565    23050/23050  439.66/439.66

PHASE                                           ACTIONS
Removal Phase                              8036/8036
Install Phase                                  9205/9205
Update Phase                                31727/31727
PHASE                                           ITEMS
Indexing Packages                         565/565

opensolaris의 복제본이 있으며 업데이트 및 활성화되었습니다.
다음 부트 시 부트 환경 opensolaris-1이(가) '/'에 마운트됩니다.
이 업데이트된 BE로 전환할 준비가 완료되면 재부트하십시오.


---------------------------------------------------------------------------
주: 다음 위치에 게시된 릴리스 노트를 검토하십시오.

http://opensolaris.org/os/project/indiana/resources/relnotes/200906/x86/
----------------------------------------------------------------------! -----


네트워크에 따라 차이가 있겠지만 일정한 시간이 지나고 나서 모두 다운로드 & 설치하였습니다. 오픈 솔라리스의 가장 큰 장점이 바로 이렇게 쉽게 새로운 이미지를 설치해보고 테스트해 볼 수 있다는 것입니다. 단지 pkg image-update 커맨드 하나 만으로 새로운 릴리즈로 업데이트해 볼 수 있고 beadm 커맨드 또는 GRUB 메뉴를 통해서 여러개의 부트 환경(BE, Boot Environment)를 선택해서 부팅해가면서 사용할 수 있습니다. 

아래는 이미지 업데이트 후 새로 부팅하고 난 뒤 GRUB 메뉴 입니다. opensolaris-1 이라는 이름으로 새로운 BE가 생성되어 GRUB 메뉴 리스트에 추가가 되어 있고 자동으로 활성화까지 되어 있는 것을 확인할 수 있습니다.

이제 업데이트한 이미지를 통해 릴리즈 버전이 OpenSolaris 2008.11에서 OpenSolaris 2009.06으로 바뀐 것을 볼 수 있습니다. 그리고 beadm 커맨드를 통해서 보면 새로운 BE를 생성하고 난 뒤에도 추가적인 용량은 25.41MB 정도로 거의 많이 차지하지 않는 것을 확인할 수 있습니다. 바로 ZFS 파일시스템의 힘으로 OpenSolaris 파워 유저들은 매 빌드가 나올 때마다 이미지-업데이트를 해서 GRUB 메뉴만 해도 수페이지에 달하게 되는 진기한(??) 광경도 볼 수 있게 됩니다.

참고로 업데이트는 pkg 커맨드 뿐만 아니라 업데이트 매니저를 통해서도 하��� 수 있습니다. OpenSolaris 메뉴에서 '시스템 -> 관리 -> 업데이트 매니저'를 실행시키면 아래와 같은 화면이 나오고, 각 패키지를 선택하여 업데이트하거나 '모두 업데이트'버튼을 누르면 이미지 업데이트를 실행하게 됩니다.



금요일 6월 05, 2009

What's New in OpenSolaris 2009.06

2009 년 6월 1일 미국 샌프란시스코의 모스콘센터에서 열린 썬의 CommunityOne 행사에서 OpenSolaris OS의 세번째 릴리즈인 OpenSolaris 2009.06 이 발표되었습니다. CommunityOne 행사는 매년 열리는 JavaOne 행사에 앞서 열리는 오픈소스 기술 및 오픈소스 커뮤니티에 관한 컨퍼런스로 이번 2009년 CommunityOne에서는 크게 OpenSolaris 2009.06 버전의 릴리즈와 올 하반기 서비스 예정이 썬의 퍼블릭 클라우드 컴퓨팅 서비스인 썬 클라우드(Sun Cloud)에 대한 프리뷰의 내용으로 컨퍼런스가 진행되었습니다.

작년 커뮤니티원 행사를 통해 처음 발표된 OpenSolaris 2008.05가 데스크탑 사용자를 위한 릴리즈, 작년 11월 발표된 OpenSolaris 2008.11이 개발자 및 웹 환경을 위한 릴리즈라면 이번에 발표된 OpenSolaris 2009.05 릴리즈는 바로 엔터프라이즈 환경을 위한 릴리즈로 SPARC 플랫폼 지원 및 시스템 가상화 기능 향상, 네트워크 가상화 기능 추가, 스토리지 가상화 기능 추가, 패키지 저장소 기능 향상, Intel Nehalm 프로세서 지원 향상 등 데이터센터 내의 서버 시스템을 위한 새로운 기능들을 다수 포함하였다고 할 수 있습니다.

주요 새로운 기능들을 살펴보면 다음과 같습니다.

SPARC 플랫폼 지원

이번 릴리즈가 엔터프라이즈 환경을 위한 릴리즈라고 할 수 있는 것은 바로 SPARC 플랫폼을 지원하기 때문이라고 할 수 있겠습니다. OpenSolaris 2008.06 은 x86버전과 SPARC버전 두가지 바이너리로 배포가 되며 SPARC 버전은 SPARC64 VI,VII 프로세스를 장착한 SPARC Enterprise M 시리즈 시스템들과 UltraSPARC T1,T2 프로세스를 장착한 SPARC Enterprise T 시리즈 시스템들을 모두 지원합니다.

\* 하드웨어 호환 시스템 리스트 - BigAdmin: Hardware Compatibility List

Automated Installer supported version

OpenSolaris 2009.06의 SPARC 바이너리는 Automated Installer 형태로 지원합니다. Automated Installer 기능은 기존 솔라리스10에서 사용되던 Flash Archive에 해당하는 기능으로 일종의 고스트 이미지와 같은 형태로 운영체제 이미지를 생성하여 이 이미지를 기반으로 시스템에 운영체제를 설치하는 기능입니다. 운영체제 설치이미지로부터 설치하는 것에 비하여 원클릭으로 쉽고 빠르게 설치할 수 있는 장점이 있으며 특히 SPARC 시스템과 같은 경우 다른 x86 시스템으로부터 부팅하여 설치가 가능하기 때문에 관리자의 랩탑이나 데스크탑으로부터 설치가 가능하여 설치가 한결 편리해졌다고 할 수 있습니다.

SPARC 바이너리 배포에 따라 현재 OpenSolaris 2009.06은 x86 LiveCD image, x86 Automated Install image, SPARC Automated Install image의 세가지 이미지로 배포되고 있습니다.

\* OpenSolaris 2009.06 Download - http://opensolaris.com/get

System Virtualization improvement

한편 OpenSolaris 2009.06의 SPARC 지원에 따라 자연스럽게 SPARC 시스템이 제공하는 시스템 가상화 기능을 지원할 수 있게 되었습니다. UltraSPARC프로세서를 장착한 SPARC Enterprise T 시리즈 시스템은 자체 내장된 펌웨어 하이퍼바이저를 통하여 LDOM(Logical Domain)이라는 시스템 가상화 기술을 제공하고 있습니다. LDOM 가상화 기술은 펌웨어 내장 및 반가상화 기술(Para-Virtualization) 기술을 적용하여 가상화에 따른 시스템의 오버헤드가 훨씬 적은 방식의 효율적인 가상화 기술인데요. OpenSolaris 2009.06은 LDOM 호스트 및 게스트 운영체제로 지원이 가능하게 되었습니다.

 - 썬 가상화 기술 포트폴리오 -

기존 OpenSolaris OS에서는 x86 시스템 가상화를 위한 xVM Hypervisor 및 운영체제 가상화 기술인 컨테이너 기능을 제공하고 있었는데, 이번 릴리즈로 인하여 SPARC 시스템에서의 가상화 기술을 지원함으로서 OpenSolaris가 모든 시스템 가상화 기술을 제공할 수 있게 된 것에 큰 의미가 있다고 할 수 있겠습니다.

Network Virtualization

이번 OpenSolaris 2009.06에서는 Crossbow라는 프로젝트 이름의 네트워크 가상화 기술을 제공합니다. Crossbow에서 제공하는 기능은 크게 VirtualNIC(VNIC)과 플로우 컨트롤(Flow Control)인데요. VNIC은 물리적으로 존재하는 네트워크 인터페이스(NIC)을 분할하여 가상의 네트워크 인터페이스(VNIC)를 제공하는 기능입니다. 예를 들면 e1000g0 인터페이스를 분할하여 VNIC0, VNIC1,...과 같은 인터페이스로 분할하는 것입니다. 기존의 가상 NIC(e1000g0:1, e1000g0:2,..)과 다른 점은 기존의 가상 NIC이 단지 물리적 NIC을 공유하면서 IP 주소를 복수로 사용할 수 있는 기능을 제공하는 데에 그쳤다면 크로스보우 VNIC은 VNIC별로 네트워크 대역폭을 지정할 수 있다는 것입니다. 이를테면 1000MB NIC을 100MB, 200MB, 300MB, 400MB으로 각각의 대역폭을 갖는 VNIC으로 분할 할 수 있다는 것인데요. 이를 통해 VNIC을 사용하는 서비스 들에 대해서 전용으로 할당된 대역폭을 보장해 줄 수가 있게 되었습니다.

- Crossbow Network Virtualization -  

VNIC은 시스템 가상화 환경에서 매우 유용할 수 있는데요. 시스템에 장착된 물리적 NIC의 개수보다 더 많은 가상 머신들이 운영되는 환경이라면 불가피하게 가상머신 들이 NIC을 공유할 수 밖에 없는데, 이 경우 기존의 환경에서는 NIC을 공유하는 특정 가상 머신이 대역폭을 너무 많이 사용하게 되면 다른 가상 머신이 대역폭을 점유하지 못함으로서 문제가 되고 Latency에 있어서도 문제가 될 수 있는데, 크로스보우의 VNIC을 사용하게 되면 가상 머신끼리 NIC을 공유하는 환경에서도 가상 머신 별로 네트워크 대역폭을 보장 받을 수가 있게 됩니다.

한편 VNIC 기능과 함께 제공하는 플로우 컨트롤 기능은 네트워크 플로우에 대하여 대역폭의 제한값, 우선순위, 전용 CPU 자원할당 기능을 제공합니다. 예를 들어 특정 시스템에서 FTP, HTTP, UDP 프로토콜을 사용하는 서비스가 운영되고 있다고 할 때 각 프로토콜 별로 네트워크 대역폭을 제한하여 FTP 서비스가 갑자기 많은 대역폭을 사용함으로서 다른 네트워크 서비스에도 영향을 끼치는 것을 막을 수가 있고, 또 플로우별로 우선순위를 지정하여 네트워크 대역폭에 대하여 서로 사용하기 위한 경쟁 상황이 발생했을 때 이를 스케줄링 할 수 있는 기능을 제공합니다. 또한 특정 CPU 자원을 플로우에 할당하여 네트워크 서비스를 지원하도록 할 수도 있습니다.

가상화된 환경에서의 네트워크 서비스에 있어서 한단계 진화한 수준이라고 할 수 있겠는데요. GLD v2 이상의 네트워크 인터페이스에 대하여 적용되는 기술입니다.

\* Supported smard NICs - http://www.opensolaris.org/os/project/crossbow/topics/nic/

Storage Virtualization

또한 OpenSolaris 2009.06부터 COMSTAR 프로젝트를 통하여 스토리지 가상화 기술을 제공하고 있습니다. COMSTAR는 Common Multiprotocol Storage Target이라고 하는 소프트웨어 프레임워크로 이더넷 네트워크를 통하여 멀티 프로토콜의 SCSI 인터페이스를 제공하기 위한 스토리지 가상화 기술입니다. 오른쪽 그림에서 보듯이 OpenSolaris를 탑재한 시스템에서 네트워크를 기반으로 다양한 호스트 들에 대하여 SCSI 타켓을 제공해 주게 되는데요. SAN 구성을 위한 고비용을 들이지 않고 일반 이더넷 네트워크를 기반으로 한다는 점에서 iSCSI나 FCoE와 비슷하나 다른 프로토콜 위에 FC 프로토콜을 탑재하여 동작하는 것이 아니라 FC 케이블의 물리적 인터페이스를 이더넷 인터페이스로 대체하여 오버헤드가 더 작은 방식으로 성능이 뛰어나고 FC, iSCSI 등의 멀티 프로토콜을 지원하는 차이가 있습니다.

기타 기능 향상

한편 Package Manager의 GUI 및 성능 향상, IPS 패키지 기능 향상, 데스크탑 사용자 기능 향상 , HW/Driver 지원 향상 등 많은 지원이 있었는데요.

이번 OpenSolaris 2009.06 버전의 릴리즈로 다른 운영체제와는 궤를 달리하는 솔라리스 운영체제의 한차원 높은 최신 기능 들을 SPARC 시스템 등 엔터프라이즈 환경에서 더욱 쉽게 사용할 수 있도록 한 것과 큰 의미가 있지 않나 싶습니다. 아래 참조할 수 있는 내용들을 정리해 보았습니다.

Resources 

  • OpenSolaris 2009.06 overview - Video
  • What's New in OpenSolaris 2009.06 - Video
  • Networking Technologies within OpenSolaris 2009.06 - Video
  • Ready for the Enterprise: OpenSolaris 2009.06 - Video
  • OpenSolaris support for Developers & the Enterprise - Video

화요일 5월 26, 2009

Upcoming OpenSolaris 2009.06

오늘 있었던 썬 솔루션 데이 행사에서 '가상화 인프라의 선진 운영 기술'이라는 제목으로 제가 발표를 했는데요. 그 중에 썬의 전체 시스템 가상화 기술의 포트폴리오를 나열한 슬라이드 이미지를 올려봅니다. 

짜짠~!! 슬라이드의 내용을 한 눈에 알아보셨나요? 하드 파티션, SPARC 가상머신 기반 기술에서 지원하는 운영체제에 오픈 솔라리스가 올라와 있습니다. 바로 OpenSolaris가 이제 SPARC 플랫폼에서도 지원이 된다는 내용인데요.

매년 썬에서 개최하는 행사 가운데 가장 큰 행사로 유명한 Java One이 있습니다. 전 세계 자바 개발자들의 컨퍼런스인데요. 작년부터는 이 자바원 행사 전날은 Community One이라는 오픈소스 커뮤니티들의 컨퍼런스를 개최해오고 있습니다. 그런데 Community One 행사에서는 가장 하이라이트가 새로운 버전의 OpenSolaris 버전을 공개하는 것이고 작년 6월에 OpenSolaris의 첫번째 버전인 OpenSolaris 2008.05 버전을 발표한 바 있습니다.

올해도 어김없이 6월 1~3 기간 동안 커뮤니티원 컨퍼런스가 개최되고 이번에 OpenSolaris의 세번째 버전인 OpenSolaris 2009.06을 발표할 계획인데요. 이번 버전의 가장 큰 특징이 바로 SPARC 버전의 릴리즈입니다. 이제 공식발표가 며칠 남지 않았는데요. 새버전이 나오면 자세한 내용은 별도 포스팅에서 소개해 드리기로 하고 신기능들의 요약만 올려봅니다. 새로운 오픈 솔라리스 완전 기대입니다. :)

Focus on Web2.0 environments

Installation
 - Automated installation, with JumpStart migration
 - On-disk package repository

SPARC support
 - LDoms Support (2009.06 as Guest OS or Control Domain)

x86 improvements
 - Suspend/resume improvements
 - Nehalem Deep Down C-state
 - Updated FOSS software
 - Ruby, Ruby Gems, Lighttpd, MySQL 5.1, Xorg 1.5, ...

Storage
 - COMSTAR iSCSI Target for x86
 - Turns any OpenSolaris host into a SCSI target
 - Enhanced InfiniBand support
 - SATA RAID

Networking
 - Crossbow Phase 1 (Virtual NICs)
 - Improved IP observability

Shadow copy
Host-based access control
ACLs on shares
Oplocks (Opportunistic Locks)
AD Cross-Forest Trust
Client-side caching
IPv6 support




월요일 5월 18, 2009

ZFS and Container Integration in Solaris10 05/09

지난 포스팅에서 솔라리스 10 05/09 버전의 신기능으로서 ZFS와 컨테이너 기능의 통합에 대해 소개 드렸었는데요. 이번 포스팅에서 더 자세하게 살펴보겠습니다.

1. 존 설치시 ZFS 데이터셋 자동 생성

우선 존을 생성할 때 존의 경로가 ZFS 스토리지 풀 위의 경로에 있으면 존 설치시 자동으로 새로운 ZFS 데이터셋이 생성이 되는 기능이 추가되었습니다.

먼저 my-zone이라는 존을 하나 생성해 보겠습니다. 이 시스템에는 미리 export/zones라고 하는 ZFS 데이터셋을 생성해 두고 새로 만드는 존의 경로는 이 데이터셋의 경로에 두었습니다.

#bash-3.00# zonecfg -z my-zone
my-zone: 그런 영역은 구성되지 않음
새 영역 구성을 시작하려면 'create'를 사용하십시오.
zonecfg:my-zone> create
zonecfg:my-zone> set zonepath=/export/zones/my-zone
zonecfg:my-zone> add net
zonecfg:my-zone:net> set physical=lo0
zonecfg:my-zone:net> set address=127.0.0.2
zonecfg:my-zone:net> end


위의 커맨드는 존을 가장 빠르게 구성할 수 있는 방법으로 (사용자 입장에서) 존의 경로와 네트워크를 루프백 인터페이스의 127.0.0.2 내부 인터페이스 주소로 주고 존을 구성하였습니다. 다음으로 존을 인스톨하겠습니다.

bash-3.00# zoneadm -z my-zone install
이 영역에 대한 ZFS 파일 시스템이 만들어졌습니다.
Prepating to install zone <my-zone>
Creating list of files to copy from the global zone.
Copyig <7940> files to the zone.
...

짜잔! 존 인스톨 시 자동으로 ZFS 파일시스템을 생성하는 것을 볼 수 있습니다. ZFS 데이터셋의 리스트를 확인해 보도록 하겠습니다.

bash-3.00# zfs list
NAME                       USED AVAIL REFER MOUNTPOINT
rpool                     5.85G 9.77G 35.5K /rpool
rpool/ROOT                3.99G 9.77G   18K legacy
rpool/ROOTs10x_u7wos_08   3.99G 9.77G 3.99G /
rpool/dump                1.00G 9.77G 1.00G -
rpool/export               367M 9.77G  506K /export
rpool/export/home          366M 9.77G   22K /export/home
rpool/export/zones         366M 9.77G   21K /export/zones
rpool/export/zones/my-zone     366M 9.77G  366M /export/zones/my-zone

새로운 데이터셋이 생성된 것을 확인할 수 있습니다. 또한 존을 언인스톨하게 되면 아래처럼 ZFS 데이터셋이 자동으로 삭제됩니다.

bash-3.00# zoneadm -z my-zone uninstall
이 영역에 대한 ZFS 파일 시스템이 삭제되었습니다.

2. 존 클론 시 ZFS 스냅샷/클론 자동 생성

위에서 본 것처럼 컨테이너 기능을 이용하여 존 설치시 ZFS 데이터셋이 자동으로 생성됨으로서 컨테이너가 ZFS 파일시스템의 안정성, 확장성 등 장점을 활용하기가 더욱 쉬워졌습니다. 그렇지만 수동으로 데이터셋을 만들고 그 위에 존을 설치해도 되는 것을 굳이 자동으로 했다고 ZFS가 컨테이너 기능과 통합되었다고 할 수는 없겠지요?

ZFS가 LDOM, xVM Server, Container 등 가상화 기능과 결합하였을 때 진정 의미가 있는 것은 뭐니뭐니해도 Snapshot / Clone / Rollback 기능일 것입니다. ZFS의 스냅샷은 파일시스템 레벨에서 제공하는 기능으로 특정 시점의 파일시스템의 데이터 블록들의 데이터를 저장을 해놓고 이 데이터 상태로 나중에 되돌아갈 수도 있고 (Rollback) 용량증가없이 즉각적으로 복제본을 만들 수도 있는 (Clone) 기능입니다. 특히 클론 시에는 대용량의 데이터를 복사할 때 시간과 용량이 걸리는 일이 없이 즉각 0 바이트의 용량으로 복제본을 만들 수 있는 기능인데요. 이번 업데이트에서는 이 기능이 컨테이너의 기능과 결합되었습니다.

컨테이너도 자체적으로 클론 기능을 가지고 있는데요. 이 것은 특정 존을 일종의 골든 이미지 존으로 만들어 놓고 이 존에 설치된 어플리케이션 및 각종 구성 설정 들을 그대로 유지하면서 새로운 존을 생성하는 기능입니다. 다만 ZFS와는 달리 데이터 블록을 그대로 한 카피 더 만들어야 하므로 용량이 두배가 되고, 클론을 생성하는 데 오랜 시간이 걸리게 됩니다. 이번 업데이트 부터는 존을 클론할 때 ZFS 데이터셋 위에 경로가 있게 되면 특정 존을 자동으로 스냅샷하고 이를 클론하여 존의 추가 설치에 따른 용량 증가와 설치 시간의 소요가 없이 존을 클론할 수 있도록 되었습니다.

마스터 존이 생성되어 있다고 할 경우 존의 클론 과정은 대략 다음과 같습니다.

  1. 마스터 존 halt
  2. 마스터 존 구성 정보 export
  3. 위 마스터 존의 구성 정보를 편집하여 새로 복제본으로 생성될 존의 구성 정보 설정
  4. 복제본 존 구성
  5. 복제본 존 클론

우선 위에서 만든 my-zone을 마스터 존으로 놓고 구성정보를 export 합니다.

bash-3.00# zonecfg -z my-zone export -f /export/zones/master


/export/zones/master 파일은 my-zone 존의 구성 정보를 담고 있는 파일인데요.이 구성 정보를 이용해서 새로운 복제 존을 구성하겠습니다. 다만 경로 및 ip주소 정도는 수정해야겠지요? 필요한 내용은 이 파일에서 모두 편집할 수 있습니다. 저는 존의 경로와 ip 주소만 수정해 보겠습니다.

bash-3.00# vi /export/zones/master
"/export/zones/master" 20 행, 287 문자
create -b
set zonepath=/export/zones/zone1
set autoboot=true
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=127.0.0.3
set physical=lo0
end
~
~
~
"/export/zones/master" 20 행, 287 문자


위 구성 파일을 이용해서 복제본 존을 구성합니다.

bash-3.00# zonecfg -z zone1 -f /export/zones/master


보통 존은 존 구성 -> 존 설치 의 두 단계를 거치는데요. export  / import 하거나 clone 하는 경우에는 설치 대신 import 또는 clone을 하면 됩니다. 아래처럼 clone을 하게 되면 마스터 존에 대해서 SUNW<zonename>이라는 스냅샷이 자동으로 생성되고 이 스냅샷을 클론하여 새로운 존을 설치하는 것을 확인할 수 있습니다. 스냅샷 / 클론이기 때문에 설치하는 것에 비하여 시간이 현저하게 줄어듭니다. 복사가 아니라 ZFS 클론이라고 친절하게 설명까지 해줍니다. \^\^

bash-3.00# zoneadm -z zone1 clone my-zone
스냅샷 rpool/export/zones/my-zone@SUNWzone1을(를) 복제 중

복사하는 대신 이 영역에 대해 ZFS 복제가 만들어졌습니다.
grep: can't open /a/etc/dumpadm.conf


아래 용량을 확인해 보면 SUNWzone1 스냅샷에 1.8MB, zone1 클론에 240K로 용량의 증가가 거의 없는 것을 확인하실 수 있습니다.

bash-3.00# zfs list
NAME                                   USED  AVAIL  REFER  MOUNTPOINT
rpool                                 6.15G  9.48G  35.5K  /rpool
rpool/ROOT                            4.03G  9.48G    18K  legacy
rpool/ROOT/s10x_u7wos_08              4.03G  9.48G  4.03G  /
rpool/dump                            1.00G  9.48G  1.00G  -
rpool/export                           630M  9.48G    26K  /export
rpool/export/home                       22K  9.48G    22K  /export/home
rpool/export/zones                     630M  9.48G  21.5K  /export/zones
rpool/export/zones/my-zone             630M  9.48G   628M  /export/zones/my-zone
rpool/export/zones/my-zone@SUNWzone1       1.80M      -    630M   -
rpool/export/zones/zone1                    240K  9.48G    628M   /export/zones/zone1

rpool/swap                             512M  9.95G  24.8M  -



3. ZFS 스냅샷을 이용한 존 클론 

위에서는 마스터 존을 클론하면서 자동으로 ZFS 스냅샷/클론을 수행하도록 하였는데요. 이미 존에 대하여 만들어진 스냅샷을 활용하여 새로운 존을 클론을 할 수도 있습니다.

새로운 zone2를 구성해 보겠습니다. 물론 존의 경로와 ip 주소 등 master 파일의 내용은 zone2에 맞게 수정해 주어야 합니다.

bash-3.00# zonecfg -z zone2 -f /export/zones/master


아래와 같이 -s 옵션을 이용하여 스냅샷을 지정해주면 이 스냅샷을 클론하여 존을 생성합니다.

bash-3.00# zoneadm -z zone2 clone -s rpool/export/zones/my-zone@SUNWzone1 my-zone
스냅샷 rpool/export/zones/my-zone@SUNWzone1을(를) 복제 중
grep: can't ! open /a/etc/dumpadm.conf

zone2가 설치된 것을 확인하실 수 있구요.

bash-3.00# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   - my-zone          installed  /export/zones/my-zone          native   shared
   - zone1            installed  /export/zones/zone1            native   shared
   - zone2            installed  /export/zones/zone2            native   shared


용량은 zone1을 새로 복제할 때와 마찬가지로 240K만 추가로 사용된 것을 확인할 수 있습니다.

bash-3.00# zfs list
NAME                                   USED  AVAIL  REFER  MOUNTPOINT
rpool                                 6.15G  9.48G  35.5K  /rpool
rpool/ROOT                            4.03G  9.48G    18K  legacy
rpool/ROOT/s10x_u7wos_08              4.03G  9.48G  4.03G  /
rpool/dump                            1.00G  9.48G  1.00G  -
rpool/export                           631M  9.48G    26K  /export
rpool/export/home                       22K  9.48G    22K  /export/home
rpool/export/zones                     631M  9.48G  22.5K  /export/zones
rpool/export/zones/my-zone             630M  9.48G   628M  /export/zones/my-zone
rpool/export/zones/my-zone@SUNWzone1  1.80M      -   630M  -
rpool/export/zones/zone1               240K  9.48G   628M  /export/zones/zone1
rpool/export/zones/zone2               240K  9.48G   628M  /export/zones/zone2
rpool/swap                             512M  9.95G  24.8M  -


만약 클론시에 스냅샷을 쓰지 않고 기존처럼 복사하는 방법을 그대로 사용하고 싶으면 아래처럼 -m copy 옵션을 줄 수도 있습니다.

bash-3.00# zoneadm -z zone1 clone -m copy my-zone


ZFS 파일 시스템에 대해서는 제가 따로 소개한 바는 없지만 ZFS는 컨테이너, DTrace 등과 함께 솔라리스 10의 가장 혁신적인 기술 가운데 하나로 이렇게 가상화 기술과 결합하게 되면 보다 빠른 가상화 게스트의 설치와 스토리지 용량의 절감을 가져 올 수 있는 매우 큰 장점이 있습니다.

다음 포스트에서는 이번 업데이트 7 릴리즈의 Intel 네할름 프로세서 지원에 대해 소개드려 보겠습니다.

화요일 5월 12, 2009

What's New in Solaris 10 Update 7 (5/09)

2009년 5월 12일자로 솔라리스 10의 업데이트 7 버전인 Solaris 10 5/09가 릴리즈 되었습니다. 지난 2008년 10월 31일 10/08 버전의 업데이트 6가 발표된 뒤로 약 6개월만으로 sun.com 사이트를 통한 다운로드는 4월 29일부터 가능(RR)했었고, 5월 11일부터 릴리즈 노트 및 설치 문서 등 각종 문서가 링크(GA)된 것을 확인할 수 있습니다. 새로운 Update 7에 대한 정보는 아래 문서들을 참조하실 수 있습니다.

주요 링크 :

이번 업데이트는 지난 업데이트 6와 같이 'ZFS 루트 파일시스템 지원' 등의 눈길을 끌만한 신기능까지는 담고 있지 않습니다. 하지만 '솔라리스 컨테이너와 ZFS 파일시스템의 결합'이라든가 '솔라리스 10의 인텔 네할름 프로세서 지원' 등 의미 있는 기능 들을 담고 있는 릴리즈입니다. 참고로 네할름 프로세서를 지원하는 최초의 운영체제는 OpenSolaris 2008.11 버전이며 업데이트 7은 솔라리스 10이 네할름을 지원하는 최초의 업데이트 버전입니다.

이번 릴리즈의 주요 내용들은 아래와 같습니다.

  • 솔라리스 컨테이너 - 컨테이너를 클로닝(Cloning)하는데에 있어서 ZFS 파일시스템의 클로닝 기능을 이용하여 컨테이너 클로닝시 걸리는 시간과 용량을 현저히 절감할 수 있게 되었습니다.

  • IPSec(Internet Protocol Security ) 기능의 SMF 통합 - IPSec 기능이 SMF(Solaris Service Manager Facility)와 결합되어 전체 보안 기능의 관리가 간소화되었습니다. 또한 Solaris Cluster의 인터커넥트 채널간의 통신에 IPSec 을 적용하여 페일오버(Fail over) 세션 간에 보다 빠르고 시큐어한 통신이 가능해졌습니다.

  • LDom 기능 향상 - 가상 디스크(Virtual Disk) 기능 향상 및 VNET과 VSW의 점보 프레임 지원이 가능합니다.

  • 인텔 Xeon 5500 프로세서 지원 최적화 - 향상된 멀티쓰레딩 기능인 인텔 하이퍼쓰레딩, CPU 스피드 지원 기술인 터보부스트, CPU 소켓간 인터커넥트 기술인 퀵패스 등 지원 및 최적화되었습니다.

  • Power Aware Dispatcher - 솔라리스가 전력소모를 최소화하면서 최대의 성능을 낼 수 있도록 자동으로 시스템을 모니터하고 프로세스의 실행을 최적화할 수 있습니다. 인텔 네할름 프로세서의 새로운 Deep C-States 기능과 결합하면 아이들(idle) 상태의 코어에 의해서 소모되는 전력도 절감할 수 있습니다.

  • CMT 시스템에서의 SSH 성능 향상 - UltraSPARC T2 프로세서를 장착한 시스템에서 프로세서 자체 장착된 암호화 가속기(Crypto Acceleration) 등을 이용하여 성능 향상이 있습니다.

  • Sun Validation Test Suite (VTS) 업데이트 - 새로운 시스템의 진단정보를 지원하도록 업데이트되었습니다.

Solaris 10 5/09 What's New 컬렉션 문서를 통해서 본 상세한 업데이트 내용은 다음과 같습니다.

System Resources Enhancement

  • 존 클로닝 시에 ZFS 클로닝 사용 지원 등 ZFS와 컨테이너의 결합
자세한  내용은 다음 포스트에서 다루겠습니다만 ZFS 파일시스템 위에 zonepath가 지정되는 경우 존 인스톨 시 자동으로 ZFS 데이터셋을 생성하는 기능 및 존 클로닝시 ZFS 파일시스템 위에 설치된 다른 존의 경로와 zonename을 부여하면 ZFS 파일시스템이 자동으로 클로닝되어 새로운 존을 생성하는데 걸리는시간과 공간을 절감할 수 있는 등 ZFS와 컨테이너가 통합된 기능들을 제공하고 있습니다.
  • zoneadm attach -b 옵션 지원
업데이트 6에서 Update-on-attach라는 기능이 소개된 바 있습니다. Update-on-attach는 로컬 존을 Attach할 때 글로벌 존의 패치 버전이 높은 경우 기존에는 패치 버전이 상이하므로 Attach가 불가능했지만 업데이트 6 부터는 존을 Attach 할 때 패치 버전의 차이 만큼 패치를 자동으로 업데이트함으로서 존을 Attach 할 수 있는 기능입니다. 이번에 소개된 -b 옵션은 Update-on-attach가 일어날 때 특정 패치들은 제외할 수 있는 기능입니다. (오픈솔라리스의 IPS 패키지에는 적용 가능하지 않고 SVR4 패키지에만 적용 가능합니다.)

System Administration Enhancements

  •  IPsec의 SMF services를 통한 관리
IP 레이어에 보안 암호화를 하는 IPSec 프로토콜이 아래 4가지 서비스로 관리가 됩니다.
  • svc:/network/ipsec/policy:default – 정책을 관리하는 서비스로 /etc/inet/ipsecinit.conf 파일을 체크하여 IPsec Security Policy Database (SPD)에 정책을 적용합니다. IPSec 서비스 사용을 위해서는 이 서비스가 항상 활성화돼 있어야 하고 부팅시에 IPSec 정책 구성을 위해 /etc/inet/ipsecinit.conf 파일이 있어야 합니다.
  • svc:/network/ipsec/ike:default – Internet Key Exchange (IKE) 데몬을 관리하는 서비스입니다.
  • svc:/network/ipsec/manual-key:default – manual-key 서비스는 /etc/inet/secret/ipseckeys 파일을 체크하여 IPsec Security Association Database (SADB)에 키를 제공하는 역할을 합니다. 기존에는 /etc/inet/secret/ipseckeys 파일만 존재하면 키를 제공할 수 있었지만 업데이트 7부터는 manual-key 서비스가 활성화 되어있어야 합니다.
  • svc:/network/ipsec/ipsecalgs:default – 기본으로 활성화되어 있는 서비스로 솔라리스 암호화 프레임워크의 알고리즘(Solaris Cryptographic Framework algorithms)을 IPSec에 적용할 수 있는 서비스입니다.
IPSec이 Service Manager Facility를 통해 관리됨으로서 관리 인터페이스가 더 간결해지고, 서비스 가용성이 더 높아지며 장애 발생시 추적이 더 쉽게 되었습니다.

Security Enhancement

  • NAT-Traversal for IPsec Key Management Developers
IPSec을 위한 NAT Traversal 의 엔드포인트 역할을 하는 API를 제공합니다. 이 기능을 통하여 IPSec 키관리 소프트웨어 개발자들이 NAT 디바이스를 통하는 키 관리 프로토콜을 개발할 수 있습니다.
  • IPsec 알고리즘 강화.
Three larger Diffie-Hellman integer-modulus groups (2048-bit, 3072-bit, and 4096-bit) 지원
SHA2 including sha256, sha384, and sha512, SHA-2 using HMAC 지원
  • SunSSH With OpenSSL PKCS#11 Engine 지원

Device Management Enhancements

  • x86 : 인텔 프로세서의 T-State 모드를 지원
업데이트 7부터 전력관리 기능의 일환으로 프로세서 클럭 쓰로틀링(Processor Clock Throttling)을 지원합니다. 솔라리스가 펌웨어로부터 ACPI_TPC 메시지를 받으면 이에 따라 프로세서의 클럭 속도를 조절함으로서 전력소모를 줄일 수 있습니다. Marc Haywood의 블로그 포스팅에서 더 자세한 정보를 볼 수 있습니다.

System Performance Enhancements

  • Intel PCI Express 10Gb NIC Driver에서 Large Segment Offload(LSO) 지원
ixgbe 드라이버에 대해서 LSO 기능을 지원합니다. 10GB Ethernet과 같이 고대역폭의 네트워크 장치에 대해서는 LSO가 더욱 중요하다 할 수 있는데, LSO를 통해 네트워크 전송에 있어 CPU의 오버헤드를 줄임으로서 전송 속도를 증가시킬 수 있습니다.
  • Solaris Power Aware Dispatcher 및 인텔 네할름 프로세서의 Deep C-State지원
솔라리스 10의 인텔 네할름 지원에 대해서는 별도의 포스팅을 할 계획입니다만, 간단히 정리하자면 솔라리스 10의 CPU 전력 관리에 있어서 3가지 정도의 기능이 추가되었습니다.
  • 이벤트 중심 CPU 전력 관리 - Power Aware Dispatcher 또는 커널 스케줄러가 CPU 사용량에 따라 전력소모를 최소화하는 방안으로 스케줄링을 하는데, 기존의 CPU 사용량을 확인하는 것은 솔라리스가 각 CPU에 대해 주기적으로 폴링(Polling)을 하여 가능하였지만, 이번 업데이트부터는 전력 관리가 가능한 종류의 CPU가 Power State가 변경될 때 발생시키는 이벤트에 따라 솔라리스 10이 CPU 사용량을 확인함으로서 전력을 더욱 절감할 수 있게 됩니다. 기본적으로 이벤트 중심 방법으로  되어 있지만 설정을 통해 폴링을 통해 하도록 변경할 수도 있습니다.
  • 인텔 네할름 프로세서의 Deep C-State 지원 - 필요에 따라 코어를 아이들(Idle) 상태로 되돌림으로서 코어가 작업중이 아니더라도 단지 on 상태에 있는 것만으로도 소모되는 전력을 절감하는 Deep C-State를 지원합니다.
  • 인텔 네할름 프로세서의 터보 모드 지원 - CPU 온도가 허용하는 수준에서 필요에 따라 코어의 동작 클럭을 높일 수 있는 기능인 터보 모드(turbo mode)를 지원합니다. 솔라리스 10에서는 kstat 커맨드를 통해서 터보 모드의 상태와 프로세서 클럭을 확인할 수 있습니다.

Developer Tools Enhancements

  • SunVTS 7.0 Patch Set 5
Sun Validation Test Suit은 시스템 진단정보를 통해 시스템의 정상동작 여부를 테스트하는 소프트웨어인데 새로운 시스템에 대한 진단정보 등 많은 업데이트가 있었습니다.
  • x86: CPU Performance Counter Updates for Intel Processors
최근의 프로세서들은 프로세서의 동작과 관련한 하드웨어 이벤트의 측정을 위해 하드웨어 성능 카운터를 가지고 있는데 업데이트 7부터 cputrack, cpustat 등의 커맨드를 통해 CPU 성능 카운터에 억세스할 수 있습니다.
  • SUNWpatchutils Tool
패치를 관리하는 패키지에 업데이트가 있었습니다. 자세한 정보는http://cyberelk.net/tim/software/patchutils 페이지 참조

Driver Enhancements

  • hermon Driver지원
  • iSCSI Target 성능, 확장성, 호환성, 안정성 업그레이드
  • x86: NetXen 10-GigE Device Driver지원
  • Intel ICH10 and Hartwell NIC Support in E1000g Driver지원
  • xge Driver Can Enable Multiple Receive Rings and MSI-X

Other Enhancements

  • 카자흐스탄어 및 우크라이나어를 위한 로케일 지원
  • SPARC: Fp-scrubber Daemon

참고

이번 포스트에서는 새 기능들을 간략하게 살펴보았는데요. 다음 포스트에서는 순서대로 'ZFS 클론을 이용한 Zone 클로닝' 및 '솔라리스 10의 Nahalm 지원'에 대해 자세하게 이야기해 보겠습니다.


월요일 5월 11, 2009

Solaris Release & Support model

솔라리스 9의 EOL(End-of-Life) 발표에 즈음하여 솔라리스의 릴리즈 정책 및 지원 모델에 대하여 정리해 보았습니다. 기업 사용자 입장에서 오픈 소스 소프트웨어를 도입하는데 가장 큰 이슈 가운데 하나는 바로 서비스 지원의 문제인데요. 책임있는 업체에서 충실하게 서비스를 지원하는가, 고객의 투자 보호를 위해서 충분한 기간 동안 서비스를 지원하는가 등의 이슈가 있게 됩니다. 솔라리스는 오픈소스 운영체제이지만 어느 상용 어플리케이션보다 안정적인 개발 모델 및 충실한 서비스 지원 모델을 가지고 있는 것을 확인하실 수 있습니다.

솔라리스 개발, 릴리즈 모델

우선 솔라리스 10 및 오픈 솔라리스의 개발 및 릴리즈 모델은 다음 그림과 같습니다.

- 솔라리스 10 및 오픈 솔라리스 릴리즈 모델 - 

솔라리스는 매 3년~5년마다 새로운 릴리즈(i.e. Solaris 8, Solaris 9, Solaris 10, ...)를 발표하며 매 분기마다 업데이트 버전(i.e. Update 4, Update5, Update 6, ...)을 발표합니다. 업데이트 버전은 버그 픽스, 하드웨어 업데이트, 새로운 기능 등을 포함하는데요. 전체 릴리즈는 약 10년 이상의 장기간 서비스 지원을 제공합니다.

또한 오픈 솔라리스는 매 6개월 마다 새로운 릴리즈를 발표하며 18개월의 서비스 지원을 제공합니다.

위 그림에서 언급되지 않은 것이 OpenSolaris.org에서 개발, 배포되는 Solaris Express Community Edition(이하, SXCE)인데요. SXCE는 Nevada라는 코드 네임으로 리눅스로 치면 페도라 코어와 유사하다 할 수 있는 오픈 솔라리스의 소스코드 베이스로 커뮤니티 사이트를 통해서 매 2주마다 릴리즈가 되고 ..., b101, b102, b103,..., b113 과 같은 이름으로 소스코드 빌드 번호가 붙어 계속해서 업데이트가 됩니다.

SXCE와 OpenSolaris와 Solaris 10은 각각 소프트웨어의 알파 - 베타 - 공개 버전에 해당할 수 있겠는데요. 매 2주마다 릴리즈되는 SXCE로부터 OpenSolaris는 1차 안정화 및 패키징을 거쳐 같은 빌드 번호의 빌드들을 배포합니다. 각 빌드에 따른 배포판을 다운로드(http://www.genunix.com)받을 수도 있구요. 설치돼 있는 OpenSolaris에서는 pkg image-update 커맨드를 통해서 최신의 빌드로 업데이트를 할 수도 있습니다. 이 OpenSolaris 로부터 기능이 검증되고 안정화된 기능들이 비로소 Solaris 10의 업데이트 버전을 통해 배포가 됩니다. 이러한 3단계 개발&릴리즈 모델을 통하여 솔라리스 10의 릴리즈의 안정성이 더해질 수 있습니다. 그런데 기본적인 릴리즈 모델에서는 매 분기마다 업데이트 버전이 발표된다고 하지만 실제로 업데이트 버전의 릴리즈는 규칙적이지는 않아서 2005년 1월에 발표된 이후로 2009년이 되었지만 아직까지 업데이트 버전은 6까지입니다. 

참고로 아래는 지금까지 릴리즈된 솔라리스 10 및 업데이트 버전의 코드네임입니다. 

Solaris 10 = on10/s10 = SunOS 5.10
            s10_52 = SunOS 5.10 Beta 1 (03/04)
            s10_54 = SunOS 5.10 Beta 2 (04/04)
            s10_55 = SunOS 5.10 Beta 3 (05/04)
            s10_58 = SunOS 5.10 Beta 4 (06/04)
            s10_63 = SunOS 5.10 Beta 6 (08/04)
            s10_69 = SunOS 5.10 Beta 7 (10/04)
Solaris 10 = s10_74L2a = SunOS 5.10 FCS (GA 3/05)
Solaris 10 3/05 HW1 = (s10s_wos_74L2a) = SunOS 5.10 HW1 (GA 7/05)
Solaris 10 3/05 HW2 = (s10s_hw2wos_05) = SunOS 5.10 HW2 (GA 9/05)
Solaris 10 1/06 = s10_u1(s10s_u1wos_19a) = SunOS 5.10 Update 1 (GA 1/06)
Solaris 10 6/06 = s10_u2(s10s_u2wos_09a) = SunOS 5.10 Update 2 (GA 6/06)
Solaris 10 11/06 = s10_u3(s10s_u3wos_10) = SunOS 5.10 Update 3 (GA 11/06)
Solaris 10 08/07 = s10_u4(s10s_u4wos_12b) = SunOS 5.10 Update 4 (GA 08/07)
Solaris 10 05/08 = s10_u5(s10s_u5wos_10) = SunOS 5.10 Update 5 (GA 05/08)
Solaris 10 10/08 = s10_u6(s10s_u6wos_07a) = SunOS 5.10 Update 6 (GA 10/08)
Solaris 10 05/09 = s10_u7(s10s_u7wos_08) = SunOS 5.10 Update 7 (GA 05/09) (예정)

 

솔라리스 라이프 사이클 모델

- 솔라리스 10 라이프 사이클 모델 -

위의 그림은 솔라리스의 라이프 사이클 모델(http://www.sun.com/software/solaris/lifecycle.xml)입니다. 솔라리스는 10년 이상의 라이프 사이클을 제공하기 위한 릴리즈 및 지원 모델을 가지고 있는데요. 이를 요약한 것이 위의 그림이 되겠습니다.

  • E1. General Availability : 일반 사용자에게 제공 가능한 기간입니다. 현재 솔라리스9, 솔라리스 10에 해당하는 기간으로 이 기간 동안 사용자는 사용권을 구입하거나 또는 무료로 다운로드 받아서 사용하거나 또는 시스템 구매시 사전 설치되어 사용할 수 있습니다. 일단 릴리즈가 되면 최소 4년 반 이상 가능합니다.
  • E2. End of Life (EOL) 사전 공지 : 해당 버전의 솔라리스가 곧 EOL될 것임을 알리는 시기입니다. 사전 발표 후 1년 뒤 EOL에 대한 정식 발표가 있게 됩니다.
  • E3. End of Life (EOL) 공지 : 지난 4월 28일 솔라리스 9에 대해서 발표된 내용입니다. EOL이 발표되면 그 날로부터 약 90일 동안 마지막 주문(Last Order) 기간을 시작하게 됩니다.
  • E4. Last Order Date (LOD) : 이 기간까지 마지막 주문을 할 수 있습니다. 솔라리스 9의 경우는 7월 31일까지입니다. 다만 마지막 주문은 솔라리스의 사용권 및 미디어에 대한 주문으로 새로운 서비스 계약은 E7 즉, 제품 수명이 다하는 날까지도 신규 계약을 할 수 있습니다.
  • E5. Last Ship Date (LSD) : 마지막 주문 이후 90일 동안 썬에서는 고객에게 솔라리스의 사용권 및 미디어를 제공합니다. 솔라리스 9의 경우는 10월 30일까지입니다. 마지막 주문이후의 일종의 배송기간으로 생각할 수 있습니다. 이 날 이후로는 바로 Retirement Phase 1 기간으로 돌입합니다.
  • E5 to E6. Retirement Phase 1 : 솔라리스가 단종된 이후 단종 지원 기간은 1단계 / 2단계로 나뉘어 지원을 하게 되는데요. 1단계 기간 동안에는 GA기간과 동일하게 서비스 지원이 제공되고 필요에 따라 패치도 제공됩니다. 다만 새로운 Change Request 및 Bug Fix 요청은 받아들여지지 않고, 기존에 알려진 또는 발생한 문제에 대한 패치만 제공되게 됩니다. 1단계 단종 지원은 약 2년간 제공됩니다.
  • E6 to E7. Retirement Phase 2 : 이 기간은 마지막 지원 기간으로 기존에 서비스 받던 내용을 그대로 지원 받고 고객의 요구에 따라 별도 계약에 따라 빈티지 서포트 서비스를 통해 패치를 제공받을 수도 있습니다.

위의 라이프 사이클 모델에 따르면 솔라리스는 10년 가량의 제품 수명 기간을 제공하는데요. 실제로 위 모델은 최소한의 기간으로 솔라리스 10은 GA 기간도 더 길게 제공되고 있고 단종 지원 기간도 충분히 지원되기 때문에 10년~12년 이상의 지원을 제공하고 있습니다. 솔라리스 버전에 따른 주요 날짜는 아래 페이지에서 확인할 수 있습니다.

http://www.sun.com/service/eosl/eosl_solaris.html

\* 포스팅을 하는 시점에서는 솔라리스 9에 대한 단종 일자는 웹사이트에 업데이트되어 있지 않은데, 제 이전 포스트(http://blogs.sun.com/snoopy40/entry/solaris_9_eol_announcement)를 참조하시면 됩니다.


솔라리스 서비스 모델

다음은 솔라리스 서비스 모델을 살펴보도록 하겠습니다. 아래는 솔라리스 섭스크립션 서비스 사이트(http://www.sun.com/service/subscriptions/index.jsp)의 서비스 모델에 대한 표입니다.


  - 솔라리스 서비스 모델 -

오픈소스 소프트웨어는 주로 소프트웨어 사용권(RTU, Right to use)은 무료이고, 소프트웨어에 대한 서비스를 연간 구독(Annual Subscription)하는 방식을 취하고 있는데요. 솔라리스도 마찬가지입니다. 솔라리스 구독(Subscription) 서비스는 크게 베이직, 스탠다드, 프리미엄 서비스로 이루어져 있구요. 베이직 서비스는 솔라리스 패치 및 업데이트와 이와 관련한 문서 접근, 최초 설치 지원, 업무시간 중 온라인 및 전화 지원 등을 포함하고 있으며 스탠다드 서비스는 베이직 서비스에 더해 업무시간 중 4시간 이내 전화 지원서비스를 제공하고, 프리미엄 서비스는 24시간 연중무휴 전화지원 및 SunVIP 상호운용성 지원 등을 포함합니다. Solaris Everywhere 서비스는 일종의 사이트 서비스 계약으로 서버의 수와 관계없이 기업 라이센스로 썬과 서비스 계약을 제공하는 서비스입니다. 서비스의 각 항목에 대한 설명은 한국어 홈페이지(http://kr.sun.com/service/solaris10/index.html)에서도 확인할 수 있습니다.

위의 솔라리스 서비스는 시스템에 대한 서비스와 밀접한 관련이 있어서 썬 장비 위에서 솔라리스를 운용하는 경우 하드웨어 유지보수 계약에 해당하는 썬 스펙트럼 서비스 (http://www.sun.com/service/serviceplans/sunspectrum/resources.jsp) 계약이 솔라리스에 대한 서비스를 포함하고 있습니다. 즉, 하드웨어를 구매 후 서비스 계약을 하게 되면 솔라리스 서비스는 기본으로 제공되는 것입니다.

그리고 솔라리스는 썬 뿐만 아니라 HP, IBM, Fujitsu, Dell 등 탑 5 벤더 모두에 의해서 OEM으로 제공되고 있기 때문에 서비스 또한 각 벤더별 서비스 정책에 따라 서비스가 제공되는데요. 썬에서는 Solaris on IBM, Solaris on Dell, Solaris HP, Solaris on Fujitsu 에 대해서도 위의 테이블에 해당하는 솔라리스 서비스를 제공하고 있습니다. 즉 하드웨어는 IBM의 x86 장비를 사용하면서 운영체제는 썬에서 서비스를 받을 수 있다는 뜻입니다. Solaris Everywhere 서비스의 경우 썬 서버 여부에 관계없이 기업 내 모든 솔라리스에 대한 서비스를 제공할 수 있습니다.

참고로 서비스 비용은 위에 USD 기준으로 표시가 돼 있는데, 각 나라마다 가격 기준이 다르고 할인율(Discount Rate)이 다르며, 솔라리스가 설치된 시스템이 1~2소켓일 경우, 그 이상일 경우에 대한 비용이 다릅니다.

현재 포스팅을 올리는 중에 솔라리스 10의 업데이트 7이 릴리즈 (5월 12일자, ) 되었습니다. 아직 발표일 전이지만 릴리즈 문서(http://docs.sun.com/app/docs/coll/1236.10?l=en) 및 다운로드(http://www.sun.com/software/solaris/get.jsp)는 이미 가능하니 다음 포스팅에서 솔라리스 10 업데이트 7의 신기능에 대해서 이야기해 보겠습니다.

About

Solaris and Oracle/Sun's Technology

Search

Archives
« 4월 2014
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today