参考链接https://www.linuxprobe.com/basic-learning-07.html#711
RAID磁盘冗余阵列
RAID 0、1、5、10方案技术对比
RAID级别 | 最少硬盘 | 可用容量 | 读写性能 | 安全性 | 特点 |
---|---|---|---|---|---|
0 | 2 | n | n | 低 | 追求最大容量和速度,任何一块盘损坏,数据全部异常。 |
1 | 2 | n/2 | n | 高 | 追求最大安全性,只要阵列组中有一块硬盘可用,数据不受影响。 |
5 | 3 | n-1 | n-1 | 中 | 在控制成本的前提下,追求硬盘的最大容量、速度及安全性,允许有一块硬盘异常,数据不受影响。 |
10 | 4 | n/2 | n/2 | 高 | 综合RAID1和RAID0的优点,追求硬盘的速度和安全性,允许有一半硬盘异常(不可同组),数据不受影响 |
mdadm命令的常用参数和作用
参数 | 作用 |
---|---|
-a | 检测设备名称 |
-n | 指定设备数量 |
-l | 指定RAID级别 |
-C | 创建 |
-v | 显示过程 |
-f | 模拟设备损坏 |
-r | 移除设备 |
-Q | 查看摘要信息 |
-D | 查看详细信息 |
-S | 停止RAID磁盘阵列 |
RAID 5
RAID 5 简介
RAID5技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID 5磁盘阵列中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上。这样的好处是,其中任何一设备损坏后不至于出现致命缺陷。中Parity部分存放的就是数据的奇偶校验信息。换句话说,就是RAID 5技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试重建损坏的数据。RAID这样的技术特性“妥协”地兼顾了硬盘设备的读写速度、数据安全性与存储成本问题。RAID 5最少由3块硬盘组成,使用的是硬盘切割(Disk Striping)技术。相较于RAID 1级别,好处就在于保存的是奇偶校验信息而不是一模一样的文件内容,所以当重复写入某个文件时,RAID 5级别的磁盘阵列组只需要对应一个奇偶校验信息就可以,效率更高,存储成本也会随之降低。
RAID5技术示意图
准备四块硬盘,三块做RAID5一块备份
1.安装软件包
root@debian:~# apt install -y mdadm
2.查看硬盘
root@debian:~# fdisk -l
Disk /dev/sdc: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
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 /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
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 /dev/sdd: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
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 /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb185de14
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 33554431 33552384 16G 83 Linux
/dev/sda2 33556478 41940991 8384514 4G 5 Extended
/dev/sda5 33556480 41940991 8384512 4G 82 Linux swap / Solaris
Disk /dev/sde: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
3.创建RAID5
root@debian:~# mdadm -Cv /dev/md0 -l 5 -n 3 /dev/sdb /dev/sdc /dev/sdd -x 1 /dev/sde ##创建并显示过程新建一个RAID5到/dev/md0里,设备数量为3,还有一个备份盘
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
4.查看详细信息
root@debian:~# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Mon Oct 10 04:48:15 2022
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Mon Oct 10 04:50:00 2022
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : debian:0 (local to host debian)
UUID : 309c7330:5d5e1d6d:dfcdb8b6:a271bad2
Events : 18
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd
3 8 64 - spare /dev/sde
等待部署完成后将其格式化为Ext4格式
5.格式化为eXt4格式
root@debian:~# mkfs.ext4 /dev/md0
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 10477056 4k blocks and 2621440 inodes
Filesystem UUID: b9e25901-cc14-46fb-aa62-4fa1b102b369
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done
6.添加自动挂载
root@debian:~# mkdir /RAID5 ##创建挂载目录
root@debian:~# echo "/dev/md0 /RAID5 ext4 defaults 0 0" >> /etc/fstab ##添加自动挂载
root@debian:~# mount -a ##使挂载生效
root@debian:~# df ##查看挂载信息
Filesystem 1K-blocks Used Available Use% Mounted on
udev 1989024 0 1989024 0% /dev
tmpfs 401776 6412 395364 2% /run
/dev/sda1 16447356 6749920 8842244 44% /
tmpfs 2008860 12 2008848 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 2008860 0 2008860 0% /sys/fs/cgroup
/dev/sr0 47147918 47147918 0 100% /dvd
tmpfs 401772 4656 397116 2% /run/user/1000
tmpfs 401772 0 401772 0% /run/user/0
/dev/md0 40987872 49176 38826904 1% /RAID5
7.模拟故障
root@debian:~# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
root@debian:~# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Mon Oct 10 04:48:15 2022
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Mon Oct 10 05:01:49 2022
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 1
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 13% complete
Name : debian:0 (local to host debian)
UUID : 309c7330:5d5e1d6d:dfcdb8b6:a271bad2
Events : 22
Number Major Minor RaidDevice State
3 8 64 0 spare rebuilding /dev/sde
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd
0 8 16 - faulty /dev/sdb
可以看到/dev/sdb损坏后,备份盘/dev/sde立即顶替上去了并开始数据同步
8.删除故障盘重新添加
root@debian:~# mdadm /dev/md0 -r /dev/sdb ##删除故障盘
mdadm: hot removed /dev/sdb from /dev/md0
root@debian:~# mdadm /dev/md0 -a /dev/sdb ##添加一个新盘
mdadm: added /dev/sdb
root@debian:~# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Mon Oct 10 04:48:15 2022
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Mon Oct 10 05:06:29 2022
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : debian:0 (local to host debian)
UUID : 309c7330:5d5e1d6d:dfcdb8b6:a271bad2
Events : 39
Number Major Minor RaidDevice State
3 8 64 0 active sync /dev/sde
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd
5 8 16 - spare /dev/sdb
可以看到/dev/sdb成为了备份盘
删除磁盘阵列
root@debian:~# umount /RAID5 ##取消挂载
root@debian:~# mdadm /dev/md0 -f /dev/sde -r /dev/sde ###依次移出所有硬盘
mdadm: set /dev/sde faulty in /dev/md0
mdadm: hot removed /dev/sde from /dev/md0
root@debian:~# mdadm /dev/md0 -f /dev/sdc -r /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md0
mdadm: hot removed /dev/sdc from /dev/md0
root@debian:~# mdadm /dev/md0 -f /dev/sdd -r /dev/sdd
mdadm: set /dev/sdd faulty in /dev/md0
mdadm: hot removed /dev/sdd from /dev/md0
root@debian:~# mdadm /dev/md0 -f /dev/sdb -r /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
mdadm: hot removed /dev/sdb from /dev/md0
root@debian:~# mdadm --stop /dev/md0 ##删除RAID磁盘阵列
mdadm: stopped /dev/md0
RAID 10
RAID 1 0 简介
RAID 0技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入各个物理硬盘中。也就是说,它的数据是分开存放的,其中任何一块硬盘发生故障都会导致整个系统的数据丢失。
RAID 0技术示意图
RAID 1是把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用,只要保证有一块硬盘稳定运行,数据就不会出现损坏的情况,可靠性较高。但是因为是在多块硬盘设备中写入了相同的数据,因此硬盘设备的利用率得以下降。
RAID 1技术示意图
RAID 1 0 顾名思义,是RAID 1+RAID 0技术的一个“组合体”。RAID 10需要至少4块硬盘来组建,其中先分别两两制作成RAID 1磁盘阵列,以保证数据的安全性;然后再对两个RAID 1磁盘阵列实施RAID 0技术,进一步提高硬盘设备的读写速度。这样从理论上来讲,只要坏的不是同一阵列中的所有硬盘,那么最多可以损坏50%的硬盘设备而不丢失数据。由于RAID 10技术继承了RAID 0的高读写速度和RAID 1的数据安全性,在不考虑成本的情况下RAID 10的性能也超过了RAID 5,因此当前成为广泛使用的一种存储技术。
RAID 10技术示意图
Tips
由于RAID 10是由RAID 1和RAID 0组成的,因此正确的叫法是“RAID一零”,而不是“RAID十”。
1.安装软件包
root@debian:~# apt install -y mdadm
2.查看磁盘
root@debian:~# fdisk -l
Disk /dev/sdc: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
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 /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
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 /dev/sdd: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
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 /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb185de14
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 33554431 33552384 16G 83 Linux
/dev/sda2 33556478 41940991 8384514 4G 5 Extended
/dev/sda5 33556480 41940991 8384512 4G 82 Linux swap / Solaris
Disk /dev/sde: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
3.添加RAID 10
root@debian:~# mdadm -Cv /dev/md0 -l 10 -n 4 /dev/sd{b,c,d,e}
4.查看详细信息
root@debian:~# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Mon Oct 10 05:19:08 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 : Mon Oct 10 05:20:13 2022
State : clean, resyncing
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Resync Status : 36% complete
Name : debian:0 (local to host debian)
UUID : bdf3f1a0:06c0b66c:5b859d41:47969f66
Events : 6
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
root@debian:~#
5.格式化为EXT4格式
root@debian:~# mkfs.ext4 /dev/md0
mke2fs 1.44.5 (15-Dec-2018)
/dev/md0 contains a ext4 file system
last mounted on Mon Oct 10 04:56:42 2022
Proceed anyway? (y,N) y
Creating filesystem with 10477056 4k blocks and 2621440 inodes
Filesystem UUID: 419fd096-6fee-443b-896f-45970567e2a3
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done
6.添加自动挂载
root@debian:~# mkdir /RAID10
root@debian:~# echo "/dev/md0 /RAID10 ext4 defaults 0 0" >> /etc/fstab
root@debian:~# mount -a
root@debian:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 1989024 0 1989024 0% /dev
tmpfs 401776 6416 395360 2% /run
/dev/sda1 16447356 6749932 8842232 44% /
tmpfs 2008860 12 2008848 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 2008860 0 2008860 0% /sys/fs/cgroup
/dev/sr0 47147918 47147918 0 100% /dvd
tmpfs 401772 4656 397116 2% /run/user/1000
tmpfs 401772 0 401772 0% /run/user/0
/dev/md0 40987872 49176 38826904 1% /RAID10
7.模拟故障
root@debian:~# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
root@debian:~# mdadm /dev/md0 -f /dev/sdd
mdadm: set /dev/sdd faulty in /dev/md0
root@debian:~# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Mon Oct 10 05:19:08 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 : Mon Oct 10 05:26:20 2022
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 2
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : debian:0 (local to host debian)
UUID : bdf3f1a0:06c0b66c:5b859d41:47969f66
Events : 24
Number Major Minor RaidDevice State
- 0 0 0 removed
1 8 32 1 active sync set-B /dev/sdc
- 0 0 2 removed
3 8 64 3 active sync set-B /dev/sde
0 8 16 - faulty /dev/sdb
2 8 48 - faulty /dev/sdd
只要有一组硬盘没有损坏就可以
LVM逻辑卷管理器
硬盘设备管理技术虽然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了。换句话说,当用户想要随着实际需求的变化调整硬盘分区的大小时,会受到硬盘“灵活性”的限制。这时就需要用到另外一项非常普及的硬盘设备资源管理技术了—逻辑卷管理器(Logical Volume Manager,LVM)。LVM允许用户对硬盘资源进行动态调整。
LVM是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。而LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。
为了更好理解,我们来看一个吃货的例子。比如小明家里想吃馒头,但是面粉不够了,于是妈妈从隔壁老王家、老李家、老张家分别借来一些面粉,准备蒸馒头吃。首先需要把这些面粉(物理卷[Physical Volume,PV])揉成一个大面团(卷组[Volume Group],VG),然后再把这个大面团分割成一个个小馒头(逻辑卷[Logical Volume,LV]),而且每个小馒头的重量必须是每勺面粉(基本单元[Physical Extent,PE])的倍数。
在日常的使用中,如果卷组(VG)的剩余容量不足,可以随时将新的物理卷(PV)加入到里面,进行不断地扩容。由于担心同学们还是不理解,这里准备了一张逻辑卷管理器的使用流程示意图,
物理卷处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列。卷组建立在物理卷之上,一个卷组能够包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。这就是LVM的核心理念。
LVM命令
部署时,需要逐个配置物理卷、卷组和逻辑卷,常用的部署命令
功能/命令 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
扫描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩展 | vgextend | lvextend | |
缩小 | vgreduce | lvreduce |
1.安装软件包
root@debian:~# apt install -y lvm2
2.查看硬盘
root@debian:~# fdisk -l
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb185de14
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 33554431 33552384 16G 83 Linux
/dev/sda2 33556478 41940991 8384514 4G 5 Extended
/dev/sda5 33556480 41940991 8384512 4G 82 Linux swap / Solaris
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
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 /dev/sdc: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
3.新建物理卷
可以理解为使这两块硬盘支持LVM技术
root@debian:~# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
4.加入卷组
将两块硬盘加入名为storge的卷组
root@debian:~# vgcreate storge /dev/sdb /dev/sdc
Volume group "storge" successfully created
root@debian:~# vgdisplay ##查看卷组信息
--- Volume group ---
VG Name storge
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 0 / 0
Free PE / Size 10238 / 39.99 GiB
VG UUID qZeqB8-MKSd-qv2B-kAkH-jLh6-XSJu-FL2vdy
5.切割逻辑卷
在storge切割一个37×4MB=148MB名为vo逻辑卷
也可以使用-L 150M来生成一个150MB的逻辑卷
root@debian:~# lvcreate -n vo -l 37 storge
Logical volume "vo" created.
root@debian:~# lvdisplay
--- Logical volume ---
LV Path /dev/storge/vo
LV Name vo
VG Name storge
LV UUID 952nj2-dOqc-kZos-CpFp-lBa0-nx6A-L4XGVt
LV Write Access read/write
LV Creation host, time debian, 2022-10-10 21:21:58 -0400
LV Status available
# open 0
LV Size 148.00 MiB
Current LE 37
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:0
6.格式化逻辑卷
root@debian:~# mkfs.ext4 /dev/storge/vo
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 151552 1k blocks and 38000 inodes
Filesystem UUID: 15ff4919-485e-4802-9ff6-42e4a02e7c68
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
7.添加自动挂载
root@debian:~# mkdir /lvm
root@debian:~# echo "/dev/storge/vo /lvm ext4 defaults 0 0" >> /etc/fstab
root@debian:~# mount -a
root@debian:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 1989024 0 1989024 0% /dev
tmpfs 401776 6352 395424 2% /run
/dev/sda1 16447356 6724560 8867604 44% /
tmpfs 2008860 0 2008860 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 2008860 0 2008860 0% /sys/fs/cgroup
/dev/sr0 47147918 47147918 0 100% /dvd
tmpfs 401772 3496 398276 1% /run/user/1000
tmpfs 401772 0 401772 0% /run/user/0
/dev/mapper/storge-vo 142649 1550 130491 2% /lvm
扩容逻辑卷
在前面的实验中,卷组是由两块硬盘设备共同组成的。用户在使用存储设备时感知不到设备底层的架构和布局,更不用关心底层是由多少块硬盘组成的,只要卷组中有足够的资源,就可以一直为逻辑卷扩容。扩容前请一定要记得卸载设备和挂载点的关联。
1.取消挂载
root@debian:~# umount /lvm
2.扩容至300MB
root@debian:~# lvextend -L 300M /dev/storge/vo ##扩容至300MB
Size of logical volume storge/vo changed from 148.00 MiB (37 extents) to 300.00 MiB (75 extents).
Logical volume storge/vo successfully resized.
3.检查硬盘完整性
root@debian:~# e2fsck -f /dev/storge/vo
e2fsck 1.44.5 (15-Dec-2018)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/storge/vo: 11/38000 files (0.0% non-contiguous), 10453/155648 blocks
4.重置设备在系统中的容量
root@debian:~# resize2fs /dev/storge/vo
resize2fs 1.44.5 (15-Dec-2018)
Resizing the filesystem on /dev/storge/vo to 307200 (1k) blocks.
The filesystem on /dev/storge/vo is now 307200 (1k) blocks long.
5.挂载
root@debian:~# mount -a
root@debian:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 393M 6.3M 387M 2% /run
/dev/sda1 16G 6.5G 8.5G 44% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sr0 45G 45G 0 100% /dvd
tmpfs 393M 3.5M 389M 1% /run/user/1000
tmpfs 393M 0 393M 0% /run/user/0
/dev/mapper/storge-vo 287M 2.1M 266M 1% /lvm
缩小逻辑卷
相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,数据丢失的风险更大。所以在生产环境中执行相应操作时,一定要提前备份好数据。另外,Linux系统规定,在对LVM逻辑卷进行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证数据的安全)。在执行缩容操作前记得先把文件系统卸载掉。
1.取消挂载
root@debian:~# unmount /lvm
2.检查完整性
root@debian:~# e2fsck -f /dev/storge/vo
e2fsck 1.44.5 (15-Dec-2018)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/storge/vo: 11/76000 files (0.0% non-contiguous), 15759/307200 blocks
3.通知系统逻辑卷vo容量缩小到120MB
root@debian:~# resize2fs /dev/storge/vo 120M
resize2fs 1.44.5 (15-Dec-2018)
Resizing the filesystem on /dev/storge/vo to 122880 (1k) blocks.
The filesystem on /dev/storge/vo is now 122880 (1k) blocks long.
4.缩小逻辑卷至120M
root@debian:~# lvreduce -L 120M /dev/storge/vo
WARNING: Reducing active logical volume to 120.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce storge/vo? [y/n]: y
Size of logical volume storge/vo changed from 300.00 MiB (75 extents) to 120.00 MiB (30 extents).
Logical volume storge/vo successfully resized.