一、LVM概述
1.LVM:逻辑卷管理 能够在保持现有数据不用的情况下动态调整磁盘容量,从容提高磁盘管理的灵活性 /boot目录分区用于存放系统引导文件,不能基于LVM创建
2.LVM机制的基本概念:
- PV物理卷(基于硬盘或分区设备创建而来 物理卷可以分为N多个PE存储块 每个4兆)
- VG卷组 (多个物理卷组成的资源池)
- LV逻辑卷(从卷组中划分出指定大小的存储卷)
二、LVM的管理命令
pvcreate 设备名1...
vgcreate 卷组名
lvcreate -L
lvextend -L
1.创建并使用LVM
添加硬盘,分区,分区ID设置为8e(可省略)
创建物理卷 pvcreate 硬盘/分区设备文件
创建卷组 vgcreate 卷组名 物理卷
创建逻辑卷 lvcreate -L 指定容量大小 -n 指定逻辑卷名 /卷组名
格式化 mkfs -t xfs/ext4 /dev/卷组名 /逻辑卷名
挂载使用 mount 逻辑卷名 /挂载目录
扩容:
扩容卷组 vgextend 卷组名 物理卷
扩容逻辑卷 lvextend -L +容量大小 -r /dev/卷组名/逻辑卷名
手动刷新 xfs_growfs resize2fs
fdisk /dev/sdb
三、LVM应用实列
[root@localhost ~]# fdisk -l ##查看磁盘信息
磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000972a9
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 104857599 51379200 8e Linux LVM
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 ###添加的新磁盘/dev/sdb
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区 ###添加的新磁盘/dev/sdc
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区 ###添加的新磁盘/dev/sdd
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-root:48.4 GB, 48444211200 字节,94617600 个扇区
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 ~]# fdisk /dev/sdb ###创建磁盘分区
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x105a1d6a 创建新的 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 ###为LVM类型
已将分区“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
磁盘标识符:0x105a1d6a
设备 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 ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xb3f7c30e 创建新的 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 获取帮助):p
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xb3f7c30e
设备 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.
正在同步磁盘。
[root@localhost ~]# pvcreate /dev/sdb1 ###创建物理卷
Physical volume "/dev/sdb1" successfully created.
[root@localhost ~]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
[root@localhost ~]# pvdisplay ###查看物理卷信息
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size <49.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 12543
Free PE 1
Allocated PE 12542
PV UUID HtX3T8-vve6-0Abb-zX0K-kXlf-L7vT-7vT0Fm
"/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 v4YecU-TI3P-CQ3M-syFp-zd7O-CvOm-r0ObsU
"/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 fPwgtC-jxj6-Np3p-7lUq-pBhY-cZWD-UfQIh6
[root@localhost ~]# vgcreate /dev/sdb1 /dev/sdc1
/dev/sdb1: already exists in filesystem
Run `vgcreate --help' for more information.
[root@localhost ~]# vgcreate li /dev/sdb1 /dev/sdc1 ###创建卷组 li是自己取的卷组名字
Volume group "li" successfully created
[root@localhost ~]# vgdisplay ###查看卷组信息
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <49.00 GiB
PE Size 4.00 MiB
Total PE 12543
Alloc PE / Size 12542 / 48.99 GiB
Free PE / Size 1 / 4.00 MiB
VG UUID ldbt8d-b23c-FBQ2-0ReH-Hpu5-nreO-Usvs9s
--- Volume group ---
VG Name li
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 ibxS4o-31oa-i3aw-eA1L-Fn1F-Xtko-PHXaQh
[root@localhost ~]# lvcreate -L 29G -n text101 /li
Volume group name expected (no slash)
Run `lvcreate --help' for more information.
[root@localhost ~]# lvcreate -L 29G -n text101 /dev/li ###创建LVM逻辑卷 -L是指定大小 -n是自己取个逻辑卷名字
Logical volume "text101" created.
[root@localhost ~]# lvdisplay ###查看逻辑卷信息
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID bwoVo3-FIr4-VVZO-MAsp-OWSF-sR04-IMGVbg
LV Write Access read/write
LV Creation host, time localhost, 2024-04-04 00:36:21 +0800
LV Status available
# open 1
LV Size <45.12 GiB
Current LE 11550
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID zsTgnR-M7GN-o6jG-pr7E-CAE5-mRmV-2ERdkE
LV Write Access read/write
LV Creation host, time localhost, 2024-04-04 00:36:21 +0800
LV Status available
# open 2
LV Size <3.88 GiB
Current LE 992
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/li/text101
LV Name text101
VG Name li
LV UUID 95o4ta-yDmL-67KY-wC02-93zm-scKI-CLpxzf
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-04-16 22:55:26 +0800
LV Status available
# open 0
LV Size 29.00 GiB
Current LE 7424
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
[root@localhost ~]# mkfs -t xfs /dev/li/text101 ###格式化逻辑卷
meta-data=/dev/li/text101 isize=512 agcount=4, agsize=1900544 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=7602176, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=3712, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mount /dev/l
li/ loop-control lp1 lp3
log lp0 lp2
[root@localhost ~]# mkdir xy101 ###创建一个挂载点
[root@localhost ~]# mount /dev/li/text101 /xy101
mount: 挂载点 /xy101 不存在
[root@localhost ~]# ls
anaconda-ks.cfg xy101 模板 图片 下载 桌面
initial-setup-ks.cfg 公共 视频 文档 音乐
[root@localhost ~]# mount /dev/li/text101 xy101/ ###挂载在xy101目录上
[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 46G 5.2G 40G 12% /
/dev/sda1 xfs 1014M 187M 828M 19% /boot
tmpfs tmpfs 378M 12K 378M 1% /run/user/42
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/mapper/li-text101 xfs 29G 33M 29G 1% /root/xy101
[root@localhost ~]#
四、磁盘配额概述
1.磁盘限额配置:
- 1.安装软件 xfsprogs quota
- 2.以支持磁盘限额的方式挂载文件 mount -o usrquota,grpquota
- 3.配置磁盘限制
xfs_quota -x -c 'limit -u/-g bsoft=xx bhard=xx isoft=xx ihard=xx 用户名/组名’ 挂载点目录
(首先创建用户 useradd lisi
echo 密码 | passwd --stdin lisi
xfs_quota -x -c 'limit' -u bsoft=80M bhard=100M lisi' /挂载点 对李四用户进行限制 (bsoft 软限制 bhard硬限制 容量大小))
xfs_quota -c 'quota -u -v lisi' /挂载点 查看详细信息
- 4.验证磁盘限额 容量验证 dd if =/dev/zero of=挂载点目录/xx文件 bs=每次复制的大小 count=复制次数 数量验证 touch mkdir
- 5.查看磁盘限额使用情况 xfs_quota -x -c 'report -abih'