KVM是Kernel-based Virtual Machine的简称,是一个开源的虚拟化模块,今天我将在CentOS7的操作系统上安装KVM,以下是我的安装步骤.

一.环境信息

系统: CentOS 7.2  IP: 10.0.0.12/24

在虚拟机安装时,需要启用CPU的虚拟化功能

二. KVM安装步骤

1. 安装qemu-kvm和libvirt

[root@kvm-node1 ~]# yum install -y qemu-kvm libvirt   ###qemu-kvm用来创建虚拟机硬盘,libvirt用来管理虚拟机

2. 安装virt-install

[root@kvm-node1 ~]# yum install -y virt-install    ###用来创建虚拟机

3. 启动libvirtd,并将它设为开机启动,启动后使用ifconfig查看,发现会多出来一块virbr0的网卡,ip默认为192.168.122.1/24,说明libvirtd启动成功,如果默认没有ifconfig命令,使用yum install -y net-tools安装

[root@kvm-node1 ~]# systemctl start libvirtd && systemctl enable libvirtd
[root@kvm-node1 ~]# ifconfig
ens33: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 10.0.0.12 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80:::5aa:3f96:f3f8 prefixlen scopeid 0x20<link>
ether :0c:::: txqueuelen (Ethernet)
RX packets bytes (27.7 MiB)
RX errors dropped overruns frame
TX packets bytes (573.9 KiB)
TX errors dropped overruns carrier collisions lo: flags=<UP,LOOPBACK,RUNNING> mtu
inet 127.0.0.1 netmask 255.0.0.0
inet6 :: prefixlen scopeid 0x10<host>
loop txqueuelen (Local Loopback)
RX packets bytes (0.0 B)
RX errors dropped overruns frame
TX packets bytes (0.0 B)
TX errors dropped overruns carrier collisions virbr0: flags=<UP,BROADCAST,MULTICAST> mtu
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether :::fb:b1: txqueuelen (Ethernet)
RX packets bytes (0.0 B)
RX errors dropped overruns frame
TX packets bytes (0.0 B)
TX errors dropped overruns carrier collisions

经过以上三步,KVM安装成功,下面开始使用KVM创建虚拟机.

三. 使用KVM创建虚拟机(CentOS7)

1. 使用qemu命令创建一个10G的硬盘(最小10,G,可以更多),硬盘的名称为: CentOS-7-x86_64.raw

[root@kvm-node1 ~]# qemu-img create -f raw /opt/CentOS--x86_64.raw 10G
Formatting '/opt/CentOS-7-x86_64.raw', fmt=raw size=
[root@kvm-node1 ~]# ll -h /opt
total
-rw-r--r-- root root 10G Aug : CentOS--x86_64.raw

2. 使用virt-install创建名称为CentOS-7-x86_64的虚拟机,在创建之前,先上传一个CentOS7的ISO镜像,最好在根目录下创建一个ISO的目录文件夹

[root@kvm-node1 ~]# virt-install --virt-type kvm --name CentOS--x86_64 --ram  --cdrom=/ISO/CentOS--x86_64-Everything-.iso --disk path=/opt/CentOS--x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

Starting install...
Creating domain... | B :
Domain installation still in progress. You can reconnect to
the console to complete the installation process.

这时候使用TightVNC工具,连接主机IP 10.0.0.12,设置安装操作系统的网卡名称为eth0,如图所示

安装步骤和我们平时安装操作系统的方法一样,安装完成后,可以使用virsh list --all显示KVM上所有的虚拟机

[root@kvm-node1 ~]# virsh list --all
Id Name State
----------------------------------------------------
- CentOS--x86_64 shut off ### 可以看到虚拟机的名称和状态

四. 管理KVM

1. 使用virsh启动KVM中的虚拟机

[root@kvm-node1 ~]# virsh start CentOS--x86_64
Domain CentOS--x86_64 started

启动后,使用VNC连接工具,登录后可以看到网卡的名称为eth0,默认没有ip地址,是因为网卡没有激活,将ONBOOT改为yes,重启网卡,可以看到ip地址为192.168.122.0网段的

