网站首页 > 技术文章 正文
点击链接阅读原文,获取更多技术内容:
https://developer.aliyun.com/article/1272997?utm_content=g_1000376104
本文主要介绍常用的存储类型及它们之间的对比差异,辅助帮助大家在不同需求和场景下选择合适的存储类型。
作者 | 明昫
来源 | 阿里开发者公众号
近期,AIGC、GPT大模型、数据中台等热点话题备受关注,那么具体在不同的行业场景下,如何选择对应的存储介质呢?选型的时候该考虑哪些因素呢?
通过本文主要介绍常用的存储类型及它们之间的对比差异,辅助帮助大家在不同需求和场景下选择合适的存储类型。
存储类型简介
存储的物理层实际无非就是磁盘(disk),即磁记录技术存储数据的存储器。磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(Floppy Disk,简称软盘),如今常用的磁盘是硬磁盘(Hard disk,简称硬盘)。
磁盘知识简介
存储磁盘常见的三大指标:吞吐量、IOPS、时延。三个指标之间存在着关系,具体呈现为如下公式:每秒吞吐 = I/Osize * IOPS * 并行度(IOPS-延时)。
1.吞吐量是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。
2.IOPS是(Input/Output Operations Per Second)是一个用于计算机存储设备(如机械硬盘HDD、固态硬盘SSD、混合硬盘HHD或存储区域网络SAN等)性能测试的量测方式,可以视为是每秒的读写次数。
3.时延是发起读取数据请求到读取到数据之间的时间间隔。
阿里云存储产品底层原理
阿里云存储是在物理层的磁盘资源上利用虚拟化技术将物理存储资源池化,架构分布式资源调度系统——盘古系统,可以为用户、客户提供类似于水电煤资源使用按量付费、按需取用的使用体验。
存储类型区别
存储方式区别
文件、块和对象是三种以不同的方式来保存、整理和呈现数据的存储格式。
1.文件存储NAS会以文件和文件夹的层次结构来整理和呈现数据;
2.块存储EBS会将数据拆分到任意划分且大小相同的卷中;
3.对象存储OSS会管理数据并将其链接至关联的元数据。
接口协议区别
三种存储产品的接口协议也不一样。
1.文件存储NAS文件系统构造的协议为NFS、SMB协议,支持POSIX接口访问;
2.块存储EBS协议为阿里云自研协议,封装接口为iSCSI;
3.对象存储OSS协议为HTTP/HTTPS协议(Restful API),通过URL域名地址定位文件,支持AWS的S3接口。
应用场景区别
由于三款产品存储数据存储结构的不同,适用于不同的应用场景。
文件存储NAS
NAS文件系统存储架构是目录树状结构,可以支持上千台虚拟机通过POSIX接口同时、高并发访问,支持随机读写、在线修改、直读直写。
块存储EBS
1、EBS的优势是性能高、时延低,适合于OLTP数据库、NoSQL数据库等IO密集型的高性能、低时延应用工作负载,支持随机读写。
2、EBS是裸磁盘,挂载到ECS后不能被操作系统应用直接访问,需要格式化成文件系统(ext3、ext4、NTFS等)后才能被访问。
3、EBS无法实现容量弹性扩展,单盘最大容量为32TB,并且对共享访问的支持有限,需要配合类Oracle RAC、WSFC Windows故障转移集群等集群管理软件才能进行共享访问。因此,块存储EBS主要还是针对单ECS的高性能,低时延的存储产品。
对象存储OSS
OSS存储架构为S3(Simple Storage Service 简单存储服务)扁平化文件组织形式,不支持文件随机读写,主要适用于互联网架构的海量数据的上传下载和分发。
对象存储在存储段bucket中,对象就像是文件,存储段就像是文件夹或目录,对象和存储段通过统一资源标识符(Uniform Resource Identifier,URI)进行查找,虽然在控制台界面是好像是有树状结构,但实际显示的文件夹/.resource只是前缀。
存储产品 | 时延 | 吞吐 | 协议 | 访问模式(虚机访问存储数据的接口) | 应用场景 |
文件存储NAS | 毫秒级 | 数百Gbps | NFS、SMB | 上千个ECS通过POSIX接口并发访问,随机读写 | 高并发访问、在线修改、直读直写的场景 |
对象存储OSS | 几十毫秒级 | 数百Gbps | HTTP、HTTPS(Restful API) | 数百万客户端通过Web并发,追加写 | 互联网架构的海量数据的上传下载和分发 |
块存储EBS | 微秒级 | 数十Gbps | 自研协议 | 单ECS通过POSIX接口访问,随机读写 | 适合IO密集型的数据库/单ECS高性能、低时延应用工作负载 |
协议、接口详细区别
什么是接口?什么是协议?
协议:协议定义了在两个或多个通信实体之间进行交换的报文格式和次序,以及报文发送和/或接收一条报文或其他事件所采取的行动。
接口:在程序设计的情况下,接口往往与模块挂钩。模块是从物理上对程序实体的定义进行分组,是可以分别编写和编译的程序单位。一个模块包括接口和实现两部分。模块的接口规定了在模块中定义的、可以被其他模块使用的一些程序实体;模块的实现是指在模块中定义的程序实体的具体实现。接口起到了模块设计者和使用者之间的一种约束作用:使用者按照模块的接口来使用模块所提供的功能;模块的实现者根据规定的模块接口进行实现。
剩余60%,完整内容请点击下方链接查看:
https://developer.aliyun.com/article/1272997?utm_content=g_1000376104
猜你喜欢
- 2025-05-21 NFS服务基础原理及在linux环境的配置
- 2025-05-21 NFS-Ganesha内核窥探
- 2025-05-21 【系统配置】信创终端高效挂载NFS共享的实用指南
- 2025-05-21 无创评分系统评估NAFLD患者死亡和肝脏相关终点风险的准确性
- 2025-05-21 教你如何在 CentOS 7 系统上搭建NFS服务
- 2025-05-21 Linux面试题:Rsync(全网备份)和NFS(文件系统)
- 2025-05-21 索尔维在意大利的部分PTFE和全氟聚合物产线将停产,含氟表活加速淘汰
- 2025-05-21 群晖NAS(五)NFS共享文件夹各场景挂载方式
- 2025-05-21 如何实现NFS挂载远端到本地及其原理与应用场景?
- 2025-05-21 从Macintosh到macOS:苹果40年老文件共享协议AFP即将谢幕
- 最近发表
- 标签列表
-
- axure 注册码 (25)
- exploit db (21)
- mutex_lock (30)
- oracleclient (27)
- think in java (14)
- javascript权威指南 (19)
- nfs (25)
- componentart (17)
- yii框架 (14)
- springbatch (28)
- oracle数据库备份 (25)
- iptables (21)
- 自动化单元测试 (18)
- python编写软件 (14)
- dir (26)
- connectionstring属性尚未初始化 (23)
- output (32)
- panel滚动条 (28)
- centos 5 4 (23)
- sql学习 (33)
- http error 503 (21)
- pop3服务器 (18)
- 图表组件 (17)
- android退出应用 (21)
- 图片透明度 (20)