CentOS6 安装KVM并管理虚拟机
一、整体架构说明
物理机:物理机的系统选择CentOS6.8的minimal(最小化)版本。
二、准备工作
下载镜像:
http://vault.centos.org/6.8/isos/x86_64/CentOS-6.8-x86_64-minimal.iso
下载virt-manage的rpm包:(最新的0.9.0-34包有问题,请使用0.9.0-31)
https://vault.centos.org/6.8/os/x86_64/Packages/virt-manager-0.9.0-31.el6.x86_64.rpm
三、服务器的初始化
对物理机安装好CentOS6.8系统之后,配置上IP地址,我这边配置的是192.168.0.101,使服务器能够上网,并配置好DNS。
关闭防火墙:
service iptables stop chkconfig iptables off
关闭selinux:
setenforce 0 sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
安装epel源:
yum -y install epel-release
四、安装vncserver
yum -y install tigervnc*
五、安装桌面环境
yum groupinstall "Desktop" -y
六、安装KVM软件
yum -y install libcanberra-gtk2 qemu-kvm qemu-kvm-tools libvirt libvirt-cim libvirt-client libvirt-java.noarch libvirt-python libiscsi dbus-devel virt-clone tunctl virt-manager libvirt libvirt-python python-virtinst
七、安装字体
需要安装下面的字体,否则进入桌面之后会出现乱码
yum -y install dejavu-lgc-sans-fonts yum -y groupinstall "Fonts"
八、创建桥接网络
为KVM生成桥接网络:(物理机创建桥接网卡br0)
vi /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 TYPE=Bridge ONBOOT=yes BOOTPROTO=static IPADDR=192.168.3.63 NETMASK=255.255.255.0 GATEWAY=192.168.3.1
修改物理机中网卡设备eth0桥接至br0:
vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=none BRIDGE=br0
创建桥接网卡后,必须关闭NetworkManager服务:
service NetworkManager stop chkconfig NetworkManager off
然后再重启网卡:
service network restart
九、安装xrdp,并用windows的“远程桌面连接”连接服务器
yum -y install xrdp service xrdp start chkconfig xrdp on
安装xrdp之后,就可以用windows的“远程桌面连接” mstsc 直接连接linux服务器了
点击“连接”之后,出现下图
输入服务器的username和password之后,点击“OK”,就连接上linux桌面了
十、修改KVM中image文件存放的位置
KVM虚拟机默认image文件存放位置为/var/lib/libvirt/images目录下,一般在分区时很少为/var单独划出一个大分区,这种情况下创建的虚拟机很快会将/分区吃满,所以机器要使用KVM虚拟机化的时候,我们先单独规划出一个分区用来放image文件。比如这里我们规划/data/kvmimages目录用来放images文件。
/etc/libvirt/storage/default.xml 这个是默认的存放路径配置文件,(直接使用vi编辑是不生效的,另外服务重启才生效)需要使用如下命令编辑:
virsh pool-edit default
把/var/lib/libvirt/images修改成/data/kvmimages,并重启libvirt服务:
/etc/init.d/libvirt restart
这样我们创建的虚拟机的images文件就会存放在/data/kvmimages目录下了。
十一、创建一个虚拟机
点击左上角的“应用程序”–>“系统工具”–>“终端”打开命令行终端,
在终端中输入virt-manager并回车,调出“虚拟系统管理器”
点击左上角的“创建新虚拟机”按钮,出现如下报错:
查阅资料发现,这是由于用yum安装virt-manager时安装的版本是0.9.0-34,这个版本会有问题,所以我们把virt-manager换成之前准备好的0.9.0-31版本。
rpm -e --nodeps virt-manager-0.9.0-34.el6.x86_64 rpm -ivh virt-manager-0.9.0-31.el6.x86_64.rpm
重新在终端启动virt-manager并点击“创建新虚拟机”按钮,这回正常了,如下图:
剩下部分不再赘述,请参考:
https://blog.csdn.net/wc1695040842/article/details/84676381
十二、KVM 虚拟机常用命令
# virsh list #列出在运行的虚拟机
# virsh start centos6-62 #启动 centos6-62 虚拟机
# virsh shutdown centos6-62 #关闭 centos6-62 虚拟机
# virsh autostart centos6-62 #设置 centos6-62 虚拟机为物理机开机后,自动启动
测试:reboot 后,没有发现kvm 虚拟机开机自动启动。原因是什么?
解决:
#chkconfig libvirtd on
#chkconfig --list libvirtd #开机启动了
libvirtd 0:off 1:off 2:off 3:on 4:on5:on 6:off
# vim /etc/fstab #记得设置开机自动挂载 sdb1,不然后开机启动不了虚拟机
/dev/sdb1 /data/kvmimages xfs defaults 0 0
解决 centos6 系统上 shutdown 关不了虚拟机的问题
解决方法:
在安装好的 KVM 的Linux 虚拟机中安装并启动 acpid 服务virsh shutdown 命令使用发送 acpi 指令来控制虚拟机的电源,
而 kvm 虚拟机最小化安装的 centos6 系统时默认是没有安装 acpi 服务的,所以并不会处理shutdown 发来的关机信号。 在 centos7 最小化安装的linux 系统上有安装 acpid 服务。
只需要在虚拟机里安装和启动 acpid 服务即可。
最简单,安装acpid的RPM包:
下载地址:https://vault.centos.org/6.8/os/x86_64/Packages/acpid-1.0.10-3.el6.x86_64.rpm
1、给KVM 虚拟机配置个IP(省略),确保可以远程登录
2、上传RPM安装包,安装命令如下
rpm -ivh acpid-1.0.10-3.el6.x86_64.rpm service acpid start chkconfig acpid on chkconfig --list acpid #查看是否添加到开机启动项
3、重启KVM系统后,就可以正常使用关机命令了
virsh shutdown centos6-62