2024年Linux最全【mdadm】Linux系统软RAID的创建方法_mdadm ssd cache(1),2024年互联网大厂Linux运维面经总结

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

= 168
这里的10000*(1-0.3)0.6表示是读的iops,比例是0.6,除掉cache命中,实际只有4200个iops。4 * (100000.4) 表示写的iops,因为每一个写,在raid5中,实际发生了4个io,所以写的iops为16000个
为了考虑raid5在写操作的时候,那2个读操作也可能发生命中,所以更精确的计算为:
单块盘的iops = (10000*(1-0.3)0.6 + 2 * (100000.4)(1-0.3) + 2 * (100000.4))/120
= (4200 + 5600 + 8000)/120
= 148
计算出来单个盘的iops为148个,基本达到磁盘极限

raid10

单块盘的iops = (10000*(1-0.3)0.6 + 2 * (100000.4))/120
= (4200 + 8000)/120
= 102


可以看到,因为raid10对于一个写操作,只发生2次io,所以,同样的压力,同样的磁盘,每个盘的iops只有102个,还远远低于磁盘的极限iops。


#### 小结


所以要求较高的空间利用率,对安全性要求不是特别高、大文件存储的系统采用RAID5比较好。  
 相反,安全性要求很高,不计成本,数据频繁写入的系统采用RAID10的方式比较好。


## Raid搭建方法


系统为CentOS7


查看当前磁盘信息



