华为云实战 之 对象存储的使用以及与腾讯云COS对比

网友投稿 1444 2022-05-25

一、OBS是什么

OBS即对象存储服务(Object Storage Service),是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,包括:创建、修改、删除桶,上传、下载、删除对象等。

OBS系统和单个桶都没有总数据容量和对象/文件数量的限制,为用户提供了超大存储容量的能力,适合存放任意类型的文件,适合普通用户、网站、企业和开发者使用。由于OBS是一项面向Internet访问的服务,提供了基于HTTP/HTTPS协议的Web服务接口,用户可以随时随地连接到Internet的电脑上,通过OBS管理控制台或客户端访问和管理存储在OBS中的数据。此外,OBS支持SDK和OBS API接口,可使用户方便管理自己存储在OBS上的数据,以及开发多种类型的上层业务应用。

OBS还提供图片处理特性(Image Processing),为用户提供稳定、安全、高效、易用、低成本的图片处理服务,包括:图片剪切、图片缩放、图片水印、格式转换等。

云服务实现了在多区域部署基础设施,具备高度的可扩展性和可靠性,用户可根据自身需要指定区域使用OBS,由此获得更快的访问速度和实惠的***。

二、为什么要用OBS

对象存储可以简单理解为用来存储图片、音频、视频等非结构化数据的数据池。相对于主机服务器,具有读写速度快,利于分享的特点。那为什么现在越来越多的企业、开发者选用对象存储服务呢?简单罗列了五个点:

1、网站数据动静分离,大幅提升网页性能

一般情况下,我们都是建议使用主机服务器和对象存储分工合作的方式来存储网站数据。主机服务器主要负责存储网站的动态数据,对象存储则用来存储网站的静态文件。从而实现网站的动静分离,当用户访问一个网站时,分别从主机服务器和对象存储的服务器同步读取数据,可以大幅的提升网页性能。

2、单独的文件管理界面,管理网站文件和本地电脑一样方便

无论是华为云、腾讯云、阿里云、七牛云,对象存储都有单独的管理控制台,华为云和腾讯云还有专门的电脑客户端。你不必打开网站,就可以像使用百度云盘一样使用对象存储来管理你的网站文件,除了上传、下载、预览等常用功能,还可以直接在对象存储上进行图片处理/媒体转码/数据分析等。

3、本质是”内置大容量硬盘的分布式服务器“,同一个文件支持跨域共享

对象存储的本质是“内置大容量硬盘的分布式服务器”,对象存储有自己的CPU、内存、网络和磁盘系统,具备一定的智能,同一个对象存储数据池可以新建不同的存储桶(bucket),分别用来存储不同网站的数据,彼此互不干扰。而且同一个文件可以引用到不同的网站,可以有效的减少数据冗余。

4、储存节点多,支持跨地域实时同步,实现异地容灾

假设你的图片等数据存储在你自己的服务器上,只能通过定期数据备份的方式保护你的数据。数据量大的话,每次备份都需要大量的时间和占用大量的磁盘空间,管理起来还不方便。

如果你的数据放置在对象存储的数据池了,并与网站关联。那么静态文件的备份就可以交给对象存储。你只需要对网站少量的动态文件进行备份。省时省力。

比如我使用对象存储,我在离我最近的节点【深圳】来存储网站的图片等静态文件。但是考虑到极端情况,比如深圳节点由于突然停电,可能导致数据全部丢失。但如果之前我选择了【杭州】作为第二个存储节点,而且设置【深圳】节点的数据实时增量同步到【杭州】节点。那么就算深圳节点的数据丢失了,但是我在杭州的数据还是可以使用。等到恢复供电,我再把数据从杭州节点同步回深圳节点就可以了。这就是我们说的异地容灾。

5、成本低,资源弹性伸缩,按需付费

现在华为云对象存储(简称OBS)40G容量一年的价格大概是9块钱,腾讯云对象存储(简称cos)也有免费的50G容量,加上10G的免费下行流量。已经可以满足大部分个人站点的使用需求。不像服务器的流量是固定的,包含在服务器的费用里面了。无论你用或不用,都是这么多。对象存储可以是根据你的实际使用量进行计费。

