码迷,mamicode.com
首页 > 其他好文 > 详细

raid中条带概念问题

时间:2020-07-08 23:03:47      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:win   使用   情况下   方式   展示   研究   怎么   过程   空间   

问题:
1.就raid 5 ,条带大小为128k,如果写入的文件很小如 2k,那存放的方式和占有容量是怎么确定。剩余条带怎么处理?
2.磁盘在格式化的时候有个单元分配大小,这个好像就是文件存放的最小单位,和raid里面的块区别?

 
冬瓜头:
要彻底理解这个问题,我建议楼主在文字的基础上勤画图。
首先你要写入2k的“文件”,既然牵扯到文件,就要牵扯到文件系统的分配单元,也就是你第二个问题。raid向操作系统提供的是卷,是连续的扇区(或者叫LBA)空间地址,而卷向文件系统所展示的是分区,相对于卷,分区就是将大片连续地址再次切开。文件系统用扇区组成所谓“簇”,或者叫cluster,或者叫分配单元,fs存放数据只以簇为单位,而不会出现“读入或者写出半个簇”这种io命令。而卷之下的各层都可以以单个扇区为单位了,扇区是存储系统最小的io单位。明白了底层这些映射关系,就可以着手研究io行为了。再说回来,你说要写入2kbytes的“文件”,当然是要调用文件系统进行写入了,如果文件系统的簇大小被设定为2k,则文件系统会在分区内分配2k的空间来存放文件实体数据,也就是4个扇区的连续地址,此外,还需要更新inode(unix)或者MFT表(Win)等所谓“元数据/metadata”,也需要占用额外的空间。值得一提的是,inode或者MFT的对应某个文件的metadata本身是可以存放一定数量的文件实体数据的,一般是64字节,小于这个数值,文件直接存放在inode中,大于这个数据,inode中会被加入二级和三级扩充映射指针指向文件实体数据被存放的扇区地址用于寻址操作。再来看看raid所提供的较色,刚说了raid提供一片连续扇区地址,假如文件系统选择了扇区1024-1027号这4个连续的扇区作为这个2k文件的存放空间,则文件系统写入这个文件的时候,卷接受到这个指令之后,会将这段扇区号码传送给raid驱动,raid驱动接受之后会将号码传送给raid芯片进行地址翻译(硬raid卡)或者直接在驱动层面进行地址翻译(软raid卡),地址翻译这里的意思是将这段连续的地址映射到实际的物理硬盘地址,因为raid提供给上层的是虚拟磁盘/lun,一个lun可以分步在多个物理硬盘上。地址翻译的过程一定要查询stripe也就是条带映射表,当初你怎么分的,此时就会影响翻译之后实际的硬盘扇区地址。再回来说你的raid5的128KB条带,128KB条带=磁盘数量乘以每个磁盘上组成这个条带的segment大小,也就是说一个条带把排列的多个磁盘横向切成了一条一条的,硬盘本身相当于竖条,而横条和竖条切开之后形成的小格子就是segment,也叫条带深度,stripedepth。比如8个盘的raid5系统,其中一块用于存放parity,128KB条带除以8等于16KB,也就是说segment=条带深度=16KB=每个磁盘上贡献一个条带所使用的空间。再回来说2k的文件写入,这个情况下,地址翻译会将2k的地址翻译为“磁盘m上的n到磁盘m上的n+3号扇区”,当然也可能是“磁盘x上的y到磁盘a上的b”,总之地址落在物理硬盘上的哪个区域,条带中央/条带边缘/单个物理硬盘/多个物理硬盘,文件系统是不知道的,由raid层面决定。这种不知道称为“盲”,现在大多文件系统都盲,但是也有不盲或者半盲的。我们在raid层面来设计条带,分步等,实际上都是盲操作,效果不会很大,包括raid5本身的并发io特点,也是盲并发。所谓并发,拿你刚才的例子,某个io需要写入2k的数据,如果地址翻译结果为这4个扇区落在一个segment里,则这个io只会占用一个数据盘,外加需要占用parity区域,如果此时还有一个io需要写入2k数据,而这次的4个扇区落在了另一块数据盘上,而它需要的parity数据恰好与前一个io及其所需要的parity区域不在同一个盘上,则这两个io可以并行操作,4块磁盘同时读写。由于这种并发是基于“恰好”的,所以raid5提供的是盲并发,要实现不盲的并发只能靠上层文件系统。
————————————————

转自:https://blog.csdn.net/haiross/article/details/38488521

raid中条带概念问题

标签:win   使用   情况下   方式   展示   研究   怎么   过程   空间   

原文地址:https://www.cnblogs.com/pipci/p/13269426.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!