Linux--管理LVM逻辑卷 --原理+命令双结合(LVM的概述与建立,LVM的管理命令,LVM的应用步骤,磁盘配额的详解)

  • 前言
  • 一:LVM概述
    • 1.1:PV(Physical Volume,物理卷)
    • 1.2:VG(Volume Group,卷组)
    • 1.3:LV(Logical Volume,逻辑卷)
    • 1.4:建立LVM分区管理机制的过程
  • 二:管理LVM
    • 2.1:PV物理卷管理
      • 2.1.1:pvcreate命令
      • 2.1.2:pvscan命令
      • 2.1.3:pvdisplay命令
      • 2.1.4:pvremove命令
    • 2.2:VG卷组管理
      • 2.2.1:vgcreate命令
      • 2.2.2:vgscan命令
      • 2.2.3:vgdisplay命令
      • 2.2.4:vgremove命令
      • 2.2.5:vgextend命令
      • 2.2.6:vgreduce命令
    • 2.3:LV逻辑卷管理
      • 2.3.1:lvcreate命令
      • 2.3.2:lvscan命令
      • 2.3.3:lvdisplay命令
      • 2.3.4:lvextend命令
      • 2.3.5:lvremove命令
      • 2.3.6:lvreduce命令
  • 三:LVM应用步骤
    • 3.1:命令实操的演示
  • 四:磁盘配额
    • 4.1:磁盘配额概述
      • 4.1.1:实现磁盘限额的条件
    • 4.1.2:Linux磁盘限额的特点
      • 4.1.3:磁盘配额步骤
      • 4.1.4:启动磁盘配额支持
      • 4.2:磁盘配额管理
      • 4.2.1:编辑用户和组账号的配额设置
      • 4.2.2:验证磁盘配额功能
      • 4.2.3:查看配额使用情况
    • 4.3:磁盘配额命令实操

前言

  • LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制
  • 每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精评估LVM和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估 计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。
  • 虽然有很多动态调整磁盘的工具可以使用,例如Partition Magic等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要 重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解 决问题。
  • 因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理(LVM,Logical Volume Manager)机制就是一个完美的解决方案。

一:LVM概述

  • 在安装CentOS 系统的过程中选择自动分区时,就会默认采用LVM分区方案。不需要再进行手动配置
  • 动态调整磁盘容量,从而提高磁盘管理的灵活性
  • 需要注意的是,“/boot”分区用于存放引导文件,不能基于LVM创建,必须独立出来
  • 图形化管理界面:system-config

1.1:PV(Physical Volume,物理卷)

  • 物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。
  • 创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE),从而构成物理卷。
  • 物理卷一般直接使用设备文件名称,如/dev/sdb1 , /dev/sdb1, /dev/sdd等。
  • 对于转换成物理卷的普通分区,建议先使用fdisk工具将分区类型的ID标记号改为“8e”(8e表示LVM逻辑卷),若是整块硬盘,可以将所有磁盘空间划分为一个主分区后再做相对应调整

1.2:VG(Volume Group,卷组)

  • 卷组:由一个或多个物理卷组成一个整体
  • 在卷组中可以动态的添加或移除物理卷
  • 许多个物理卷可以分别组成不同的卷组,卷组的名称由用户自定义

1.3:LV(Logical Volume,逻辑卷)

  • 逻辑卷建立在卷组之上,与物理卷没有直接关系
  • 对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷
  • 使用mkfs等工具在逻辑卷上创建文件系统以后,就可以挂载到Linux系统中的目录下使用

1.4:建立LVM分区管理机制的过程

二:管理LVM

  • LVM管理命令主要包括三大类

    PV物理卷管理

    VG卷组管理

    LV逻辑卷管理

  • 对应的命令程序文件分别以“PV”“VG”“LV”开头

功能 物理卷管理(PV) 卷组管理(VG) 逻辑卷管理(LV)
Scan(显示概要信息) pvscan vgscan lvscan
Create(建立) pvcreate vgcreate lvcreate
Display(显示详细信息) pvdisplay vgdisplay lvdisplay
Remove(删除) pvremove vgremove lvremove
Extend(扩展) --------------- vgextend lvextend
Reduce(减少) --------------- vgreduce lvreduce
  • 几个主要命令的格式
