为什么迁移上云

 

传统存储面临的挑战

现如今,数据与土地、劳动力、资本、技术并称为五大生产要素,数据成为数字经济发展的重要引擎。大数据时代,数据处理的需求急剧增长,越来越多的智能设备以及新应用如区块链、机器学习训练和AI等产生大量的数据,传统单一的存储面临着如下挑战:

  1. 扩展性限制:存储需求增加时,往往需要替换或升级整个存储设备,这带来了昂贵的成本和复杂的操作
  2. 性能瓶颈:面对海量的数据,传统集中式存储数据流都必须通过单个存储设备进行访问和处理,容易成为性能瓶颈
  3. 数据安全性:一旦存储设备受到入侵或攻击,所有数据都可能受到威胁。此外,数据备份和灾难恢复方面的挑战也可能导致数据的不可用性和损失
  4. 数据孤岛:传统存储对各应用系统提供分散的存储解决方案易形成数据孤岛
  5. 成本和复杂性:传统集中式存储通常需要昂贵的硬件设备和专门的管理人员来维护和管理。这增加了成本和复杂性,并可能限制中小型企业的采用

 

为什么迁移上云

基于上述考虑,越来越多的组织认为应该将存储负载迁移到云端,以提升整个组织的效能和科技竞争力,迁移上云带来了哪些好处呢?

  1. 提升业务敏捷性
  2. 提升资源弹性
  3. 提升安全防护能力
  4. 降低成本
  5. 降低运营费用

 

本地存储&云存储使用量对比

使用传统式存储,需要购买新的存储系统、存储容量,还需要为未来的发展预留一部分容量,同时未来如果业务量规模扩大,还可能需要在数据中心托管并维护总容量,这都将大大增加成本。

使用云存储,用户可以按需使用服务以满足存储需求,由云厂商在其数据中心托管和维护底层系统,用户不必操心。

 

 

如上图所示,传统存储与阿里云云存储使用存储服务时占用容量的对比(上图数字仅为示例,实际数据可能存在差异):

 

传统存储:

  • 实际数据容量:小浩预估需要100 TB的实际数据容量,分配了150 TB,超出的50 TB分配给快照和数据增长
  • 分配容量:实际的数据量、为保护数据的快照空间、系统处理操作(如 写文件)的开销
  • 格式化容量:格式化和操作系统开销、硬件故障后数据校验开销、分配容量
  • 原始容量:实际购买了250 TB的原始存储容量
  • 成本:需要支付250 TB的硬件费用及后期运营维护的费用

 

阿里云存储:

阿里云云存储支持多种计费方式,比如可以根据分配容量(如EBS)或者实际存储容量(如OSS、NAS)进行计费,支持先使用后付费的按量付费方式,也支持购买优惠资源包;但用户不必为昂贵的硬件存储设备和存储系统付费,只需要关注自己需要使用的存储空间即可。更详细的计费逻辑,我们将在后面的课程展开讲解。

“基于存储产品快速搭建网盘”课程,本课程是阿里云云存储系列认证中第一阶段的课程,主要介绍阿里云块存储(EBS)、文件存储(NAS)、对象存储服务(OSS)等云存储产品的基础概念与产品特性,同时,我们将基于存储产品搭建网盘,教会大家使用存储产品的基本操作,陪伴您开启云上存储服务的第一站。

 

课程目标

学习完本课程后,您将能够:

  1. 了解本地存储和云存储区别
  2. 了解阿里云云存储的优势
  3. 具备根据实际业务需求选择合适的阿里云存储服务的能力
  4. 掌握阿里云云存储产品的基础概念和产品特性
  5. 掌握基于阿里云存储产品快速搭建网盘

 

课程场景

(提示:本课程为场景化教程,旨在帮助学员理解真实的应用场景,该场景讲述如何利用阿里云存储产品搭建网盘。)

小浩为一家能源公司存储团队的成员,随着公司业务的发展,数据量呈现爆发式增长,存储扩容的成本不断增加,同时业务反馈近期出现了系统响应较慢的情况,公司希望小浩能够提出有效的解决方案。

