在Linux上使用软RAID模拟磁盘损坏实验

软RAID是在操作系统层面进行的RAID配置,也能对数据进行保护,实际生产环境中使用存储中磁盘阵列和硬RAID实现冗余的情况比较多。

此实验在虚拟机中完成,在系统中添加5块磁盘,每块磁盘512MB,利用这5块磁盘做RAID5实验,模拟磁盘损坏及替换磁盘,模拟停止RAID阵列及启动阵列,阵列中的数据情况。

1.添加磁盘,每块磁盘512MB,共5块,如图1所示。

图1

2.启动系统并查看磁盘

ll /dev/sd*

出现/dev/sdb,/dev/sdc,…/dev/sdf,如图2所示,说明系统已识别到新添加的5块磁盘。

图2

3.磁盘分区,以/dev/sdb为例(fdisk/dev/sdb),其它磁盘做相同操作。

[[email protected] ~]# fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI orOSF disklabel

Building a new DOS disklabel with disk identifier 0x2646775b.

Changes will remain in memory only, until you decide to writethem.

After that, of course, the previous content won‘t berecoverable.

Warning: invalid flag 0x0000 of partition table 4 will be correctedby w(rite)

WARNING: DOS-compatible mode is deprecated. It‘s stronglyrecommended to

switch off the mode(command ‘c‘) and change display units to

sectors (command ‘u‘).

Command (m for help): m

Command action

a   toggle a bootable flag

b   edit bsd disklabel

c   toggle the dos compatibility flag

d   delete a partition

l   list known partition types

m   print this menu

n   add a new partition

o   create a new empty DOS partition table

p   print the partition table

q   quit without saving changes

s   create a new empty Sun disklabel

t   change a partition‘s system id

u   change display/entry units

v   verify the partition table

w   write table to disk and exit

x   extra functionality (experts only)

Command (m for help):

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-512, default 1):

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-512, default 512):

Using default value 512

Command (m for help): t

Selected partition 1

Hex code (type L to list codes): fd

Changed system type of partition 1 to fd (Linux raidautodetect)

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[[email protected] ~]# fdisk -l |more

注:Linux分区默认的类型编号为83,RAID的类型编号为fd,所以要将磁盘分区的类型改为fd。

5块磁盘全部分区完毕,如图3所示

图3

4.生成RAID5阵列

阵列名字为/dev/md0,组成阵列的磁盘有4块,分别为/dev/sdb1、/dev/sdc1、dev/sdd1、/dev/sde1。

mdadm –C /dev/md0 –l 5 –n 3 –x 1 /dev/sd[b-e]1

参数说明:

-C Create a new array

-l Set RAID level

-n Specify the number of active devices in the array

-x Specify the number of spare devices in the initial array

5.将阵列格式化,类型为ext4

mkfs –t ext4 /dev/md0

6.查看RAID信息

mdadm –D /dev/md0

从图4可知,阵列中共有4块磁盘,/dev/sdb1、/dev/sdc1、/dev/sdd1为active状态,/dev/sde1为spare状态。

图4

7.建立挂载点,并挂载。

mkdir /raid5

mount /dev/md0 /raid5

8.使用RAID设备

9.设置磁盘/dev/sdb1损坏

mdadm /dev/md0 –f /dev/sdb1

10.再次查看RAID信息

mdadm –D /dev/md0

从图5可知,/dev/sde1、/dev/sdc1、/dev/sdd1为active状态,/dev/sdb1为faulty状态。

图5

11.检查原阵列中的数据

cat /raid5/hello.txt

12.移除损坏的磁盘

mdadm /dev/md0 –r /dev/sdb1

13.向阵列中添加新的备用磁盘

mdadm /dev/md0 –a /dev/sdf1

14.查看添加备用磁盘后的RAID信息

mdadm –D /dev/md0

从图6可知,/dev/sde1、/dev/sdc1、/dev/sdd1为active状态,/dev/sdf1为spare状态。

处于faulty状态的/dev/sdb1已被移除。

图6

15.检查阵列中的数据

cat /raid5/hello.txt

16.卸载RAID设备,并停止RAID阵列

umount /dev/md0

mdadm -S /dev/md0

17.再启动RAID阵列,并查看启动阵列后的RAID信息

mdadm –A /dev/md0 /dev/sd[c-f]1

mdadm –D /dev/md0

18.挂载RAID设备,并检查阵列中的数据

由图可知阵列中的数据没有受到影响,至此实验结束。

时间: 2024-10-27 02:42:17

