CentOS6.9下软件实现RAID5创建
来源:互联网 发布:电脑摄像头全屏软件 编辑:程序博客网 时间:2024/06/03 09:15
1.实验说明:
1.RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。RAID 5可以理解为是RAID 5可以理解为是RAID 0 和RAID 1的折中方案。RAID 5和RAID 4一样,数据以块为单位分布到各个磁盘上。RAID 5不对数据进行备份,而是把数据和其对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据损坏后,利用剩下的数据和相应的奇偶校验信息恢复被损坏的数据。RAID 5至少使用3块磁盘组成磁盘阵列。此处通过实验加深读RAID 5工作原理的了解。
2.mdadm是Linux下用于创建和管理软件RAID的命令,是一个模式化命令。但是由于现在服务器一般都带有RAID阵列卡,并且RAID阵列卡也很廉价,且由于软件RAID的自身缺陷(不能用作启动分区、使用CPU实现、降低CPU利用率),因此在生产环境下并不适用。但为了学习和了解RAID原理和管理,进行如下实验。
2.实验环境:
VMware Workstation 12.0.0 build-2985596 CentOS6.9 64位系统
3.前期准备:
1.开启VMware Workstation虚拟机中CentOS6.9 64位系统前,在虚拟机中新增4块新的虚拟磁盘,大小分别为20GB、25GB、30GB、35GB,添加方法:点击VM虚拟机的菜单“虚拟机(M)"-->"设置(S)Ctrl+D"-->”硬件“-->"添加(A)”-->"硬件类型:硬盘“-->"下一步(N)”-->"选择磁盘类型:默认不修改“-->”下一步(N)”-->"选择磁盘:勾选 创建新虚拟磁盘(V)“-->”下一步(N)”-->"指定磁盘容量 最大磁盘容量填需要增加的大小,例如20,表示20GB;立即分配所有空间(A)不勾选;将虚拟磁盘存储为单个文件(O)勾选-->”下一步(N)“-->”指定磁盘文件:默认不修改“-->点击”完成“,创建磁盘完成,按照此方法再创建剩下3个虚拟磁盘。
2.开启虚拟机中的CentOS系统,如果添加虚拟硬盘时系统正在运行,想不重启让虚拟机识别硬盘可以使用这个命令:echo '- - -' > /sys/class/scsi_host/host2/scan,让系统识别新增的硬盘。然后用命令lsblk查看当前系统已有块设备。如下:
[root@centos6 ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsr0 11:0 1 3.7G 0 rom /media/CentOS_6.9_Final # 已挂载光盘,此处可忽略sda 8:0 0 200G 0 disk # 根目录所在磁盘,此处可忽略├─sda1 8:1 0 1G 0 part /boot├─sda2 8:2 0 100G 0 part /├─sda3 8:3 0 50G 0 part /app├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 1G 0 part [SWAP]sdb 8:16 0 20G 0 disk # 此处为新增的第一块磁盘 sdc 8:32 0 25G 0 disk # 此处为新增的第二块磁盘sdd 8:48 0 30G 0 disk # 此处为新增的第三块磁盘sde 8:64 0 35G 0 disk # 此处为新增的第四块磁盘
4.正文:
1.实验前的规划:sdb、sdc、sdd组成RAID5,sde作为备用盘,因为组成RAID5的每个磁盘取出的空间要一致,组成后RAID最大空间取硬盘中最小的空间20G,所以磁盘sdc、sdd、sde要进行划分分区处理,如下操作在sdc上创建大小为20G的主分区,并按同样的操作方法,在sdd、sde上创建同样为20G的主分区。
[root@centos6 ~]# fdisk /dev/sdc # 对磁盘sdc分区Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0xe691aa35.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won't be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)WARNING: DOS-compatible mode is deprecated. It's strongly recommended 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): n # 创建新的分区 Command action e extended p primary partition (1-4)p # 选择创建主分区Partition number (1-4): 1 # 选择分区编号First cylinder (1-3263, default 1): # 按Enter键,获取默认扇区起始点Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-3263, default 3263): +20G # 输入创建的分区空间大小Command (m for help): p # 查看分区信息 Disk /dev/sdc: 26.8 GB, 26843545600 bytes255 heads, 63 sectors/track, 3263 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xe691aa35 Device Boot Start End Blocks Id System/dev/sdc1 1 2612 20980858+ 83 LinuxCommand (m for help): t # 修改系统分区idSelected partition 1Hex code (type L to list codes): fd # 可用输入L,查看输入id编号,Linux Raid的输入fdChanged system type of partition 1 to fd (Linux raid autodetect)Command (m for help): w # 保存退出 The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.
2.sdc、sdd、sde上分区创建好后如下,若看不到,可能是分区不同步,可以使用命令partx -a /dev/DEVICE同步。例如同步磁盘sdc, partx -a /dev/sdc.
[root@centos6 ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsr0 11:0 1 3.7G 0 rom /media/CentOS_6.9_Finalsda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot├─sda2 8:2 0 100G 0 part /├─sda3 8:3 0 50G 0 part /app├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 1G 0 part [SWAP]sdb 8:16 0 20G 0 disk sdc 8:32 0 25G 0 disk └─sdc1 8:33 0 20G 0 part sdd 8:48 0 30G 0 disk └─sdd1 8:49 0 20G 0 part sde 8:64 0 35G 0 disk └─sde1 8:65 0 20G 0 part3.使用命令mdadm创建RAID5阵列。
[root@centos6 ~]# mdadm -C /dev/md0 -a yes -l 5 -n 3 -x1 /dev/sd{b,c1,d1,e1} # 此条命令的详细解析请看备注mdadm: Defaulting to version 1.2 metadatamdadm: array /dev/md0 started.4.使用命令mdadm -D /dev/md0查看创建的RAID5阵列md0的信息,也可以使用命令cat /proc/mdstat查看md0的信息。
[root@centos6 ~]# mdadm -D /dev/md0/dev/md0: Version : 1.2 Creation Time : Mon Jun 19 21:09:04 2017 Raid Level : raid5 Array Size : 41910272 (39.97 GiB 42.92 GB) Used Dev Size : 20955136 (19.98 GiB 21.46 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Mon Jun 19 21:10:51 2017 State : clean Active Devices : 3Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Name : centos6.xh.com:0 (local to host centos6.xh.com) UUID : 07feea7a:f29f82fd:a59063c3:6b52657a Events : 18 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 33 1 active sync /dev/sdc1 4 8 49 2 active sync /dev/sdd1 3 8 65 - spare /dev/sde15.将阵列md0的配置保存到配置文件,以免系统重启,导致配置信息的丢失。
[root@centos6 ~]# ll /etc/mdadm.config # mdadm.conf本身不存在,要自己创建ls: cannot access /etc/mdadm.config: No such file or directory[root@centos6 ~]# mdadm -Ds /dev/md0 > /etc/mdadm.conf # 将生成的md0的配置信息保存到配置文件/etc/mdadm.conf[root@centos6 ~]# cat /etc/mdadm.conf ARRAY /dev/md0 metadata=1.2 spares=1 name=centos6.xh.com:0 UUID=07feea7a:f29f82fd:a59063c3:6b52657a6.在阵列md0上创建文件系统。
[root@centos6 ~]# mkfs.ext4 /dev/md0mke2fs 1.41.12 (17-May-2010)Filesystem label=...(中间省略)...This filesystem will be automatically checked every 38 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.7.查看阵列md0上创建的文件系统。
[root@centos6 ~]# blkid/dev/sda1: UUID="50d74642-6b7c-4df1-bb9c-d90f7a9849a3" TYPE="ext4" /dev/sda2: UUID="11baefb7-52b3-4d71-a4b3-d054606c452b" TYPE="ext4" /dev/sda3: UUID="f0f08ce9-77b9-4b4f-ba27-63583b24efea" TYPE="ext4" /dev/sda5: UUID="50d2c8e4-c1bf-49f3-b925-e5a602967bdc" TYPE="swap" /dev/sdb: UUID="07feea7a-f29f-82fd-a590-63c36b52657a" UUID_SUB="5cb22a99-15bb-1e91-d2fc-faf392669555" LABEL="centos6.xh.com:0" TYPE="linux_raid_member" /dev/sdc1: UUID="07feea7a-f29f-82fd-a590-63c36b52657a" UUID_SUB="97571e1a-e7b3-f665-42f5-42701c111dae" LABEL="centos6.xh.com:0" TYPE="linux_raid_member" /dev/sdd1: UUID="07feea7a-f29f-82fd-a590-63c36b52657a" UUID_SUB="e31d1b2b-8cdd-1c83-ff90-69ec0db5ccdf" LABEL="centos6.xh.com:0" TYPE="linux_raid_member" /dev/sde1: UUID="07feea7a-f29f-82fd-a590-63c36b52657a" UUID_SUB="373332ef-e2c8-daac-8e5f-84d73b76cddb" LABEL="centos6.xh.com:0" TYPE="linux_raid_member" /dev/md0: UUID="0e54fa3c-446f-4da4-a0fb-4f9dd927073c" TYPE="ext4" # md0上创建好的ext4文件系统8.挂载阵列md0上创建好的文件系统/dev/md0
[root@centos6 ~]# mount /dev/md0 /mnt/raid5[root@centos6 ~]# vim /etc/fstab # 将挂载信息写入配置文件[root@centos6 ~]# tail -n 1 /etc/fstab UUID=0e54fa3c-446f-4da4-a0fb-4f9dd927073c /mnt/raid5 ext4 defaults 0 0 # 在/etc/fstab最后一行追加内容,md0的UUID可以通过blkid命令查看,也可用设备名,不推荐[root@centos6 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda2 99G 4.8G 89G 6% /tmpfs 491M 76K 491M 1% /dev/shm/dev/sda3 50G 1.1G 46G 3% /app/dev/sda1 976M 35M 891M 4% /boot/dev/sr0 3.7G 3.7G 0 100% /media/CentOS_6.9_Final/dev/md0 40G 48M 38G 1% /mnt/raid59.使用文件系统
[root@centos6 ~]# cp /etc/man.config /mnt/rad5[root@centos6 ~]# ls -l /mnt/raid5total 24drwx------. 2 root root 16384 Jun 19 21:35 lost+found-rw-r--r--. 1 root root 4940 Jun 19 21:46 man.config[root@centos6 ~]# head -n 5 /mnt/raid5/man.config ## Generated automatically from man.conf.in by the# configure script.## man.conf from man-1.6f10.软件模拟磁盘/dev/sdc损坏,看md0的运行情况。
[root@centos6 ~]# mdadm -D /dev/md0 # 查看磁盘sdc损坏前,md0的情况/dev/md0:...(中间省略)... Update Time : Tue Jun 20 07:23:30 2017 State : clean Active Devices : 3 # 活动的设备有3个Working Devices : 4 # 工作的设备有4个 Failed Devices : 0 # 失效的设备有0个 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Name : centos6.xh.com:0 (local to host centos6.xh.com) UUID : 07feea7a:f29f82fd:a59063c3:6b52657a Events : 18 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 1 8 33 1 active sync /dev/sdc1 4 8 49 2 active sync /dev/sdd1 3 8 65 - spare /dev/sde1 # /dev/sde1处于备用状态[root@centos6 ~]# mdadm /dev/md0 -f /dev/sdc1 # 模拟磁盘/dev/sdc损坏mdadm: set /dev/sdc1 faulty in /dev/md0[root@centos6 ~]# mdadm -D /dev/md0 -f /dev/sdc1 # 查看磁盘/dev/sdc损坏后,md0的运行情况/dev/md0:...(中间省略)... Update Time : Tue Jun 20 07:40:55 2017 State : clean, degraded, recovering # 降级使用,正在恢复 Active Devices : 2 # 活动的设备有2个Working Devices : 3 # 工作的设备有3个 Failed Devices : 1 # 失效的设备有1个 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Rebuild Status : 42% complete # 正在重建md0 Name : centos6.xh.com:0 (local to host centos6.xh.com) UUID : 07feea7a:f29f82fd:a59063c3:6b52657a Events : 26 Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 3 8 65 1 spare rebuilding /dev/sde1 4 8 49 2 active sync /dev/sdd1 # sdd1由备用状态转为活动状态 1 8 33 - faulty /dev/sdc1 # 失效设备sdc1mdadm: /dev/sdc1 does not appear to be an md device
11.从阵列md0中移除sdc1.
[root@centos6 ~]# mdadm /dev/md0 -r /dev/sdc1mdadm: hot removed /dev/sdc1 from /dev/md0[root@centos6 ~]# mdadm -D /dev/md0 /dev/md0:...(中间省略)... Number Major Minor RaidDevice State 0 8 16 0 active sync /dev/sdb 3 8 65 1 active sync /dev/sde1 4 8 49 2 active sync /dev/sdd112.模拟硬盘物理损坏,关闭虚拟机,移除空间大小的为20G的硬盘,重启虚拟机,启动后,查看md0的信息
[root@centos6 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda2 99G 5.8G 88G 7% /tmpfs 491M 76K 491M 1% /dev/shm/dev/sda3 50G 2.1G 45G 5% /app/dev/sda1 976M 35M 891M 4% /boot/dev/md0 40G 1.1G 37G 3% /mnt/raid5[root@centos6 ~]# mdadm -D /dev/md0/dev/md0: Version : 1.2 Creation Time : Mon Jun 19 21:09:04 2017 Raid Level : raid5 Array Size : 41910272 (39.97 GiB 42.92 GB) Used Dev Size : 20955136 (19.98 GiB 21.46 GB) Raid Devices : 3 Total Devices : 2 Persistence : Superblock is persistent Update Time : Tue Jun 20 08:20:17 2017 State : clean, degraded # 降级使用 Active Devices : 2 Working Devices : 2 # 只有2块硬盘在工作 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Name : centos6.xh.com:0 (local to host centos6.xh.com) UUID : 07feea7a:f29f82fd:a59063c3:6b52657a Events : 40 Number Major Minor RaidDevice State 0 0 0 0 removed 3 8 49 1 active sync /dev/sdd1 4 8 33 2 active sync /dev/sdc1[root@centos6 ~]# cd /mnt/raid5/ [root@centos6 raid5]# ls # md0可以正常访问bigfile lost+found man.config[root@centos6 raid5]# head -n 5 man.config ## Generated automatically from man.conf.in by the# configure script.## man.conf from man-1.6f13.查看还有空闲磁盘,为RAID增加一块硬盘
[root@centos6 ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsr0 11:0 1 3.7G 0 rom /media/CentOS_6.9_Finalsda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot├─sda2 8:2 0 100G 0 part /├─sda3 8:3 0 50G 0 part /app├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 1G 0 part [SWAP]sdb 8:16 0 25G 0 disk # 对比之前查看块设备信息,可以发现设备名来标识设备是不稳定的,设备名会因设备的增减、系统重启发生改变└─sdb1 8:17 0 20G 0 part # 设备sdb1是空闲的sdc 8:32 0 30G 0 disk └─sdc1 8:33 0 20G 0 part └─md0 9:0 0 40G 0 raid5 /mnt/raid5sdd 8:48 0 35G 0 disk └─sdd1 8:49 0 20G 0 part └─md0 9:0 0 40G 0 raid5 /mnt/raid5[root@centos6 ~]# mdadm /dev/md0 -a /dev/sdb1 # 将磁盘sdb1添加到md0mdadm: added /dev/sdb1[root@centos6 ~]# cat /proc/mdstat # 查看md0信息Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sdb1[5] sdc1[4] sdd1[3] 41910272 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU] [==>..................] recovery = 10.0% (2103556/20955136) finish=1.4min speed=210355K/sec # 正在重建md0 unused devices: <none>
5.备注:
1.mdadm命令的简单讲解:
mdadm: 模式化的工具
命令的语法格式: mdadm [mode] <raiddevice> [options] <component-devices>
支持的RAID级别:LINEAR,RAID0, RAID1, RAID 4, RAID 5, RAID 6, RAID 10
模式:
创建: -C
装配:-A
监控: -F
管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意块设备
-C: 创建模式
-n #: 使用#个设备来创建此RAID
-l #: 指明要创建的RAID的级别
-a {yes|no}: 自动创建目标RAID设备的设备文件
-c CHUNK_SIZE: 指明块大小
-x #: 指明空闲盘的个数
-D: 显示raid的详细信息:
mdadm -D /dev/md#
管理模式:
-f: 指定标记的磁盘为损坏
-a: 添加磁盘
-r: 移除磁盘
观察md的状态:
cat /proc/mdstat
- CentOS6.9下软件实现RAID5创建
- 在RHEL5下实现RAID5磁盘阵列
- Linux下用mdadm命令创建软raid5
- mdadm创建RAID5
- 使用mdadm快速创建RAID5
- 在centos6.4下安装虚拟机软件
- linux环境下做RAID5
- raid5
- raid5
- 【2017/4/9】 centos6.5下安装oracle11.2.0.4软件
- dell r720服务器raid5安装centos6.5系统
- mdadm创建的raid5增加硬盘问题
- Centos6.5下实现Rsync同步
- 在centos6.5下安装风暴追踪软件TITAN20130625版本
- CentOS6.5下安装远程桌面服务端软件VNC Server
- centos6.9下安装tomcat8
- linux下如何实验硬raid5
- 创建Zend Framework 项目 linux ubuntu 或者centos6.3下
- Git忽略特殊文件
- 面试题12:打印1到最大的N位数
- home键监听点击
- Struts2(四)使用Struts2中的拦截器
- iptables匹配条件总结1
- CentOS6.9下软件实现RAID5创建
- 漫谈千亿级数据优化实践:一次数据优化实录
- 解释为何 remote()->transact可以直接调用->transact?
- 使用Fiddler进行抓包<二>
- 组合模式
- Lua的函数参数为table时奇特现象
- 【0010】mysql修改root密码4种方法
- ROM 、RAM和FLASH 的区别
- 新闻客户端