关于分布式存储,这是你应该知道的(2)
图3 计算和存储分离了,存储只是接受命令不再做复杂的计算,只干读取或者写入文件2件事情,叫SAN,如图3. 因为不带文件系统,所以也叫“裸存储”,有些应用就需要裸设备,如数据库.存储只接受简单明了的命令,其他复杂的事情,有服务器端干了.再配合FC网络,这种存储数据读取/写入的速度很高. 但是每个服务器都有自己的文件系统进行管理,对于存储来说是不挑食的只要来数据我就存,不需要知道来的是什么,不管是英语还是法语,都忠实记录下来的. 但是只有懂英语的才能看懂英语的数据,懂法语的看懂法语的数据.所以,一般服务器和SAN存储区域是一夫一妻制的,SAN的共享性不好.当然,有些装了集群文件系统的主机是可以共享同一个存储区域的. 从上面分析,我们知道,决定存储的快慢是由网络和命令的复杂程度决定的. 内存通信速度>总线通信>网络通信网络通信中还有FC网络和以太网络.FC网络目前可以实现8Gb/s,但以太网络通过光纤介质已经普及10Gb/s,40Gb/s的网卡也在使用了.也就是说传统以太网络已经不是存储的瓶颈了.除了FCSAN,IPSAN也是SAN存储的重要成员. 对存储的操作,除了熟悉的读/写以外,其实还有创建、打开、获取属性、设置属性、查找等等.
总体上来讲,对象存储同兼具SAN高速直接访问磁盘特点及NAS的分布式共享特点. NAS存储的基本单位是文件,SAN存储的基本单位是数据块,而对象存储的基本单位是对象,对象可以认为是文件的数据+一组属性信息的组合,这些属性信息可以定义基于文件的RAID参数、数据分布和服务质量等. 采取的是“控制信息”和“数据存储”分离的模式,客户端用对象ID+偏移量作为读写的依据,客户端先从“控制信息”获取数据存储的真实地址,再直接从“数据存储”中访问. 对象存储大量使用在互联网上,大家使用的网盘就是典型的对象存储.对象存储有很好的扩展性,可以线性扩容.并可以通过接口封装,还可以提供NAS存储服务和SAN存储服务. VMware的vSAN本质就是一个对象存储.分布式对象存储就是SRVSAN的一种,也存在安全隐患.因为这个隐患是X86服务器带来的. 二、文件系统计算机的文件系统是管理文件的“账房先生”.
如果没有这个“账房先生”,让每个“伙计”自由的出入仓库,就会导致仓库杂乱无章、货物遗失. 就像那年轻纺城机房刚启用的时候,大家的货物都堆在机房里,没有人统一管理,设备需要上架的时候,到一大堆货物中自行寻找,安装后的垃圾也没有人打扫,最后连堆积的地方都找不到,有时自己的货物找不到了,找到别人的就使用了……. 大家都怨声载道,后来建立了一个仓库,请来了仓库管理员,用一本本子记录了货物的归宿和存储的位置,建立货物的出入库制度,问题都解决了,这就是文件系统要做的事情. 文件系统管理存取文件的接口、文件的存储组织和分配、文件属性的管理(比如文件的归属、权限、创建事件等). 每个操作系统都有自己的文件系统.比如windows就有常用的FAT、FAT32、NTFS等,Linux用ext1-4的等. 存储文件的仓库有很多中形式,现在主要用的是(机械)磁盘、SSD、光盘、磁带等等. 拿到这些介质后,首先需要的是“格式化”,格式化就是建立文件存储组织架构和“账本”的过程.比如将U盘用FAT32格式化,我们可以看到是这样架构和账本(如图4): 图4 主引导区:记录了这个存储设备的总体信息和基本信息.比如扇区的大小,每簇的大小、磁头数、磁盘扇区总数、FAT表份数、分区引导代码等等信息. 分区表:,即此存储的账本,如果分区表丢失了,就意味着数据的丢失,所以一般就保留2份,即FAT1和FAT2.分区表主要记录每簇使用情况,当这位置的簇是空的,就代表还没有使用,有特殊标记的代表是坏簇,位置上有数据的,是指示文件块的下一个位置. 目录区:目录和记录文件所在的位置信息. 数据区:记录文件具体信息的区域. 通过以下的例子来帮助理解什么是FAT文件系统. 假设每簇8个扇区组成一个簇,大小是512*8=4K.根目录下的readme.txt文件大小是10K,如图5: 图5
在这个例子中,我们看到在FAT文件系统,是通过查询FAT表和目录项来确定文件的存储位置,文件分布是以簇为单位的数据块,通过“链条”的方式来指示文件数据保存的文字. 当要读取文件时,必须从文件头开始读取.这样的方式,读取的效率不高. 不同的Linux文件系统大同小异,一般都采取ext文件系统,如图6. (编辑:ASP站长网) |