云存储硬核技术内幕——(17) 极乐鸟

在上期提到,对象存储作为低成本,接口通用开放,可远程访问的一种新型云存储形式,得到了广泛的应用,而AWS的S3(Simple Storage Service)也成为了对象存储的事实标准。

然而,AWS的对象存储,并不能部署在私有化环境中。对于安全要求高的系统,如医院PACS影像系统等,就不适合使用AWS的公有对象存储服务。

怎么办呢?

鲁迅说过,对于难以解决的技术问题,可以跟随方老师读一段诗或者散文,就可以解决了。

极乐鸟

传说中有一种极乐的鸟,

它用尽一生唱出最美的歌;

歌声穿过大海飞呀飞,

给人们带来清新与欢乐。

有一天极乐鸟将要老去,

双翼沉重,歌喉枯竭;

它的身躯缓缓落入海中,

它的歌声却响彻山河……

极乐鸟的原型,是雨燕(swift),全世界飞得最快的鸟类,平均时速可达160km/h,超过高速公路上车辆的速度。由于它的飞行速度与续航能力,被误以为一直飞翔,永不落地,才有了没有双脚的极乐鸟的传说。

对OpenStack有一定认知的同学一定想到了,今天的主角就是OpenStack的对象存储组件——Swift。

在分析Swift之前,我们先看看为什么要解剖这只麻雀雨燕:

我们知道,分布式存储实际上是一个很简单的系统(因此,Amazon才给它命名为simple),我们只需要实现通过http/https访问对象即可。最简单的实现可以基于nginx或apache httpd的Web服务器改造而成。

然而,如果我们需要1PB的存储容量,20000 QPS/20Gbps的性能,该怎么办呢?

解决方案A:市场上高端FC SAN存储一般也支持S3协议,可以购置昂贵的集中式专用存储设备,通过开历史倒车的方式解决这个问题;

解决方案B:顺应历史潮流,使用分布式存储来实现对象存储。

Swift就是顺应历史潮流的产物。

Swift是大名鼎鼎的OpenStack的一个组件,最初由Rackspace开发,2010年贡献给OpenStack社区。让我们打开它的主页,在文档中可以看到它的自我介绍:

https://docs.openstack.org/swift/latest/

“Swift is a highly available, distributed, eventually consistent object/blob store. Organizations can use Swift to store lots of data efficiently, safely, and cheaply.”

Swift是一个高效的,安全的和低成本的分布式对象存储系统。

当然,有一点要注意,Swift和Amazon S3的接口是有微妙的区别的,直到2003年,Swift才支持S3,这点需要特别注意

在下期开始,我们将详解Swift的接口实现。

一个小惊喜:前边这首诗是方老师10分钟瞎编的,如果网上能找着,我直播吃光模块。