临沂定制网站建设公司,网络品牌维护,图书馆 网站开发 总结,wordpress去除相册样式kvm虚拟化平台部署 kvm概念简介 kvm自linux2.6版本以后就整合到内核中#xff0c;因此可以看做是一个原生架构. kvm虚拟化架构 硬件底层提供物理层面的硬件支持 linux#xff08;host#xff09;#xff0c;就相当于这个架构中的宿主机#xff0c;上面运行了多个虚拟机。… kvm虚拟化平台部署 kvm概念简介 kvm自linux2.6版本以后就整合到内核中因此可以看做是一个原生架构. kvm虚拟化架构 硬件底层提供物理层面的硬件支持 linuxhost就相当于这个架构中的宿主机上面运行了多个虚拟机。 kvm组成部分 基于内核支持的kvm模块 根据qemu模拟出的硬件设备模拟出虚拟化环境 qemu快速仿真器 模拟出硬件设备 kvm运行时额三种模式 客户模式 这是操作系统内核运行的地方拥有最高级别的权限可以直接访问硬件资源。 在KVM中内核模式下的KVM模块负责处理虚拟化相关的任务如创建虚拟机、分配虚拟硬件资源等。 内核模式是操作系统内核运行的地方拥有最高的权限等级可以直接访问底层硬件资源。 KVM作为一个Linux内核模块运行在内核模式下负责虚拟机的创建、管理和调度。 KVM模块还负责捕获和处理客户模式中的CPU异常和特殊指令例如特权指令。 执行非io的客户代码虚拟机运行在这个模式下 用户模式 用户模式程序运行在较低的权限级别下不能直接访问硬件。 KVM使用一个名为qemu-kvm的用户空间程序来管理虚拟机的配置并与内核模式交互以执行特定操作比如启动、停止虚拟机或设置虚拟硬件属性。 用户模式程序运行在较低的权限级别不能直接访问硬件资源。 KVM使用一个名为qemu-kvm的用户空间程序它负责配置虚拟机的硬件环境如网络接口、磁盘设备等并与内核模式进行交互。 用户模式程序还可以控制虚拟机的生命周期包括启动、暂停、恢复和关闭等操作。 用户执行io代码qemu运行在这个模式下 内核模式 客户模式指的是运行在虚拟机内的操作系统或应用程序。 在这个模式下客户操作系统认为自己是直接运行在物理硬件上但实际上是由KVM模拟出的虚拟硬件环境。 客户模式指的是运行在虚拟机内部的操作系统和应用程序。 当虚拟机运行时其操作系统认为自己是在物理硬件上直接运行但实际上所有的硬件资源都是由KVM模拟提供的。 客户模式的进程运行在虚拟化的环境中可以访问虚拟化的CPU、内存和其他硬件资源。 cpu调度与内存管理 kvm工作原理 用户模式的qemu利用ioctl系统调用进入内核模式。kvmdriver为虚拟机创建虚拟cpu和虚拟内存然后执行vmlaunch指令进入客户模式装载GuestOS并允许guest运行过程中如果发生终端或者影子缺页等异常将暂停GuestOS的运行并保存上下文退出到内核模式来处理这些异常内核模式处理这些一场如果不需要io则处理完成后重新进入客户模式如果需要io则进入用户模式由qemu来处理io完成后进入内核模式在进入客户模式 流程示意图 kvm部署需要桌面版的linux 依赖软件包 qemu-kvm kvm模块一般已经自带核心包 qemu-kvm-tools kvm调试工具 qemu-img qemu组件创建磁盘启动虚拟机磁盘管理工具 virt-install 构建虚拟机的命令工具 virt-manager 图形化界面的虚拟机管理工具 bridge-utils 网络支持工具虚拟机与外界通信的命令管理工具 libvirt 虚拟机管理工具 核心工具 libguestfs-tools 当虚拟机的磁盘格式为qcow2时可利用该工具对磁盘文件进行操作。 安装完毕后关闭虚拟机设置cpu支持虚拟化 因为是利用虚拟机嵌套所以内核与内存可以给的大一点。 开机后进行验证 查看cpu信息看是否支持 cat /proc/cpuinfo | grep vmx 出现vmx字样表示支持英特尔是该标识amd则是vm 查看系统模块 lsmod | grep kvm 出现kvm表示有虚拟化模块 kvm网络相关设置 类似于VMware虚拟机实现与外界通信时需要vmnet8直连物理网络需要vmnet0一样 kvm虚拟机也需要一个网卡来实现这个功能。 拷贝出桥接模式的网卡 cp ifcfg-ens33 ifcfg-br0 bridge桥接 因为真实承载数据帧的网卡还是物理网卡因此还需要真实网卡支持变更为桥接模式 vim ifcfg-ens33 添加一行将其改为桥接模式的网卡 BRIDGEbr0 修改桥接模式的网卡配置文件br0 vim ifc-br0 TYPEBridge 至关重要的类型修改桥接模式 NAMEbr0 名称与设备相匹配 DEVICEbr0 名称与设备相匹配 最后重启网络 systemctl restart network kvm管理 图形化管理工具 virt-manager 图形化工具的初始化界面 标识1创建存储池存储池用于存放虚拟机磁盘数据。 标识2创建卷为虚拟机分配磁盘空间。 标识1名称随意其他保持默认 选择存放空间可以自己指定。 确定完后点完成 最后就成功创建了一个存储池 标识2格式有个raw格式效率高但无法通过libguestfs-tools提供的工具进行关机修改磁盘文件。最大空间不能超过可用空间。 名称尽量简单有代表性可以使用创建的虚拟机的名字。 填写完毕后就创建了一个虚拟磁盘 选中qemu/kvm右键新建就能创建出虚拟机 根据环境选择合适的安装介质本案例以本地安装介质为例 需要提前拷贝好系统的iso镜像文件到程序有权访问的位置 通过浏览找到镜像文件 本地浏览找到位置 双击或打开之后点击前进 根据需要设置合理的内存在嵌套的情况下不能超过上一级虚拟机的最大内存。 在这里建议使用自己规定的虚拟机存储位置。 在这里我选择了创建出来的aaa存储池存储池的路径可以自己指定。最后点击选择 该处的名字是在命令行使用命令需要敲的名字因此简单好记有代表性为主。 点击完成后出现该字样就到了正常装系统的流程根据需要部署即可。 kvm命令行管理 查看命令帮助 virsh -h 列出所有虚拟机并显示状态 virsh list --all 开启虚拟机 virsh start 虚拟机名称 通过配置文件启动 virsh create /etc/libvirt/qemu/test01.xml 在该目录下会生成虚拟机对应的配置参数的.xml文件 关闭虚拟机 virsh shutdown 虚拟机名称 强制关闭 virsh destory 虚拟机名称 挂起虚拟机 virsh suspend 虚拟机名称 恢复虚拟机 virsh resume 挂起虚拟机的名称 跟随虚拟机开机自启 virsh autostart 虚拟机名称 导出虚拟机配置 virsh dumpxml test01 /etc/libvirt/qemu/test02.xml 要导出的虚拟机以及导出后的位置与名称 删除虚拟机 virsh undefine 虚拟机名称 这种取消定义的方法进删除配置文件并不会删除磁盘文件。 添加被取消定义的虚拟机 需要准备好配置文件 virsh define 指定配置文件 通过管理工具修改磁盘信息 virsh edit 虚拟机名称 edit 编辑 kvm文件管理 查看当前磁盘格式 qemu-img info /data_kvm/store/test01.qcow2 .qcow2的优势就是可以关机修改配置信息 如果不是qcow2需要修改回来的操作 先关闭对应的虚拟机 virsh shutdown test01 qemu-img convert -f raw -O qcow2 /data_kvm/store/test01.img /data_kvm/store/test01.qcow2 最后修改.xml文件中的磁盘类型与磁盘文件名 virsh edit test01 driver nameqemu typeqcow2 cachenone/ source file/data_KVM/store/test01.qcow2/ 查看虚拟机文件 virt-cat 类似于cat命令 编辑虚拟机文件 virt-edit 类似于vim命令 查看磁盘信息 virt-df kvm虚拟机克隆 需要关机才能做克隆 virt-clone -o test01 -n test02 -f /data_kvm/store/test02.qcow2 -o 源虚拟机 origin 起源 -n 克隆出的虚拟机的名称 -f 配置文件的位置与名称 虚拟机快照 virsh snapshot-create 虚拟机名称 已生成域快照 1503494464 创建成功后会生成一个快照序列号标识号 virsh snapshot-current 快照序列号 查看快照当前的虚拟机状态 virsh snapshot-list 虚拟机名称 列出该虚拟机所有的快照 virsh snapshot-revert 虚拟机名称 快照序列号 为该虚拟机恢复到该快照的状态 virsh snapshot-delete 快照序列号 删除该快照
复制到xmind即可形成条理性笔记。