基于天翼云的对象存储行业应用实践探索
2022-03-09胡晓宇
胡晓宇,方 剑
(1.中国电信上海公司网络操作维护中心,上海 200041;2.中国电信上海公司业务创新中心,上海 200041)
0 引言
对象存储(Object-based Storage)是一种新的网络存储架构,该技术结合NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的分布式数据共享等优势。其核心思想是将数据读写和控制分离,并且基于对象存储设备(OSD),构建存储系统,每个对象存储设备,能够自动管理其上的数据分布,具有极高的读写性能。对象存储通过多副本和纠删码冗余,可根据对象的重要程度选择不同的冗余方式,实现存储的高可用性。
由于对象提供了高性能、高可靠性、跨平台以及安全的数据共享的存储体系结构,应用场景非常广泛。各大公有云厂商的云计算产品均包含有对象存储功能,本文以中国电信天翼云产品的行业应用为案例,探讨对象存储在未来企业上云中的意义。
1 对象存储的应用场景分析
1.1 企业大规模建站
对于大规模企业网站,对象存储有助于实现静态和动态资源分离。通过对象存储提供的网站托管功能,可将网站的HTML网页、图片、视频等资源存储在对象存储中,直接面向用户提供网站资源的访问服务。通过对象存储的高并发支持能力,帮助企业用户有效解决网站应对高并发所带来的困扰。
1.2 视频图像云端存储
对音频、视频等海量资源存储,通过使用对象存储,将文件推送到云端对象储存。通过高速网络支持海量数据上传到最近的资源池,并利用对象存储技术应对高吞吐量、高并发及承载对流媒体的业务访问压力。此外,云端的对象存储还能提供图片缩略图、剪裁等处理能力,方便用户使用。
1.3 数据保护和备份
利用对象存储,企业可以建立自己的云端备份系统,将需要备份的企业数据写入云端的对象存储,通过对象存储的多副本冗余功能,还可实现异地数据容灾。
2 天翼云对象存储架构简介
对象存储系统主要包括:
(1)Account(账户)。在使用OOS之前,用户需要在天翼云网站注册一个Account(账户)。成功开通之后,用户可以用该账户登录并使用OOS服务。
(2)Service(服务)。是OOS为注册成功用户提供的服务,该服务为用户提供弹性可扩展的存储空间。
(3)Bucket(桶)。桶是存储对象的容器,类似文件系统的目录。对象存储系统的每个O对象都必须包含在一个桶中。用户可设置桶的属性,用于控制权限、生命周期等,B桶的属性设置直接作用于该容器内的所有对象。只有对桶拥有相应的权限,才可以对其操作,实现授权访问,从而保证数据的安全性。
(4)Object(对象)。用户存储在对象存储系统上的每个文件都是一个Object(对象),可以是文本、网/视频、网页或者任意的其他二进制内容。
(5)AccessKeyID和AccessSecretKey。AccessKey ID和AccessSecretKey等同于用户名和密码,对象存储系统会通过它们来验证对资源请求。
图1 天翼云对象存储OOS的概念和层级关系
3 天翼云对象存储访问方式比较
天翼云对象存储的访问方式主要有:控制台直接访问、编程接口访问、云存储网关访问、第三方软件访问。
3.1 通过控制台访问对象存储
天翼云为客户提供了对象存储的控制台。如图2所示。
图2 天翼云对象存储控制台
天翼云对象存储控制台[1]提供了丰富的管理功能,主要包括:
(1)容器管理。用户登录成功后,可以对拥有的Bucket及Object进行操作,包括新建容器、容器列表、删除容器、查看/修改容器属性、冗余管理、容器安全策略设置、网站管理、日志管理、生命周期管理、跨域管理等。
(2)对象管理。对象(文件)上传/下载、对象预览、对象分享、文件夹增删改、移动/复制对象、搜索对象。
(3)密钥管理。主密钥、普通密钥的生成和管理。
(4)资源统计。资源总览、资源详细使用情况(含容量使用、带宽使用、请求次数等)。
3.2 通过编程接口访问对象存储
编程访问是对象存储OOS的最为主要和最基本的访问方式之一,天翼云OOS提供的RESTFUL接口与Amazon S3兼容,基于OOS的业务可以非常轻松地与天翼云对接,实现应用程序直接与对象存储对接交互,完成对象的存取调用。天翼云提供了基于JAVA、Python、PHP、C、JS等多种开发语言开发API[2],并支持安卓/IOS等移动操作系统实现跨平台调用,这些API方便开发者将应用与对象存储集成。
图3 编程访问对象存储
对象存储的服务API通过HTTPS提供访问,天翼云对象存储资源池主要分布在内蒙、贵州数据中心和各省数据中心,不同的资源池提供不同的URL作为入口,用户可根据自己的需要就近选择资源池或根据需要将对象存储到不同的资源池中。
天翼云提供的编程接口采用RESTFUL风格的API,接口提供了丰富的接口函数或方法,主要有用户登录、Bucket桶操作和Object对象操作等API。用户使用API时,必须首先提供Access-Key和Secret-Key,调用登录方法进行登录。登录成功后可对桶(Bucket)进行操作,如读取、增、删等。在桶中,用户可以进行对象操作,如上传、下载等。对象存储后拥有唯一的存储标识(键),对象一经存储后,不能再修改,只能删除和重建。
3.3 通过云存储网关访问对象存储
在传统应用中,用户一般以块存储的形式使用存储资源,硬盘空间分区后以盘(WINDOWS)或卷(LINUX)的形式进行挂载。当用户使用对象存储时,由于对象存储使用的是S3 API,用户的应用程序需要改造才能适配对象存储。对普通用户而言,使用起来会产生诸多问题,因此需要一款能够将对象存储转换成块存储的工具。
图4 云存储网关
天翼云对象存储网关[3]是一款可在本地或云上部署的工具软件,存储网关本质上也是通过S3 API访问对象存储的。存储网关的主要功能是将对象存储的访问转换为块存储访问,向用户提供大容量的块存储空间。用户借助云存储网关无须改变应用程序接口,可直接使用行业标准的块存储协议,如iSCSI或NFS,从而安全快速地将数据存储在天翼云对象存储OOS中。
使用云存储网关后,用户无须对原有应用进行任何更改,极大地方便了使用,客户的块存储空间能够弹性伸缩至PB规模,具备高可用性和持久性,能为海量数据、高带宽存储应用提供有力支持。可适用于多种应用场景,包括视频监控、备份容灾等。
3.4 通过Web访问对象存储
在对象存储上存储的Web页面、图片、视频等文件可直接向互联网提供访问,一般作为网站的静态内容提供,由于对象存储的高可用和并发性,可用于支持各类客户的分布式网站应用。
使用对象存储可用于构建高并发网站,客户在访问网站时,首先访问云端的负载均衡器(如NGINX)。负载均衡器判断是否为动态网页,如果是动态内容,交给后端的动态处理集群(如TOMCAT、PHP)进行动态页面的处理并返回。如果是HTML、CCS、图片或是视频等静态内容,则反向代理至对象存储,通过对象的URL取得相关内容,并返回用户。
对象存储支持副本功能,可将存储在某个存储池的数据在其他存储池上建立副本。利用副本的特性,对象存储能用来于构建CDN系统。当某个用户访问时,负载均衡器通过识别用户的源地址或其他位置信息来确定用户的具体位置,通过HTTP重定向,将网页重定向到靠近用户的对象存储池,用户可直接从就近的对象存储池访问所需的页面。对象存储Web访问可支持放盗链功能,可有效避免网站资源被恶意盗用。
3.5 第三方软件访问对象存储
3.5.1 通过客户端软件访问对象存储
目前市场上有一些软件可以直接实现S3对象存储访问,类似FTP和SFTP实现本地客户端到对象存储的上传和下载。笔者常用的一款软件是DragonDisk,安装完成后,输入Access Key/Secret Key,云端访问点URL。登录成功后,可实现存储桶管理、对象的上传和下载等管理功能,支持批量拖拉进行对象(文件)上下传。笔者工作中经常使用其作为云存储开通后的调试排障工具使用。除DragonDisk外,还有CloudBerry、S3 Curl、S3 Browser等,这些客户端软件都为文件和对象的传输带来了友好方便的客户体验。
图6 使用客户端工具软件访问对象存储
3.5.2 将对象存储转换为文件系统挂载
如果只有单台服务器需要访问云存储,S3FS无疑是较好的选择。S3FS是Google开发的一款支持将对象存储中的Bucket以文件形式导出的文件系统接口,兼容POSIX语义。S3FS允许Linux和Mac OS X挂载S3的存储桶在本地文件系统,S3FS能够保持对象原来的格式。以UBUNTU系统为例[4]。
(1)获取源代码。
git clone https://github.com/s3fs-fuse/s3fs-fuse.git
(2)安装依赖包。
apt-get install build-essential libcurl4-openssldev libxml2-dev mime-support fuse-dev fuse
(3)编译S3FS。
cd s3fs;
./configure --prefix=/usr/local
make && make install
(4)配置对象存储访问密钥。
Bash
echo AWS_ACCESS_KEY_ID:AWS_SECRET_ACCESS_KEY > ~/.passwd-s3fs
chmod 600 ~/.passwd-s3fs
(5)挂载。
s3fs -o use_cache=/tmp/cache node1:/abcd /s3mnt
3.6 对象存储各类访问方式比较
天翼云对象存储的各类访问方式各有特点,适应不同的应用场景使用,主要的比较如表1所示。
表1 天翼云对象存储访问方式比较
4 天翼云对象存储应用案例分析
4.1 医疗影像云存储
医疗影像云服务于大中型医疗机构、医联体和跨区域医疗机构以及基层医疗机构,满足医疗影像存储、传输以及影像数据共享的需求,提供海量影像数据归档存储、影像调阅与后处理,以及基于云端的PACS(Picture Archiving and Communication Systems)应用于一体的医疗云平台。医疗影像云的组网结构如图7所示。
图7 医疗影像云系统架构
医院的PACS系统连接到医疗影像云前置机(网关),前置机为PACS系统提供通用的DICOM协议接口。医疗影像设备,如CT等通过DICOM协议将医疗图像发送到前置机。前置机通过上云专线连接到医疗影像云集中平台,在平台的控制下,前置机通过S3接口将影像数据存储到天翼云对象存储池,前置机同时将归档信息记录到平台上。
当需要调阅时,医生工作站可以向前置机发出调阅指令,由前置机向平台行查询,取出相关的影像存储位置后,调用对象存储API从对象存储取得影像资料,并通过DICOM协议交给医生工作站,由工作站进行显示。
建立区级和市级集中医疗影像云平台后,多家医院之间的医疗影像信息不仅可实现共享和相互调阅,医疗
影像的存储时间也从1~2年延长到10年以上。
4.2 视频监控云存储
随着对平安城市对安防要求的提升,对关键视频存储的时间要求也越来越长。根据最新的要求,重点公共场所的视频监控保存要求从原来的1个月上升到3个月。按照1路1080 P高清视频4 M码流计算,存储1 000路视频图像需要4 P存储空间,相当于1 000块4 TB硬盘或4 000块 1 TB硬盘。对于很多企业来说,由于受到机房和用电条件的限制,无法安装额外的存储设备,难以满足监控扩容要求。通过使用天翼云对象存储,可以将这些视频直接存储到云端,利用天翼云对象存储巨大体量实现视频的长期存储。
在上海某机场[5]的监控项目中,用户需要将1 000多路视频监控的存储时间从1个月提升到3个月,天翼云提供了视频监控存储方案。在方案中,在云上部署一套云视频存储平台。该平台具备直接访问对象存储的存取能力,可直接将视频存放到天翼云对象存储。
通过OTN高速专线连接到天翼云端的视频存储平台,视频存储平台通过DCI连接到天翼云对象存储池。机场监控系统与云监控存储平台之间通过国标GB/T28181协议进行对接,实现了视频上传云端以及从云端调阅的功能,1 000多路视频全部实时存储上云,运行稳定。
上海某高楼的情况与某机场情况类似,用户也需要扩容视频存储能力。由于该用户的监控设备为国外厂商,视频录像服务器无法实现国标对接,只能支持ISCSI硬盘存储。为此电信通过存储网关的形式提供存储资源,安装多台存储网关,将对象存储转换为ISCSI块存储供用户使用,用户的视频录像服务器采用ISCSI挂载硬盘存储网关虚拟出的硬盘卷,用户的监控系统不需要进行改造,与用户原先的使用方式没有任何差异。
图8 视频上云存储方案
4.3 企业数据备份
天翼云对象存储的特点同样可以使之方便地成为企业数据备份的解决方案,通过对象存储的各类访问方式方法,如存储网关挂盘扩展存储资源,通过客户端软件上传下载文件,通过编程开发,能迅速构建起数据异地备份系统。
目前部分传统存储设备也开始支持将对象存储作为容量扩充的手段。某事业单位急需扩容存储硬盘,但由于采购问题无法立刻到位。因此,电信推荐用户存储设备通过专线和S3接口与天翼云对象存储池建立连接,再将对象存储的空间转换为ISCSI块存储供服务器使用。这种使用方法与存储网关的作用相似,可用于传统存储的容量灵活扩展,降低了客户的采购成本,加速企业应用的构建。
图9 传统存储对接对象存储
5 结束语
对象存储正在不同行业发挥着日益重要的作用。随着企业上云的深入推进,传统存储向分布式存储、云存储转变的趋势日益明显,对象存储发挥的作用必将进一步显现,应用的领域和场景必将越来越广。