KVM是Kernel-based Virtual Machine的简称,是一个开源的虚拟化模块,该文档是基于CentOS 7.4环境操作的

一、操作系统安装

本文采用的是CentOS 7.4

1、查看系统版本

cat /etc/redhat-release

2、系统更新

Yum makecache &&yum update && yum upgrade

3、关闭SElinux

setenforce 0 (临时生效)

vi /etc/sysconfig/selinux

将SElinux=enforcing修改成SElinux=disabled

reboot (重启后永久生效)

getenforce (查看selinux状态)

4、安装防火墙

yum –y install iptables-service

systemctl start iptables.service

systemctl enable iptables.service

二、虚拟化环境配置

1、验证CPU是否支持KVM

半虚拟化是不能运行与安装KCM虚拟机的

egrep 'vmx|svm' /proc/cpuinfo

如果结果中有vmx(Intel)或svm(AMD)字样,说明CPU支持

2、安装基本软件包

yum –y install epel-release net-tools vim unzip zip wget

3、安装KVM软件包

yum –y install qemu-kvm libvirt virt-install bridge-util virt-viewer acpid kvm python-virtinst tunctl virt-manager qemu-kvm-tools virt-v2v libguestfs-tools

4、验证安装结果

4.1查看虚拟机环境

systemctl start libvirtd

virsh –c qemu:///system list

4.2查看kvm模块支持

lsmod | grep kvm

kvm_intel             170086  0

kvm                   566340  1 kvm_intel

irqbypass              13503  1 kvm

4.3查看虚拟工具版本

virsh –version

ls -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm

qemu-kvm -version

5、查看操作状态

systemctl status libvirtd

systemctl is-enabled libvirtd

6、配置网桥模式

先把/etc/sysconfig/network-scripts/目录下的网卡配置文件备份一份(不要备份在当前目录及其子目录,其他目录随意)

cp /etc/sysconfig/network-scripts/ifcfg-enp6s0 /root/ifcfg-enp6s0.bak

6.1创建ifcfg-br0文件

内容如下:

BOOTPROTO=static

DEVICE=br0

TYPE=Bridge

NM_CONTROLLED=no

IPADDR=192.168.0.121

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

DNS1=222.88.88.88

DNS2=222.85.85.85

6.2移除掉原来的ifcfg-enp6s0,重新创建该文件

内容如下:

BOOTPROTO=none

DEVICE=enp6s0

NM_CONTROLLED=no

ONBOOT=yes

BRIDGE=br0

6.3重启网络服务

systemctl restart network

使用ifconfig验证结果,多出来一块网卡br0,现在访问该服务器使用192.168.0.121就可以了

ifconfig

br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet 192.168.0.121  netmask 255.255.255.0  broadcast 192.168.0.255

inet6 fe80::a62:66ff:fea2:54f2  prefixlen 64  scopeid 0x20<link>

ether 08:62:66:a2:54:f2  txqueuelen 1000  (Ethernet)

