《虚拟化与云计算技术应用实践项目化教程》 课件 项目3 LIBVIRT创建和管理虚拟机_第1页
《虚拟化与云计算技术应用实践项目化教程》 课件 项目3 LIBVIRT创建和管理虚拟机_第2页
《虚拟化与云计算技术应用实践项目化教程》 课件 项目3 LIBVIRT创建和管理虚拟机_第3页
《虚拟化与云计算技术应用实践项目化教程》 课件 项目3 LIBVIRT创建和管理虚拟机_第4页
《虚拟化与云计算技术应用实践项目化教程》 课件 项目3 LIBVIRT创建和管理虚拟机_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

虚拟化与云计算应用实践

项目化教程

项目3LIBVIRT创建和管理虚拟机

学习目标知识目标了解libvirt作用及架构;了解libvirt工具集及配置文件。技能目标掌握使用libvirt部署虚拟机的方法;掌握virsh命令创建和管理虚拟机;掌握virsh命令创建和管理网络;掌握virsh命令创建和管理存储;掌握virsh命令迁移虚拟机。通过本课程的学习你将可以项目引导libvirt创建和管理虚拟机KVM管理工具libvirt对Qemu-kvm命令进行了封装,比原生的命令更高效。本项目介绍libvirt命令行工具virsh,包括创建和管理虚拟机、创建和管理网络、创建和管理存储以及迁移虚拟机等。libvirt简介知识准备任务实施libvirt框架网桥1234安装libvirt软件包使用virt-install创建虚拟机123客户机XML配置文件格式及配置信息使用virsh命令管理网络567使用virsh命令创建和管理虚拟机使用virsh命令管理存储池使用virsh命令静态迁移虚拟机1libvirt简介libvirt是管理虚拟化平台的开源工具之一。它提供统一、稳定、开放的源代码的应用程序接口(API)、守护进程(libvirtd)和一个默认命令行管理工具(virsh)。libvirtAPI管理对象daemon进程(libvirtd)virsh工具集对象说明Domain指运行在由Hypervisor提供的虚拟机器上的一个操作系统实例(常常是指一个虚拟机)或者用来启动虚机的配置。Hypervisor一个虚拟化主机的软件层。Node一台物理服务器。Storagepool一组存储媒介的集合,比如物理硬盘驱动器。一个存储池被划分为小的容器称作卷。卷会被分给一个或者多个虚机。Volume一个从存储池分配的存储空间。一个卷会被分给一个或者多个域,常常成为域里的虚拟硬盘。2libvirt框架图3-1libvirt层次结构(1)virsh命令或API接口创建虚拟机(接口层)(2)调用libvirt提供的统一接口(抽象驱动层)(3)调用底层的相应虚拟化技术的接口(具体驱动层)(4)拼装shell命令,并执行3网桥网桥工作在OSI模型中的第二层链路层,完成数据帧(frame)的转发,主要目的是在连接的网络间提供透明的通信。网桥互连带来广播风暴的问题,网络的规模较大时有可能引起广播风暴;然后是安全性问题,当与外部网络互连时,网桥会把内部和外部网络合二为一,自动向对方完全开放自己的网络资源。项目实施任务3-1安装libvirt软件包

任务3-2使用virt-install创建虚拟机任务3-3客户机XML配置文件格式及配置信息 任务3-4使用virsh命令创建和管理虚拟机 需要完成的任务:项目实施包括8个具体任务。本项目包括安装软件包、使用virt-install创建虚拟机、查看虚拟机xml配置文件、使用virsh命令创建管理虚拟机、管理网络、存储池。以及使用virsh命令迁移虚拟机。

Project项目实施任务3-5使用virsh命令管理网络 任务3-6使用virsh命令管理存储池 任务3-7使用virsh命令静态迁移虚拟机 任务3-8使用virsh命令动态迁移虚拟机 需要完成的任务:项目实施包括8个具体任务。本项目包括安装软件包、使用virt-install创建虚拟机、查看虚拟机xml配置文件、使用virsh命令创建管理虚拟机、管理网络、存储池。以及使用virsh命令迁移虚拟机。

