RAID的实现实验报告

更新时间:2024-01-03 18:48:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验三 RAID的实现

一、实验目的

1、 了解与掌握RAID0、RAID1、RAID5的原理与实现 2、 了解与掌握RAID1、与RAID5数据的恢复

第一部分 在VMware虚拟机中添加SCSI硬盘

一、在VMware虚拟机中添加4块SCSI硬盘 1、 打开虚拟机,但不要运行

2、 选择“Commands”栏内的“Edit virtual machine settings”选项 3、 在“Virtual Machine Settings”对话框中选择”Add”按钮?出现“Add Hardware Wizard”对话框?“Hard

Disk” Hard Disk?Next按钮

4、 在Select a Disk对话框中选择Create a new virtual disk选项?”next”按钮

5、 在select a Disk Type对话框中选择虚拟机磁盘类型时选择SCSI磁盘类型?“Next”按钮 6、 在Specify Disk Capacity对话框中将硬盘的大小设置为1GB?Next按钮,注意实际磁盘是由一个文

件模拟的,文件名为“Other Linux2.6.x kernel.vmdk0-x”-?选择finish按钮 7、 重复第3步-第6步,直至生成4块1G SCSI硬盘后?”OK”按钮

8、 再“Commands”栏内选择?Power on this virtual machine,启动虚拟机

二、检查计算机系统

虚拟机启动后计算机系统外部存储器参数 1、 检查硬盘

输入指令:more /proc/partitions

作用:显示外存储器的设备信息,其中主设备号是指使用同一个驱动程序的设备编号,次设备号是指 驱动程序的实例,blocks是指该设备拥有的块数目,name是指该设备的逻辑名称

根据输出的内容填写下表 Major(主设备号) 驱动程序 8 8 8 8 8 8 8 Minor(次设备号) 每一个实例 0 1 2 16 32 48 64 4194304 524288 3668992 1048576 1048576 1048576 1048576 sda sda1 sda2 sdb sdc sdd sde Blocks Name 2、 检查向内核注册的md设备 输入指令 dmesg |grep md

作用:检查本台计算机系统支持的RAID级别 根据输入的内容填写下表 设备 md 1 / 8

RAID类型 linear 说 明 Personality registered for level -1 Level编号 md md md md md md md md Raid0 Raid1 Raid2 Raid3 Raid4 Raid5 Raid6 Raid10 Personality registered for level Personality registered for level Personality registered for level Personality registered for level Personality registered for level Personality registered for level Personality registered for level Personality registered for level 0 1 4 5 6 10

3 检查此计算机的RAID子系统信息 输入:more /proc/mdstat

显示:Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]

unused devices: 说明没有RAID被激活

第二部分 生成RAID0、RAID1、RAID5

三、生成RAID0---striping

条带是一种将数据分散于多个磁盘的方法,固定数量(chunk-size)的数据被写入每一个磁盘,磁盘不要求统一的大小。 1、 生成RAID0

命令:mdadm –Cv –l0 –n4 /dev/md0 /dev/sdb /dev/sdc /dev/sdd /dev/sde 或:mdadm –Cv –l0 –n4 /dev/md0 /dev/sd{b,c,d,e} 其中:-C --create 生成一个新阵列

-v --verbose 显示详细信息

-l --raid-level 选择RAID的级别:linear, 0, 1, 4, 5 -n --raid-disks 设置在阵列中的磁盘数量

/dev/md0 在Linux中,阵列的驱动器是md,第一个磁盘阵列称为/dev/md0,第二个 磁盘阵列称为/dev/md1

/dev/md0 磁盘阵列(array)由磁盘/dev/sdb, /dev/sdc, /dev/sdd, /dev/sde 4块磁盘组成

1、 检查:

指令:more /proc/mdstat 结果:

ersonalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md0 : active raid0 sde[3] sdd[2] sdc[1] sdb[0]

__4190208__ blocks super 1.2 __512____k chunks unused devices:

2、 停止/dev/md0

指令:mdadm --stop /dev/md0 检查:无active磁盘阵列存在

2 / 8

四、生成RAID1---磁盘镜像:RAID1在每次写入数据时,都会将数据复制到多个磁盘上 1、生成磁盘镜像

指令:mdadm -Cv -l1 -n3 -x1 /dev/md0 /dev/sd{b,c,d,e} 其中:-n3 指阵列/dev/md0的磁盘数据为3块 -x1 定义热备份盘的数量为1块

2、 检查/dev/md0

指令: more /proc/mdstat

结果:Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]

md0 : active raid1 sde[3](S) sdd[2] sdc[1] sdb[0]

1048564 blocks super 1.2 [3/3] [UUU] 注意:sde[3](s) s是指热备份盘

3、 检查热备份盘的作用---将/dev/md0阵列中的sdb盘标志为Fail 指令 mdadm --fail /dev/md0 /dev/sdb 结果:mdadm: set /dev/sdb faulty in /dev/md0 检查: more /proc/mdstat

Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md0 : active raid1 sde[3] sdd[2] sdc[1] sdb[0](F) 1048564 blocks super 1.2 [3/3] [UUU]

