一.虚拟存储
所谓虚拟存储,就是把内存与外存有机的结合起来使用,从而得到一个容量很大的“内存”,这就称之为虚拟存储。 可以说,存储网络平台的综合性能的优劣,将直接影响到整个系统的正常运行。
从虚拟化存储的拓扑结构来讲主要有两种方式:即对称式与非对称式。对称式虚拟存储技术是指虚拟存储控制设备与存储软件系统、交换设备集成为一个整体,内嵌在网络数据传输路径中;非对称式虚拟存储技术是指虚拟存储控制设备独立于数据传输路径之外。从虚拟化存储的实现原理来讲也有两种方式;即数据块虚拟与虚拟文件系统。
- (1)对称虚拟存储
①采用大容量高速缓存,显著提高数据传输速度。
②多端口并行技术,消除了I/O瓶颈。
③逻辑存储单元提供了高速的磁盘访问速度。
④成对的HSTD系统的容错性能。
⑤在SAN Appliance之上可方便的连接交换设备,实现超大规模Fabric结构的SAN。

- (2)非对称式虚拟存储系统
①将不同物理硬盘阵列中的容量进行逻辑组合,实现虚拟的带区集,将多个阵列控制器端口绑定,在一定程度上提高了系统的可用带宽。
②在交换机端口数量足够的情况下,可在一个网络内安装两台虚拟存储设备,实现Strip信息和访问权限的冗余。

