安装KVM虚拟机
KVM需要CPU支持虚拟化,执行以下命令查看是否支持虚拟化:
# egrep ‘(vmx|svm)’ -color=always /proc/cpuinfo
如果含有vmx或者svm字样,则表示支持CPU虚拟化,Intel是vmx,AMD是svm。
2. 安装KVM
直接在线安装KVM,最好yum安装,需要的包非常多:
# yum groupinstall KVM
安装完成后重启主机:
# reboot
重启完成后,检查kvm模块是否加载:
# lsmod | grep kvm
显示结果如下表示kvm模块已经加载,如果没有输出信息,则表示没有加载成功:
# lsmod |grep kvm
kvm_intel 85256 0
kvm 224928 2 ksm,kvm_intel
如果没有显示kvm_intel或kvm_amd,而且用下面的命令会报错,则应该是BIOS里面没有Enable虚拟化,需要从BIOS里面打开:
# modprobe kvm_intel
FATAL: Error inserting kvm_intel (/lib/modules/2.6.18-274.7.1.el5/weak-updates/kmod-kvm/kvm-intel.ko): Operation not supported
3. 配置网络
配置桥接
安装tunctl:
# yum install -y tunctl
桥接网络配置文件,从ifcfg-bond0复制现有网卡的配置文件,改名为ifcfg-br0:
# cp /etc/sysconfig/network-scripts/ifcfg-bond0 /etc/sysconfig/network-scripts/ifcfg-br0
修改ifcfg-br0,只要修改DEVICE=xxx并增加TYPE=Bridge,其他部分不要修改。
# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
BOOTPROTO=static
IPADDR=10.24.1.40
NETMASK=255.255.255.0
GATEWAY=10.24.1.1
ONBOOT=yes
TYPE=Bridge
修改ifcfg-bond0,增加一行BRIDAGE=br0,其他部分不要修改,注意到这里跟上面br0配置的ip地址、掩码、网关相同。
# vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
IPADDR=10.24.1.40
NETMASK=255.255.255.0
GATEWAY=10.24.1.1
ONBOOT=yes
BRIDGE=br0
重启network服务
# service network restart
这里需要注意,如果启用了NetworkManager,最好关闭该服务,因为该服务与network有冲突。
4. 配置转发
执行以下命令:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# sysctl -w net.ipv4.ip_forward=1
5. 禁用SELinux
# system-config-securitylevel-tui
选择Disabled这个SELinux。
至此,KVM已经安装完毕,接下去可以创建虚拟机,安装系统。
6. 配置虚拟机
写一个脚本,首先定义变量,然后执行virt-install 进行安装,不定义变量也可以,但是命令会很长。
# vi vm_install.sh
#/bin/env bash
set -x
NAME=vm1
PORT=6900
IMG_PATH=/data2/vms/vm1
IMG=vm1.dsk
OSTYPE=linux
OSVARIANT=rhel6
RAM_M=1024
CPUS=2
SIZE_G=50
ITF=br0
ISO=/root/CentOS-6.0-x86_64-bin-DVD1.iso
mkdir -p $IMG_PATH
umount /mnt/cdrom
mount -o loop -t iso9660 $ISO /mnt/cdrom
echo “/mnt/cdrom *(rw,sync,no_root_squash,anonuid=65534,anongid=65534)” >> /etc/exports
service nfs restart
#mkdir -p /mnt/cdrom-nfs
#mount -t nfs -o hard,intr,bg,timeo=50 127.0.0.1:/mnt/cdrom /mnt/cdrom-nfs
virsh destroy $NAME
virsh undefine $NAME
virt-install -d –name=$NAME –ram=$RAM_M –vcpus=$CPUS –os-type=$OSTYPE –os-variant=$OSVARIANT \
–location=/mnt/cdrom –extra-args=’console=ttyS0 ks=ftp://172.16.1.137/tftpd_v6/ks-kvm.cfg initrd=/initrd.img devfs=nomount ramdisk_size=16384 nofb ip=10.24.1.170 netmask=255.255.255.0 gateway=10.24.1.1 noipv6 ksdevice=eth0′ \
–disk path=$IMG_PATH/$IMG,size=$SIZE_G \
–network bridge:$ITF
set +x
执行以上脚本,如果没有错误的话,就会打开虚拟系统安装界面。
–cdrom $ISO \
安装完之后自动进入console方式,需要用ssh登录一个新的属主机,然后用virsh停止或关闭虚拟机:
# virsh start vm1
# virsh list
虚拟机的主要管理命令式virsh,进入virsh管理shell,输入help可以得到帮助:
虚拟机的配置文件保存在/etc/libvirt/qemu目录下,扩展名是xml。修改相应的文件即可重新配置虚拟机。
# ls /etc/libvirt/qemu/
networks vm1.xml
备份:拷贝/etc/libvirt/qemu目录下的xml配置文件,以及xml中设置的img文件。
恢复:进入virsh,执行define:# virsh define vm1,然后可以启动虚拟机:# virsh start vm1,这两部可以用# virsh create vm1.xml这一步来代替。
———————————-
17 vm1 running
18 vm2 running
<domain type=’kvm’>
<name>vm1</name>
<uuid>fcd6904b-98b5-5a97-757c-162d90c98cad</uuid>
<memory>1048576</memory>
<currentMemory>1048576</currentMemory>
<vcpu>2</vcpu>
<os>
<type arch=’x86_64′ machine=’rhel5.4.0′>hvm</type>
<boot dev=’hd’/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset=’utc’>
<timer name=’pit’ tickpolicy=’delay’/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type=’file’ device=’disk’>
<driver name=’qemu’ type=’raw’ cache=’none’/>
<source file=’/data2/vms/vm1/vm1.dsk‘/>
<target dev=’vda‘ bus=’virtio’/>
</disk>
<interface type=’bridge’>
<mac address=’54:52:00:2a:a8:6e’/>
<source bridge=’br0’/>
<model type=’virtio’/>
</interface>
<serial type=’pty’>
<target port=’0’/>
</serial>
<console type=’pty’>
<target port=’0’/>
</console>
<input type=’tablet’ bus=’usb’/>
</devices>
</domain>