小浩通过调研分析,考虑采用云存储,未来计划逐步将数据从线下迁移到线上。这个方案是否有效呢?接下来,让我们一起参与小浩的调研过程,并学习如何利用阿里云存储产品搭建存储服务。

主要的存储类型

小浩了解到,无论是本地存储还是在云环境中,都有三种主要的存储类型: 块存储、文件存储和对象存储。在开始使用云存储服务之前,我们先来一起学习一下主要的存储类型的技术原理,并学会区分它们。

 

块存储(Block Storage)

块存储是一种将数据存储为固定大小块的数据存储方式。块存储将数据分成多个块,每个块的大小通常是固定的,比如4KB、8KB、16KB等。块存储的数据结构相对固定,无法进行自由的调整。块存储通常用于文件系统、关系型数据库等领域,常常用于存储大量的数据,以提高数据读写效率。块存储的优势在于存储效率较高,可以快速存储和检索数据。

 

文件存储(File Storage)

文件存储是一种将数据存储为文件的数据存储方式。文件存储将数据分成多个文件,每个文件可以包含多个数据块。文件存储通常用于存储大量的数据,可以通过文件系统等方式进行管理和访问。文件存储的优势在于可以灵活地管理和访问数据,并且可以支持大规模的数据存储和管理。

 

对象存储(Object Storage)

对象存储是一种新型的云存储服务,它将数据存储为对象的形式,可以更好地满足大量非结构化数据存储和管理的需求。对象存储将数据分为多个层次,每个层次都有自己的命名空间和属性。每个对象都有一个唯一的标识符,可以通过这个标识符访问和管理数据。

您可以使用 RESTful API、HTTP 和 HTTPS 查询对象元数据,以查找和访问对象。对象存储经济高效:您只需为已用的内容付费。它可以轻松扩展,因而是公共云存储的理想之选。它是一个非常适用于静态数据的存储系统,其灵活性和扁平性意味着它可以通过扩展来存储极大量的数据。对象具有足够的信息供应用快速查找数据,并且擅长存储非结构化数据。

   

阿里云存储产品大图

了解完云存储的优势后,小浩计划选用云存储来存放公司的业务数据,正好了解到阿里云官网aliyun.com免费试用的活动,小浩准备先了解了解阿里云存储系列产品。

阿里云存储产品包含了一些核心的存储服务及其密切相关服务,存储产品大图如下所示:

 

块存储(EBS)

什么是阿里云块存储(EBS)

块存储EBS(Elastic Block Storage)是为云服务器ECS提供的低时延、持久性、高可靠的块级随机存储。 块存储支持在可用区内自动复制您的数据,防止意外硬件故障导致的数据不可用,保护您的业务免于硬件故障的威胁。

阿里云块存储(EBS)能做什么
  1. 针对自建关系型/NoSQL数据库,在面对查询的次数达到几十万~百万的规模,时延要求必须控制在ms级以内时需要性能更强的块存储;
  2. 企业核心业务系统:客户自建大数据集群, 采用本地SSD机器自建HBase做推荐业务的检索,随着流量的增加,读吞吐能力达到了本地SSD盘的最大值,影响业务查询性能,面对本地SSD集群无法扩展,新增机器性价比不高情况,可替换成ESSD云盘以支持NoSql数据库在高业务压力情况下的检索性能;
  3. 基于快照的数据保护:当企业有数千ECS实例,分散在多个阿里云区域。如何保障这些ECS实例的安全,已成为当前IT建设的重点,块存储的快照服务可以解决该痛点。

 

文件存储(NAS)

什么是阿里云文件存储(NAS)

阿里云文件存储NAS (Apsara File Storage NAS) 是一个可大规模共享访问,弹性扩展的高性能云原生分布式文件系统。面向阿里云ECS实例、E-HPC、容器服务等计算节点的文件存储服务,支持智能冷热数据分层,有效降低数据存储成本。 