- (3).数据块虚拟与虚拟文件系统
以上从拓扑结构角度分析了对称式与非对称式虚拟存储方案的异同,实际从虚拟化存储的实现原理来讲也有两种方式;即数据块虚拟与虚拟文件系统。
- (3).数据块虚拟与虚拟文件系统
数据块虚拟存储方案着重解决数据传输过程中的冲突和延时问题。在多交换机组成的大型Fabric结构的SAN中,由于多台主机通过多个交换机端口访问存储设备,延时和数据块冲突问题非常严重。数据块虚拟存储方案利用虚拟的多端口并行技术,为多台客户机提供了极高的带宽,最大限度上减少了延时与冲突的发生,在实际应用中,数据块虚拟存储方案以对称式拓扑结构为表现形式。
虚拟文件系统存储方案着重解决大规模网络中文件共享的安全机制问题。通过对不同的站点指定不同的访问权限,保证网络文件的安全。在实际应用中,虚拟文件系统存储方案以非对称式拓扑结构为表现形式。
二.KVM存储模式
1.基于文件系统的存储
- (1)dir: filesystem directory 虚拟文件系统目录
- (2)fs: pre-formatted block device
- (3)logical: network exported directory
2.基于设备的存储
- (1)disk: physical disk device
- (2)lscsi: iscsi target
- (3)logical: lvm volume group
三.虚拟磁盘类型
1.固定fixed
在配置时,指定磁盘大小,不管在虚拟磁盘上实际存储多少数据,都将占用相同大小主机磁盘空间。
2.动态dynamic
增长到最大容量,但是只是根据需求使用更多的空间。
3.差异differencing
因为创建时是差异磁盘,所以只保存变更的数据
四.kvm支持的虚拟磁盘类型
(1)raw
这并非是一种真正的磁盘格式,而是代表虚拟机所使用的原始镜像,它并不存储元数据,因此可以作为保证虚拟机兼容性的候选方案,然而,也正是因为它不存储元数据,因此不能自持某些高性能,比如快照和压缩等。格式简单,容易转换为其他格式。
(2)cow
copy-on-write格式,来的快去得也快,使用很少。
(3)qcow
QEMU早期的copy-on-write格式,过渡性方案。
(4)qcow2
按需分配,按照需求分配磁盘空间,不管文件系统是否支持,支持快照、支持zlib的磁盘压缩、支持AES加密。
(5)vmdk(virtual machine disk)
VMware环境中默认使用的磁盘格式。
(6)vhd vhdx(virtual hard disk)
微软默认使用的文件格式。
目前kvm支持的虚拟磁盘的格式有:
[root@kvm01 ~]# 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
五.使用qemu-img管理虚拟磁盘
- 1、qemu-img概述
qemu-img 是一个功能强制磁盘镜像管理工具qemu-img --help 包括以下功能check 检查完整性
create 创建镜像
commit 提交更改
compare 比较
convert 转换
info 获得信息
map 映射
snapshot 快照管理
rebase 在已有的镜像的基础上创建新的镜像
resize 调整大小
amend 修订镜像格式选项
- 2、创建虚拟磁盘
创建磁盘的命令格式:
[root@kvm01 ~]# 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
实例
(1)创建一个虚拟磁盘
[root@kvm01 ~]# qemu-img create t1.img 1g
Formatting 't1.img', fmt=raw size=1073741824
注释:创建时不指定格式,默认为raw格式
(2)查看虚拟磁盘的信息
[root@kvm01 ~]# qemu-img info t1.img
image: t1.img #文件名称
file format: raw #文件格式
virtual size: 1.0G (1073741824 bytes) #虚拟磁盘大小
disk size: 0 #磁盘空间尺寸是0字节
(3)检测check磁盘
[root@kvm01 ~]# qemu-img check t1.img
qemu-img: This image format does not support checks
#raw格式不支持检测
(4)转换格式convert
-p : 显示镜像的转换进度
-f : 指定被转换的镜像是什么格式
-O: 指定转换后的镜像格式
[root@kvm01 ~]# qemu-img convert -p -f raw -O qcow2 t1.img t1.qcow2
(100.00/100%)
[root@kvm01 ~]# qemu-img info t1.img
image: t1.img
file format: raw
virtual size: 1.0G (1073741824 bytes)
disk size: 0
[root@kvm01 ~]# qemu-img info t1.qcow2
image: t1.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
[root@kvm01 ~]# qemu-img check t1.qcow2
No errors were found on the image.
Image end offset: 26214
3.预分配磁盘策略(qcow2)
①off
缺省策略,即不使用预分配策略
②metadata
分配元数据(metadata),预分配后的虚拟磁盘仍然属于稀疏映像类型(空洞文件类型)。
③full
分配所用的磁盘空间并置零,预分配后的虚拟磁盘属于非稀疏映像类型。
④falloc
分配文件的块并标示它们的状态为未初始化,相对于full模式来说,创建虚拟磁盘的速度要快很多。
preallocation=‘预分配策略’ – 创建时指定参数
预分配策略里,off和metadata预分配策略都属于空洞文件,而falloc和full属于非空洞文件。
案例:不同格式虚拟机的迁移
1、VMware Workstation虚拟机中找一个关闭状态的虚拟机进行导出


2.将.vmdk虚拟磁盘文件拷入到KVM虚拟机中(安装过lrzsz所以直接拖拽)
[root@kvm01 ~]# ll -h cent*.vmdk
-rw-r--r-- 1 root root 699M 4月 11 19:34 centOS7-disk1.vmdk
3.磁盘的格式转换
[root@kvm01 ~]# qemu-img convert -O qcow2 centOS7-disk1.vmdk centOS7-disk1.img
[root@kvm01 ~]# qemu-img info centOS7-disk1.img
image: centOS7-disk1.img
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 2.0G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
4.根据虚拟磁盘迁移前的VMware配置,导入到新的KVM虚拟机
[root@kvm01 ~]# virt-install --import --name=centOS7 --vcpus=1 --ram=1024 --disk bus=scsi,path=/var/lib/libvirt/images/./centOS7-disk1.img --network type=bridge,source=virbr0 --network network=default --graphics vnc,listen=0.0.0.0 --os-type=linux --os-variant=rhel7 --noautoconsole
开始安装......
域创建完成。

或使用virt-manager查看: