前言

在网站开发中,会碰到多媒体数据存储的业务场景,阿里云上提供多种存储产品,有不同的存储产品,那自然应对的业务场景也会不同。接下来本文将会详细介绍每项存储服务之间的区别,以及我们究竟该选择哪种存储服务。

阿里云存储服务

适合多媒体存储的存储服务主要有以下几种:

1. 对象存储OSS
    
2. 块存储
    
3. 文件存储NAS

该选择哪款存储产品

阿里云官网对于三款产品的简介:

对象存储 OSS:海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%的数据可靠性。使用RESTful API 可以在互联网任何位置存储和访问,容量和处理能力弹性扩展,多种存储类型供选择全面优化存储成本。

块存储:块存储是为云服务器ECS提供的低时延、持久性、高可靠的数据块级随机存储。块存储支持在可用区内自动复制您的数据,防止意外硬件故障导致的数据不可用,保护您的业务免于组件故障的威胁。就像对待硬盘一样,您可以对挂载到ECS实例上的块存储做分区、创建文件系统等操作,并对数据持久化存储。 

文件存储NAS:阿里云文件存储NAS是一个可共享访问,弹性扩展,高可靠,高性能的分布式文件系统。兼容POSIX 文件接口,可支持数千台计算节点共享访问,可以挂载到弹性计算ECS、神龙裸金属、容器服务ACK、弹性容器ECI、批量计算BCS、高性能计算EHPC,AI训练PAI等计算业务上提供高性能的共享存储,用户无需修改应用程序,即可无缝迁移业务系统上云。

以上为阿里云官网提供的每款产品的简介,但是并不容易理解,接下来将结合业务场景来详细描述三者的区别:

一、块存储

阿里云为云服务器ECS提供了丰富的块存储产品类型,包括基于分布式存储架构的弹性块存储产品,以及基于物理机本地硬盘的本地存储产品。其中:

    1.弹性块存储,是阿里云为云服务器ECS提供的数据块级别的随机存储,具有低时延、持久性、高可靠等性能,采用 三副本的分布式机制,为ECS实例提供99.9999999%的数据可靠性保证。可以随时创建或释放,也可以随时扩容。

    2.本地存储,也称为本地盘,是指挂载在ECS云服务器所在物理机(宿主机)上的本地硬盘,是一种临时块存储。是专为对存储I/O性能有极高要求的业务场景而设计的存储产品。该类存储为实例提供块级别的数据访问能力,具有低时延、高随机IOPS、高吞吐量的I/O能力。

打个比方:块存储就相当于一块适用于ESC服务器的云盘,当你的服务器磁盘满了时就可以搭配与ESC服务器同地域下的块存储使用,适合持久化、结构化的数据存储,可以随时创建或释放,也可以随时扩容。而本地盘呢则是使用在ESC物理机上的产品,你可以在块存储产品上存储多媒体数据,但是由于多媒体文件数据一般较大,使用块存储服务存储多媒体数据是比较浪费的,并不推荐使用。

二、文件存储NAS

阿里云文件存储(Network Attached Storage,简称 NAS)是面向阿里云 ECS 实例、HPC 和 Docker 等计算节点的文件存储服务,提供标准的文件访问协议,您无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。

文件存储NAS是比较适合存储一些非结构数据,比如图片、视频、音频等。和块存储产品相同的是文件存储NAS产品也是挂载到ESC服务器上使用的,Windows和Linux系统都提供支持。但与块存储不同的是,它可以同时挂载在多台服务器上使用,比较适用一些大型办公场景,多个计算节点可以同时访问一个NAS文件系统实例。因此,NAS 非常适合跨多个ECS、E- HPC或容器服务实例部署的应用程序访问相同数据来源的应用场景。

并且文件存储NAS支持标准的文件访问协议(NFSv3/NFSv4/SMB),并使用标准的文件系统语义访问数据。因此,主流的应用程序或工作负载无需任何修改,即可与NAS无缝配合使用。阿里云在块存储产品下推出了一款新产品,共享块存储,也可同时多台服务器挂载共享数据,但却不支持NFS/SMB协议,如果需要则要自己搭建协议框架。

三、对象存储OSS

阿里云对象存储服务(Object Storage Service,简称OSS)是阿里云提供的海量、安全、低成本、高可靠的云存储服务。

OSS可以被理解成一个即开即用,无限大空间的存储集群。相比传统自建服务器存储,OSS在可靠性、安全性、成本和数据处理能力方面都有着突出的优势。使用OSS,可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种非结构化数据文件。

OSS将数据文件以对象/文件(Object)的形式上传到存储空间(Bucket)中。OSS 提供的是一个Key-Value键值对形式的对象存储服务。用户可以根据Object的名称(Key)唯一地获取该Object的内容。

通过调用 API,在任何应用、任何时间、任何地点上传和下载数据。对象存储OSS 适合存放任意类型的文件,适合各种网站、开发企业及开发者使用。并且对象存储OSS提供了标准的RESTful API接口(部分接口与Amazon S3 API兼容)、丰富的 SDK包、客户端工具、控制台。可以像使用文件一样方便地上传、下载、检索、管理用于Web网站或者移动应用的海量数据。 

简单来说,对象存储就是将数据文件以键值对的形式存储在非服务器的存储集群中,使用时只需提供对象地址即可获取所需资源。

为什么选择对象存储OSS

上面介绍了阿里云比较适合存储多媒体文件的三款存储产品,那为何要选择对象存储OSS呢,简单来说块存储和文件存储NAS比较适合开发期间开发人员间或是部门间的文件分享、传输,所占用的都归属服务器内存;而对象存储OSS更适合存储在生产环境中需要向用户展示的多媒体文件,比较适用于网站动静分离的开发,且不需要占用服务器内存。

最重要的一点,在开发中如果需要用到大量的图片、音频、视频文件的话,一般企业都会开发对应的内容管理系统,即CMS(Content Management System),来管理这些媒体文件,而阿里云对象存储OSS提供了对于上传文件后期处理的功能,比如说图片编辑加水印等功能,这些功能一定程度上的替代了CMS的作用,使文件管理处于线上,能够随时随地的上传、下载、编辑文件,不再需要传统的定点上传更新文件,为文件管理提供了极大的便利。