가상화 · 5 min read · Jan 07, 2026

페도라 17 서버에서 KVM으로 가상화하기

페도라 17 서버에서 KVM으로 가상화하기

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

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

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

1. 사전 참고 사항

여기서 저는 KVM 호스트로서 서버 이름이 server1.example.com이고 IP 주소가 192.168.0.100인 페도라 17 서버를 사용하고 있습니다.

저는 페도라 17 시스템에서 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를 설치할 데스크탑 시스템이 필요합니다. 여기서는 페도라 17 데스크탑을 사용하고 있습니다.

2. KVM 설치하기

페도라 17 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 데몬의 시스템 시작 링크를 생성하고 시작합니다:

systemctl enable libvirtd.service  
systemctl start libvirtd.service

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

virsh -c qemu:///system list

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

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

오류가 표시되면 무언가 잘못된 것입니다.

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

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

yum install bridge-utils

… 그리고 브리지를 구성합니다.

저는 페도라의 NetworkManager를 비활성화하고 “정상” 네트워킹을 활성화합니다. NetworkManager는 네트워크 연결이 변경될 수 있는 데스크탑에 적합하지만(예: LAN과 WLAN), 서버에서는 일반적으로 네트워크 연결을 변경하지 않습니다:

systemctl disable NetworkManager.service  
systemctl enable network.service  
systemctl restart network.service  
systemctl stop NetworkManager.service

/etc/resolv.conf를 확인하여 이전에 구성한 모든 네임서버가 나열되어 있는지 확인합니다:

cat /etc/resolv.conf

네임서버가 누락된 경우 다음을 실행합니다:

system-config-network

그리고 누락된 네임서버를 다시 추가합니다.

다음으로, 다음을 실행하여 기본 네트워크 인터페이스를 찾습니다:

ifconfig

제 경우에는 em1로 명명되어 있습니다. 이는 올바른 네트워크 구성 파일을 편집하는 것이 중요합니다. 제 경우에는 /etc/sysconfig/network-scripts/ifcfg-em1입니다.

브리지를 구성하려면 /etc/sysconfig/network-scripts/ifcfg-br0 파일을 생성합니다(여기서 DNS1(및 기타 DNS 설정이 있는 경우), GATEWAY, IPADDR, NETMASK 및 SEARCH 값을 /etc/sysconfig/network-scripts/ifcfg-em1 파일에서 가져오세요):

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

| DEVICE=br0 TYPE=Bridge BOOTPROTO=static DNS1=8.8.8.8 GATEWAY=192.168.0.1 IPADDR=192.168.0.100 NETMASK=255.255.255.0 ONBOOT=yes DNS2=8.8.4.4 SEARCH="example.com" |

/etc/sysconfig/network-scripts/ifcfg-em1을 다음과 같이 수정합니다(BOOTPROTO, DNS1(및 기타 모든 DNS 서버, 있는 경우), GATEWAY, IPADDR, NETMASK 및 SEARCH를 주석 처리하고 NM_CONTROLLED를 no로 설정하고 BRIDGE=br0를 추가합니다):

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

| UUID="e8a818cc-0e23-47b8-88f3-013567828572" NM_CONTROLLED=no #BOOTPROTO=none HWADDR=00:1e:90:f3:f0:02 ONBOOT=yes #IPADDR=192.168.0.100 #NETMASK=255.255.255.0 #DNS2=8.8.4.4 TYPE=Ethernet #GATEWAY=192.168.0.1 #DNS1=8.8.8.8 IPV6INIT=no USERCTL=no PREFIX=24 BRIDGE=br0 |

그런 다음 시스템을 재부팅합니다:

reboot

재부팅 후 다음을 실행합니다:

ifconfig

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

[root@server1 ~]# ifconfig  
br0: flags=4163  mtu 1500  
        inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255  
        inet6 fe80::21e:90ff:fef3:f002  prefixlen 64  scopeid 0x20  
        ether 00:1e:90:f3:f0:02  txqueuelen 0  (Ethernet)  
        RX packets 70  bytes 7511 (7.3 KiB)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 76  bytes 10847 (10.5 KiB)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  
  
em1: flags=4163  mtu 1500  
        ether 00:1e:90:f3:f0:02  txqueuelen 1000  (Ethernet)  
        RX packets 117  bytes 15163 (14.8 KiB)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 92  bytes 12899 (12.5 KiB)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  
  
lo: flags=73  mtu 16436  
        inet 127.0.0.1  netmask 255.0.0.0  
        inet6 ::1  prefixlen 128  scopeid 0x10  
        loop  txqueuelen 0  (Local Loopback)  
        RX packets 0  bytes 0 (0.0 B)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 0  bytes 0 (0.0 B)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  
  
virbr0: flags=4099  mtu 1500  
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255  
        ether ce:18:6f:2a:7f:0b  txqueuelen 0  (Ethernet)  
        RX packets 0  bytes 0 (0.0 B)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 0  bytes 0 (0.0 B)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  
  
[root@server1 ~]#

3. 페도라 17 데스크탑에 virt-viewer 또는 virt-manager 설치하기

페도라 17 데스크탑:

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

루트가 되세요…

su

… 그리고 다음을 실행합니다…

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

… virt-manager를 설치합니다.

(우분투 12.04 데스크탑을 사용하는 경우, 다음과 같이 virt-manager를 설치할 수 있습니다:

sudo apt-get install virt-manager

)

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

페도라 17 KVM 호스트:

이제 다시 페도라 17 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 이미지를 생성할 수도 있습니다(나중에 페도라 데스크탑에서 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

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

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