pvcreate 设备名1 [设备名2 ... ...]
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名

2.1:PV物理卷管理

2.1.1:pvcreate命令

  • pvcreate用于将分区或整个硬盘转换为物理卷,主要是添加LVM属性并划分PE存储单元
  • 该命令需要使用硬盘或分区的设备文件作为参数
例如
[root@localhost ~]# pvcreate /dev/sdd1Physical volume "/dev/sdd1" successfully created.

2.1.2:pvscan命令

  • pvscan命令用于扫描系统中的所有物理卷,并输出相关信息。
例如
[root@localhost ~]# pvscanPV /dev/sdd1                      lvm2 [5.00 GiB]Total: 3 [44.99 GiB] / in use: 2 [39.99 GiB] / in no VG: 1 [5.00 GiB]

2.1.3:pvdisplay命令

  • pvdisplay命令用于显示物理卷的详细信息
  • 需要使用指定的物理卷作为命令参数,默认时将显示所有物理卷信息
例如
[root@localhost ~]# pvdisplay /dev/sdd1"/dev/sdd1" is a new physical volume of "5.00 GiB"--- NEW Physical volume ---PV Name               /dev/sdd1VG Name               PV Size               5.00 GiBAllocatable           NOPE Size               0   Total PE              0Free PE               0Allocated PE          0PV UUID               bNDg18-PxbF-0GCW-365f-RnO0-OHJ0-n5RzJE

2.1.4:pvremove命令

  • pvremove命令用于将物理卷还原成普通分区或磁盘,不再用于LVM体系
  • 被移除的物理卷将无法被pvscan命令识别
例如
[root@localhost ~]# pvremove /dev/sd[b-c]1
Labels on physical volume "/dev/sdb1" successfully wiped.
Labels on physical volume "/dev/sdc1" successfully wiped.
[root@localhost ~]# pvscan
No matching physical volumes found

2.2:VG卷组管理

2.2.1:vgcreate命令

  • vgcreate命令用于将一个或多个物理卷创建为一个卷组
  • 第一个命令参数用于设置新卷组的名称。然后依次指定需要加入到该卷组的物理卷作为参数
vgcreate命令基本格式
root@localhost ~]# vgcreate 卷组名称 物理卷
例如
[root@localhost ~]# vgscan 123 /dev/sdb1 /dev/sdd1Command does not accept argument: 123.

2.2.2:vgscan命令

  • vgscan命令用于扫描系统中已建立的LVM卷组及相关信息
例如
[root@localhost ~]# vgscanReading volume groups from cache.Found volume group "123" using metadata type lvm2

2.2.3:vgdisplay命令

  • vgdisplay命令用于显示系统中各卷组的详细信息
  • 需要指定卷组名称作为命令参数(未指定卷组名称时将显示所有卷组的信息)
  • 命令格式同pvdisplay
例如
[root@localhost ~]# vgdisplay--- Volume group ---VG Name               123System ID             Format                lvm2Metadata Areas        2Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                2Act PV                2VG Size               24.99 GiBPE Size               4.00 MiBTotal PE              6398Alloc PE / Size       0 / 0   Free  PE / Size       6398 / 24.99 GiBVG UUID               1xjQAR-wQ2s-i9Q6-IYYL-gqTJ-Xwv0-DJPUkp

2.2.4:vgremove命令

  • vgremove命令用于删除指定的卷组,指定卷组名称作为参数即可
  • 删除时应确保该卷组中没有正在使用的逻辑卷
例如
[root@localhost ~]# vgremove 123Volume group "123" successfully removed

2.2.5:vgextend命令

  • vgextend命令用于扩展卷组的磁盘空间
  • 当建立了新的物理卷,并需要将其添加到已有的卷组中时,就可以使用vgextend命令
  • vgextend命令第一个参数为需要扩展容量的卷组名称,其后为需要添加到该卷组中的各物理卷
例如
[root@localhost ~]# vgextend 123 /dev/sdd1Volume group "123" successfully extended

