4.10 LVM(逻辑卷)和磁盘配额

115 阅读6分钟

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.磁盘配额使用条件

  1. 内核必须支持磁盘配额。

  2. 系统中必须安装了 Quota 工具。我们的 Linux 中默认安装了 Quoted 工具

  3. 要支持磁盘配额的分区必须开启磁盘配额功能。这项功能可以手动开启,不再是默认开启的

    用户磁盘配额:userquota

    用户组磁盘配额:grpquota

选项含义
-x启动专家模式,在专家模式下才能使用磁盘配额
-c创建、直接调用管理命令
-u指定用户,比如lisi
-g指定组账号对象
limit限制 的意思,限制lisi的容量大小和个数