扇区对齐如何优化虚拟机重复数据删除存储与灾备
确保存储卷的扇区对齐一直是服务器性能优化的重要部分。近些年,由于服务器虚拟化和重复数据删除技术的广泛应用,扇区对齐变得更为重要。本文讲述在虚拟数据中心应用扇区对齐的必要性。
扇区对齐与重复数据删除
在讨论虚拟化技术之前,我先谈一下在物理数据中心,扇区对齐对重复数据删除过程的影响。
扇区对齐是基于存储逻辑块与物理磁盘扇区匹配的思想。大多数较新的物理硬盘都使用4KB大小的扇区,同样地,像NTFS这样的文件系统使用的存储块大小也为4KB。而问题是,并不是所有的操作系统都能将存储块对齐到下层的扇区。除非存储块恰好对齐到一个扇区,否则会跨两个扇区。这就给重复数据删除过程带来了问题。
市场上重复数据删除产品着实不少,它们采用各种技术以实现存储的重复数据删除。一个最通用的重复数据删除方法就是删除冗余的存储块。
有一点需要注意到的是,扇区不对齐并不影响单个存储块的内容。也就是说,无论文件系统是否对齐到物理存储,存储块仍包含相同的数据。同样地,无论一个卷的扇区是否对齐,块级重复数据删除均以相同的方式运行,至少从删除冗余存储块的角度看是这样。
重删一个扇区不对齐的卷,最主要的问题在于重复数据删除过程可能会带来更为密集的I/O。一个卷如果扇区不对齐,那每一个存储块会跨越两个物理扇区,那么每次读取(或写)一个块时,底层硬件就会读两个扇区,而扇区对齐时则不会。这在很大程度上关乎性能,但如果磁盘中有很多碎片或存储块跨越的两个扇区不相邻就难说了。重复数据删除原本就是一个I/O密集型的处理,但扇区不对齐会使I/O负担更重。
虚拟化和重复数据删除
以上讨论的理论也适用于虚拟数据中心,但由于虚拟硬盘的使用,需要考虑一个额外的抽象层。如果没能正确规划,使用虚拟硬盘的方式可能会严重影响重复数据删除效果。
集群共享卷
不再有硬性需求,Hyper-V和VMware集群可以像以前那样,部署在共享存储上。这也就意味着可以把虚拟机构件(包括虚拟硬盘)部署到存储区域网(SAN)中,这样它们就可以被虚拟集群中的所有结点访问。
如果采用基于SAN的共享存储,那就要确保共享卷对齐到底层的存储硬件上。还要确保所使用的重复数据删除方法能与共享存储兼容。
举个具体的例子来证明兼容的重要性,考虑在Hyper-V集群中共享存储的工作方式。集群节点通过逻辑映射(C:\clusterstorage\volume)来访问共享存储。但问题是一些重删软件不会对服务器的系统卷进行重复数据删除。即便Hyper-V共享存储的确不在系统卷上,逻辑映射却使之在系统卷上。结果就会有有一些重复数据删除软件(包括微软自家的本地文件系统重删工具)并不能与共享存储兼容。
如果共享存储的重复数据删除过程在你的应用环境中存在问题,你可以通过使用硬件重删(假设你的SAN支持该特性)来解决这个问题,这样就可以规避掉操作系统的限制。
虚拟硬盘架构
另一个影响重复数据删除过程的因素是,虚拟硬盘拥有类似于物理硬盘的结构。换句话说就是,虚拟硬盘也划分成扇区和磁道,而虚拟机文件系统是基于这种划分来使用存储块的。
虚拟硬盘实际上是物理服务器中真实存在的文件。基于这个前提,假设你有两个完全相同的虚拟硬盘,但一个是扇区对齐的,一个不是。扇区对齐与否的区别,导致这两个虚拟硬盘文件在结构上并不相同,即使二者有完全相同的数据。
如果你要进行主机层的重复数据删除,这种结构上的不同可能会导致被重删的数据减少。虚拟硬盘内扇区不对齐对于重删过程来说是否存在问题,取决于你的重删软件是否只进行主机层的存储块重删,还是能足够智能地深入到虚拟硬盘内部。
结论
要对虚拟化的主机进行重复数据删除,需要考虑很多问题。就实践上来讲,最好确保物理磁盘和虚拟磁盘是扇区对齐的。另外,尽量不要使用精简配置,因为它会影响性能,在某些情况下还会影响重复数据删除过程。