Linux实战教学笔记54:开源虚拟化KVM(二)管理虚拟存储

五,管理虚拟存储 5.1 虚拟磁盘概述 5.1.1 虚拟化项目中存储的注意事项

[x] 存储的性能几乎总是虚拟化的瓶颈

[x] 通过多个硬盘驱动以分布磁盘I/O来实现存储解决方案

[x] 考虑部署集中化的SAN/NFS来实现高可用性和实时迁移

QQ截图20180502092851.png-148kB

5.1.2 KVM存储模式

[x] 基于文件系统的存储

dir:Filesystem Directory 虚拟文件系统目录

fs:Pre-Formatted Block Device

netfs:Network Exported Directory

[x] 基于设备的存储

Disk:Physical Disk Device

Iscsi:iSCSI Target

logical:LVM Volume Group

QQ截图20180502093655.png-20.7kB

5.1.3 虚拟磁盘类型

[x] 固定 Fixed

在配置时,指定磁盘大小

不管在虚拟磁盘上实际存储多少数据,都将占用相同大小主机磁盘空间

[x] 动态 Dynamic

增长到最大容量,但是只根据需求使用更多的空间

[x] 差异 Differencing

因为创建是差异磁盘,所以只保存变更的数据

例如,将操作系统安装在父盘,然后创建差异化磁盘来执行进一步配置

5.1.4 KVM支持的虚拟磁盘类型

[x] raw

这并非是一种真正的磁盘格式,而是代表虚拟机所使用的原始镜像

它并不存储元数据,因此可以作为保证虚拟机兼容性的候选方案。然而,也正因为它不存储元数据,因此不能自持某些高级特性,比如快照和压缩等。

格式简单,容易转换为其他的格式。需要文件系统的支持才能支持sparse file

[x] cow:copy-on-write格式,昙花一现

[x] qcow:QEMU早期的copy-on-write格式,过渡性方案

[x] qcow2

按需进行分配磁盘空间,不管文件系统是否支持

支持快照

支持zlib的磁盘压缩

支持AES的加密

[x] vmdk(Virtual Machine Disk)

VMware环境当中默认使用的磁盘格式

[x] vhd \ vhdx(Virtual Hard Disk)

微软默认采用的文件格式

[x] vdi(VirtualBox)

[x] 可以通过qemu-img --help查看支持的格式

[root@localhost ~]# qemu-img --help | grep Supported Supported formats: vvfat vpc vmdk vhdx vdi ssh sheepdog rbd raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd iscsi gluster dmg tftp ftps ftp https http cloop bochs blkverify blkdebug 5.2 使用qemu-img管理虚拟磁盘 5.2.1 qemu-img概述

[x] qemu-img 是一个功能强制磁盘镜像管理工具

[x] qemu-img --help 包括以下功能

check 检查完整性

create 创建镜像

commit 提交更改

compare 比较

convert 转换

info 获得信息

map 映射

snapshot 快照管理

rebase 在已有的镜像的基础上创建新的镜像

resize 调整大小

amend 修订镜像格式选项

5.2.2 创建虚拟磁盘 [root@localhost ~]# qemu-img | grep create create [-q] [-f fmt] [-o options] filename [size] #创建磁盘的命令格式 contain only zeros for qemu-img to create a sparse image during \'-n\' skips the target volume creation (useful if the volume is created \'snapshot\' is the name of the snapshot to create, apply or delete \'-c\' creates a snapshot [root@localhost ~]# qemu-img create t1.img 1g #只输入磁盘名和大小创建 Formatting \'t1.img\', fmt=raw size=1073741824 #默认的磁盘格式fmt=raw [root@localhost ~]# qemu-img info t1.img #查看虚拟磁盘的信息 image: t1.img #文件名称 file format: raw #文件格式 virtual size: 1.0G (1073741824 bytes) #虚拟磁盘大小 disk size: 0 #磁盘空间尺寸是0???? [root@localhost ~]# ll -h t1.img -rw-r--r-- 1 root root 1.0G 5月 2 11:24 t1.img #ll查看磁盘是1G没错 [root@localhost ~]# du -sh t1.img #但我们用du查看一下,发现磁盘真实空间的占用还真是0 0 t1.img

根据以上测试,我们发现默认情况下qemu-img创建的磁盘文件的类型是动态的(Dynamic 空洞)会根据真实存放数据的大小进行动态扩容直到磁盘空间设定值的大小。

#假如我们想看一下各种磁盘格式所附带的-o option都有什么,我们可以这么做 [root@localhost ~]# qemu-img create -f raw -o ? #raw格式磁盘只有一个尺寸大小选项 Supported options: size Virtual disk size [root@localhost ~]# qemu-img create -f qcow2 -o? #qcow2则有很多选项 Supported options: size Virtual disk size compat Compatibility level (0.10 or 1.1) backing_file File name of a base image #用于指定后端镜像文件 backing_fmt Image format of the base image #设置后端镜像的镜像格式 encryption Encrypt the image #用于设置加密 cluster_size qcow2 cluster size #设置镜像中的簇大小,取值在512到2M之间,默认值64K preallocation Preallocation mode (allowed values: off, metadata, falloc, full) #设置镜像文件空间的预分配模式 lazy_refcounts Postpone refcount updates

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzjxzx.html