Project任务实施1.安装libvirt软件包在部署qemu-kvm环境时,已经安装过相关服务器虚拟化组件。步骤1:首先添加腾讯云镜像源(RHEL8/Centos8操作系统需联网)。步骤2:测试CPU是否支持虚拟化技术。步骤3:确认是否加载KVM模块。步骤4:如果没有加载则执行以下命令加载KVM。步骤5:安装kvm相关软件包,其中libvirt等软件包在后续任务中将使用到。步骤6:启动libvirtd服务并设置开机自启动。[root@RHEL8~]#rm-rf/etc/yum.repos.d/[root@RHEL8~]#curl-o/etc/yum.repos.d/CentOS-Base.repo/repo/centos8_base.repo[root@RHEL8~]#cat/proc/cpuinfo|grep'vmx'//如果出现vmx字样,表明系统支持虚拟化。[root@RHEL8~]#dnfinstallqemu-kvmqemu-imglibvirtvirt-managerlibvirt-clientvirt-installvirt-viewer[root@RHEL8~]#systemctlstartlibvirtd[root@RHEL8~]#systemctlenablelibvirtd[root@RHEL8~]#lsmod|grepkvm[root@RHEL8~]#modprobekvm项目实施任务3-1安装libvirt软件包 任务3-2使用virt-install创建虚拟机任务3-3客户机XML配置文件格式及配置信息 任务3-4使用virsh命令创建和管理虚拟机 需要完成的任务:项目实施包括8个具体任务。本项目包括安装软件包、使用virt-install创建虚拟机、查看虚拟机xml配置文件、使用virsh命令创建管理虚拟机、管理网络、存储池。以及使用virsh命令迁移虚拟机。

Project任务实施2使用virt-install创建虚拟机virt-install命令用法及参数如下:用法:virt-install[参数]…参数:-h#查看帮助。-nNAME#指定虚拟机的名称。-rMEMORY#指定虚拟机的内存用量。-uUUID#指定虚拟机的唯一通用标识符(UniversallyUniqueIdentifier,UUID)。省略这个参数时,virt-install将会自动产生。--vcpus=VCPUS#指定虚拟机的虚拟CPU(VirtualCPU,VCPU)数量。-fDISKFILE#指定虚拟磁盘的文件路径名称。-sDISKSIZE#用来指定虚拟磁盘的大小,这个参数需配合-f使用。DISKSIZE为虚拟磁盘的大小,单位是GB。-mMAC#指定虚拟机的网络卡之硬件地址。这个参数可以省略,省略时virt-install将自动产生。-p(--paravirt)#以半虚拟化的方式建立虚拟机。--hvm#使用全虚拟化技术。-l#LOCATION指定安装来源。--arch#CPU架构。-cCDROM#设置光盘镜像路径。--import#导入现有虚拟机。--os-type=TYPE#指定系统类型(比如linux、windows)。--disk=DISKOPTS#设置虚拟磁盘。[root@RHEL8~]#cd/opt/image;qemu-imgcreate-fqcow2rhel6-1.qcow22G[root@RHEL8~]#virt-install--virt-type=kvm--namerhel6-1--ram512--vcpus=1--os-variant=rhel6--cdrom=/opt/boot/CentOS-6.5-x86_64-bin-DVD1.iso--network=bridge=virbr0,model=virtio--graphicsvnc--diskpath=/opt/image/rhel6-1.qcow2,bus=virtio,format=qcow2例子:创建一个Hypervisor为KVM,名为rhel6-1,内存512MB,磁盘2G的虚拟机,磁盘格式qcow2。安装的镜像文件CentOS-6.5-x86_64-bin-DVD1.iso已经下载到/opt/boot文件夹中。项目实施任务3-1安装libvirt软件包 任务3-2使用virt-install创建虚拟机任务3-3客户机XML配置文件格式及配置信息

任务3-4使用virsh命令创建和管理虚拟机 需要完成的任务:项目实施包括8个具体任务。本项目包括安装软件包、使用virt-install创建虚拟机、查看虚拟机xml配置文件、使用virsh命令创建管理虚拟机、管理网络、存储池。以及使用virsh命令迁移虚拟机。

Project任务实施3客户机XML配置文件格式及配置信息1.默认放置虚拟机配置文件的路径/etc/libvirt/qemu/<domaintype='kvm'>#用kvm创建的虚拟机称为domain,type定义使用哪个虚拟机管理程序,值可以是:xen、kvm、qemu、lxc、kqemu<name>rhel6-1</name>#name参数为虚拟机名字,由字母和数字组成,不能包含空格