2.2.6:vgreduce命令

  • vgreduce命令:从卷组中删除物理卷
  • vgreduce指令通过删除LVM卷组中的物理卷来减少卷组容量。
  • 删除删除卷组中丢失的物理卷,使卷组恢复正常状态
vgreduce命令格式
vgreduce [选项] [参数] 例如
[root@localhost ~]# vgreduce 123 /dev/sdd1Removed "/dev/sdd1" from volume group "123"

2.3:LV逻辑卷管理

2.3.1:lvcreate命令

  • lvcreate命令用于从指定的卷组中分割空间,以创建新的逻辑卷
  • 需要指定逻辑卷大小,名称和所在的卷组名称作为参数
  • 逻辑卷创建好以后,可以通过“/dev/卷组名/逻辑卷名”形式的设备文件进行访问(或/dev/mapper/卷组名-逻辑卷名)
lvcreate命令基本格式
lvcreate -L 容量大小 -n 逻辑卷名 卷组名例如
[root@localhost ~]# lvcreate -L 10G -n 111 123Logical volume "111" created.
[root@localhost ~]# ls /dev/123/111
/dev/123/111            //逻辑卷111的连接文件

2.3.2:lvscan命令

  • lvscan命令用于扫描系统中已建立的逻辑卷及相关信息

2.3.3:lvdisplay命令

  • lvdisplay命令用于显示逻辑卷的详细信息

  • 需要指定逻辑卷的设备文件作为参数,也可以使用卷组名作为参数(显示该卷组中的所有逻辑卷信息)

  • 不指定参数则显示所有,同pvdisplay和vgdisplay

    • 例如
      [root@localhost ~]# lvdisplay--- Logical volume ---LV Path                /dev/123/111LV Name                111VG Name                123LV UUID                8Mndsn-uBg9-SNyt-bsd4-2DP0-WIIO-ZaqzU6LV Write Access        read/writeLV Creation host, time localhost.localdomain, 2019-11-04 01:14:32 +0800LV Status              available# open                 0LV Size                10.00 GiBCurrent LE             2560Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           253:0
      

2.3.4:lvextend命令

  • lvextend命令用于动态扩展逻辑卷的空间,当目前使用的逻辑卷空间不足时,可以从所在卷组中分割额外的空间进行扩展
  • 需要指定增加的容量大小和逻辑卷文件位置
  • 前提是该卷组中还有尚未分配的磁盘空间,否则需要先扩展卷组容量
  • 挂载文件系统后扩容,需要执行以下命令才能被系统识别
xfs格式的扩容需要输入这条命令
xfs_growfs /dev/卷组名/逻辑卷名ext 4 格式的扩容需要输入这条命令
resize2fs /dev/卷组名/逻辑卷名
  • xfs 只支持扩容,不支持减少
  • ext 4 的更新形式。可以reduce
lvextend命令基本格式
lvextend -L +大小 /dev/卷组名/逻辑卷名例如
[root@localhost ~]# lvextend -L +10G /dev/123/111Size of logical volume 123/111 changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents).Logical volume 123/111 successfully resized.

2.3.5:lvremove命令

  • lvremove命令用于删除指定的逻辑卷
  • 直接使用逻辑卷的设备文件作为参数即可
例如
[root@localhost ~]# lvremove /dev/123/111
Do you really want to remove active logical volume 123/111? [y/n]: yLogical volume "111" successfully removedVolume group "111" not foundCannot process volume group 111

2.3.6:lvreduce命令

  • vreduce命令用于减少LVM逻辑卷占用的空间大小。
  • 使用lvreduce命令收缩逻辑卷的空间大小有可能会删除逻辑卷上已有的数据,所以在操作前必须进行确认。
例如
[root@localhost ~]# lvreduce -L -5G /dev/123/111WARNING: Reducing active logical volume to 10.00 GiB.THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce 123/111? [y/n]: ySize of logical volume 123/111 changed from 15.00 GiB (3840 extents) to 10.00 GiB (2560 extents).Logical volume 123/111 successfully resized.

三:LVM应用步骤

  • xfs 只支持扩容,不支持减少
  • ext 4 的更新形式。可以reduce