注意:sdb[0](f) f是指在/dev/md0磁盘阵列中,sdb为错误,但同时注意到sde盘中没有了(s) 说明:_________________________________________________________________________ __________________________________________________________________________ __________________________________________________________________________

3、 停止/dev/md0

指令:mdadm --stop /dev/md0 检查:无active磁盘阵列存在

五、生成RAID5---块级分布式奇偶校验

RAID5采用数据条带,其条带以chunk-size为单位分配,在RAID5中,通过每个数据盘上的相应条带逐位计算奇偶校验位(异或操作),奇偶校验位存储在奇偶校验条带上,并且RAID5在所有磁盘上分布了奇偶校验条带

1. 生成RAID5

指令:mdadm -Cv -l5 -c64 -n3 /dev/md0 /dev/sd{b,c,d} 其中:-c64 指chunk-size为64bytes

3 / 8

2、检查:more /proc/mdstat

结果:Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]

md0 : active raid5 sdd[3] sdc[1] sdb[0]

2097024 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]

其中奇偶校验算法如下:

Name Left-asymmetric(default) Right-asymmetric Left-symmetric(best choice) Right-symmetric Numeric value 0 1 2 3

3、检查并记录/dev/md0磁盘的阵列的详细信息 指令:mdadm --detail /dev/md0 按照输出结果填写下表: 项目 中文 参数 Version 1.2 Mdadm程序版本 Creation Time Fri Mar 29 19:09:59 2013 磁盘阵列的生成时间 Raid Level Raid5 磁盘阵列的级别 Array Size 2097024(2048.22 MiB 2147.35 MB) 磁盘阵列的容量 Used Dev Size 1048512(1024.11 MiB 1073.68 MB) 可用阵列容量 Raid Devices 3 磁盘阵列中的磁盘数量 Total 3 磁盘阵列中的总磁盘容量 Persistence Superblock is persistent 超级块中是否写入UUID Active Devices 3 阵列中有效的磁盘数量 Active Devices 3 阵列中工作的磁盘数量 Failed Devices 0 阵列中出现故障的磁盘数量 Spare Devices 0 阵列中热备的磁盘数量 Layout left-symmetric 组成阵列的算法 Chunk Size 64K 条带中写入的固定字节数 Name P:0(local to host P) 主机名 UUID 超级块中写入的磁盘阵列标识 21e35a8f:b5b5f9a3:c8ee0288:762b43d1 Number Major Minor Raiddevice State Name 序列号 主设备号 次设备号 阵列中磁盘顺序号 状态 阵列中的磁盘逻辑名称 0 8 16 0 active sync /dev/sdb 1 8 32 1 active sync /dev/sdc 3 8 48 2 active sync /dev/sdd

六、将生成的/dev/md0磁盘阵列挂接于当前的目录中

生成的/dev/md0磁盘阵列是独立于当前操作系统的树型目录结构的(该目录结构的起始点为/目录),用户尚不能访问

而为了使用户能够使用/dev/md0磁盘阵列,就必须将/dev/md0挂接于当前目录结构的某个子目录下,作为当前目录结构的一个子节点,用户才能从根目录/开始,检索到此子节点,因此,在用户

4 / 8

能够使用/dev/md0之前,仍需要经过磁盘分区、格式化、挂接于当前目录3个过程

1、 对/dev/md0磁盘阵列进行分区---使其形成仅有一个主分区的磁盘 指令fdisk /dev/md0

Command (m for help): 输入n 表示新生成一行分区表条目(16bytes长) Command action e extended

p primary partition (1-4) 输入p 表示生成主分析

Partition number (1-4, default 1):输入1 表示生成第1个主分区 Using default value 1

First sector (2048-4194047, default 2048): 直接回车 表示磁盘从2048扇区开始 Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-4194047, default 4194047):直接回车 表示到将扇截止 Using default value 4194047

Command (m for help): 输入p 表示将当前的分区打印出来

Disk /dev/md0: 2147 MB, 2147352576 bytes

2 heads, 4 sectors/track, 524256 cylinders, total 4194048 sectors Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 65536 bytes / 131072 bytes Disk identifier: 0x37738694

Device Boot Start End Blocks Id System /dev/md0p1 2048 4194047 2096000 83 Linux

注意:设备名称为/dev/md0p1 表示md0磁盘阵列的第1个主分区 Command (m for help): 输入w 表示将当前的分区表存入MBR扇区 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.

2、 对/dev/md0p1进行格式化,将其格式化为ext4带有日志功能的文件系统 指令:mke2fs -t ext4 /dev/md0p1

或者:mke2fs -t ext4 -j -J size=16 /dev/md0p1 表示jounal(存储日志区域)的大小是16MB 显示如下信息: OS type: Linux

Block size=4096 (log=2) Fragment size=4096 (log=2)

Stride=16 blocks, Stripe width=32 blocks 131072 inodes, 524000 blocks

26200 blocks (5.00%) reserved for the super user First data block=0

