RAID简述
Raid是把多张硬盘组成一个容量更大,安全性更高的磁盘组。并把数据分成多个区段分别存放在不同的物理硬盘设备上,利用分散读写技术来提高整个磁盘组的性能。
类型
常见的Raid方案
- RAID0:最少两块,是把多个磁盘合并成一个大磁盘,来提高读写,但数据安全性得不到保障
- RAID1:最少两块,称之为镜像,与RAID0正好相反,为了提高数据安全性数据保留两份,成本极高
- RAID5:最少三块,RAID5 技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID 5 磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上,这样的好处是其中任何一设备损坏后不至于出现致命缺陷
-
RAID10:最少四块,RAID 10 技术是 RAID 1+RAID 0 技术的一个“组合体”。其中先分别
两两制作成 RAID 1 磁盘阵列,以保证数据的安全性;然后再对两个 RAID 1磁盘阵列实施 RAID 0 技
术,进一步提高硬盘设备的读写速度。这样从理论上来讲,只要坏的不是同一组中的所有硬盘,那么最
多可以损坏 50%的硬盘设备而不丢失数据。
实操
环境:Centos7 ,
VMWare Workstation添加四块硬盘
添加好之后重启机器,查看磁盘是否添加成功
[root@master ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part
├─centos-root 253:0 0 45.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sr0 11:0 1 4.4G 0 rom
创建RAID0
利用磁盘分区新建2个磁盘分区,每个大小为20 GB。用这2个20 GB的分区来模拟1个40 GB的硬盘。
最后查看磁盘名称
1.安装mdadm工具(预装好epel源)
mdadm是一个用于创建、管理、监控RAID设备的工具,它使用linux中的md驱动。
yum install -y mdadm
2.创建raid
将/dev/sdb和/dev/sdc建立RAID等级为RAID 0的md0(设备名)
[root@master ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
- xfs 格式化
[root@master ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0 isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
4.挂载
创建一个使用目录将设备md0挂载到目录下面
[root@master ~]# mkdir /raid0
[root@master ~]# mount /dev/md0 /raid0
[root@master ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 46G 1.4G 44G 4% /
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 378M 0 378M 0% /run/user/0
/dev/md0 40G 33M 40G 1% /raid0
可以看到有一个40G名为md0设备的大硬盘
5.永久挂载
mount只是临时对文件进行挂载,当机器宕机重启,将需要重新挂载,我们这里通过修改配置文件,来进行永久挂载
[root@master ~]# blkid /dev/md0
/dev/md0: UUID="e3073c81-ecdd-4de4-88bd-2161bac56acc" TYPE="xfs"
blkid命令查看块设备的文件系统类型、LABEL、UUID等信息
[root@master ~]# echo "/dev/md0 /raid0 xfs defaults 0 0" >> /etc/fstab
系统重启时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中,就不需要手动进行挂载了
6.查询raid的详细信息
[root@master ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Oct 4 21:54:44 2022
Raid Level : raid0
Array Size : 41908224 (39.97 GiB 42.91 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Oct 4 21:54:44 2022
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : master:0 (local to host master)
UUID : fc14cd19:77d3eecf:04f2b081:a0008bbc
Events : 0
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
删除RAID0
[root@master ~]# umount /raid0 ##去挂载
[root@master ~]# mdadm -S /dev/md0 ## 停止RAID
mdadm: stopped /dev/md0
[root@master ~]# mdadm --zero-superblock /dev/sdb
[root@master ~]# mdadm --zero-superblock /dev/sdc
--zero-superblock 来清空磁盘中RAID阵列的超级块信息。
RAID运维操作
1.利用磁盘分区新建4个磁盘分区,每个大小为20 GB。用3个20 GB的分区来模拟raid 5,加一个热备盘。
[root@master ~]# mdadm -Cv /dev/md5 -l 5 -n3 /dev/sdb /dev/sdc /dev/sdd --spare-devices=1 /dev/sde
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
2.查看RAID的详细信息,
[root@master ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Tue Oct 4 23:23:22 2022
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Oct 4 23:24:16 2022
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 4
Failed Devices : 0
Spare Devices : 2
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 50% complete
Name : master:5 (local to host master)
UUID : 14f81915:11b1621e:d8737c7f:b60cbc26
Events : 9
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 spare rebuilding /dev/sdd
3 8 64 - spare /dev/sde
3.模拟硬盘故障
[root@master ~]# mdadm -f /dev/md5 /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md5
4.查看RAID的详细信息
[root@master ~]# mdadm -D /dev/md5
/dev/md5:
·······
Consistency Policy : resync
Name : master:5 (local to host master)
UUID : 14f81915:11b1621e:d8737c7f:b60cbc26
Events : 20
Number Major Minor RaidDevice State
- 0 0 0 removed
1 8 32 1 active sync /dev/sdc
- 0 0 2 removed
0 8 16 - faulty /dev/sdb
3 8 64 - spare /dev/sde
4 8 48 - spare /dev/sdd
5.原来的热备盘/dev/sde正在参与RAID 5的重建,而原来的/dev/sdb变成了坏盘,热移除故障盘,并重新添加磁盘
[root@master ~]# mdadm -r /dev/md5 /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md5
[root@master ~]# mdadm -a /dev/md5 /dev/sdb
mdadm: added /dev/sdb
-f fail缩写 指定磁盘损坏 -r 从阵列中移除指定磁盘 -a 阵列中添加指定磁盘
6.格式化磁盘并进行挂载
[root@master ~]# mdadm -a /dev/md5 /dev/sdb
mdadm: added /dev/sdb
[root@master ~]# mkfs.xfs /dev/md5
meta-data=/dev/md5 isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@master ~]# mkdir /raid5
[root@master ~]# mount /dev/md5 /raid5/
[root@master ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 46G 1.4G 44G 4% /
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 378M 0 378M 0% /run/user/0
/dev/md5 40G 33M 40G 1% /raid5
结论
磁盘阵列有利有弊,要根据需求来选择类型,也可以对RAID进行组合使用,使数据安全和读写进一步提高。
标签:raid,运维,root,dev,master,sdb,RAID,mdadm,磁盘阵列 From: https://blog.51cto.com/ycloud/5745475