今天在自己电脑的虚拟机系统centos6.5上装了一个KVM(基于内核的虚拟机)
安装准备:
在虚拟机系统处理器选择虚拟引擎模式(关机修改)
关闭防火墙和selinux
临时关闭
永久关闭
vim /etc/sysconfig/selinux
需要reboot重启生效
查看系统是否支持虚拟化(有输出内容)
grep -E -o ‘vmx|svm’ /proc/cpuinfo
安装kvm所需要的组件
yum -y install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager qemu-kvm libvirt python-virtinst bridge-utils
查看是否安装
kvm # kvm内核模块,linux内核中提供kvm管理程序
qumu-kvm # KVM核心模块
libvirt # 虚拟机管理工具,对虚拟机进行操作的集成各种接口库函数的中间件
python-virtinst # 记录创建VM的xml文件
bridge-utils # 网桥支持工具
virt-viewer # 图形查看功能
virt-manager # 安装图形界面管理虚拟机,virt-manager通过libvirt实现对虚拟机的操作
查看kvm模块是否被加载
网卡设为静态地址
创建虚拟网卡桥接
需要先关闭NetworkManager再重启网卡
[root@localhost ~]# virsh iface-bridge eth0 br0 出现下面的错误 重启一下libvirt服务
error: Failed to reconnect to the hypervisor
error: no valid connection
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory
[root@localhost ~]# /etc/init.d/libvirtd restart
Stopping libvirtd daemon: [ OK ]
Starting libvirtd daemon: [ OK ]
[root@localhost ~]# virsh iface-bridge eth0 br0
Created bridge br0 with attached device eth0
Bridge interface br0 started
[root@localhost ~]# service NetworkManager stop
[root@localhost ~]# service network restart
他会自动生成网桥文件,网络信息发生变化
修改值ip_forward值,执行以下命令
echo 1 > /proc/sys/net/ipv4/ip_forward
vim /etc/libvirt/qemu.conf
vnc_listen = “0.0.0.0”
user = "root"去掉
group = “root”
dynamic_ownership = 0 # 号并wq保存
重启libvirtd和messagebus服务
[root@localhost ~]# service libvirtd restart
Stopping libvirtd daemon: [ OK ]
Starting libvirtd daemon: [ OK ]
[root@localhost ~]# service messagebus restart
Stopping system message bus: [ OK ]
Starting system message bus: [ OK ]
准备安装
[root@localhost ~]# mkdir -p /home/kvm # 创建虚拟磁盘存放目录
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root 18134344 10099980 7113176 59% /
tmpfs 502204 84 502120 1% /dev/shm
/dev/sda1 495844 34894 435350 8% /boot
/dev/sr0 4363088 4363088 0 100% /media/CentOS_6.5_Final
[root@localhost ~]# dd if=/dev/sr0 of=/home/Centos6.iso # 把Centos6.5系统的镜像文件拷贝到/home目录下
726528+0 records in
8726528+0 records out
4467982336 bytes (4.2 GB) copied, 271.25 s, 2.6 MB/s
[root@localhost ~]# cd /home/kvm/
[root@localhost kvm]# qemu-img create -f qcow2 -o preallocation=metadata kvm_cany.img 5G
Formatting 'kvm_cany.img', fmt=qcow2 size=5368709120 encryption=off cluster_size=65536 preallocation='metadata'
[root@localhost kvm]# ls
kvm_cany.img
安装虚拟机
[root@localhost kvm]# virt-install --name=kvm_cany --ram 512 --vcpus=1 -f /home/kvm/kvm_cany.img --cdrom=/home/Centos6.iso --graphics vnc,listen=0.0.0.0,port=7788 --force --autostart
name是虚拟机名
ram是内存大小,以MB为单位
vcpus是虚拟机的cpu个数
listen是vnc的监听IP
port是vnc的监听端口
查看vnc有没有安装,如果没有
yum -y install tigervnc tigervnc-server
安装vnc其它的组件
yum install tigervnc
使用VNC连接KVM虚拟机(在虚拟机系统上不要用xshell等)
因为我是任何IP都可以连接所有直接vncviewer :端口号
[root@localhost admin]# vncviewer :7788
然后就图形化界面安装,安装完毕后vnc会自己结束,然后我们就能使用virsh控制台使用管理kvm系统
[root@localhost ~]# virsh list --all #查看所有的kvm系统
Id 名称 状态
----------------------------------------------------
- kvm_cany 关闭
[root@localhost ~]# virsh start kvm_cany #开启kvm系统
域 kvm_cany 已开始
[root@localhost ~]# virsh list #查看开启的kvm系统
Id 名称 状态
----------------------------------------------------
2 kvm_cany running
[root@localhost ~]# virsh shutdown kvm_cany #关闭kvm系统
域 kvm_cany 被关闭
但是我第一次使用virsh shutdown kvm关机时不起作用,因为kvm虚拟机中少了一个服务
yum -y install acpid #在kvm虚拟机中安装acpid服务组件
reboot #关机重启后就好了
但又发现kvm虚拟机随我的宿主机系统启动而启动,需要修改
virsh autostart --disable kvm_cany #取消kvm虚拟机随系统启动而启动
virsh autostart kvm_cany # 设置kvm虚拟机随系统启动而启动