块存储
如磁盘阵列、硬盘
主要是将裸磁盘的空间映射给主机使用,提供数据保护,提高容量,提升读写效率,但主机之间无法共享数据
使用场景:
虚拟机磁盘存储分配、日志存储、文件存储
文件系统存储
如FTP、NFS服务器
解决了块存储文件无法 共享的问题
造价低、方便文件共享,但读写速度低,传输效率慢
适用场景:
日志存储、有目录结构的文件存储
对象存储
结合块存储和文件系统存储的优点,具备块存储的读写高速,也具备文件存储的共享特性,提供了具有高性能,高可靠性,跨平台以及安全的数据共享的存储体系结构
使用场景:(适合更新变动较少的数据)
图片存储,视频存储
区别
这三种存储,分别对应了不同的访问协议,这也就决定了他们的本质差别。
先说一下文件存储,主要操作对象是文件和文件夹。 以 NFS 为例,文件相关的接口包括:LOOKUP/ACCESS/READ/WRITE/CREATE/REMOVE/RENAME 等等,文件夹相关的接口包括:MKDIR/RMDIR/READDIR 等等。同时也会有 FSSTAT/FSINFO 等接口用于提供文件系统级别的信息。POSIX,SAMBA 等也是文件存储协议。协议更注重接口的灵活,以及访问权限控制。
块存储,主要操作对象是磁盘。以 SCSI 为例,主要接口有 Read/Write/Read Capacity/Inquiry 等等。FC,iSCSI,也是块存储协议。和文件存储相比,没有文件和目录树的概念,一般协议也不会定义磁盘的创建和删除操作。协议更注重传输控制。
对象存储,主要操作对象是对象(Object)。以 S3 为例,主要接口有 PUT/GET/DELETE 等。和文件和对象存储相比,没有随机读写的接口。和文件存储相比,没有目录树的概念。协议更注重简洁。