본문 바로가기
운영체제 (LNX,WIN)

Solaris 10 Zone 구성 및 리소스 분배

by 날으는물고기 2009. 5. 28.

Solaris 10 Zone 구성 및 리소스 분배

파일 시스템은 ZFS를 이용하고 있으며, 서버는 SUN SPARC T5240이다.
CPU는 core가 128개 장착되어 있으며, Memory는 64GB, HDD는 146GB 3개, NIC는 4개가 있다.

# zone 생성을 위한 파일 시스템 생성(zfs 이용)
$ zfs create [경로]
 - ex) $ zfs create data/cs
$ chmod 700 [경로]
 - ex) $ chmod 700 data/cs

# zone 구성
$ zonecfg -z [zone이름]
 - ex) $ zonecfg -z cs

# zone 생성
zonecfg:[zone이름] > create
 - ex) zonecfg:cs > create
zonecfg:[zone이름] > set zonepath=[경로]
 - ex) zonecfg:cs > set zonepath=/data/cs

# zone network 설정
1) Physical Network Interface를 공유해서 사용하는 경우 (shared 모드)
zonecfg:[zone이름] > add net
 - ex) zonecfg:cs > add net
zonecfg:[zone이름]:net > set physical=[인터페이스 이름]
 - ex) zonecfg:cs:net > set physical=nxge1
zonecfg:[zone이름]:net > set address=[IP 주소]
 - ex) zonecfg:cs:net > set physical=xxx.xxx.xxx.xxx
zonecfg:[zone이름]:net > end
 - ex) zonecfg:cs:net > end

2) Physical Network Interface를 독립적으로 사용하는 경우 (exclusive 모드)
zonecfg:[zone이름] > set ip-type=exclusive
 - ex) zonecfg:cs > set ip-type=exclusive
zonecfg:[zone이름] > add net
 - ex) zonecfg:cs > add net
zonecfg:[zone이름]:net > set physical=[interface이름]
 - ex) zonecfg:cs:net > set physical=nxge1
zonecfg:[zone이름]:net > end
 - ex) zonecfg:cs:net > end

# zone 구성 마무리
zonecfg:[zone이름] > verify
 - ex) zonecfg:cs > verify
zonecfg:[zone이름] > commit
 - ex) zonecfg:cs > commit
zonecfg:[zone이름] > exit
 - ex) zonecfg:cs > exit

# zone에 solaris 설치
$ zoneadm -z [zone이름] install
 - ex) $zoneadm -z cs install

# zone booting
$ zoneadm -z [zone이름] boot
 - ex) $zoneadm -z cs boot

# zone에 접속
$ zlogin -C [zone이름]
 - ex) $ zlogin -C cs

# Solaris 10 설치 후 서버 재부팅
# 설치 과정은 보통 Solaris의 설치와 동일하다.
# 설치해본 결과 오히려 윈도우보다도 간단했다.

# Network Interface 설정
# exclusive 모드로 설정한 경우에만 수행

# ifconfig를 통해 network interface card 등록
$ ifconfig [interface이름] plumb
 - ex) $ ifconfig nxge1 plumb

[참고] Network Interface Instance Name(Solaris 10 기준)

-----------------------------------------------------------------------------------
NIC     Description
-----------------------------------------------------------------------------------
bge     - SUNW,bge Gigabit Ethernet driver for Broadcom BCM57xx
ce       - Cassini Gigabit-Ethernet device driver
chxge - Chelsio Ethernet network interface controllers
dmfe   - Davicom Fast Ethernet driver for Davicom DM9102A
dnet    - Ethernet driver for DEC 21040, 21041, 21140 Ethernet cards
elxl     - 3Com Ethernet device driver
eri      - eri Fast-Ethernet device driver
ge      - GEM Gigabit-Ethernet device driver
hme   - SUNW,hme Fast-Ethernet device driver
ipge   - PCI-E Gigabit-Ethernet device driver for Intel 82571?based ethernet
            controller.
