目录

一.KVM虚拟化平台简介

虚拟化的定义

虚拟化的分类

KVM的发展

KVM的简介

Linux上的用户空间、内核空间、虚拟机之间的关系

KVM虚拟化的三种模式

二.在centos7上搭建与部署KVM虚拟化平台

搭建KVM的准备工作

搭建KVM功能

准备在KVM上安装虚拟机

KVM平台命令管理


一.KVM虚拟化平台简介

虚拟化的定义

  • 虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可以运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而且互相不影响,从而提高计算机的工作效率
  • 虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配,灵活调度,跨域共享,提高IT资源利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求

虚拟化的分类

  • 虚拟化的层次分类

1.完全虚拟化:最流行的虚拟化方法使用名为hypervisor的一种软件,在虚拟服务器和底层硬件之间建立一个抽象层。VMware和微软的VirtualPC是代表该方法的两个商用产品,而基于核心的虚拟机(KVM)是面向Linux系统开发的开源产品hypervisor可以捕捉CPU指令,为指令访问硬件控制器和外设充当中介。因而,完全虚拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务器上,而它们不知道自己运行在虚拟化环境下。其缺点是,hepervisor给处理器带来了开销
2.准虚拟化:完全虚拟化是处理密集型技术,因为它要求hypervisor管理各个虚拟服务器,并且让它们彼此独立。减轻这种负担的一种方法是,改动客户端操作系统,让它以为自己运行在虚拟环境下,能够与hypervisor协同工作。这种方法叫做准虚拟化,Xen是开源准虚拟化技术的一个例子。操作系统为虚拟服务器在Xen hyoervisor上运行之前,它必须在核心层面进行某些改变。因此,Xen适用于BSD、Linux、Solaris及其他开源系统,但不适合对象Windows这些专有的操作系统进行虚拟化处理,因为它们无法改动。准虚拟化技术的优点就是性能高。经过虚拟化处理的服务器可与hypervisor协同工作,其响应能力几乎不亚于未经过虚拟化处理服务器。准虚拟化与完全虚拟化相比优点明显,以至于微软和VMware都在开发这项技术,以完善各自的产品
3.系统虚拟化:就操作系统层的虚拟化而言,没有独立的hypersivor层,相反,主机操作本身就负责在多个虚拟化服务器之间分配硬件资源,并且让这些服务器彼此独立。一个明显的区别是,如果使用操作系统虚拟化,所有虚拟化服务器必须运行同一个操作系统(不过每个实例有各自的应用程序和用户),虽然操作系统虚拟化的灵活性比较差,但是本机速度性能比较高,此外,由于架构在所有虚拟服务器上使用单一、标准的操作系统,管理起来比异构环境要容易
4.桌面虚拟化:服务器虚拟化主要针对服务器而言,而虚拟化1最接近用户的是桌面虚拟化。桌面虚拟化的主要功能是将分散的桌面环境集中且保存管理起来,包括桌面环境的集中下发,集中更新,集中管理。桌面虚拟化使得桌面管理变得简单,不用每台终端单独进行维护、更新。终端数据可以集中存储在中心机房里,安全性相对传统桌面应用要高很多。桌面虚拟化可以使得一个人拥有多个桌面环境,也可以把一个桌面环境供多人使用

  • 虚拟化架构分类
  • 1型虚拟化,hypervisor直接安装物理机上,多个虚拟机在hypervisor运行。hypervisor实现方式一般是一个特殊定制的Linux系统。Xen和VMware的ESXi都属于这个类型

  • 2型虚拟化,物理机上首先安装常规的操作系统,比如rehat、Ubuntu和windows。Hypervisor作为OS上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBOX和VMware Workstation都属于这个类型