当KVM中的虚拟机启动后,可以在/etc/libvirt/qemu目录下,看到启动的虚拟机的信息

[root@kvm-node1 ~]# cd /etc/libvirt/qemu
[root@kvm-node1 qemu]# pwd
/etc/libvirt/qemu
[root@kvm-node1 qemu]# ls -lh
total .0K
-rw------- root root .8K Aug : CentOS--x86_64.xml
drwx------ root root Aug : networks

CentOS-7-x86_64.xml就是启动的虚拟机的信息,当我们使用vim编辑器查看时,会提示如下信息:

<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
virsh edit CentOS--x86_64
or other application using the libvirt API.
-->

看到提示需要修改虚拟机的信息,需要使用命令 virsh edit CentOS-7-x86_64,是用这条命令后,我们可以看到很多虚拟机的信息,包括vcpu,memory等

2.  CPU热添加(KVM支持CPU的热添加,不过局限是宿主机和虚拟机的系统相同才行,这里宿主机是CentOS7,虚拟机也是CentOS7,所以可以模拟CPU热添加,不过真实生产环境不建议这样操作)

[root@kvm-node1 ~]# virsh edit CentOS--x86_64
<vcpu placement='static'></vcpu> 修改为:
<vcpu placement='auto' current=""></vcpu>
##意思是当前cpu为1核,最多可以有4核,修改完虚拟机的配置文件,必须关闭虚拟机再启动,配置才能生效

[root@kvm-node1 ~]# virsh shutdown CentOS-7-x86_64     ##关闭虚拟机
Domain CentOS-7-x86_64 is being shutdown


[root@kvm-node1 ~]# virsh list --all            ##查看虚拟机状态 
Id          Name            State
----------------------------------------------------
-      CentOS-7-x86_64          shut off


[root@kvm-node1 ~]# virsh start CentOS-7-x86_64      ##启动虚拟机
Domain CentOS-7-x86_64 started


[root@kvm-node1 ~]# virsh list --all
Id          Name          State
----------------------------------------------------
3        CentOS-7-x86_64     running

 

先通过VNC工具查看虚拟机的cpu信息

在宿主机上通过命令添加核数

[root@kvm-node1 ~]# virsh setvcpus CentOS--x86_64  --live ##虚拟机的cpu添加到2core

再通过VNC工具查看虚拟机CPU信息

3. 内存热添加(还是不建议生产中使用,知道功能就行了)

通过VNC连接虚拟机,查看虚拟机内存

[root@kvm-node1 ~]# virsh qemu-monitor-command CentOS--x86_64 --hmp --cmd info balloon   ## 查看当前虚拟机的内存
balloon: actual= [root@kvm-node1 ~]# virsh qemu-monitor-command CentOS--x86_64 --hmp --cmd balloon 512 ## 修改当前虚拟机的内存为512 [root@kvm-node1 ~]# virsh qemu-monitor-command CentOS--x86_64 --hmp --cmd info balloon ## 查看修改的内存信息已经改变成了512
balloon: actual=

使用VNC工具连接虚拟机,查看内存是否有变:

4. 网卡配置(如何将KVM虚拟机中的网卡改为桥接模式,让局域网的其他用户可以正常访问)

[root@kvm-node1 ~]# brctl show  ##查看已有网桥
bridge name bridge id STP enabled interfaces
virbr0 .525400fbb155 yes virbr0-nic
vnet0

创建一个脚本,删除ens33网卡的ip信息,新建一个桥接网卡,并且将ens33网卡的ip信息富裕新建的桥接网卡

[root@kvm-node1 ~]# vim br0.sh
#!/bin/bash
brctl addbr br0 #创建一个桥接网卡br0
brctl addif br0 ens33 #将ens33网卡的桥接信息转到br0网卡
ip addr del dev ens33 10.0.0.12/ #将ens33网卡的ip信息删除
ifconfig br0 10.0.0.12/ up #将ens33网卡的ip信息这只到br0网卡上
route add default gw 10.0.0.2 #添加网关
[root@kvm-node1 ~]# chmod u+x br0.sh
[root@kvm-node1 ~]# ./br0.sh