ixgb   - SUNWixgb, 10 Gigabit Ethernet driver for Intel 82597ex controllers
            and Sun Kirkwood adapters
nge    - Nvidia ck8-04 Gigabit Ethernet driver
nxge  - Sun 10/1 Gigabit Ethernet network driver
pcelx - 3COM EtherLink III PCMCIA Ethernet Adapter
pcn    - AMD PCnet Ethernet controller device driver
qfe     - SUNW,qfe Quad Fast-Ethernet device driver
rge    - Realtek Gigabit Ethernet Network Adapter driver
rtls    - Realtek Fast Ethernet 8139?based network interface controllers
sk98sol - SysKonnect Gigabit Ethernet SK-98xx device driver
spwr  - SMC EtherPower II 10/100 (9432) Ethernet device driver
xge    - Neterion Xframe 10Gigabit Ethernet Network Adapter driver
-----------------------------------------------------------------------------------

# ifconfig를 이용한 network interface card up
$ ifconfig [Interface이름] up
 - ex) $ ifconfig nxge1 up

# ifconfig를 통한 network interface card 설정
$ ifconfig [Interface이름] [IP주소] netmask [network mask] broadcast [broadcast address]
 - ex) $ ifconfig nxge1 xxx.xxx.xxx.xxx netmask 255.255.255.0 broadcast xxx.xxx.xxx.255

# 아래 내용은 exclusive, shared 모두 수행
# 재부팅 후 설정값을 사용하기 위해 파일에 저장
$ vi /etc/hostname.nxge1
 - 호스트 네임을 적는다.
$ vi /etc/hosts
[IP주소] [호스트이름] loghost

# gateway 설정
$ route add default [게이트웨이주소]

# netmask 설정
$ vi /etc/netmasks
xxx.xxx.xxx.0 255.255.255.0

# ssh 설정
$ vi /etc/ssh/sshd_config

# zone 리소스 분배
# CPU 분배
$ zonecfg -z [zone이름]
 - ex) $ zonecfg -z cs
zonecfg:[zone이름] > add dedicated-cpu
 - ex) zonecfg:cs > add dedicated-cpu
zonecfg:[zone이름]:dedicated-cpu > set ncpus=[최소CPU]-[최대CPU]
 - ex) zonecfg:cs:dedicated-cpu > set ncpus=20-40
zonecfg:[zone이름]:dedicated-cpu > end
 - ex) zonecfg:cs:dedicated-cpu > end
zonecfg:[zone이름] > verify
 - ex) zonecfg:cs > verify
zonecfg:[zone이름] > commit
 - ex) zonecfg:cs > commit
zonecfg:[zone이름] > exit
 - ex) zonecfg:cs > exit
$ zoneadm -z [zone이름] reboot
 - ex) $ zoneadm -z cs reboot

# CPU 풀 확인을 통해 자원 배분 현황 파악
$ poolstat -r pset
$ psrset

# 메모리 분배
$ zonecfg -z [zone이름]
zonecfg:[zone이름] > add capped-memory
 - ex) zonecfg:cs > add capped-memory
zonecfg:[zone이름]:dedicated-cpu > set physical=[메모리 할당량]
 - ex) zonecfg:cs:dedicated-cpu > set physical=20g
zonecfg:[zone이름]:dedicated-cpu > end
 - ex) zonecfg:cs:dedicated-cpu > end
zonecfg:[zone이름] > verify
 - ex) zonecfg:cs > verify
zonecfg:[zone이름] > commit
 - ex) zonecfg:cs > commit
zonecfg:[zone이름] > exit
 - ex) zonecfg:cs > exit
$ zoneadm -z [zone이름] reboot
 - ex) $ zoneadm -z cs reboot

# 메모리 풀 확인을 통해 자원 배분 현황 파악
$ rcapstat -z 2
728x90

댓글