6到飞起——玩转 KVM 虚拟机

虚拟机因节约资源、维护方便等原因被广泛的应用于服务器生产环境中,常见的虚拟机一般通过 VMware、VirtualBox、Virtual PC 创建。

本文将讨论如何使用 CentOS 中的 KVM 组件创建虚拟机。使用 KVM 创建的优点是系统占用资源更低,而且完全免费,但由于配置相对麻烦,小伙伴们往往无从下手,网上虽然文章多多,但是小白用户能跟着流程搭建成功的少之又少,这次就简单说下 KVM 虚拟机创建的过程,让没 Linux 基础的用户也可以玩起来。

1、宿主机

首先需要一台 CentOS 主机,也称为宿主机,使用最小化安装即可。

2、将光盘转成 iso 放置本地目录挂载并更改安装读取路径

在 home 目录下创建一个 iso 和 kvmhome 目录,将 CentOS 的光盘映像放置在 iso 目录中并挂载,编辑 CentOS-Media.repo 读取路径:

3、安装需要的套件

[root@kvmserver ~]# yum -y install rpm-build

[root@kvmserver ~]# yum -y install NetworkManager

[root@kvmserver ~]# yum install wget vim lsof -y

[root@kvmserver ~]# yum install gcc gcc-c++ make automake cmake libtool perl  -y

[root@kvmserver ~]# yum -y groupinstall Virtualization

[root@kvmserver ~]# yum -y groupinstall "Virtualization Client"

[root@kvmserver ~]# yum -y groupinstall "Virtualization Platform"

[root@kvmserver ~]# yum -y groupinstall "Virtualization Tools"

[root@kvmserver ~]# yum -y install avahi

[root@kvmserver ~]# yum -y install dmidecode

[root@kvmserver ~]# yum install readline-devel bzip2-devel zlib-devel libxml2-devel libxslt-devel openssl-devel kernel-devel pcre-devel boost-devel python-devel python-setuptools -y

4、配置端口访问策略

编辑/etc/sysconfig/iptables 防火墙策略添加访问端口:

编辑 /etc/sysconfig/selinux,关闭 SELinux 服务:

编辑 /etc/libvirt/libvirtd.conf  配置虚拟化工具,去掉#注释,将 mdns_adv 值改为0,重启服务。

编辑 /etc/libvirt/qemu.conf (配置 qemu.conf,然后把 dynamic_ownership 的值改成0,禁止 libvirtd 动态修改文件的归属

user = "root"

group = "root"

dynamic_ownership = 0

5、建立虚拟网络,网桥

[root@kvmserver ~]# cd /etc/sysconfig/network-scripts/ (建立网桥)

[root@kvmserver ~]# cat >  ifcfg-br0  <

DEVICE="br0"

TYPE=Bridge

IPADDR=192.168.0.100

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

ONBOOT=yes

DELAY=0

NM_CONTROLLED=no

EOF

[root@kvmserver ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0  (配置宿主机网卡)

DEVICE=eth0

HWADDR=00:22:19:D4:BB:57

ONBOOT=yes

BRIDGE=br0

NM_CONTROLLED=no

重启服务

/etc/init.d/messagebus restart

/etc/init.d/avahi-daemon restart

/etc/init.d/libvirtd restart

/sbin/chkconfig messagebus on

/sbin/chkconfig avahi-daemon on

6、安装虚拟机

[root@kvmserver ~]/usr/bin/virt-install \

--connect qemu:///system

--network bridge=br0,model=virtio  (选用网桥)

--name CentOS62_1  (机器名)

--ram=1024  (内存)

--vcpus=2  (cpu数量)

--disk path=/home/kvmhome/CentOS62_1.img,bus=ide,size=100  (虚拟机存储路径,接口类型,硬盘大小)

--cdrom /home/iso/CentOS_6.2_Final.iso  (安装源路径)

--vnc --vnclisten=192.168.0.100 (网桥地址)

使用 vnc 链接工具进入控制台安装,访问地址就是宿主机 IP 加上之前配置的5900端口,如果同时开启多台端口号会排序自动生成,如5901,5902……以此类推。

安装完成后,可以使用 virsh list –all 查看安装的虚拟机与状态:

7、克隆与管理

如果我们需要多台虚拟机,只需要输入如下命令即可完成

[root@kvmserver ~]# virt-clone \

--original CentOS62_1  (复制的对象)

--name CentOS62_2  (目标名)

--file /home/kvmhome/CentOS62_2.img (存放路径)

克隆主机后,修改网卡的 mac 地址和 IP。

进入/etc/udev/rules.d/目录中,找到文件 70-persistent-net.rules 并删除,reboot 重启系统,重启进入系统再次进入/etc/udev/rules.d/目录中,找到70-persistent-net.rules 并用 vi 工具编辑,把文件中的 eth1改成 eth0,并记录下该文件中的 mac 地址。如图:

用 vi 工具编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,把其中的 Mac 地址更改为和

/etc/udev/rules.d/70-persistent-net.rules 文件中的 MAC 地址一致保存退出。

reboot 重启后网卡 ok 了。

8、常用命令

查看虚拟机:irsh list --all

启动虚拟机:virsh start 机器名

关闭虚拟机:virsh destroy

删除虚拟机:virsh undefine

生成快照:virsh snapshot-create as CentOS_1 snap1

查看快照:virsh snapshot-list CentOS_1

恢复快照:virsh snapshot-revert CentOS_1 snap1

Kvm 也支持图形化动态配置管理功能,在 CentOS 图形界面中使用 Virtual Machine Manager,将安装好的虚拟机依次添加后进行管理。

本文作者:张鑫(点融黑帮),现任点融网桌面支持工程师,热衷硬件、数码与黑科技,IT 支持与运维领域工作10余年。

推荐阅读更多精彩内容