[分享] netapp存储:磁盘阵列RAID DP双奇偶校验

[复制链接]

该用户从未签到

472

主题

532

回帖

1万

积分

[INTOHARD]旅长

Rank: 9Rank: 9Rank: 9

积分
16542
发表于 2015-3-21 19:46:11 | 显示全部楼层 |阅读模式
新的数据被写入一个独立访问阵列时,将使用下列过程更新校验数据和写入新数据:

从主机 I/O 控制器接收 I/O 请求和新数据。
读出将被替代分块的原有数据。
读出该块的校验数据。
对校验数据与原有数据实施XOR操作,去除原有数据对校验数据的贡献。
对该校验数据与新数据实施XOR操作,得到新的校验数据。
将新的校验数据写入磁盘。
将新数据写入磁盘。
这个过程称为读、修改和写周期。

在一个读、修改和写周期中,一次单个驱动器的写操作需要独立访问阵列做4次数据传输,即原有数据读出、校验数据读出、新校验数据写入以及新数据写入,这导致单个I / O请求的大量的开销。

因为读、修改和写周期的开销,所以独立访问阵列的读操作比其写操作快得多。事实上,独立访问阵列的写速度比单个磁盘的写操作更慢,也比并行访问阵列的写慢。由于这个原因,当独立访问阵列用于读操作比例大于写操作的应用时,它应该配以回写缓存。

上面是对分条中的少量分块的写操作,假如是对分条的所有分块做写操作,可以直接XOR校验并写入数据盘和校验盘。这样可以大大提高写性能。
图片
001.png
假如对分条中一半以上的块做写操作,那么可以:

为即将要写的若干分块保存新的数据。
从不被更新的一些分块中读出现存的数据。
计算新的校验数据。
写新的分块数据和新的校验数据。
一个回写算法的磁盘缓存可以保存磁盘写,使单个操作能够写入更多的分块。
WAFL是广泛用于NetApp存储缓存设备的文件系统,WAFL名称的本意是Write Anywhere File Layout。这种设计可以让WAFL尽量将多个写入块写入操作调度到同一个RAID条带中,避免对一个条带的单块写入,来提高RAID的写性能。
WAFL文件系统的meta-data是存储在文件中的(很多文件系统存储meta-data在磁盘的固定位置),WAFL有3个meta-data文件:

inde file - contains the inodes for the file system
block map file - identifies free blocks
inode map file - identifies free inodes
将meta-data存储在文件可以让WAFL将meta-data写入到磁盘的任意位置,便于WAFL来优化写操作。

RAID DP:
002.jpg

该用户从未签到

0

主题

1

回帖

1

积分

[INTOHARD]工兵

Rank: 1

积分
1
发表于 2015-3-23 10:17:20 | 显示全部楼层
支持支持支持支持支持支持支持支持支持支持支持支持支持支持
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

104

回帖

209

积分

[INTOHARD]排长

Rank: 3Rank: 3

积分
209
发表于 2015-12-25 14:08:07 | 显示全部楼层
支持原创,感谢分享.
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

28

回帖

26

积分

[INTOHARD]工兵

Rank: 1

积分
26
发表于 2017-10-16 17:40:32 | 显示全部楼层
阿福asifUI哦啊所if冊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表