3.1:命令实操的演示

VMware软件中,在centos 7系统中添加两块磁盘,我们开始实操。

查看磁盘是否添加成功
[root@localhost ~]# fdisk -l       磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c1f00设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    12584959     6291456   83  Linux
/dev/sda2        12584960    54527999    20971520   83  Linux
/dev/sda3        54528000    62916607     4194304   82  Linux swap / Solaris
/dev/sda4        62916608    83886079    10484736    5  Extended
/dev/sda5        62918656    83886079    10483712   83  Linux磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
2.开始创建分区,同样的方法创建/dev/sdc
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0x50f1e234 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):8e       //分区ID改成8e,8e是lvm格式,我们保持前后格式相同
已将分区“Linux”的类型更改为“Linux LVM”命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
3.查看分区创建情况
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000c1f00设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    12584959     6291456   83  Linux
/dev/sda2        12584960    54527999    20971520   83  Linux
/dev/sda3        54528000    62916607     4194304   82  Linux swap / Solaris
/dev/sda4        62916608    83886079    10484736    5  Extended
/dev/sda5        62918656    83886079    10483712   83  Linux磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x50f1e234设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   8e  Linux LVM磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6a90762a设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41943039    20970496   8e  Linux LVM
4.创建物理卷
[root@localhost ~]# pvcreate /dev/sd[b-c]1Physical volume "/dev/sdb1" successfully created.Physical volume "/dev/sdc1" successfully created.
[root@localhost ~]# pvscan     '//查看物理卷'PV /dev/sdc1                      lvm2 [<20.00 GiB]PV /dev/sdb1                      lvm2 [<20.00 GiB]Total: 2 [<40.00 GiB] / in use: 0 [0   ] / in no VG: 2 [<40.00 GiB]
5.创建卷组
[root@localhost ~]# vgcreate mail_stor /dev/sd[b-c]1Volume group "mail_stor" successfully created
[root@localhost ~]# vgscan     '//扫描卷组'Reading volume groups from cache.Found volume group "mail_stor" using metadata type lvm2
[root@localhost ~]# vgdisplay      '//查看卷组详细信息'--- Volume group ---VG Name               mail_storSystem ID             Format                lvm2Metadata Areas        2Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                2Act PV                2VG Size               39.99 GiBPE Size               4.00 MiBTotal PE              10238Alloc PE / Size       0 / 0   Free  PE / Size       10238 / 39.99 GiBVG UUID               iEKi0I-hg0i-it0a-cOwe-DfPj-FkXs-fnSP4N
  • 6.创建逻辑卷
    [root@localhost ~]# lvcreate -L 20G -n mbox mail_storLogical volume "mbox" created.
    [root@localhost ~]# lvdisplay--- Logical volume ---LV Path                /dev/mail_stor/mboxLV Name               mboxVG Name                mail_storLV UUID                VXD0B0-wxqV-wXgk-b7N4-GEPE-c1au-u6nGBsLV Write Access        read/writeLV Creation host, time localhost.localdomain, 2019-11-04 14:45:59 +0800LV Status              available# open                 0LV Size                20.00 GiBCurrent LE             5120Segments               2Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           253:0
    
    7.格式化逻辑卷
    [root@localhost 1]# mkfs.xfs /dev/mail_stor/mbox
    meta-data=/dev/mail_stor/mbox              isize=512    agcount=4, agsize=1310720 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=5242880, 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
    
    8.创建挂载点,设置自动挂载
    [root@localhost 1]# mkdir mailbox
    [root@localhost 1]# vim /etc/fstab
    

9.启用挂载
[root@localhost 1]# mount -a
[root@localhost 1]# df -hT     '//查看是否挂载成功'
10.给逻辑卷扩容10G
[root@localhost 1]# lvextend -L +10G /dev/mail_stor/mboxSize of logical volume 1/11 changed from 20.00 GiB (5120 extents) to 30.00 GiB (7680 extents).Logical volume 1/11 successfully resized.
11.使用xfs_growfs命令使Linux系统重新识别文件系统大小
[root@localhost 1]# xfs_growfs /dev/mail_stor/mbox