KVM的发展

  • 2006 年 10 月由以色列的 Qumranet 组织开发的一种新的“虚拟机”方案,并将其贡献给开源世界
  • 2007 年 2 月于 Linux Kernel-2.6.20 中第一次包含了 KVM
  • 2008 年 9 月,红帽收购了 Qumranet ,由此入手了 KVM 的虚拟化技术。在之前红帽决是将Xen 加入到自己的默认特性当中——那是 2006 年,因为当时Xen技术脱离了内核的维护方式,也许是因为采用 Xen 的 RHEL 在企业级虚拟化方面没有赢得太多的市场,也许是因为思杰跟微软走的太近了,种种原因,导致其萌生了放弃 Xen。而且在正式采用 KVM 一年后,就宣布在新的产品线中彻底放弃 Xen ,集中资源和精力进行 KVM 的工作。
  • 2009 年 9 月,红帽发布其企业级 Linux 的 5.4 版本( RHEL5.4 ),在原先的 Xen 虚拟化机制之上,将 KVM 添加了进来
  • 2010 年 11 月,红帽发布其企业级 Linux 的 6.0 版本( RHEL6.0 ),这个版本将默认安装的 Xen 虚拟化机制彻底去除,仅提供 KVM 虚拟化机制
  • 2011 年初,红帽的老搭档 IBM 找上红帽,表示 KVM 这个东西值得加大力度去做。于是到了 5 月, IBM 和红帽,联合惠普和英特尔一起,成立了开放虚拟化联盟( Open Virtualization Alliance ),一起声明要提升 KVM 的形象,加速 KVM 投入市场的速度,由此避免 VMware 一家独大的情况出现。联盟成立之时,红帽的发言人表示, 大家都希望除 “ VMware 之外还有一种开源选择。未来的云基础设施一定会基于开源
  • 自 Linux 2.6.20 之后逐步取代 Xen 被集成在Linux 的各个主要发行版本中,使用 Linux 自身的调度器进行管理。

KVM的简介

  • KVM全称是基于内核的虚拟机(Kernel-based Virtual Machine)
  • KVM是一个开源软件,基于内核的虚拟化技术,实际是嵌入系统的一个虚拟化模块,通过优化内核来使用虚拟技术,该内核模块使得Linux'变成了一个Hypervisor,虚拟机使用Linux自身的调度器进行管理
  • KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。但是,KVM 本身不执行任何硬件模拟,需要客户空间程序通过 /dev/kvm 接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视频显示映射回宿主的显示屏。目前这个应用程序是 QEMU。

Linux上的用户空间、内核空间、虚拟机之间的关系

  • Guest:客户机系统,包括CPU(vCPU)、内存、驱动(Console、网卡、I/O 设备驱动等),被 KVM 置于一种受限制的 CPU 模式下运行。
  • KVM:运行在内核空间,提供CPU 和内存的虚级化,以及客户机的 I/O 拦截。Guest 的 I/O 被 KVM 拦截后,交给 QEMU 处理。
  • QEMU:修改过的为 KVM 虚机使用的 QEMU 代码,运行在用户空间,提供硬件 I/O 虚拟化,通过IOCTL /dev/kvm 设备和 KVM 交互。
  • KVM有一个内核模块叫kvm.ko,只用于管理虚拟cpu和内存。IO的虚拟化,交给Linux内核和qemu来实现
  • Libvirt:是KVM的管理工具。Libvirt除了能管理KVM这种Hypevisor,还能管理Xen、VirtualBox等。openstack底层也使用libvirt
  • Libvirt包含:后台daemon程序Libvirtd、API库和命令行工具virsh
  • Libvirtd是服务程序,接收和处理API请求
  • API库使得其他人可以卡法基于Libvirt的高级工具,比如virt-manager,这是个图形化的KVM管理工具
  • virsh是我们经常使用的KVM命令行工具,下面会介绍

KVM虚拟化的三种模式

  • 客户模式:可以简单理解成客户机在操作系统运行中的模式,客户模式又分为内核模式和用户模式
  • 用户模式:为用户提供虚拟机管理的用户空间工具以及代表用户执行I/O,qemu运行在这个模式下
  • 内核模式:模式CPU以及内存,实现客户模式的切换,处理从客户模式的退出。KVM内核模式运行在这个模式下

