1 存储分类
-
单机存储
- SCSI/IDE/SATA//SAS/USB/PCI-E/SSD/M.2 NVME 协议(提升性能)
-
网络存储(带文件系统)
-
NFS
-
Samba
-
NAS (Network Attached Storage:网络附属存储)
-
SAN:SAN(Storage Area Network,存储区域网络)
-
存储选择
-
单机
- 单机存储的磁盘空间问题、IO 问题、扩容问题、高可用问题
-
商业
- 商业解决方案-EMC、NetAPP、戴尔、华为、浪潮
分布式存储
软件定义的存储 Software Defined Storage SDS
https://www.vmware.com/cn/products/software-defined-storage.html
分布式存储:Ceph,TFS,FastDFS,MogileFS,MooseFS,GlusterFS
对比说明/文件系统 | TFS | FastDFS | MogileFS | MooseFS | ClusterFS | Cepf |
---|---|---|---|---|---|---|
开发语言 | C++ | C | Perl | C | C | C++ |
开源协议 | GPL v2 | GPL v3 | GPL | GPL v3 | GPL v3 | LGPL |
数据存储方式 | 块 | 文件/Trunk | 文件 | 块 | 文件/块 | 对象/文件/块 |
集群节点 通信协议 | 私有协议 (TCP) | 私有协议 (TCP) | HTTP | 私有协议 (TCP) | 私有协议(TCP) / RDAM(远程直接访问内存) | 私有协议 (TCP) |
专用元数 据存储点 | 占用NS | 无 | 占用DB | 占用MFS | 无 | 占用MDS |
在线扩容 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
冗余备份 | 支持 | - | 支持 | 支持 | 支持 | 支持 |
有状态集群数据读写特性
数据分为读数据和写数据,读可以在任何一个节点读,但是写只能写在特定的节点,如 Redis 的 master、zookeeper 的 leader、MySQL 的 master 等场景
2 分布式存储数据特性
数据分为数据和元数据
元数据即是文件的属性信息(文件名、权限(属主、属组)、大小、时间戳等),在分布式存储中当客户端或者应用程序产生的客户端数据被写入到分布式存储系统的时候,会有一个服务(Name Node)提供文件元数据的路由功能,即告诉应用程序去哪个服务器去请求文件内容,然后再有(Data Node)提供数据的读写请求及数据的高可用功能
-
块存储:需要格式化,将文件直接保存到磁盘上。
https://www.redhat.com/zh/topics/data-storage/file-block-object-storage
-
文件存储:提供数据存储的接口,是由操作系统针对块存储的应用,即由操作系统提供存储 接口,应用程序通过调用操作系统将文件保存到块存储进行持久化。
-
对象存储:也称为基于对象的存储,其中的文件被拆分成多个部分并散布在多个存储服务器, 在对象存储中,数据会被分解为称为“对象”的离散单元,并保存在单个存储库中,而不是 作为文件夹中的文件或服务器上的块来保存,对象存储需要一个简单的 HTTP 应用编程接 口 (API),以供大多数客户端(各种语言)使用。
https://www.aliyun.com/product/oss