CloudStack 是一个开源的具有高可用性及扩展性的云计算平台,支持管理大部分主流的虚拟机管理器,比如 KVM 和 XEN。在 CloudStack 中存在两种存储:主存储为虚拟机实例提供磁盘卷,二级存储提供虚拟机实例的模板,用于安装系统的镜像文件及虚拟机实例的磁盘快照。这两种存储都支持网络连接存储(NAS)。
图 0. CloudStack 架构
本文我们将以一台 Linux 主机为例,其上运行 KVM 作为计算节点。同时 SONAS 创建网络共享文件系统(NFS)来为此计算节点存储虚拟机系统的镜像模板以及批量虚拟机实例的虚拟磁盘,以此来实现提高存储效率和部署虚拟机实例效率。文中所涉及的虚拟机实例有 Red Hat Enterprise Linux 5.5 和 Windows Server 2008 R2 Standard 两种类型。
IBM GPFS 文件克隆功能介绍
GPFS(General Parallel File System ) ,即通用并行文件系统。它是一种高性能、磁盘共享的集群并行文件系统,其集群内所有节点可以并行访问整个文件系统。
文件克隆(File Clone)有点类似文件拷贝,不同的是文件克隆速度要远远快于文件拷贝,并且其存储空间的利用率更高。克隆文件本身类似于一个可写的文件快照,其只有发生变化的数据才会真正开始占用磁盘空间。因此我们可以通过克隆虚拟机的系统通用模板,配置克隆文件为虚拟机实例的虚拟磁盘,来用于提高虚拟机实例的存储效率。这样在云计算环境下,部署批量虚拟机时就可以节约巨量的存储空间。
查看 GPFS 文件系统上某个已有文件:
[root@99m4912.mgmt001st001 Linux]# ls -al Basic.img-rwx------ 1 root root 10737418240 Jul 28 03:53 Basic.img[root@99m4912.mgmt001st001 Linux]# du -lh Basic.img10G Basic.img
使用命令创建 Basic.img 的文件克隆:
[root@99m4912.mgmt001st001 Linux]# mkclone -s /ibm/frank/image/Linux/Basic.img \ -t /ibm/frank/image/Linux/BasicClone1EFSSG1046I The clone file has been successfully created.EFSSG1000I The command completed successfully.
现在来查看其克隆文件的大小:
[root@99m4912.mgmt001st001 Linux]# ls -al Basic*-rwx------ 1 root root 10737418240 Jul 28 04:05 BasicClone1-rwx------ 2 root root 10737418240 Jul 28 03:53 Basic.img[root@99m4912.mgmt001st001 Linux]# du -sh Basic*0 BasicClone110G Basic.img
我们注意到,对一个 10G 的文件创建文件克隆后,其初始占用空间为零。
接下来,我们会使用基于 GPFS 的 SONAS 存储系统为计算节点 KVM 平台提供存储空间,同时使用 SONAS 文件克隆的特性来快速拷贝虚拟机实例的磁盘镜像文件。