在Linux上使用软RAID模拟磁盘损坏实验的相关文章

在centos6.9上实现软RAID

在centos6.9上实现软RAID 什么是RAID? RAID,全称Redundant Arrays of Inexpensive(Independent)Disks.简单翻译叫磁盘阵列.    通俗一点讲就是多个磁盘合成一个"阵列"来提供更好的性能.冗余,或者两者都提供.    目的有两个:一个是提高磁盘的IO能力,提高耐用性. 实现方式有3种:    1.外接式磁盘阵列:通过扩展卡提供适配能力    2.内接式RAID:主板集成RAID控制器-安装OS前在BIOS里配置    3

linux中的软RAID实现,逻辑卷和btrfs文件系统

RAID: Redundant Arrays of Inexpensive Disks,廉价磁盘冗余阵列:             Redundant Arrays of Independent Disks,独立磁盘冗余阵列: 1988年,UC Berkeley提出的"A case for Redundant Arrays of Inexpensive Disks"旨在将多个相对廉价IDE接口的磁盘组合成一个"阵列",并不是将磁盘简单罗列在一起,而是根据特定规则进行

Linux下做软RAID

1.查看有多少块硬盘可用#fdisk -l嗯,一般而言,留下系统盘不动,其它的盘如果大小相同的话,统统合起来做一个raid. 2.决定做什么类型的raid.raid-0.raid-1.raid-5?如果有三块一样大小的盘(或者更多),那么极力推荐raid-5.否则请根据实际情况选择raid-0或者raid-1 3.卸载已挂载的数据盘首先查看下,要做raid的几块盘是不是已经被挂载过了#mount如果有,那么挨个删除数据.然后用umount卸载.然后,还有,打开/etc/fstab,注释掉那些刚卸

在linux中实现软RAID

    前言  在生产环境中不推荐大家使用软RAID,写这篇文章的主要目的是希望大家更好的了解RAID的工作原理: 软RAID就是在系统层面实现RAID功能了,数据处理主要依赖cpu来完成,没有第三方控制处理器和I/O芯片 在linux中是使用内置的md模块,模拟RAID卡,实现软RAID.在内核中有md模块完成将多个物理设备组合成一个逻辑设备    实现方式: 因为linux支持将块设备制作成RAID,可以使用不同磁盘的不同分区组件RAID:但是分区大小必须一样: 一.首先创建几个大小相同的分

Linux下创建软Raid

1- Linux下创建软Raid 步骤1.创建磁盘,并转换为fd #fdisk /dev/sdb //这里使用新的磁盘sdb 然后输入n ,创建分区 使用默认的起始点 输入大小为+100M 然后重复刚才的操作4次,创建4个分区,创建完4个分区后 我们还要改变分区的ID 在分区的主菜单输入T 然后输入要改变ID的分区号,也就是最后4个分区 然后输入分区的ID:fd 四个分区都改成FD 完成后,在分区主菜单里面使用p 查看分区信息 是不是最后4个分区都是ID为fd 如果OK的话,就输入w 保存退出

linux组建的软raid md0重启后自动变成md127的解决方法

在创建完raid时,如果在/etc/下没有生成mdadm.conf配置文件 请运行:mdadm --detail --scan >> /etc/mdadm.conf 此时可以:vim /etc/mdadm.conf 将ARRAY 后的/dev/md/localhost.localdomain:0改为/dev/md0 重reboot后,问题解决

Linux 常见 RAID 及软 RAID 创建

RAID可以大幅度的提高磁盘性能,以及可靠性,这么好的技术怎么能不掌握呢!此篇介绍一些常见RAID,及其在Linux上的软RAID创建方法. mdadm 创建软RAID mdadm -C -v /dev/创建的设备名 -l级别 -n数量 添加的磁盘 [-x数量 添加的热备份盘] -C:创建一个新的阵列--create -v:显示细节--verbose -l:设定RAID级别--level= -n:指定阵列中可用device数目--raid-devices= -x:指定初始阵列的富余device数

为软raid创建更换磁盘

在Linux下为软raid替换磁盘.

软RAID的实现

1.命令介绍 mdadm mdadm [mode] <raiddevice> [options] <component-devices> mode:  Assemble:将原来属于一个阵列的每个块设备组装为一个阵列 Build:创建或组装不需要元数据的阵列 Manage:管理阵列(添加或删除) Misc:允许单独对阵列中的某个设备进行操作(如停止阵列) Follow or Monitor:监控RAID的状态 Grow:改变RAID的容量或阵列中的设备数目 <raiddevic