18单元 —— 磁盘配额(Quota)与 高级文件系统管理

磁盘配额 —— 适当限制用户的硬盘容量,以妥善分配系统资源

磁盘配额一般用途

  • 限制某一用户组所能使用的最大磁盘配额(使用用户组限制)
  • 限制某一用户所能使用的最大磁盘配额(使用用户限制)
  • 限制某一目录 ( directory,project )的最大磁盘配额

磁盘配额的规范设置选项 —— 针对 xfs 文件系统的限制选项

  • 分别针对用户、用户组或个别目录(user/group/project)
  • 容量限制或文件数量限制 (block 或 inode)

文件系统主要规划为存放属性的 inode 与 实际文件数据的 block 区块

  1. 限制 inode 使用量:管理用户可以建立的【文件数量】。
  2. 限制 block 使用量:管理用户磁盘容量的限制,较常见。
  3. 限制值 —— 软限制与硬限制 (soft / hard), hard(磁盘最大值) > soft(使用量低于soft ,可正常使用)

逻辑卷管理器 (LVM,Logical Volume Manager) —— 可以弹性地调整文件系统的容量

1 )LVM 的意义

  • 物理卷 (PV,Physical Volume)

实际分区或 Disk 需要通过 fdisk 调整系统标识符 (system ID)成为 8e (LVM 的标识符),然后再经过 pvcreate 的命令将它转成 LVM 最底层的物理卷 (PV),之后才能将这些 PV 加以利用。

  • 卷组 (VG,Volume Group)

卷组就是将许多的 PV 整合成的 VG ,这个 LVM 大磁盘。

  • 物理扩展快 (PE,Physica Extent)

LVM 的最小存储单位,文件数据都是借由写入 PE 来完成的。

  • 逻辑卷 (LV,Logical Volume)

LV 是最后可以被格式化使用的类似分区的东西,LV 是由 VG 分割出来的

2 )LVM 可以弹性地调整文件系统的容量的工作方式

  • 通过【 交换 PE 】来进行数据转换,将原本 LV 内的 PE 转移到其他设备中以降低 LV 容量,或将其他设备的 PE 加到此 LV 中以加大容量
  • VG 要扩充,加入其他的 PV 即可,而 LV 的扩充也是通过加入 VG 内没有使用的 PE 来扩充

LVM 实践流程

0 )Disk 阶段 (实际的磁盘)

  • lsblk                      # 列出系统上的所有磁盘列表
  • fdisk /dev/sdb       # 磁盘分区

n —— p —— 分区编号 ——   sector —— Size:分区的容量

t —— 分区编号 —— 8e (Code,更改分区文件系统类型 83 Linux- 8e Linux LVM )

wq                              # 保存分区后,离开 fdisk

  • fdisk -l                 # 列出已知的分区文件系统类型

1 ) PV 阶段

PV 相关命令

  • pvcreate:将物理分区建立成为 PV。

例:pvcreate /dev/sdb{2..3}

  • pvscan:查找目前系统里面任何具有 PV 的磁盘。
  • pvdisplay:显示出目前系统里面的 PV 状态。
  • pvremove:将 PV 属性删除,让分区不具有 PV 属性。

2 ) VG 阶段

VG 相关命令

  • vgcreate  [ -s N[ mgt ] ]  VG的名称:主要建立 VG 的命令。

-s:后面接 PE 的大小 (size),单位可以是 m、g、t (大小写均可)

例:vgcreate -s 10M westos_vg0 /dev/sdb2      # 将/dev/sdb2建成一个VG "westos_vg0",且指定 PE 大小为 10M

  • vgscan:查找系统上面是否有 VG 状态。
  • vgdisplay:显示出目前系统里面的 VG 状态。
  • vgextend:在 VG 内增加额外的 PV 。
  • vgreduce:在 VG 内删除 PV。
  • vgchange:设置 VG 是否启动 (active)。
  • vgremove:删除一个 VG。

 

 

3 ) LV 阶段  —— 将创造出的 VG "westos_vg0"大磁盘,通过 LV 进行分区

LV 相关命令

  • lvcreate [ -L N[ m/g/t ] ] [ -n LV名称 ] VG名称:建立 LV。
  • lvcreate [ -l N ] [ -n LV名称 ] VG名称