二.在centos7上搭建与部署KVM虚拟化平台

搭建KVM的准备工作

  • 开启虚拟化功能
  • 增加内存,处理器,硬盘资源(内存最少4G)

搭建KVM功能

  • 可以先在NAT模式下,安装各种安装包,在设置KVM网络时,设置桥接模式
yum -y install qemu-kvm                                    ####KVM 模块
yum -y install qemu-kvm-tools                              ####KVM 调试工具,可不安装
yum -y install virt-install                                ####构建虚拟机的命令行工具
yum -y install qemu-img                                 ####qemu 组件,创建磁盘、 启动虚拟机等
yum -y install bridge-utils                                ####网络支持工具
yum -y install libvirt                                     ####虚拟机管理工具
yum -y install virt-manager                                ####图形界面管理虚拟机
  • 查看CPU是否支持虚拟化
[root@localhost ~]# cat /proc/cpuinfo | grep vmx
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec arat
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec arat
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec arat
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec arat
[root@localhost ~]#
  • 查看KVM模块是否安装
[root@localhost ~]# lsmod | grep kvm
kvm_intel             170086  3
kvm                   566340  1 kvm_intel
irqbypass              13503  1 kvm
[root@localhost ~]#
  • 开启libvirtd服务
[root@localhost ~]#  systemctl start libvirtd        ####开启libvirtd服务
[root@localhost ~]#  systemctl enable libvirtd     ####开机启动libvirtd服务
  • 设置网络,先将NAT模式改为桥接模式
cd /etc/sysconfig/network-scripts/
cp -p ifcfg-ens33 ifcfg-br0    ##复制桥接网卡
vim ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=0e5a02f3-25d6-4222-a2c7-3303cc76117a
DEVICE=ens33
ONBOOT=yes
#IPADDR=192.168.43.106
#PREFIX=24
#GATEWAY=192.168.43.2
BRIDGE=br0vim ifcfg-br0
TYPE="Bridge"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="br0"
DEVICE="br0"
ONBOOT="yes"
IPADDR=192.168.43.106
NETMASK=255.255.255.0
GATEWAY=192.168.43.2
~                      service network restart    ##其重启网卡
  • 查看网络
