建立lvm逻辑卷与磁盘配额

一、什么是lvm逻辑卷?

1.1 lvm逻辑卷概念

LVM 是 Logical Volume Manager 的简称,译为中文就是逻辑卷管理。它是 Linux 下对硬盘分区的一种管理机制。LVM 适合于管理大存储设备,并允许用户动态调整文件系统的大小。此外,LVM 的快照功能可以帮助我们快速备份数据。LVM 为我们提供了逻辑概念上的磁盘,使得文件系统不再关心底层物理磁盘的概念。

  • 物理卷(Physical Volume,PV):就是真正的物理硬盘或分区。
  • 卷组(Volume Group,VG):将多个物理卷合起来就组成了卷组。组成同一个卷组的物理卷可以是同一块硬盘的不同分区,也可以是不同硬盘上的不同分区。我们可以把卷组想象为一块逻辑硬盘。
  • 逻辑卷(Logical Volume,LV):卷组是一块逻辑硬盘,硬盘必须分区之后才能使用,我们把这个分区称作逻辑卷。逻辑卷可以被格式化和写入数据。我们可以把逻辑卷想象为分区。
  • 物理扩展(Physical Extend,PE):PE 是用来保存数据的最小单元,我们的数据实际上都是写入 PE 当中的。PE 的大小是可以配置的,默认是 4MB。

1.2 逻辑卷管理--lvm

1.动态调整磁盘容量,从而提高磁盘管理的灵活性

2./boot分区用于存放引导文件,不能基于lvm创建

3.图形界面管理工具

工作中不装图形化:为了减少硬件资源消耗

1.3 建立逻辑卷条件:

  1. 要有物理磁盘:物理卷(可以是分区也可以是一整块硬盘) /dev/sdc 表示整块硬盘 /dev/sdc1 表示一个分区
  2. 将多个物理卷组合成卷组(卷组容量从物理卷中提取)
  3. 建立逻辑卷的容量是从卷组中提取(逻辑卷容量由卷组决定)

PS:使用分区做逻辑卷一定要更改分区的系统文件格式

二、如何建立逻辑卷?

2.1 建立物理卷

命令格式:

pvcreate /dev/sd{b1,c}

命令+设备名(可以是分区也可以是一整块硬盘)

image.png PS:分区作为逻辑卷的话,设置物理卷要将物理卷类型改成8e类型

2.2 建立卷组

命令格式:

vgcreate vg0 /dev/sdb1 /dev/sdc

命令+卷组名称+物理卷名称...

image.png

2.3 建立逻辑卷

命令格式:

lvcreate -L 15G -n lv1 vg0

命令+指定逻辑卷的大小+设定的逻辑卷名称+从什么名称的卷组中建立逻辑卷

image.png

2.4 建立文件系统及挂载

逻辑卷建立好后,跟我们建立分区一样,没有文件系统,也没有挂载是无法使用的,所以我们还要进行下面两步操作:

第一步:建立文件系统:

命令格式:mkfs.xfs /dev/vg0/lv1 image.png

第二步:挂载

image.png PS:如上图所示,我们sdc正常显示属于逻辑卷,但是分区sdb1未显示,是因为我们本身sdc的容量高于逻辑卷的容量,如果逻辑卷容量高于逻辑卷中sdc单个磁盘的容量,sdb1分区作为卷组中的额外空间将会显示在逻辑卷lv1组中。

三、如何给逻辑卷进行扩容?

3.1 逻辑卷原来卷组中空间足够的情况

在我们逻辑卷中空间足够的情况下我们可以直接使用以下命令给卷组扩容:

命令格式:lvextend -L +10G /dev/vg0/lv1

命令+扩容空间大小+逻辑卷的路径名称

image.png

image.png PS:在命令的输入过程中,增加逻辑卷容量的命令一定要使用“+”跟上容量空间。

如上图所示,如果不加“+”,我们的逻辑卷容量将会=10G,但是我们逻辑卷设定的初始大小为15G,相当于容量被缩小了,加入内部文件已经使用超过10G,那我们使用错误命令后会造成我们文件的丢失

3.2 逻辑卷原来卷组中没有足够空间的情况

第一步:先给卷组进行扩容

命令:vgextend vg0 /dev/sdd 命令+卷组名+需要加到卷组的硬盘或分区

image.png 第二步:给逻辑卷进行扩容

命令格式:lvextend -L +10G /dev/vg0/lv1 命令+扩容的空间大小+逻辑卷的路径

image.png

image.png PS:如果是xfs文件系统要使用挂载点刷新:

xfs_growfs /mnt(刷新挂载点命令)

扩容中-r选项为直接进行扩容命令格式如下:

lvextend -r -L +10G /dev/vg0/lv1

四、磁盘配额

4.1 磁盘配额概述

磁盘配额(Quota)就是 Linux 系统中用来限制特定的普通用户或用户组在指定的分区上占用的磁盘空间或文件个数的。在此概念中,有以下几个重点需要注意:

  1. 磁盘配额限制的用户和用户组,只能是普通用户和用户组,也就是说超级用户 root 是不能做磁盘配额的;
  2. 磁盘配额限制只能针对分区,而不能针对某个目录。
  3. 我们可以限制用户占用的磁盘容量大小(block),当然也能限制用户允许占用的文件个数(inode)

4.2 实现磁盘配额的条件

  1. 需要Linux内核支持
  2. 安装xfsprogs与quote软件包

4.3 Linux磁盘配额的特点

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

4.4 如何配置磁盘配额

我们使用硬盘举例,我们创建了一个sdb1的分区以及一个zhangsan用户,接下来我们设置以下sdb1分区的磁盘配额:

第一步:添加磁盘配额属性

image.png 我们使用命令mount查看一下权限是否建立成功:

image.png 我们挂载属于临时挂载我们需要建立永久挂载:

使用vim /etc/fstab命令进行设置

image.png 保存退出后使用mount -a检查是否出错

第二步:设置软硬限制

基本命令:xfs_quota [选项] +条件内容

选项内容如下:

选项 功能
x 启动专家模式
c 直接调用管理命令
u 指定用户账户对象
g 指定组账号对象

上图选项x有先后顺序,x选项必须在前

xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 zhangsan' /mnt/

image.png

我们现在切换成用户zhangsan,并进入/mnt目录下创建文件1-20,并查看是否能创建第21个文件:

image.png 反过来我们再查看一下文件大小是否受限制,我们将刚才创建的文件全部删除,然后分次在空目录中创建一个固定大小为150M和151M的文件,查看一下两个文件的区别:

image.png 150M文件可以正常建立,我们再删掉这个文件,创建一个151M的文件:

image.png

image.png 从上方我们可以看到我们的硬连接限制了文件的建立,所以我们新创建的151M的文件实际只有150M内容,文件的内容不完整,则无法使用。

猜你喜欢

转载自juejin.im/post/7128700339653935112