阿里云文件存储能做什么(NAS)
  1. 容器共享存储:容器集群将容器镜像的配置文件或初始加载数据存储在NAS共享文件存储上,在容器批量加载时实时读取。多POD间通过NAS存储创建的弹性共享PV持久化数据,在POD故障时可以进行故障切换。
  2. 虚拟云桌面:需要将个人数据放置在NAS存储上持久化,随桌面迁移并通过SMB访问。管理员可以对NAS上的数据进行统一备份和管理
  3. 高性能网站及WEB应用:将代码文件、配置文件或图片等业务数据放置在NAS存储上共享访问,大部分都为几十KB级的小文件,对系统响应速度有较高要求,可以将多台无状态服务器共享一份NAS存储的数据,统一管理和扩展存储空间,架构简单易维护

 

对象存储(OSS)

什么是阿里云对象存储(OSS)

阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供 99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。

阿里云对象存储能做什么
  1. 阿里云对象存储 OSS 打造了云原生的企业级数据湖,作为统一的存储池,不仅可对接多种数据输入方式,还可以存储任意规模的结构化、半结构化、非结构化数据,打破数据孤岛
  2. 海量存储:OSS可用于图片、音视频、日志等海量文件的存储。各种终端设备、Web网站程序、移动应用可以直接向OSS写入或读取数据
  3. 网页或移动应用的静态和动态资源分离:OSS提供原生的传输加速功能,支持上传加速、下载加速,提升使用体验。同时,OSS也可以结合CDN产品,提供静态内容存储、分发到边缘节点的解决方案,利用CDN边缘节点缓存的数据,提升同一个文件被同一地区客户大量重复并发下载的体验。

 

总结:块存储、文件存储、对象存储之间的对比

   

对比项

文件存储NAS

对象存储OSS

块存储EBS

特点

提供高吞吐和高IOPS的同时,支持文件的随机读写和在线修改

支持公网访问,一个低成本的海量共享存储空间,适合存储写入后较少修改的数据

块级存储,可随机读写,类似物理硬盘,支持分区格式化并建立文件系统

应用场景

主要应用于科学计算、容器数据持久化和企业在线生产应用的数据存储。如:AI计算、基因计算、药物计算、容器共享PV、日志数据持久化、CI/CD平台、云桌面数据文件共享等

主要应用于基于对象API开发的互联网应用程序的数据存储。如:互联网业务的音视频存储、数据湖、云相册、个人/企业网盘类应用

适用于OLTP数据库、NoSQL数据库等IO密集型的高性能、低时延业务场景

访问模式

上千个ECS或上万个容器,通过NFS、SMB、POSIX接口并发读取相同文件,随机读写

数百万客户端通过SDK、RESTful并发读相同文件,追加写

EBS是裸磁盘,挂载到ECS后不能被操作系统应用直接访问,需要格式化成文件系统(ext3、ext4、NTFS等)后才能被访问

IOPS

十万级别

千级别

万~百万级别

容量

GiB~PiB

无限制

GiB~TiB

文件级别的授权

支持

支持

不支持

数据存储方式

目录树的组织形式

扁平的文件组织形式

需拆分数据到任意划分且大小相同的卷中

协议

NFS和SMB协议

HTTP/HTTPS协议

标准虚拟块设备协议接口或NVMe协议接口

   

存储产品选型策略

基于上面的调研,小浩向公司建议使用阿里云的云存储,初步了解了阿里云的几种存储类型后,他需要基于实际业务决策使用哪种云存储产品。

 

 

业务的最佳存储解决方案由需求驱动,根据业务应用的不同特征选择合适的存储服务,涉及到多种的因素:

  • 访问类型(块存储、文件存储、对象存储)
  • 访问模式(随机、顺序)
  • 所需吞吐量
  • 访问频率
  • 更新频率(WORM、动态的)
  • 可用性、持久性要求

 

于是,小浩结合实际生产情况,问了自己几个问题:

  1. 访问数据的频率和速度是怎么样的?

业务存在热数据、冷数据;有些数据会在短期内经常访问,但后续访问较少

  1. 数据存储是否需要高IOPS和吞吐量?

目前业务吞吐量适中,未来可能存在较大业务波动

  1. 数据的持久性要求是怎么样的?

归档数据需要长期存储,但部分业务数据需要定期删除

  1. 数据的敏感性要求?

