가상화 · 5 min read · Dec 22, 2025

KVM을 이용한 Scientific Linux 6.3 서버의 가상화

KVM을 이용한 Scientific Linux 6.3 서버의 가상화

버전 1.0
저자: Falko Timme
Twitter에서 나를 팔로우하세요

이 가이드는 Scientific Linux 6.3 서버에서 가상 머신을 생성하고 실행하기 위해 KVM을 설치하고 사용하는 방법을 설명합니다. 이미지 기반 가상 머신과 논리 볼륨(LVM)을 사용하는 가상 머신을 만드는 방법을 보여드리겠습니다. KVM은 Kernel-based Virtual Machine의 약자로 하드웨어 가상화를 사용합니다. 즉, 하드웨어 가상화를 지원하는 CPU가 필요합니다. 예를 들어 Intel VT 또는 AMD-V가 있습니다.

이것이 당신에게 작동할 것이라는 보장은 하지 않습니다!

1 사전 참고

저는 여기서 KVM 호스트로서 hostname이 server1.example.com이고 IP 주소가 192.168.0.100인 Scientific Linux 6.3 서버를 사용하고 있습니다.

저는 Scientific Linux 6.3 시스템에서 SELinux를 비활성화했습니다. SELinux가 활성화된 상태에서 테스트하지 않았습니다. 작동할 수도 있지만, 작동하지 않을 경우 SELinux를 비활성화하는 것이 좋습니다:

vi /etc/selinux/config

SELINUX=disabled로 설정…

| # 이 파일은 시스템에서 SELinux의 상태를 제어합니다. # SELINUX=은 다음 세 가지 값 중 하나를 가질 수 있습니다: # enforcing - SELinux 보안 정책이 적용됩니다. # permissive - SELinux가 적용 대신 경고를 출력합니다. # disabled - SELinux 정책이 로드되지 않습니다. SELINUX=disabled # SELINUXTYPE=은 다음 두 가지 값 중 하나를 가질 수 있습니다: # targeted - 대상 프로세스가 보호됩니다, # mls - 다중 수준 보안 보호. SELINUXTYPE=targeted |

… 그리고 재부팅:

reboot

우리는 또한 virt-manager를 설치할 데스크탑 시스템이 필요합니다. 이를 통해 설치한 가상 머신의 그래픽 콘솔에 연결할 수 있습니다. 저는 여기서 Fedora 17 데스크탑을 사용하고 있습니다.

2 KVM 설치하기

Scientific Linux 6.3 KVM 호스트:

먼저 CPU가 하드웨어 가상화를 지원하는지 확인합니다. 이 경우 명령어

egrep '(vmx|svm)' --color=always /proc/cpuinfo

가 다음과 같은 내용을 표시해야 합니다:

[root@server1 ~]# egrep '(vmx|svm)' --color=always /proc/cpuinfo  
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall  
 nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse  
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall  
 nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse  
[root@server1 ~]#

아무것도 표시되지 않으면 프로세서가 하드웨어 가상화를 지원하지 않으며 여기서 중단해야 합니다.

이제 소프트웨어 패키지에 대한 GPG 키를 가져옵니다:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

KVM과 virtinst(가상 머신을 생성하는 도구)를 설치하기 위해 다음을 실행합니다:

yum install kvm libvirt python-virtinst qemu-kvm

그런 다음 libvirt 데몬을 시작합니다:

/etc/init.d/libvirtd start

KVM이 성공적으로 설치되었는지 확인하려면 다음을 실행합니다:

virsh -c qemu:///system list

다음과 같은 내용이 표시되어야 합니다:

[root@server1 ~]# virsh -c qemu:///system list  
 Id Name                 State  
----------------------------------  
  
[root@server1 ~]#

대신 오류가 표시되면 문제가 발생한 것입니다.

다음으로, 가상 머신이 네트워크의 물리적 시스템처럼 다른 호스트에서 접근할 수 있도록 서버에 네트워크 브리지를 설정해야 합니다.

이를 위해 bridge-utils 패키지를 설치합니다…

yum install bridge-utils

… 그리고 브리지를 구성합니다. /etc/sysconfig/network-scripts/ifcfg-br0 파일을 생성합니다(여기서 /etc/sysconfig/network-scripts/ifcfg-eth0 파일의 IPADDR, PREFIX, GATEWAY, DNS1 및 DNS2 값을 사용하세요); TYPE=Bridge를 사용하고 TYPE=Ethernet을 사용하지 마세요:

vi /etc/sysconfig/network-scripts/ifcfg-br0

