linux6-存储结构与硬盘管理

1.挂载设备

mount + 设备 +挂载目录

1 [root@linuxprobe ~]# mount /dev/sdb2 /backup

2.显示设备属性信息blkid

3.df -h

查看已挂载设备磁盘使用情况

4.RAID(独立冗余磁盘阵列)

 5.mdadm 命令用于创建、调整、监控和管理 RAID 设备

复制代码
 1 其中,-C 参数代表创建一个 RAID 阵列卡;-v
 2 参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0 就是创建后的
 3 RAID 磁盘阵列的名称;-n 4 参数代表使用 4 块硬盘来部署这个 RAID 磁盘阵列;而-l 10 参数
 4 则代表 RAID 10 方案;最后再加上 4 块硬盘设备的名称就搞定了。
 5 [root@linuxprobe~]# mdadm -Cv /dev/md0 -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
 6 mdadm: layout defaults to n2
 7 mdadm: layout defaults to n2
 8 mdadm: chunk size defaults to 512K
 9 mdadm: size set to 20954112K
10 mdadm: Defaulting to version 1.2 metadata
11 mdadm: array /dev/md0 started.

等两三分钟后,把制作好的 RAID 磁盘阵列格式化为 Ext4 格式:
[root@linuxprobe~]# mkfs.ext4 /dev/md0
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 10477056 4k blocks and 2621440 inodes
随后,创建挂载点,将硬盘设备进行挂载操作:
[root@linuxprobe~]# mkdir /RAID
[root@linuxprobe~]# mount /dev/md0 /RAID
[root@linuxprobe~]# df -h

如果想让创建好的 RAID 磁盘阵列能够一直提供服务,不会因每次的重启操作而取消,
那么一定要记得将信息添加到/etc/fstab 文件中,这样可以确保在每次重启后 RAID 磁盘阵列 都是有效的。
[root@linuxprobe~]# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
[root@linuxprobe~]# cat /etc/fstab
复制代码
复制代码
 1 [root@linuxprobe~]# mdadm /dev/md0 -r /dev/sdb
 2 mdadm: hot removed /dev/sdb from /dev/md0
 3 
 4 [root@linuxprobe~]# mdadm /dev/md0 -a /dev/sdb
 5 mdadm: added /dev/sdb
 6 [root@linuxprobe~]# mdadm -D /dev/md0
 7 /dev/md0:
 8 Version : 1.2
 9 Creation Time : Thu Jan 14 05:12:20 2021
10 Raid Level : raid10
11 Array Size : 41908224 (39.97 GiB 42.91 GB)
12 Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
13 Raid Devices : 4
14 Total Devices : 
复制代码

6.raid5