希望数据是不能丢失或损坏的,也不能受到恶意更改,同时也要兼顾安全性和成本

基于此,小浩计划尝试使用阿里云对象存储OSS和文件存储NAS,并在使用过程中熟悉不同的存储类型,以便后续进行业务场景的选型,首先他需要掌握OSS和NAS的基本概念和产品功能。

   

对象存储OSS入门

对象存储OSS基础概念与常用功能

小浩登陆阿里云对象存储OSS控制台后,面对众多配置选项,小浩想要了解对象存储的基本概念,才能进行合理的资源配置。

基础概念

1. 存储空间(Bucket):用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间,提供了标准存储、低频访问存储、归档存储、冷归档存储等存储类型。个人网盘频繁的进行文件上传、下载、分享等操作;个人网盘需要频繁的进行文件上传、下载、分享等操作,小浩对比后,选择使用“标准存储”。

存储类型    

使用场景

标准存储

提供高可靠、高可用、高性能的对象存储服务,能够支持频繁的数据访问。适用于各种社交、分享类的图片、音视频应用、大型网站、大数据分析等业务场景。

低频访问

提供高持久性、较低存储成本的对象存储服务。有最小计量单位(64 KB)和最低存储时间(30天)的要求。支持数据实时访问,访问数据时会产生数据取回费用,适用于较低访问频率(平均每月访问频率1到2次)的业务场景。

归档存储

提供高持久性、极低存储成本的对象存储服务。有最小计量单位(64 KB)和最低存储时间(60天)要求。数据需解冻(约1分钟)后访问,解冻会产生数据取回费用。适用于数据长期保存的业务场景,例如档案数据、医疗影像、科学资料、影视素材等。

冷归档存储

提供高持久性、比归档存储的存储成本更低的对象存储服务。有最小计量单位(64 KB)和最低存储时间(180天)的要求。数据需解冻后访问,解冻时间根据数据大小和选择的解冻模式决定,解冻会产生数据取回费用以及取回请求费用。适用于需要超长时间存放的冷数据,例如因合规要求需要长期留存的数据、大数据及人工智能领域长期积累的原始数据、影视行业长期留存的媒体资源、在线教育行业的归档视频等业务场景。

   2. 地域(Region):OSS的数据中心所在物理位置。阿里云地域选择可以遵循就近原则,优先选择更靠近用户群的地域节点。个人网盘使用者小浩居住在杭州,地域优先选择“华东1(杭州)” 。

 

3. 对象(Object):对象是OSS存储数据的基本单元,也被称为OSS的文件。在个人网盘场景中,Object为存放在对象存储OSS Bucket中的照片文件、文本文件、视频文件等。

 

 4. 读写权限:通过Bucket ACL权限列表与权限描述,小浩设置Bucket ACL权限为私有,Bucket的拥有者可以对该Bucket内的文件进行读写操作,其他人无法访问该Bucket内的文件。

 

权限值    

权限描述

公共读写

公共读写:任何人(包括匿名访问者)都可以对该Bucket内文件进行读写操作。

警告 互联网上任何用户都可以对该Bucket内的文件进行访问,并且向该Bucket写入数据。这有可能造成您数据的外泄以及费用激增,若被人恶意写入违法信息还可能会侵害您的合法权益。除特殊场景外,不建议您配置公共读写权限。

公共读

公共读:只有该Bucket的拥有者可以对该Bucket内的文件进行写操作,任何人(包括匿名访问者)都可以对该Bucket中的文件进行读操作。

警告 互联网上任何用户都可以对该Bucket内文件进行访问,这有可能造成您数据的外泄以及费用激增,请谨慎操作。

私有

私有:只有Bucket的拥有者可以对该Bucket内的文件进行读写操作,其他人无法访问该Bucket内的文件。

   5. 访问域名(Endpoint):OSS对外服务的访问域名,Endpoint格式为:外网Endpoint是oss-{Region}.aliyuncs.com,内网Endpoint是oss-{Region}-internal.aliyuncs.com。通过OSS内网地址访问OSS资源时,不收取流量费用。个人网盘场景中ECS实例部署的网盘软件可以调用OSS内网Endpoint。

 