-L:后接容量,单位可以是m/g/t,注意最小单位为 PE 。

-l:后面接 PE 【个数】。

-n:后接 LV 名称。

例:

lvcreate -L 500M -n westos_lv0 westos_vg0    # 将 VG "westos_vg0"分 500M 给LV"westos_lv0"

  • lvscan:查询系统上面的 LV 。
  • lvdisplay:显示LV 状态。
  • lvextend:在LV里面增加容量。
  • lvreduce:在LV里面减少容量。
  • lvremove:删除一个 LV 。
  • lvresize:对 LV 进行容量大小的调整。

4 ) 文件系统阶段

格式化

  • mkfs.xfs /dev/westos_vg0/westos_lv0           # 对LV 磁盘(/dev/westos_vg0/westos_lv0) .xfs 文件系统格式化

挂载

  • mkdir /weixindata                                                   # 创建 挂载点
  • mount /dev/westos_vg0/westos_lv0 /weixindata   # 挂载

查看

  • df -Th /weixindata                                           # 查看挂载状态

放大 LV 容量

  1. VG 阶段需要有剩余容量:放大文件系统,即放大 LV,所以需要更多的 VG 容量 (加硬盘,将空余硬盘 pvcreate 及 vgextend 增加到该 VG 内)。
  2. LV 阶段产生更多的可用容量:如果 VG 的剩余容量足够,利用 lvresize 命令,将剩余容量加入所需 LV 设备中。
  3. 文件系统阶段的放大:可以支持放大的文件系统有 xfs 以及 ext 系列;支持缩小文件系统 仅有 ext 系列;

例:针对 /weixindata 在增大500M的容量

  • vgdisplay westos_vg0           # 查看 VG "westos_vg0" 剩余容量是否充足
  • lvresize -L +2500M /dev/westos_vg0/westos_lv0       # 利用 lvresize 命令 增加2500M 给 LV
  •  lvresize -L -500M /dev/westos_vg0/westos_lv0         # 利用 lvresize 命令 减少了 LV  500M 容量
  • lvscan                                    # 查看 LV —— LV 磁盘 容量 增大
  • df -Th /weixindata                  # 查看 指定挂载点 /weixindata 的文件系统的整体磁盘使用量 —— 没有相应增加 !

 文件系统的容量处理 (重要)

  • xfs_growfs /weixindata       # 使用 xfs_growfs 执行调整
  • df -Th /weixindata                  # 查看  /weixindata 的文件系统的整体磁盘使用量 ,已相应增大

 

缩小 LV 容量 —— 仅 ext 系列 文件系统(如 ext4) 支持文件系统容量的缩小

实验环境:LV 磁盘 文件系统为 ext4 类型 

  • umount /weixindata                                              # 将设备文件从挂载点 /weixindata  卸载
  • mkfs.ext4 /dev/westos_vg0/westos_lv0           # 将 LV "/dev/westos_vg0/westos_lv0"磁盘格式化为 ext4 文件系统类型
  • mount /dev/westos_vg0/westos_lv0 /weixindata  #  挂载
  • df -Th /weixindata                                                 # 查看挂载点 /weixindata 的文件系统的整体磁盘使用量

  • resize2fs /weixindata                                                   # 使用 resize2fs 执行调整
  • lvresize -L -1000M /dev/westos_vg0/westos_lv0    # 利用 lvresize 命令 缩小 LV 磁盘容量
  • lvscan                                                                          # 查看系统 LV ——LV 磁盘缩小
  • df -Th /weixindata                                                        # 查看文件系统 容量并未改变

注意:

放大:先放大硬件(磁盘容量),再执行调整 软件(文件系统)

缩小:先执行调整 软件(文件系统),再缩小硬件(磁盘容量)

LVM 的 LV 磁盘快照

 

LVM 的删除

  • umount /weixindata                                         # 卸载
  • lvremove /dev/westos_vg0/westos_lv0           # 删除 LV
  • vgremove /dev/westos_vg0                             # 删除 VG
  • pvremove /dev/sdb{2..3}                                  # 删除 PV
  • fdisk /dev/sdb                                                   # 删除 LVM 磁盘分区

d —— 2    ; d —— 3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值