设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 安全 > 正文

关于分布式存储,这是你应该知道的(3)

发布时间:2021-01-08 15:16 所属栏目:53 来源:网络整理
导读:图6 启动块内是服务器开机启动使用的,即使这个分区不是启动分区,也保留. 超级块存储了文件系统的相关信息,包括文件系统的类型,inode的数目,数据块的数目 Inodes块是存储文件的inode信息,每个文件对应一个inode.包含

图6

启动块内是服务器开机启动使用的,即使这个分区不是启动分区,也保留.

超级块存储了文件系统的相关信息,包括文件系统的类型,inode的数目,数据块的数目

Inodes块是存储文件的inode信息,每个文件对应一个inode.包含文件的元信息,具体来说有以下内容:

文件的字节数

文件拥有者的User ID

文件的Group ID

文件的读、写、执行权限

文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间.

链接数,即有多少文件名指向这个inode

文件数据block的位置

当查看某个目录或文件时,会先从inode table中查出文件属性及数据存放点,再从数据块中读取数据.

数据块:存放目录和文件数据.

通过读取\var\readme.txt文件流程,来理解ext文件系统,如图7.

 

图7

  • 1、根目录A所对应的inode节点是2,inode1对应的数据块是d1.
  • 2、在检索d1内容发现,目录var对应的inode=28,对应的数据块是d5.
  • 3、检索d5内容发现readme.txt对应的是inode=70.
  • 4、Inode70指向数据区d2、d3、d6块.读取这些数据块,在内存中组合d2、d3、d6数据块.

硬盘格式化的时候,操作系统自动将硬盘分成两个区域.

  • 一个是数据区,存放文件数据;
  • 另一个是inode区,存放inode所包含的信息.

当inode资源消耗完了,尽管数据区域还有空余空间,都不能再写入新文件.

总结:Windows的文件系统往往是“串行”的,而linux的文件系统是“并行”的.

再来看分布式的文件系统.

如果提供持久化层的存储空间不是一台设备,而是多台,每台之间通过网络连接,数据是打散保存在多台存储设备上.也就是说元数据记录的不仅仅记录在哪块数据块的编号,还要记录是哪个数据节点的.

这样,元数据需要保存在每个数据节点上,而且必须实时同步.做到这一点其实很困难.如果把元数据服务器独立出来,做成“主从”架构,就不需要在每个数据节点维护元数据表,简化了数据维护的难度,提高了效率.

Hadoop的文件系统HDFS就是一个典型的分布式文件系统.

图8

  • 1、Client将FileA按64M分块.分成两块,block1和Block2.
  • 2、Client向nameNode发送写数据请求,如图紫色虚线1.
  • 3、NameNode节点,记录block信息.并返回可用的DataNode给客户端,如图红色虚线2.

Block1: host11,host22,host31

Block2: host11,host21,host32

  • 4、client向DataNode发送block1;发送过程是以流式写入.

流式写入过程:

1)将64M的block1按64k的package划分;

2)然后将第一个package发送给host11;

3)host11接收完后,将第一个package发送给host22,同时client想host11发送第二个package;

4)host22接收完第一个package后,发送给host31,同时接收host11发来的第二个package.

5)以此类推,如图黑色虚线3所示,直到将block1发送完毕.

6)host11,host31向NameNode和 Client发送通知,说“消息发送完了”.

7)client收到发来的消息后,向namenode发送消息,说我写完了.这样就真完成了.

8)发送完block1后,再向host11,host32发送block2,如图蓝色虚线4所示.

……….

HDFS是分布式存储的雏形,分布式存储将在以后详细介绍.

三、存储介质

仓库有很多种存储的介质,现在最常用的是磁盘和SSD盘,还有光盘、磁带等等.磁盘一直以性价比的优势占据了霸主的地位.

圆形的磁性盘片装在一个方的密封盒子里,运行起来吱吱的响,这就是我们常见的磁盘.磁片是真正存放数据的介质,每个磁片正面和背面上都“悬浮”着磁头.

磁盘上分割为很多个同心圆,每个同心圆叫做磁道,每个磁道又被分割成为一个个小扇区,每个扇区可以存储512B的数据.当磁头在磁片上高速转动和不停换道,来读取或者写入数据.

其实磁片负责高速转动,而磁头只负责在磁片上横向移动.决定磁盘性能的主要是磁片的转速、磁头的换道、磁盘、每片磁片的容量和接口速度决定的.转速越高、换道时间越短、单片容量越高,磁盘性能就越好.

图9

图10

图11

衡量磁盘性能主要参考 IOPS 和吞吐量两个参数.

IOPS就是一秒钟内磁盘进行了多少次的读写.

吞吐量就是读出了多少数据.

其实这些指标应该有前提,即是大包(块)还是小包(块),是读还是写,是随机的还是连续的.一般我们看到厂家给的磁盘IOPS性能一般是指小包、顺序读下的测试指标.这个指标一般就是最大值.

目前在X86服务器上我们常使用的 SATA、SAS磁盘性能:

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读