6. 访问密钥(Accesskey):简称AK,指的是访问身份验证中用到的AccessKeyId和AccessKeySecret。OSS通过使用AccessKeyId和AccessKeySecret对称加密的方法来验证某个请求的发送者身份,可通过控制台创建AccessKey,AccessKey的来源有:
  • Bucket的拥有者申请的AccessKey。
  • 被Bucket的拥有者通过RAM授权给第三方请求者的AccessKey。
  • 被Bucket的拥有者通过STS授权给第三方请求者的AccessKey。

 了解Endpoint和Accesskey的概念后,在使用SDK或工具时,需要配置访问域名(Endpoint)和访问密钥(Accesskey)。

 

 

掌握上述基础概念之后,对使用OSS的流程进行了总结:

创建Bucket时,登陆OSS控制台,根据实际业务需求选择离请求源最近的地域(可参见oss开服地域)。用户在通过SDK/工具操作访问oss资源时,需配置访问域名Endpoint和用来验证请求是否合法的AccessKey进行访问,如果验证成功,才能成功操作oss资源(可参考鉴权流程)。

 

对象存储OSS常用功能总结

小浩已经熟悉对象存储的基本概念,通过对象存储OSS控制台完成了Bucket的创建。接下来小浩想要探索一下对象存储OSS的常用功能,他梳理了使用OSS的常见场景。

 

  • 创建存储空间:根据实际需求,创建不同类型的存储空间来存储不同的数据;
  • 上传文件:上传文件到OSS前,必须先在阿里云的任意一个地域创建一个存储空间。创建存储空间后,您可以上传任意文件到该存储空间。有简单上传分片上传追加上传等方式;
  • 列举文件:Object上传成功后,默认按照字母序排列。可以列举出当前Bucket的所有Object、指定前缀的Object、指定个数的Object等;
  • 搜索文件:Object上传成功之后,可以通过搜索文件或者文件夹的方式进行搜索,快速查找目标文件;
  • 分享文件:文件上传至存储空间后,您可以将文件URL分享给第三方,供其下载或预览;
  • 下载文件:当文件(Object)上传至存储空间(Bucket)后,您可以将文件下载至浏览器默认路径或本地指定路径;
  • 删除文件:可以一次删除单个或者多个文件、碎片等。您可以定期删除过期文件,节省您的存储空间。

 

对象存储OSS资源访问方式及流程

小浩思考,如果还有其他同事想要一起参与文件上传和管理的工作,除了控制台之外,是否还有其他访问方式呢?

阿里云对象存储OSS提供了多种访问及操作OSS资源的方式:阿里云控制台、OSS提供的工具、OSS提供的SDK。如下所示:

 

控制台

控制台是什么

  • 通过可视化界面管理阿里云全部产品,包括存储产品,提供资源访问、账户信息、费用明细等功能

控制台什么时候用

  • 刚接触阿里云时,可通过控制台可视化界面进行操作体验
  • 一些运营运维操作如账单、监控等可通过控制台查看
  • 与官方提供的工具、SDK等搭配使用

更多详情信息可参考通过控制台访问OSS

 工具

阿里云对象存储提供了多种数据管理工具,如ossutil、ossbrowser、ossfs、ossimport等。

  • ossutil:主要是通过命令行的方式管理OSS数据,需对linux有基础的了解

  • ossbrowser:是OSS图形化管理工具,通过可视化操作,类似Windows资源管理器的功能

  • ossfs:可以将对象存储OSS的存储空间(Bucket)挂载到本地文件系统中,像操作本地文件一样操作OSS的对象(Object),实现数据的共享

  • ossimport:数据迁移工具,可以将本地或其它云存储的数据迁移到OSS

   更多详情信息可参考常用工具

SDK

阿里云对象存储提供了多种语言的SDK如Java、PHP、Python、Go等可以帮助您基于SDK快速业务的二次开发。

更多SDK信息请参考SDK

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
posted @   aiplus  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
悬浮按钮示例
点击右上角即可分享
微信分享提示