通过完成操作系统导论38章作业来理解廉价冗余磁盘阵列RAID的四种设计的块位置计算,其中详细图解RAID-5中的奇偶校验块跨驱动器旋转的左对称、左不对称方式。
38.1
Use the simulator to perform some basic RAID mapping tests. Run with different levels (0, 1, 4, 5) and see if you can figure out the mappings of a set of requests. For RAID-5, see if you can figure out the difference between left-symmetric and left-asymmetric layouts. Use some different random seeds to generate different problems than above.
RAID-0
运行指令:python2 raid.py -n 5 -L 0 -R 30
采用RAID-0,只是简单的条带化。所以磁盘序号=地址%磁盘数,偏移量=地址/磁盘数,磁盘数是4,所以结果如下:
地址 | 磁盘序号=地址%4 | 偏移量=地址/4 |
---|---|---|
25 | 1 | 6 |
12 | 0 | 3 |
15 | 3 | 3 |
23 | 3 | 5 |
14 | 2 | 3 |
-c验证:
RAID-1
python2 raid.py -n 5 -L 1 -R 30
RAID-1每个块都有镜像对,所以磁盘序号=地址*2 % 磁盘数(/ +=1),偏移量=地址*2 / 磁盘数,磁盘数是4.
地址 | 磁盘序号=地址*2%4 (/+1) | 偏移量=地址*2/4 |
---|---|---|
25 | 2/3 | 12 |
12 | 0/1 | 6 |
15 | 2/3 | 7 |
23 | 2/3 | 11 |
14 | 0/1 | 7 |
-c验证:
RAID-4
python2 raid.py -n 5 -L 4 -R 30