守望的麦子

OpenStack 的三种存储服务

2017-4-7    大连    /ericsson/2017/04/07/storage.html ericsson

OpenStack 的存储服务分为三种:Glance、Swift 和 Cinder,要了解这三种存储服务,我们需要首先从三种存储概念说起。

概念:文件存储、块存储和对象存储

文件存储:有 POSIX 接口或者 POSIX 兼容的接口的,可以被认为它是一个文件系统,比较典型的分布式文件系统有像 Glance 的 FS,Hadoop 里的 HDFS。

POSIX: 可移植作业系统接口(英语:Portable Operating System Interface of UNIX,缩写为 POSIX)。(via link)

块存储:电脑上的一个盘格式化之后是一个文件系统,那么在格式化之前是一个块设备,也就是块存储,实际上我们在数据中心里面,像 EMC 的很多设备,像华为的一些叫作 SAN 的设备,像 NetApp 的一些设备,如果是散存储一般来说就是提供块存储的。

对象存储:对象存储的典型代表是亚马逊的 AWS S3,它的接口不是 POSIX,也不是像一块硬盘那样作为一个块存储的接口,是通过 RESTful Web API 去访问的,对于应用开发者来说优势在于可以很方便的去访问存储里面存的数据,对象存储里存的数据通常叫做 Object,实际上它就是 File,但是对象存储里面为了和文件系统做一个区别,便被叫作对象 Object。

接下来说一下 OpenStack 的三种存储服务。

Glance(镜像存储)是一个镜像存储管理服务,本身不具备存储的功能。

Cinder (块存储)提供块存储的接口;本身也不提供数据的存储,后面也需要接一个存储的后端,像 EMC 的散设备,华为的存储设备,NetApp 的存储设备可以做它的后端。还有一个比较火的开源分布式存储叫 Ceph,Ceph 也提供块存储服务,也可以用来作为 Cinder 的后端。Cinder 的作用就是为 OpenStack 提供块存储的接口,有个很重要的功能叫卷管理功能,虚拟机并不直接去使用存储设备(并不直接去使用后端的存储系统),使用的是虚拟机上的块设备(卷 Volume),实际上 Cinder 就是创建和管理这些 Volume 并且把它挂载到虚拟机上。Cinder 是从 Nova Volume 里面独立出来的,独立出来之后很受各种存储厂商的欢迎,可以通过写 Cinder Driver 的形式把自己的存储设备纳入到 OpenStack 的生态圈里面去。

Swift (对象存储)提供的是对象存储服务,具有像亚马逊 AWS S3 的特点,提供通过 RESTful API 的方式去访问数据,这样做是为了解决两个问题:

1) 我们可以直接去访问一个存储,而不需要在通过自己开发的 Web 服务器去做一次数据的转发,否则对服务器的负载来说是一种压力。

2) 在我们的大数据时代,当数据量特别大的时候,如果我们用文件系统就会出现问题,文件的数量激增以后,存储的性能会急剧下降,而对象存储实际上则是解决这个问题的,对象存储抛弃了那种目录树的结构,用一种扁平化的结构去管理数据。

Swift 实际上只有三层结构,即 Account、Container、Object。Object 就是最终的那个数据了,就是文件,前面有两级管理,一级是 Container 容器,它把 Object 放到容器里面,然后再上面一级是 Account,是和账户去关联的,Container 相当于是把这些 Object 做了分类,用 Account 去跟账户关联起来。

关于作者
麦子,80 后,现从事通信行业。安卓玩家一个人的书房朗读者。
MRJENGLISH
jsntn
jasonwtien
jasonwtien
更多…… /about.html

最近更新: