raw格式是原始镜像,直接将数据写入磁盘,没有额外的元数据或压缩,由于没有复杂的元数据处理,raw 格式通常比较快,适用于一些对性能要求较高的场景。相对于 qcow2,raw 格式通常不支持虚拟机的快照功能。每个虚拟机实例都需要完整的磁盘空间,不同虚拟机之间不能共享相同的基础数据。
ceph简介 Ceph是一个PB级别的分布式软件定义存储系统,为用户提供了块存储、对象存储以及符合POSIX标准的文件系统接口。目前,Ceph已经成为Openstack最受欢迎的后端存储系统。下图为c
qemu-img镜像格式转换工具支持vhd、vmdk、qcow2、raw、vhdx、qcow、vdi或qed社区格式的镜像的相互转换。
一台虚拟机的核心就是一个磁盘镜像,这个镜像可以理解成虚拟机的磁盘,里面有虚拟机的操作系统和驱动等重要文件,qemu-img就是quemu创建管理磁盘镜像的工具。
kvm虚拟机通过使用`attach-disk`命令在线新增虚拟磁盘,使用`blockresize`命令在线调整现有虚拟磁盘大小,增加存储空间并提升性能。虚拟机内部系统采用lvm逻辑卷管理技术,创建和管理逻辑卷,实现磁盘存储空间的动态管理。
1、列出当前正在运行的虚拟机 [root@room9pc01 ~]# virsh list
KVM虚拟机的快照:通过在虚拟机磁盘镜像内保存不同时间点的状态数据实现备份,在必要时可将虚拟机恢复到指定的快照状态。
前言: 虚拟化场景下,测试的时候,经常为了省事,经常想跳过安装操作系统。因为作者使用的是iscsi的分布式存储方案,所以可以用iscsiadm把iscsi挂载到host上,虚拟化出来/dev/sdx设备。 qemu-img convert -f qcow2 -O raw CentOS-7-x86_64-GenericCloud.qcow2 /dev/sdx 实际效果还不错,省去了安装操作系统的复杂过程。转换完成后,从/dev/sdx直接启动,guest os就带着操作系统了。 但是,还会看到转化速度比较慢
KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hypervisor,KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。但是,KVM 本身不执行任何硬件模拟,需要客户空间程序通过 /dev/kvm 接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视频显示映射回宿主的显示屏。
Disk:物理硬盘存储 Iscsi:iSCSITarget后端存储 logical:逻辑卷的存储
注意:qcow2磁盘格式必须采用此方式进行扩展,不要采用dd方式,dd方式适用于raw格式。
Linux下的man命令十分实用,可以查看Linux命令的手册。但这些手册只适用于忘记命令的选项时查询之用,如果用来学习Linux下类似于Git, RPM这样庞大的工具就有点吃力了,可谓事倍功半。我在学习Git的时候读过一篇文档——gittutorial,使用: $man gittutorial 命令可以调出该文档。这篇文档并不涵盖git的方方面面,只是介绍了Git管理项目的常规用法,非常适合初学者快速入门。所以本文试图仿照该文档的写法,并不会详细地介绍RPM包的方方面面,而是介绍RPM包最常用的一
KVM虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,缺点是不支持一些新的功能,如支持快照,zlib磁盘压缩,AES加密等。KVM虚拟机使用快照功能,磁盘格式必须为qcow2。
通过文件管理可以直接查看、修改、复制虚拟机的内部文件。例如,当系统因为配置文件无法启动时,可以直接修改虚拟机的文件。虚拟机磁盘文件主要有raw和qcow2格式。raw格式性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等。要使用镜像功能,磁盘格式必须为qcow2。 raw格式的话,速度稍微快点,在高版本的qemu-kvm中,几乎不比qcow2的格式快,而qcow2格式节省空间,可动态增长,在公有云中广泛使用,建议使用qcow2。所有
想要在Ubuntu或者其他linux系统上面搭建虚拟机吗,那就看看吧,最近一段时间闲着没事干,在服务器上面挂qemu虚拟机启动Windows,只是单纯的觉得很好玩(.....)
新建KVM虚拟机时,可以指定另一磁盘文件作为BackingFile。BackingFile是一个只读的虚拟磁盘基础映像,可以在多个虚拟机间进行共享。基于BackingFile创建和运行虚拟机时,只会在自己的磁盘文件中增量地写入文件,从而提高效率、节省磁盘和维护成本。
Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。
在服务器上,经常需要启动数十个或者几十个虚拟机,按照我们现有的方式是安装一个虚拟机,然后复制相应的份数。例如,一个虚机的镜像大小是4G,十个虚机的大小就需要占用40G空间。 事实上在目前为止里面还没有执行任何程序,这些空间都是分配,实际并不一定都要使用。那么是否能够实现用多少分配多少呢?分析下可以发现,每个虚拟机里面的内核都是一样的,大部分时候我们都不需要去修改里面的内核,是否能够共用内核? Copy-On-Write模式为我们提供了很好的解决方式,通过创建一个基础镜像(base image),里面把各个虚拟机都需要的环境都搭建好,然后基于这个镜像建立起一个个“增量镜像”(增量镜像的初始大小低于1M),每个“增量镜像”对应一个虚拟机,虚拟机对镜像中所有的改变都记录在“增量镜像”里面,基础镜像始终保持不变。这样我们建立十个虚拟机,需要的空间为:4G+10*1M=4G,一下节省了近36G的空间。
后备镜像差量生成虚拟机的方式可以快速的产生大量的虚拟机,节省磁盘空间,在生产环境中有非常重要的意义。经过测试,对后备镜像的读压力非常小,系统压力主要在差量镜像的写压力,使用的时候,为了取得良好效果,应将后备镜像和差量镜像分散到不同的物理硬盘上,并保证镜像的安全性。
前面学习了kvm虚拟化的一些基础操作,本节整理一下kvm快照、扩容等等相关的内容。
官方参考文档:https://www.qemu.org/docs/master/system/introduction.html kvm,轻量级虚拟机,可以加速qemu的执行
raw格式是原始镜像,会直接当作一个块设备给虚拟机来使用,至于文件里面的空洞,则是由宿主机的文件系统来管理的,linux下的文件系统可以很好的支持空洞的特性,
[root@KVM ~]# yum install qemu-img qemu-kvm qemu-kvm-tools virt-manager virt-viewer virt-v2v virt-top libvirt libvirt-Python libvirt-client python-virtinst bridge-utils tunctl
Qemu 架构 Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。 正因为 Qemu 是纯软件实现的,所有的指令都要经 Qemu 过一手,性能非常低,所以,在生产环境中,大多数的做法都是配合 KVM 来完成虚拟化工作,因为 KVM 是硬件辅助的虚拟化技术,主要负责 比较繁琐的 CPU 和内存虚拟化,而 Qemu 则负责 I/O
1.virsh查看/管理虚拟机 问题 本案例要求熟悉KVM虚拟化的virsh管理工具的的基本使用,从命令行来操作虚拟机,完成以下基本任务: 1)查看KVM服务器信息 2)列出有哪些虚拟机、指定虚拟机的状态 3)基本的开关机操作 4)将虚拟机设置为自动运行 方案 virsh命令行管理的常见用法: 1)virsh:直接进交互模式 2)virsh nodeinfo:查看KVM节点(服务器)信息 3)virsh list:列出正在运行的虚拟机 4)virsh list –all:列出所有虚拟机(包括未启动的) 5)virsh dominfo 虚拟机名称:查看指定虚拟机的信息 6)virsh start 虚拟机名称:将指定的虚拟机开机 7)virsh reboot 虚拟机名称:将指定的虚拟机重启 8)virsh shutdown 虚拟机名称:将指定的虚拟机正常关机 9)virsh destroy 虚拟机名称:将指定的虚拟机强制关机(相当于拔电源) 10)virsh autostart 虚拟机名称:将指定的虚拟机设置随KVM自动开机 11)virsh autostart –disable 虚拟机名称:禁止自动开机 步骤 实现此案例需要按照如下步骤进行。 步骤一:直接使用virsh交互模式 执行不带任何参数的virsh命令,即可进入交互模式。在virsh交互模式下,可以快速、连续地执行多条虚拟机管理指令,不用每次都指定virsh,最后再exit退出;这种方式与在Shell命令行执行virsh时后面跟上虚拟机管理指令的作用是等效的。 [root@kvmsvr ~]# virsh //进入virsh交互模式 欢迎使用 virsh,虚拟化的交互式终端。
使用libguestfs Linux工具可以在虚拟机无法启动的情况下对虚拟机内部进行检查。
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
1.虚拟机支持快照 (1)已创建快照虚拟机不允许导出、克隆、迁移操作 (2)磁盘快照使用外部快照,创建快照需要暂停虚拟机(是否需要手动暂停)或关闭虚拟机,支持raw和qcow2格式 (3)只有虚拟机运行的时候,才允许创建内存快照
此时是应为挂载信息不对应,导致启动失败,输入root密码后,把 /etc/fstab 配置修改即可或者挂载相同逻辑卷。
在上一篇中,我们介绍了如何在 CentOS7上安装并配置KVM,以及通过KVM安装CentOS系统。本篇则是介绍在KVM里安装完虚拟机后,如何使用KVM来管理虚拟机。
由于目前市面上很多模拟器诸如夜神,网易MUMU,基本上使用的是x86的架构,虽然运行ARM程序没有问题,但是如果想使用gdb对ARM程序进行调试的话,就显得力不从心了,各种问题层出不穷,
qcow2-dump is a useful tool for checking and repairing damaged qcow2 image, it has some improvements compare with qemu-img check command (qcow2-dump has all functions which qemu-img check command has).
1.快照实际上做的是虚拟机的XML配置文件,默认快照XML文件在/var/lib/libvirt/qemu/snapshot/虚拟机名/下
qemu-img创建磁盘文件 通过文件管理可以直接查看、修改、复制虚拟机的内部文件。例如,当系统因为配置文件无法启动 时,可以直接修改虚拟机的文件。虚拟机磁盘文件主要有raw和qcow2格式。raw格式性能最好,速度最 快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等。要使用镜像功能,磁 盘格式必须为qcow2。 raw格式的话,速度稍微快点,在高版本的qemu-kvm中,几乎不比qcow2的格式快,而qcow2格式节 省空间,可动态增长,在
磁盘格式 虚拟磁盘常用格式 raw、qcow2 //创建一个2G的 raw格式 磁盘 [[email protected] ~]# qemu-img create -f raw /kvm_data/zhdya01_2.img 2G Formatting '/kvm_data/zhdya01_2.img', fmt=raw size=2147483648 //把raw格式的磁盘转换为qcow2格式 [[email protected] ~]# qemu-img convert -O qcow2 /k
1、kvm需要cpu支持虚拟化并装相关软件包。 Yum -y install qemu-kvm.x86_64 qemu-kvm-tools.x86_64 python-virtinst.noarch qemu-img.x86_64 bridge-utils.x86_64 libvirt virt-manager 查看cpu是否支持虚拟化。 cat /proc/cpuinfo | grep vmx AMD服务器: cat /proc/cpuinfo | grep smv 2、kvm网络
KVM(Kernel-based Virtual Machine)是一个基于Linux内核的开源虚拟化解决方案,它允许在单个物理服务器上运行多个虚拟机。每个虚拟机都可以运行自己的操作系统和应用程序。KVM利用了Linux内核的虚拟化功能,通过将物理主机的资源(如CPU、内存和网络接口)动态分配给虚拟机,实现了对虚拟机的隔离和资源管理。
从ftp,http,nfs启动,如ftp://192.168.10.7/dvd;nfs:192.168.10.7:/dvd
如 centos6.7 这样的老系统,是使用 service 管理服务的。而较新版本的系统,很多采用 systemctl 管理服务。
1.离线迁移需要借助对象存储(COS)的支持,请先确保您所在地域在 COS 支持范围内,详见如下文档:
fedora 18发布了,虚拟化方面最激动人心的一个功能就是在线快照。以前KVM要做快照,虚拟机会自动暂停,现在终于克服这个问题了。
Sheepdog是为kvm虚拟化量身定做的分布式文件系统,针对kvm系统做了深入的优化,是kvm虚拟化分布式文件系统的终极解决方案,目前版本0.4,如果要在生产环境中使用,还有很多工作要做,需要等待更成熟的版本发布。
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
p2v,就是physical machine to virtual machine,物理机转换成虚拟机,物理机有硬件和
qemu-img convert -f raw -O qcow2 /dev/nvme1n1 /mnt/data-10G.qcow2
KVM虚拟机的快照用来保存虚拟机在某个时间点的内存、磁盘或者设备状态,如果将来有需要可以把虚拟机的状态回滚到这个时间点。
至此,命令行创建虚拟机就完成了,接下来使用手动更改配置文件的方式,克隆test1,生成新的虚拟机test2(在我博文前面的那个博文链接中有专用于克隆的命令工具的使用方法,这里只是为了来了解虚拟机的配置文件) 二、手动更改配置文件的方式,克隆web01,生成新的虚拟机web02
qemu-kvm 该软件包主要包含KVM内核模块和基于KVM重构后的QEMU模拟器。KVM模块作为整个虚拟化环境的核心工作在系统空间,负责CPU和内存的调度。QEMU作为模拟器工作在用户空间,负责虚拟机I/O模拟。 依赖包qemu-img 主要用来QEMU磁盘镜像的管理,如新建一块磁盘镜像给虚拟机。
如果flags: 里有 vmx 或者 svm 就说明支持 VT;如果没有任何的输出,说明你的 cpu 不支持,将无法成功安装 KVM 虚拟机。2. 确保BIOS里开启VT:
领取专属 10元无门槛券
手把手带您无忧上云