典型设备:磁盘阵列,硬盘数据库
块存储主要是将裸磁盘空间整个映射给主机使用的,例如磁盘阵列里面有5块硬盘(为方便说明,假设每一个硬盘1G),而后能够经过划逻辑盘、作Raid、或者LVM(逻辑卷)等种种方式逻辑划分出N个逻辑的硬盘。假设划分完的逻辑盘也是5个,每一个也是1G,可是这5个1G的逻辑盘已经与原来的5个物理硬盘意义彻底不一样了。例如第一个逻辑硬盘A里面,可能第一个200M是来自物理硬盘1,第二个200M是来自物理硬盘2,因此逻辑硬盘A是由多个物理硬盘逻辑虚构出来的硬盘。 接着块存储会采用映射的方式将这几个逻辑盘映射给主机,主机上面的操做系统会识别到有5块硬盘,可是操做系统是区分不出究竟是逻辑仍是物理的,它一律就认为只是5块裸的物理硬盘而已,跟直接拿一块物理硬盘挂载到操做系统没有区别的,至少操做系统感知上没有区别。而后,操做系统还须要对挂载的裸硬盘进行分区、格式化后,才能使用,与日常主机内置硬盘的方式彻底无异。安全
块存储有两种常见的形式,直接链接存储DAS(Direct Attached Storage)和存储区域网络SAN(Storage Area Network)服务器
块存储是数据存储的最古老形式,数据都存储在固定长度的块或多个块中网络
块存储是咱们最经常使用的一种存储模式。好比我的PC上的硬盘,服务器上的硬盘,外置设备经过SCSI或者FC接口直接链接到电脑上的。分布式
块存储能够经过raid的方法,经过冗余备份,提升数据的安全性性能
应用程序不能直接使用块存储,必须先进行格式化,格式化成某种文件系统,经过文件系统使用存储设备ui
典型设备:FTP、NFS服务器操作系统
比如是一个共享文件夹,自带文件系统,所以是应用程序能够直接使用的存储,好比NFS,就是直接把文件服务器的某个目录挂载到本地的某个目录,应用程序直接操做本地的这个目录,等于操做远程服务器对应的目录.net
实现文件存储的方式有不少,其中比较经常使用的有如下的几种:ftp协议、nfs协议、samba协议等。对象
对象是系统中数据存储的基本单位,一个对象实际上就是文件的数据和一组属性信息(Meta Data)的组合,这些属性信息能够定义基于文件的RAID参数、数据分布和服务质量等,而传统的存储系统中用文件或块做为基本的存储单位,在块存储系统中还须要始终追踪系统中每一个块的属性。对象经过与存储系统通讯维护本身的属性。在存储设备中,全部对象都有一个对象标识,经过对象标识OSD命令访问该对象。一般有多种类型的对象,存储设备上的根对象标识存储设备和该设备的各类属性,组对象是存储设备上共享资源管理策略的对象集合等。
对象存储相比块存储、文件存储的一个最本质的区别是无层次结构。通常的存储(好比你本身的PC的文件系统)是有一个目录树概念的,要找到一个文件须要先找到这个文件所属的目录。而对象存储是没有文件目录树这个概念的,全部的数据都在同一个层次中,仅仅经过数据的惟一地址标识来识别并查找数据。
存储类型 | 数据传输方式 | 适应场景 | 优势 |
---|---|---|---|
块存储 | SCSI/ISCSI接口 | 小型机房 | 速度快 |
文件存储 | NFS/FTP等 | 局域网环境 | 可扩展性高 |
对象存储 | http协议 | 互联网环境,异地存储 | 速度快,且扩展性高,高可用 |
数据库能够管理数据;文件系统也能够管理数据。好比MySQL的InnoDB引擎就能够直接管理裸盘上的数据
数据库可使用本身文件系统,也可使用操做系统的文件系统
有一类应用是须要存储直接裸盘映射的,例如数据库。由于数据库须要存储裸盘映射给本身后,再根据本身的数据库文件系统来对裸盘进行格式化的,因此是不可以采用其余已经被格式化为某种文件系统的存储的。此类应用更适合使用块存储。固然如今的数据库也可使用文件系统,不直接使用裸盘。
主要来源:
https://blog.csdn.net/gui951753/article/details/82714065
https://www.zhihu.com/question/21536660/answer/33279921
https://zhuanlan.zhihu.com/p/68904315