Logical Volume Manager,逻辑卷管理
- 能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性
- /boot分区用于存放引导文件,不能基于LVM创建
三大概念:
物理卷PV | 基于硬盘或分区设备创建而来,生成N多个PE,一个PE默认大小4M |
卷组VG | 由多个物理卷组成的资源池 |
逻辑卷LV | 从卷组中划分出指定容量大小的存储卷 |
主要命令 :
创建并使用LVM:
1)添加硬盘
[fdisk分区,分区类型ID设置为8e]
新建三块磁盘
[root@localhost ~]# fdisk -l //查询硬盘分区状况 以长格式形式
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009ec77
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 83886079 40893440 8e Linux LVM
磁盘 /dev/mapper/centos-root:37.7 GB, 37706792960 字节,73646080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host0/scan //在线刷新
[root@localhost ~]# echo "- - -" > /sy class/scsi_host/host1/scan
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host2/scan
[root@localhost ~]# fdisk -l //查询硬盘分区状况 以长格式形式
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009ec77
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 83886079 40893440 8e Linux LVM
磁盘 /dev/mapper/centos-root:37.7 GB, 37706792960 字节,73646080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@localhost ~]#
设置8e //分区类型改为LVM
/dev/sdb
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x69908427 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):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
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69908427
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 8e Linux LVM
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]#
[root@localhost ~]# fdisk -l /dev/sdb
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69908427
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 8e Linux LVM
[root@localhost ~]#
/dev/sdc
[root@localhost ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x50a62702 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):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
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x50a62702
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 41943039 20970496 8e Linux LVM
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
/dev/sdd
[root@localhost ~]# fdisk /dev/sdd
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x08636a19 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
检查一下
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009ec77
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 83886079 40893440 8e Linux LVM
磁盘 /dev/mapper/centos-root:37.7 GB, 37706792960 字节,73646080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x69908427
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41943039 20970496 8e Linux LVM
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x50a62702
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 41943039 20970496 8e Linux LVM
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x08636a19
设备 Boot Start End Blocks Id System
/dev/sdd1 2048 41943039 20970496 8e Linux LVM
[root@localhost ~]#
2)创建物理卷
pvcreate 硬盘/分区设备文件...
[root@localhost ~]# pvscan /dev/sdb1 //扫描物理卷/dev/sdb1
Command does not accept argument: /dev/sdb1. //没有发现
[root@localhost ~]#
[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1 //创建物理卷 简写: /dev/sd[bc]1
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
[root@localhost ~]#
查看
[root@localhost ~]# pvdisplay /dev/sdb1 //显示/dev/sdb1
"/dev/sdb1" is a new physical volume of "<20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size <20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID TBJs55-V0WA-DDxx-erfD-0acu-EY68-dWzT5E
[root@localhost ~]# pvdisplay /dev/sdc1 查看/dev/sdc1
"/dev/sdc1" is a new physical volume of "<20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size <20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID shyAaH-XaeC-YnY5-8pVR-DhoQ-4KXX-iGagf1
[root@localhost ~]#
3)创建卷组
vgcreate 卷组名 物理卷....
[root@localhost ~]# vgcreate vgyz /dev/sdb1 /dev/sdc1 //创建卷组vgyz
// 缩写=vgcreats vgyz /dev/sd[bc]1
Volume group "vgyz" successfully created
[root@localhost ~]#
查看
[root@localhost ~]#
[root@localhost ~]# vgdisplay vgyz //查看卷组vgyz
--- Volume group ---
VG Name vgyz
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 //基于/dev/sdb1 /dev/sdc1创建的卷组大小
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 0 / 0
Free PE / Size 10238 / 39.99 GiB
VG UUID z0crII-63ZD-vIiS-cS8H-Vdzj-2Rdm-hduJJT
[root@localhost ~]#
4)创建逻辑卷
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
[root@localhost ~]# lvcreate -L 30G -n lvhf vgyz
Logical volume "lvhf" created. //创建逻辑卷 -L 容量大小 -n 新建逻辑卷名 卷组名
[root@localhost ~]#
查看
[root@localhost ~]#
[root@localhost ~]# lvdisplay vgyz 查看逻辑卷
--- Logical volume ---
LV Path /dev/vgyz/lvhf
LV Name lvhf
VG Name vgyz
LV UUID 7dEfgM-GdOB-y1sA-AebS-Gk8W-xOCM-v8MMAf
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-04-16 21:40:11 +0800
LV Status available
# open 0
LV Size 30.00 GiB
Current LE 7680
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
[root@localhost ~]#
5)格式化
mkfs -t xfs/ext4 /dev/卷组名/逻辑卷名
[root@localhost ~]#
[root@localhost ~]# mkfs -t xfs /dev/vgyz/lvhf 格式化/dev/vgyz/lvhf
meta-data=/dev/vgyz/lvhf isize=512 agcount=4, agsize=1966080 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=7864320, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=3840, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]#
查看
[root@localhost ~]#
[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 36G 4.6G 31G 13% /
/dev/sda1 xfs 1014M 187M 828M 19% /boot
tmpfs tmpfs 378M 28K 378M 1% /run/user/0
/dev/sr0 iso9660 4.5G 4.5G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vgyz-lvhf xfs 30G 33M 30G 1% /opt/xy101
[root@localhost ~]#
6)挂载使用
mount /etc/fstab
挂载
[root@localhost ~]# mkdir /opt/xy101 //新建空目录并指定位置在/opt/下
[root@localhost ~]# mount /dev/vgyz/lvhf /opt/xy101
//逻辑卷dev/vgyz/lvhf挂载到/opt/xy101目录下
[root@localhost ~]#
[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 36G 4.6G 31G 13% /
/dev/sda1 xfs 1014M 187M 828M 19% /boot
tmpfs tmpfs 378M 28K 378M 1% /run/user/0
/dev/sr0 iso9660 4.5G 4.5G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vgyz-lvhf xfs 30G 33M 30G 1% /opt/xy101
[root@localhost ~]#
使用
[root@localhost ~]#
[root@localhost ~]# cd /opt/xy101/ //切换到/opt/xy101/
[root@localhost xy101]#
[root@localhost xy101]# touch file{1..9} //新建文件file1~9 共九个文件
[root@localhost xy101]#
[root@localhost xy101]# ls //查看
file1 file2 file3 file4 file5 file6 file7 file8 file9
[root@localhost xy101]#
[root@localhost xy101]# mkdir -p aa/bb/cc4 //一次性创建多层目录
[root@localhost xy101]#
[root@localhost xy101]# ls -R //以递归方式显示目录中所有子目录内容
.:
aa file2 file4 file6 file8
file1 file3 file5 file7 file9
./aa:
bb
./aa/bb:
cc4
./aa/bb/cc4:
[root@localhost xy101]#
扩容:
扩容卷组:
vgextend 卷组名 物理卷....
[root@localhost xy101]#
[root@localhost xy101]# pvcreate /dev/sdd1 //添加磁盘/dev/sdd1
Physical volume "/dev/sdd1" successfully created.
[root@localhost xy101]#
[root@localhost xy101]# vgextend vgyz /dev/sdd1 //扩容卷vgyz 把磁盘/dev/sdd1加进去
Volume group "vgyz" successfully extended
[root@localhost xy101]# vgdisplay vgyz //查看卷vgyz
--- Volume group ---
VG Name vgyz
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 3
Act PV 3
VG Size <59.99 GiB //已经扩容成功
PE Size 4.00 MiB
Total PE 15357
Alloc PE / Size 8960 / 35.00 GiB
Free PE / Size 6397 / <24.99 GiB
VG UUID z0crII-63ZD-vIiS-cS8H-Vdzj-2Rdm-hduJJT
[root@localhost xy101]#
扩容逻辑卷:
lvextend -L +容量大小 -r /dev/卷组名/逻辑卷名
# -r选项可实现自动刷新逻辑卷文件系统容量大小
[root@localhost xy101]# lvextend -L +5G -r /dev/vgyz/lvhf
Size of logical volume vgyz/lvhf changed from 30.00 GiB (7680 extents) to 35.00 GiB (8960 extents).
Logical volume vgyz/lvhf successfully resized.
meta-data=/dev/mapper/vgyz-lvhf isize=512 agcount=4, agsize=1966080 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=7864320, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=3840, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 7864320 to 9175040
[root@localhost xy101]#
手动刷新:
xfs_growfs resize2fs
磁盘限额:
为什么进行磁盘配额 :
当Iinux根分区的磁盘空间耗尽时,linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障。
为了避免在服务器中出现类似磁盘空问不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空问、文件数是进行限制,以防止个别用户恶意或无意问占用大量磁盘空问,从而保持系统存储空问的稳定性和持续可用性。
在 centos 系统中,不同的文件系统使用不同磁盘配额配置管理工具。例如,X5S 文件系统通过 xis gota 工具进行管理: BXT3/4 文件系统通过 gota 工具进行管理
磁盘限额:
1)安装软件
xfsprogs quota
检查是否已安装xfsprogs和xfs_quota软件包
rpm -q xfsprogs quota
yum install -y xfsprogs quota
[root@localhost ~]# rpm -q xfsprogs xfs_quota //查看是否安装xfsprogs quota
xfsprogs-4.5.0-22.el7.x86_64
未安装软件包 xfs_quota //没有安装
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 13M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 36G 4.6G 31G 13% /
/dev/sda1 1014M 187M 828M 19% /boot
tmpfs 378M 24K 378M 1% /run/user/0
/dev/sr0 4.5G 4.5G 0 100% /run/media/root/CentOS 7 x86_64
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# mount /dev/sr0 /mnt 把光盘挂载
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cd /etc/yum.repos.d //切换目录到/etc/yum.repos.d
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Sources.repo
CentOS-CR.repo CentOS-Vault.repo
CentOS-Debuginfo.repo CentOS-x86_64-kernel.repo
CentOS-fasttrack.repo local.repo
CentOS-Media.repo
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# cat local.repo //原仓库配置文件
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
#gpgkey=file:///mut/RPM-GPG-KEY-Centos-7
[root@localhost yum.repos.d]# [root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# yum install -y xfsprogs quota
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 xfsprogs-4.5.0-22.el7.x86_64 已安装并且是最新版本
软件包 1:quota-4.01-19.el7.x86_64 已安装并且是最新版本
无须任何处理
[root@localhost yum.repos.d]#
2)以支持磁盘限额的方式挂载文件系统
mount -o usrquota,grpquota ....
[root@localhost yum.repos.d]# cd /opt/xy101 //切换
[root@localhost xy101]# ls
aa file2 file4 file6 file8
file1 file3 file5 file7 file9
[root@localhost xy101]#
[root@localhost xy101]#
[root@localhost xy101]# rm -rf * //删除
[root@localhost xy101]#
[root@localhost xy101]#
[root@localhost xy101]# ls //查看
[root@localhost xy101]# cd //切换
[root@localhost ~]#
[root@localhost ~]# mount -o usrquota,grpquota /dev/vgyz/lvhf /opt/xy101
//以支持磁盘限额的方式挂载文件系统
[root@localhost ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=1913548k,nr_inodes=478387,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,freezer)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,blkio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuacct,cpu)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,net_prio,net_cls)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,hugetlb)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,perf_event)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,pids)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,devices)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=27,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=14677)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=386128k,mode=700)
gvfsd-fuse on /run/user/0/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
/dev/sr0 on /run/media/root/CentOS 7 x86_64 type iso9660 (ro,nosuid,nodev,relatime,uid=0,gid=0,iocharset=utf8,dmode=0500,mode=0400,uhelper=udisks2)
/dev/sr0 on /mnt type iso9660 (ro,relatime,uid=0,gid=0,iocharset=utf8,dmode=0500,mode=0400)
/dev/mapper/vgyz-lvhf on /opt/xy101 type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]#
3)配置磁盘限额
xfs_quota -x -c 'limit -u/-g bsoft=XX bhard=XX isoft=XX ihard=XX 用户名/组名' 挂载点目录
编辑用户和组账号的配额设置
useradd zhangsan
echo 123456 | passwd --stdin zhangsan #免交互式更改用户密码
passwd zhangsan
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 zhangsan' /opt/#仅限制磁盘容量
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M zhangsan' /opt/#仅限制文件数
xfs_quota -x -c 'limit -u isoft=4 ihard=5 zhangsan' /opt/#查看 zhangsan 磁盘容量限制
xfs_quota -c 'quota -uv zhangsan' /opt/#查看 zhangsan 文件数限制
xfs_quota -c 'quota -i -uv zhangsan' /opt/
-x | 表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用 |
-c | 表示直接调用管理命令 |
-u | 指定用户账号对象 |
-g | 指定组账号对象 |
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# echo abc123 | passwd --stdin zhangsan
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# useradd lisi
[root@localhost ~]# echo abc123 | passwd --stdin lisi
更改用户 lisi 的密码 。
[root@localhost ~]# xfs_quota -x -c 'limit -u bsoft=80M bhard=100M zhangsan' /opt
[root@localhost ~]# xfs_quota -x -c 'limit -u isoft=8 ihard=10 lisi' /opt
[root@localhost ~]#
4)验证磁盘限额
容量验证 dd if=/dev/zero of=挂载点目录/XX文件 bs=每次复制的数据大小 count=复制次数
数量验证 touch mkdir
验证磁盘配额功能
chmod 777 /opt
su zhangsan
cd /opt
#验证磁盘容量超限
dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=12#验证磁盘文件数超限
touch {aa,bb,cc,dd,ee,ff}.txt
5)查看磁盘限额使用情况
xfs_quota -x -c 'report -abih'
chmod 777 /opt
su zhangsan
cd /opt
#验证磁盘容量超限
dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=12#验证磁盘文件数超限
touch {aa,bb,cc,dd,ee,ff}.txt
[root@localhost ~]# su lisi
[lisi@localhost root]$ cd /opt
[lisi@localhost opt]$ ll
总用量 0
drwxr-xr-x. 2 root root 6 4月 16 13:46 xy101
[lisi@localhost opt]$ cd
[lisi@localhost ~]$ chmod 777 /opt
chmod: 更改"/opt" 的权限: 不允许的操作
[lisi@localhost ~]$ exit
exit
[root@localhost ~]# chmod 777 /opt
[root@localhost ~]# su lisi
[lisi@localhost root]$ cd /opt
[lisi@localhost opt]$ touch file{1..9}
[lisi@localhost opt]$ touch file10
[lisi@localhost opt]$ touch file11
touch: 无法创建"file11": 超出磁盘限额
[lisi@localhost opt]$