[root@localhost ~]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.43.106  netmask 255.255.255.0  broadcast 192.168.43.255inet6 fe80::82d1:28d4:a3d6:4d38  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:31:94:e1  txqueuelen 1000  (Ethernet)RX packets 137  bytes 12965 (12.6 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 38  bytes 4969 (4.8 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500ether 00:0c:29:31:94:e1  txqueuelen 1000  (Ethernet)RX packets 138  bytes 14943 (14.5 KiB)RX errors 0  dropped 1  overruns 0  frame 0TX packets 38  bytes 5017 (4.8 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 424  bytes 36872 (36.0 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 424  bytes 36872 (36.0 KiB)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:dd:17:31  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 0vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet6 fe80::fc54:ff:fe2d:f20  prefixlen 64  scopeid 0x20<link>ether fe:54:00:2d:0f:20  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[root@localhost ~]#

准备在KVM上安装虚拟机

  • 上传操作系统镜像文件(下面使用Xftp)

[root@localhost ~]# ls /mnt
CentOS-7-x86_64-DVD-1708.iso
[root@localhost ~]#
  • 创建虚拟机的存放路径
[root@localhost ~]# mkdir /yun
[root@localhost ~]# cd /yun
[root@localhost yun]# mkdir iso store    ##创建虚拟机镜像存放位置和存储位置
[root@localhost yun]# ls
iso  store
[root@localhost yun]#
  • 打开KVM

  • 创建存储池

  • 创建存储卷

  • 创建虚拟机

KVM平台命令管理

  • 虚拟机创建完毕后,系统也正常工作,可以配上IP地址让终端远程控制
[root@localhost ~]# virsh -h         ####查看命令帮助###virsh [options]... [<command_string>]
virsh [options]... <command> [args...]options:-c | --connect=URI      hypervisor connection URI-d | --debug=NUM        debug level [0-4]-e | --escape <char>    set escape sequence for console-h | --help             this help-k | --keepalive-interval=NUMkeepalive interval in seconds, 0 for disable-K | --keepalive-count=NUMnumber of possible missed keepalive messages-l | --log=FILE         output logging to file-q | --quiet            quiet mode-r | --readonly         connect readonly-t | --timing           print timing information-v                      short version-V                      long version--version[=TYPE]   version, TYPE is short or long (default short)commands (non interactive mode):Domain Management (help keyword 'domain')attach-device                  从一个XML文件附加装置attach-disk                    附加磁盘设备attach-interface               获得网络界面autostart                      自动开始一个域blkdeviotune                   设定或者查询块设备 I/O 调节参数。blkiotune                      获取或者数值 blkio 参数blockcommit                    启动块提交操作。blockcopy                      启动块复制操作。blockjob                       管理活跃块操作blockpull                      使用其后端映像填充磁盘。blockresize                    创新定义域块设备大小change-media                   更改 CD 介质或者软盘驱动器console                        连接到客户会话cpu-baseline                   计算基线 CPUcpu-compare                    使用 XML 文件中描述的 CPU 与主机 CPU 进行对比cpu-stats                      显示域 cpu 统计数据create                         从一个 XML 文件创建一个域define                         从一个 XML 文件定义(但不开始)一个域desc                           显示或者设定域描述或者标题destroy                        销毁(停止)域detach-device                  从一个 XML 文件分离设备detach-disk                    分离磁盘设备detach-interface               分离网络界面domdisplay                     域显示连接 URIdomfsfreeze                    Freeze domain's mounted filesystems.domfsthaw                      Thaw domain's mounted filesystems.domfsinfo                      Get information of domain's mounted filesystems.domfstrim                      在域挂载的文件系统中调用 fstrim。domhostname                    输出域主机名domid                          把一个域名或 UUID 转换为域 iddomif-setlink                  设定虚拟接口的链接状态domiftune                      获取/设定虚拟接口参数domjobabort                    忽略活跃域任务domjobinfo                     域任务信息domname                        将域 id 或 UUID 转换为域名domrename                      rename a domaindompmsuspend                   使用电源管理功能挂起域dompmwakeup                    从 pmsuspended 状态唤醒域domuuid                        把一个域名或 id 转换为域 UUIDdomxml-from-native             将原始配置转换为域 XMLdomxml-to-native               将域 XML 转换为原始配置dump                           把一个域的内核 dump 到一个文件中以方便分析dumpxml                        XML 中的域信息edit                           编辑某个域的 XML 配置event                          Domain Eventsinject-nmi                     在虚拟机中输入 NMIiothreadinfo                   view domain IOThreadsiothreadpin                    control domain IOThread affinityiothreadadd                    add an IOThread to the guest domainiothreaddel                    delete an IOThread from the guest domainsend-key                       向虚拟机发送序列号send-process-signal            向进程发送信号lxc-enter-namespace            LXC 虚拟机进入名称空间managedsave                    管理域状态的保存managedsave-remove             删除域的管理保存memtune                        获取或者数值内存参数perf                           Get or set perf eventmetadata                       show or set domain's custom XML metadatamigrate                        将域迁移到另一个主机中migrate-setmaxdowntime         设定最大可耐受故障时间migrate-compcache              获取/设定压缩缓存大小migrate-setspeed               设定迁移带宽的最大值migrate-getspeed               获取最长迁移带宽migrate-postcopy               Switch running migration from pre-copy to post-copynumatune                       获取或者数值 numa 参数qemu-attach                    QEMU 附加qemu-monitor-command           QEMU 监控程序命令qemu-monitor-event             QEMU Monitor Eventsqemu-agent-command             QEMU 虚拟机代理命令reboot                         重新启动一个域reset                          重新设定域restore                        从一个存在一个文件中的状态恢复一个域resume                         重新恢复一个域save                           把一个域的状态保存到一个文件save-image-define              为域的保存状态文件重新定义 XMLsave-image-dumpxml             在 XML 中保存状态域信息save-image-edit                为域保存状态文件编辑 XMLschedinfo                      显示/设置日程安排变量screenshot                     提取当前域控制台快照并保存到文件中set-user-password              set the user password inside the domainsetmaxmem                      改变最大内存限制值setmem                         改变内存的分配setvcpus                       改变虚拟 CPU 的号shutdown                       关闭一个域start                          开始一个(以前定义的)非活跃的域suspend                        挂起一个域ttyconsole                     tty 控制台undefine                       取消定义一个域update-device                  从 XML 文件中关系设备vcpucount                      域 vcpu 计数vcpuinfo                       详细的域 vcpu 信息vcpupin                        控制或者查询域 vcpu 亲和性emulatorpin                    控制火车查询域模拟器亲和性vncdisplay                     vnc 显示guestvcpus                     query or modify state of vcpu in the guest (via agent)Domain Monitoring (help keyword 'monitor')domblkerror                    在块设备中显示错误domblkinfo                     域块设备大小信息domblklist                     列出所有域块domblkstat                     获得域设备块状态domcontrol                     域控制接口状态domif-getlink                  获取虚拟接口链接状态domifaddr                      Get network interfaces' addresses for a running domaindomiflist                      列出所有域虚拟接口domifstat                      获得域网络接口状态dominfo                        域信息dommemstat                     获取域的内存统计domstate                       域状态domstats                       get statistics about one or multiple domainsdomtime                        domain timelist                           列出域Host and Hypervisor (help keyword 'host')allocpages                     Manipulate pages pool sizecapabilities                   性能cpu-models                     CPU modelsdomcapabilities                domain capabilitiesfreecell                       NUMA可用内存freepages                      NUMA free pageshostname                       打印管理程序主机名maxvcpus                       连接 vcpu 最大值node-memory-tune               获取或者设定节点内存参数nodecpumap                     节点 cpu 映射nodecpustats                   输出节点的 cpu 状统计数据。nodeinfo                       节点信息nodememstats                   输出节点的内存状统计数据。nodesuspend                    在给定时间段挂起主机节点sysinfo                        输出 hypervisor sysinfouri                            打印管理程序典型的URIversion                        显示版本Interface (help keyword 'interface')iface-begin                    生成当前接口设置快照,可在今后用于提交 (iface-commit) 或者恢复 (iface-rollback)iface-bridge                   生成桥接设备并为其附加一个现有网络设备iface-commit                   提交 iface-begin 后的更改并释放恢复点iface-define                   define an inactive persistent physical host interface or modify an existing persistent one from an XML fileiface-destroy                  删除物理主机接口(启用它请执行 "if-down")iface-dumpxml                  XML 中的接口信息iface-edit                     为物理主机界面编辑 XML 配置iface-list                     物理主机接口列表iface-mac                      将接口名称转换为接口 MAC 地址iface-name                     将接口 MAC 地址转换为接口名称iface-rollback                 恢复到之前保存的使用 iface-begin 生成的更改iface-start                    启动物理主机接口(启用它请执行 "if-up")iface-unbridge                 分离其辅助设备后取消定义桥接设备iface-undefine                 取消定义物理主机接口(从配置中删除)Network Filter (help keyword 'filter')nwfilter-define                使用 XML 文件定义或者更新网络过滤器nwfilter-dumpxml               XML 中的网络过滤器信息nwfilter-edit                  为网络过滤器编辑 XML 配置nwfilter-list                  列出网络过滤器nwfilter-undefine              取消定义网络过滤器Networking (help keyword 'network')net-autostart                  自动开始网络net-create                     从一个 XML 文件创建一个网络net-define                     define an inactive persistent virtual network or modify an existing persistent one from an XML filenet-destroy                    销毁(停止)网络net-dhcp-leases                print lease info for a given networknet-dumpxml                    XML 中的网络信息net-edit                       为网络编辑 XML 配置net-event                      Network Eventsnet-info                       网络信息net-list                       列出网络net-name                       把一个网络UUID 转换为网络名net-start                      开始一个(以前定义的)不活跃的网络net-undefine                   undefine a persistent networknet-update                     更新现有网络配置的部分net-uuid                       把一个网络名转换为网络UUIDNode Device (help keyword 'nodedev')nodedev-create                 根据节点中的 XML 文件定义生成设备nodedev-destroy                销毁(停止)节点中的设备nodedev-detach                 将节点设备与其设备驱动程序分离nodedev-dumpxml                XML 中的节点设备详情nodedev-list                   这台主机中中的枚举设备nodedev-reattach               重新将节点设备附加到他的设备驱动程序中nodedev-reset                  重置节点设备Secret (help keyword 'secret')secret-define                  定义或者修改 XML 中的 secretsecret-dumpxml                 XML 中的 secret 属性secret-get-value               secret 值输出secret-list                    列出 secretsecret-set-value               设定 secret 值secret-undefine                取消定义 secretSnapshot (help keyword 'snapshot')snapshot-create                使用 XML 生成快照snapshot-create-as             使用一组参数生成快照snapshot-current               获取或者设定当前快照snapshot-delete                删除域快照snapshot-dumpxml               为域快照转储 XMLsnapshot-edit                  编辑快照 XMLsnapshot-info                  快照信息snapshot-list                  为域列出快照snapshot-parent                获取快照的上级快照名称snapshot-revert                将域转换为快照Storage Pool (help keyword 'pool')find-storage-pool-sources-as   找到潜在存储池源find-storage-pool-sources      发现潜在存储池源pool-autostart                 自动启动某个池pool-build                     建立池pool-create-as                 从一组变量中创建一个池pool-create                    从一个 XML 文件中创建一个池pool-define-as                 在一组变量中定义池pool-define                    define an inactive persistent storage pool or modify an existing persistent one from an XML filepool-delete                    删除池pool-destroy                   销毁(删除)池pool-dumpxml                   XML 中的池信息pool-edit                      为存储池编辑 XML 配置pool-info                      存储池信息pool-list                      列出池pool-name                      将池 UUID 转换为池名称pool-refresh                   刷新池pool-start                     启动一个(以前定义的)非活跃的池pool-undefine                  取消定义一个不活跃的池pool-uuid                      把一个池名称转换为池 UUIDpool-event                     Storage Pool EventsStorage Volume (help keyword 'volume')vol-clone                      克隆卷。vol-create-as                  从一组变量中创建卷vol-create                     从一个 XML 文件创建一个卷vol-create-from                生成卷,使用另一个卷作为输入。vol-delete                     删除卷vol-download                   将卷内容下载到文件中vol-dumpxml                    XML 中的卷信息vol-info                       存储卷信息vol-key                        为给定密钥或者路径返回卷密钥vol-list                       列出卷vol-name                       为给定密钥或者路径返回卷名vol-path                       为给定密钥或者路径返回卷路径vol-pool                       为给定密钥或者路径返回存储池vol-resize                     创新定义卷大小vol-upload                     将文件内容上传到卷中vol-wipe                       擦除卷Virsh itself (help keyword 'virsh')cd                             更改当前目录echo                           echo 参数exit                           退出这个非交互式终端help                           打印帮助pwd                            输出当前目录quit                           退出这个非交互式终端connect                        连接(重新连接)到 hypervisor
[root@bdqn ~]# ls /etc/libvirt/qemu        ####查看KVM的配置文件存放目录
autostart  centos7.6.xml  networks[root@bdqn ~]# virsh list --all                      ####查看所有虚拟机状态Id    名称                         状态
----------------------------------------------------2     centos7.6                      running[root@bdqn ~]# virsh shutdown centos7.6     #####关闭centos7.6虚拟机
域 centos7.6 被关闭[root@bdqn ~]# virsh start centos7.6      #####开启centos7.6虚拟机
域 centos7.6 已开始[root@bdqn ~]# virsh destroy centos7.6   ######强制关闭centos7.6虚拟机的电源
域 centos7.6 被删除[root@bdqn ~]# virsh create /etc/libvirt/qemu/centos7.6.xml ####通过配置文件启动虚拟机系统实列
域 centos7.6 被创建(从 /etc/libvirt/qemu/centos7.6.xml)[root@bdqn ~]# virsh suspend centos7.6    #####挂起centos7.6虚拟机
域 centos7.6 被挂起[root@bdqn ~]# virsh list --all     #####centos7.6虚拟机 是暂停的,说明被挂起了Id    名称                         状态
----------------------------------------------------4     centos7.6                      暂停[root@bdqn ~]# virsh resume centos7.6    #####从挂起中恢复centos7.0虚拟机
域 centos7.6 被重新恢复[root@bdqn ~]# virsh list --all    #####centos7.6虚拟机 是运行的的,说明在被挂起时,恢复运行正常了Id    名称                         状态
----------------------------------------------------4     centos7.6                      running[root@bdqn ~]# virsh autostart centos7.6   #####centos7.6虚拟机伴随宿主机自动启动
域 centos7.6标记为自动开始[root@bdqn ~]# virsh list --allId    名称                         状态
----------------------------------------------------4     centos7.6                      running[root@bdqn ~]# virsh shutdown centos7.6
域 centos7.6 被关闭[root@bdqn ~]# virsh list --allId    名称                         状态
-----------------------------------------------------     centos7.6                      关闭
  • 虚拟机的删除和添加
[root@bdqn ~]# virsh shutdown centos7.6  ###关闭虚拟机
域 centos7.6 被关闭[root@bdqn ~]# virsh undefine centos7.6 ##删除centos7.0虚拟机 ,磁盘文件不会被删除
域 centos7.6 已经被取消定义[root@bdqn qemu]# ll     ###centos7.6.xml 信息没了
总用量 0
drwxr-xr-x  2 root root  6 4月  19 18:41 autostart
drwx------. 3 root root 42 4月  19 00:56 networks[root@bdqn qemu]# virsh list --all             ###centos7.6信息没了Id    名称                         状态
----------------------------------------------------[root@bdqn qemu]# cp /opt/c1.xml /etc/libvirt/qemu/centos7.6[root@bdqn qemu]# virsh define centos7.6
定义域 centos7.6(从 centos7.6)[root@bdqn qemu]# virsh list --allId    名称                         状态
-----------------------------------------------------     centos7.6                      关闭[root@localhost qemu]# cp /opt/c1.xml /etc/libvirt/qemu/centos7.0
[root@localhost qemu]# virsh define centos7.0
定义域 centos7.0(从 centos7.0)[root@localhost qemu]#  virsh list --all    Id    名称                         状态
-----------------------------------------------------     centos7.0                      关闭[root@bdqn qemu]# vi /etc/libvirt/qemu/centos7.6   ###通过这个配置文件可以修改虚拟机信息
[root@bdqn qemu]# virsh edit centos7.6    ###这条命令也可以修改

虚拟化平台-----KVM平台的搭建与部署相关推荐

  1. 云平台管理与部署---虚拟化平台-----KVM

    第一,搭建KVM服务器 1,虚拟化平台的安装 # yum -y install qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver ...

  2. KVM虚拟化,云平台

    KVM 介绍 virtualization 资源管理 一台物理机虚拟出多台虚拟机 多个物理机虚拟出一台虚拟机(看应用在哪的情况下) 完全虚拟化 部分虚拟化 硬件辅助(CPU) 系列 PC/服务器版代表 ...

  3. Openstack云平台的搭建与部署(具体实验过程截图评论拿)

    目录 Openstack云平台的搭建与部署................................... 3 Keywords:Openstack.Cloud Computing.Iaas.. ...

  4. 虚拟化平台——KVM

    目录 1.理论部分 1.1 虚拟化概述 1.1.1 虚拟化类型 1.2 KVM 概述 1.2.1 KVM的模式 1.2.2 KVM工作原理 1.2.3 KVM 的补充 2. 搭建KVM 2.1 搭建环 ...

  5. 搭建or部署接口自动化平台从零到一的过程

    接口自动化部署or搭建目录 前言 搭建 前端环境 后端环境 部署 部署环境 前端部署 后端部署 第一种方式后端部署 第二种方式后端部署 前言 首先感谢cheeath大佬的支持和帮助,自动化平台成功在服 ...

  6. OpenStack云平台搭建(4) | 部署Placement

    目录 安装部署Placement 1.登录数据库授权 2.安装palcement-api 安装部署Placement [Placement]服务 是从[nova]服务中拆分出来的组件,作用是收集各个[ ...

  7. KVM虚拟化技术(在Centos虚拟机里部署Centos虚拟机)

    文章目录 KVM 一.虚拟化技术 1.虛拟化技术概念 2.虚拟化技术发展 3.类型 (1)全虚拟化: (2)半虚拟化: (3)直通: 4.特性 二.KVM简介 概述 三.KVM架构及原理 1.KVM虛 ...

  8. 更改CloudStack中KVM平台的Windows虚拟机默认磁盘类型为VirtIO

    前言 本文的目的是为了解决在使用CloudStack(CloudPlatform)时,基于KVM虚拟化平台,Windows虚拟机的性能低下的问题. 此性能,主要指磁盘IO和网卡性能. 相关文档 由于C ...

  9. ZStack Cube:超融合3.0,从虚拟化到云平台融合

    超融合并不是一个新概念,从诞生到现在,差不多已经有十多年发展历程了.但由于企业底层的IT基础架构在不断变化,所以超融合的内涵也在不断演进.从简单的硬件融合到虚拟化融合,走到今天,超融合已进入3.0时代 ...

最新文章

  1. Perl 模块安装总结
  2. Java序列化接口的作用总结1
  3. matlab“机器学习和深度学习”系列工具箱作用总结
  4. oracle:平均分大于78的女同学的学号、姓名、平均分
  5. matlab的点平方,性能 – 有效地计算Matlab中的成对平方欧几里德距离
  6. uat测试用例和sit测试用例_软件测试用例设计时的颗粒度
  7. Vc2013实战(1) 别无选择的Mfc
  8. CentOS Docker环境部署NextCloud
  9. iscc2021 easyweb
  10. bfm人脸模型和3DDFA及其变种
  11. Meta Learning在NLP领域的应用
  12. 《千万别学英语》总结
  13. 欧姆龙NX1P2编程学习(1)-编写功能块注意事项
  14. vue中怎么实现吸顶效果
  15. 在Linux上,使用time优雅的统计程序运行时间
  16. 第13章 可视化实战
  17. Thinkpad X200 屏幕备案
  18. Java中值得你小心的事(一)——继承
  19. 摄影师在新西兰海域拍到怀孕雄性海马(组图)
  20. Oracle存储过程中的for循环

热门文章

  1. Spring中的事务及数据库事务的关系
  2. FFmpeg和SDL教程(五):同步视频
  3. 实现天空盒子的背景调用
  4. 【网申投递汇总】截止目前为止,还可以网申的公司 持续更新
  5. JS判断某个时间戳是否为当天时间
  6. 一招一式攻克linux
  7. 华为云宣布全面建设全球初创生态,3年内赋能10000家高潜初创企业
  8. PYTHON异常操作
  9. 解析 Flow:从爆款应用到公链的进化之路
  10. ping 不通 华为三层交换机vlan_s5700配置vlanif后不能ping通不能up