RAID冗余与LVM磁盘阵列技术
一、RAID独立冗余磁盘阵列
RAID技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。
RAID 0、RAID 1、RAID5与RAID10这4种方案的对比如下所示,n代表硬盘总数
1、RAID 0
RAID 0技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组,并将数据依次写入各个物理硬盘中。这样一来,在最理想的状态下,硬盘设备的读写性能会提升数倍,但是若任意一块硬盘发生故障,将导致整个系统的数据都受到破坏。通俗来说,RAID 0技术能够有效地提升硬盘数据的吞吐速度,但是不具备数据备份和错误修复能力。如下图所示数据被分别写入到不同的硬盘设备中,即硬盘 A 和硬盘 B 设备会分别保存数据资料,最终实现提升读取、写入速度的效果。倘若硬盘发生故障,所有数据都将会被破坏。
2、RAID 1
尽管 RAID 0 技术提升了硬盘设备的读写速度,但它是将数据依次写入到各个物理硬盘中。也就是说,它的数据是分开存放的,其中任何一块硬盘发生故障都会损坏整个系统的数据。因此,如果生产环境对硬盘设备的读写速度没有要求,而是希望增加数据的安全性时,就需要用到 RAID 1 技术了。RAID 1 如下图所示,它是把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以把它看作是备份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用。RAID 1 技术虽然十分注重数据的安全性,但是因为是在多块硬盘设备中写入了相同的数据,因此硬盘设备的利用率得以下降。
3、RAID 5
如下图所示,RAID5 技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID 5 磁盘阵列中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上。这样的好处是,其中任何一设备损坏后不至于出现致命缺陷。图中Parity部分存放的就是数据的奇偶校验信息。换句话说,就是 RAID 5 技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试重建损坏的数据。
RAID 5最少由3块硬盘组成,使用的是硬盘切割(Disk Striping)技术。相较于RAID 1级别,好处就在于保存的是奇偶校验信息而不是一模一样的文件内容,所以当重复写入某个文件时,RAID 5 的磁盘阵列组只需要对应一个奇偶校验信息就可以,效率更高,存储成本也会随之降低。
4、RAID 10
顾名思义,RAID 10技术是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是由RAID1和RAID0组成的,所以正确的叫法应该是RAID 一零而不是RAID十。
仔细查看图可以发现,RAID 10 是先对信息进行分割,然后再两两一组制作镜像。也就是先将 RAID 1 作为最低级别的组合,然后再使用 RAID 0 技术将 RAID 1 磁盘阵列组合到一起,将它们视为“一整块”硬盘。而 RAID 01 则相反,它是先将硬盘分为两组,然后使用 RAID 0作为最低级别的组合,再将这两组 RAID 0硬盘通过 RAID 1 技术组合到一起。
5.1、RAID独立冗余阵列硬盘部署
5.1.1、RAID0部署
mdadm 命令用于创建、调整、监控和管理 RAID 设备,英文全称为“multiple devices admin”,语法格式为“mdadm 参数 硬盘名称”。mdadm命令参数如下:
-a 检测设备名称
-n 指定设备数量
-l 指定 RAID 级别
-C 创建阵列
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止 RAID 磁盘阵列(停止前需要取消挂载)
[root@localhost ~]# mdadm -C /dev/md0 -n 2 -l 0 /dev/sdb /dev/sdc
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 13M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 15G 2.1G 88% /
/dev/sda1 xfs 1014M 240M 775M 24% /boot
tmpfs tmpfs 378M 12K 378M 1% /run/user/42
overlay overlay 17G 15G 2.1G 88% /var/lib/docker/overlay2/f47a7fb74b7839de2af9f2b56c25927fad106fda17e75954f269fb780190c9d2/merged
tmpfs tmpfs 378M 0 378M 0% /run/user/0
[root@localhost ~]# mdadm -Q /dev/md0
/dev/md0: 3.99GiB raid0 2 devices, 0 spares. Use mdadm --detail for more detail.
[root@localhost ~]# mdadm -D /dev/md0
将设备格式化并挂载到设置好的挂载点,写入到
[root@localhost ~]# mkfs.xfs /dev/md0
meta-data=/dev/md0 isize=512 agcount=8, agsize=130944 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1047040, 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
挂载:
mount /dev/md0 /opt/RAID
写入配置文件,防止重启后丢失:
echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
5.1.2、RAID 1 0部署
[root@localhost ~]# mdadm -C /dev/md0 -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 35.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
└─md0 9:0 0 10G 0 raid10
sdc 8:32 0 5G 0 disk
└─md0 9:0 0 10G 0 raid10
sdd 8:48 0 5G 0 disk
└─md0 9:0 0 10G 0 raid10
sde 8:64 0 5G 0 disk
└─md0 9:0 0 10G 0 raid10
sr0 11:0 1 973M 0 rom
提一下RAID10的技术原理,它通过两两一组硬盘组成的 RAID 1 磁盘阵列保 证了数据的可靠性,其中每一份数据都会被保存两次,因此导致硬盘存在 50%的使用率和 50% 的冗余率。这样一来,20GB 的硬盘容量也就只有一半了。
5.1.3、磁盘损坏阵列及修复
使用-f模拟磁盘损坏
mdadm -D /dev/md0 -f /dev/sdc
RAID 10 级别的磁盘阵列中,当 RAID 1 磁盘阵列中存在一个故障盘时并不影响 RAID 10 磁盘阵列的使用。当购买了新的硬盘设备后再使用 mdadm 命令予以替换即可,在此期间可以在/RAID 目录中正常地创建或删除文件。
为了将故障盘移除,还需要再执行移除命令:
mdadm /dev/md0 -r /dev/sdc;如下所示:
[root@localhost ~]# mdadm /dev/md0 -r /dev/sdc
mdadm: hot removed /dev/sdc from /dev/md0
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 35.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
└─md0 9:0 0 10G 0 raid10 /opt/RAID
sdc 8:32 0 5G 0 disk
sdd 8:48 0 5G 0 disk
└─md0 9:0 0 10G 0 raid10 /opt/RAID
sde 8:64 0 5G 0 disk
└─md0 9:0 0 10G 0 raid10 /opt/RAID
sr0 11:0 1 973M 0 rom
使用-a添加新的磁盘;如下所示:
[root@localhost ~]# mdadm /dev/md0 -a /dev/sdf
mdadm: added /dev/sdf
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Feb 18 11:48:36 2025
Raid Level : raid10
Array Size : 10475520 (9.99 GiB 10.73 GB)
Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Feb 18 16:29:59 2025
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 : 68% complete
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : fd4578df:02f9126d:a2892943:270aec4d
Events : 36
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
4 8 80 1 spare rebuilding /dev/sdf
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
5.1.4、磁盘阵列+备份盘
创建一个 RAID 5磁盘阵列+备份盘。在下面的命令中,参数-n 3代表创建这个 RAID 5 磁盘阵列所需的硬盘数,参数-l 5 代表 RAID 的级别,而参数-x 1 则代表有一块备份盘。当查看/dev/md0(即 RAID 5 磁盘阵列的名称)磁盘阵列的时候,就能看到有备份盘在等待中了。
[root@localhost ~]# mdadm -Cv /dev/md1 -n3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sdg
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: /dev/sdb appears to be part of a raid array:
level=raid10 devices=4 ctime=Tue Feb 18 11:48:36 2025
mdadm: /dev/sdc appears to be part of a raid array:
level=raid10 devices=4 ctime=Tue Feb 18 11:48:36 2025
mdadm: /dev/sdd appears to be part of a raid array:
level=raid10 devices=4 ctime=Tue Feb 18 11:48:36 2025
mdadm: size set to 5237760K
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 35.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 5G 0 disk
└─md1 9:1 0 10G 0 raid5
sdc 8:32 0 5G 0 disk
└─md1 9:1 0 10G 0 raid5
sdd 8:48 0 5G 0 disk
└─md1 9:1 0 10G 0 raid5
sde 8:64 0 5G 0 disk
└─md0 9:0 0 10G 0 raid10
sdf 8:80 0 5G 0 disk
└─md0 9:0 0 10G 0 raid10
sdg 8:96 0 5G 0 disk
└─md1 9:1 0 10G 0 raid5
sr0 11:0 1 973M 0 rom
[root@localhost ~]# mdadm -D /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Tue Feb 18 17:36:38 2025
Raid Level : raid5
Array Size : 10475520 (9.99 GiB 10.73 GB)
Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Feb 18 17:37:04 2025
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 4
Failed Devices : 0
Spare Devices : 2
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 46% complete
Name : localhost.localdomain:1 (local to host localhost.localdomain)
UUID : c2138f66:200468ad:fca1ef92:287ee8e0
Events : 8
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 spare rebuilding /dev/sdd
3 8 96 - spare /dev/sdg
创建好RAID阵列后还是那套流程,格式化、挂载
[root@localhost ~]# mkfs.ext4 /dev/md1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
655360 inodes, 2618880 blocks
130944 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost ~]# mount /dev/md1 /opt/RAID5/
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 36G 21G 15G 59% /
/dev/sda1 xfs 1014M 151M 864M 15% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/0
overlay overlay 36G 21G 15G 59% /var/lib/docker/overlay2/c52f6377adacc12c53afa7bf730bea0e344b98eb9e5b3811fa86bd5a43835481/merged
/dev/md1 ext4 9.8G 37M 9.2G 1% /opt/RAID5
5.1.5、删除磁盘阵列
磁盘阵列部署后一般不会被轻易停用。但万一赶上了,还是要知道怎么将磁盘阵列删除。
首先,需要将所有的磁盘都设置成停用状态:
[root@localhost ~]# umount /opt/RAID5/
[root@localhost ~]# mdadm /dev/md1 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md1
[root@localhost ~]# mdadm /dev/md1 -f /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md1
[root@localhost ~]# mdadm /dev/md1 -f /dev/sdd
mdadm: set /dev/sdd faulty in /dev/md1
[root@localhost ~]# mdadm /dev/md1 -f /dev/sdf
[root@localhost ~]# mdadm /dev/md1 -f /dev/sdg
mdadm: set /dev/sdg faulty in /dev/md1
再给挪出去
[root@localhost ~]# mdadm /dev/md1 -r /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md1
[root@localhost ~]# mdadm /dev/md1 -r /dev/sdc
mdadm: hot removed /dev/sdc from /dev/md1
[root@localhost ~]# mdadm /dev/md1 -r /dev/sdd
mdadm: hot removed /dev/sdd from /dev/md1
[root@localhost ~]# mdadm /dev/md1 -r /dev/sdg
mdadm: hot removed /dev/sdg from /dev/md1
查看阵列情况:
[root@localhost ~]# mdadm -D /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Tue Feb 18 17:36:38 2025
Raid Level : raid5
Array Size : 10475520 (9.99 GiB 10.73 GB)
Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
Raid Devices : 3
Total Devices : 0
Persistence : Superblock is persistent
Update Time : Tue Feb 18 17:57:04 2025
State : clean, FAILED
Active Devices : 0
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Number Major Minor RaidDevice State
- 0 0 0 removed
- 0 0 1 removed
- 0 0 2 removed
下面继续停用整个 RAID 磁盘阵列
[root@localhost ~]# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
查看阵列是否存在
[root@localhost ~]# ls /dev/md1
ls: 无法访问/dev/md1: 没有那个文件或目录
二、LVM逻辑卷管理
1、LVM简介:
LVM 是 Linux 系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。而 LVM 技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。
(1)物理卷(Physical Volumes, PVs):这是LVM的基本构建块,通常是一个单独的硬盘分区或者整个硬盘。
(2)卷组(Volume Groups, VGs):由一个或多个物理卷组成。可以将卷组想象成一个大的存储池,从中可以创建逻辑卷。
(3)逻辑卷(Logical Volumes, LVs):从卷组中分配出来的存储区域,它可以像普通分区一样被格式化并挂载到文件系统中。
- LVM的使用
创建PV(物理卷)之前一定要使用fdisk 命令将分区类型设置成LVM,另一个磁盘同操作
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x89a8e205 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-10485759,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):
将使用默认值 10485759
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 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 <3 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
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
2-1、创建PV物理卷
[root@localhost ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@localhost ~]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
查看PV物理卷状态:pvs、pvscan、pvdisplay
2-2、将PV物理卷加入VG卷组(创建卷组VG)
vgcreate vg_name pv1 pv2
查看卷组信息:vgs、vgscan、vgdisplay
也可以通过pvs查看物理卷所存在的地方
pvs
2-3、LV逻辑卷
使用lvcreate命令
root# lvcreate -L <lv_size> <vg_name> -n <lv_name>
# 将卷组vg_name下所有剩余空间给创建的lv_name逻辑卷
# 将卷组vg_name下所有剩余空间给创建的lv_name逻辑卷
# FREE指的是当前卷组中未分配给任何逻辑卷的空闲空间
在对逻辑卷进行切割时有两种计量单位。第一种是以容量为单位,所使用的参数为-L。例如,使用-L 150M 生成一个大小为 150MB 的逻辑卷。另外一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为 4MB。例如,使用-l 37 可以生成一个大小为 37×4MB=148MB 的逻辑卷
[root@localhost ~]# lvcreate -l +100%FREE test_1 -n test_lv
Logical volume "test_lv" created.
[root@localhost ~]# lvscan
ACTIVE '/dev/centos/swap' [<3.88 GiB] inherit
ACTIVE '/dev/centos/root' [45.11 GiB] inherit
ACTIVE '/dev/test_1/test_lv' [<5.00 GiB] inherit
[root@localhost ~]# ll /dev/test_1/
总用量 0
lrwxrwxrwx. 1 root root 7 2月 19 14:23 test_lv -> ../dm-2
[root@localhost ~]# ll /dev/test_1/test_lv
lrwxrwxrwx. 1 root root 7 2月 19 14:23 /dev/test_1/test_lv -> ../dm-2
2-3-1、查看逻辑卷信息
lvs、lvscan、lvdisplay
2-3-2、扩容逻辑卷
以系统卷组centos为例,扩容空间:
(1)、pv物理卷添加到centos卷组中
[root@localhost ~]# vgextend centos /dev/sdb1 /dev/sdc1
Volume group "centos" successfully extended
[root@localhost ~]# vgscan
Reading volume groups from cache.
Found volume group "centos" using metadata type lvm2
(2)、扩展逻辑卷大小
[root@localhost ~]# lvextend -l +100%FREE /dev/mapper/centos-root
Size of logical volume centos/root changed from <35.12 GiB (8990 extents) to 45.11 GiB (11549 extents).
Logical volume centos/root successfully resized.
(3)扩展文件系统
[root@localhost ~]# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=2301440 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=9205760, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=4495, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 9205760 to 11826176
然后查看磁盘空间变化,这是扩容前的:
这是扩容后的:
3、LVM命令汇总:
(1)PV物理卷:
创建:create /dev/sd*
查看:pvs、pvscan、pvdisplay
删除:pvremove /dev/sd*
- vg卷组:
创建:vgcreate vg_name pv
扩展:vgextend vg_name pv
查看:vgs、vgscan、vgdispaly
删除:vgremove vg_name
- lv逻辑卷
创建:lvcreate +100%FREE vg_name lv_name
扩展:lvextend +100%FREE lv_name
查看:lvs、lvscan、lvdispaly
删除:lvremove /dev/lv_name
[root@localhost ~]# lvremove /dev/test_1/test_lv
Do you really want to remove active logical volume test_1/test_lv? [y/n]: y
Logical volume "test_lv" successfully removed