1.认识理解KVM虚拟机

Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。
它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。
而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。
广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。

2.探讨目标
在CentOS7母机系统上安装KVM服务,并启动一个CentOS虚拟机

安装说明
KVM建立在母机系统上,因此对机器有一定的配置要求,比如svm, selinux等,这些基本问题不大。
另外有网友说不能用VMware虚拟机做母机安装KVM,本次实验用的母机系统使用的是VMware Workstation 14 Pro安装的CentOS7,结果证明可以使用。

KVM使用libvirt这个开源的API进行管理。
libvirt是提供了一个方便的方式来管理虚拟机和其他虚拟化功能的软件的集合,如存储和网络接口管理。这些软件包括一个API库,一个守护进程(Libvirtd),和一个命令行实用程序(virsh)。
libvirt的首要目标是能够管理多个不同的虚拟化供应商/虚拟机管理程序提供一个单一的方式。例如,命令“virsh列表等等都可以用于任何支持现有的虚拟机管理程序列表(KVM、Xen、VMware ESX,等)不需要学习管理程序特定的工具!

3.依赖包安装
yum install -y qemu-kvm libvirt virt-install bridge-utils
安装完上述依赖包好最好重启一下服务器

查看KVM安装的状态,可以使用lsmod查看状态
[root@linux-node1]# lsmod |grep kvm

有上面三行输出,说明KVM安装成功

4.管理服务
启动libvirtd守护进程
systemctl start libvirtd
systemctl status libvirtd

5.安装虚拟机
首先需要下载一个镜像文件到母机本地
我们的KVM虚拟机将要安装CentOS系统,于是到CentOS官网找一个镜像的下载链接,使用wget命令下载到本地
之前测试将镜像下载到/root目录,结果安装开始时提示无法读取镜像文件,为了避免权限问题,我们将镜像文件下载到/home目录
wget http://mirrors.163.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso -P /home/

执行安装虚拟机命令:

virt-install \
--virt-type=kvm \
--name=kvm- \
--vcpus= \
--memory= \
--location=/home/CentOS--x86_64-Minimal-.iso \
--disk path=/data/vms/kvm-.qcow2,size=,format=qcow2 \
--network bridge=virbr0 \
--graphics none \
--extra-args='console=ttyS0' \
--force

参数解析:
--name=kvm-1   虚拟机名字为kvm-1
--vcpus=2        2个虚拟CPU核心
--memory=2048      2G内存
--disk path=/data/vms/kvm-1.qcow2,size=15,format=qcow2   虚拟机硬盘文件所在目录及名字,大小为15G,格式为qcow2,此参数会自动生成该硬盘文件在对应目录
--network bridge=virbr0    虚拟机桥接用的网卡,不一定是这个名字,在母机上用ifconfig查看实际名字 (这里默认使用的是NAT模式,如果要使用Bridge模式,请参考另外一篇文章)

如果一切正常,会进入安装iso安装界面。

上面的设置跟在图形界面安装操作一样,分别进去设置一下就可以继续安装了,设置完如下

然后敲b开始进行安装,成功安装到最后页面:

回车后虚拟机会从开机界面一直进入到登陆界面,输入root和密码就登陆进了虚拟机系统

CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-8707fc0ebc304aecae24959960933077) 7 (Core)

......

[ 10.953832] Netfilter messages via NETLINK v0.30.
[ 10.967303] ip_set: protocol 6

CentOS Linux 7 (Core)
Kernel 3.10.0-862.el7.x86_64 on an x86_64

localhost login: root
Password:
[root@localhost ~]#

查看虚拟机信息

6.退出虚拟机回到母机系统

同时按Ctrl+]

7.重新连接虚拟机
virsh console kvm-1

8.KVM 操作虚拟机常用命令:
列出所有的虚拟机
virsh list --all

显示虚拟机信息
virsh dominfo kvm-1

显示虚拟机内存和cpu的使用情况
yum install virt-top -y
virt-top

显示虚拟机分区信息
virt-df kvm-1

关闭虚拟机(shutodwn)
virsh shutdown kvm-1

启动虚拟机
virsh start kvm-1

设置虚拟机(kvm-1)跟随系统自启
virsh autostart kvm-1

关闭虚拟机自启
virsh autostart --disable kvm-1

删除虚拟机
virsh undefine kvm-1

最新文章

  1. Oracle数据库开发
  2. python smtplib email
  3. 【Unity基础知识之三】Unity Assets目录下的特殊文件夹名称
  4. Objective-C之Block
  5. java-No exception of type ConfigurationException can be thrown; an exception type must be a subclass of Throwable
  6. GetQueuedCompletionStatus的返回值
  7. js中使用队列发送ajax请求
  8. Xcode 3.2.5免证书开发调试
  9. 1934: [Shoi2007]Vote 善意的投票
  10. cmd 编译java WebService
  11. 使用echarts,制作色温图
  12. JAVA学习知识点汇总
  13. Hive中Join的原理和机制
  14. hadoop环境配置
  15. Java中CardLayout布局方式的应用
  16. Ceph的BlueStore总体介绍
  17. RescuePro Deluxe恢复软件SanDisk
  18. C++STL 预定义函数对象和函数适配器
  19. 百度地图 ijintui以及七牛、百度编辑器、kindeditor
  20. js-jquery-SweetAlert【二】配置方法

热门文章

  1. Linux学习笔记9
  2. SpringBoot整合mongoDB
  3. Xamarin Essentials教程剪贴板Clipboard
  4. ES6基础语法
  5. CF 1033 D. Divisors
  6. 创建xml文件、解析xml文件
  7. select 多选 (EasyUI)
  8. HTML入门随笔
  9. 将一个C++的AES加密算法(有向量的)翻译成C#
  10. 记录下pytorch代码从0.3版本迁移到0.4版本要做的一些更改。