一、安装kvm
1 在安装CentOS6.3时可以选择安装好kvm
2 如果未安装好kvm,请按照下列方式安装
[创建本地yum源]
挂载iso文件
mount -o loop -t iso9660 CentOS-6.3-x86_64-bin-DVD1.iso /mnt
设置本地yum源
在/etc/yum.repos.d/创建 “任意文件名.repo" 文件
vi 刚才新建的文件名编辑
【localyum】任意名称 ,不能有空格。
name= local yum 任意名称
baseurl=file:////mnt/Packages 这个路径是自定的。Server为光盘中的Server目录 ,Packages与Server放在同一目录下。即/software目录下
enabled=1 代表 生效 0为不生效
gpgcheck=1 检查gpgkey 1 生效 0不生效
gpgkey=file:///software 安装光盘里有这个文件 不指定 安装时,可能提示没有注册
保存退出
执行命令 yum clean all
(1) kvm需要有 CPU 的支持(Intel VT 或 AMD SVM)
[[email protected] ~]#egrep ‘^flags.*(vmx|svm)‘ /proc/cpuinfo
如果有返回值说明cpu支持虚拟化
(2) 安装kvm libvirted
yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt libvirt-python python-virtinst
(3) 启动libvirted
service messagebus start
service haldaemon start
service libvirtd start
chkconfig messagebus on
chkconfig haldaemon on
chkconfig libvirtd on
(4)检查kvm是否安装成功
[[email protected] ~]# virsh -c qemu:///system list
Id 名称 状态
----------------------------------------------------
1 redhat6.3 running
(5)kvm模块
[[email protected] ~]# lsmod | grep kvm
kvm_intel 52570 0
kvm 314739 1 kvm_intel
二、配置网桥
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
BROADCAST=10.207.20.255
IPADDR=10.207.20.200
NETMASK=255.255.255.0
NETWORK=10.207.20.0
ONBOOT=yes
b、
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0
c、
重起网络服务生效
service network restart
d、
echo 1 > /proc/sys/net/ipv4/ip_forward #虚拟机上网
e、
检查桥接网络
[[email protected] ~]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.842b2b74e1b6 no eth0
virbr0 8000.000000000000 yes
br0是我们配置的桥接网卡,virbr0是系统脚本自动配置的NAT网卡
三、安装vnc
注意:CentOS6.3 VNC的命名rpm为tiggervnc-server
(1)
yum install tiggervnc-server
(2)
vi /etc/sysconfig/vncservers
#加一行
VNCSERVERS="1:root"
(3)
vncpasswd
创建密码
(4)
/etc/init.d/vncserver start
(5)
# netstat -nulpt | grep vnc
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 29167/Xvnc
tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 29167/Xvnc
tcp 0 0 :::6001 :::* LISTEN 29167/Xvnc
表示vnc可以使用了
修改 qemu.conf 配置,把下面几个地方的注释去掉,然后把 dynamic_ownership 的值改成0,禁止 libvirtd 动态修改文件的归属: # vi /etc/libvirt/qemu.conf ...
user = "root"
group = "root"
dynamic_ownership = 0
...
重启 libvirtd 服务再用上面的 virt-install 命令安装就应该可以了。这个时候 vnc 默认绑定的是本机 127.0.0.1,如果其他机器想用 vnc 客户端访问这台 kvm 服务器正在安装的 ubuntu 的话需要把 vnc 绑定到服务器的 IP 地址或者绑定到全局 0.0.0.0. 修改 qemu.conf 文件取消 vnc_listen 一行前面的注释,记得重启 libvirtd: # vi /etc/libvirt/qemu.conf ...
vnc_listen = "0.0.0.0"
四、创建kvm虚拟机
virsh-install
1、输入虚拟机名称
2、分配多少内存
3、处理器的个数
4、此步可以直接输入iso的位置或是url
5、虚拟机类型KVM
6、定义虚拟机磁盘映像的位置
7、磁盘的大小
6、指定哪个桥或者可以指定多个桥
7、额外的控制台和KS文件
8、连接到系统参数
参数说明注意每行都要空格
-n 虚拟机名称
-r 分配虚拟机内存大小
--vcpus 分配虚拟cpu个数
-c 镜像文件位置
--vnc --vncport=5901 --vnclisten=0.0.0.0 启动图形安装界面
--virt-type 虚拟机模式
-f 虚拟机系统文件存储目录
-s 分配磁盘大小(GB)
-w 联网方式(birdge bridge:br0/nat bridge:virbr0)
--os-type=‘windows‘ --os-variant=win2k3 安装windows最好加上这个否则会报错
virt-install工具安装虚拟机后,在目录/etc/libvirt/qemu/下生成xml配置文件
-s 用来指定虚拟磁盘的大小单位为GB
-m 指定虚拟网卡的硬件地址默认virt-install自动产生
-p 以半虚拟化方式建立虚拟机
-l 指定安装来源
-x EXTRA, --extra-args=EXTRA当执行从"--location"选项指定位置的客户机安装时,附加内核命令行参数到安装程序。
-v, --hvm 设置全虚拟化
virt-install --name=centos6.3 --ram 1024 --vcpus=2 --disk path=/data0/centos-6.3.x86_64.img.img,size=20 --accelerate --cdrom /data0/CentOS-6.3-x86_64-bin-DVD1.iso --graphics vnc,listen=0.0.0.0,port=5920, --network bridge=br0 --force --autostart
执行后,netstat -nulpt | grep 5920 看端口启用否
五、用vnc连接5920完成安装
IP:5920
六、管理kvm虚拟机
virsh --connect qemu:///system
a、如果你修改了一个客户机的xml文件(位于/etc/libvirt/qemu/ 目录),你必须重新定义客户机:
define /etc/libvirt/qemu/vm10.xml
b、启动和停止客户机,运行:
start vm10
c、停止一个客户机,运行
shutdown vm10
d、立即中断一个客户机(类似直接关电源),运行
destroy vm10
e、挂起一个客户机:
suspend vm10
f、恢复客户机:
resume vm10
七、克隆
virt-clone --connect=qemu:///system \
-o 原虚拟机 -n 新虚拟机 -f /data0/centos5.4/新虚拟机镜像
新虚拟机配置文件需要注意:虚拟机克隆完毕后,需修改vnc端口;MAC地址也是需要注意的。
八、加载磁盘空间
#qemu-img create -f qcow2 disk1.img 50G
#vi /etc/libvirt/qemu/centos1.xml
增加的部分为:
<disk type=‘file‘ device=‘disk‘>
<driver name=‘qemu‘ type=‘qcow2‘/>
<source file=‘/root/disk3.img‘/>
<target dev=‘hdb‘ bus=‘ide‘/>
<address type=‘drive‘ controller=‘0‘ bus=‘0‘ target=‘0‘ unit=‘1‘/>
</disk>
使配置文件生效
virsh --connect qemu:///system
virsh #define /etc/libvirt/qemu/winxp.xml
重起虚拟机生效
virsh # shutdown centos1
virsh # start centos1
进入虚拟机:
mkfs.ext3 /dev/hdb
mkdir /data
mount /dev/hdb /data
virt-install --name xp1 --hvm --ram 512 --vcpus 1 --disk path=/root/xp1.img,size=20 --network network:default --accelerate --vnc --vncport=5901 --cdrom /root/xp.iso -d
virt-install --name=wintest01 --ram 512 --vcpus=2 --disk path=/data/wintest01.img,size=8 --accelerate --cdrom /data/iso/Windows2003.iso --vnc --vncport=5911 --vnclisten=0.0.0.0 --network bridge=br0 --force --autostart
##换iso镜像文件
[[email protected] ~]#virsh change-media win3test hdc /home/iso/virtio-win-0.1-52.iso
succeeded to complete action update on media
##弹出镜像文件
[[email protected] ~]#virsh change-media win3test hdc --eject
格式转换
qemu-img convert -f raw -O qcow2 disk2.img disk2.qcow2
-f 源镜像的格式
-O 目标镜像的格式