块存储主要是对磁盘阵列(内含多块硬盘)作RAID操做或者LVM操做,逻辑划分出N块Logic盘并映射给主机使用,操做系统会识别到N块硬盘,可是没法感知究竟是逻辑盘仍是物理盘,因此仍是会对其进行分区和格式化(没法共享数据)。html
每块逻辑盘其实是由多块硬盘共同组成,在读写数据的时候,几块物理硬盘能够并行寻址和操做,大大提升了IO效率。服务器
文件存储:经过安装特定的操做系统与软件,就能够架设FTP与NFS服务了(做为共享文件存储)。因为全部的读写操做都必须由一台服务器里的硬盘来承担,因此速度要慢不少。微信
对象存储:克服了块存储和文件存储的缺点,发扬了它们各自的优势。既可以快速读写文件,又可以在多台主机之间实现文件共享。并发
对象存储主要是将图片、视频、文档、邮件等document做为一个个对象,每一个对象由属性(Metadata)和内容组成,元数据存储在控制节点(元数据服务器,主要是记录对象的数据被打散到了哪些分布式服务器中),真正负责存储数据的分布式服务器叫OSD(Object Storage Device对象存储设备)。当用户访问对象时,会首先访问元数据服务器,得知具体的位置以后,才会去访问对应的OSD,进行并行的读写。分布式
对象存储实质上是键值存储,每一级的每一个元素,例如某个容器或者某个对象,在系统中都有惟一的标识,用户经过这个标识来访问容器或者对象。它提供了RESTful API供用户进行Bucket(存储空间)和对象的操做,且数据组织结构是扁平的。比较知名的对象存储服务有aliyun OSS,AWS的S3和Openstack Swift等。阿里云对象存储服务OSS的API网址为:https://help.aliyun.com/document_detail/31948.html阿里云
现在的存储系统中,动辄数百万、千万甚至上亿个文件/对象,单位时间内的访问次数和并发访问量也达到了史无前例的量级,在这种状况下,目录树(传统的文件系统)会给存储系统带来很大的开销和诸多问题,成为系统的瓶颈。反观目录结构的初衷——数据管理,现在做用很是有限,咱们已经很难经过目录的划分对文件进行归类和管理了,由于一个文件最终只能放到一个文件夹下,做为目录树的叶子节点存在,而文件的属性是多维度的。目前各种应用中普遍采用元数据检索的方式进行数据的管理,经过对元数据的匹配获得一个Index或者Key,再根据这个Index或者Key找到并读取数据,因此,对象存储的扁平数据组织形式和K/V访问方式更能知足数据管理的需求。操作系统
在微信或者新浪微博中,用户会大量的上传、读 视频/图片,所以每个账号对应一个Bucket,该账号视频
上传的每一个视频/图片都以对象的形式存储在Bucket中,而后依据时间戳进行排序和展现。htm