四:磁盘配额

  • 磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。
  • 磁盘配额可以限制指定账户能够使用的磁盘空间,这样可以避免因某个用户的过度使用磁盘空间造成其他用户无法正常工作甚至影响系统运行。在服务器管理中此功能非常重要,但对单机用户来说意义不大。

4.1:磁盘配额概述

4.1.1:实现磁盘限额的条件

  • 需要Linux内核支持
  • 安装xfsprogs与quota软件包
  • quota软件包在7.0版本自动加入到xfsprogs,所以只需要安装xfsprogs就可以。

4.1.2:Linux磁盘限额的特点

  • 作用范围:针对指定的文件系统(分区)

  • 限制对象:用户账号,组账号

  • 限制类型:磁盘容量,文件数量

  • 限制方法:软限制,硬限制

  • 软限制:可以超出限制,但是有时限期,如时限7天,超出时间就将多余的删除

    软限制 小于等于 硬限制

4.1.3:磁盘配额步骤

  • 临时设置(大部分都是通过命令实现),永久设置(都是通过源码文件中配置)

​ 大部分命令设置都是临时生效,重启失效

​ 配置文件是永久生效

​ 编辑用户和组账号的配额设置:组的配额是固定的,

4.1.4:启动磁盘配额支持

  • 添加usrquota,grpquota挂载参数
  • 临时设置需要加上 -o 参数

4.2:磁盘配额管理

4.2.1:编辑用户和组账号的配额设置

  • 使用xfs_quota命令编辑配额设置
基本格式
xfs_quota -x -c'limit -u bsoft =N bhard=N isoft=N ihard=N 用户名'挂载点常用选项
-u      //user
-g      //group
-x      //专家模式
-c      //命令(command)限制字段
bsoft       //容量软限制
bhard       //容量硬限制     (block 块)
isoft       //数量软限制
ihard       //数量硬限制     (inode 节点)

4.2.2:验证磁盘配额功能

  • 切换到设置配额的分区(挂载目录)
  • 创建指定数量的文件:使用touch命令,或cp命令
  • 创建指定容量的文件:使用dd命令,或cp命令 (dd命令等同于复制,一般用于验证)

4.2.3:查看配额使用情况

命令格式
xfs_quota -x -c 'report 选项'挂载点report常用选项
-a      //all 所有
-i      //节点,数量
-b      //block 块,容量
-u      //user
-g      //group
  • 查看所有用户配额
[root@localhost ~]# xfs_quota -x -c 'report -a' /挂载点
  • 查看用户配额信息,看容量信息
[root@localhost ~]# xfs_quota -c 'quota -uv 用户名' /挂载点
  • 查看用户配额信息,看节点信息
[root@localhost ~]# xfs_quota -c 'quota -iuv 用户名' /挂载点
  • 查看用户配额信息,看节点信息
[root@localhost ~]# xfs_quota -c 'quota -iuv 用户名' /挂载点
  • 连续复制文件(/mail/demo01.txt是自己刚刚创建的文件),每次复制1M,连续复制N次
[root@localhost ~]# dd if=/dev/zero of=/mail/demo01.txt bs=1M count=80

4.3:磁盘配额命令实操

  • mount 查看挂载信息
  • rpm -q xfsprogs 查看xfsprogs是否安装
1.用上述LVM命令实操相同方法创建逻辑卷
[root@localhost ~]# df -hT
文件系统         类型      容量  已用  可用 已用% 挂载点
/dev/sda2        xfs        20G  3.1G   17G   16% /
devtmpfs         devtmpfs  898M     0  898M    0% /dev
tmpfs            tmpfs     912M     0  912M    0% /dev/shm
tmpfs            tmpfs     912M  9.0M  903M    1% /run
tmpfs            tmpfs     912M     0  912M    0% /sys/fs/cgroup
/dev/sda5        xfs        10G   37M   10G    1% /home
/dev/sda1        xfs       6.0G  174M  5.9G    3% /boot
tmpfs            tmpfs     183M   12K  183M    1% /run/user/42
tmpfs            tmpfs     183M     0  183M    0% /run/user/0
/dev/mapper/1-11 xfs        40G   33M   40G    1% /2
2.查看是否安装xfsprogs命令
[root@localhost ~]# rpm -q xfsprogs
xfsprogs-4.5.0-12.el7.x86_64        '//系统已经安装'
3.查看是否开启quota
[root@localhost ~]# mount
...省略中间内容
/dev/mapper/1-11 on /2 type xfs (rw,relatime,seclabel,attr2,inode64,noquota)        '//发现quota 没有设置'
4.将刚刚的挂载解除掉,我们现在开始启动磁盘配额支持
[root@localhost ~]# umount /2
[root@localhost ~]# vim /etc/fstab     '//在这个文件中修改是永久生效'

