KVM--安装及初步使用

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=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 10.0.0.12  netmask 255.255.255.0  broadcast 10.0.0.255inet6 fe80::5505:5aa:3f96:f3f8  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:51:09:70  txqueuelen 1000  (Ethernet)RX packets 22459  bytes 29147955 (27.7 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 5161  bytes 587757 (573.9 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255ether 52:54:00:fb:b1:55  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

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

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

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

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

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

[root@kvm-node1 ~]# virt-install --virt-type kvm --name CentOS-7-x86_64 --ram 1024 --cdrom=/ISO/CentOS-7-x86_64-Everything-1611.iso --disk path=/opt/CentOS-7-x86_64.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsoleStarting install...
Creating domain...                                          |    0 B  00:03     
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 --allId    Name                           State
-----------------------------------------------------     CentOS-7-x86_64                shut off                ### 可以看到虚拟机的名称和状态

四. 管理KVM

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

[root@kvm-node1 ~]# virsh start CentOS-7-x86_64
Domain CentOS-7-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 4.0K
-rw------- 1 root root 3.8K Aug 22 08:18 CentOS-7-x86_64.xml    
drwx------ 3 root root   42 Aug 22 07:51 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-7-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-7-x86_64
6   <vcpu placement='static'>1</vcpu> 修改为: <vcpu placement='auto' current="1">4</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-7-x86_64 2 --live ##虚拟机的cpu添加到2core

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

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

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

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

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

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

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

创建一个脚本,删除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/24  #将ens33网卡的ip信息删除
ifconfig br0 10.0.0.12/24 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=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 10.0.0.12  netmask 255.255.255.0  broadcast 10.0.0.255inet6 fe80::20c:29ff:fe51:970  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:51:09:70  txqueuelen 1000  (Ethernet)RX packets 553  bytes 41723 (40.7 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 680  bytes 63511 (62.0 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet6 fe80::5505:5aa:3f96:f3f8  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:51:09:70  txqueuelen 1000  (Ethernet)RX packets 6107998  bytes 8708309251 (8.1 GiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 534420  bytes 68906654 (65.7 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255ether 52:54:00:fb:b1:55  txqueuelen 1000  (Ethernet)RX packets 6685  bytes 278745 (272.2 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 6981  bytes 34351624 (32.7 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet6 fe80::fc54:ff:fe6b:5fee  prefixlen 64  scopeid 0x20<link>ether fe:54:00:6b:5f:ee  txqueuelen 1000  (Ethernet)RX packets 16  bytes 1650 (1.6 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 987  bytes 52236 (51.0 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

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

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

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

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

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

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

 

转载于:https://www.cnblogs.com/marvin-ma/p/7407509.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428861.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中南大学和中山大学计算机专业哪个好,中山大学和中南大学哪个实力更强?一字之差,一起来看看吧!...

原标题&#xff1a;中山大学和中南大学哪个实力更强&#xff1f;一字之差&#xff0c;一起来看看吧&#xff01;我国好大学有很多&#xff0c;但是各大学之间的实力参差不齐&#xff0c;就算是985也有很大区别&#xff0c;今天我们就谈一谈两个名字&#xff0c;比较相似的&…

Drozer快速使用指南

Drozer快速使用指南 1、简介&#xff1a; Drozer是一款用于测试android应用程序漏洞的安全评估工具&#xff0c;能够发现多种类型的安全的漏洞&#xff0c;免费版本的相关资源下载地址&#xff1a; https://www.mwrinfosecurity.com/products/drozer/community-edition/ 其中包…

Akka(19): Stream:组合数据流,组合共用-Graph modular composition

akka-stream的Graph是一种运算方案&#xff0c;它可能代表某种简单的线性数据流图如&#xff1a;Source/Flow/Sink&#xff0c;也可能是由更基础的流图组合而成相对复杂点的某种复合流图&#xff0c;而这个复合流图本身又可以被当作组件来组合更大的Graph。因为Graph只是对数据…

CSS-posiziton

1. 想要实现&#xff0c;”返回顶部”永远位于页面的右下角。需要用到position函数。CSS:层叠样式表。用到了分层的功能。 position:fixed; 永远固定在一个地方。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&…

怎么用树莓派制作web服务器,用树莓派做web服务器,靠谱吗?

有点想入门树莓派&#xff0c;然后做一个小web服务器&#xff0c;放在学校内网。大家有做过类似的事情吗&#xff1f;做过&#xff0c;自己用做测试的话是没什么问题的&#xff0c;而且非常小巧&#xff0c;携带方便。买的时候注意还要搭配这三个配件1 可以用的无线网卡&#x…

笔记本如何与其他计算机共享,笔记本电脑怎么和手机共享文件

假如想要用手机打开电脑上大容量的视频或其他文件&#xff0c;但是手机的容量又比较小&#xff0c;该怎么办呢?这个时候&#xff0c;我们就可以在电脑上设置共享文件夹&#xff0c;然后在手机上通过局域网来查看该共享文件夹就可以解决这个问题。那么笔记本电脑怎么和手机共享…

服务器系统崩了能pe,系统崩溃了无法正常重装系统?教你用PE虚拟盘来解决!...

如果电脑系统损坏开不了机怎么办&#xff1f;安全模式啥的都进入不了怎么办&#xff1f;不用怕&#xff0c;小编教你用PE重装系统&#xff0c;十分简单哦。用PE系统镜像还原重装系统&#xff1a;工具&#xff1a;U盘(最好有8G及以上的容量&#xff0c;因为一个windows7以上的系…

群晖218 修改服务器名称,一次换群晖引发的各种事情——论如何榨干218+的价值【不完全版】...

一次换群晖引发的各种事情——论如何榨干218的价值【不完全版】2020-04-08 16:40:0117点赞100收藏29评论创作立场声明&#xff1a;期中考试爸妈送的……购买理由大概用了两年的DS115j&#xff0c;性能实在受不了(ARM的想啥呢)然后就换了个218然后特么发现x64的就是舒服&#xf…

文件服务器上传文件的过程,文件服务器上传文件实现过程【分享】

写本帖的目的是&#xff0c;论坛经常有咨询或反馈文件服务器问题。本帖准备把文件服务器整个的实现过程讲清楚。以方便相关问题的或达到问题自查的目的。1、文件服务器 其实是IIS的一个站点。前端(说的前端是Silverlight及WPF等的前端)是直接与文件服务器站点进行交互。其中&am…

linux下搭建mongodb副本集

1.搭建三台mongodb服务器 cd /usr/local mkdir mongodb tar -zxvf mongodb-linux-x86_64-2.6.7.tgz cd mongodb-linux-x86_64-2.6.7 mv * /usr/local/mongodb cd /usr/local/mongodb mkdir data touch logs cd bin ./mongod -dbpath/usr/local/mongodb/data -logpath/usr/local…

ajax轮询模拟websocket,Ajax轮询和SSE服务器推送数据与websocket模式的区别性学习

我们试想一下我们做个实时聊天的窗口有几种方法&#xff1f;在我们不刷新页面并且可以试试更新页面内容的方法 你这时候是不是想到了ajax没错确实可以Ajax轮询什么是轮询&#xff1f;顾名思义就是我轮着问你&#xff0c;规定一个时间然后我就问你 有新数据了吗&#xff1f; 有新…

vue项目前端服务器,【前端技术】vue自动部署项目到服务器

想要的功能前端打包之后自动上传文件夹到服务器在不提交代码的前提下&#xff0c;也可以完成上述功能经过各种百度谷歌&#xff0c;最后有两种方案可以选择第一种是写一个shell&#xff0c;通过lftp上传文件夹&#xff0c;但是会有个权限的问题&#xff0c;需要更改nginx配置才…

官狼服务器临时维护,官狼三分钟新模式,跑跑狼人杀如何边跑边杀

作为风靡全球的桌游&#xff0c;狼人杀一度成为了国内白领、学生党的国民游戏。随着网络的普及&#xff0c;很多玩家开始转求线上网杀&#xff0c;网易《狼人杀官方》因为玩法最多画风好看&#xff0c;一直是大多数人的选择。而就在最近&#xff0c;《狼人杀官方》重磅推出了年…

三星s6 信号无服务器,手机没信号的原因以及解决方法

现在手机是一件很普遍的通讯工具&#xff0c;因为现在手机功能的强大&#xff0c;所以基本上人人一部手机。目前在社会上比较流行的牌子就是苹果或者三星手机。不过想必大家在用手机的时候都会出现手机没有信号这个问题。这个问题是一件比较麻烦的问题&#xff0c;有的时候急需…

不同型号服务器如何做双击热备,服务器做双机热备教程

服务器做双机热备教程 内容精选换一换将GaussDB(DWS)提供的ODBC DRIVER(psqlodbcw.so)配置到数据源中便可使用。配置数据源需要配置“odbc.ini”和“odbcinst.ini”两个文件(在编译安装unixODBC过程中生成且默认放在“/usr/local/etc”目录下)&#xff0c;并在服务器端进行配置…

文档上传到服务器上,将文件上传到服务器上

将文件上传到服务器上 内容精选换一换为了实现NAT Server、SAP HANA主备节点和SAP S/4HANA主备节点互相通过SSH协议跳转的功能&#xff0c;需要配置云服务器之间的互信。在本地PC上&#xff0c;生成登录NAT Server的密钥文件。在创建NAT Server时&#xff0c;指定了NAT Server的…

win10配置JAVA和tomacat环境变量

一、配置JAVA_HOME 二、配置CATALINA_HOME &#xff08;tomacat的环境变量&#xff09; 三、配置PATH 四、命令行检验配置结果&#xff1a; 1、命令行输入java 2、命令行输入javac 3、命令行输入startup.bat 注&#xff1a;如果以上三个命令无报错表示配置成功 转载于:https://…

设计模式 策略模式2 c++11

根据需求的不同 选择不同的策略算法 之前是保存的各种策略类的指针 这里直接使用 function bind 选择对应的算法 代码 // 005.cpp: 定义控制台应用程序的入口点。 //#include "stdafx.h" #include <functional> #include <iostream>using namespace std…

python学习(八)定制类和枚举

python定制类主要是实现特定功能&#xff0c;通过在类中定义特定的函数完成特定的功能。 class Student(object):def __init__(self, name):self.name namestudent Student("lilei") print(student) 实现定制类 class Student(object):def __init__(self, name):sel…

架构实战:(一)Redis采用主从架构的原因

架构实战 &#xff08;一&#xff09;Redis采用主从架构的原因 &#xff08;二&#xff09; 如果系统的QPS超过10W&#xff0c;甚至是百万以上的访问&#xff0c;则光是Redis是不够的&#xff0c;但是Redis是整个大型缓存架构中&#xff0c;支撑高并发的架构非常重要的环节。 首…