三、华为云OBS的优势

这个就不自由发挥,直接看华为云官网对于OBS的优势介绍吧:

四、如何使用华为云OBS

1、在使用华为云OBS之前,简单说一下接入华为云OBS的几种方式:

序号

工具

描述

1

管理控制台

2

OBS Browser

3

OBSFTP

4

obsutil

5

SDK

6

API

比较常用的就是管理控制台和OBS Browser

首先是管理控制台,在管理控制台可以进行桶管理,点击具体的桶可以进入详细管理界面

包括数据统计、对象管理、权限管理、配置管理、域名管理、跨区域复制以及图片处理等功能,界面设计简单明了,操作相对也比较方便。

然后是OBS Browser,这是个客户端桌面工具,打开登录后可以如百度网盘般进行文件的操作:

2、如何使用这些工具来进行文件管理

这里我就以OBS Browser为例展开说明:

首先,我们需要登录华为云控制台,在“我的凭证”中新增访问密钥,然后下载到本地(访问密钥是一个名为“credentials.csv”的文件)

我们在登录OBS Browser的时候需要使用到里面的AK(Access Key)和SK(Secret Key)

登录后就进入到主界面了:

在这里我们可以添加桶:

可以在桶中进行文件夹管理和文件管理:

OBS支持多文件/文件夹同时上传,一次最多可以上传500个文件和文件夹,对于批量上传来说是非常有用的一个功能。

对于单个对象,我们可以方便的对其存储类别、ACL、对象策略等进行配置管理,同时还能够复制访问链接,进行移动、复制、删除、下载等功能:

3、如何访问对象

简单来说我们可以用rest接口来请求访问对象

请求URL的构成示例: ://./?querystrings

schema:http或https

bucketname:桶名

endpoint:桶所在区域的区域域名

objectname:对象名

querystrings:查询参数

例如,如果您有一个位于中国华北区1的名为test-bucket的桶,期望访问桶中一个名为test-object对象的acl,华北区1的EndPoint地址是obs.cn-north-1.myhuaweicloud.com,则正确的访问URL为 https://test-bucket.obs.cn-north-1.myhuaweicloud.com/test-object?acl

一般这样请求会提示认证失败:

华为云实战 之 对象存储的使用以及与腾讯云COS对比

这个意思是说我们需要在请求中加入签名进行认证,否则无权限进行访问,那么添加签名有以下几种方式:

在头域中包含签名是最常见的情况,这种方式需要在HTTP请求头域中添加一个认证头域,格式为:

Authorization: OBS AccessKeyID:signature

示例如下:

Authorization: OBS HCY8BGCN1YM5ZWYOK1MH:51KOKYY9CVvk/DtUt4W8aFHvfsc=

在URL的querystring中包含签名,一般用于限时分享链接的场景,示例如下:

https://bucketname.obs.cn-north-1.myhuaweicloud.com/objectname?AccessKeyId=HCY8BGCN1YM5ZWYOK1MH&Expires=1528857302&Signature=OgynyFAkBRU6FUHkEqsMVsPolok=

在POST表单中包含签名,一般用于浏览器上传的场景,示例如下:

------WebKitFormBoundaryx4WluntRxFeG3GAD

Content-Disposition: form-data; name="AccessKeyId"

HCY8BGCN1YM5ZWYOK1MH

------WebKitFormBoundaryx4WluntRxFeG3GAD

Content-Disposition: form-data; name="signature"

Bpj82MEqa23d7GEot7LCqJY8Zdg=

暂时用URL形式来访问,加上签名后如下:(这个URL可以在OBS Browser中点分享进行获取)

五、华为云OBS  vs  腾讯云COS

好了,大概了解了华为云的OBS使用之后,我们来对比一下腾讯云的COS