[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 8.0G 1.5G 6.6G 19% /
/dev/sda1 1014M 163M 852M 16% /boot
tmpfs 98M 0 98M 0% /run/user/0

[root@localhost ~]# fdisk -l

磁盘 /dev/sda:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000acd25

设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 20971519 9436160 8e Linux LVM

磁盘 /dev/mapper/centos-root:8585 MB, 8585740288 字节,16769024 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/mapper/centos-swap:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


### 添加磁盘


试验环境添加5块1G硬盘


[![BLOG_20200304_150117_78](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9ibG9nLnN0YXJtZW93LmNuL21lZGlhL2Jsb2cvaW1hZ2VzLzIwMjAvMDMvQkxPR18yMDIwMDMwNF8xNTAxMTdfNzgucG5n?x-oss-process=image/format,png)](https://blog.starmeow.cn/detail/c24cd76e1ce41366a4bbe8a49b02a028/)


此时在系统中是没有读出的,可以通过重新扫描 SCSI 总线,在不重启虚拟机的情况下添加 SCSI 设备。或者重启虚拟机。



[root@localhost ~]# echo “- - -” > /sys/class/scsi_host/host[按Tab]
host0/ host1/ host2/
[root@localhost ~]# echo “- - -” > /sys/class/scsi_host/host0/scan
[root@localhost ~]# echo “- - -” > /sys/class/scsi_host/host1/scan
[root@localhost ~]# echo “- - -” > /sys/class/scsi_host/host2/scan
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 8.0G 1.5G 6.6G 19% /
/dev/sda1 1014M 163M 852M 16% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@localhost ~]# fdisk -l

磁盘 /dev/sda:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000acd25

设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 20971519 9436160 8e Linux LVM

磁盘 /dev/mapper/centos-root:8585 MB, 8585740288 字节,16769024 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/mapper/centos-swap:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sdb:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sdc:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sdd:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sde:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sdf:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


使用`fdisk -l`可以看到新添加的5块硬盘,从`sdb`到`sdf`


### 初始化磁盘设置



[root@localhost ~]# fdisk /dev/sd
sda sda1 sda2 sdb sdc sdd sde sdf
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x155d620b 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag # 切换可启动标志
b edit bsd disklabel # 编辑bsd磁盘标签
c toggle the dos compatibility flag # 切换dos兼容性标识
d delete a partition # 删除分区
g create a new empty GPT partition table # 创建一个新的GPT分区表
G create an IRIX (SGI) partition table # 创建一个IRIX(SGI)分区表
l list known partition types # 列出已知的分区类型
m print this menu # 打印此菜单
n add a new partition # 添加一个新分区
o create a new empty DOS partition table # 创建一个新的DOS分区表
p print the partition table # 打印分区表
q quit without saving changes # 退出而不保存更改
s create a new empty Sun disklabel # 创建一个新的空Sun磁盘标签
t change a partition`s system id # 更改分区的系统ID
u change display/entry units # 更改显示/输入单位
v verify the partition table # 验证分区表
w write table to disk and exit # 将分区表写入磁盘并退出
x extra functionality (experts only) # 额外功能(专家模式)

命令(输入 m 获取帮助):n # 新建分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p # p是主分区,e是扩展分区
分区号 (1-4,默认 1): # 保持默认
起始 扇区 (2048-2097151,默认为 2048): # 起始位置,默认
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-2097151,默认为 2097151): # raid5要用到整块磁盘,默认为整块
将使用默认值 2097151
分区 1 已设置为 Linux 类型,大小设为 1023 MiB

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):L # 列出所有的分区类型,及菜单m中的l

0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 ❤️ 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
Hex 代码(输入 L 列出所有代码):fd # 选择代码,即Linux raid 自动
已将分区“Linux”的类型更改为“Linux raid autodetect”

命令(输入 m 获取帮助):w # 保存退出即可
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

[root@localhost ~]# fdisk -l sdb # 列出指定磁盘分区表
fdisk: 打不开 sdb: 没有那个文件或目录
[root@localhost ~]# fdisk -l /dev/sdb

磁盘 /dev/sdb:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x155d620b

设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2097151 1047552 fd Linux raid autodetect

即可看到硬盘被分为一个主分区,类型为raid


同样对`sdc`到`sdf`剩下的磁盘进行一样的操作。


#### 简版步骤


**`fdisk /dev/sd[编号]`–>`n`(新建分区)–>`p`(主分区)–>`回车`(分区号默认1)–>`回车`(起始扇区默认2028)–>`回车`(大小默认)–>`t`(更改分区系统ID)–>`fd`(Linux raid 自动)–>`w`保存退出。**


#### 修改完分区表信息


修改完后,`sdb`到`sdf`信息如下。



[root@localhost ~]# fdisk -l /dev/sd[b-f]

磁盘 /dev/sdb:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x155d620b

设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2097151 1047552 fd Linux raid autodetect

磁盘 /dev/sdc:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4efd7c63

设备 Boot Start End Blocks Id System
/dev/sdc1 2048 2097151 1047552 fd Linux raid autodetect

磁盘 /dev/sdd:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6320f4f2

设备 Boot Start End Blocks Id System
/dev/sdd1 2048 2097151 1047552 fd Linux raid autodetect

磁盘 /dev/sde:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9f1031c0

设备 Boot Start End Blocks Id System
/dev/sde1 2048 2097151 1047552 fd Linux raid autodetect

磁盘 /dev/sdf:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x88fb5cf3

设备 Boot Start End Blocks Id System
/dev/sdf1 2048 2097151 1047552 fd Linux raid autodetect


### 安装mdadm


madam是Linux下的raid管理工具



[root@localhost ~]# yum install mdadm -y


#### mdadm帮助



[root@localhost ~]# mdadm --help
mdadm is used for building, managing, and monitoring
Linux md devices (aka RAID arrays)
Usage: mdadm --create device options…
Create a new array from unused devices. # 使用空闲的设备创建一个新阵列
mdadm --assemble device options…
Assemble a previously created array. # 组装之前创建的阵列
mdadm --build device options…
Create or assemble an array without metadata. # 创建或组装一个没有元数据的阵列
mdadm --manage device options…
make changes to an existing array. # 对现有阵列进行更改,比如增加热备磁盘或者设置某个磁盘失效,然后从阵列中删除这个磁盘
mdadm --misc options… devices
report on or modify various md related devices. # 报告或修改各种md相关设备,比如查询阵列或者设备的状态信息
mdadm --grow options device
resize/reshape an active array # 调整/重塑一个活动阵列,改变阵列中每个设备被使用的容量或阵列中的设备的数目
mdadm --incremental device
add/remove a device to/from an array as appropriate # 根据需要在阵列中添加/删除一个设备
mdadm --monitor options…
Monitor one or more array for significant changes. # 监视一个或多个阵列,查看是否有重大更改。
mdadm device options…
Shorthand for --manage.
Any parameter that does not start with ‘-’ is treated as a device name
or, for --examine-bitmap, a file name.
The first such name is often the name of an md device. Subsequent
names are often names of component devices.

For detailed help on the above major modes use --help after the mode
e.g.
mdadm --assemble --help
For general help on options use
mdadm --help-options
[root@localhost ~]# mdadm --help-options
Any parameter that does not start with ‘-’ is treated as a device name
or, for --examine-bitmap, a file name.
The first such name is often the name of an md device. Subsequent
names are often names of component devices.

Some common options are:
–help -h : General help message or, after above option,
mode specific help message
–help-options : This help message
–version -V : Print version information for mdadm
–verbose -v : Be more verbose about what is happening
–quiet -q : Don`t print un-necessary messages
–brief -b : Be less verbose, more brief
–export -Y : With --detail, --detail-platform or --examine use
key=value format for easy import into environment
–force -f : Override normal checks and be more forceful

–assemble -A : Assemble an array
–build -B : Build an array without metadata
–create -C : Create a new array
–detail -D : Display details of an array
–examine -E : Examine superblock on an array component
–examine-bitmap -X: Display the detail of a bitmap file
–examine-badblocks: Display list of known bad blocks on device
–monitor -F : monitor (follow) some arrays
–grow -G : resize/ reshape and array
–incremental -I : add/remove a single device to/from an array as appropriate
–query -Q : Display general information about how a
device relates to the md driver
–auto-detect : Start arrays auto-detected by the kernel


### 创建阵列


#### 创建阵列帮助



[root@localhost ~]# mdadm -C --help
Usage: mdadm --create device --chunk=X --level=Y --raid-devices=Z devices

Options that are valid with --create (-C) are:
–bitmap= -b : Create a bitmap for the array with the given filename
: or an internal bitmap if ‘internal’ is given
–chunk= -c : chunk size in kibibytes
–rounding= : rounding factor for linear array (==chunk size)
–level= -l : raid level: 0,1,4,5,6,10,linear,multipath and synonyms
–parity= -p : raid5/6 parity algorithm: {left,right}-{,a}symmetric
–layout= : same as --parity, for RAID10: [fno]NN
–raid-devices= -n : number of active devices in array
–spare-devices= -x : number of spare (eXtra) devices in initial array
–size= -z : Size (in K) of each drive in RAID1/4/5/6/10 - optional
–data-offset= : Space to leave between start of device and start
: of array data.
–force -f : Honour devices as listed on command line. Don`t
: insert a missing drive for RAID5.
–run -R : insist of running the array even if not all
: devices are present or some look odd.
–readonly -o : start the array readonly - not supported yet.
–name= -N : Textual name for array - max 32 characters
–bitmap-chunk= : bitmap chunksize in Kilobytes.
–delay= -d : bitmap update delay in seconds.
–write-journal= : Specify journal device for RAID-4/5/6 array
–consistency-policy= : Specify the policy that determines how the array
-k : maintains consistency in case of unexpected shutdown.


#### 创建raid5


**`mdadm -C /dev/md0 -l5 -n4 -x1 /dev/sd[b-f]1`**



[root@localhost ~]# mdadm --create /dev/md0 --level=5 --raid-devices=4 --spare-devices=1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

简写

[root@localhost ~]# mdadm -C /dev/md0 -l5 -n4 -x1 /dev/sd[b-f]1


#### 查看阵列详情


**`mdadm -D /dev/md0`**



[root@localhost ~]# fdisk -l /dev/md0

磁盘 /dev/md0:3211 MB, 3211788288 字节,6273024 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):524288 字节 / 1572864 字节

查看阵列详情

[root@localhost ~]# mdadm --detail /dev/md0
[root@localhost ~]# mdadm -D /dev/md0 # 简写
/dev/md0: # raid设备文件名
Version : 1.2
Creation Time : Wed Mar 4 09:18:20 2020 # 创建时间
Raid Level : raid5 # raid等级
Array Size : 3136512 (2.99 GiB 3.21 GB) # raid可用磁盘大小
Used Dev Size : 1045504 (1021.00 MiB 1070.60 MB) # 每个磁盘可用容量
Raid Devices : 4 # 用做raid的磁盘数量
Total Devices : 5 # 全部磁盘数量
Persistence : Superblock is persistent

   Update Time : Wed Mar  4 09:18:26 2020
         State : clean 
Active Devices : 4  # 激活raid磁盘数量

Working Devices : 5 # 可工作磁盘数量
Failed Devices : 0 # 故障磁盘数量
Spare Devices : 1 # 热备磁盘数量

        Layout : left-symmetric
    Chunk Size : 512K

Consistency Policy : resync

          Name : localhost.localdomain:0  (local to host localhost.localdomain)
          UUID : 9e591745:7b4f4aa8:94168959:fc32ba2b  # 此设备(raid)的标识符
        Events : 18

Number   Major   Minor   RaidDevice State
   0       8       17        0      active sync   /dev/sdb1  # 阵列磁盘
   1       8       33        1      active sync   /dev/sdc1
   2       8       49        2      active sync   /dev/sdd1
   5       8       65        3      active sync   /dev/sde1

   4       8       81        -      spare   /dev/sdf1  # 热备磁盘

还可以通过下面的文件来查看系统软件磁盘阵列的情况

[root@localhost ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sde1[5] sdf14 sdd1[2] sdc1[1] sdb1[0]

md0使用了raid5,S为热备盘,其他表示阵列硬盘

  3136512 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
  # 3136512个block(每个block单位为1k),所以总容量约为3.21GB。
  # 使用raid5等级,写入磁盘的小区块(chunk)大小为512k,使用algorithm 2磁盘阵列算法。
  # [m/n]代表此数组需要m个设备,且n个设备是正常运行的。因此本md0需要4个设备且这4个设备正常运行。
  # 后面的[UUUU]代表的是四个所需的设备启动情况。U代表正常运作。若为\_则代表不正常。

unused devices:


#### 格式化与挂载使用raid


**`mkfs -t ext3 /dev/md0`**



[root@localhost ~]# mkfs
用法:
mkfs [选项] [-t <类型>] [文件系统选项] <设备> [<大小>]

选项:
-t, --type=<类型> 文件系统类型;若不指定,将使用 ext2
fs-options 实际文件系统构建程序的参数
<设备> 要使用设备的路径
<大小> 要使用设备上的块数
-V, --verbose 解释正在进行的操作;
多次指定 -V 将导致空运行(dry-run)
-V, --version 显示版本信息并退出
将 -V 作为 --version 选项时必须是惟一选项
-h, --help 显示此帮助并退出

更多信息请参阅 mkfs(8)。


使用mkfs格式化md0



[root@localhost ~]# mkfs -t ext3 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=128 blocks, Stripe width=384 blocks
196224 inodes, 784128 blocks
39206 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=805306368
24 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成


创建挂载点,并将md0挂载



[root@localhost ~]# mkdir /mnt/raid5

挂载

[root@localhost ~]# mount /dev/md0 /mnt/raid5/

查看分区信息

[root@localhost ~]# df -h /mnt/raid5/
文件系统 容量 已用 可用 已用% 挂载点
/dev/md0 2.9G 4.6M 2.8G 1% /mnt/raid5


#### 开机启动raid并自动挂载


设置开机启动raid



获取设备md0的UUID

[root@localhost ~]# mdadm -D /dev/md0 | grep -i uuid
UUID : 9e591745:7b4f4aa8:94168959:fc32ba2b
[root@localhost ~]# vim /etc/mdadm.conf

修改mdadm默认的配置文件,没有就新增;新建配置文件,写入下面的内容

[root@localhost ~]# cat /etc/mdadm.conf
ARRAY /dev/md0 UUID=9e591745:7b4f4aa8:94168959:fc32ba2b


设置自动挂载



[root@localhost ~]# vim /etc/fstab

编辑fstab文件,添加下面的行

[root@localhost ~]# cat /etc/fstab | grep md0
/dev/md0 /mnt/raid5 ext3 defaults 0 0


测试reboot后挂载请况



重启后查看

[root@localhost ~]# df -h /dev/md0
文件系统 容量 已用 可用 已用% 挂载点
/dev/md0 2.9G 4.6M 2.8G 1% /mnt/raid5


### 模拟raid错误


在raid分区中随意添加一些文件



[root@localhost ~]# cd /mnt/raid5/
[root@localhost raid5]# touch a.sh
[root@localhost raid5]# touch b.py
[root@localhost raid5]# mkdir d
[root@localhost raid5]# ll
总用量 20
-rw-r–r–. 1 root root 0 3月 4 10:29 a.sh
-rw-r–r–. 1 root root 0 3月 4 10:29 b.py
drwxr-xr-x. 2 root root 4096 3月 4 10:29 d
drwx------. 2 root root 16384 3月 4 09:47 lost+found


#### 管理阵列帮助



[root@localhost ~]# mdadm --manage --help

Options that are valid with management mode are:
–add -a : hotadd subsequent devices to the array # 向阵列中添加参数指定的设备
–re-add : subsequent devices are re-added if there were
: recent members of the array
–remove -r : remove subsequent devices, which must not be active # 将参数指定的空闲设备从阵列中移出去
–fail -f : mark subsequent devices a faulty # 将参数指定的设备标记为出错状态
–set-faulty : same as --fail
–replace : mark device(s) to be replaced by spares. Once
: replacement completes, device will be marked faulty
–with : Indicate which spare a previous ‘–replace’ should
: prefer to use
–run -R : start a partially built array
–stop -S : deactivate array, releasing all resources
–readonly -o : mark array as readonly
–readwrite -w : mark array as readwrite


#### 模拟标记错误硬盘


**`mdadm --manage /dev/md0 --fail /dev/sdd1`**



当前阵列状态

[root@localhost ~]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Mar 4 09:18:20 2020
Raid Level : raid5
Array Size : 3136512 (2.99 GiB 3.21 GB)
Used Dev Size : 1045504 (1021.00 MiB 1070.60 MB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent

   Update Time : Wed Mar  4 10:29:50 2020
         State : clean 
Active Devices : 4

Working Devices : 5
Failed Devices : 0
Spare Devices : 1

        Layout : left-symmetric
    Chunk Size : 512K

Consistency Policy : resync

          Name : localhost.localdomain:0  (local to host localhost.localdomain)
          UUID : 9e591745:7b4f4aa8:94168959:fc32ba2b
        Events : 20

Number   Major   Minor   RaidDevice State
   0       8       17        0      active sync   /dev/sdb1
   1       8       33        1      active sync   /dev/sdc1
   2       8       49        2      active sync   /dev/sdd1
   5       8       65        3      active sync   /dev/sde1

   4       8       81        -      spare   /dev/sdf1

标记错误磁盘

[root@localhost ~]# mdadm --manage /dev/md0 --fail /dev/sdd1
mdadm: set /dev/sdd1 faulty in /dev/md0

查看状态

[root@localhost ~]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Mar 4 09:18:20 2020
Raid Level : raid5
Array Size : 3136512 (2.99 GiB 3.21 GB)
Used Dev Size : 1045504 (1021.00 MiB 1070.60 MB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent

   Update Time : Wed Mar  4 10:41:38 2020
         State : clean 
Active Devices : 4

Working Devices : 4
Failed Devices : 1
Spare Devices : 0

        Layout : left-symmetric
    Chunk Size : 512K

Consistency Policy : resync

          Name : localhost.localdomain:0  (local to host localhost.localdomain)
          UUID : 9e591745:7b4f4aa8:94168959:fc32ba2b
        Events : 39

Number   Major   Minor   RaidDevice State
   0       8       17        0      active sync   /dev/sdb1
   1       8       33        1      active sync   /dev/sdc1
   4       8       81        2      active sync   /dev/sdf1
   5       8       65        3      active sync   /dev/sde1

   2       8       49        -      faulty   /dev/sdd1

标记错误磁盘后



Active Devices : 4 -> 4

Working Devices : 5 -> 4
Failed Devices : 0 -> 1
Spare Devices : 1 -> 0


说明某一块磁盘失效后,不会影响raid5的功能,并且`spare`的磁盘会自动加入到raid中,然后失效磁盘会被标记为`faulty`。并且资料无损是。



[root@localhost ~]# ls -l /mnt/raid5/
总用量 20
-rw-r–r–. 1 root root 0 3月 4 10:29 a.sh
-rw-r–r–. 1 root root 0 3月 4 10:29 b.py
drwxr-xr-x. 2 root root 4096 3月 4 10:29 d
drwx------. 2 root root 16384 3月 4 09:47 lost+found


#### 移除错误硬盘


**`mdadm --manage /dev/md0 --remove /dev/sdd1`**  
 移除已损坏的磁盘,添加一块新硬盘作为热备盘



模拟移除故障盘

[root@localhost ~]# mdadm --manage /dev/md0 --remove /dev/sdd1
mdadm: hot removed /dev/sdd1 from /dev/md0
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Mar 4 09:18:20 2020
Raid Level : raid5
Array Size : 3136512 (2.99 GiB 3.21 GB)
Used Dev Size : 1045504 (1021.00 MiB 1070.60 MB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent

   Update Time : Wed Mar  4 10:50:09 2020
         State : clean 
Active Devices : 4

Working Devices : 4
Failed Devices : 0
Spare Devices : 0

        Layout : left-symmetric
    Chunk Size : 512K

Consistency Policy : resync

          Name : localhost.localdomain:0  (local to host localhost.localdomain)
          UUID : 9e591745:7b4f4aa8:94168959:fc32ba2b
        Events : 40

Number   Major   Minor   RaidDevice State
   0       8       17        0      active sync   /dev/sdb1
   1       8       33        1      active sync   /dev/sdc1
   4       8       81        2      active sync   /dev/sdf1
   5       8       65        3      active sync   /dev/sde1

可以看到故障盘已被移除


#### 添加新硬盘


**`mdadm --manage /dev/md0 --add /dev/sdd1`**  
 为了方便,不在新增磁盘或者分区,直接使用移除的分区重新添加。**在实际环境中sdd1已经是另一块完好的硬盘了**。



更换一块硬盘并加入到阵列热备盘中

[root@localhost ~]# mdadm --manage /dev/md0 --add /dev/sdd1
mdadm: added /dev/sdd1
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Mar 4 09:18:20 2020
Raid Level : raid5
Array Size : 3136512 (2.99 GiB 3.21 GB)
Used Dev Size : 1045504 (1021.00 MiB 1070.60 MB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent

   Update Time : Wed Mar  4 10:54:08 2020
         State : clean 
Active Devices : 4

Working Devices : 5
Failed Devices : 0
Spare Devices : 1

        Layout : left-symmetric

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

[root@localhost ~]# mdadm --manage /dev/md0 --add /dev/sdd1
mdadm: added /dev/sdd1
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Mar 4 09:18:20 2020
Raid Level : raid5
Array Size : 3136512 (2.99 GiB 3.21 GB)
Used Dev Size : 1045504 (1021.00 MiB 1070.60 MB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent

   Update Time : Wed Mar  4 10:54:08 2020
         State : clean 
Active Devices : 4

Working Devices : 5
Failed Devices : 0
Spare Devices : 1

        Layout : left-symmetric

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 16
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值