复制代码
 1 下面的命令中,参数-n 3代表创建这个 RAID 
 2 5 磁盘阵列所需的硬盘数,参数-l 5 代表 RAID 的级别,而参数-x 1 则代表有一块备份盘。
 3 当查看/dev/md0(即 RAID 5 磁盘阵列的名称)磁盘阵列的时候,就能看到有一块备份盘在等
 4 待中了。
 5 [root@linuxprobe~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
 6 mdadm: layout defaults to left-symmetric
 7 mdadm: layout defaults to left-symmetric
 8 mdadm: chunk size defaults to 512K
 9 mdadm: size set to 20954112K
10 mdadm: Defaulting to version 1.2 metadata
11 mdadm: array /dev/md0 started.
12 [root@linuxprobe~]# mdadm -D /dev/md0
复制代码

7.删除磁盘阵列

复制代码
 1 首先,需要将所有的磁盘都设置成停用状态:
 2 [root@linuxprobe~]# umount /RAID
 3 [root@linuxprobe~]# mdadm /dev/md0 -f /dev/sdc
 4 mdadm: set /dev/sdc faulty in /dev/md0
 5 [root@linuxprobe~]# mdadm /dev/md0 -f /dev/sdd
 6 mdadm: set /dev/sdd faulty in /dev/md0
 7 [root@linuxprobe~]# mdadm /dev/md0 -f /dev/sde
 8 mdadm: set /dev/sde faulty in /dev/md0
 9 然后再逐一移除出去:
10 [root@linuxprobe~]# mdadm /dev/md0 -r /dev/sdb
11 mdadm: hot removed /dev/sdb from /dev/md0
12 [root@linuxprobe~]# mdadm /dev/md0 -r /dev/sdc
13 mdadm: hot removed /dev/sdc from /dev/md0
14 [root@linuxprobe~]# mdadm /dev/md0 -r /dev/sdd
15 mdadm: hot removed /dev/sdd from /dev/md0
16 [root@linuxprobe~]# mdadm /dev/md0 -r /dev/sde
17 mdadm: hot removed /dev/sde from /dev/md0
18 如果着急,也可以用“mdadm /dev/md0 -f /dev/sdb -r /dev/sdb”这一条命令搞定。但是,在早
19 期版本的服务器中,这条命令中的-f 和-r 不能一起使用,因此保守起见,还是一步步地操作吧。
20 将所有的硬盘都移除后,再来查看磁盘阵列组的状态:
21 [root@linuxprobe~]# mdadm -D /dev/md0
22 /dev/md0:
23 Version : 1.2
24 Creation Time : Fri Jan 15 08:53:41 2021
25 Raid Level : raid5
26 Array Size : 41908224 (39.97 GiB 42.91 GB)
27 Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
28 Raid Devices : 3
29 Total Devices : 0
30 Persistence : Superblock is persistent
31 Update Time : Fri Jan 15 09:00:57 2021
32 State : clean, FAILED
33 Active Devices : 0
34 Failed Devices : 0
35 Spare Devices : 0
36 Layout : left-symmetric
37 Chunk Size : 512K
38 Consistency Policy : resync
39 Number Major Minor RaidDevice State
40 - 0 0 0 removed
41 - 0 0 1 removed
42 - 0 0 2 removed
43 很棒!下面继续停用整个 RAID 磁盘阵列,咱们的工作就彻底完成了:
44 [root@linuxprobe~]# mdadm --stop /dev/md0
复制代码

8.逻辑卷管理器 (Logical Volume Manager,LVM)。LVM 允许用户对硬盘资源进行动态调整。

复制代码
第一步:让新添加的两块硬盘设备支持 LVM 技术。
[root@linuxprobe~]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created
第二步:把两块硬盘设备加入到 storage 卷组中,然后查看卷组的状态。
[root@linuxprobe~]# vgcreate storage /dev/sdb /dev/sdc
Volume group "storage" successfully created
[root@linuxprobe~]# vgdisplay
第三步切割出一个约为 150MB 的逻辑卷设备。
这里需要注意切割单位的问题。在对逻辑卷进行切割时有两种计量单位。第一种是以容
量为单位,所使用的参数为-L。例如,使用-L 150M 生成一个大小为 150MB 的逻辑卷。另外
一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为 4MB。例
如,使用-l 37 可以生成一个大小为 37×4MB=148MB 的逻辑卷。
[root@linuxprobe~]# lvcreate -n vo -l 37 storage
Logical volume "vo" created.
[root@linuxprobe~]# lvdisplay
第四步:把生成好的逻辑卷进行格式化,然后挂载使用。
Linux 系统会把 LVM 中的逻辑卷设备存放在/dev 设备目录中(实际上就是个快捷方式),
同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组名称/
逻辑卷名称)。
[root@linuxprobe ~]# mkfs.ext4 /dev/storage/vo
[root@linuxprobe~]# mkdir /linuxprobe
[root@linuxprobe~]# mount /dev/storage/vo /linuxprobe
永久生效
[root@linuxprobe~]# echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0" >> /etc/fstab
[root@linuxprobe~]# cat /etc/fstab
复制代码

 9.扩容逻辑卷

复制代码
 1 [root@linuxprobe~]# umount /linuxprobe
 2 :把上一个实验中的逻辑卷 vo 扩展至 290MB。
 3 [root@linuxprobe~]# lvextend -L 290M /dev/storage/vo
 4 Rounding size to boundary between physical extents: 292.00 MiB.
 5 Size of logical volume storage/vo changed from 148 MiB (37 extents) to 292 MiB
 6 (73 extents).
 7 Logical volume storage/vo successfully resized.
 8 :检查硬盘的完整性,确认目录结构、内容和文件内容没有丢失。一般情况下没
 9 有报错,均为正常情况。
