1.分区缺点和逻辑卷解决的问题
A.没有备份功能
B.无法扩容
C.性能取决于硬盘本身
逻辑卷解决了B的问题
2.LVM概述
lvm基本概念
1.先确定可以使用的磁盘和分区。
2.先将硬盘拆分成一个个小的块(块大小默认为4m)。
3.然后将这些块组成一个集合。
4.从这个集合取块(取空间)。
3.创建LVM过程
1.创建物理卷:pvcreate 设备名1 设备名2 ......
2.创建卷组:vgcreate 卷组名 物理卷名1 物理卷名2.........
3.创建逻辑卷:lvcreate -L 容量大小 -n 逻辑卷名 卷组名
4.格式化逻辑卷。
3.1举例
将sdb与sdc加入卷组vg01,并创建新的逻辑卷取名为lv1,大小为10G,然后将逻辑卷lv1永久挂载到/mnt/test下。
[root@localhost ~]# pvcreate /dev/sdb /dev/sdc #创建物理卷sdb sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
[root@localhost ~]# vgcreate vg01 /dev/sdb /dev/sdc #创建卷组vg01 将物理卷sdb sdc加入到卷组vg01
Volume group "vg01" successfully created
[root@localhost ~]# lvcreate -n lv1 -L +10G vg01 #创建逻辑卷取名为lv1,大小为10G
Logical volume "lv1" created.
[root@localhost ~]# mkfs.xfs /dev/vg
vg01/ vga_arbiter
[root@localhost ~]# mkfs.xfs /dev/vg01/lv1 #以xfs文件系统格式化逻辑卷lv1
meta-data=/dev/vg01/lv1 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# vim /etc/fstab #系统开机自动挂载目录
[root@localhost ~]# mkdir /mnt/test #在/mnt下创建test文件夹
[root@localhost ~]# cd /mnt
[root@localhost mnt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 4月 12 17:23 test
[root@localhost mnt]# vim /etc/fstab
[root@localhost mnt]# cat /etc/fstab
#/dev/vg01/lv1: UUID="7c90b6f8-7380-4e12-9348-5046805c5d5d" TYPE="xfs"
#
# /etc/fstab
# Created by anaconda on Tue Mar 26 23:01:31 2024
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=801dc6ce-f802-4c85-8b61-c082de1dde1e /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
UUID=7c90b6f8-7380-4e12-9348-5046805c5d5d /mnt/test xfs defaults 0 0 #刚刚写入的内容
[root@localhost mnt]# mount #查看挂载情况,因为没有刷新挂载目录,此时刚刚写入的永久挂载并没有生效
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
省略
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (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/42 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=403020k,mode=700,uid=42,gid=42)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=403020k,mode=700)
[root@localhost mnt]# mount -a #刷新挂载目录
[root@localhost mnt]# mount #查看挂载
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
省略
nfsd on /proc/fs/nfsd type nfsd (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/42 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=403020k,mode=700,uid=42,gid=42)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=403020k,mode=700)
/dev/mapper/vg01-lv1 on /mnt/test type xfs (rw,relatime,seclabel,attr2,inode64,noquota) #刚刚写入的永久挂载生效
4.LVM扩容
情况A:卷组中的空间足够
此时直接加想要的空间大小即可
lvextend -L +空间大小 逻辑卷名
[root@localhost ~]# lvextend -L +5G /dev/vg01/ljg #逻辑卷ljg扩容5G空间
Size of logical volume vg01/ljg changed from 24.00 GiB (6144 extents) to 29.00 GiB (7424 extents).
Logical volume vg01/ljg successfully resized.
[root@localhost ~]#xfs_growfs /dev/vg01/ljg #给新增部分加文件系统
meta-data=/dev/vg01/ljg 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
情况B:卷组中的空间不够
此时要先扩卷组
vgextend 卷组名 物理卷名
后续和情况A一样
此时扩容后新增的逻辑卷还没有文件系统
需要将新增逻辑卷格式化
xfs文件系统:xfs_growfs 逻辑卷名
ext4文件系统:resizefs 逻辑卷名
也有更简便一步到位的方法,在扩容逻辑卷的命令中加上 -r,它可以立即将文件系统刷新至原逻辑卷文件系统的格式
lvextend -L +空间大小 逻辑卷路径 -r
5.磁盘配额
5.1.磁盘配额简介
磁盘配额(Quota): Linux 系统中用来限制特定的普通用户或用户组在指定的分区上占用的磁盘空间或文件个数的。( Linux 中默认安装了 Quoted 工具)
A.限制类型:限制磁盘容量的大小、限制文件数量。
B.限制对象:用户账号、组账号。
C.限制方法:软限制:软限制就是超过限制之后,还可以用,但是会提醒你;
软限制:硬限制就是多少就是多少,不能超出。
5.2.磁盘配额使用条件
-
内核必须支持磁盘配额。
-
系统中必须安装了 Quota 工具。我们的 Linux 中默认安装了 Quoted 工具
-
要支持磁盘配额的分区必须开启磁盘配额功能。这项功能可以手动开启,不再是默认开启的
用户磁盘配额:userquota
用户组磁盘配额:grpquota
| 选项 | 含义 |
|---|---|
| -x | 启动专家模式,在专家模式下才能使用磁盘配额 |
| -c | 创建、直接调用管理命令 |
| -u | 指定用户,比如lisi |
| -g | 指定组账号对象 |
| limit | 限制 的意思,限制lisi的容量大小和个数 |