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 技术。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_数据结构与算法

2.安装 KVM 软件包,yum groupinstall KVM。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_运维_02

3.安装桥接管理工具,yum install bridge-utils tunctl。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_服务器_03

4.设置桥接网卡配置文件,先备份一下原来的配置文件。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_数据结构与算法_04


4.1 编辑 ifcfg-eth0 文件.

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_操作系统_05


4.2 编辑 ifcfg-br0 文件。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_在CentOS虚拟机进行KVM环境配置_06

5.安装 gui 管理工具,yum install virt-manager virt-viewer。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_数据结构与算法_07

6.1 查看服务器的配置是否生效,KVM 安装完成后需要重启(reboot)服务器后才能被内核加载。

6.2 查看桥接网卡配置是否生效。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_数据结构与算法_08

6.3 查看内核是否加载 KVM 模块。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_在CentOS虚拟机进行KVM环境配置_09


7.在服务器上面安装 vncserver,以便通过 vncerver 来安装虚拟机。

7.1VNC 环境需要安装 KDE 或者 GNOME 环境,生产环境的服务器都采用最小化安装,用 yum grouplist 可以查看系统安装了那些组件,这里安装 KDE 环境。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_在CentOS虚拟机进行KVM环境配置_10


7.2 安装 vnc_server,yum install vnc-server。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_操作系统_11


7.3 运行 vncserver 添加客户端 VNC 登录需要的密码。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_数据结构与算法_12


7.4 修改配置文件/root/.vnc/xstartup,startkde &表示支持 KDE 组件

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_操作系统_13


7.5 修改 vncserver 配置文件/etc/sysconfig/vncservers,添加如下两行。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_在CentOS虚拟机进行KVM环境配置_14

7.6 重启 VNC 服务,/etc/init.d/vncserver restart。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_运维_15

8.1 客户端用 VNC_viewer 连接到服务器,在开始-System-terminal 开启终端,

输入 virt-manager 调出虚拟系统管理器新建虚拟机。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_操作系统_16


8.2KVM 支持全虚拟化,选择 CPU 架构和 KVM 管理程序。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_在CentOS虚拟机进行KVM环境配置_17


8.3 选择安装介质为本地 ISO 文件。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_在CentOS虚拟机进行KVM环境配置_18


8.4 选择 ISO 文件路径,此种方法要将 ISO 文件上传服务器上面。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_在CentOS虚拟机进行KVM环境配置_19


8.5 选择 KVM 虚拟机的磁盘空间,在新建虚拟机时候自动生成.img 文件,可以用qemu-img 创建。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_运维_20


8.6 选择网络为共享的物理设备,即桥接。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_服务器_21


8.7 选择创建虚拟机的内存大小和虚拟 cpu 数。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_在CentOS虚拟机进行KVM环境配置_22


8.8 虚拟机创建完毕,后面安装系统部分省略了,和 vmware 安装虚拟机完全一致。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_运维_23


9.系统安装完毕以后,用 virsh 工具开启虚拟机。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_服务器_24


10.然后通过 VNC 或者 SSH 可以远程管理虚拟机了。

在CentOS虚拟机进行KVM环境配置 centos6安装kvm虚拟机_操作系统_25

总结:
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


转载于:https://blog.51cto.com/garrett/2093334