가상화 · 4 min read · Dec 23, 2025
OpenSUSE 12.2 서버에서 KVM으로 가상화하기
OpenSUSE 12.2 서버에서 KVM으로 가상화하기
버전 1.0
저자: Falko Timme
Twitter에서 나를 팔로우하세요
이 가이드는 OpenSUSE 12.2 서버에서 가상 머신을 생성하고 실행하기 위해 KVM을 설치하고 사용하는 방법을 설명합니다. 이미지 기반 가상 머신과 논리 볼륨(LVM)을 사용하는 가상 머신을 생성하는 방법을 보여드리겠습니다. KVM은 Kernel-based Virtual Machine의 약자로 하드웨어 가상화를 사용합니다. 즉, 하드웨어 가상화를 지원하는 CPU가 필요합니다. 예를 들어 Intel VT 또는 AMD-V가 있습니다.
이것이 당신에게 작동할 것이라는 보장은 하지 않습니다!
1 사전 참고
저는 여기서 KVM 호스트로서 hostname이 server1.example.com이고 IP 주소가 192.168.0.100인 OpenSUSE 12.2 서버를 사용하고 있습니다.
또한 설치한 가상 머신의 그래픽 콘솔에 연결할 수 있도록 virt-manager를 설치할 데스크탑 시스템이 필요합니다. 저는 여기서 OpenSUSE 12.2 데스크탑을 사용하고 있습니다.
2 KVM 설치하기
OpenSUSE 12.2 KVM 호스트:
먼저 CPU가 하드웨어 가상화를 지원하는지 확인합니다. 이 경우 명령어
egrep '(vmx|svm)' --color=always /proc/cpuinfo가 다음과 같은 내용을 표시해야 합니다:
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 rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
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 rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
server1:~ #
아무것도 표시되지 않으면 프로세서가 하드웨어 가상화를 지원하지 않으며 여기서 중단해야 합니다.
KVM과 virtinst(가상 머신을 생성하는 도구)를 설치하기 위해 다음을 실행합니다:
zypper install kvm libvirt libvirt-python qemu virt-manager불행히도 libvirt-python은 패키지 patterns-openSUSE-minimal_base-conflicts와 충돌합니다. 따라서 해당 패키지를 제거하도록 선택해야 합니다:
문제: libvirt-python-0.9.11.4-1.2.1.x86_64는 python = 2.7을 요구하지만 이 요구 사항을 제공할 수 없습니다.
제거할 수 있는 제공자: python-2.7.3-3.6.1.x86_64[openSUSE-12.2-1.6]
python-2.7.3-3.6.1.i586[repo-oss]
python-2.7.3-3.6.1.x86_64[repo-oss]
해결책 1: 다음 작업이 수행됩니다:
libvirt-python-0.9.11.4-1.2.1.x86_64를 설치하지 않습니다.
virt-manager-0.9.4-1.6.1.x86_64를 설치하지 않습니다.
해결책 2: 다음 작업이 수행됩니다:
virt-manager-0.9.4-1.6.1.x86_64를 설치하지 않습니다.
libvirt-python-0.9.11.4-1.2.1.x86_64를 설치하지 않습니다.
해결책 3: patterns-openSUSE-minimal_base-conflicts-12.2-5.5.1.x86_64를 제거합니다.
해결책 4: 일부 종속성을 무시하여 libvirt-python-0.9.11.4-1.2.1.x86_64를 중단합니다.
위의 해결책 중에서 번호를 선택하거나 취소하세요 [1/2/3/4/c] (c): <– 3
그런 다음 libvirtd의 시스템 시작 링크를 생성합니다…
systemctl enable libvirtd.service… 그리고 libvirt 데몬을 시작합니다:
systemctl start libvirtd.serviceKVM이 성공적으로 설치되었는지 확인하려면 다음을 실행합니다:
virsh -c qemu:///system list다음과 같은 내용을 표시해야 합니다:
server1:~ # virsh -c qemu:///system list
WARNING: no socket to connect to
Id Name State
———————————-
server1:~ #
오류가 표시되면 무언가 잘못된 것입니다.
다음으로, 가상 머신이 네트워크의 물리적 시스템인 것처럼 다른 호스트에서 접근할 수 있도록 서버에 네트워크 브리지를 설정해야 합니다.
이를 위해 bridge-utils 패키지를 설치합니다…
zypper install bridge-utils… 그리고 브리지를 구성합니다.
브리지를 구성하려면 /etc/sysconfig/network/ifcfg-br0 파일을 다음과 같이 생성합니다(확실히 /etc/sysconfig/network/ifcfg-eth0 파일의 IPADDR 설정을 사용하세요):
vi /etc/sysconfig/network/ifcfg-br0| STARTMODE='auto' BOOTPROTO='static' IPADDR='192.168.0.100/24' MTU='' NETMASK='' NETWORK='' BROADCAST='' USERCONTROL=no NAME='Bridge 0' NM_CONTROLLED=no BRIDGE='yes' BRIDGE_PORTS='eth0' BRIDGE_AGEINGTIME='300' BRIDGE_FORWARDDELAY='0' BRIDGE_HELLOTIME='2' BRIDGE_MAXAGE='20' BRIDGE_PATHCOSTS='19' BRIDGE_PORTPRIORITIES= BRIDGE_PRIORITY= BRIDGE_STP='on' |
(유효한 vim 바이너리 패키지가 설치되어 있지 않다는 메시지가 표시되면, 다음을 실행하여 vi를 설치하고 다시 시도하세요:
zypper install vim)
/etc/sysconfig/network/ifcfg-eth0 파일을 다음과 같이 수정합니다(여기서 IPADDR를 0.0.0.0으로 설정하고 STARTMODE를 hotplug로 변경합니다):
vi /etc/sysconfig/network/ifcfg-eth0| BOOTPROTO='static' BROADCAST='' ETHTOOL_OPTIONS='' IPADDR='0.0.0.0' MTU='' NAME='MCP77 Ethernet' NETMASK='' NETWORK='' REMOTE_IPADDR='' STARTMODE='hotplug' USERCONTROL='no' |
그런 다음 네트워크를 재시작합니다:
systemctl restart network.service그 후, 다음을 실행합니다:
ifconfig이제 네트워크 브리지(br0)가 표시되어야 합니다:
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:92 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12716 (12.4 Kb) TX bytes:5961 (5.8 Kb)
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:131711 errors:0 dropped:0 overruns:0 frame:0
TX packets:80954 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:185764801 (177.1 Mb) TX bytes:6374023 (6.0 Mb)
Interrupt:41 Base address:0x8000
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:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:860 (860.0 b) TX bytes:860 (860.0 b)
server1:~ #
3 OpenSUSE 12.1 데스크탑에 virt-manager 설치하기
OpenSUSE 12.2 데스크탑:
우리는 손님들의 그래픽 콘솔에 연결할 수단이 필요합니다. 이를 위해 virt-manager를 사용할 수 있습니다. 저는 당신이 OpenSUSE 12.2 데스크탑을 사용하고 있다고 가정합니다.
루트가 되세요…
su… 그리고 다음을 실행하세요…
zypper install virt-manager libvirt… virt-manager를 설치합니다.
(우리가 Ubuntu 11.10 데스크탑을 사용하고 있다면, 다음과 같이 virt-manager를 설치할 수 있습니다:
sudo apt-get install virt-manager)
4 Debian Squeeze 게스트 생성하기 (이미지 기반)
OpenSUSE 12.2 KVM 호스트:
이제 OpenSUSE 12.2 KVM 호스트로 돌아갑니다.
virt-install --help 를 살펴보아 사용 방법을 알아보세요.
우리는 /var/lib/libvirt/images/ 디렉토리에 이미지 기반 가상 머신을 생성할 것입니다. 이 디렉토리는 2장에서 KVM을 설치할 때 자동으로 생성되었습니다.
이름이 vm10이고 RAM이 512MB, 가상 CPU가 2개이며 디스크 이미지가 /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 이미지를 생성할 수도 있습니다(나중에 OpenSUSE 12.2 데스크탑에서 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.0-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.0-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm출력은 다음과 같습니다:
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.0-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant debiansqueeze –accelerate –network=bridge:br0 –hvm
WARNING: no socket to connect to
설치 시작…
‘vm10.img’ 할당 중 | 12 GB 00:00
도메인 생성 중… | 0 B 00:00
도메인 설치가 아직 진행 중입니다.
콘솔에 다시 연결하여 설치 프로세스를 완료할 수 있습니다.
server1:~ #
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.