5.启动挂载,然后查看是否设置成功
[root@localhost ~]# mount -a
[root@localhost ~]# mount
...省略中间内容
/dev/mapper/1-11 on /2 type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)      //已经设置成功
6.编辑和查看用户和组的配额设置
例如:限制zhangsan用户,软容量为50M,硬容量100M。软数量4,硬数量5
[root@localhost ~]# xfs_quota -x -c 'limit -u bsoft=50M bhard=100M isoft=4 ihard=5 zhangsan' /2查看zhangsan用户容量限制信息
[root@localhost ~]# xfs_quota -c 'quota -uv zhangsan' /2
Disk quotas for User zhangsan (1001)
Filesystem              Blocks      Quota      Limit  Warn/Time      Mounted on
/dev/mapper/1-11             0      51200     102400   00 [--------] /2查看zhangsan用户数量限制信息
[root@localhost ~]# xfs_quota -c 'quota -iuv zhangsan' /2
Disk quotas for User zhangsan (1001)
Filesystem               Files      Quota      Limit  Warn/Time      Mounted on
/dev/mapper/1-11             0          4          5   00 [--------] /2容量和数量可以一起查看
[root@localhost ~]# xfs_quota -c 'quota -ibuv zhangsan' /2
Disk quotas for User zhangsan (1001)
Filesystem              Blocks      Quota      Limit  Warn/Time            Files      Quota      Limit  Warn/Time      Mounted on
/dev/mapper/1-11             0      51200     102400   00 [--------]           0          4          5   00 [--------] /2查看所有用户配额
[root@localhost ~]# xfs_quota -x -c 'report -a' /2
User quota on /2 (/dev/mapper/1-11)Blocks
User ID          Used       Soft       Hard    Warn/Grace     ---------- --------------------------------------------------root                0          0          0     00 [--------]
zhangsan            0      51200     102400     00 [--------]Group quota on /2 (/dev/mapper/1-11)Blocks
Group ID         Used       Soft       Hard    Warn/Grace     ---------- --------------------------------------------------root                0          0          0     00 [--------]
7.验证磁盘配额功能
[root@localhost ~]# su - zhangsan      '//切换张三用户'
上一次登录:一 11月  4 21:15:22 CST 2019pts/0 上
[zhangsan@localhost ~]$ df -hT
文件系统         类型      容量  已用  可用 已用% 挂载点
....省略内容
/dev/mapper/1-11 xfs        40G   33M   40G    1% /2
[zhangsan@localhost ~]$ cd /2/     //进入挂载点目录
[zhangsan@localhost 2]$ touch test{1..5}.txt       '//创建文件'
touch: 无法创建"test1.txt": 权限不够
touch: 无法创建"test2.txt": 权限不够
touch: 无法创建"test3.txt": 权限不够
touch: 无法创建"test4.txt": 权限不够
touch: 无法创建"test5.txt": 权限不够
[zhangsan@localhost 2]$ cd ..
[zhangsan@localhost /]$ ls -l
总用量 24
drwxr-xr-x.   2 root root    6 11月  4 20:18 2       '//发现只有执行的权限'[zhangsan@localhost ~]$ su - root
密码:
上一次登录:一 11月  4 21:18:05 CST 2019pts/0 上
[root@localhost ~]# chmod 777 /2       '//给文件设置用户权限'
[root@localhost ~]# cd /
[root@localhost /]# ls -l
总用量 24
drwxrwxrwx.   2 root root    6 11月  4 20:18 2       '//发现所有权限都有了'[root@localhost /]# su - zhangsan       '//切换张三用户'
上一次登录:一 11月  4 21:32:38 CST 2019pts/0 上
[zhangsan@localhost ~]$ cd /2/
[zhangsan@localhost 2]$ touch test{1..5}.txt       '//创建五个文件'
[zhangsan@localhost 2]$ ls
test1.txt  test2.txt  test3.txt  test4.txt  test5.txt
[zhangsan@localhost 2]$
[zhangsan@localhost 2]$ touch test6.txt
touch: 无法创建"test6.txt": 超出磁盘限额        '//发现第六个文件已经无法创建'
[zhangsan@localhost 2]$ xfs_quota -c 'quota -iuv zhangsan ' /2       '//查看限制信息'
Disk quotas for User zhangsan (1001)
Filesystem               Files      Quota      Limit  Warn/Time      Mounted on
/dev/mapper/1-11             5          4          5   00  [6 days] /2      '//发现文件数量已达硬限制,出现时限'
[zhangsan@localhost 2]$ rm -rf /2/*        //删除文件开始进行容量验证[zhangsan@localhost 2]$ dd if=/dev/zero of=/2/test1.txt bs=1M count=80       '//连续复制80个,每个为1M的信息到test1.txt文件中'
记录了80+0 的读入
记录了80+0 的写出
83886080字节(84 MB)已复制,0.117359 秒,715 MB/秒
[zhangsan@localhost 2]$ ls -lh /2/
总用量 80M
-rw-rw-r--. 1 zhangsan zhangsan 80M 11月  4 21:51 test1.txt      '//发现现在文件已经为80M'
[zhangsan@localhost 2]$ dd if=/dev/zero of=/2/test2.txt bs=1M count=50     '//继续复制50个,每个为1M的信息到test2.txt文件中'
dd: 写入"/2/test2.txt" 出错: 超出磁盘限额           '//限额之前设置的是100M,限制已经超出'
记录了21+0 的读入
记录了20+0 的写出
20971520字节(21 MB)已复制,0.0326932 秒,641 MB/秒
[zhangsan@localhost 2]$ ls -lh /2/
总用量 100M
-rw-rw-r--. 1 zhangsan zhangsan 80M 11月  4 21:51 test1.txt
-rw-rw-r--. 1 zhangsan zhangsan 20M 11月  4 21:53 test2.txt      '//发现超出的部分会自动删除,达到100M限额就结束了'此时,用户信息应该是这样的
[zhangsan@localhost ~]$ xfs_quota -c 'quota -iuv' /2
Disk quotas for User zhangsan (1001)
Filesystem               Files      Quota      Limit  Warn/Time      Mounted on
/dev/mapper/1-11             2          4          5   00 [--------] /2     '//刚刚创建了test1.txt和test2.txt两个文件'
[zhangsan@localhost ~]$ xfs_quota -c 'quota -uv' /2
Disk quotas for User zhangsan (1001)
Filesystem              Blocks      Quota      Limit  Warn/Time      Mounted on
/dev/mapper/1-11        102400      51200     102400   00  [6 days] /2      '//两个文件的容量达到硬限制上限,所以有了时限'

Linux--管理LVM逻辑卷 --原理+命令双结合(LVM的概述与建立,LVM的管理命令,LVM的应用步骤,磁盘配额的详解)相关推荐

  1. Linux常用命令(八)LVM逻辑卷管理

    Linux常用命令(八)LVM逻辑卷管理 一.LVM概述     LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下 ...

  2. linux系统中的分区与挂载,以及使用LVM逻辑卷管理器管理物理卷,卷组,逻辑卷知识点总结

    物理设备的命名规则 在Linux系统中一切都是文件,硬件设备也不例外.既然是文件,就必须有文件名称.系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大 ...

  3. d盘不能扩展卷_一篇看懂!Linux磁盘的管理(分区、格式化、挂载),LVM逻辑卷,RAID磁盘阵列...

    Linux中磁盘的管理(分区.格式化.挂载),LVM逻辑卷,RAID磁盘阵列 一.认识磁盘 1.什么是磁盘: 磁盘是一种计算机的外部存储器设备,由一个或多个覆盖有磁性材料的铝制或玻璃制的碟片组成,用来 ...

  4. linux虚拟磁盘管理pe大小6,Linux下磁盘的高级管理——LVM逻辑卷管理

    文章目录 逻辑卷是什么 逻辑卷的原理 逻辑卷的优点 lv的管理 lv的建立 xfs格式下lvm的拉伸 ext4下lvm的拉伸和缩减 lvm快照 lvm快照的原理和作用 快照的建立 lvm的删除 逻辑卷 ...

  5. Linux中LVM(逻辑卷管理)的使用

    Linux 中我们使用fdisk命令划分好的分区就不能随意的改变,如果不够用的话不可能说把硬盘上的所有数据拷贝后再重新分区,这样可能会导致数据损坏.而在linux中LVM(逻辑卷管理)就可以实现动态的 ...

  6. linux设置逻辑卷进不了图形界面,LVM逻辑卷管理器图形界面操作

    LVM逻辑卷管理器图形界面操作 LVM有关概念 LVM(Logical Volume Manager)即逻辑卷管理器,它最先是在Linux 2.4内核中被集成到内核中去的,它的出现改变了传统的磁盘空间 ...

  7. xenserver 虚拟机扩容lvm磁盘分区的方法_从零开始学Linux运维|35.LVM(逻辑卷管理)的创建...

    简单来说 LVM是建立在硬盘和分区之上的一个逻辑层,提高磁盘分区管理的灵活性 如果没有使用LVM,我们直接访问文件系统读取硬盘内容 使用了LVM我们是通过逻辑卷的东西来读取硬盘内容 使用LVM增加一个 ...

  8. linux安装创建逻辑卷,Linux系统LVM逻辑卷的创建与扩容(命令详解,图文并茂)...

    LVM(Logical Volume Manager)中文名:逻辑卷管理器,本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,它可以将几块磁盘(物理卷,PhysicalV ...

  9. Linux下的LVM逻辑卷管理

    ################# ####lvm逻辑卷#### ################# ##LVM逻辑卷的简述 Linux LVM是linux逻辑卷管理(Logical Volume M ...

最新文章

  1. 第四周项目五-用递归方法求解(求n的阶乘)
  2. 脑波的振幅、位相、分类
  3. 持续集成实践小结[2] —单元测试
  4. java中qq中拉伸的文件,delphi中如何实现QQ中的截图并实现拉伸放大移动的功能
  5. 内核链表list.h文件剖析
  6. Qt工作笔记-QSplitter的使用(老版本里面发现的神控件在新版本内使用)
  7. ERmaster 数据库设计 ,显示中文逻辑名
  8. [Ext JS] Sencha Cmd命令参考之一
  9. arcgis server缓存路径修改
  10. 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(二)菜单导航
  11. 淘宝/天猫收货地址列表 API和快递费用的 API解析
  12. Linux多媒体开发基础
  13. C++的替代:微软如何使用rust?
  14. 【H5】两种加密解密方法:
  15. Error creating bean with name ‘dataSource‘: Error setting property,river for test database type [HSQ
  16. 学编程需要的电脑配置
  17. ebs克隆oracle not,Oracle EBS 12.1.3 Rapid Cloning 克隆
  18. 信用评分建模中样本容量不足怎么办
  19. 快速建立个性化网站【凡科建站】
  20. 【题解】ccf csp 201812-1 小明上学

热门文章

  1. css 设置背景图一半_img只显示图片一部分 或 css设置背景图片只显示图片指定区域...
  2. 空间统计--空间关系建模工具集,Modeling Spatial Relationships
  3. 19 个接私活平台,有技术就有钱
  4. 深度学习相关课程,MIT、李沐、吴恩达、
  5. 网络层中的数据平面——网络核心中的转发!
  6. 计算机制作灯笼,做灯笼日记
  7. 视频号扩展链接一键转换
  8. python缺失值与异常值处理_pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)...
  9. 社区团购热潮退却,谁是电商卖菜“接盘侠”?
  10. c语言blackjack设计思路,Veriog——简易的BlackJack(21点)程序