<uuid>1e93588a-40ef-4b50-877b-b3f6a6ba6435</uuid>#uuid,全球唯一,linux下可以用uuidgen生成<devices>#设备定义开始,所有的设备都是一个名为devices元素的子设备<disk><drivername='qemu'type='qcow2'/><sourcefile='/opt/image/rhel6-1.qcow2'/>#source元素:在disk的type是file时,file属性指定一个合格的全路径文件映像作为客户端的磁盘<disk>cdrom<sourcefile='/opt/boot/xxx.iso'/><interfacetype='bridge'>#虚拟机网络连接方式,此处使用网桥类型。确保每个kvmguest的mac地址唯一。</devices>#设备定义结束[root@RHEL8~]#cd/etc/libvirt/qemu[root@RHEL8qemu]#ls[root@RHEL8qemu]#catrhel6-1.xml

项目实施任务3-1安装libvirt软件包 任务3-2使用virt-install创建虚拟机任务3-3客户机XML配置文件格式及配置信息 任务3-4使用virsh命令创建和管理虚拟机 需要完成的任务:项目实施包括8个具体任务。本项目包括安装软件包、使用virt-install创建虚拟机、查看虚拟机xml配置文件、使用virsh命令创建管理虚拟机、管理网络、存储池。以及使用virsh命令迁移虚拟机。

Project任务实施4使用virsh命令创建和管理虚拟机1使用virsh的交互和非交互模式。[root@RHEL8~]#virsh-cqemu+ssh://root@0/system使用virsh非交互模式。[root@RHEL8~]#virsh--help#查看命令帮忙2使用virsh创建虚拟机rhel6-2。(1) 创建一个新的10g虚拟机磁盘rhel6-2.qcow2。#qemu-imgcreate–fqcow2rhel6-2.qcow210G(2) 备份新的虚拟机配置文件rhel6-2.xml。#cd/etc/libvirt/qemu;virhsdumpxmlrhel6-1>rhel6-2.xml(3) 利用备份的配置文件rhel6-2.xml生成新的虚拟机rhel6-2。#uuidgen#vimrhel6-2.xml包括名称,uid,磁盘,镜像,网络等等#virshcreaterhel6-2.xml临时创建虚拟机,关机后消失#virshdefinerhel6-2.xml永久创建虚拟机,关机后不消失命令说明quit结束virsh,回到Shellconnect连接到指定的虚拟机服务器create启动一个新的虚拟机destroy删除一个虚拟机start开启(已定义的)非启动的虚拟机define从XML定义一个虚拟机undefine取消定义的虚拟机dumpxml转储虚拟机的设置值list列出虚拟机reboot重新启动虚拟机save存储虚拟机的状态restore回复虚拟机的状态suspend暂停虚拟机的执行resume继续执行该虚拟机dump将虚拟机的内核转储到指定的文件,以便进行分析与排错shutdown关闭虚拟机setmem修改内存的大小setmaxmem设置内存的最大值setvcpus修改虚拟处理器的数量项目实施任务3-5使用virsh命令管理网络

任务3-6使用virsh命令管理存储池 任务3-7使用virsh命令静态迁移虚拟机 任务3-8使用virsh命令动态迁移虚拟机 需要完成的任务:项目实施包括8个具体任务。本项目包括安装软件包、使用virt-install创建虚拟机、查看虚拟机xml配置文件、使用virsh命令创建管理虚拟机、管理网络、存储池。以及使用virsh命令迁移虚拟机。

