KVM(Kernel-based Virtual Machine)的简称,是一个开源的全虚拟化的解决方案。自从 Linux2.6.20 之后集成在 Linux 的各个发行版中,KVM 虚拟化运行在 x86 架 构且需要硬件(Intel VT or AMD-V)的支持,它使用 Linux 自身的调度器进行管理,下面是在 centos5.8 上面详细安装 Kvm 虚拟机的详细步骤。

1.查看宿主机的 cpu 是否支持 KVM,vmx 表示 CPU 支持 Intel VT 技术,svm 代表CPU 支持 AMD-v 技术。
centOS6安装KVM及虚拟机_第1张图片

2.安装 KVM 软件包,yum groupinstall KVM。
centOS6安装KVM及虚拟机

3.安装桥接管理工具,yum install bridge-utils tunctl。
centOS6安装KVM及虚拟机

4.设置桥接网卡配置文件,先备份一下原来的配置文件。
centOS6安装KVM及虚拟机
4.1 编辑 ifcfg-eth0 文件.
centOS6安装KVM及虚拟机_第2张图片
4.2 编辑 ifcfg-br0 文件。
centOS6安装KVM及虚拟机_第3张图片

5.安装 gui 管理工具,yum install virt-manager virt-viewer。
centOS6安装KVM及虚拟机

6.1 查看服务器的配置是否生效,KVM 安装完成后需要重启(reboot)服务器后才能被内核加载。
6.2 查看桥接网卡配置是否生效。
centOS6安装KVM及虚拟机_第4张图片

6.3 查看内核是否加载 KVM 模块。
centOS6安装KVM及虚拟机_第5张图片
7.在服务器上面安装 vncserver,以便通过 vncerver 来安装虚拟机。
7.1VNC 环境需要安装 KDE 或者 GNOME 环境,生产环境的服务器都采用最小化安装,用 yum grouplist 可以查看系统安装了那些组件,这里安装 KDE 环境。
centOS6安装KVM及虚拟机
7.2 安装 vnc_server,yum install vnc-server。
centOS6安装KVM及虚拟机
7.3 运行 vncserver 添加客户端 VNC 登录需要的密码。
centOS6安装KVM及虚拟机_第6张图片
7.4 修改配置文件/root/.vnc/xstartup,startkde &表示支持 KDE 组件
centOS6安装KVM及虚拟机_第7张图片
7.5 修改 vncserver 配置文件/etc/sysconfig/vncservers,添加如下两行。
centOS6安装KVM及虚拟机

7.6 重启 VNC 服务,/etc/init.d/vncserver restart。
centOS6安装KVM及虚拟机_第8张图片

8.1 客户端用 VNC_viewer 连接到服务器,在开始-System-terminal 开启终端,
输入 virt-manager 调出虚拟系统管理器新建虚拟机。
centOS6安装KVM及虚拟机_第9张图片
8.2KVM 支持全虚拟化,选择 CPU 架构和 KVM 管理程序。
centOS6安装KVM及虚拟机_第10张图片
8.3 选择安装介质为本地 ISO 文件。
centOS6安装KVM及虚拟机_第11张图片
8.4 选择 ISO 文件路径,此种方法要将 ISO 文件上传服务器上面。
centOS6安装KVM及虚拟机_第12张图片
8.5 选择 KVM 虚拟机的磁盘空间,在新建虚拟机时候自动生成.img 文件,可以用qemu-img 创建。
centOS6安装KVM及虚拟机_第13张图片
8.6 选择网络为共享的物理设备,即桥接。
centOS6安装KVM及虚拟机_第14张图片
8.7 选择创建虚拟机的内存大小和虚拟 cpu 数。
centOS6安装KVM及虚拟机_第15张图片
8.8 虚拟机创建完毕,后面安装系统部分省略了,和 vmware 安装虚拟机完全一致。
centOS6安装KVM及虚拟机_第16张图片
9.系统安装完毕以后,用 virsh 工具开启虚拟机。
centOS6安装KVM及虚拟机_第17张图片
10.然后通过 VNC 或者 SSH 可以远程管理虚拟机了。
centOS6安装KVM及虚拟机_第18张图片

总结:
KVM 虚拟机不仅需要 CPU 的支持,还需要在 BOIS 里面开启 VT 选项。
在终端用 virsh list 可以查看当前正在运行的虚拟机。
在 virsh #模式下面,可以用 start 机器名开启虚拟机,用 shutdown 虚拟机名关闭虚拟机。
创建虚拟机,virt-install --name TEST001 --ram 1024 --vcpus=2 --disk
path=/data/vps/TEST001.img,size=20 --bridge=br0 --accelerate --cdrom
/opt/iso/CentOS-5.8-x86_64-bin-DVD.iso --vnc --vncport=-1。
移除虚拟机 virsh undefine TEST001。
以前一直使用 xen 对 xen 的比较熟悉,现在使用 kvm,对 kvm 的 virsh 的命令做
一个总结
查看虚拟机运行状况
[root@localhost ~]# virsh list
Id 名称 状态

xxx running
yy running
开启虚拟机
[root@localhost ~]# virsh start bi
域 bi 已开始
关闭虚拟机
[root@localhost ~]# virsh shutdown bi
域 bi 被关闭
4.克隆命令
(virt-clone -o centos64-24-02 -n centos64-24-04
-f /var/lib/libvirt/images/centos64-24-04.img)
[root@localhost ~]# virt-clone --connect=qemu:///system -o bi -n nagios
-f /var/lib/libvirt/images/nagios.img
Cloning /var/lib/libvirt/images/bi.img | 49 GB 05:03
Clone 'nagios' created successfully.
常见故障:
1、在 VMware 里克隆出来的 CentOSLinux。
ifconfig...没有看到 eth0.。然后重启网卡又报下面错误。
service network restart
Shutting down loopback insterface:
[ OK ]
Bringing up loopback insterface:
[ OK ]
Bringing up interface eth0: Device eth0 does not seem to be
present,delaying initialization. [FAILED]
解决办法:
首先,打开/etc/udev/rules.d/70-persistent-net.rules 内容如下面例
子所示:
vi /etc/udev/rules.d/70-persistent-net.rules
This file was automatically generated by the
/lib/udev/write_net_rules
program, run by the persistent-net-generator.rules rules file.

You can modify it, as long as you keep each rule on a single
line, and change only the value of the NAME= key.
PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?",
ATTR{address}=="00:0c:29:8f:89:9
, ATTR{type}=="1", KERNEL=="eth
", NAME="eth0"
PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?",
ATTR{address}=="00:0c:29:50:bd:1
, ATTR{type}=="1", KERNEL=="eth
", NAME="eth1"
记录下,eth1 网卡的 mac 地址 00:0c:29:50:bd:17
接下来,打开/etc/sysconfig/network-scripts/ifcfg-eth0
vi /etc/sysconfig/network-scripts/ifcfg-eth0
将 DEVICE="eth0" 改成 DEVICE="eth1" ,
将 HWADDR="00:0c:29:8f:89:97" 改成上面的 mac 地址
HWADDR="00:0c:29:50:bd:17"

最后,重启网络
service network restart
或者
/etc/init.d/network restart