烂泥行天下,QEMU作为模拟器工作在用户空间

本文由秀依林枫提供友情赞助,先发于烂泥行天下

kvm

新近直接在攻读有关KVM的知识,实验平昔是在虚拟机VM中举行的。前些天刚好公司有一台空闲的服务器,直接拿来安装centos、kvm等等,然后相关的配备。

kvm安装

唯独在KVM安装windows系统时,一向会油不过生蓝屏,不能开展系统的装置。如下图:

最初准备

图片 1

规定机器有VT

  • 规定机器有VT
    egrep ‘(vmx|svm)’ /proc/cpuinfo
    若是没有出口,表达CPU不襄助虚拟化
    vmx 为Intel的CPU指令集
    svm 为AMD的CPU指令集

  • BIOS开启VT: Intel(R) Virtualization Tech [Enabled]
    验证:
    lsmod | grep kvm
    modprobe kvm-intel

查阅虚拟机的日记,如下图:

桥接互联网

ifcfg-enp7s0f1不要安插IP,BRIDGE等于ifcfg-br2的DEVICE

[root@bac02 network-scripts]# cat ifcfg-enp7s0f1
BOOTPROTO=none
DEVICE=enp7s0f1
NM_CONTROLLED=no
ONBOOT=yes
BRIDGE=br2
UUID=7083918b-0fc4-1d98-dcbb-8b9fccb8faa3

[root@bac02 network-scripts]# cat ifcfg-br2 
BOOTPROTO=static
DEVICE=br2
TYPE=Bridge
NM_CONTROLLED=no
IPADDR=192.168.3.50
NETMASK=255.255.255.0
GATEWAY=192.168.3.1
DNS1=202.96.134.133
DNS2=202.96.128.86
UUID=7083918b-0fc4-1d98-dcbb-8b9fccb8faa3

NM_CONTROLLED参数表示该网卡是或不是被NetworkManager服务管理,设置为no的话就是不接管,那么从前不要为止NetworkManager服务。

systemctl restart network
systemctl restart NetworkManager 

tac
/var/log/libvirt/qemu/server2008.log

关闭SELinux

图片 2

kvm安装

yum -y install libcanberra-gtk2 qemu-kvm.x86_64 qemu-kvm-tools.x86_64 libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch  libvirt-python.x86_64  dbus-devel virt-clone virt-manager libvirt libvirt-python libguestfs-tools

qemu-kvm
该软件包紧要含有KVM内核模块和基于KVM重构后的QEMU模拟器。KVM模块作为一切虚拟化环境的主干工作在系统空间,负责CPU和内存的调度。QEMU作为模拟器工作在用户空间,负责虚拟机I/O模拟。
依赖包qemu-img
主要用来QEMU磁盘镜像的管制,如新建一块磁盘镜像给虚拟机。

libvirt
提供Hypervisor和虚拟机管理的API。
依赖包libvirt-client
KVM客户端命令行管理工具virsh,负责虚拟机的启动、截止和治本等。
依赖包libvirt-daemon
libvirtd守护进度,作为客户端管理工具跟Hypervisor和虚拟机之间的大桥。
依赖包libvirt-daemon-driver-xxx
从名字来看属于libvirtd服务的驱动文件,作为libvirtd服务跟Hypervisor分歧目的(如qemu模拟器,互连网,存储等)间的接口。
依赖包bridge-utils
网桥管理工具包,负责桥接互连网的成立、配置和管理等工作。

virt-install
成立和仿制虚拟机的吩咐行工具包。

virt-manager
图形界面的KVM管理工具。
本来安装KVM的依赖性包远不止这么些,由于自己水平有限,所以仅挑了有的跟KVM架构有主要联络的软件包进行描述。

没有观察很有用的新闻。查看libvirtd日志,如下:

启航服务

systemctl enable libvirtd 
systemctl start libvirtd 

tac
/var/log/libvirt/libvirtd.log

kvm管理

图片 3

默许配置文件目录

xml: /etc/libvirt/qemu
img: /var/lib/libvirt/images

  • 翻开所有虚拟机列表

[root@bac02 qemu]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     centos6.7                      关闭
 -     centos6.7_clone1               关闭
 -     centos7.3                      关闭
 -     centos7.3_clone1               关闭
 -     centos7.3mod                   关闭
  • 查看镜像文件新闻

[root@bac02 qemu]# qemu-img info /var/lib/libvirtntos7.3.qcow2
image: /var/lib/libvirtntos7.3.qcow2
file format: qcow2
virtual size: 9.0G (9663676416 bytes)
disk size: 1.9G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: true

可以看看这么几条错误音讯:

kvm克隆virt-clone

仿造前删除uuid和mac音信,幸免mac冲突

virt-clone参数介绍

Options(一些基本的选项):
--version:查看版本
-h,--help:查看帮助信息
--connect=URI:连接到虚拟机管理程序 libvirt 的URI

General Option(一般选项):
-o ORIGINAL_GUEST, --original=ORIGINAL_GUEST:原来的虚拟机名称
-n NEW_NAME, --name=NEW_NAME:新的虚拟机名称
--auto-clone:从原来的虚拟机配置自动生成克隆名称和存储路径。
-u NEW_UUID, --uuid=NEW_UUID:克隆虚拟机的新的UUID,默认值是一个随机生成的UUID

Storage Configuration(存储配置):
-f NEW_DISKFILE, --file=NEW_DISKFILE:指定新的虚拟机磁盘文件
--force-copy=TARGET:强制复制设备
--nonsparse:不使用稀疏文件复制磁盘映像

Networking Configuration:(网络配置)
-m NEW_MAC, --mac=NEW_MAC:设置一个新的mac地址,默认是一个随机的mac

克隆虚拟机
virt-clone -o centos7.3mod -n centos7.3_clone1 -f
/var/lib/libvirtntos7.3_clone1.qcow2

克隆的虚拟机xml配置相比

[root@bac02 qemu]# diff centos6.7_clone1.xml centos6.7.xml 
4c4
<   virsh edit centos6.7_clone1
---
>   virsh edit centos6.7
9,10c9,10
<   <name>centos6.7_clone1</name>
<   <uuid>4743509b-3e65-4efb-9623-87f89b8fd554</uuid>
---
>   <name>centos6.7</name>
>   <uuid>bd5dff43-eb5e-4306-afc6-5b6b4e65d353</uuid>
41c41
<       <source file='/var/lib/libvirtntos6.7_clone1.qcow2'/>
---
>       <source file='/var/lib/libvirtntos6.7.qcow2'/>
74c74
<       <mac address='52:54:00:28:5c:51'/>
---
>       <mac address='52:54:00:92:8f:c7'/>

Unable to get
vcpus’ pids

KVM镜像管理工具guestfish

libguestfs-tools:命令行工具,libguestfs-winsupport:图形工具
安装
yum install libguestfs-tools
yum install libguestfs-winsupport

通过询问有关材料应该是,不可能得到vcpu的pid音讯。

既然如此是vcpu有标题,那么就去查看kvm模块是还是不是健康加载。

lsmod |grep
kvm

图片 4

经过上图可以寓目kvm模块没有加载正常。

既然如此kvm没有正常加载,那么大家来看望服务器的虚拟化是还是不是打开。

dmesg |grep
kvm

图片 5

可以看看系统现已提示大家BIOS中没有打开虚拟化。

关门服务器,进入BIOS开启虚拟化。然后再一次开动服务器,再一次查六柱预测关新闻,如下:

图片 6

在此设置windows系统,就从未有过出现蓝屏。如下:

图片 7

 

相关文章