KVM 시스템 구축하기

qemu site    http://fabrice.bellard.free.fr/qemu/kqemu-tech.html
IBM site   http://www.ibm.com/developerworks/kr/library/l-linuxvirt/index.html
 
*설치 전 CPU가상화지원 확인
cat /proc/cpuinfo
   Flags 에 vmx 또는 svm 있는지 확인
   vmx : intel cpu 가상화지원
   svm : amd cpu 가상화지원
   cpu가상화 지원되지 않을 경우 kvm
   모듈 탑재되지 않음
 
사용하고 있는 OS확인
   KVM이 고려되어 설계된 2.6.20 이후
   버전의 커널을 쓰는 OS에 설치 권장
 
KVM 설치 전 필요한 패키지 설치
   yum install compat-gcc-34* SDL SDL-devel bridge-utils uml-utilities socat sereen sysstat\ smartmontools net-snmp* iptabels-devel mysql
kvm 소스 다운로드 http://sourceforge.net/project/showfiles.php?group_id=180599
소스 설치
Tar zxvf ‘kvm소스’
./configure –prefix=/usr/local/kvm
make
make install
cp -arp script /usr/local/kvm
cp -arp kvm_stat /usr/local/kvm/bin
ln -s /usr/local/kvm/bin/qemu-system-x86_64 /bin/qemu
ln -s /usr/local/kvm/bin/qemu-img /bin/qemu-img
 
 
 
Modprobe kvm-intel
   -> intel cpu 일 경우
Modprobe kvm-amd
   -> amd cpu 일경우
 
*Qemu 에물레이터
 
KVM에 기본적으로 포함되어 있는
  에뮬레이터, 가상 H/W 에뮬레이터 도구
KVM 모듈과 연동되어 구동
KVM GuestOS(VM)의 제어 99%를 담당
Qemu 독자적으로 사용 가능
두 가지 연산 모드 지원
   Full System Emulation
   User Mode Emulation
 
 
소스 다운로드
   http://fabrice.bellard.free.fr/qemu/qemu-0.9.1.tar.gz
tar zxvf qemu-0.9.1.tar.gz
cd qemu-0.9.1
./configure ?prefix=/usr/local/qemu
make
make install
 
설치
소스 다운로드
http://fabrice.bellard.free.fr/qemu/kqemu-1.3.0pre11.tar.gz
tar zxvf kqemu-1.3.0pre11.tar.gz
cd kqemu-1.3.0pre11
./configure
make
make install
-> 설치되는 경로 /lib/modules/kernel-version/misc
 
 
*Qemu Accelerator Module
모듈 적재
   Modprobe kqemu
Qemu 구동시 모듈과 같이 구동
   qemu명령어에 ‘-kernel-kqemu’옵션사용
   * 서버 OS가 X86_64일경우 qemu 명령어가
      아닌 qemu-system-x86_64 명령을 사용
 
*Qemu guestos 설치
 
qemu-img
  가상 하드 디스크 이미지 파일 관리 유틸
 
  디스크 이미지 생성 예
  qemu-img create ?f qcow2 cent.img 2G
  -f  : 지원 포맷 형식, qcow2 : qemu포맷
  2G : 하드디스크 용량
CD롬 부팅 os 설치
   qemu -localtime -cdrom /dev/cdrom -m 384 -boot d windows.img
Iso 파일 이용 부팅 OS설치
   qemu -localtime -cdrom cdimagefile.iso -m 384 -boot d windows.img
 
 
*qemu guest os 시작
 
Qemu 명령어 구동
qemu -m 512 ?hda \
   /home/vm_img/centos5_32.img ?boot c\
  -kernel-kqemu
-m 512 : memory size 512M
-hda [경로] : 부팅할 os 이미지 파일 및 가상디스크
-boot c : 하드디스크로 부팅
    floopy(a), hard(c), cd-rom(d), network(n)
-kernel-kqemu : qemu accelerator 구동
 
 
 
*Qemu명령어 옵션
-m : memory size 지정
-hda/-hdb [file] : ide 하드디스크 이미지 0/1
-hdc/-hdd [file] : ide 하드디스크 이미지 2/3
-cdrom [file] : cdrom장치 지정
-smp [n] : cpu갯수 지정
-k [language] : 키보드 지정, 기본 eu-us
-net nic[,vlan=n][macaddr=addr]
  [model=type] : 네트워크카드 및 연결 생성
 
 
*Qemu monitor
Qemu가 임의의 os 에뮬레이팅&가상화하는
   동안 qemu프로세스 컨트롤, 모니터링 수행
접근 방법
Socat 명령어 이용접근 방법
   Socat ? UNIX-CONNECT:/home/vm_img \
   Cent5.monitor
Qemu 구동 창에서 접근
   Ctrl + Alt + 2  
*Qemu monitor 옵션
 
savevm [tag|id]: 해당 vm 스냅샷 생성
delvm [tag|id] : 해당 vm 스냅샷 삭제
loadvm [tag|id] : 해당 vm load
system_reset : reset
system_powerdown : vm 전원끔
Info [옵션] : 옵션에 해당하는 정보 보기
   예) info mem
        info block
        info network  
