QingStor 对象存储服务提供可无限扩展的存储空间、快速的数据存取性能、高度的可靠性和数据的安全性、细粒度的权限控制及简单易用的接口,以向广大用户提供廉价、可靠的存储系统。 本次分享,QingCloud 系统工程师 Osier 会分享青云QingCloud 对象存储的概念、实际的应用案例及进一步研发计划。
大家好,我是青云QingCloud 系统工程师 Osier Yang。今天我来和大家分享一些对象存储方面的内容。
“QingStor”为“青云对象存储”的项目及产品名称,为行文方便,下文将皆以“QingStor”代指“青云对象存储”。
今天交流内容包括:
- 什么是对象
- 企业 A 的存储方案演化历程
- 什么是对象存储
- 开源方案探讨
- QingStor 的架构及特性
- 如何使用 QingStor
- QingStor 用户案例 (Hash Data Warehouse – HDW)
- QingStor 更进一步的产品规划
1、什么是对象
我们从一个故事开始。在我们的对象存储研发后期,一个潜在客户来交流,他们想了解怎么用对象存储。交流期间,其中的技术负责人问了这样一个问题: “你们这既然是对象存储,那么它的类是怎么定义的?“。由此可见,即便是技术人员,也可能对”对象存储“产生误解。
所以要想讲清楚到底什么是”对象存储“,很有必要先解释“对象存储”这四个字,“存储”二字不必多说,凡 IT 从业者应该都理解,关键点是: 什么是“对象”?
Wikipedia 对“Object”分各领域做了解释(https://en.wikipedia.org/wiki/Object)。别的领域我们不管,我们只看哲学领域的定义,因为哲学领域的定义更具有普遍意义。Wikipedia 对“Object”在哲学领域的定义是:
a thing, being, or concept
在汉语里,和其英文本意最符合的词也就是”东西“了吧?百科里关于”东西“的释义如下:
泛指各种具体或抽象的人、事、物。例如:
- 明朱有炖 《豹子和尚自还俗》:“我又无甚希奇物,我又无甚好东西,他偷我箇甚的?”
- 《红楼梦》第三五回:凤姐笑道:”这一宗东西,家常不大做;今儿宝兄弟提起来了,单做给他吃。“
- 沙汀《闯关》一:“感情真是一种奇怪的东西。”
在计算机领域,“对象”(Object)除了在面向对象编程用来表示一个类(Class)的实例(Instance)外,还被常用来表示一个变量(Variable),一个函数(Function),一个数据结构(Data Structure),一段在内存中的实体,等等,相信计算机领域的研发人员在各种各样的代码或工具里都见过。举个例子,Linux Kernel (Linux操作系统的核心)的模块名以“.ko”为后缀名,“ko”的全称为“Kernel Object”,这里的“Object”和 JAVA/C++ 语言里的“Object”显然不是一回事。
由此可见,在计算机领域,“对象” (Object)这个词也是一个泛指意义的词,其意义也可类比汉语中的“东西”。你可以指任何一个事物为“东西”,也即你可以指任何一个事物为“Object”。具体是什么“东西”,依场景不同而不同。至于到底“对象存储”里的“对象”是什么“东西”,请见后文。
2、企业 A 的存储方案演化历程
要想理解什么是对象存储,我们从另外一个故事开始。企业 A 有一个应用,允许用户上传图片及视频,视频和图片的大小都比较小。
2.1 企业 A 存储方案 1
因为业务发展前期用户量很小,产生的数据量也足够小,最简单直接的方案为(实际生产中应该没人用这种方案,但最简单的方案往往更有助于我们看清问题本质):
这种最简单直接的方案几乎到处是缺点:
- 单盘容量限制。总存储量及可存储的单个最大文件的大小均受单盘容量限制。
- 无数据冗余。主机宕机会导致服务不可用,甚至数据丢失;硬盘损坏会导致数据丢失。
- 无数据备份。假设企业A的运维人员误删数据,恢复数据将变得困难。
- 文件系统的限制。当存储的文件数目越来越多时,文件系统的目录树会变大,变深,读写性能会越来越差,inode 总数也可能达到限制。
2.2 企业 A 存储方案 2
随着用户上传的数据量不断增加,我们假设容量率先增大了瓶颈,企业 A 为了解决容量问题,将存储架构改变为:
注:
* PV (LVM Physical Volume)
* VG (LVM Volume Group)
* LV (LVM Logical Group)
以上方案的利用 LVM 将众多硬盘空间抽象为一块大硬盘,突破了单个硬盘的容量限制,容量需求增加时,添加硬盘到 VG ,并对 LV 进行扩容即可。支持文件系统级别的 Snapshot , 可将数据回滚至某个点。但仍有缺陷:
- 单机容量限制。可挂的硬盘总数有限制,即总容量仍然有限制。
- 无数据冗余。虽然 LVM 支持文件系统级别 Snapshot ,但 snapshot 只能将数据回滚到某个点。并不能够应对灾难情况,比如物理机宕机,服务仍然不可用,数据也可能丢失;硬盘损坏时,数据仍然可能会丢失。
- 文件系统的限制。当存储的文件数目越来越多时,文件系统的目录树会变大,变深,读写性能会越来越差,inode 总数也可能达到限制。
2.3 企业 A 存储方案 3
假设企业 A 的存储容量需求在短时间内达不到单机的容量限制,但随着业务的发展,企业 A 开始重视数据的安全性。存储方案进一步演化为: