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余年。