使用ifocnfig查看网卡的ip信息,可以看到br0的地址已经变为了10.0.0.12/24

[root@kvm-node1 ~]# ifconfig
br0: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 10.0.0.12 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::20c:29ff:fe51: prefixlen scopeid 0x20<link>
ether :0c:::: txqueuelen (Ethernet)
RX packets bytes (40.7 KiB)
RX errors dropped overruns frame
TX packets bytes (62.0 KiB)
TX errors dropped overruns carrier collisions ens33: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet6 fe80:::5aa:3f96:f3f8 prefixlen scopeid 0x20<link>
ether :0c:::: txqueuelen (Ethernet)
RX packets bytes (8.1 GiB)
RX errors dropped overruns frame
TX packets bytes (65.7 MiB)
TX errors dropped overruns carrier collisions lo: flags=<UP,LOOPBACK,RUNNING> mtu
inet 127.0.0.1 netmask 255.0.0.0
inet6 :: prefixlen scopeid 0x10<host>
loop txqueuelen (Local Loopback)
RX packets bytes (0.0 B)
RX errors dropped overruns frame
TX packets bytes (0.0 B)
TX errors dropped overruns carrier collisions virbr0: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether :::fb:b1: txqueuelen (Ethernet)
RX packets bytes (272.2 KiB)
RX errors dropped overruns frame
TX packets bytes (32.7 MiB)
TX errors dropped overruns carrier collisions vnet0: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet6 fe80::fc54:ff:fe6b:5fee prefixlen scopeid 0x20<link>
ether fe:::6b:5f:ee txqueuelen (Ethernet)
RX packets bytes (1.6 KiB)
RX errors dropped overruns frame
TX packets bytes (51.0 KiB)
TX errors dropped overruns carrier collisions

使用命令修改KVM虚拟机的信息

[root@kvm-node1 ~]# virsh edit CentOS--x86_64
<interface type='network'> 修改为:
<interface type='bridge'> ##桥接
<source network='default'/> 修改为:
<source bridge='br0'/>

修改完成后关闭虚拟机,启动虚拟机,通过VNC工具修改ip为10.0.0.14/24,尝试ping宿主机是否可以ping通,并通过ssh连接

[root@kvm-node1 ~]# virsh shutdown CentOS--x86_64
Domain CentOS--x86_64 is being shutdown [root@kvm-node1 ~]# virsh start CentOS--x86_64
Domain CentOS--x86_64 started

通过本地的ssh软件,尝试连接,可以连接,并且可以看到IP信息

以上就是CentOS7中KVM的安装和简单管理.