Project任务实施5使用virsh命令管理网络net-autostart 自动开始网络net-create 从一个XML文件创建一个网络net-define 定义非活动状态的虚拟网络或从XML文件修改现有的虚拟网络。net-destroy 销毁(停止)网络net-dhcp-leases 为给定网络打印租约信息net-dumpxml XML中的网络信息net-edit 为网络编辑XML配置net-event 网络事件net-info 网络信息net-list 列出网络net-name 把一个网络UUID转换为网络名net-start 开始一个(以前定义的)不活跃的网络net-undefine 取消定义虚拟网络。net-update 更新现有网络配置的部分net-uuid 把一个网络名转换为网络UUID任务实施5使用virsh命令管理网络1.查看虚拟网络[root@RHEL8~]#virshnet-list--all#查看所有虚拟网络。[root@RHEL8~]#virshnet-list#查看所有正在运行的虚拟网络[root@RHEL8~]#virshnet-infodefault#查看名为default的虚拟网络[root@RHEL8~]#cd/etc/libvirt/qemu/networks[root@RHEL8network]#ls[root@RHEL8network]#catdefault.xml2.管理虚拟网络[root@RHEL8~]#virshnet-destroydefault#强制关闭名为default的虚拟网络[root@RHEL8~]#virshnet-startdefault#启动名为default的虚拟网络[root@RHEL8~]#virshnet-autostartdefault#设置名为default的虚拟网络真机开机则自动运行网络default标记为自动启动[root@RHEL8~]#virshnet-autostart--disabledefault#取消名为default的虚拟网络真机开机则自动运行[root@RHEL8~]#cd/etc/libvirt/qemu/networks#切换路径,定义名为default的虚拟机(也就是把vnet虚拟网络加入KVM软件)[root@RHEL8networks]#ls[root@RHEL8networks]#virshnet-definedefault.xml[root@RHEL8networks]#cd/etc/libvirt/qemu/network;cpdefault.xmldefault.xml.bak(注意:要生成虚拟网络配置文件default.xml)[root@RHEL8~]#virshnet-undefinedefault#取消定义名为default的虚拟网络(也就是把default虚拟网络从KVM软件删除)项目实施任务3-5使用virsh命令管理网络 任务3-6使用virsh命令管理存储池

任务3-7使用virsh命令静态迁移虚拟机 任务3-8使用virsh命令动态迁移虚拟机 需要完成的任务:项目实施包括8个具体任务。本项目包括安装软件包、使用virt-install创建虚拟机、查看虚拟机xml配置文件、使用virsh命令创建管理虚拟机、管理网络、存储池。以及使用virsh命令迁移虚拟机。

Project任务实施6使用virsh命令管理存储池find-storage-pool-sources-as 找到潜在存储池源find-storage-pool-sources 发现潜在存储池源pool-autostart 自动启动某个池pool-build 建立池pool-create-as 从一组变量中创建一个池pool-create 从一个XML文件中创建一个池pool-define-as 在一组变量中定义池pool-define 定义非活动的存储池或从XML文件修改现有的存储池pool-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

存储池事件任务实施6使用virsh命令管理存储池1.创建一个逻辑卷池lvm_p,并进行管理(1)添加两个磁盘sdb,sdc作为物理卷。(2)将sdb和sdc创建为物理卷,并添加sdb到卷组lvm_p中。(3)创建存储池的xml文件lvm_p.xml。将新的存储卷位置更改到/opt/image,pool的类型从默认的dir改为logical,即lvm类型。(4)使用pool-define命令定义、开启存储池,并查看信息。(5)将sdc添加到卷组lvm_p中,由于卷组增大,相当于存储池进行了扩容。[root@RHEL8~]#fdisk–l[root@RHEL8~]#partprobe/dev/sdb[root@RHEL8~]#partprobe/dev/sdc[root@RHEL8~]#lsblk[root@RHEL8~]#lsblk[root@RHEL8~]#pvcreate/dev/sdb[root@RHEL8~]#pvcreate/dev/sdc[root@RHEL8~]#vgcreatelvm_p/dev/sdb[root@RHEL8~]#vgs[root@RHEL8~]#cd/etc/libvirt/storage/[root@RHEL8storage]#cpdefault.xmllvm_p.xml[root@RHEL8storage]#vimlvm_p.xml[root@RHEL8storage]#catlvm_p.xml[root@RHEL8storage]#virshpool-definelvm_p.xml[root@RHEL8storage]#virshpool-dumpxmllvm_p[root@RHEL8storage]#vgextendlvm_p/dev/sdc[root@RHEL8storage]#virshpool-refreshlvm_p[root@RHEL8storage]#virshpool-infolvm_p任务实施6使用virsh命令管理存储池1.创建一个逻辑卷池lvm_p,并进行管理(6)在已有的存储池中创建存储卷。(7)将存储卷挂载到客户机上使用。删除使用中的存储池,需要先分离磁盘,删除活跃的存储卷,停止存储池后再取消定义。[root@RHEL8storage]#virshvol-create-as--poollvm_p--namevol1--capacity50m[root@RHEL8storage]#virshvol-infovol1--poollvm_p[root@RHEL8storage]#lvs[root@RHEL8storage]#virshstartrhel6-2[root@RHEL8storage]#virshattach-disk--domainrhel6-2--source/dev/lvm_p/vol1--targetvdb[root@RHEL8storage]#virshlist[root@RHEL8storage]#virshdomblklist1[root@RHEL8storage]#virshdetach-disk1--targetvdb成功分离磁盘

