逻辑卷

154 阅读7分钟

1.分区:

  1. 普通分区
  2. 逻辑分区(LVM)
  3. raid

1.1 普通分区

  • 优点:
  1. 安装不同的操作系统
  2. 优化硬盘的读写性能
  • 缺点:
  1. 必须是一块硬盘上的连续空间
  2. 无法在不影响数据的情况下扩容
  3. 无备份功能

1.2 逻辑卷

  • 动态调整磁盘容量,从而提高磁盘管理的灵活性。
  • /boot分区用于存放引导文件,不能基于LVM创建。
  • 逻辑卷做好之后有两种名字
/dev/web/nginx   #/dev/卷组名/逻辑卷名
/dev/mapper/web-nginx    #/dev/mapper/卷组名-逻辑卷名

1.2.1 LVM的创建

  1. 建立物理卷(pv)
  2. 建立卷组(vg)
  3. 建立逻辑卷(lv)
  4. 格式化
  5. 挂载

2.建立逻辑卷的过程

实验背景:以vmware虚拟机的centos系统中进行,增加四块硬盘,利用shell进行远程连接控制进行实验。

image.png 利用lsblk指令查看硬盘设备 image.png

2.1 以整块磁盘为例

pvcreate  /dev/sdb     /dev/sdc #用sdb、sdc硬盘创建物理卷

image.png image.png

vgcreate study  /dev/sd[bc]

image.png

lvcreate -L 15G -n test study  #15G的逻辑卷创建成功

image.png

mkfs -t xfs /dev/study/test   #格式化逻辑卷
mount /dev/study/test  /mnt   # 挂载
df -h    #查看已挂载的信息

image.png

  • 永久挂载
blkid  #查看挂载设备的uuid
vim /etc/fstab    #配置文件

image.png

mount -a   #检查配置文件是否正确
reboot  #重启服务器查看挂载是否存在

2.2 以磁盘分区为例

image.png

对sdb进行分区

fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x1a4c0652 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n  #-------新建分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p  #-------创建主分区
分区号 (1-4,默认 1):1  #---------设置第一个主分区,新盘默认也是1
起始 扇区 (2048-41943039,默认为 2048):#-----回车(表示所有容量从头到尾都分配给主分区1)
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):t           #----------转换分区属性,做逻辑卷使用
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e   #--------LVM代码为8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w            # ----   保存  
分区表已调整。
  • 继续创建sdb2 步骤如上
pvcreate /dev/sdb1 /dev/sdb2   #创建物理卷
pvs                      #显示物理卷创建成功

image.png

vgcreate study2 /dev/sdb1  #创建卷组study2

image.png

 lvcreate -L 2G -n test study2

image.png

mkfs -t xfs /dev/study2/test
mount /dev/study2/test   /mnt
df -h

image.png

3 磁盘扩容

3.1. 卷组中的空间足够直接扩容

将2.1中15G的/dev/mapper/study-test逻辑卷增加5G的容量

lvextend -L +5G /dev/study/test -r

image.png

3.2. 卷组中的空间不够,先扩容卷组,再扩容逻辑卷

vgextend study /dev/sdd

image.png

lvextend -L +10G /dev/study/test   -r
df -h

image.png

3.2.1 将卷组剩余空间扩容到文件系统上

lvextend -l +100%FREE /dev/study/test

image.png

image.png

4.磁盘配额

4.1 配盘配额

磁盘配额(Disk Quota)是操作系统提供的一种磁盘管理功能,允许管理员为用户、用户组或特定目录(如项目配额)设置磁盘空间和文件数量的使用上限。其主要作用包括:

  1. 资源公平分配:防止单个用户或应用占用过多空间,确保多用户环境下的资源公平性。

  2. 双重限制机制

    • Block限制:控制磁盘容量(如100MB)
    • Inode限制:控制可创建的文件数量
  3. 分级管控:支持软限制(允许临时超限)和硬限制(绝对不可超限),超限后可能触发警告或写入拒绝。

4.2 实现磁盘限额的条件

  • 需要安装Linux内核支持
  • 安装xfsprogs与quota软件

4.3 Linux磁盘限额的特点

  • 作用范围:针对指定的文件系统(分区)
  • 限制对象:用户账号、组账号
  • 限制类型:磁盘容量、文件数量
  • 限制方法:软限制、硬限制

4.4 启动文件系统的配额支持

添加usrquota、grpquota挂载参数

# 在分好区的磁盘上进行操作开启配额支持功能
vim /etc/fstab   #进入配置文件进行永久挂载
/dev/分好区的磁盘   /挂载点    xfs    defaults,usrquota,grpquota  0  0 
mount -a

使用xfs_quota命令编辑配额设置

常用选项

-u:指定用户账号对象

-x:表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用。

-g:指定组账号对象

-c:表示直接调用管理命令。 限制字段

bsoft: 设置磁盘容量的软限制数值(默认单位为KB)。
bhard:设置磁盘容量的硬限制数值(默认单位为KB)。
isoft:设置磁盘文件数的软限制数值。
ihard:设置磁盘文件数的硬限制数值。

补充知识:

磁盘限额中的硬限制、软限制和时限概念如下‌:

  1. 硬限制(Hard Limit) ‌:

    • 定义‌:硬限制是指每个用户或组不得超出的磁盘使用限额。一旦达到这个限额,用户或组将无法继续使用更多的磁盘空间或文件数量。
    • 应用场景‌:例如,设置硬盘使用量为1GB的硬限制,意味着用户或组不能使用超过1GB的硬盘空间。
    • 与软限制的关系‌:硬限制的配额值应大于相应的软限制值,否则软限制值将失效。
  2. 软限制(Soft Limit) ‌:

    • 定义‌:软限制是指每个用户或组在日常运行中应该被限制的磁盘使用限额。用户或组可以在一定时间内超出这个限额,但系统会给出警告。
    • 应用场景‌:例如,设置硬盘使用量为500MB的软限制,用户或组可以在7天内超出这个限额,但系统会给出警告。
    • 与硬限制的关系‌:软限制的配额值应小于或等于相应的硬限制值。
  3. 时限(Grace Period) ‌:

    • 定义‌:时限是指用户在超出软限制后可以继续使用磁盘空间的时间段,通常为7天。如果在这个时间段内用户仍未将使用量降到软限制以下,系统将强制执行硬限制。
    • 应用场景‌:例如,用户在使用量为600MB时超出了500MB的软限制,系统会给出警告,并给予7天的宽限期。如果7天后仍未降到500MB以下,系统将强制限制为1GB的硬限制。
xfs_quota  -x -c 'limit -u bsoft=80M bhard=100M  isoft=40 ihard=50' lisi /mnt/  # 启用磁盘限额 启用专家模式直接调用管理命令 限制用户lisi使用挂载在/mnt/的磁盘通常七天内可以超出80M的容量但会被警告,不能超过100M的容量,文件数量软限制40个最大不能超过50个 
chmod -R 777 /lisi #给用户权限

验证磁盘配额功能

su lisi #切换用户
cd /mnt #切换设置配额的分区(挂载目录)

创建指定容量的文件:使用dd命令,或cp命令

创建指定数量的文件:使用touch命令,或cp命令