| DEVICE="br0" NM_CONTROLLED="yes" ONBOOT=yes TYPE=Bridge BOOTPROTO=none IPADDR=192.168.0.100 PREFIX=24 GATEWAY=192.168.0.1 DNS1=8.8.8.8 DNS2=8.8.4.4 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System br0" |

/etc/sysconfig/network-scripts/ifcfg-eth0 파일을 다음과 같이 수정합니다(BOOTPROTO, IPADDR, PREFIX, GATEWAY, DNS1 및 DNS2를 주석 처리하고 BRIDGE=br0를 추가합니다):

vi /etc/sysconfig/network-scripts/ifcfg-eth0

| DEVICE="eth0" #BOOTPROTO=none NM_CONTROLLED="yes" ONBOOT=yes TYPE="Ethernet" UUID="73cb0b12-1f42-49b0-ad69-731e888276ff" HWADDR=00:1E:90:F3:F0:02 #IPADDR=192.168.0.100 #PREFIX=24 #GATEWAY=192.168.0.1 #DNS1=8.8.8.8 #DNS2=8.8.4.4 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" BRIDGE=br0 |

네트워크를 재시작합니다…

/etc/init.d/network restart

… 그리고 실행합니다:

ifconfig

이제 네트워크 브리지(br0)가 표시되어야 합니다:

[root@server1 ~]# ifconfig  
br0       Link encap:Ethernet  HWaddr 00:1E:90:F3:F0:02  
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0  
          inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:27 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:460 (460.0 b)  TX bytes:2298 (2.2 KiB)  
  
eth0      Link encap:Ethernet  HWaddr 00:1E:90:F3:F0:02  
          inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:18455 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:11861 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:26163057 (24.9 MiB)  TX bytes:1100370 (1.0 MiB)  
          Interrupt:25 Base address:0xe000  
  
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0  
          inet6 addr: ::1/128 Scope:Host  
          UP LOOPBACK RUNNING  MTU:16436  Metric:1  
          RX packets:5 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:2456 (2.3 KiB)  TX bytes:2456 (2.3 KiB)  
  
virbr0    Link encap:Ethernet  HWaddr 52:54:00:AC:AC:8F  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)  
  
[root@server1 ~]#

3 Fedora 17 데스크탑에 virt-viewer 또는 virt-manager 설치하기

Fedora 17 데스크탑:

우리는 게스트의 그래픽 콘솔에 연결할 수단이 필요합니다. 이를 위해 virt-manager를 사용할 수 있습니다. 당신이 Fedora 17 데스크탑을 사용하고 있다고 가정합니다.

루트가 되세요…

su

… 그리고 실행합니다…

yum install virt-manager libvirt qemu-system-x86 openssh-askpass

… virt-manager를 설치합니다.

(우리가 Ubuntu 12.04 데스크탑을 사용하고 있다면, 다음과 같이 virt-manager를 설치할 수 있습니다:

sudo apt-get install virt-manager

)

4 명령줄에서 Debian Squeeze 게스트(이미지 기반) 생성하기

Scientific Linux 6.3 KVM 호스트:

이제 다시 Scientific Linux 6.3 KVM 호스트로 돌아갑니다.

man virt-install

을 살펴보아 virt-install을 사용하는 방법을 배웁니다.

우리는 /var/lib/libvirt/images/ 디렉토리에 이미지 기반 가상 머신을 생성할 것입니다. 이 디렉토리는 KVM을 설치할 때 자동으로 생성되었습니다.

이름이 vm10이고, RAM이 512MB이며, 가상 CPU가 두 개이고, 디스크 이미지가 /var/lib/libvirt/images/vm10.img(크기가 12GB)인 Debian Squeeze 게스트를 생성하려면, Debian Squeeze Netinstall CD를 CD 드라이브에 삽입하고 다음을 실행합니다:

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /dev/cdrom --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

물론 Debian Squeeze Netinstall CD의 ISO 이미지를 생성할 수도 있습니다(나중에 Fedora 데스크탑에서 virt-manager를 통해 가상 머신을 생성하는 방법을 보여줄 것이므로 /var/lib/libvirt/images/ 디렉토리에 생성하세요. virt-manager는 /var/lib/libvirt/images/ 디렉토리에서 ISO 이미지를 찾습니다)…

dd if=/dev/cdrom of=/var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso

… 그리고 virt-install 명령에서 ISO 이미지를 사용합니다:

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

출력은 다음과 같습니다:

[root@server1 ~]# virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm  


설치 시작 중...  
'vm10.img' 할당 중               |  12 GB     00:00  
도메인 생성 중...               |    0 B     00:00  
도메인 설치가 아직 진행 중입니다.  
콘솔에 다시 연결하여 설치 프로세스를 완료할 수 있습니다.  
[root@server1 ~]#
Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.