免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4046 | 回复: 18
打印 上一主题 下一主题

[RAID与磁盘阵列] 咨询关于RAID的小问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-12 16:22 |只看该作者 |倒序浏览
当写入的数据比条带还小时 会怎么操作?


比如常见的RAID-0,1,5

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:49:45IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
2 [报告]
发表于 2009-11-12 17:15 |只看该作者
并发多个io。

论坛徽章:
221
15-16赛季CBA联赛之吉林
日期:2017-12-11 12:51:59黑曼巴
日期:2019-04-12 13:40:0515-16赛季CBA联赛之广东
日期:2019-04-23 10:41:1215-16赛季CBA联赛之辽宁
日期:2019-05-06 13:03:2815-16赛季CBA联赛之山西
日期:2019-05-09 10:56:5815-16赛季CBA联赛之青岛
日期:2019-05-17 13:57:0515-16赛季CBA联赛之新疆
日期:2019-06-10 13:39:0515-16赛季CBA联赛之天津
日期:2019-07-08 15:04:4519周年集字徽章-19
日期:2019-08-27 13:31:2619周年集字徽章-19
日期:2019-08-27 13:31:2619周年集字徽章-周
日期:2019-09-06 18:46:4715-16赛季CBA联赛之天津
日期:2019-02-27 11:24:07
3 [报告]
发表于 2009-11-12 17:17 |只看该作者
应当还是按照原来的RAID机制工作

论坛徽章:
0
4 [报告]
发表于 2009-11-12 17:18 |只看该作者
数据只写入某一个条带。如果是RAID0,对应的磁盘IO就只有一个,RAID1 两个,RAID5四个(2个读2个写)。

这在随机读写的应用中(OLTP)非常常见。

论坛徽章:
0
5 [报告]
发表于 2009-11-12 22:21 |只看该作者
不是问题

论坛徽章:
7
荣誉会员
日期:2011-11-23 16:44:17水瓶座
日期:2013-08-28 21:20:16丑牛
日期:2013-10-02 21:01:462015年迎新春徽章
日期:2015-03-04 09:54:45操作系统版块每日发帖之星
日期:2016-06-05 06:20:0015-16赛季CBA联赛之吉林
日期:2016-06-20 08:24:0515-16赛季CBA联赛之四川
日期:2016-08-18 15:02:02
6 [报告]
发表于 2009-11-12 22:40 |只看该作者
我的理解,如果你每次就写1b的数据,可能给你cache起来,一定的时间之后,从内存中flush到raid上?

论坛徽章:
0
7 [报告]
发表于 2009-11-13 00:19 |只看该作者
先谢谢楼上各位

我的疑惑,比如

3个盘组成 的raid-0  条带64k

如果我刚好有64k*3的数据要写入,那正好一次搞完,是这样吗

如果我的数据只有64k呢 写还是不写 还是按4楼说的写到其中某块盘的1个条带中

如果再小点 只有32k呢?写还是不写,怎么写,也是写到其中某块盘的1个条带中吗 那该条带剩下的空间意味着浪费了是吗?

请各位高手继续解惑

还有nimysun兄的说法 我一直也有这样的疑虑,如果是存储的话,会被先cache,然后凑足条带的数据再写入?

[ 本帖最后由 yuhuohu 于 2009-11-13 00:21 编辑 ]

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:49:45IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
8 [报告]
发表于 2009-11-13 09:46 |只看该作者
先谢谢楼上各位

我的疑惑,比如

3个盘组成 的raid-0  条带64k

如果我刚好有64k*3的数据要写入,那正好一次搞完,是这样吗

》》》》条带是横跨3个盘的,64kx3的话,是一次写完,控制器对每个盘一个io就能写完这些数据。

如果我的数据只有64k呢 写还是不写 还是按4楼说的写到其中某块盘的1个条带中
》》》》看来你没理解条带,你说了条带=64k,你要写64k,那么当然是一次写入三个盘了。这里不考虑64除不尽的问题,最好弄成4块盘来举例。

如果再小点 只有32k呢?写还是不写,怎么写,也是写到其中某块盘的1个条带中吗 那该条带剩下的空间意味着浪费了是吗?

》》》》“某块盘的一个条带”,这说法不对。条带有segment组成,条带在每个盘上占用一个segment。32k就会占用两个盘(共4盘),控制器对每个盘一个io。剩下怎么浪费了?

请各位高手继续解惑

还有nimysun兄的说法 我一直也有这样的疑虑,如果是存储的话,会被先cache,然后凑足条带的数据再写入?

》》》》cache当然要cache了,理想情况下控制器尽量整条写,也就是组合合适的io。

要是想研究这些底层东西的话,得从头梳理一下这些细节概念。

论坛徽章:
0
9 [报告]
发表于 2009-11-13 12:54 |只看该作者
原帖由 冬瓜头 于 2009-11-13 09:46 发表
先谢谢楼上各位

我的疑惑,比如

3个盘组成 的raid-0  条带64k

如果我刚好有64k*3的数据要写入,那正好一次搞完,是这样吗

》》》》条带是横跨3个盘的,64kx3的话,是一次写完,控制器对每个盘一个i ...



感谢指教!

论坛徽章:
0
10 [报告]
发表于 2009-11-13 13:48 |只看该作者
这里要分清一些定义。
Strip 指一个硬盘上的连续空间。
Stripe 指几个硬盘连续空间的集合。
Strip Size或者是Stripe Depth是指在一个硬盘上的连续空间大小。我们通常是指定Strip Size的大小,而不是整个Stripe.

我的理解就是你所说的64K是Strip Size, 因此如果是32K大小IO的话,通常就是落在一个硬盘上。

如果有很多连续的小IO,也可能通过SGL被优化为几个大的IO。

如果一个64KStrip中只写了32K,那么剩下的32K还可以继续写。

如果有64K x 3 的数据,理想情况下第一个64K写入硬盘1,第二个64K写入硬盘2,第三个64K写入硬盘3.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP