Python微信订餐小程序课程视频
https://blog.csdn.net/m0_56069948/article/details/122285951
Python实战量化交易理财系统
https://blog.csdn.net/m0_56069948/article/details/122285941
Amazon Simple Storage Service,简称 S3 服务,是 AWS 2006 年推出的第一个服务,用于提供对象存储服务。其在可拓展性,数据可用性,安全性和性能都有着非常不错的体验,而且宣称可以存储无限
的数据。
块存储,对象存储,文件存储
在介绍 S3 前,我们还是先来看下什么是对象存储服务,以及和文件存储,块存储有什么区别。
块存储:
块存储直接提供最原始的磁盘空间给主机使用,主机在使用前需要对申请到的磁盘空间,进行逻辑划分,比如 LVM 操作,划分出 N 个逻辑硬盘,然后再利用系统对其进行格式化,生成文件系统,比如像 ext4,ntfs 等等。
优点:
- 写入数据时,由于主机挂载的逻辑硬盘实际上分布在很多的物理机上,可以实现并行写入,提高读写效率。
- 可以将多块廉价的硬盘组装成一个打的逻辑硬盘,提供容量和速度。
缺点:
- 主机无法直接访问块存储的内容,需要购买光纤交换机
- 主机无法共享数据,由于其文件系统都在主机上,不同的主机可能有不同的文件系统,所以文件分享可能有存在问题。
文件存储:
理解了块存储,文件存储就很好理解了,可以将其认为是在块存储上加上了一层文件系统,而不同主机可以直接共享这个文件系统。比如常见的 SMB,FTP,NFS 文件服务器。文件存储一般都拥有目录,子目录等树状的文件结构,我们通过路径来查找文件。比如我们之间可以使用自己的笔记本,搭建一个 FTP 的服务器用于共享文件。
优点:
- 使用方便,不同主机间容易共享数据
- 便宜,访问文件存储,正常的 Internet 就可以了,不需要购买额外的光纤交换机
缺点:
- 传输速度慢,因为走以太网。
对象存储服务:
对象存储常见于各大云存储业务的提供商,比如 AWS 的 S3, 百度网盘,阿里云盘等。
对象存储整合了块存储,传输速度快。文件存储,易于共享的两大好处。
对象存储不同于块存储和文件存储,是二层一种扁平化的文件结构。当把一个文件存入时,会写入三部分的信息:
- key:唯一标识该文件的名称
- raw data:文件内容本身
- metadata:用于描述文件的一些必要信息,比如存在那几个服务上,创建时间,索引类型等等任意大小的数据。
在具体存储时,对象存储不同文件存储,将 metadata 单独写入控制节点的数据服务器,其余的服务器存储真正的文件本身。
比如我们有四台数据服务器 A,B,C,D,A 为控制节点存储 metadata ,BCD 为数据节点(称为 OSD). 这时我们写入一个文件 test.log 文件。
则该文件会被打散存入 B,C,D。而 metadata 包含该文件存储在 B,C,D 等路径信息会存放在 A 服务器上。
这样在读取时,就可以实现并发读取的效果,实现了块存储的功能。
由于对象存储会有专门的对象存储软件管理,其本身又有文件系统,自然文件也非常容易共享了。
下图参照 b 站上一个非常好的对比架构图,链接在参照中: