본문 바로가기

자격증/리눅스 마스터 1급

Part3) 네트워크 및 서비스의 활용 - 네트워크 서비스 | 가상화 관리

VI. 가상화 관리


가상화 서비스의 이해

1) 가상화 개요 및 주요 기능

*가상화 정의
•가상화는 하드웨어 플랫폼, 운영체제, 스토리지, 네트워크 리소스 등을 시뮬레이션 하는 것이다.

*가상화의 종류

[1] 하드웨어 가상화 - 운영체제와 실제 컴퓨터처럼 동작하는 가상 머신을 소프트웨어적으로 구성 한 것이다.

 전가상화: 하드웨어를 모두 시뮬레이션 하며, 게스트 OS와 실제 하드웨어 사이를 중재하는 가상머신을 이용한다. 이때 CPU가 VT 기능을 제공해야 하며, 게스트 OS의 수정이 필요하지 않다.

반가상화: 하드웨어를 완전히 가상화 하지 않는데, 이로 인해 성능은 향상되지만, 게스트 OS를 수정해야 한다. 이러한 이유로 비공개 OS를 사용할 수 없다.


[2] 데스크톱 가상화 - 1대의 PC를 여러명이 나눠 쓰기 위해 개발 되었으며, 데스크톱 가상화의 한 형태인 VDI는 하드웨어 가상화의 진보된 형태로 생각 할 수 있다. 사용자는 네트워크를 통해 다른 단말을 사용하여 호스트 컴퓨터와 연결하는데, 이는 데이터 및 자원을 중앙 집중 관리할 수 있고 단물은 더욱 저렴하게 만들 수 있어 기업의 자원관리를 극대화 시킬 수 있다.

[3] 기타 가상화

OS 레벨 가상화: 하나의 OS를 다수의 가상화된 OS 환경으로 나눠 마치 각각의 독립된 OS처럼 보이게 하는 기술이다. 하나의 물리적 서버에 여러 개의 독립된 VPS 또는 VE와 같은 운영체제 인스턴스를 실행한다. (ex. OpenVZ, LXC)

어플레이션 가상화: 초기 UCSD 파스칼에서 최초 시도되었고 현재 JVM처럼 프로그램소스를 컴파일하여 가상코드를 생성하여 가상머신이 설치된 곳이면 어디서든 돌아갈 수 있는 이식성 높은 프로그램을 개발할 수 있다.

메모리 가상화: 각 서버의 메모리 자원을 고성능 네트워크를 통해 하나의 메모리 풀을 생성하는 가상화이다.

스토리지 가상화: 물리적 스토리지를 논리적 스토리지로 가상화 시키는 것이다.



2) 리눅스 기반 가상화 서비스 종류 및 특징

①KVM
•2006년 전가상화 방식을 사용하여 개발한 하이퍼바이저로, Disk I/O의 반가상화를 지원한다.
x86 시스템 기반의 리눅스 전가상화를 지원하는 기술로 CPU 가상화 기술인 인텔의 VT 및 AMD-V를 기반으로 동작한다.
QEMU이라는 CPU 에뮬레이터를 사용하고, 수정되지 않은 리눅스나 윈도우의 이미지를 생성하여 다중의 가상머신을 운영한다.
•특정장치에 대해 반가상화를 제공한다. [CPU는 제공하지 않음]
•커널 모드, 사용자 모드 이외에도 게스트 운영체제에 실행에 사용되는 게스트 모드도 있다.

ex)RHEV: KVM 기반의 하이퍼바이저 오픈소스 서버 가상화 솔루션으로 SPICE 프로토콜과 VDSM을 사용하여 관리하는 솔루션


②XEN
•오픈소르 type-1 하이퍼바이저로 각기 다른 많은 운영체제를 하나의 컴퓨터에 병렬로 실행시키는 가상화이다.
•서버가상화, Iaas, 데스크탑 가상화 등 다양한 곳에 사용된다.