KVM 명령어
1)
tunctl -b -u kvm -t virt00334
qemu -net nic,vlan=0,macaddr=DE:AD:BE:E0:03:34,model=e1000 -net tap,vlan=0,ifname=virt00334,script=/etc/qemu-ifup -monitor unix:/VM_DISK_IMG/HDs/192.168.0.211/vnc/vm00334.monitor,server,nowait -usb -k en-us -name 00334 -pidfile /VM_DISK_IMG/HDs/192.168.0.211/vnc/vm00334.pid -daemonize -smp 1 -m 1024 -drive file=/VM_DISK_IMG/HDs/192.168.0.211/115.68.20.66_25_vm00334.qcow2,if=ide,index=0,media=disk,boot=on -boot c
 
 
2)
 screen -d -m socat TCP4-LISTEN:60575,range=115.68.62.13/32 UNIX-CONNECT:/VM_DISK_IMG/HDs/115.68.20.63_17_vm00265/vnc/vm00265.vnc
 
 
 
 위의 두가지 커맨드라인을 모두 분석 이해하면 KVM 에 대하여 모두 이해하는것이다.
KVM 특징
1 CPU 의 가상화 지원 기술 이 필수인 전가상화만을 지원하기에 Xen 처럼 가상머신의 커널을 수정해 줄 필요가 없음
2 ESX Server 나 XenServer 등과 같은 전용의 하이퍼바이저가 아닌 Linux 자체를 호스티 OS 로 이용
3 관리툴로서 에뮬레이터인 QEMU 가 필요
 
 
A Quick Guide to Using KVM with CentOS-5
http://wiki.centos.org/HowTos/KVM
Basic KVM on CentOS 5
http://www.openfusion.net/linux/basic_kvm_on_centos5
Install KVM on CentOS 5.4
http://banym.de/projects/centos/install-kvm-on-centos-5.4
CentOS 5.4그리고KVM(을)를 시험해 보았다. ~ 콘솔편 ~
http://j2k.naver.com/j2k_frame.php/korean/d.hatena.ne.jp/pcmaster/20091025/p2
속:CentOS 5.4그리고KVM(을)를 시험해 보았다. ~ virt-manager편 ~
http://j2k.naver.com/j2k_frame.php/korean/d.hatena.ne.jp/pcmaster/20091031/p1
Finally user-friendly virtualization for Linux
http://www.linuxinsight.com/finally-user-friendly-virtualization-for-linux.html
 
KVM install on Centos
먼저 cpu 가 지원하는지 확인할것
 
egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo
 
 
vmx|svm 이 나오면 지원 되는것임 ~
 
 
yum install *kvm* *qemu* *libvirt* *python-virtinst* *virtinst*
/etc/init.d/libvirtd start
 
tunctl 은 rpm 으로 받아 설치 꼭 !
yum install virt-manager
 
vi /etc/rc.d/rc.local
 
 
modprobe kvm-intel
modprobe tun     추가
 
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
 
KVM 이 정상적으로 설치되어있는지 확인은
 
virsh -c qemu:///system list
It should display something like this:
[root@server1 ~]# virsh -c qemu:///system list
 Id Name                 State
———————————-
 
브릿지 설치
yum install bridge-utils
 
 
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
GATEWAY=192.168.1.1
IPADDR=192.168.1.100
NETMASK=255.255.255.0
yes
 
 
 
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Networking Interface
DEVICE=eth0
HWADDR=00:1e:90:f3:f0:02
yes
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
BRIDGE=br0
 
 
reboot
 
 
ifconfig
 
 
[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:113 errors:0 dropped:0 overruns:0 frame:0
          TX packets:91 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:16520 (16.1 KiB)  TX bytes:11889 (11.6 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:136 errors:0 dropped:0 overruns:0 frame:0
          TX packets:98 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:22152 (21.6 KiB)  TX bytes:14147 (13.8 KiB)
          Interrupt:28 Base address:0x2000
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:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:746 (746.0 b)  TX bytes:746 (746.0 b)
virbr0    Link encap:Ethernet  HWaddr E2:54:14:EA:7A:01
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          inet6 addr: fe80::e054:14ff:feea:7a01/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:5156 (5.0 KiB)
 
Take a look at
man virt-install
to learn how to use it.
To create a Debian Lenny guest (in bridging mode) with the name vm10, 512MB of RAM, two virtual CPUs, and the
disk image ~/vm10.qcow2 (with a size of 12GB), insert the Debian Lenny Netinstall CD into the CD drive and run
 
virt-install –connect qemu:///system -n vm10 -r 512 –vcpus=2 -f ~/vm10.qcow2 -s 12 -c /dev/cdrom –vnc –noautoconsole –os-type linux –os-variant debianlenny –accelerate –network=bridge:br0 –hvm
 
Of course, you can also create an ISO image of the Debian Lenny Netinstall CD…
dd if=/dev/cdrom of=~/debian-500-amd64-netinst.iso
 
… and use the ISO image in the virt-install command:
 
virt-install –connect qemu:///system -n vm10 -r 512 –vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant debianlenny –accelerate –network=bridge:br0 –hvm
The output is as follows:
 
[root@server1 ~]# virt-install –connect qemu:///system -n vm10 -r 512 –vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant debianlenny –accelerate –network=bridge:br0 –hvm

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.