前言
写作业写到这一章没什么热情了,这一篇基本都是参考“鱼树”大佬的,想有原汁原味的体验建议去看他的博客。
先赞后看,养成习惯(✿◡‿◡)
博客不加水印,方便你我他
开始
1.使用模拟器执行一些基本的 RAID 映射测试。运行不同的级别(0、1、4、5),看看
你是否可以找出一组请求的映射。对于 RAID-5,看看你是否可以找出左对称(left-symmetric)和左不对称(left-asymmetric)布局之间的区别。使用一些不同的随机种子,产生不同于上面的问题。
模拟20个块的左对称: ./raid.py -R 20 -n 5 -L 5 -s 1 -5 LS -c
模拟20个块的左不对称: ./raid.py -R 20 -n 5 -L 5 -s 1 -5 LA -c
测试多组数据可知他们的布局是有区别的:左对称算法下每行数据块每次从校验位开始依次顺序放入不同磁盘,左不对称算法下每行数据块每次从Disk0开始依次顺序放入不同磁盘。
2.与第一个问题一样,但这次使用-C 来改变大块的大小。大块的大小如何改变映射?
./raid.py -s 1 -C 8192 -n 5 -L 0 -R 20 -c
模拟20个块,块大小为8192(4096×2)
./raid.py -s 1 -C 16384 -n 5 -L 0 -R 32 -c
模拟32个块,块大小为16384(4096×4)
可以看出,改变大块大小,将改变在每个磁盘上放置的块的数量,当大块大小为N倍的块大小时,将会在一个磁盘连续放置N个数据块之后移动至下一个磁盘。
3.执行上述测试,但使用-r 标志来反转每个问题的性质。
未反转: ./raid.py -s 1 -n 5 -L 0 -R 20
已反转: ./raid.py -s 1 -n 5 -L 0 -R 20 -r
以RAID0策略为例:(不是很懂,参考大神的:) )
在未反转情况下,给定逻辑地址,我们可以得到对应的磁盘和偏移:
i = A/N
在反转情况下,给定磁盘和偏移,同样可以得到对应的逻辑地址:
A = i + N x j
4.现在使用反转标志,但用-S 标志增加每个请求的大小。尝试指定 8KB、12KB 和 16KB的大小,同时改变 RAID 级别。当请求的大小增加时,底层 I/O 模式会发生什么?请务必在顺序工作负载上尝试此操作(-W sequential)。对于什么请求大小,RAID-4 和 RAID-5 的 I /O 效率更高?
当请求大小增加时,底层I/O模式也会增加对于8kb,12kb,16kb的请求大小,RAID-4和RAID-5的I/O效率更高
5.使用模拟器的定时模式(-t)来估计 100 次随机读取到 RAID 的性能,同时改变 RAID级别,使用 4 个磁盘。
./raid.py -n 100 -L 0 -R 1000 -W rand -t -c
./raid.py -n 100 -L 1 -R 1000 -W rand -t -c
./raid.py -n 100 -L 4 -R 1000 -W rand -t -c
./raid.py -n 100 -L 5 -R 1000 -W rand -t -c