首先是流程,
不同种类的磁盘(sata,fc,flah)->disk group->raid->DATA volume->thin pool->TDEV and BCVDEV (lun)
然后细看:
1) 不同种类的磁盘叫做disk,这是可见的物理硬盘,见下图:
con 112 92代表disk的个数,flag的I代表disk internal to the arrary, F代表FC盘,E而且speed是0代表是EFD类型盘,也就是常说的没有机械臂的固态硬盘,EntERPrise Flash Drive (EFD),也称为 Solid State Drive (SSD)。
2)这些不同的硬盘形成disk group, disk group的成员是disk.
3) 每一个disk group 经过raid之后会形成DATA volume和two-mirror的GK盘,这些是真正的存储数据用的,DATA volume可以认为是physical disk的一部分,大小小于disk,如下图:
能够看到279140MB分出了4个raid5的data/hpyer volume.
data volume可以认为是CDEdriver,disk是物理磁盘,disk(physical) ->data volume(logical) ->
poo
为什么不能直接把data volume分给host?
因为如果直接把data vlume分给host,host那边的写操作相当于直接写进disk,如果是sata disk的话,大量的读写可以会导致fail,所以需要pool这一层。
4)Data volume会组成pool,pool的成员是volume。
pool里面的data volume都是同类型的disk,给server分lun是用了同一个pool,避免多种类型盘出问题。
如果创建成thin pool,lun就是虚拟化的具有thin provisoning的lun,只是一个pointer,在客户端看到是13.5G,但是实际并没有分出去13.5G, 简单说如果pool有100G,分出去10G,但是host只写了1G,pool的剩余空间其实是99G。
如果创建成thick pool,那13.5G就是真的从pool里reduce了13.5G。
5)创建lun。
lun是创建完成后再bind到pool里。并不是从pool里分出去的,lun只是一个号码,默认是bind到fc pool。EFD pool是专门为fast policy 准备的。
EMC在换盘时,其实是换的spare disk,spare disk顶上去以后,坏盘的数据会通过raid原理复制到新盘,data volume会指向新的位置。
***********************以上就是从disk到lun形成的过程**********************************
关于fast policy:
fast policy是一个算法是bound在SG上面的, FP有多个teir, 例如fc teir和efd teir,每个teir都会定义simulation(FBA/CKD), 可以理解为他们就是定义了怎样储存data, 和 disk technology (efd,fc), efd意味着这个teir支持efd protocol, fc支持fc protocal, 然后每个teir实际都会包含一个pool,fc teir包含fc pool, efd teir包含efd pool,所以总结一下就是:
如果一个SG拥有了一个fast policy,意味着这个sg里的lun里的data可以在各层teir的pool中转移。
转移的根据是:
1)例如有10个lun,分配给server端两个vg, 各5个lun,vg1是为某个应用用的数据,需要更多的IO,当fast policy检测到这个IO读写后就会把这个lun转移到EFD pool,EFD pool是由EFD disk组成的。
下图可以看到有例如0936这个lun,以前是在01_00 pool里,有一部分数据被转移到EFD pool。
转移可以看下图:
这是一块盘的信息,最初bond进一个pool,但是other pool里的信息有三个,可以看到lun的名字没有变,但是13.5G的数据被分散到三个pool(fast policy的三个tier),可见lun只是一个名字类似inode,靠同一个inode指向三个不同的pool。
本文转自UVN2015 51CTO博客,原文链接:http://blog.51cto.com/10851095/1870702,如需转载请自行联系原作者