阿里云的云存储产品主要有三类:块存储、文件存储、对象存储
对比项 | 文件存储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协议接口 |
对象(object)
OSS存储数据的基本单元,也被称为OSS的文件。可以是存放在对象存储OSS Bucket中的照片文件、文本文件、视频文件等。
存储空间(Bucket)
存储空间是用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间,提供了标准存储(频繁访问)、低频访问存储(每月1~2次)、归档存储(长期保存)、冷归档存储(超长时间存放)等存储类型。
地域(Region)
地域是指 OSS的数据中心所在物理位置。阿里云地域选择可以遵循就近原则,优先选择更靠近用户群的地域节点。
读写权限
通过Bucket ACL权限列表,可以设置Bucket ACL权限为私有、公共读或者公共读写。
访问域名(Endpoint)
OSS对外服务的访问域名,Endpoint格式为:外网Endpoint是oss-{Region}.aliyuncs.com,内网Endpoint是oss-{Region}-internal.aliyuncs.com。通过OSS内网地址访问OSS资源时,不收取流量费用。
访问密钥(Accesskey)
简称AK,指的是访问身份验证中用到的AccessKeyId和AccessKeySecret。OSS通过使用AccessKeyId和AccessKeySecret对称加密的方法来验证某个请求的发送者身份,可通过控制台创建AccessKey。
AccessKey的来源有:
开通OSS之后,可以通过OSS控制台使用其功能:
阿里云对象存储OSS提供了多种访问及操作OSS资源的方式:阿里云控制台、OSS提供的工具、OSS提供的SDK等
工具简介
注意:在使用SDK或工具时,需要配置访问域名(Endpoint)和访问密钥(Accesskey)
地域
数据中心所在的物理位置,创建文件系统时指定,创建成功后不能更换地域,可以对同地域、跨地域或线下IDC的计算节点进行挂载访问。
可用区
在同一地域内,电力和网络互相独立的物理区域。在创建文件系统时指定。
专有网络VPC
一种虚拟私有网络,VPC之间相互隔离,可以使用云企业网连通,拥有一个网络环境是计算节点访问NAS文件系统所需的前提条件。
文件系统
存储文件的地方,通过计算节点挂载访问。以传统的目录树形式管理文件的数据和元数据。支持数百个计算节点同时访问。
挂载点
NAS文件系统在网络环境中的连接点,以域名形式出现,用以实现数据的传输。
挂载
将计算节点与NAS文件系统相连接的操作。完成挂载后,计算节点可以访问NAS文件系统中的数据。
产品规格
NAS提供了通用型、极速型、文件存储CPFS等存储类型,可以根据自身业务负载和使用场景选择合适的存储类型。
通用型NAS支持数据生命周期管理,开启生命周期管理后,可以根据其配置策略(如距最近访问14天以上)超过14天未访问的数据会自动实现以文件粒度的冷数据沉降到低频介质,以降低存储成本。
权限组
用于配置通过不同挂载点访问文件系统的权限信息,包括授权IP地址、读写操作权限等。
NFS协议
计算节点挂载访问NAS文件系统时所使用的一种软件协议,Linux计算实例推荐选择NFS协议
SMB协议
计算节点挂载访问NAS文件系统时所使用的一种软件协议,Windows计算实例推荐选择SMB协议
POSIX接口
Linux操作系统用来访问文件的一套标准接口,可在应用程序中使用编程语言调用,实现对文件的各种操作
以下是使用NAS的初始化流程步骤:
OSS有以下四种类型的访问权限控制
类型 | 说明 |
---|---|
RAM Policy | RAM Policy是基于用户的授权策略。通过设置RAM Policy,可以集中管理用户(比如员工、系统或应用程序),以及控制用户可以访问名下哪些资源的权限,比如限制您的用户只拥有对某一个Bucket的读权限。 |
Bucket ACL | Bucket ACL是基于整个Bucket的授权策略,该操作只有Bucket的拥有者可以执行。Bucket ACL分为public-read-write(公共读写)、public-read(公共读)和private(私有)三种。 |
Bucket Policy | Bucket Policy是基于Bucket中的资源的授权策略。Bucket Policy可以在控制台直接进行图形化配置,支持对整个Bucket或者某个目录进行授权,支持向其他账号的RAM用户授予访问权限,以及向匿名用户带特定IP条件以及访问方式限制的访问权限。 |
Object ACL | Object ACL是基于Object的授权策略。Object ACL可以继承Bucket ACL,也可以单独设置public-read-write(公共读写)、public-read(公共读)和private(私有)。 |
操作步骤:
RAM Policy
登录RAM管理控制台。
左侧导航栏,选择身份管理>用户>创建用户。填写登录名称、访问方式,勾选控制台访问,点击确定,完成子账号创建。
在左侧导航栏,选择身份管理>用户,选择上一步创建的用户,单击添加权限。
授权范围选择整个云账号。
授权主体,选择选择上一步创建的用户。
选择权限,单击系统策略,选择合适的权限。
点击确定,完成子账号授权。
Bucket ACL 和 Bucket Policy
Object ACL
数据加密
对上传到OSS中的文件进行加密是一种很好的保证数据安全的方式。OSS支持客户端加密和服务器端加密,客户端加密是指将文件(Object)发送到对象存储OSS之前在本地进行加密,如果维护不当导致主密钥用错或丢失,会导致加密数据无法解密。因此不推荐客户端加密方式。
服务器端加密是指在存储空间(Bucket)上传文件(Object)时,OSS会对收到的文件进行加密,再将得到的加密文件持久化保存。当用户通过GetObject请求下载文件时,OSS自动将加密文件解密后返回给用户,并在响应头中返回x-oss-server-side-encryption,用于声明该文件进行了服务器端加密。
服务器端加密支持KMS托管密钥和OSS完全托管密钥两种方式,本次介绍后者的使用步骤。
操作步骤:
注意:在新创建Bucket时也可以进行加密配置。
跨域设置
跨域访问是浏览器出于安全考虑而设置的一个限制,即同源策略,如果缺少了同源策略,浏览器很容易受到XSS、CSRF等攻击。同源基于”协议+域名+端口”三者相同,即便两个不同的域名指向同一个ip地址,也非同源。
操作步骤:
防盗链
防止其它网站盗用企业门户网站静态资源。
操作步骤:
登录OSS管理控制台。
单击Bucket列表,然后单击目标Bucket名称。在左侧导航栏,选择数据安全 > 防盗链。
在防盗链页面,打开防盗链开关。按照如下设置后,单击保存。
在Referer输入框中,填写门户网站的域名或IP地址
在空Referer区域,设置为允许
在截断QueryString区域,设置为允许
版本控制
OSS提供的版本控制是针对存储空间(Bucket)级别的数据保护功能。开启版本控制后,针对数据的覆盖和删除操作将会以历史版本的形式保存下来。在错误覆盖或者删除对象(Object)后,能够将Bucket中存储的Object恢复至任意时刻的历史版本。
操作步骤:
如何恢复历史版本?
NAS回收站
文件存储NAS中,也有类似功能可以实现对误删除文件的数据保护:NAS回收站
操作步骤:
动态网站和静态网站
动态网站和静态网站的区别不是网页上是否具有动画,动态网站的含义是网站内容的动态化。
动态网站的过程是:客户端浏览器通过HTTP请求服务器端的网站,网站服务器将请求转给动态网站服务器组件。动态网站服务器运行服务器网站程序,与数据库服务器交互查询或存储数据库中的网站内容,然后产生静态的网站内容,发送回浏览器进行呈现可以看到。
静态网站是指所有的网页都由静态内容构成,面对客户端的请求,直接返回静态内容,只需要通过浏览器进行解析即可。
如果网站内容大部分都是高频访问的静态资源,比如企业的门户网站,那么可以通过OSS Bucket完成门户模块的静态网站托管,服务器只需要编译运行动态文件,动静分离可以大大降低网站服务器的负载,提高网站的访问速度。
子目录首页
查看目标Bucket时,可以看到之前上传的文件和创建的文件夹,文件夹即为子目录,以Bucket文件结构如下为示例:
1 | Bucket |
Bucket 的首页默认是根目录下的index.html
,直接访问OSS域名的根目录将会返回根目录下的index.html
文件。如果未开通子目录首页,那么访问OSS域名下的news/
子目录,默认也会返回根目录下的index.html
文件,而不是news/
子目录下的index.html
文件,这显然不符合静态网站的访问逻辑。需要开启子目录首页功能,使得访问OSS的news/
子目录时,返回news/
子目录下的index.html
文件。
操作步骤:
登录OSS管理控制台。
单击Bucket列表,然后单击目标Bucket名称。在左侧导航栏,选择数据管理 > 静态页面。
在静态页面,单击设置,按如下说明配置各项参数后,单击保存。
默认首页:默认首页是通过浏览器访问静态网站域名时,OSS返回的网站首页。此处设置为index.html
。
子目录首页:选择开通。开通子目录首页后,访问静态网站根域名时,返回根目录默认首页。访问根域名下以正斜线(/)结尾的URL时会返回对应目录的默认首页。
文件404规则:开通子目录首页后,通过文件404规则决定访问不存在的Object时的返回结果。
默认404页:访问Bucket内文件出现404错误时,OSS返回的错误页面。默认404页仅支持根目录下的文件。此处设置为error.html。
错误文档响应码:您可以配置返回错误文档时的HTTP响应码为404或200。