특징
가벼운 용량과 인터페이스: 마이크로커널 디자인과 작은 메모리 사용량, 제한적인 인터페이스를 사용하기 때문에 다른 하이퍼바이저보다 더 강력하고 안전하다.
운영체제에 독립적: 메인 컨트롤 스택은 리눅스에 설치되어 실해되는데 리눅스 대신에 NetBSD, 오픈 솔라리스를 사용할 수 있다.
드라이버 격리(isolation): 가상머신 내에서 실행하는 주장치 드라이버를 허용하는 기능이 있는데, 드라이버가 충돌 및 손상된 경우, 가상머신을 재부팅하고 드라이버가 시스템의 나머지 부분에 영향을 주지않고 다시 시작 할 수 있다.
반가상화: Xen은 전가상화, 반가상화를 모두 지원하며, CPU 반가상화 지원으로 다른 기술과 비교해서 물리적서버 대비 효율성이 가장 좋다. 반가상화 구성시에는 호스트와 다른 아키텍처의 게스트는 실행할 수 없으며, 전가상화 구성시엔 QEMU 기반으로 동작한다
Xen 하이퍼바이저는 하드웨어 위에서 직접 실행되면서, CPU, 메모리, 인터럽트를 관리하는 역할을 하는 매우 가벼운 S/W 계층이다. 네트워킹 및 스토리지와 같은 I/O기능에 대해 관여하지 않는다.
게스트 종류
-Xen 반가상화(PV): 효율적이고 가벼운 가상화 기술로, 호스트 CPU에서 가상화 확장 기능을 필요로 하지 않는다.
-Xen 전가상화(HVM): CPU 가상화 확장 기능을 사용한다. Intel VT 또는 AMD-V 확장기능을 요구하고 컴퓨터의 BIOS에서 가상화 확장기능의 활성화 되어 있어야 한다.
-전가상화에 반가상화: 전가상화 환경과 에뮬레이션을 우회하는 디스크 및 네트워크IO에 최적화된 반가상화 드라이버들이다.


가상화 서비스 구축

1) KVM 서비스 구축

*KVM 구축

[1] CPU 스펙 확인 - CPU 가상화 지원 여부 확인 : '/proc/cpuinfo'
root@bjkim:~# egrep "vmx|svm" /proc/cpuinfo


[2] KVM 패키지 설치
root@bjkim:~# yum groupinstall "Virtualization" "Virtualization Client" \ "Virtualization Platform"

설치되는 패키지
Virtualzation 그룹
- qemu-kvm : KVM의 사용자 공간 구성요소

•Virtualzation Client 그룹
- python-virtinst :  가상머신을 설치하기 위한 Python 모듈 및 유틸리티
- virt-manager :  가상 머신을 손쉽게 시작 및 종료할 수 있고, 가상 머신의 CPU 사용량, 호스트 CPU 사용량 등을 모니터링 할 수 있는 GUI 기반의 도구
- virt-viewer :  Xwindow상태의 가상머신 뷰어
- virt-top :  top과 비슷한 실시간으로 가상 머신별로 자원 사용률을 모니터링 할때 사용하는 CUI 프로그램

•Virtualzation Platform 그룹
- libvirt : 간단한 가상화 API를 제공하기 위한 라이브러리
- libvirt-client : 사용자 환경에서의 libvirt 라이브러리 및 유틸리티

[3] 가상화 운영 데몬 실행(libvirtd)
root@bjkim:~# service libvird start libvirtd
데몬을 시작 중:                           [ OK ]

[4] 가상머신 생성 및 관리

-가상머신 관리자 실행
root@bjkim:~# virt-manager

-가상 머신 설정 내역 (/etc/libvrit/qemu/)
root@bjkim:~# ls -l /etc/libvirt/qemu/
합계 8
-rw-------. 1 root root 2431 2013-08-24 07:32 Bjkim-Guest1.xml
drwx------. 3 root root 4096 2013-08-24 07:02 networks

-가상화 디스크 이미지 (/var/lib/libvirt/images/)
root@bjkim:~# ls -lh /var/lib/libvirt/images/
합계 3.7G
-rw-------. 1 root root 3.7G 2013-08-24 07:39 Bjkim-Guest1.img

-가상머신 관리 (virsh)
root@bjkim:~# virsh list
Id   이름                  상태
-------------------------------------------------
4    Bjkim-Guest1         실행중
▲텍스트 기반의 콘솔 환경에서 가상 머신을 관리해주는 도구로 생성, 시작, 재시작, 종료, 강제 종료 등의 기능을 수행