RX packets 973  bytes 98149 (95.8 KiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 84  bytes 13557 (13.2 KiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp6s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

inet6 fe80::a62:66ff:fea2:54f2  prefixlen 64  scopeid 0x20<link>

ether 08:62:66:a2:54:f2  txqueuelen 1000  (Ethernet)

RX packets 62930  bytes 66814944 (63.7 MiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 25644  bytes 2550988 (2.4 MiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

device interrupt 17  memory 0xcc200000-cc220000

enp7s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

ether 08:62:66:a2:54:f3  txqueuelen 1000  (Ethernet)

RX packets 0  bytes 0 (0.0 B)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 0  bytes 0 (0.0 B)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

device interrupt 18  memory 0xcc100000-cc120000

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

inet 127.0.0.1  netmask 255.0.0.0

inet6 ::1  prefixlen 128  scopeid 0x10<host>

loop  txqueuelen 1  (Local Loopback)

RX packets 60  bytes 7012 (6.8 KiB)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 60  bytes 7012 (6.8 KiB)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

ether 52:54:00:a9:aa:73  txqueuelen 1000  (Ethernet)

RX packets 0  bytes 0 (0.0 B)

RX errors 0  dropped 0  overruns 0  frame 0

TX packets 0  bytes 0 (0.0 B)

TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

三、安装linux虚拟机

1、准备操作系统安装镜像文件

make -p/home/iso与本机环境一样的CentOS7.4,放在/home/iso目录下

2、创建虚拟机文件存放目录

nkdir –p /home/kvm-bak

3、使用virt-install创建虚拟机

virt-install -n vm01 -r 2048 --disk /home/kvm-bak/vm01.img,format=qcow2,size=40 --network bridge=br0 --os-type=linux --os-variant=rhel7.4 --cdrom /home/iso/CentOS-7-x86_64-Minimal-1708.iso --vnc --vncport=5910 --vnclisten=0.0.0.0

说明:在linux系统安装开始就要注意添加提高性能的一些参数,后面就不需要做一些调整了。

参数说明:

--name:指定虚拟机名称

--ram:分配内存大小。

--vcpus:分配CPU核心数,最大与实体机CPU核心数相同

--disk:指定虚拟机镜像,size指定分配大小单位为G。

--network:网络类型,此处用的是默认,一般用的应该是bridge桥接。

--accelerate:加速

--cdrom:指定安装镜像iso

--vnc:启用VNC远程管理,一般安装系统都要启用。

--vncport:指定VNC监控端口,默认端口为5900,端口不能重复。

--vnclisten:指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0。

--os-type=linux,windows

--os-variant=

win7:MicrosoftWindows7

winxp:MicrosoftWindowsXP

win2k8:MicrosoftWindowsServer2008

rhel7:RedHatEnterpriseLinux7

不用理会提示里面的错误,接着往下走

4、打开防火墙的5910端口

vim /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 5910 -j ACCEPT

systemctl reload iptables.service

5、使用VNC连接该虚拟机,进行虚拟机系统的安装

a. VNC Viewer

b. 新建连接

提供宿主IP、端口号(在virt-install创建过程中指定的)以及名称

c. Expert页签

将ColorLevel的值由原来的 pal8 修改为 rgb222 ,点击OK按钮保存(新版VNC Viewer该值默认已经是rgb222)

d. 双击连接的名称后,进入安装界面

e、接下来就安装CentOS7.4

过程略,默认是最小化的安装(估计跟上面使用的镜像有关)

6、重启

安装完CentOS,系统要求重启,虚拟机重启后自动关闭了

[root@localhost home]# virsh list  --all

Id    名称                         状态

----------------------------------------------------

-     vm01                           关闭

7、手动启动虚拟机

[root@localhost home]# virsh start vm01

域 vm01 已开始

[root@localhost home]# virsh list  --all

Id    名称                         状态

----------------------------------------------------

4     vm01                           running

再次使用VNC连接,发现已经可以连接进去了

8、虚拟机开启电源服务模式

yum -y install acpid

systemctl start acpid.service

systemctl enable acpid.service

四、安装windows server 2012 R2 datacenter虚拟机

1、上传镜像文件到/home/iso目录

cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso

2、安装

virt-install -n ws1 -r 4096 --vcpus=4 --disk /home/kvm-bak/ws1.img,format=qcow2,size=40 --network bridge=br0 --accelerate --os-type=windows --os-variant=win2k8 --cdrom /home/iso/cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso --vnc --vncport=5912 --vnclisten=0.0.0.0

--os-variant= 2k8,2k8R2,2k12,2k12R2,2k16,w7,w8,w8.1,w10(根据系统选择)

3、防火墙放行该端口,使用VNC进行连接安装系统

安装完毕后系统会重启,但是重启不来,需要手动重启

账号:Administrator,密码:1123456bnm,.

4、网络配置

同其他windows系统配置那样,使用的桥接网络,虽说是虚拟机,但跟真实的物理机一样

五、简单配置KVM虚拟机

KVM虚拟机的管理主要是通过virsh命令对虚拟机进行管理

1、网桥配置

如果在虚拟机安装CentOS的过程中配置了合适的网络参数,那么这时虚拟机是可以使用网络的。如果当时采用系统安装包的默认方式,未启用网卡,那么此时需要启动虚拟机的网卡,网卡配置文件是ifcfg-eth0,,配置文件跟普通安装的没啥区别,按照实际情况配置即可,默认是dhcp模式

2、配置在宿主端登录虚拟机shell

当然在宿主端可以通过SSH登录的,虚拟机也可以直接使用SSH方式登录,但是直接登录也是一个不错的方式.(虚拟机中的文件,不是宿主机中的)

a. 在虚机里运行命令

Cetos7系统:grubby --update-kernel=ALL --args="console=ttyS0"

b.重启虚拟机reboot

c.在宿主机上进入虚拟控制台

退出的话使用ctrl+](右方括号)

virsh start vm2

virsh console vm2

3、查看KVM虚拟机配置文件及运行状态

3.1 kvm虚拟机默认配置文件位置

/etc/libvirt/qemu,autostart目录是配置kvm虚拟机开机自启动的目录

3.2 KVM虚拟机运行状态

virsh list --all

六、迁移虚拟机

虚拟机建好后,最大的好处就是任由我们折腾,而不用担心重装系统的麻烦。所以一定要知道虚拟机怎么复制迁移,这里有两种情况,一种是本机上镜像复制,另一种是将本机镜像迁移到其他服务器上。

1、本机复制

a.先关闭虚拟机

virsh shutdown vm1

b.在 /home 下新建文件夹 /home/kvm-img

mkdir -p /home/kvm-img

c.使用virt-clone克隆vm2为新的虚拟机

virt-clone -o vm1 -n vm2 -f /home/kvm-img/vm2.img

注意:提示图形设备端口为自动端口,需要进行如下操作查看:

c.1 virsh dumpxml vm2

<graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'>

<listen type='address' address='0.0.0.0'/>

</graphics>

c.2在宿主机的防火墙上放行该端口,即可使用VNC连接克隆出的该虚拟机,使用 virsh list --all 查看

d. 开启vm2,修改IP地址、主机名

virsh start vm2

d.1 修改IP地址

vi /etc/sysconfig/network-scripts/ ifcfg-eth0 静态配置

BOOTPROTO=static

IPADDR=192.168.0.252

GATEWAY=192.168.0.1

NETMASK=255.255.255.0

DNS1=222.88.88.88

DNS2=222.85.85.85

重启网络:service network restart

d.2修改主机名

hostname vm2

vi /etc/hostname   (echo ‘vm2’ > /etc/hostname)

e. reboot 重启虚拟机

2. 将虚拟机镜像迁移到其他服务器上

a. 先将虚拟机的配置文件和镜像文件放到传输到新服务器上

虚拟机配置文件路径:/etc/libvirt/qemu/vm2.xml

虚拟机镜像文件路径:/home/kvm-img/vm2.img

b.在新服务器上编辑要迁移过来的虚拟机

把vm2.xml放在新服务器的/etc/libvirt/qemu/目录下,把vm2.img放在新服务器的/home/kvm-img/目录下

编辑vm2.xml文件,将里面所有vm2替换为vm3,然后把UUID换为新的(UUID在线生成)

c.定义新虚拟机

virsh define /etc/libvirt/qemu/vm3.xml

d.给新虚拟机配置新主机名和ip等

vrish start --all ,virsh start vm3, virsh console vm3

3. 克隆或迁移后的虚拟机使用VNC连接

重新指定VNC的端口号,将 /etc/libvirt/qemu/vm3.xml 中的VNC端口号修改你需要的值,然后在防火墙中放行该端口号

七、虚拟机快照

KVM虚拟机要使用快照功能,磁盘格式必须是qcow2,通过查看虚拟机配置文件获取,路径:/etc/libvirt/qemu/

1、创建快照

[root@localhost ~]# virsh snapshot-create vm2

已生成域快照 1508564438

快照配置文件在/var/lib/libvirt/qemu/snapshot/虚拟机名称/下

2、查看当前虚拟机快照版本信息

[root@localhost ~]# virsh snapshot-current vm2

<domainsnapshot>

<name>1508564438</name> //快照版本号

<state>shutoff</state>

<creationTime>1508564438</creationTime>

<memory snapshot='no'/>

…………. //省略部分内容

3、查看虚拟机镜像快照信息

[root@localhost ~]# virsh snapshot-list vm2

名称               生成时间              状态

------------------------------------------------------------

1508564438           2017-10-21 13:40:38 +0800 shutoff

4、再次创建新快照

[root@localhost ~]# virsh snapshot-create vm2

已生成域快照 1508564761

5、查看快照信息

[root@localhost ~]# virsh snapshot-list vm2

名称               生成时间              状态

------------------------------------------------------------

1508564438           2017-10-21 13:40:38 +0800 shutoff

1508564761           2017-10-21 13:46:01 +0800 shutoff

6、恢复虚拟机状态至某个版本

6.1先关闭虚拟机

virsh shutdown vm2

6.2 确认恢复的快照时间进行版本恢复

virsh snapshot-revert vm2 1508564438

7、删除快照

7.1 查看虚拟机快照

qemu-img info vm2.qcow2

7.2 删除快照

virsh snapshot-delete vm2 1508564761

已删除域快照 1508564761

八、virsh常用命令篇

1、查看运行的虚拟机

virsh list

2、查看所有的虚拟机

virsh list –all

3、开启虚拟机

virsh start vm01 或virsh create /etc/libvert/qemu/vm01.xml(通过配置文件的方式)

4、连接虚拟机

virsh console +域名(虚拟机的名称)

5、退出虚拟机

ctrl+]

6、关闭虚拟机

6.1 virsh shutdown +域名

这个时候在virsh list发现 test02这个虚拟机还是在运行的,并没有关闭。我们需要安装一个acpid的服务并启动它,什么是ACPI? ACPI是Advanced Configuration and PowerInterface缩写,高级配置和电源管理接口。acpid中的d则代表daemon。Acpid是一个用户空间的服务进程,它充当linux内核与应用程序之间通信的接口,负责将kernel中的电源管理事件转发给应用程序。

Acpid是一个用户空间的服务进程,它充当linux内核与应用程序之间通信的接口,负责将kernel中的电源管理事件转发给应用程序。

其实,说明了就是通过这个服务来执行电源关闭的动作,这也是为什么我们执行virsh shutdown +域名无法关机的原因。

(虚拟机安装acpid服务)

yum install -y acpid

systemctl start acpid.service

systemctl enable acpid.service

如果此时我没法进入虚拟机安装acpi协议的话,那么就无法关掉该虚拟机,此时可以用下面这种方法。

6.2  virsh destroy +域名

强制关闭电源

7、挂起虚拟机

virsh suspend +域名

8、恢复被挂起的虚拟机

virsh resume +域名

9、配置开机自启动虚拟机

virsh autostart +域名

autostart目录是kvm虚拟机开机自启动目录,可以看到该目录中有KVM配置文件链接

10、取消自动启动

virsh auotstart --disable +域名

11、彻底删除虚拟机

11.1删除虚拟机

virsh destroy +域名

11.2解除标记

virsh undefine +域名

说明:该命令只是删除vm01的配置文件,并不删除虚拟磁盘文件

附:重新定义虚拟机配置文件

mv /root/vm01.xml /etc/libvirt/qemu/vm01.xml (备份的虚拟机文件放到虚拟机配置文件存放路径)

virsh define /etc/libvirt/qemu/vm01.xml

11.3删除虚拟机文件

12、启动虚拟机并进入该虚拟机

virsh start 域名 --console

13、导出kvm虚拟机配置文件

virsh dumpxml vm01 > /root/vm01.xml

kvm虚拟机配置文件可以通过这种方式进行备份

14、编辑kvm虚拟机配置文件

virsh edit vm01

virsh edit将调用vi命令编辑/etc/libvirt/qemu/vm01.xml配置文件。也可以直接通过vi命令进行编辑,修改,保存。可以但不建议直接通过vi编辑。

九、kvm虚拟机vnc配置

1、修改qemu.conf

# vi /etc/libvirt/qemu.conf

vnc_listen = "0.0.0.0"

说明1:vnclisten 默认绑定127.0.0.1 在配置文件里指定VNC 绑定0.0.0.0IP,就不用在安装kvm虚拟机时指定vnclisten参数了。

说明2:在虚拟主机上有很多个虚拟机的时候,需要指定每个虚拟机的端口,否则将会很乱。

2、修改虚拟机配置文件

# virsh edit oeltest01

<graphics type='vnc' port='5910' autoport='no' listen='0.0.0.0'>

<listen type='address' address='0.0.0.0'/>

</graphics>

配置VNC的配置文件,port是指定端口号,autoport是自己分配端口号

3、查看vnc

netstat –tulnp

十、kvm虚拟机时间配置

在虚拟化环境中,虚拟机在长时间运行过程中,时间会变慢,通常的作法是配置ntpdate定时与时间服务器进行时间同步的计划任务。KVM虚拟机默认采用utc时间,需要专门修改,以及考虑kvm时间同步问题。

1、kvm虚拟机修改时间配置文件

kvm虚拟机采用utc时间,需要先修改配置文件使用KVM虚拟机的时间与虚拟主机同步。

修改utc为localtime,保存退出,重启虚拟机。

2、关于kvm虚拟机时间问题解决思路

(1) 虚拟机时间慢是所有虚拟化平台的一共性问题。

(2) 解决时间的最终解决方法就是在生产环境中配置时间服务器,kvm虚拟化服务器与kvm机均都要配置时间同步的计划任务,这才是解决这一个问题最终解决方案。

示例:如果能访问互联网,最简单了,需要kvm虚拟机与主机时间同步,但是运行一段时间会慢,一定要做时间同步,特别是对时间敏感的环境。

# crontab -e

01 */3 * * * /usr/sbin/ntpdate ntp.fudan.edu.cn >> /dev/null 2>&1

十一、KVM的Windows server 虚拟机使用virtio驱动

KVM安装Windows默认使用的是qemu虚拟化IDE硬盘模式,在这种情况下,IO性能比较低,如果使用virtio的方式可以提高虚拟机IO性能。而virtio所驱动的网卡,也将原来的百兆扩展到千兆。

这里就简单介绍下如何使用virtio驱动安装window server 2008. 其它windows版本操作相同,只需选择对应的驱动即可。

KVM安装Windows需要使用virtio的驱动:

https://fedoraproject.org/wiki/Windows_Virtio_Drivers#Direct_download

1、下载virtio驱动yum文件并安装

wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo

yum install virtio-win -y

2、查看virtio-win提供的驱动

[root@localhost ~]# rpm -ql virtio-win | grep iso

/usr/share/virtio-win/virtio-win-0.1.141.iso   =>virtio-win- latest

/usr/share/virtio-win/virtio-win.iso          =>virtio-win- stable

3、wget方式下载

Stable virtio-win iso: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso

Stable virtio-win x86 floppy: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win_x86.vfd

Stable virtio-win amd64 floppy: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win_amd64.vfd

Latest virtio-win iso: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso

Latest virtio-win x86 floppy: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win_x86.vfd

Latest virtio-win amd64 floppy: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win_amd64.vfd

Latest qemu-ga files: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-qemu-ga/

4、安装window虚拟机时附带virtio驱动

(1)、安装windows

使用virtio驱动安装虚拟机:

virt-install -n ws2 -r 4096 --vcpus=4 --disk /home/kvm-bak/ws2.img,format=qcow2,size=40,bus=virtio --disk path=/usr/share/virtio-win/virtio-win_x86.vfd,device=floppy --network bridge=br0 --accelerate --os-type=windows --os-variant=win2k8 --cdrom /home/iso/cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso --vnc --vncport=5912 --vnclisten=0.0.0.0

提示: 这里是使用的是软盘方式加载,如果镜像和驱动都使用cdrom的方式加载,在有些情况系统会找不到启动镜像,导致无法启动. 加载的驱动有x86和amd64两种类型,64位系统选择amd64. 32为系统选择x86.

(2)、 安装过程中,在选择磁盘界面会找不到磁盘,选择“加载驱动”,“浏览”,找到“软盘驱动器”,点开后选择 “server 2008”确定,驱动加载完成后,磁盘就出现了,继续安装即可。

(3)、安装完成后,在设备管理器中可以看到使用的是virtio:

5、在已安装的kvm虚拟机上添加virtio驱动

(1)、以传统的IDE硬盘模式安装

virt-install -n ws2 -r 4096 --vcpus=4 --disk /home/kvm-bak/ws2.img,format=qcow2,size=40 --network bridge=br0,model=virtio --accelerate --os-type=windows --os-variant=win2k8 --cdrom /home/iso/cn_windows_server_2012_r2_vl_with_update_x64_dvd_6052729.iso --vnc --vncport=5912 --vnclisten=0.0.0.0

(2)、加载virtio驱动的iso文件到虚拟机光驱

virsh  attach-disk  ws2 /usr/share/virtio-win/virtio-win.iso hdb --type cdrom

或者使用如下命令:

virsh change-media ws2g hdb /usr/share/virtio-win/virtio-win.iso

举例:

[root@localhost ~]# virsh  attach-disk  ws2 /usr/share/virtio-win/virtio-win.iso hdb --type cdrom

成功附加磁盘

(3)、修改虚拟机的xml文件

使其能发现virtio类型的设备,否则驱动无法安装

增加一块virtio驱动的硬盘:

cd /home/kvm-img

qemu-img  create -f qcow2 test.img 1G

注意test.img的权限问题,否则开启ws2时会提示test.img文件权限不够(chmod 777 test.img)

修改虚拟机的xml文件,在原有的"disk type"区域增加一个test磁盘的配置:

<disk type='file' device='disk'>

<driver name='qemu' type='qcow2'/>

<source file='/home/kvm-img/test.img'/>

<target dev='hdc' bus='virtio'/>   #注意磁盘,系统盘had,光驱hdb,这个应为hdc

</disk>

修改网卡类型为 virtio, 在 interface type 区域,修改model type=‘virtio‘ :

<interface type='bridge'>

<mac address='52:54:00:39:f9:60'/>

<source bridge='br0'/>

<model type='virtio'/>

提示:如果不是使用vnc远程连接,需要新增一个网卡配置,在没有安装驱动前,使用上面的配置,虚拟机是断网状态。

修改完成之后,开启虚拟机:virsh start ws2

(4)、手动更新驱动

可以事先把光驱中的驱动文件复制一份到磁盘中,开机后会发现没有网络适配器。在计算机设备管理器中找到网络适配器,然后手动更新,选择驱动文件所在目录

更新后的结果显示:

磁盘控制区:QEMU HARDDISK ATA Device(原有的)和Red Hat VirtIO SCSI controller(新增的)

存储控制器:Microsoft存储空间控制器(原有的)和Red Hat VirtIO SCSI controller(新增的)

网络适配器:Red Hat VirtIO Ethernet Adapter(速度是10.0Gbps)

(5)、再次修改xml文件

virsh edit ws2

原有磁盘信息:

<disk type='file' device='disk'>

<driver name='qemu' type='qcow2'/>

<source file='/home/kvm-bak/ws2.img'/>

<target dev='hda' bus='ide'/>

<address type='drive' controller='0' bus='0' target='0' unit='0'/>

</disk>

新增的磁盘信息:

<disk type='file' device='disk'>

<driver name='qemu' type='qcow2'/>

<source file='/home/kvm-img/test.img'/>

<target dev='hdc' bus='virtio'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>

</disk>

两者更改后的信息显示:

<disk type='file' device='disk'>

<driver name='qemu' type='qcow2'/>

<source file='/home/kvm-bak/ws2.img'/>

<target dev='vda' bus='virtio'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>

</disk>

操作说明:把原有磁盘信息中的address这一行替换为新增磁盘的address这一行,然后把dev='vda' bus='virtio'。

十二、调整虚拟机cpu和内存

1、查看虚拟机配置信息

virsh dumpxml ws2 | head –n 10

<domain type='kvm'>

<name>ws2</name>

<uuid>cc86e316-cb50-4983-8eba-c714f3b447f7</uuid>

<memory unit='KiB'>8388608</memory> #当前内存大小

<currentMemory unit='KiB'>8388608</currentMemory>  #最大内存大小

<vcpu placement='static'>6</vcpu>  #最大cpu数

<os>

<type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>

<boot dev='hd'/>

</os>

或者:virsh dominfo ws2

2、调整cpu

2.1修改配置文件

<vcpu placement='static'>6</vcpu>的值(需关机)

2.2在线调整虚拟机CPU

# virsh setvcpus ws2 4 (只能增大,不能减小)

同样,能够动态调整的最大VCPU个数也不能超过为虚拟机设置的最大VCPU数量

设置VM使用的最大内存或最大CPU可以使用 # virsh edit vm1命令

3、调整内存

3.1修改配置文件

virsh edit ws2

<memory unit='KiB'>8388608</memory> #当前内存大小 8388608/1024/1024=8G

<currentMemory unit='KiB'>8388608</currentMemory>  #最大内存大小

3.2在线调整虚拟机内存

virsh setmem ws2 4G (增大或减小)

能够在线调整的最大内存不能超过为虚拟机分配的最大内存,否则需要关闭虚拟机上调最大内存

KVM虚拟机相关步骤的更多相关文章

  1. 实现将VirtualBox 虚拟机转换为KVM虚拟机的步骤

    原来在桌面上一直使用virtualbox虚拟机管理程序(VMM)构建虚拟机安装不同的操作系统,现在 研究linux下的KVM,能否将已经建立的virtualBox虚拟客户机(guest)转换为KVM虚 ...

  2. kvm虚拟机相关

    一.虚拟机与宿主机鼠标不同步问题: https://blog.csdn.net/u012255731/article/details/53006195 先关闭虚拟机,想要修改鼠标和宿主机界面同步方法如 ...

  3. 使用kvm虚拟出Centos6.5系统相关步骤

    使用kvm虚拟出Centos6.5系统相关步骤 kvm是啥东西,亲们自行百度哇,一两句话也说不清楚,直接进主题使用宿主机虚拟出一台centos6.5的系统,当然其他系统也可以的,考虑到企业常用服务器系 ...

  4. 基于KVM建立虚拟机的步骤及总结说明

    1.前言 目前正在涉足云计算IaaS工作,虚拟化是IaaS的重要部分,因此这段时间对各个虚拟机化技术和工具进行研究,研究的目的不仅仅是为了会使用这个工具,而是通过研究了解技术的实现机制和原理,即知其然 ...

  5. kvm虚拟机操作相关命令及虚拟机和镜像密码修改

    虚拟机生命周期管理 1)查看kvm虚拟机状态 #virsh list --all 2)KVM虚拟机开机 # virsh start oeltest01 3)KVM虚拟机关机或断电 关机 默认情况下vi ...

  6. Centos7下搭建KVM虚拟机

    PRE-INSTALL ============================================================= kvm相关安装包及其作用 qemu-kvm 主要的K ...

  7. 烂泥:KVM虚拟机windows系统增加硬盘

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前一篇文章介绍了有关linux系统添加硬盘的方法,这次我们来介绍有关windows系统添加的相关步骤. 其实linux和windows添加的硬盘的方法都 ...

  8. KVM虚拟机配置笔记

    KVM 全称是 Kernel-Based Virtual Machine.也就是说 KVM 是基于 Linux 内核实现的,KVM有一个内核模块叫 kvm.ko,只用于管理虚拟 CPU 和内存. 在 ...

  9. [原]CentOS7.2部署KVM虚拟机

    前段时间学习了关于PostGis.OSM数据以及Mapnik相关内容,接下来将利用假期重点学习PostgreSQL-XL和瓦片服务器集群技术,因此先把环境搭好.计划采用KVM来充分利用家里不太宽裕的“ ...

随机推荐

  1. android生成sdk.jar 小工具

    net.sf.fjep.fatjar_0.0.31.jar 生成jar的工具 把这个net.sf.fjep.fatjar_0.0.31.jar到Eclipse的plugins中,从启Eclipse.点 ...

  2. Gradle的奇妙之处

    转载请注明出处:http://blog.csdn.net/crazy1235/article/details/50465885 Google I/O 2013大会上公布了AS,现在已经发展到2.0-b ...

  3. C++数值类型极限值的获取

    C/C++中基本类型的数值极限值一般来说都是与详细平台有关的,在程序设计的过程中为了写出与平台无关的程序则必须通过合理科学的方法去获取各种类型的极值,经常使用的获取方法有两种:一种是传统的C语言所採用 ...

  4. Ant批量处理jmeter脚本

    Ant是一个可以把代码从某个地方拿来,编译,再拷贝到某个地方去的构建工具.一时冲动学习一下,顺便王婆卖瓜尝试着处理jmeter的脚本,于是,采坑之旅也从此开始.本文省略ant安装步骤和ant脚本说明, ...

  5. 怎样使用 CCache 进行 cocos2d-x 编译加速

    https://github.com/chukong/cocos-docs/blob/master/manual/framework/native/v3/ccache-speed-up/zh.md C ...

  6. iOS 判断是否有权限访问相机,相册

    1.判断用户是否有权限访问相册 #import <AssetsLibrary/AssetsLibrary.h> ALAuthorizationStatus author =[ALAsset ...

  7. C/C++ 工具函数 —— 大端模式和小端模式的互换

    小端模式:小在小,大在大:大端模式:小在大,大在小: uint32_t swap_endian(uint32_t val) { val = ((val << 8) & 0xFF00 ...

  8. [MySQL] 统计函数记录

    时间段统计========== 按年汇总,统计:select sum(mymoney) as totalmoney, count(*) as sheets from mytable group by ...

  9. 【转】在IIS上部署你的ASP.NET Core项目

    概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kest ...

  10. div position:fixed后,水平居中的问题

    .div{position:fixed;margin:auto;left:0; right:0; top:0; bottom:0;width:200px; height:150px;}