Maximum filesystem blocks=________536870912___________________ ___16_______block groups 5 / 8

_____32768________blocks per group, 32768 fragments per group 8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912

Writing inode tables: done

Creating journal (4096 blocks): done

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 36 mounts or 180 days, whichever comes first.

3、 将/dev/md0p1挂接于array子目录下,成为当前目录结构的一个子节点 1)、生成array子目录 指令: mkdir /array

2)、将/dev/md0p1挂接于/array子目录下 指令:mount /dev/md0p1 /array

3)、进入/array子目录,使用ls命令查看 指令 cd /array ls –al

其中:-a 表示列出该目录下的所有文件及子目录 l 表示长格式显示

七、测试/dev/md0磁盘阵列的p1分区 1、将一较大文件拷贝到/array

指令:cp /etc/termcap-BSD /array/ 查看:cd /array ls

显示的内容:_____lost+found/ termcap-BSD_____________________________

2、将/dev/md0磁盘阵列中的/dev/sdd标志为fail---表示该磁盘出现故障 指令:cd

mdadm --fail /dev/md0 /dev/sdd

结果:mdadm: set /dev/sdd faulty in /dev/md0

查看:more /proc/mdstat

Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md0 : active raid5 sdd[3](F) sdc[1] sdb[0]

2097024 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/2] [UU_]

这里的(F)是指 磁盘阵列中的/dev/sdd标志为fail---表示该磁盘出现故障

3、将/dev/md0磁盘阵列中的/dev/sdd盘抽出----表示从正在运行的磁盘阵列中移除一块盘 指令:mdadm --remove /dev/md0 /dev/sdd

结果:mdadm: ______hot______________ removed /dev/sdd from /dev/md0

6 / 8

4、 向/dev/md0磁盘阵列中增加一块新盘----表示向正在运行的磁盘阵列中移入一块新盘

使其使用“奇偶校验算法”在新磁盘上恢复损坏了的磁盘的内容 指令:mdadm --add /dev/md0 /dev/sde 结果:mdadm: added /dev/sde

5、 不断输入more /proc/mdstat指令,查看新磁盘的恢复过程 指令:more /proc/mdstat

Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md0 : active raid5 sde[3] sdc[1] sdb[0]

2097024 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/2] [UU_]

[===>.................] recovery = 19.2% (202624/1048512) finish=0.4min speed=33770K/sec

指令:more /proc/mdstat

Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md0 : active raid5 sde[3] sdc[1] sdb[0]

2097024 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/2] [UU_]

[==========>..........] recovery = 50.0% (524292/1048512) finish=0.1min speed=47662K/sec

指令 more /proc/mdstat

Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md0 : active raid5 sde[3] sdc[1] sdb[0]

2097024 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/2] [UU_]

[============>........] recovery = 60.4% (633984/1048512) finish=0.1min speed=52832K/sec

指令 more /proc/mdstat

Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md0 : active raid5 sde[3] sdc[1] sdb[0]

2097024 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/2] [UU_]

[=============>.......] recovery = 69.3% (727424/1048512) finish=0.1min speed=51958K/sec

指令 more /proc/mdstat

Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md0 : active raid5 sde[3] sdc[1] sdb[0]

2097024 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/2] [UU_]

[=================>...] recovery = 87.0% (912384/1048512) finish=0.0min speed=57024K/sec

指令more /proc/mdstat

Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] md0 : active raid5 sde[3] sdc[1] sdb[0]

2097024 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU] 以上结果说明:

6、 向/dev/md0磁盘阵列中增加一块新盘替代损坏的磁盘----表示向正在运行的磁盘阵列中移入一块新盘,使其使用“奇偶校验算法”在新磁盘上恢复损坏了的磁盘的内容。

7 / 8

第三部分 作业

一、完成下表 RAID级别 RAID0 RAID1 RAID2 RAID3 RAID4 RAID5 RAID6 二、证明

1、有一个3磁盘的RAID4阵列,X0,X1保存数据,X2是奇偶校验盘,当磁盘X1损坏时,试证明在数据恢复过程中有下列等式成立: x1(i)=x0(i) ⊕x2(i)

英文名 中文名 主要技术特征

三、软盘的文件系统采用FAT16文件系统,在软盘的根目录中有一32字节的条目内容如下: 文件名 文件大小 文件创建日期 时间 文件起始sector号 Ifolder.exe 3070 2010-07-18 17:30 121 则文件系统FAT中的片断如下:

120 121 122 125 123 123 124 124 127 125 124 126 127 试回答:ifolder.exe占用了软盘的_______ 个扇区 该文件占用的扇区号分别是:___________________________________________________________

四、有一由5块磁盘构成的RAID5系统,使用“块级分布式奇偶校验”,每块盘的容量为500G,那么再向此磁盘写入数据时,若不考虑格式化文件系统时造成的管理开销,全部磁盘全部用于装入数据文件,则此RAID5系统在理论上最大可写入______________________________________G的数据。

8 / 8

本文来源:https://www.bwwdw.com/article/6nwx.html

Top