干货!云存储系统架构如何设计?

网友投稿 992 2022-05-25

正文1900字,预计阅读5分钟。

一、云存储系统的优势

云存储系统底层存储基于对象存储存储资源

云存储资源访问完全兼容原有老图库访问规则

图片访问资源转换规则服务,基于动态弹性扩缩容相关部署,避免大流量访问带来的服务器压力

云存储访问资源CDN资源子域名共享CDN缓存

干货!云存储系统架构如何设计?

二、云存储系统相关功能

三、云存储适用的场景

1.块存储

传统的文件系统,是直接访问存储数据的硬件介质的。介质不关心也无法去关心这些数据的组织方式以及结构,因此用的是最简单粗暴的组织方式:所有数据按照固定的大小分块,每一块赋予一个用于寻址的编号。

以大家比较熟悉的机械硬盘为例,一块就是一个扇区,老式硬盘是512字节大小,新硬盘是4K字节大小。老式硬盘用柱面-磁头-扇区号(CHS,Cylinder-Head-Sector)组成的编号进行寻址,现代硬盘用一个逻辑块编号寻址(LBA,Logical Block Addressing)。所以,硬盘往往又叫块设备(Block Device),当然,除了硬盘还有其它块设备,例如不同规格的软盘,各种规格的光盘,磁带等。

为了方便管理,硬盘这样的块设备通常可以划分为多个逻辑块设备,也就是我们熟悉的硬盘分区(Partition)。反过来,单个介质的容量、性能有限,可以通过某些技术手段把多个物理块设备组合成一个逻辑块设备,例如各种级别的RAID,JBOD,某些操作系统的卷管理系统(Volume Manager)如Windows的动态磁盘。

在网络存储中,服务器把本地的一个逻辑块设备——底层可能是一个物理块设备的一部分,也可能是多个物理块设备的组合,又或者多个物理块设备的组合中的一部分,甚至是一个本地文件系统上的一个文件——通过某种协议模拟成一个块设备,远程的客户端(可以是一台物理主机,也可以是虚拟机,某个回答所说的块设备是给虚拟机用是错误的)使用相同的协议把这个逻辑块设备作为一个本地存储介质来使用,划分分区,格式化自己的文件系统等等。这就是块存储,比较常见的块存储协议是iSCSI,SCSI,FC。

块存储读写速度最快,但查询速度最慢。(磁带机就是一种块存储设备)数据管理难度最高。

块存储是底层存储,直接写入或读取硬盘扇区(块)。多用于硬件设备和文件系统直接管理存储。优点是写入读取速度快(直接),缺点是管理查询难,需要依附于上层文件系统(如:磁盘分区表)。

适用场景:数据中心块设备集群、磁带机存储阵列、硬盘内部工作....块存储设备适合大批量冷数据快速写入及管理。

如:数据库系统

2.文件存储

把存储介质上的数据组织成目录-子目录-文件这种形式的数据结构,用于从这个结构中寻找、添加、修改、删除文件的程序,以及用于维护这个结构的程序,组成的系统有一个专用的名字:文件系统(File System)。

文件系统有很多,常见的有Windows的FAT/FAT32/NTFS,Linux的EXT2/EXT3/EXT4/XFS/BtrFS等。而在网络存储中,底层数据并非存储在本地的存储介质,而是另外一台服务器上,不同的客户端都可以用类似文件系统的方式访问这台服务器上的文件,这样的系统叫网络文件系统。

文件存储读写速度最慢,查询速度适中,但人可以直接使用,容易管理(直观树状结构)安全性较差,价格便宜。

文件存储就是我们常看到的文件树状结构,方便用户直接访问。

优点是直观,缺点是计算机查询文件效率低,安全性差。是面向用户的计算机系统里最常见的文件存储方式。

使用场景:你的计算机、手机、移动硬盘、U盘、NAS、NFS存储系统、FTP

开源的文件系统:FastDFS,TFS

3.对象存储

对象存储其实介于块存储和文件存储之间。文件存储的树状结构以及路径访问方式虽然方便人类理解、记忆和访问,但计算机需要把路径进行分解,然后逐级向下查找,最后才能查找到需要的文件。

对象存储读写速度和块存储相当,查询速度最快,扩容简单,程序容易管理,安全性较高。

对象存储可以理解为把文件分解成一个个对象进行存储,简单说就是存储文件会附加一段元数据,查询时寻找元数据然后定位到文件即可。对象存储相当于在块存储的分块上加一个描述标签,增强了文件的可查询性便于管理。

对象存储可以说结合了文件存储和块存储的优点,是存储的发展方向。是面向程序和系统的最优文件存储方式。

对象存储就可以非常简单的扩展到超大规模,因此非常适合数据量大、增速速度又很快的视频、图像等。

适用场景:各大公有云存储系统及网盘(OSS、S3、COS、七牛云对象存储),专业的存储系统,对存储量要求较高的大型存储系统,对高可用要求较高的存储系统,专业的企业网盘

目前开源的对象存储系统:MinIO、SeaWeedfs、GlusterFS、Ceph

数据库

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

上一篇:Java 集成开发环境——Eclipse JEE的安装和配置Tomcat
下一篇:实战篇:断点续传?文件秒传?手撸大文件上传
相关文章