此帖子已超过 5 年
26 消息
0
2747
关于 VNX File 的 stripe size
请教 VNX NAS 专家,我在看 VNX UNIFIED BEST PRACTICES 的 File 部分提到MVM手动创建文件系统时,建议使用 5 个 LUN,使用 stripe size 262144(256KB) 有点困惑。我的理解是,建议的 stripe size = 256KB 是指在组成 Stripe volume 的一个 Disk volume 上写 256 KB数据,然后再写另一个 Disk volume 256 KB数据,那么在 DM 层面 5 个 Disk volume 形成的整个条带大小应该是 256KB x5 = 1280 KB,这样对吗?如果是这样,我是否可以理解设计 VNX file 使用的 LUN 最好是来自于 R5 4+1 或 R6 4+2 或者 R10 4+4,这样 256 KB 的写刚好可以形成一个 full stripe 写?
Jeffey1
2 Intern
2 Intern
•
2.8K 消息
0
2014年6月16日 01:00
Hi Sam,
最佳实践文档中建议在配置文件系统时,将stripe size值设置为256KB,是为了在对RAID 5(4+1)写入时形成Full stripe,你的理解完全正确。另外,stripe size和文件系统默认传输值没有关系。VNX 7.1版本以后,默认传输大小为128K,最大支持1M,VNX 7.0版本,最大传输值为32K。Stripe size
最佳实践文档对AVM和MVM工具创建文件系统时,推荐了不同LUN添加值,这个肯定是根据算法得出推荐值。在配置时按照推荐值配置即可。
born_chen
2 Intern
2 Intern
•
1.8K 消息
1
2014年6月12日 08:00
使用RAID组LUN时,条带支持4个dVol。使用pool LUN时,是5个。
使用的LUN我个人觉得,只要是能条带的,都可以用。只不过最好遵从RAID最佳性能的的组合吧。
Jeffey1
2 Intern
2 Intern
•
2.8K 消息
0
2014年6月12日 20:00
你好,sam。
stripe size是指条带大小,stripe size=256KB就是指一次在单块磁盘可以写的最大容量。例如:RAID 5(4+1),stripe size=256KB的情况下,当一个1M的文件写到磁盘上时,那么是按照在第一块磁盘写入256KB数据,然后在第二块磁盘再写入256KB数据,然后在第三块磁盘写入256KB数据,最后在第四块磁盘写入256KB数据,第五块磁盘保存parity信息,用于校验前4快磁盘的数据。最佳实践文档让用户最好将这个stripe size指设为256KB,确保大部分应用能够获得最佳性能。
然后我们来说说LUN的概念。如果你一次性从多个同类型的5个RAID Group中划出5个LUN给NAS端,那么前端NAS的AVM工具会为这5个LUN再做一次stripe。当有多个用户一起读写的时候,这些IO就可以均衡地分配到5个RAID Group中,避免性能随着并发IO的增加而下降。假如这5个LUN是分5次扩展到该文件系统中,那新数据(往往也是热点数据)就一直只存在一个LUN上,处理并发IO的能力就小了。
Sam_Li
26 消息
0
2014年6月12日 21:00
非常感谢楼上两位的回答!
我查了些文档,我的理解原因应该有两个:一个就是我所说的256KB的Stripe Size,容易在DM所使用到类似R5 4+1模式的底层LUN上形成 Full Stripe 写;另外就是CIFS或NFS 默认产生文件系统IO大小是256KB(这个不确定,请专家指导。NFS我记得应该是 Mount 参数调整)。
至于BEST PRACTICES里提到MVM手动模式不管是RG或者Pool LUN 建议都是选择5个LUN,而不是像 AVM自动模式,RG 选4个LUN,Pool LUN选5个LUN,我觉得可能还是从性能上的考虑。
其实我困惑的是VNX File 这个 Stripe size 的字眼,我的理解在 DM 的层面 Stripe size 应该是整个 Stripe volume 条带的大小,我个人觉得表述成 Strip size 或 Stripe depth 会更合适一些。
再次感谢 Born 、Jeffey!
Jeffey1
2 Intern
2 Intern
•
2.8K 消息
1
2014年6月16日 01:00
在VNX存储系统中NAS基本充当一个网关的作用,NAS对于SAN来说也就和普通主机没有任何区别。在SAN中划好LUN后再分配给NAS,NAS再在上面建存储池,然后再创建文件系统给NFS/CIFS/iSCSI客户端访问。
对于RAID5来说,由于各个盘都是独立的,一个比较小的element size对随机IO 比较有效。如果IO的平均大小是element size的整数倍,则每次IO都会访问2个或2个以上的磁盘从而降低性能特别是写性能。理想情况下,element size应该是IO的平均大小的整数倍。
假如需要写入256KB的数据,element size为64KB,则stripe size为256KB。那就直接算出新的校验码,将整个stripe和新的校验码写入磁盘。这就能解释为什么stripe size要设置为256KB。
Sam_Li
26 消息
0
2014年6月17日 02:00
再次感谢 Jeffey 热心解答!