공개 SW 솔루션설치 & 활용가이드 시스템 SW > 가상화 제대로배워보자 How to Use Open Source Software Open Source Software Installation & Application Guide
CONTENTS 1. 개요 2. 기능요약 3. 실행환경 4. 설치및실행 5. 기능소개 6. 활용예제 7. FAQ 8. 용어정리
- 3-1. 개요 소개 주요기능 KVM(Kernel-based Virtual Machine) 은가상화확장 (Intel VT or AMD-V) 을제공하는 x86 하드웨어상의리눅스에대한전가상화 (full virtualization) 솔루션 핵심가상화인프라를제공하는적재가능한커널모듈 (kvm.ko) 과프로세서전용모듈 (intel.ko or kvmamd.ko) 로구성및리눅스커널 2.6.20 버전부터메인커널에포함 KVM 은 RedHatEnterpriseLinux(RHEL), CentOS,Fedora 기반리눅스등에기본적으로포함되어있는 hypervisor 로손쉽게사용가능 KVM 은커널에서커널모듈을이용하여 hypervisor 로전환한다는점에서전가상화방식 일반적인리눅스커널을사용 리눅스의하드웨어확장성, power management, hot-plug 등의기능상속 KVM 은특정장치에대해반가상화를제공하며,SPICE 또는 VMWARE 드라이버를사용하여 VGA 그래픽인터페이스반가상화지원 대분류 시스템 SW 소분류 가상화 라이선스형태 GNU GPL 또는 LGPL 사전설치솔루션 Intel : vmx flag AMD : svm fkage 운영제제 Linux 버전 qemu-kvm-1.2.0 특징 보안취약점 KVM 에서가상화를제공하기위해서는한가지전제조건이붙는데, 사용하는 CPU 에서 HVM(Hardware Virtual Machine) 기능제공필요 hypervisor 가물리적인하드웨어전체에직접접근하지만, 이 hypervisor 자체가실제리눅스커널의모듈형태로제공한다는점에서다른전가상화에비해나은성능과가상화관리환경제공 호스트서버에서보면게스트서버는하나의프로세스간주되므로 overhead 가거의없어전가상화와반가상화의장점만모아둔 hypervisor 로평가 Linux, BSD, SOLARIS, WINDOWS, HAIKU, REACTOS, PLAN9, AROS RESERCH OS 등다양한 Guest OS 를지원하고, QEMU-KVM 을이용하면 MAC OS X 도지원 취약점 ID : CVE-2018-10901 심각도 : 7.8 HIGH(V3) 취약점설명 : Linux 커널의 KVM 가상화하위시스템에결함이발견 대응방안 : Red Hat Enterprise Linux 6.6 이상으로업데이트 참고경로 : https://access.redhat.com/errata/rhsa-2018:2392 개발회사 / 커뮤니티 Open Virtualization Alliance(OVA) 공식홈페이지 www.linux-kvm.org
- 4-2. 기능요약 주요기능 지원여부 KVM 은리눅스커널을커널모듈을이용하여 hypervisor 로전환한다는점에서전가상화방식이다. 지원 KVM 은윈도우를게스트로설치할수있으므로전가상화를지원한다고볼수있다. 또한 KVM 이설치되지않은서버에는 QEMU 를설치하는데 QEMU 는대표적인반가상화지원 hypervisor 이며, KVM 은 QEMU 를기반으로돌아가는 hypervisor 이므로반가상화와전가상화를모두지원한다고볼수있다. 지원 KVM 은특정장치에대해반가상화를제공한다. VMWARE 드라이버를사용하여 VGA 그래픽인터페이스반가상화를지원한다. 지원 Hypervisor 는물리적인하드웨어전체에직접접근하지만, 이 hypervisor 자체가실제리눅스커널의모듈형태로제공한다는점에서다른전가상화에비해더좋은성능과가상화관리환경을제공한다. 지원 Linux, BSD, SOLARIS, WINDOWS, HAIKU, REACTOS, PLAN9, AROS RESERCH OS 등다양한 Guest OS 를지원하고, QEMU-KVM 을이용하면 MAC OS X 도지원한다. 지원
- 5-3. 실행환경 1. OS CentOS Linux release 7.3.1611 (Core) 환경 2. 사전설치솔루션 vmx flag : Intel CPUs svm flag : AMD CPUs -> 해당 machine의 CPU가가상화를지원해야한다. virt-manager-1.4.0-2.el7.noarch libvirt-python-2.0.0-2.el7.x86_64 libvirt-client-2.0.0-10.el7_3.9.x86_64 libvirt-2.0.0-10.el7_3.9.x86_64 3. KVM package qemu-img-1.5.3-126.el7_3.10.x86_64 qemu-kvm-1.5.3-126.el7_3.10.x86_64
- 6-4. 설치및실행 세부목차 4.1 Verify virtualization support 4.2 Installing the KVM modules 4.3 Start the service daemon 4.4 Verify that the KVM module is loaded 4.5 Start the virt-manager
4. 설치및실행 4.1 Verify virtualization support CPU 가가상화를지원하는지확인 -> vmx flag : Intel CPUs svm flag : AMD CPUs -> grep E '(vmx svm)'/ proc / cpuinfo 출력화면에서 vmx 또는 svm 이라는단어를찾아야한다. 그렇지않으면 CPU 가가상화를지원하지않는다. - 7 -
- 8-4. 설치및실행 4.2 Installing the KVM modules(1/3) KVM 관련 Package 설치 1 -> yum install qemu-kvm qemu-img
- 9-4. 설치및실행 4.2 Installing the KVM modules(2/3) KVM 관련 Package 설치 2 -> yum install virt-manager libvirt libvirt-python libvirt-client -> GUI 환경을설치하지않았거나그래픽환경으로관리할생각이없다면 virt-manager 패키지는제외해도무관하다.
- 10-4. 설치및실행 4.2 Installing the KVM modules(3/3) KVM 관련 Package 설치 3 -> yum groupinstall virtualization-client virtualization-platform virtualization-tools
4. 설치및실행 4.3 Start the service daemon 가상화 machine 생성을위한서비스데몬 (libvirtd) 을실행및확인 -> Systemctl start libvirtd -> Systmectl enable libvirtd - 11 -
- 12-4. 설치및실행 4.4 Verify that the KVM module is loaded lsmode grep kvm yum install -y "@X Window System" xorg-x11-xauth xorg-x11-fonts-* xorg-x11-utils -> Minimal 환경으로 os 를설치한경우에는 virt-manager 가작동하지않기때문에 x-window package 를설치해야한다.
- 13-4. 설치및실행 4.5 Start the Virt-Manager KVM 실행 -> virt-manager
- 14-5. 기능소개 세부목차 5.1 Clone 5.1 HardDisk size 변경 5.1 KVM Performance 확인
- 15-5. 기능소개 5.1 Clone(1/3) 구축되어있는가상머신을복제하여 clone 을생성할수있는기능이다.
- 16-5. 기능소개 5.1 Clone(2/3) Virtual Machine Manage 에서 Clone 을선택하여진행한다.
- 17-5. 기능소개 5.1 Clone(3/3) Clone 된가상머신을확인할수있다.
5. 기능소개 5.2 HardDisk Size 변경 해당 directory 는 root 권한이없으면열람이안되기때문에 root 계정을써서접근한다. - cd /var/lib/libvirt/images - qemu-img resize [ 크기조정할이미지파일이름 ] +100G ( 사용자임의 ) - 18 -
- 19-5. 기능소개 5.3 KVM Performance 확인 가상머신의성능을확인한다. - virt-manager -> Edit -> Preferences ->Polling : 사용자가확인하고싶은 option 선택 가능하다.
- 20-6. 활용예제 세부목차 6.1 예제소개 6.2 Configure bridge Interface 6.3 Start Creating Virtual Machines from virt-manager 6.4 Start Creating Virtual Machines from Command Line
- 21-6. 활용예제 6.1 예제소개 본예제는프로젝트내부에서사용할수있는 KVM 을사용하여 virtual machine 를 구축한다. 구축방법은총 2 가지가있다. GUI 모드인 virt-manage 를사용하여구축하는것과 Command Line 으로구축하는것이다. 이 2 가지방법을모두사용하여 OS 환경을구축하는것을목표로한다.
6. 활용예제 6.2 Configure Bridge Interface(1/3) Configure Bridge Interface(1/3) hypervisor 네트워크외부에서가상시스템에접근하려면 Bridge interface 필요하다. - cd /etc/sysconfig/network-scripts/ - cp ifcfg-ens32 ifcfg-br0 <- ifcfg-ens32 ( 사용자별로다르다.) Interface 파일을편집한다. - vi ifcfg-ens32 TYPE=Ethernet BOOTPROTO=static DEVICE=ens32 ONBOOT=yes BRIDGE=br0-22 -
6. 활용예제 6.2 Configure Bridge Interface(2/3) Configure Bridge Interface(2/3) Bridge 파일편집한다. - vi ifcfg-br0 TYPE=Bridge BOOTPROTO=static DEVICE=br0 ONBOOT=yes IPADDR= 사용자 IP NETMASK=255.255.255.0 GATEWAY= 사용자 Gateway DNS1=192.168.10.11-23 -
6. 활용예제 6.2 Configure Bridge Interface(3/3) Configure Bridge Interface bridge interface 를사용하려면 network 서비스를재시작한다. - systemctl restart network Bridge interface 확인한다. - ip addr show br0-24 -
- 25-6. 활용예제 6.3 Start Creating Virtual Machines from Virt-manager(1/7) Start Creating Virtual Machines from Virt-manager(1/7) 관리 console 을이용하여원격으로접속한다. - terminal 창에 virt-manager 입력한다. - file -> add connection 을선택하여원격설정을설정한다. Method : SSH Username : root Hostname : host ip yes passwd
- 26-6. 활용예제 6.3 Start Creating Virtual Machines from Virt-manager(2/7) Start Creating Virtual Machines from Virt-manager(2/7) New Virtual Machine 선택한다. Local install media 선택한다.
- 27-6. 활용예제 6.3 Start Creating Virtual Machines from Virt-manager(3/7) Start Creating Virtual Machines from Virt-manager(3/7) ISO 파일의경로를지정한다. - cd /var/lib/libvirt/images/ 안에 iso 파일이있어야한다.
- 28-6. 활용예제 6.3 Start Creating Virtual Machines from Virt-manager(4/7) Start Creating Virtual Machines from Virt-manager(4/7) RAM 및 CPU 지정한다. Storage size 지정한다. 가상머신의이름을지정하고네트워크를 Bridge br0로선택한다.
- 29-6. 활용예제 6.3 Start Creating Virtual Machines from Virt-manager(5/7) Start Creating Virtual Machines from Virt-manager(5/7) 설치를시작한다. passwd
- 30-6. 활용예제 6.3 Start Creating Virtual Machines from Virt-manager(6/7) Start Creating Virtual Machines from Virt-manager(6/7) 설치과정
6. 활용예제 6.4 Start Creating Virtual Machines from Command Line(1/3) Start Creating Virtual Machines from Command Line(1/3) virt-install 명령을사용하여 console 에서가상머신을생성한다. - virt-install --name=fedora23 --file=/var/lib/libvirt/images/fedora23.dsk --file-size=20 --nonsparse --graphics spice --vcpus=2 --ram=2048 --cdrom=/var/lib/libvirt/images/fedora-server-dvd-x86_64-23.iso --network bridge=br0 --os-type=linux --os-variant=generic - 31 -
- 32-6. 활용예제 6.4 Start Creating Virtual Machines from Command Line(2/3) Start Creating Virtual Machines from Command Line(2/3) 설치시작
- 33-6. 활용예제 6.4 Start Creating Virtual Machines from Command Line(3/3) Start Creating Virtual Machines from Command Line(3/3) 설치완료
- 34-7. FAQ Q KVM과 Xen의차이점은무엇입니까? & A Xen 은외부 hypervisor로, machine의제어를담당하며 guest 사이의자원들을분할하는역할을수행합니다. 반면, KVM은 Linux의일부이며일반적인 Linux 스케줄러및메모리관리방법을사용합니다. 이는 KVM이사용하기쉽고, KVM만의특색이있다는것을의미합니다.(ex. KVM은 RAM을비우기위해 disk를 guest로스왑할수있습니다.) 또한 KVM은 x86 HVM(vt/svm 명령어세트 ) 를지원하는프로세서에서만실행되며, Xen은반가상화라고불리는기술을사용하여 non-hvm x86 프로세서에서수정된운영체제를실행할수있습니다. KVM은 CPU의반가상화를지원하지않지만 I/O 성능을향상시키기위해장치드라이버의반가상화를지원할수있습니다.
- 35-7. FAQ Q KVM 과 VMware의차이점은무엇입니까? & A VMware는유료제품이지만, KVM은 GPL에속한무료소프트웨어입니다. Q KVM은어떤커널버전에서동작합니까? & A 사용중인 KVM 버전에따라다르며, KVM의최신버전은최신커널 (2.6.17 이상 ) 에서동작하며구버전은이전커널버전에서도동작한다.
- 36-8. 용어정리 용어 전가상화 반가상화 설명 전가상화는 hypervisor 를이용해호스트서버장치가직접가상화되어가상머신이직접장치를사용할수있도록하는방식이다. 하드웨어를모두가상화하여 Hosting 되는운영체제의수정없이다양한 OS 지원가능하다. 전가상화가가능하려면우선가상머신이호스트서버의 CPU 에직접접근이가능하여장치의사용을명령해야한다. 따라서, CPU 가전가상화를지원하는 VT(Virtualization Technology) 를지원해야한다. 소프트웨어인터페이스를근본하드웨어와완전히똑같지는않지만근본하드웨어와비슷한가상머신에제공하는가상화기술이다. QEMU 하이퍼바이저 (hypervisor) 가상화소프트웨어가운데하나이며, x86 이외의기종을위해만들어진소프트웨어스택전체를가상머신위에서실행할수있다 가상화기술에서, hypervisor 는단일시스템에서여러운영체제 ( 또는동일한운영체제의여러인스턴스 ) 를관리하는소프트웨어프로그램이다. Hypervisor 는시스템의프로세서, 메모리및기타자원들을관리하여각운영체제에필요한부분을할당한다. Hypervisors 는특정프로세서아키텍처를위해설계되었으며, 가상화관리자라고도한다.
Open Source Software Installation & Application Guide 이저작물은크리에이티브커먼즈 [ 저작자표시 비영리 동일조건변경허락 2. 0 대한민국라이선스 ] 에따라이용하실수있습니다.