RAID服务器
RAID
RAID磁盘冗余阵列
RAID LEVEL0:N块相同大小的存储空间,数据分割为N份,每个空间存1/N,提高读写速度,数据安全性不变
RAID LEVEL1:N块相同空间,同一份数据,拷贝N份,提高数据安全性,浪费存储空间
RAID LEVEL5:最少3块空间,2块空间存储分割的数据,第3块空间校验,
硬盘可以损坏1块,读写速度变慢,数据利用率高,数据安全性有一定提高
RAID LEVEL10 1+0 四块
RAID LEVEL50 5+0 六块
实现:硬件RAID
mdadm 添加若干个分区或硬盘
针对分区和硬盘
RAID0,RAID1,RAID5,RAID10
产生名称md0,md1,md5,md10虚拟存储设备
先添加新的硬盘大小为20G
1.创建raid0
把添加的硬盘打标签
[root@ws2 ~]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mktable
新的磁盘标签类型? gpt
(parted) p
[root@ws2 ~]# udevadm settle
分大小为1G的分区
[root@ws2 ~]# fdisk /dev/sdb
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):n
分区号 (1-128,默认 1):
第一个扇区 (34-41943006,默认 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943006,默认 41943006):+1G
已创建分区 1
命令(输入 m 获取帮助):n
分区号 (2-128,默认 2):
第一个扇区 (34-41943006,默认 2099200):
Last sector, +sectors or +size{K,M,G,T,P} (2099200-41943006,默认 41943006):+1G
已创建分区 2
命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@ws2 ~]# partprobe /dev/sdb
将/dev/sdb{1…2}和建立RAID等级为RAID 0的md0(设备名)
[root@ws2 ~]# mdadm -Cv /dev/md0 -l 0 -n 2 /dev/sdb{1..2}
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
查看RAID详细信息
[root@ws2 ~]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Mon Aug 18 10:49:47 2025Raid Level : raid0Array Size : 2093056 (2044.00 MiB 2143.29 MB)Raid Devices : 2Total Devices : 2Persistence : Superblock is persistentUpdate Time : Mon Aug 18 10:49:47 2025State : clean Active Devices : 2Working Devices : 2Failed Devices : 0Spare Devices : 0Chunk Size : 512KConsistency Policy : noneName : ws2.example.com:0 (local to host ws2.example.com)UUID : f559f229:bc6d2fd6:acd373ce:144fb08cEvents : 0Number Major Minor RaidDevice State0 8 17 0 active sync /dev/sdb11 8 18 1 active sync /dev/sdb2
创建目录
[root@ws2 ~]# mkdir /md0
格式化/dev/md0
[root@ws2 ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0 isize=512 agcount=8, agsize=65408 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=523264, imaxpct=25= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
查看uuid
[root@ws2 ~]# blkid
/dev/sda1: UUID="23ebe59f-195e-449e-afb8-ac20d404bc45" TYPE="xfs"
/dev/sda2: UUID="cb56db34-2508-4e45-9737-d8779f561a46" TYPE="xfs"
/dev/sda3: UUID="c686d778-b62c-4dcd-984c-c6f8f040709c" TYPE="swap"
/dev/sdb1: UUID="f559f229-bc6d-2fd6-acd3-73ce144fb08c" UUID_SUB="545f326d-e63c-8b4d-26c9-b61af05ee1fd" LABEL="ws2.example.com:0" TYPE="linux_raid_member" PARTUUID="025713d1-a87d-4c29-9ee8-2b7fe6fbaa3e"
/dev/sdb2: UUID="f559f229-bc6d-2fd6-acd3-73ce144fb08c" UUID_SUB="cf406417-f8ad-9921-1b87-bbfcf7a36bac" LABEL="ws2.example.com:0" TYPE="linux_raid_member" PARTUUID="1b4bd415-2479-455c-9be2-526498d5161d"
/dev/sr0: UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/md0: UUID="fdc9077f-46cb-46a9-b953-ea964da3e1b6" TYPE="xfs"
进入/etc/fstab挂载
[root@ws2 ~]# mount -a
[root@ws2 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 50G 3.6G 47G 8% /
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 13M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 1014M 163M 852M 17% /boot
tmpfs 394M 24K 394M 1% /run/user/0
/dev/sr0 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
/dev/md0 2.0G 33M 2.0G 2% /md0
块设备信息
[root@ws2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 50G 0 part /
└─sda3 8:3 0 4G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 1G 0 part
│ └─md0 9:0 0 2G 0 raid0 /md0
└─sdb2 8:18 0 1G 0 part └─md0 9:0 0 2G 0 raid0 /md0
sr0 11:0 1 4.3G 0 rom /run/media/root/CentOS 7 x86_64
2.创建raid1
分大小为1G的分区
[root@ws2 ~]# fdisk /dev/sdb
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):n
分区号 (3-128,默认 3):
第一个扇区 (34-41943006,默认 4196352):
Last sector, +sectors or +size{K,M,G,T,P} (4196352-41943006,默认 41943006):+1G
已创建分区 3命令(输入 m 获取帮助):n
分区号 (4-128,默认 4):
第一个扇区 (34-41943006,默认 6293504):
Last sector, +sectors or +size{K,M,G,T,P} (6293504-41943006,默认 41943006):+1G
已创建分区 4命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@ws2 ~]# partprobe /dev/sdb
将/dev/sdb{3…4}和建立RAID等级为RAID 1的md1(设备名)
[root@ws2 ~]# mdadm -Cv /dev/md1 -l 1 -n 2 /dev/sdb{3..4}
mdadm: Note: this array has metadata at the start andmay not be suitable as a boot device. If you plan tostore '/boot' on this device please ensure thatyour boot-loader understands md/v1.x metadata, or use--metadata=0.90
mdadm: size set to 1046528K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
格式化
创建目录
挂载
查看md1的详细信息
3.创建raid5
分大小为1G的分区 分三个 两个数据设备一个 校验设备与热设备
步骤略
5 8390656 10487807 1G Linux filesyste 6 10487808 12584959 1G Linux filesyste 7 12584960 14682111 1G Linux filesyste 8 14682112 16779263 1G Linux filesyste
将/dev/sdb{5…7}和建立RAID等级为RAID 5的md5(设备名)还有添加热设备 // /dev/md5–spare-devices=1 /dev/sdb8
[root@ws2 ~]# mdadm -Cv /dev/md5 -l 5 -n 3 /dev/sdb{5..7}
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 1046528K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@ws2 ~]# mdadm -D /dev/md5 // 添加热设备
模拟硬盘故障
[root@ws2 ~]# mdadm -f /dev/md5 /dev/sdb5
从以上结果可以发现原来的热备盘/dev/sdb5正在参与RAID 5的重建,而原来的/dev/sdb8变成了坏盘。
-r 是移除
-a 是添加
后面格式化
创建目录
挂载
4.创建raid10
分大小为1G的分区 分4个
先分两个为raid为1的设备
[root@ws2 ~]# mdadm -Cv /dev/md101 -l 1 -n 2 /dev/sdb9 /dev/sdb10
mdadm: Note: this array has metadata at the start andmay not be suitable as a boot device. If you plan tostore '/boot' on this device please ensure thatyour boot-loader understands md/v1.x metadata, or use--metadata=0.90
mdadm: size set to 1046528K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md101 started.
再分两个为raid为1的设备
[root@ws2 ~]# mdadm -Cv /dev/md102 -l 1 -n 2 /dev/sdb{11..12}
mdadm: Note: this array has metadata at the start andmay not be suitable as a boot device. If you plan tostore '/boot' on this device please ensure thatyour boot-loader understands md/v1.x metadata, or use--metadata=0.90
mdadm: size set to 1046528K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md102 started.
最后把两个分为为raid1的分为raid10
[root@ws2 ~]# mdadm -Cv /dev/md102 -l 1 -n 2 /dev/sdb{11..12}
mdadm: Note: this array has metadata at the start andmay not be suitable as a boot device. If you plan tostore '/boot' on this device please ensure thatyour boot-loader understands md/v1.x metadata, or use--metadata=0.90
mdadm: size set to 1046528K
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md102 started.
格式化
创建目录
挂载