[root@RHEL8storage]#virshvol-deletevol1--poollvm_p卷vol1被删除[root@RHEL8storage]#virshpool-destroylvm_p销毁池lvm_p[root@RHEL8storage]#virshpool-undefinelvm_p池lvm_p已经被取消定义[root@RHEL8storage]#ls项目实施任务3-5使用virsh命令管理网络 任务3-6使用virsh命令管理存储池 任务3-7使用virsh命令静态迁移虚拟机

任务3-8使用virsh命令动态迁移虚拟机 需要完成的任务:项目实施包括8个具体任务。本项目包括安装软件包、使用virt-install创建虚拟机、查看虚拟机xml配置文件、使用virsh命令创建管理虚拟机、管理网络、存储池。以及使用virsh命令迁移虚拟机。

Project任务实施7使用virsh命令静态迁移虚拟机1.静态迁移虚拟机(1)确定RHEL8-1的虚拟机为关闭状态,当前RHEL8-2尚未有虚拟机,/etc/libvirt/qemu中未有虚拟机配置文件,/opt/image未有磁盘映像文件。(2)查看RHEL8-1中准备迁移的rhel6-2虚拟机磁盘文件(3)导出rhel6-2虚拟机配置文件(4)拷贝rhel6-2配置文件到目标虚拟主机RHEL8-2上。(5)查看RHEL8-1的虚拟机磁盘文件并拷贝到目标虚拟主机RHEL8-2,注意确保目标主机RHEL8-2文件夹存在。(6)查看目标主机RHEL8-2上的虚拟机rhel6-2磁盘文件与配置文件。由于拷贝的虚拟机rhel6-2配置文件定义了源机目录结构,因此要确保新机目录结构与源机一致。(7)定义注册虚拟机rhel6-2。(8)启动虚拟机rhel6-2。出现如图3-2所示的登录成功界面,至此虚拟机静态迁移完成。[root@RHEL8-1~]#virshlist--all[root@RHEL8-2~]#virshlist--all[root@RHEL8-2~]#cd/etc/libvirt/qemu/[root@RHEL8-2qemu]#ll[root@RHEL8-2qemu]#cd/opt/image[root@RHEL8-2images]#ll[root@RHEL8-1images]#virshdomblklistrhel6-2[root@RHEL8-1~]#virshdumpxmlrhel6-2>/root/rhel6-2.xml[root@RHEL8-1~]#scprhel6-2.xml0:/etc/libvirt/qemu[root@RHEL8-2~]#mkdir-p/opt/image/[root@RHEL8-1~]#cd/opt/image/[root@RHEL8-1image]#scprhel6-2.qcow20:/opt/image[root@RHEL8-2~]#cd/opt/image/[root@RHEL8-2image]#ll[root@RHEL8-2qemu]#virshlist--all[root@RHEL8-2qemu]#virshdefinerhel6-2.xml[root@RHEL8-2qemu]#virshstartrhel6-2项目实施任务3-5使用virsh命令管理网络 任务3-6使用virsh命令管理存储池 任务3-7使用virsh命令静态迁移虚拟机 任务3-8使用virsh命令动态迁移虚拟机

需要完成的任务:项目实施包括8个具体任务。本项目包括安装软件包、使用virt-install创建虚拟机、查看虚拟机xml配置文件、使用virsh命令创建管理虚拟机、管理网络、存储池。以及使用virsh命令迁移虚拟机。

Project任务实施8使用virsh命令动态迁移虚拟机1.

基于共享存储的动态迁移kv

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论