KVM--安装及初步使用的更多相关文章

  1. KVM安装部署

    KVM安装部署 公司开始部署KVM,KVM的全称是kernel base virtual machine,对KVM虚拟化技术研究了一段时间, KVM是基于硬件的完全虚拟化,跟vmware.xen.hy ...

  2. 云计算之KVM安装(二)

    云计算之KVM安装(二) 调整虚拟机 虚拟化Intel使用的是intel VT-X AMD使用的是AMD-V 创建虚拟机步骤 1.准备虚拟机硬盘 2.需要系统iso镜像 3.需要安装一个vnc的客户端 ...

  3. 烂泥:kvm安装windows系统蓝屏

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近一直在学习有关KVM的知识,实验一直是在虚拟机VM中进行的.今天刚好公司有一台空闲的服务器,直接拿来安装centos.kvm等等,然后相关的配置. ...

  4. 烂泥:虚拟化KVM安装与配置

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近打算把公司的服务器全部做成虚拟化,一是跟有效的利用了服务器,二也是对自己是一个学习的机会. KVM的安装与配置步骤如下: 1. 查看是否支持虚拟化 ...

  5. 【KVM安装】在Centos6.8中安装KVM

    阅读目录 前题条件 章节1:安装Centos6.8-进行硬件检测 章节2:配置网络-设置桥接方式 章节3:安装KVM 章节4:OVA转qcow2 章节5:使用KVM创建虚拟机 章节6:参考链接 前题条 ...

  6. CentOS7.2上用KVM安装虚拟机window10踩过的坑

    最近两个星期一直在琢磨kvm安装window10操作系统,并且通过桥接模式与外界通信,经历了九九八十一难,终于搞定.下面就记录以下我们在探索的过程中踩过的坑. 安装KVM 1. 系统要求:需要一台可以 ...

  7. 云计算虚拟机技术-KVM安装

    云计算虚拟机技术-KVM安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 身为运维的小伙伴估计大家都清楚KVM,因为在CentOS里面KVM还算很折腾的一个软件,早期CentOS ...

  8. 使用虚拟化KVM安装RHEL7系统

    使用虚拟化KVM安装RHEL7系统 作者:Eric 微信:loveoracle11g 检查真实物理机是否支持虚拟化功能 [root@server ~]# grep vmx /proc/cpuinfo ...

  9. KVM安装、镜像创建(一)

    环境准备 VMware Workstation Pro启动虚拟化 查看启动的系统是否支持vmx或svm grep -E '(vmx|svm)' /proc/cpuinfo 备注:操作系统centos ...

  10. MySQL安装与初步操作

    MySQL是一款出色的中小型关系数据库,做Java Web开发时,要做到数据持久化存储,选择一款数据库软件自然必不可少. 由于MySQL社区版开元免费,功能比较强大,在此以MySQL为例,演示MySQ ...

随机推荐

  1. iOS开发-获取子视图坐标系中Point、Rect在父视图坐标系中的实际值

    iOS提供了方法来完成上述值得转换 convertRect:toView:, convertRect:FromView: convertPoint:toView: and convertPoint:f ...

  2. 使用 urllib 发送请求

    urllib.request.urlopen(url, data=None, timeout=n) 用于发送HTTP请求并得到响应内容 In []: import urllib.request In ...

  3. 有了Auto Layout,为什么你还是害怕写UITabelView的自适应布局?

    本文转载至 http://www.cnblogs.com/ios122/p/4832859.html Apple 算是最重视应用开发体验的公司了.从Xib到StoryBoard,从Auto Layou ...

  4. 【Phalapi2.0】 如何使用 source 通过 header 传参数

    做接口服务时候.有些场景会使用header 来传递参数. 查看官网文档说明 数据来源 source指定当前单个参数的数据来源,可以是post.get.cookie.server.request.hea ...

  5. 很好用的php在线调试工具

    什么叫在线调试?就是在线上生产环境进行调试,假设有一天某个用户报某个页面某个数据怎么不对啊,看来线上出BUG了,于是你要迅速找出原因,首先看日志,可是悲剧的没有足够的日志让你确定线上BUG的原因,也许 ...

  6. 纯css制作带三角(兼容所有浏览器)

    如何用 border 来制作三角. html 代码如下: 代码如下: <div class="arrow-up"></div> <div class= ...

  7. vue笔记 - 生命周期第二次学习与理解

    对于刚接触vue一两个月.才仅仅独立做过一两个vue项目的小白来说,以前一直自我感觉自己知道vue的生命周期, 直到前两天去面试,面试官让我说一下vue的生命周期... 其实我的心中是有那张图的,但是 ...

  8. 学习 python 编写规范 pep8 的问题笔记

    决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的.所以今天下午我根据PEP 8整理了一份,以后都照此 ...

  9. Android开发之ActionBar

    使用微信APP的小伙伴对于微信的ActionBar一定有印象,今天就带领大家一起实现以下这个效果. 第一步打开我们的开发工具,这里我使用的是Eclipse+ADT插件,然后创建我们的工程,这里选择An ...

  10. R序列seq

    > seq(from=10,to=20,by=3) [1] 10 13 16 19 > seq(from=10,to=20,length=5) [1] 10.0 12.5 15.0 17. ...