2) Xen 서비스 구축

*Xen 구축

[1] XEN 설치
root@bjkim:~# yum install "Virtualization"

설치되는 패키지
Virtualzation 그룹
- kernel-xen :  Xen관련 소스가 커널에 패치된 리눅스 커널
- xen :  Xen 하이퍼 바이저와 Xen 관련 유틸리티
- gnome-applet-vm : 그놈판넬에서 제공되는 가상머신 모니터
- libvirt : 간단한 가상화 API를 제공하기 위한 라이브러리
- virt-manager : 가상머신 관리자(GUI)


[2] 가상머신 생성 및 관리

-가상머신 관리자 실행
root@bjkim:~# virt-manager

-가상 머신 설정 내역 (/etc/xen/)
root@bjkim:~#  ls -l /etc/xen/
합계 108
-rw------- 1 root root 522  4월 25 10:13 winxp
drwxr-xr-x 2 root root 4096 4월  8  2013 auto
-rwxr-xr-x 1 root root 156  5월 18  2013 qemu-ifup
drwxr-xr-x 2 root root 4096 6월  3  2013 scripts
-rw-r--r-- 1 root root 6152 4월  8  2013 xend-config.sxp
-rw-r--r-- 1 root root 1256 4월  8  2013 xend-pci-permissive.sxp
-rw-r--r-- 1 root root 4129 4월  8  2013 xend-pci-quirks.sxp
-rw-r--r-- 1 root root 7264 4월  8  2013 xmexample.hvm
-rw-r--r-- 1 root root 5315 4월  8  2013 xmexample.vti
-rw-r--r-- 1 root root 5463 4월  8  2013 xmexample1
-rw-r--r-- 1 root root 6746 4월  8  2013 xmexample2


-가상화 디스크 이미지 (/var/lib/xen/images/)
root@bjkim:~#  ls -lh /var/lib/xen/images/
합계 3.7G
-rw-------. 1 root root 4G 2013-08-24 07:39 winxp.img

-가상머신 관리 (virsh, xm)

root@bjkim:~# virsh list
Id   이름                  상태
-------------------------------------------------
4    winxp                 실행중

root@bjkim:~# xm list
Name                           ID Mem(MiB) VCPUs  State    Time(s)
winxp                           26   1031      1  -b----  322907.2
가상화 서비스의 운영

1) 게스트 운영 체제 시작 및 종료

*가상머신 시작과 종료

[1] 시작
root@bjkim:~# virsh start Bjkim-Guest1
도메인 Bjkim-Guest1가 시작됨

[2] 종료
root@bjkim:~#virsh destroy Bjkim-Guest1
Bjkim-Guest1 도메인 강제 종료

2) 시스템 리소스 관리


사용 가능 명령어 :  top, sar, virt-manager, virt-top



※그외 가상화 문제


절연(Insulation) : 가상화 자원들 또는 가상화 자원들을 사용하는 사용자들에게 아무런 영향을 미치지 않으면서 물리적인 자원들이 교체될 수 있도록 해준다.

향상된 프로비저닝 : 사용자의 요구사항에 맞게 할당, 배치, 배포할 수 있도록 만들어 놓는 것을 말한다. 가상화 기반의 자원 할당은 개별 물리적 단위보다도 더 세밀한 조각 단위에서 가능하도록 해준다.


리눅스에서 사용가능한 서버 가상화 기술 : Docker, Cloudstack, Openstack


XEN,KVM 과 같은 다양한 하이퍼바이저를 통합 관리하기 위한 플랫폼 : Cloudstack, Openstack, OpenNebula [Docker X]


버추얼 박스 이용해서 가상 머신을 생성한 후에 CentOS69라는 이름으로 리눅스 설치 시 생성되는 파일명 : CentOS69.vdi


서버 가상화의 장점 : 효율적인 서버 자원 이용 가능, 서버가 차지하고 있는 물리적 공간 절약, 데이터 및 서비스에 대한 가용성이 증가


하이퍼바이저 기반으로 생성되는 가상 머신의 수에 가장 큰 영향을 주는 항목 : CPU 코어 수