这两个云的对象存储服务我都有使用过,由于使用不是特别深入,所以对比过程中也参考了很多的资料,并且对于各自官网相关的介绍也进行了对比。

1、工具对比

对比项

华为云OBS

腾讯云COS

备注

登录

功能

上传、下载、文件和文件夹管理、存储桶管理、移动、复制、删除、修改

价**格

存储包:2T   包3月:663元   包年:1989元

下行流量包:100G   包3月:147元   包年:441元

存储包:2T   包3月:758.78元   包年:2532.96元

下行流量包:100G   包3月:150元   包年:600元

性能-延时

配置:Hc2.2xlarge.2  8核16G内存 内网带宽2Gbps,30万pps    华南区域

128k上传延时:14.23ms

128k下载延时:14.12ms

512k上传延时:48.07ms

512k下载延时:64.04ms

配置:C3.2xlarge16  8核16G内存 内网带宽3Gbps,100万pps   华南区域

128k上传延时:63.95ms

128k下载延时:29.91ms

512k上传延时:169.12ms

512k下载延时:182.98ms

测试工具:obscmdbench

模拟大量小文件存取的小文件100并发的多并发传输延迟测试,测试单位为毫秒(ms),分为128K/512K两种大小进行测试。

性能-速度

4M上传:143.47mb/s

4M下载:112.08mb/s

128M上传:281.08mb/s

128M下载:332.36mb/s

1GB上传:318.06mb/s

1GB下载:374.21mb/s

4M上传:52.21mb/s

4M下载:74.1mb/s

128M上传:62mb/s

128M下载:84.36mb/s

1GB上传:62.7mb/s

1GB下载:75.14mb/s

测试工具:obscmdbench

单个大文件的单发上传下载速度测试

上表中可以看到,华为云对象存储在性能方面有较大的领先优势,这个得益于华为云对象存储软硬件及网络方面的核心优势。

1.硬件

首先是硬件上的,就在2018年3月份,华为云就表示,其OBS对象存储服务已经摒弃10GE网络,全面部署25GE网络。

25GE即25Gbps(也就是3.125GB/s),是公认的下一代数据中心互联解决方案,得益于华为在网络设备的领导者地位,华为云是国内第一家全面进入25GE时代的云服务商,先进的以太网标准和全自研的设备给予了华为云远超对手的上下行宽带速度,这也是华为云在大文件宽带测试中网速一骑绝尘的根本原因。

除此之外,华为云还使用了大容量的NVMe标准SSD硬盘,电脑DIYer应该对它非常熟悉,NVMe标准SSD用超高的读写速度保证了文件读写的高性能,规避了机械硬盘频繁寻道的问题,而且通过高速SSD的引入,可以大幅提升云存储系统的整体性能表现。

2.底层优化的软件

在硬盘数以万计的大集群数据中心中,硬盘故障是常态,所以很多时候故障硬盘的数据恢复就会成为影响IO请求速度的重要原因之一。

为此华为提出了lrc算法,lrc是一种先进的数据恢复算法。一般来讲,如果一份数据分散放在4、5个机房当中,当某个机房中的硬盘故障时,传统的恢复算法会请求读取其它机房中的数据以恢复故障硬盘中的文件。

但华为的lrc可以把这个读取范围限制在本机房中,换句话说,系统只需要读取就近的数据即可恢复故障硬盘,而无需再跨机房读取数据占用宝贵的宽带资源。

除了改良的lrc算法外,华为还对底层软件做了诸多优化,例如使用了Append only接口来延长磁盘使用寿命;提供了新的增强实例c3ne,保证客户端不成为瓶颈;对IP路径端到端做了内存免拷贝处理,大大减少了CPU负担,提高了带宽速度等等等等。

凭借着先进硬件配备与软件优化,华为云OBS才取得了如此傲人的成绩。

附:腾讯云COS客户端登录页和管理页

API 对象存储服务 OBS 存储

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:前后端分离实践
下一篇:YOLOv4 物体/目标检测之实战篇(Windows系统、Python3、TensorFlow2版本)
相关文章