存储结构与管理硬盘
一、添加硬盘设备
添加硬盘设备的操作思路:首先需要在虚拟机中模拟添加入一块新的硬盘存储设备,然后再进行分区、格式化、挂载等操作,最后通过检查系统的挂载状态并真实地使用硬盘来验证硬盘设备是否成功添加。
fdisk命令用于新建、修改及删除磁盘的分区表信息
分区
[root@rhel ~]# fdisk /dev/sdb
依次输入 p n p 1 +1024G 回车 p w
Linux系统会自动把这个硬盘主分区抽象成/dev/sdb1设备文件
[root@rhel ~]# parentprobe
[root@rhel ~]# parentprobe
[root@rhel ~]# file /dev/sdb1
格式化
[root@rhel ~]# mkfs.xfs /dev/sdb1
挂载使用
创建挂载点目录 /backup
[root@rhel ~]# mkdir /backup
[root@rhel ~]# mount /dev/sdb1 /backup
[root@rhel ~]# df -h
查看你目录占用空间大小
[root@rhel ~]# du -sh /* |------------*/
二、挂载硬件设备
一般的硬盘设备都是以“/dev/sd”
UUID是一串用于标识每块独立硬盘的字符串,具有唯一性及稳定性,特别适合用来挂载网络设备
挂载硬件设备步骤
1. [root@rhel ~]# mount -a 挂载所有在/etc/fstab中定义的文件系统
2 [root@rhel ~]# blkid 使用blkid命令来查询设备UUID
[root@rhel ~]# mount UUID=f54f59eb-e5f5-4a3c-9693-7533c57d1a8a /backup
3. 开机自动挂载 /dev/sdb
[root@rhel ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Jul 21 05:03:40 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults 0 0
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/sdb /backup xfs defaults 0 0
[root@rhel ~]# mount -a
[root@rhel ~]# df -h
umount命令用于卸载设备或文件系统
[root@rhel ~]# unmount /dev/sdb
lsblk命令用于查看已挂载的磁盘的空间使用情况
[root@rhel ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.2G 0 rom
RAID 磁盘阵列
mdadm命令中的常用参数及作用如表7-2所示。
表7-2 mdadm命令的常用参数和作用
参数 作用
-a 检测设备名称
-n 指定设备数量
-l 指定RAID级别
-C 创建
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止RAID磁盘阵列
mdadm命令用于创建、调整、监控和管理RAID设备,英文全称为“multiple devices admin”,语法格式为“mdadm参数 硬盘名称”。
其中,-C参数代表创建一个RAID阵列卡;-v参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0就是创建后的RAID磁盘阵列的名称;-n 4参数代表使用4块硬盘来部署这个RAID磁盘阵列;而-l 10参数则代表RAID 10方案;最后再加上4块硬盘设备的名称就搞定了
查看添加的硬盘
[root@rhel ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 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.2G 0 rom
[root@rhel ~]# ls -l /dev/sd*
brw-rw----. 1 root disk 8, 0 Oct 25 15:23 /dev/sda
brw-rw----. 1 root disk 8, 1 Oct 25 15:23 /dev/sda1
brw-rw----. 1 root disk 8, 2 Oct 25 15:23 /dev/sda2
brw-rw----. 1 root disk 8, 16 Oct 25 15:23 /dev/sdb
brw-rw----. 1 root disk 8, 32 Oct 25 15:23 /dev/sdc
brw-rw----. 1 root disk 8, 48 Oct 25 15:23 /dev/sdd
brw-rw----. 1 root disk 8, 64 Oct 25 15:23 /dev/sde
创建 RAID10
[root@rhel ~]# mdadm -Cv /dev/md0 -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
查看
[root@rhel ~]# mdadm -Q /dev/md0
/dev/md0: 39.97GiB raid10 4 devices, 0 spares. Use mdadm --detail for more detail.
RAID磁盘阵列格式化为xfs格式:
[root@rhel ~]# 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
挂载
[root@rhel ~]# mkdir /RAID10
[root@rhel ~]# mount /dev/md0 /RAID10
[root@rhel ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 974M 0 974M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 11M 980M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 17G 4.2G 13G 25% /
/dev/sda1 1014M 170M 845M 17% /boot
tmpfs 199M 12K 199M 1% /run/user/42
tmpfs 199M 0 199M 0% /run/user/0
/dev/md0 40G 33M 40G 1% /RAID10
查看/dev/md0磁盘阵列设备的详细信息,确认RAID级别(Raid Level)、阵列大小(Array Size)和总硬盘数(Total Devices)都是否正确
[root@rhel ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Oct 25 15:39:34 2022
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Oct 25 15:47:34 2022
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : rhel:0 (local to host rhel)
UUID : c7dddb65:4ceab00d:38b741da:4b84f7ef
Events : 19
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
添加RAID磁盘阵列自启挂载
[root@rhel ~]# echo "/dev/md0 /RAID xfs defaults 0 0" >> /etc/fstab
[root@rhel ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Oct 23 09:20:06 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=f54f59eb-e5f5-4a3c-9693-7533c57d1a8a /boot xfs defaults 0 0
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/md0 /RAID xfs defaults 0 0
损坏磁盘阵列及修复
确认有一块物理硬盘设备出现损坏而不能再继续正常使用后,应该使用mdadm命令将其移除,然后查看RAID磁盘阵列的状
[root@rhel ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
[root@linuxprobe ~]# mdadm -D /dev/md0
[root@rhel ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Oct 25 15:39:34 2022
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Oct 25 16:03:31 2022
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : rhel:0 (local to host rhel)
UUID : c7dddb65:4ceab00d:38b741da:4b84f7ef
Events : 21
Number Major Minor RaidDevice State
- 0 0 0 removed
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
0 8 16 - faulty /dev/sdb
-f参数是让硬盘模拟损坏的效果。为了能够彻底地将故障盘移除,还要再执行一步操作
[root@rhel ~]# mdadm /dev/md0 -r /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md0
新硬盘就绪后 重新添加
[root@rhel ~]# mdadm /dev/md0 -a /dev/sdb
[root@rhel ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Oct 25 15:39:34 2022
Raid Level : raid10
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Oct 25 16:09:18 2022
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 30% complete
Name : rhel:0 (local to host rhel)
UUID : c7dddb65:4ceab00d:38b741da:4b84f7ef
Events : 32
Number Major Minor RaidDevice State
4 8 16 0 spare rebuilding /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
创建RAID5 + 备份盘
部署RAID 5磁盘阵列时,至少需要用到3块硬盘,还需要再加一块备份硬盘(也叫热备盘),所以总计需要在虚拟机中模拟4块硬盘设备
创建一个RAID 5磁盘阵列+备份盘。在下面的命令中,参数-n 3代表创建这个RAID 5磁盘阵列所需的硬盘数,参数-l 5代表RAID的级别,而参数-x 1则代表有一块备份盘。当查看/dev/md0(即RAID 5磁盘阵列的名称)磁盘阵列的时候,就能看到有一块备份盘在等待中了。
[root@rhel ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
[root@rhel ~]# mdadm -D /dev/md0
格式化xfs
[root@rhel ~]# mkfs.xfs /dev/md0
创建挂载点目录
[root@rhel ~]# mkdir /RAID5
开机自动挂载
[root@rhel ~]# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
[root@rhel ~]# mount -a
[root@rhel ~]# df -h
移除设备 /dev/sdb
[root@rhel ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
备份盘自动同步
[root@rhel ~]# mdadm -D /dev/md0
删除磁盘阵列 RAID5 +备份盘
需要将所有的磁盘都设置成停用状态:
[root@rhel ~]# umount /RAID
[root@rhel ~]# mdadm /dev/md0 -f /dev/sdc
[root@rhel ~]# mdadm /dev/md0 -f /dev/sdc
[root@rhel ~]# mdadm /dev/md0 -f /dev/sde
[root@rhel ~]#
逐一移除
[root@rhel ~]# mdadm /dev/md0 -r /dev/sdb
[root@rhel ~]# mdadm /dev/md0 -r /dev/sdc
[root@rhel ~]# mdadm /dev/md0 -r /dev/sdd
[root@rhel ~]# mdadm /dev/md0 -r /dev/sde
查看磁盘组状态
mdadm -D /dev/md0
停用整个磁盘阵列
mdadm --stop /dev/md0
ls /dev/md0
注意: 或使用此命令 移除 mdadm --remove /dev/md0
LVM 逻辑卷管理器
部署逻辑卷
部署时,需要逐个配置物理卷、卷组和逻辑卷,常用的部署命令如表7-3所示。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。