KVM学习(六)管理虚拟存储

Ⅰqemu-img

首先来看一下功能

在这里插入图片描述

check				检查虚拟磁盘完整性
create				创建一个磁盘镜像
commit				向后备磁盘提交当前的变化
compare				比较两个img占用disk
convert				转换
info				信息
map					映射
snapshot			快照管理
resize				调整大小
amend				修订镜像格式选项

首先创建一个镜像 1.img,指定1G

在这里插入图片描述

通过info查看信息发现disk size:0,说明实际这个镜像并没有占了1G
的大小

在这里插入图片描述

从/vm这里也可以看到好几个镜像才用了2.1G

在这里插入图片描述

这里就要学习稀疏文件的概念,和稀疏矩阵一样,如果文件里有很多0,为了节省
空间,可以不存储0。稀疏文件以元数据表示空数据块,只有非空的数据会按原样
写入磁盘。

通过du命令显示文件或目录占用磁盘的空间

在这里插入图片描述
通过刚才的create发现默认格式是raw,如果是创建raw格式,只能指定大小
但如果用qcow2,就有更多操作空间,-o可以选择
在这里插入图片描述
常用options

backing_file 		用于指定后端镜像
backing_fmt			后端镜像的格式
enryption			加密
cluster_size		镜像簇大小,默认64k
preallocation		预分配

这里用dd做一下实验

dd用于读取,转换,输出数据,这里拿来填充一个1G的文件
基本参数就是:
if=输入
of=输出
bs:设置输入/输出块的大小为bytes个字节
count:blocks	拷贝多少个块
seek:blocks	从输出文件开头跳过blocks个块后再开始复制

在这里插入图片描述

这里的/dev/zero是特殊的“零”设备,
可以无限的提供空字符(0x00,ASCII代码NULL)
常用来生成一个特定大小的文件。这时候再用info看一下,发现果然填满了1G

在这里插入图片描述

再弄一个flat2.img,不写内容,但是要占1G

在这里插入图片描述
在这里插入图片描述

通过对比,就理解了稀疏文件,再看一下复制稀疏文件
cp flat1.img copyflat1.img
cp flat2.img copyflat2.img

在这里插入图片描述

预分配策略

off						缺省策略,即不使用预分配策略
metadata				分配元数据,仍然是稀疏映像
full(厚置备置零)		分配所有空间并置零,预分配以后属于非稀疏
falloc(厚置备延迟置零)	分配空间但不进行初始化

创建一个预分配off(default)的镜像,可以看到disk size只有196k的元数据
在这里插入图片描述
换策略,metadata变成了328K
在这里插入图片描述
换成falloc
在这里插入图片描述
full
在这里插入图片描述

后备差异镜像

backing_file是设定好的一块基础镜像,以它为后备镜像的镜像只需要在自己身上记录改动,可以减少占用空间,但也增加了负荷。后备镜像可以是raw或qcow2,但新镜像只能是qcow2。

cp centos7.qcow2 base-centos7.qcow2	//cp一个当做后备镜像

在这里插入图片描述
新建两块,以base-centos7.qcow2为后备

qemu-img create -f qcow2 -o backing_file=base-centos7.qcow2 oa-disk0.qcow2
qemu-img create -f qcow2 -o backing_file=base-centos7.qcow2 erp-disk0.qcow2

在这里插入图片描述
这样的镜像显示后备镜像是哪块
在这里插入图片描述

安装oa和erp,使用已有镜像的方法

在这里插入图片描述

在这里插入图片描述

下面试试如果base改动会怎么样
先关了oa和erp
在这里插入图片描述
把base移到别的位置,oa就打不开了,
再移回来,又可以正常运行oa

convert转换

如果有这种应用场景,原先的实验场景运行再EXSi上,现在想把环境迁移到KVM下,这时候可以通过convert命令进行格式的转换。
先从vmware里导出这个虚拟机,一个OVF文件,两个VMDK文件。将两个vmdk格式的文件上传到KVM服务器里。
进行格式转换

qemu-img convert -O qcow2 传进来的文件.vmdk 起个名字.qcow2

注意-O是大写的O
根据OVF文件(XML)中的配置,再KVM创建新的虚拟机(vcpu,ram,网卡,硬盘等)
virt-install安装

resize虚拟磁盘大小

qemu-img resize centos7.qcow2 +2G

qcow2不支持缩小镜像的操作
其他格式再缩小镜像前,要确保文件系统里有空余空间,否则会丢失数据。
在这里插入图片描述
然后进入oa的bash
fdisk /dev/sda,创主分区,后面跟前面扩展硬盘容量一样了。

Ⅱ 快照

快照大概可以分这么几类

磁盘快照
对磁盘上的数据进行快照,用于虚拟机备份等场景
内存快照
对虚拟机的内存进行保存,像操作系统要中断时保存先现场,一般用于休眠恢复,迁移等
检查点快照
同时保存磁盘快照和内存快照,通过这个快照,可以将虚拟机恢复到某个时间点,可以保持数据的一致性。

磁盘快照分类

按快照信息保存分为:
内置快照:快照数据和base磁盘放在一个qcow2文件中
外置快照:快照数据单独的qcow2文件存放
按虚拟机状态可以分为:
关机态快照:数据可以保证一致性
运行态快照:数据无法保证一致性,类似与系统crash后的磁盘数据
按磁盘数量可以分为:
单盘:单盘快照不涉及原子性
多盘:涉及原子性。主要依赖qemu的transaction实现
		1、所有盘快照点相同
		2、要么所有盘快照成功,要么都快照失败。

语法
-a 应用一个快照
-c 创建一个快照
-d 删除一个快照
-l 列出所有快照

实验
启动起来centos7.0,拷贝一个文件,关机。
在这里插入图片描述
回到KVM1,创建一个快照,列出。
在这里插入图片描述打开centos7,再新增一个file2文件,假如有一个误操作删除了刚才复制的file1。在这里插入图片描述
关掉centos7,到KVM1

qemu-img snapshot -a snapshot1 centos7.qcow2

启动centos7,发现file1回来了,file2丢失了
在这里插入图片描述
这种情况该怎么处理才能保留file2?暂留

发布了7 篇原创文章 · 获赞 0 · 访问量 146

猜你喜欢

转载自blog.csdn.net/qq_40908430/article/details/104197374
今日推荐