目录
一、Linux磁盘分区
① 基本分区与扩充分区
Linux磁盘分区主要分为基本分区(primary partion)和扩充分区(extension partion)两种,基本分区和扩充分区的数目之和不能大于四个。且基本分区可以马上被使用但不能再分区。扩充分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘、光驱等 IDE 或 SCSI 设备也不例外。Linux把各种 IDE 设备分配了一个由 hd 前缀组成的文件;而对于各种 SCSI 设备,则分配了一个由 sd 前缀组成的文件 。
磁盘由盘片,机械手臂,磁头,主轴马达组成,而数据的写入主要是在盘片上面,盘片上又细分为扇区与柱面两种单位,扇区每个为512bytes那么大 ,其中,磁盘的第一个扇区特别重要,因为磁盘的第一个扇区记录了主引导分区(BMR)与分区表信息。
要掌握硬盘的分区,需要掌握MBR、扩展分区、逻辑分区的概念。
一个是放置该硬盘的信息区,称之为主引导记录(MBR,Main Boot Record),一个是实际文件数据放置的地方.其中,MBR是整个硬盘最重要的区域,一旦MBR物理实体损坏时,则该硬盘就差不多报废了,一般来说,MBR有512个字节,且可以分为两个部分。
(1)第一部分有446个字节,用于存放引导代码,即是bootloader。
(2)第二部分有64个字节,用于存放磁盘分区表.其中,每个分区的信息需要用16个字节来记录。因此,一个硬盘最多可以有4个分区,这4个分区称之为主分区和扩展分区(extended)。
② 对比windows磁盘分区
在Windows操作系统中,是先将物理地址分开,再在分区上建立目录.在Windows操作系统中,所有路径都是从盘符开始,如C://program file。
Linux正好相反,是先有目录,再将物理地址映射到目录中。在Linux操作系统中,所有路径都是从根目录开始。Linux默认可分为3个分区,分别是boot分区、swap分区和根分区。
无论是Windows操作系统,还是Linux操作系统,每个分区均可以有不同的文件系统,如FAT32、NTFS、Yaffs2等。
(1)boot分区
该分区对应于/boot目录,约100MB.该分区存放Linux的Grub(bootloader)和内核源码。用户可通过访问/boot目录来访问该分区.换句话说,用户对/boot目录的操作就是操作该分区。
(2)swap分区
该分区没有对应的目录,故用户无法访问。
Linux下的swap分区即为虚拟内存.虚拟内存用于当系统内存空间不足时,先将临时数据存放在swap分区,等待一段时间后,然后再将数据调入到内存中执行.所以说,虚拟内存只是暂时存放数据,在该空间内并没有执行。
Ps:虚拟内存
虚拟内存是指将硬盘上某个区域模拟为内存.因此虚拟内存的实际物理地址仍然在硬盘上.虚拟内存,或者说swap分区只能由系统访问,其大小为物理内存的2倍。
(3)根分区
在Linux操作系统中,除/boot目录外的其它所有目录都对应于该分区.因此,用户可通过访问除/boot目录外的其它所有目录来访问该分区。
二、管理Linux主分区(基本分区)
① 新增一个主分区
1. 查看磁盘分区块设备信息 lsblk
新加磁盘可分区NAME = sdb —20G
2. 查看分区表信息 fdisk -l
3. 新增主分区 sudo fdisk /dev/sdb
注意: 非root用户需要有sudo权限 /etc/sudoers
磁盘分区大小若大于2T将不能再使用fdisk命令进行分区,需要改用parted命令,具体使用可参见后面的测试部分
Command (m for help): m
Command (m for help): n —> add a new partition (分区大小10GB)
w —> write table to disk and exit
4. 创建文件系统并按xfs格式化文件系统
sudo mkfs -t xfs /dev/sdb1
sudo blkid ——查看已经格式化的文件系统
5. 将格式化后的文件系统挂载到linux目录
sudo mount /dev/sdb1 /data/
6. 设置开机自动启动挂载
echo ‘/dev/sdb1 /data xfs defaults 0 0 ‘ >> /etc/fstab
② 删除一个主分区
1. 卸载已挂载的磁盘目录
umount /dev/sdb1 或 umount /data
2. 删除主分区
Command (m for help): d —> delete a partition
3. 将 /etc/fstab中的相应的开机自动启动挂载取消,否则机器重启后出现错误(注意!)
三、管理Linux扩充分区
① 新增一个扩充分区
1.查看磁盘分区情况发现无剩余扇区可创建扩充分区,那么新增一块磁盘sde再继续测试
2. 使用fdisk命令新增一个大小为5G的扩展分区
3. 查看扩展分区 /dev/sde1
[root@centos7-min7 ~]# fdisk -l
4.创建一个主分区 /dev/sde2,目的是测试主分区可以直接使用但扩充分区不能直接使用
fdisk -l
》通过是否能直接创建物理分区就可证明主分区可直接被使用但扩充分区不能被直接使用
yum -y install lvm2
[root@centos7-min7 ~]# pvcreate /dev/sde1
Device /dev/sde1 excluded by a filter.
② 新增一个逻辑分区
主分区创建后可以马上被使用但不能再分区。扩充分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区,二次分区也叫做进行逻辑分区,逻辑分区可以被直接使用。
Command (m for help): n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (4096-10487807, default 4096):
Using default value 4096
Last sector, +sectors or +size{K,M,G} (4096-10487807, default 10487807):
Using default value 10487807
Partition 5 of type Linux and of size 5 GiB is set
逻辑分区/dev/sde5可被直接使用
至此容量为5G的扩充分区/dev/sde1创建完成,基于该扩充分区创建的逻辑分区/dev/sde5也可正常使用,默认大小为扩充分区大小。
四、管理Linux逻辑卷分区
使用逻辑卷管理磁盘分区的好处是方便扩展磁盘分区大小,建议使用。
① PV、VG、LV
PV——物理分区
VG——卷组
LV——逻辑卷
物理卷(PV):一个物理卷是一个单独的硬盘(hdisk0 , hdisk1...)。
卷组(VG):一个卷组是由一个或若干个物理卷(硬盘)组成。
逻辑卷(LV):一个卷组可划分若干个逻辑卷。一个逻辑卷在物理上可能是不连续的,有可能跨越了一个卷组中的多个物理卷。
# yum -y install lvm2
② 创建物理卷
对于主分区可直接执行pvcreate 操作,而对于扩展分区需要进行二次分区后才可执行操作:
sudo pvdisplay ——查看物理卷
sudo pvcreate /dev/sdb1 ——创建物理卷
Physical volume "/dev/sdb1" successfully created.
③ 创建卷组
创建一个名为data_vg的卷组,包含物理卷/dev/sdb1
sudo vgcreate data_vg /dev/sdb1
[sudo] password for shushu:
Volume group "data_vg" successfully created
[shushu@centos7min6 root]$ sudo vgdisplay
④ 创建逻辑卷
逻辑卷的大小有两种指定方法:用-L参数显示指定大小;用-l参数指定该逻辑卷包含LE的数量。LE取默认值4MB,上面两个命令创建的逻辑卷iso_image大小都是30GB。
lvcreate -L 3G -n data_lv data_vg
lvcreate -l 768 -n data_lv data_vg —— 3* 256 = 768
将全部的空间都给分完
[root@ha1 ~]# lvcreate -n db2data -l 100%FREE db2data_vg
只分一部分:
[root@ha1 ~]# lvcreate -n db2data -L +100M db2data_vg
[shushu@centos7min6 root]$ sudo lvcreate -n data_lv -l 100%FREE data_vg
[sudo] password for shushu:
Logical volume "data_lv" created.
[shushu@centos7min6 root]$ sudo lvdisplay
⑤按xfs格式化文件系统
[shushu@centos7min6 root]$ sudo mkfs -t xfs /dev/data_vg/data_lv
[shushu@centos7min6 root]$ sudo blkid ——查看已经格式化的文件系统
⑥ 将文件系统挂载到目录
[shushu@centos7min6 root]$ sudo mkdir /data
[shushu@centos7min6 root]$ sudo mount /dev/data_vg/data_lv /data/ ----(lvdisplay)
⑦ 启动开机自动挂载
[shushu@centos7min6 root]$ sudo vi /etc/fstab
/dev/data_vg/data_lv /data xfs defaults 0 0 ——加入文件末尾保存即可
注意:/etc/fstab中的配置必须都是有效的,否则重启机器会报错
##sudo reboot
五、磁盘合并
将两个磁盘分区挂载到同一个目录
linux分区命令parted的用法:
一般情况下,我们都是选择使用fdisk工具来进行分区,但是目前在实际生产环境中使用的磁盘空间越来越大,呈TiB级别增长;而常用的fdisk这个工具对分区是有大小限制的,它只能划分小于2T的磁盘,所以在划大于2T磁盘分区的时候fdisk就无法满足要求了;这个时候有2个方法,其一是通过卷管理来实现,其二就是通过parted工具来实现对GPT磁盘进行分区操作;这里我们采用parted的方法来实现管理。
# 新建/dev/sdb的磁盘标签类型为GPT
[root@MYSQL-SERVER ~]# parted /dev/sdb
因为parted命令只能针对gpt格式的磁盘进行操作,所以这里必须将新建的磁盘标签格式设为gpt。
mklabel gpt # 将/dev/sdb整个空间分给同一个分区
[root@MYSQL-SERVER ~]# parted /dev/sdb mkpart primary 0 100%
# 新建/dev/sdc的磁盘标签类型为GPT
[root@MYSQL-SERVER ~]# parted /dev/sdc mklabel gpt # 将/dev/sdc整个空间分给同一个分区 [root@MYSQL-SERVER ~]# parted /dev/sdc mkpart primary 0 100%
fdisk -l
创建物理卷
[root@MYSQL-SERVER ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@MYSQL-SERVER ~]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
创建卷组
将物理卷/dev/sdb1创建为一个名为vgmysql的卷组:
[root@MYSQL-SERVER ~]# vgcreate vgmysql /dev/sdb1
Volume group "vgmysql" successfully created
此步即为将2块磁盘空间合二为一的关键步骤;当系统中新增了磁盘或新建了物理卷,而要将其添加到已有卷组时,就可使用vgextend命令;
将物理卷/dev/sdc1添加到vgmysql卷组中:
[root@MYSQL-SERVER ~]# vgextend vgmysql /dev/sdc1
Volume group "vgmysql" successfully extended
查看卷组用vgs:
[root@MYSQL-SERVER ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vgmysql 2 0 0 wz--n- 32.74t 32.74t
vgroot 1 4 0 wz--n- 264.00g 4.00m
创建逻辑卷
创建逻辑卷的命令为lvcreate,用此命令将在使用vgcreate建立的卷组上创建逻辑卷
在卷组vgmysql上创建一个名为lvmysql的逻辑卷,大小为32.7T
-n:指定逻辑卷名
-L:指定逻辑卷大小
[root@MYSQL-SERVER ~]# lvcreate -L 32.7T -n lvmysql vgmysql
[root@localhost ~]# lvcreate -n data2_lv -l 100%FREE data2_vg
Logical volume "data2_lv" created.
[root@localhost ~]# lvdisplay
LV Path /dev/data2_vg/data2_lv
格式化逻辑卷
[root@MYSQL-SERVER ~]# mkfs -t xfs /dev/vgmysql/lvmysql
lsblk
创建挂载目录并挂载
[root@MYSQL-SERVER ~]# mkdir /mysql_data
[root@MYSQL-SERVER ~]# mount /dev/vgmysql/lvmysql /mysql_data
mount /dev/data2_vg/data2_lv /data2/
开机自挂载
echo '/dev/data2_vg/data2_lv /data2 xfs defaults 0 0 '>>/etc/fstab
查看挂载是否成功
df -hT
lsblk
blkid
六、磁盘拆分
将两块已合并的磁盘分开
sdb 是普通硬盘 nvme0n1是固态硬盘
卸载当前目录挂载
[root@node10 ~]# cat /sys/block/sdc/queue/rotational
1
[root@node10 ~]# cat /sys/block/sdd/queue/rotational
1
[root@node10 ~]# umount /dev/data0_vg/data0_lv
删除逻辑卷
[root@node10 ~]# lvremove /dev/data0_vg/data0_lv
Do you really want to remove active logical volume data0_vg/data0_lv? [y/n]: y
Logical volume "data0_lv" successfully removed
[root@node10 ~]# lsblk
删除卷组
[root@node10 ~]# vgreduce data0_vg /dev/sdd1 ——将卷组中物理卷/dev/sdd1删除
Removed "/dev/sdd1" from volume group "data0_vg"
vgreduce命令通过删除LVM卷组中的物理卷来减少卷组容量。不能删除LVM卷组中剩余的最后一个物理卷。
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 20G 0 part
sdd 8:48 0 10G 0 disk
└─sdd1 8:49 0 10G 0 part
重新为 /dev/sdd1创建一个新的卷组和逻辑卷
[root@node10 ~]# vgcreate data1_vg /dev/sdd1
Volume group "data1_vg" successfully created
[root@node10 ~]# lvcreate -n data1_lv -l 100%FREE data1_vg
Logical volume "data1_lv" created.
再为/dev/sdc1创建之前的逻辑卷
[root@node10 ~]# lvcreate -n data0_lv -l 100%FREE data0_vg
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 20G 0 part
└─data0_vg-data0_lv 253:3 0 20G 0 lvm
sdd 8:48 0 10G 0 disk
└─sdd1 8:49 0 10G 0 part
└─data1_vg-data1_lv 253:2 0 10G 0 lvm
lvdisplay
/dev/data0_vg/data0_lv
/dev/data1_vg/data1_lv
格式化文件系统
[root@node10 ~]# mkfs -t xfs /dev/data0_vg/data0_lv
[root@node10 ~]# mkfs -t xfs /dev/data1_vg/data1_lv
挂载文件系统
[root@node10 ~]# mount /dev/data1_vg/data1_lv /data1
[root@node10 ~]# mount /dev/data0_vg/data0_lv /data0
设置开机自启
[root@node10 ~]# vi /etc/fstab
/dev/data0_vg/data0_lv /data0 xfs defaults 0 0
/dev/data1_vg/data1_lv /data1 xfs defaults 0 0
七、磁盘扩容
将sdc 1T磁盘扩充至 data_vg-data_lv 的 /data目录下
[root@hjr25 hjrypt]# fdisk -l
Disk /dev/sdc: 1099.5 GB
[root@hjr25 hjrypt]# cat /etc/fstab
/dev/data_vg/data_lv /data ext4 defaults 0 0
[root@hjr25 hjrypt]# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created.
[root@hjr25 hjrypt]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb2
VG Name data_vg
PV Size <50.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 12799
Free PE 0
Allocated PE 12799
PV UUID ueoTEB-qb5u-ehyL-BRQf-WIkD-9i9i-mmYU6u
"/dev/sdc" is a new physical volume of "1.00 TiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 1.00 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID yESdiJ-MDde-Kh0c-K6vV-cwfS-ZijN-GJ4NLP
[root@hjr25 hjrypt]# vgdisplay
--- Volume group ---
VG Name data_vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <50.00 GiB
PE Size 4.00 MiB
Total PE 12799
Alloc PE / Size 12799 / <50.00 GiB
Free PE / Size 0 / 0
VG UUID zOCmP0-L2dL-jnCa-mLIP-ZF6U-s9fy-pSddMr
[root@hjr25 hjrypt]# vgextend data_vg /dev/sdc
Volume group "data_vg" successfully extended
[root@hjr25 hjrypt]# vgdisplay
--- Volume group ---
VG Name data_vg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size <1.05 TiB
PE Size 4.00 MiB
Total PE 274942
Alloc PE / Size 12799 / <50.00 GiB
Free PE / Size 262143 / <1024.00 GiB
VG UUID zOCmP0-L2dL-jnCa-mLIP-ZF6U-s9fy-pSddMr
[root@hjr25 hjrypt]# lvextend -l +100%FREE /dev/data_vg/data_lv
Size of logical volume data_vg/data_lv changed from <50.00 GiB (12799 extents) to <1.05 TiB (274942 extents).
Logical volume data_vg/data_lv successfully resized.
[root@hjr25 hjrypt]# lvdisplay
--- Logical volume ---
LV Path /dev/data_vg/data_lv
LV Name data_lv
VG Name data_vg
LV UUID r8zIDn-kLXN-T0Mu-gJ46-K1YS-C7hK-JgF0za
LV Write Access read/write
LV Creation host, time hjr25, 2020-02-20 16:09:42 +0800
LV Status available
# open 1
LV Size <1.05 TiB
Current LE 274942
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
[root@hjr25 hjrypt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 4.6G 15G 25% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 412K 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/sdb1 50G 1.2G 46G 3% /opt
/dev/mapper/data_vg-data_lv 50G 3.1G 44G 7% /data
tmpfs 3.2G 0 3.2G 0% /run/user/0
[root@hjr25 hjrypt]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
└─sda1 8:1 0 20G 0 part /
sdb 8:16 0 100G 0 disk
├─sdb1 8:17 0 50G 0 part /opt
└─sdb2 8:18 0 50G 0 part
└─data_vg-data_lv 253:0 0 1T 0 lvm /data
sdc 8:32 0 1T 0 disk
└─data_vg-data_lv 253:0 0 1T 0 lvm /data
sr0 11:0 1 422K 0 rom
[root@hjr25 hjrypt]# e2fsck -f /dev/data_vg/data_lv ——查看逻辑卷
e2fsck 1.42.9 (28-Dec-2013)
/dev/data_vg/data_lv is mounted.
e2fsck: Cannot continue, aborting.
[root@hjr25 hjrypt]# resize2fs /dev/data_vg/data_lv ——重新定义分区大小,无需umount和重启
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/data_vg/data_lv is mounted on /data; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 135
The filesystem on /dev/data_vg/data_lv is now 281540608 blocks long.
[root@hjr25 hjrypt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 4.6G 15G 25% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 412K 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/sdb1 50G 1.2G 46G 3% /opt
/dev/mapper/data_vg-data_lv 1.1T 3.1G 1011G 1% /data
tmpfs 3.2G 0 3.2G 0% /run/user/0
八、使用RAID5模式管理Linux磁盘分区
磁盘阵列(Redundant Arrays of Independent Disks,RAID)
RAID 0是最早出现的RAID模式,即Data Stripping数据分条技术。RAID 0是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。RAID 0没有提供冗余或错误修复能力,但实现成本是最低的。
RAID 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。虽然这样对数据来讲绝对安全,但是成本也会明显增加,磁盘利用率为50%
RAID5:分布式奇偶校验的独立磁盘结构
RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就是说有相当于一块磁盘容量的空间用于存储奇偶校验信息。因此当RAID5的一个磁盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后,RAID还会自动利用剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID5的高可靠性。RAID5需要3块大小一样的硬盘
使用 sdb,sdc,sdd (大小都是10G)三块普通硬盘创建 raid5磁盘阵列
[root@centos7-min7 ~]# cat /sys/block/sda/queue/rotational
1 —— 1代表普通硬盘,0代表固态硬盘
①创建三个分区
[root@centos7-min7 ~]# fdisk -l
[root@centos7-min7 ~]# fdisk /dev/sdb —— 同理操作 /dev/sdc 与 /dev/sdd
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519):
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): fd
Changed type of partition 'Linux' to 'Linux raid autodetect'
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xc96a99ed
Device Boot Start End Blocks Id System
/dev/sdb1 2048 20971519 10484736 fd Linux raid autodetect
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@centos7-min7 ~]# partprobe /dev/sdb
[root@centos7-min7 ~]# partprobe /dev/sdc
[root@centos7-min7 ~]# partprobe /dev/sdd
[root@centos7-min7 ~]# cat /proc/partitions ——创建完成后重新读取分区列表信息,通过/proc/partions查看
major minor #blocks name
8 0 41943040 sda
8 1 1048576 sda1
8 2 40893440 sda2
8 16 10485760 sdb
8 17 10484736 sdb1
8 32 10485760 sdc
8 33 10484736 sdc1
8 48 10485760 sdd
8 49 10484736 sdd1
11 0 1059840 sr0
253 0 38789120 dm-0
253 1 2097152 dm-1
②分区创建完成后开始创建raid5磁盘阵列,语法为
mdadm -C 阵列名 -l 级别 -n 磁盘个数 磁盘名称
[root@centos7-min7 ~]# yum -y install mdadm
[root@centos7-min7 ~]# mdadm -C /dev/raid5 -l 5 -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: /dev/raid5 is an invalid name for an md device. Try /dev/md/raid5
[root@centos7-min7 ~]# mdadm -C /dev/md5 -l 5 -n 3 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
创建完成后可通过mdadm -D 阵列名来查看阵列信息,也可以通过cat /proc/mdstat来查看
[root@centos7-min7 ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sdd1[3] sdc1[1] sdb1[0]
20951040 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>
[root@centos7-min7 ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Wed Sep 30 16:53:45 2020
Raid Level : raid5
Array Size : 20951040 (19.98 GiB 21.45 GB)
Used Dev Size : 10475520 (9.99 GiB 10.73 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Wed Sep 30 16:54:38 2020
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : centos7-min7:5 (local to host centos7-min7)
UUID : 9911147f:760cdb21:7b940029:97d3daaa
Events : 18
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
3 8 49 2 active sync /dev/sdd1
③创建raid5磁盘阵列完成后,需要对磁盘阵列进行格式化并进行挂载
[root@centos7-min7 ~]# mkfs.xfs /dev/md5
meta-data=/dev/md5 isize=512 agcount=16, agsize=327296 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5236736, 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
[root@centos7-min7 ~]# mkdir /md5
[root@centos7-min7 ~]# mount /dev/md5 /md5/
[root@centos7-min7 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 910M 0 910M 0% /dev/shm
tmpfs tmpfs 910M 9.6M 901M 2% /run
tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 37G 2.7G 35G 8% /
/dev/sda1 xfs 1014M 150M 865M 15% /boot
tmpfs tmpfs 182M 0 182M 0% /run/user/0
/dev/md5 xfs 20G 33M 20G 1% /md5
[root@centos7-min7 ~]# cat /etc/fstab
/dev/mapper/centos-root / xfs defaults 0 0
UUID=60d65f3f-098f-4c6f-afd4-db14656c382f /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/md5 /md5 xfs defaults 0 0
[root@centos7-min7 ~]# reboot
[root@centos7-min7 ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/md5 xfs 20G 33M 20G 1% /md5