【ZStack】13.存储模型——主存储和备份存储

ZStack通过逻辑功能,将存储系统抽象成主存储和备份存储。一个主存储是一个存放VM磁盘的存储池;一个备份存储是这么一个存储,用户存储镜像模板、备份的磁盘、快照。主存储和备份存储可以是物理分离的存储系统,也可以是同一个存储系统同时扮演两种角色。存储厂商可以轻松地,通过实现相应的存储插件,在ZStack中加入他们的产品。

概述

云中的存储系统可以以它们的逻辑功能被分为两类。一类作为存储池工作,存储VM的磁盘,并可以被运行中的VM访问;这类存储可以是基于文件系统的,磁盘被作为文件存储;或者基于块存储,磁盘则变成了块设备。在ZStack的术语表中,这类存储被称为主存储,要么可以是网络共享的存储,如NFS、ISCSI:

要么是本地存储,如物理主机的硬盘:

另一类存储系统作为仓库存在,存储含有操作系统的镜像模板,以及备份的磁盘和快照;这类存储可以是基于文件系统的,实体作为文件被存储;或者是基于对象存储的,实体作为对象被存储。在ZStack的术语表中,这类存储被称为备份存储,对VM无法直接访问,只能是网络共享的存储:

这两种存储都是逻辑概念,事实上,它们可以是各自独立的存储系统,使用不同的协议。例如,ISCSI主存储和NFS备份存储。或者同一个存储系统,同时扮演两种角色。例如,ceph,它的块存储部分是用于满足主存储,而它的对象存储部分则扮演了备份存储的角色。存储厂商可以很容易地在ZStack中,同时为主存储和备份存储加入他们的存储系统,通过实现存储插件的方式。

内部实现

主存储和备份存储并不是分开工作的;它们为了执行存储相关的活动,确实需要相互合作。最重要的活动是为了创建一个新的虚拟机。当一个虚拟机是第一次在一个主存储上被创建,它的镜像模板将会被从备份存储下载到主存储的镜像缓存中。由于大多数hypervisor使用称为链式克隆的技术,一旦镜像模板被下载,它将为所有的,使用了同样的镜像模板且在同样的主存储中有根磁盘的虚拟机,作为基础磁盘来工作。

在下载镜像之外,主存储也会上传实体,像磁盘、快照,到备份存储;这些上传活动都是备份相关的;例如,当用户备份一个数据磁盘时,数据磁盘的一个副本将会被上传到备份存储,作为一个镜像模板,可以在之后被下载到主存储用于创建新的数据磁盘。

在源代码中,主存储和备份存储在不同的插件中实现。在复杂性方面,备份存储显得更直接,因为只处理自身的事情。备份存储的主要活动是下载、上传和删除。一个备份存储需要定义一些协议,规定主存储怎样下载和上传实体,但它不需要知道主存储的细节,因为这是主存储的责任去使用这些协议来执行这些活动。另外,备份存储必须实现一些协议,这些协议允许镜像服务注册和删除镜像模板。和所有的其他资源类似,备份存储有一个抽象的基类BackupStorageBase,已经实现了大多数通用的业务逻辑,存储厂商只需要实现那些和他们后台存储系统直接相关的操作,通常是通过调用SDK或调用agent。

主存储更加复杂。复杂的根源来自于这么一个事实,即它的业务逻辑不只是依赖于备份存储,也依赖于hypervisor的细节。一个主存储,首先,必须理解备份存储的协议,以下载和上传实体;例如,一个NFS主存储必须知道Sftp备份存储,亚马逊S3备份存储,Swift备份存储的信息,如果它计划支持所有的这些。另一方面,对于同一个备份存储,协议的使用方法也会随着不同的hypervisor而不同;例如,NFS主存储可以调用KVM agent去使用s3tool来从亚马逊S3备份存储下载一个镜像模板;然而,由于VMWare有一个封闭的生态系统,对于NFS主存储来说要做同样事情的唯一方式是通过VMWare的SDK。基于这些事实,主存储的复杂性是M*N,其中M是备份存储的种类,N是它所支持的hypervisor的种类。

正如ZStack—通用插件系统一文中所描述的,ZStack是一个插件系统,每一个特性都被做成一个小的插件;一个主存储需要定义两个接口来打破这个复杂性。第一个是一个hypervisor的后端,用于处理只和hypervisor有关的活动;例如,NFS主存储有个定义好的接口:NfsPrimaryStorageBackend,对每一个支持的hypervisor,都会有一个具体的类,类似NfsPrimaryStorageKVMBackend用于KVM。第二个,称之为PrimaryToBackupStorageMediator,是一个hypervisor到备份存储的后端,用于处理同时涉及到hypervisor和备份存储的后端;例如,Nfs主存储有一个NfsPrimaryToSftpBackupKVMBackup的实现,用于为KVM支持Sftp备份存储。

这听起来非常糟糕,因为一个主存储必须实现如此多的东西;然而,事实上,一个主存储可能不需要去为所有的hypervisor支持所有的备份存储;例如,为VMWare支持Sftp备份存储是毫无意义的,因为VMWare SDK没有可能允许用scp传输一个文件到它的存储仓(即使可以通过绕过SDK使得这成为可能,我们不把它视为一种可靠的方式)。而且网络共享存储上,流行的协议并不特别多,大多数的使用场景可以被处理,一旦我们把Nfs主存储和Iscsi主存储准备就位。

注意:在当前的ZStack版本中(0.6),只有Nfs主存储和Sftp备份存储被实现了。

总结

在这篇文章中,我们演示了ZStack的存储模型。通过以逻辑功能将存储划分成主存储和备份存储,ZStack提供了一个非常棒的灵活性,使得存储厂商可以选择性地以各种意图插入他们的存储系统。而且随着越来越的普遍的存储协议,比如NFS、ISCSI、S3、Swift,将被作为默认插件加入,用户将不需要忧虑他们是否能够为他们现存的存储系统找到合适的组合。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,131评论 2 34
  • 本文遵循「知识共享许可协议 CC-BY-NC-SA 4.0 International」,未经作者书面许可,不允许...
    laiwei阅读 11,753评论 1 24
  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 3,705评论 0 10
  • 做人别低头,因为,地上没有黄金只有石头;凡事别强求,因为,强摘的果实没甜头。人活着,就要活出自己的个性,不仰视,不...
    沧海冰心阅读 199评论 2 6
  • 许昕想秦志戬想得发疯,秦志戬也想他小朋友。 挑着大蟒直播的几个时间点儿上去看,被不明真相的同事网瘾中年、爱岗敬业地...
    双漪阅读 3,003评论 0 2