10 [root@linuxprobe~]# e2fsck -f /dev/storage/vo
11 e2fsck 1.44.3 (10-July-2018)
12 Pass 1: Checking inodes, blocks, and sizes
13 Pass 2: Checking directory structure
14 Pass 3: Checking directory connectivity
15 使用 RAID 与 LVM 磁盘阵列技术
16 232
17 Pass 4: Checking reference counts
18 Pass 5: Checking group summary information
19 /dev/storage/vo: 11/38000 files (0.0% non-contiguous), 10453/151552 blocks
20 :重置设备在系统中的容量。刚刚是对 LV(逻辑卷)设备进行了扩容操作,但系
21 统内核还没有同步到这部分新修改的信息,需要手动进行同步。
22 [root@linuxprobe~]# resize2fs /dev/storage/vo
23 resize2fs 1.44.3 (10-July-2018)
24 Resizing the filesystem on /dev/storage/vo to 299008 (1k) blocks.
25 The filesystem on /dev/storage/vo is now 299008 (1k) blocks long.
26 :重新挂载硬盘设备并查看挂载状态。
27 [root@linuxprobe~]# mount -a
28 [root@linuxprobe~]# df -h
复制代码

10.缩小逻辑卷

复制代码
 1 [root@linuxprobe~]# umount /linuxprobe
 2 :检查文件系统的完整性。
 3 [root@linuxprobe~]# e2fsck -f /dev/storage/vo
 4 e2fsck 1.44.3 (10-July-2018)
 5 Pass 1: Checking inodes, blocks, and sizes
 6 Pass 2: Checking directory structure
 7 Pass 3: Checking directory connectivity
 8 Pass 4: Checking reference counts
 9 Pass 5: Checking group summary information
10 /dev/storage/vo: 11/74000 files (0.0% non-contiguous), 15507/299008 blocks
11 233
12 :通知系统内核将逻辑卷 vo 的容量减小到 120MB。
13 [root@linuxprobe~]# resize2fs /dev/storage/vo 120M
14 resize2fs 1.44.3 (10-July-2018)
15 Resizing the filesystem on /dev/storage/vo to 122880 (1k) blocks.
16 The filesystem on /dev/storage/vo is now 122880 (1k) blocks long.
17 :将 LV(逻辑卷)的容量修改为 120MB。
18 [root@linuxprobe~]# lvreduce -L 120M /dev/storage/vo
19 WARNING: Reducing active logical volume to 120.00 MiB.
20 THIS MAY DESTROY YOUR DATA (filesystem etc.)
21 Do you really want to reduce storage/vo? [y/n]: y
22 Size of logical volume storage/vo changed from 292 MiB (73 extents) to 120
23 MiB (30 extents).
24 Logical volume storage/vo successfully resized.
25 咦?缩容的步骤跟扩容的步骤不一样啊。缩容操作为什么是先通知系统内核设备的容量
26 要改变成 120MB,然后再正式进行缩容操作呢?举个例子大家就明白了。小强是一名初中生,
27 开学后看到班里有位同学纹了身,他感觉很酷,自己也想纹但又怕家里责骂,于是他回家后
28 就说:“妈妈,我纹身了。”如果妈妈的反应很平和,那么他就可以放心大胆地去纹身了。如
29 果妈妈强烈不同意,他马上就可以哈哈一笑,说:“逗着玩呢。”这样也就不会挨打了。
30 缩容操作也是同样的道理,先通知系统内核自己想缩小逻辑卷,如果在执行 resize2fs 命
31 令后系统没有报错,再正式操作。
32 :重新挂载文件系统并查看系统状态。
33 [root@linuxprobe~]# mount -a
34 [root@linuxprobe~]# df
复制代码

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.LVM(逻辑卷管理器)

posted @   光璃  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示