Fork me on GitHub

若转载请于明显处标明出处:http://www.cnblogs.com/kelamoyujuzhen/p/5573823.html

  引入RAID后,将几块磁盘组RAID,对外提供的是虚拟磁盘。eg: 5张100G磁盘组成RAID5,相当于有个400G磁盘。但是对于文件系统来说还是太大,怎么办呢? 实际上RAID卡还能对这400G虚拟磁盘再次划分。比如分成4个100G磁盘。RADI卡虚拟化后的磁盘OS是感知不到的,OS借助磁盘控制器(这里暂时把讨论范围定位DAS)识别到LUN,然后他就认为LUN是真实的物理磁盘(够傻的(●'◡'●))。OS可以在LUN上面格式化、划分分区。跟使用普通物理磁盘一毛一样。

  不好了,粗大事了!!!

  如果一个分区快用光了,这时候要写一大块数据到这个分区,很明显现在这个分区装不下了? 怎么办? 

  往其他分区写。

  不好意思,OS没有这种操作,也不支持。

 

  如何解决这个问题呢? 回顾物理磁盘 到 分区的这条路径, 有2处我们可以做手脚。一处是 磁盘控制器(在DAS里面一般也就是集成RAID的SCSI卡),一处是OS

  如果是RAID卡解决这个问题:

问题是这样的,开始RAID卡虚拟出LUN给OS,OS在LUN上划分分区,现在分区不够用了。想要RAID做出调整。这就相当于非诚勿扰上 男女配对成功后,强行被孟非拆散在重新匹配一样,不是不可以,实施起来太难了,搞不好容易被揍。要在RAID上解决这个问题,RAID卡要增加很多逻辑代码。即便实现该功能,主机端也不能立刻感知这种变化。以WIndows举例,当一个分区不够用的时候,通过RAID给这个分区所在磁盘增大了空间,但是增大的空间是没办法被分区紧张的那个分区使用的,必须将新增的空间格式化、创建新分区。然后重启OS,在OS还没起来的时候使用三方根据修改分区表。这样分区表面上是扩大了,但是OS的文件系统并不买账,因为文件系统不能动态张缩,必须在不启动OS的情况下使用三方工具调整。这样一整套下来,OS至少要重启一次到2次。对于生产环境,你敢这么玩?老板把你腿打折!!!!!!!!

  RAID卡是玩不下去了,怎么办,在OS上做文章吧。

RAID虚化层把自己虚化后的磁盘,经磁盘控制器驱动程序 识别后上报 LUN 给OS。OS是个SB,他才不管这个LUN是真实的物盘还是虚化后的磁盘。他只相信磁盘控制器驱动程序,磁盘控制器驱动程序说啥是啥,对底层磁盘一概不知。那OS又是怎么对LUN进行虚拟化的呢?见下图

LV大小是可以不需要重启OS随时变更的,前提就是还有PP可以使用。

 

 

posted @ 2016-06-10 16:20  克拉默与矩阵  阅读(365)  评论(0编辑  收藏  举报