v
Linux磁盘管理之LVM逻辑卷认识与管理详解
前言
本文接着上篇文章作如下延伸:
链接:Linux磁盘管理之磁盘管理与文件系统
- 什么是LVM?为什么需要LVM?
- 如何具体进行LVM逻辑卷管理?
- 什么是磁盘配额?为什么需要磁盘配额?
- 在Linux中进行磁盘配额的条件是什么呢?
- 如何具体进行磁盘配额?
下面对以上问题逐一讲解,深入实例进行操作,带你深入理解linux磁盘管理之LVM逻辑卷管理。
一、LVM概述
1.什么是LVM?为什么需要LVM?
许多 Linux 使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份、删除相关数据,甚至被迫重新规划分区并重装操作系统,以满足应用系统的需要。而 LVM 技术就实现了用户动态管理分配磁盘的需求。
LVM——Logical Volume Manger,逻辑卷管理,是Linux系统对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。
注意:/boot分区用于存放引导文件,不能基于LVM创建!!!
2.LVM机制的基本概念
-
PV(物理卷)
物理卷(physical volume),是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建时会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并且把存储空间分割成默认大小为4MB的基本单元(PE),多个PE构成物理卷
-
VG(卷组)
多个物理卷构成卷组
-
LV(逻辑卷)
建立在卷组之上,与物理卷没有直接关系。
三者示意图如下所示:
3.LVM的主要管理命令
功能 |
物理卷管理 |
卷组管理 |
逻辑卷管理 |
scan扫描 |
pvscan |
vgscan |
lvscan |
create建立 |
pvcreate |
vgcreate |
lvcreate |
display显示 |
pvdisplay |
vgdisplay |
lvdisplay |
remove删除 |
pvremove |
vgremove |
lvremove |
extend扩展 |
—— |
vgextend |
lvextend |
reduce减少(某些格式未必支持) |
—— |
vgreduce |
lvreduce |
上表主要列出了管理逻辑卷的具体操作命令,下面结合实际操作进行上表中常用命令的演示。
二、LVM逻辑卷管理实践操作过程(可跟做)
4.如何具体进行LVM逻辑卷管理?
实验环境:VMware15版本上Centos7的虚拟机环境进行操作
-
添加磁盘并且重启虚拟机,具体几块根据自己的需求和硬件限制
我添加了三块,具体操作步骤可以参考:https://blog.51cto.com/14557673/2447274
-
查看磁盘情况是否添加成功,成功则进行分区操作(其中需要将作为该分区类型的ID标记号改为8e,8e表示支持的是LVM分区)
[root@lokott ~]# uname -a //显示Centos7的内核版本
Linux lokott 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@lokott ~]# fdisk -l
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a0791
设备 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 字节
磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
分区操作如下:
[root@lokott ~]# fdisk /dev/sdb //完成sdb和sdc的分区和分区类型设置
欢迎使用 fdisk (util-linux 2.23.2)。
..... //中间交互过程省略,具体信息查看上述链接文章
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5e2f4ad3
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 8e Linux LVM
/dev/sdb2 20973568 31459327 5242880 83 Linux
命令(输入 m 获取帮助):w
[root@lokott ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xfd710363
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 10487807 5242880 83 Linux
/dev/sdc2 10487808 31459327 10485760 8e Linux LVM
目前已经将sdb1和sdc2作为逻辑分区,使用fdisk -l可以查看信息
[root@lokott ~]# fdisk -l /dev/sd[b-c] //简化操作
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x5e2f4ad3
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 8e Linux LVM
/dev/sdb2 20973568 31459327 5242880 83 Linux
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xfd710363
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 10487807 5242880 83 Linux
/dev/sdc2 10487808 31459327 10485760 8e Linux LVM
[root@lokott ~]#
-
分区完成后,使用pvcreate命令将所需操作分区转换为物理卷
[root@lokott ~]# pvscan //查看系统所有的物理卷,结果是没有
No matching physical volumes found
[root@lokott ~]# pvcreate /dev/sdb1 /dev/sdc2 //转换分区为物理卷
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc2" successfully created.
[root@lokott ~]# pvdisplay //查看物理卷详细信息
"/dev/sdc2" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc2
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID AzPaEA-X9Um-HPQQ-zdOg-mzVf-wXvh-QWEEXt
"/dev/sdb1" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 5fh4Yx-Bwlm-ym7b-Qg0P-3HRb-iKRi-lwQyG9
-
使用vgcreate命令将一个或多个物理卷组成卷组
[root@lokott ~]# vgscan
Reading volume groups from cache.
[root@lokott ~]# vgcreate vgroup /dev/sdb1 /dev/sdc2 //vgroup是所建卷组的名字
Volume group "vgroup" successfully created
[root@lokott ~]# vgdisplay
--- Volume group ---
VG Name vgroup
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 19.99 GiB
PE Size 4.00 MiB
Total PE 5118
Alloc PE / Size 0 / 0
Free PE / Size 5118 / 19.99 GiB
VG UUID K2s77S-fAfb-C5V2-P7ci-m4eo-DdNh-nanIW4
-
使用lvcreate命令从用户指定的卷组中分割出空间来创建逻辑卷。
[root@lokott ~]# lvscan //查看系统已建逻辑卷信息
[root@lokott ~]# lvcreate -L 10G -n vgroup1 vgroup //从卷组分割空间创建逻辑卷
Logical volume "vgroup1" created.
[root@lokott ~]# ls /dev/vgroup/vgroup1 //显示逻辑卷vgroup1的链接文件
/dev/vgroup/vgroup1
[root@lokott ~]# ls /dev/mapper/vgroup-vgroup1 //显示逻辑卷vgroup1的设备文件
/dev/mapper/vgroup-vgroup1
[root@lokott ~]# lvdisplay //显示逻辑卷详细信息
--- Logical volume ---
LV Path /dev/vgroup/vgroup1
LV Name vgroup1
VG Name vgroup
LV UUID ucTRFz-DK1l-fVgf-Gvzr-562n-nkYS-kuRACZ
LV Write Access read/write
LV Creation host, time lokott, 2019-11-02 14:27:41 +0800
LV Status available
# open 0
LV Size 10.00 GiB
Current LE 2560
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
-
对逻辑卷进行格式化,并且创建挂载点(mkdir)进行挂载,使用df命令进行查看
[root@lokott ~]# mkfs.xfs /dev/vgroup/vgroup1
meta-data=/dev/vgroup/vgroup1 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@lokott ~]# mkdir /mail
[root@lokott ~]# mount /dev/vgroup/vgroup1 /mail/
[root@lokott ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.4G 16G 22% /
devtmpfs devtmpfs 474M 0 474M 0% /dev
tmpfs tmpfs 489M 0 489M 0% /dev/shm
tmpfs tmpfs 489M 7.2M 482M 2% /run
tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 37M 10G 1% /home
/dev/sda1 xfs 6.0G 158M 5.9G 3% /boot
tmpfs tmpfs 98M 4.0K 98M 1% /run/user/42
tmpfs tmpfs 98M 24K 98M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vgroup-vgroup1 xfs 10G 33M 10G 1% /mail
- 使用lvextend命令为逻辑卷扩充容量,再使用resize2fs命令更新系统识别的文件系统大小
[root@lokott ~]# lvextend -L +5G /dev/vgroup/vgroup1 //下面的信息表示成功扩展(前提是卷组中有空余空间)
Size of logical volume vgroup/vgroup1 changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).
Logical volume vgroup/vgroup1 successfully resized.
[root@lokott ~]# df -hT //查看是没有显示出来需要更新让系统识别文件系统
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.4G 16G 22% /
devtmpfs devtmpfs 474M 0 474M 0% /dev
tmpfs tmpfs 489M 0 489M 0% /dev/shm
tmpfs tmpfs 489M 7.2M 482M 2% /run
tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 37M 10G 1% /home
/dev/sda1 xfs 6.0G 158M 5.9G 3% /boot
tmpfs tmpfs 98M 4.0K 98M 1% /run/user/42
tmpfs tmpfs 98M 24K 98M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vgroup-vgroup1 xfs 10G 33M 10G 1% /mail
[root@lokott ~]# xfs_growfs /dev/vgroup/vgroup1 //xfs的使用xfs_growfs命令,ext4用resize2fs命令但需先取消挂载
meta-data=/dev/mapper/vgroup-vgroup1 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=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 bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 2621440 to 3932160
[root@lokott ~]# df -hT | grep /dev/mapper/vgroup-vgroup1 //更新后可以查看到扩展到15G
/dev/mapper/vgroup-vgroup1 xfs 15G 33M 15G 1% /mail
[root@lokott ~]#
5.实验小结(1)
以上就是LVM逻辑卷管理的全过程操作,可以跟着做!务必注意分区时的逻辑分区的操作,以及后面更新的命令需要根据文件系统类型使用与之对应的命令(ext4——resize2fs(先取消挂载),xfs——xfs_growfs)
三、磁盘配额
6.什么是磁盘配额?为什么需要磁盘配额?
磁盘配额,顾名思义,就是为了限制磁盘资源的使用,磁盘配额是系统对用户能使用磁盘资源的控制(或者说限制).在Linux中,磁盘配额可以对用户的空间使用情况,文件数量(实际上是inode的数量,文件数量是限制inode的结果)进行限制。如果超出此范围则用户不能在往磁盘里继续写入数据。
对于一般人来说,可能不是特别好理解该段解释,那我们举一个例子来说明一下:
假设有一筐桃子,一共50个,平均分配给10只猴子,那么每只猴子可以分到5个桃子,首先是限制了桃子的总数和每个猴子可以分到的桃子数量,这就是磁盘配额,但是在系统中分配必然不是平均的,这就需要对此进行额度分配,有的猴子分到的多点,那么就意味着有的猴子分到的就会便少,但是总数不会变化。对于linux系统而言,就意味着单个磁盘的实际资源空间是有限的,那么对磁盘的合理分配就尤为重要。
因此,进行磁盘配额的原因就是磁盘的空间资源是有限的,而其目的可以理解为合理规划,避免资源浪费。
7.那么在Linux中进行磁盘配额的条件是什么呢?
- 首先需要Linux内核支持
- 安装xfsprogs与quota
8.Linux磁盘限额的特点
- 作用范围:针对指定的文件系统(分区)
- 限制对象:用户账号、组账号
- 限制类型:磁盘容量、文件数量
- 限制方法:软限制、硬限制
其中软限制<=硬限制,否则软限制没有意义,但是软限制是起到真正起到控制作用的方法
根据类型和方法有以下情况
- 容量软: bsoft
- 容量硬:bhard
- 数量软: isoft
- 数量硬: ihard
下面具体给出具体实验操作过程演示该如何进行磁盘配额。
四、磁盘配额具体操作步骤实验(可接着上面的实验进行操作)
9.如何具体进行磁盘配额?
具体操作流程如下:
-
首先需要查看是否满足上述两个条件
[root@lokott ~]# rpm -q xfsprogs //用rpm -q 进行查看上述两个条件的软件包是否在
xfsprogs-4.5.0-12.el7.x86_64
[root@lokott ~]# rpm -q quota
quota-4.01-14.el7.x86_64
-
满足条件,接着上面的实验进行操作,先取消挂载(umount /mail)
[root@lokott ~]# umount /mail/
[root@lokott ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.4G 16G 22% /
devtmpfs devtmpfs 474M 0 474M 0% /dev
tmpfs tmpfs 489M 0 489M 0% /dev/shm
tmpfs tmpfs 489M 7.2M 482M 2% /run
tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 37M 10G 1% /home
/dev/sda1 xfs 6.0G 158M 5.9G 3% /boot
tmpfs tmpfs 98M 4.0K 98M 1% /run/user/42
tmpfs tmpfs 98M 24K 98M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
-
取消挂载后添加usrquota和grpquota参数以支持配额功能的方式挂载文件系统
[root@lokott ~]# mount -o usrquota,grpquota /dev/vgroup/vgroup1 /mail/
[root@lokott ~]# mount | tail -1 //mount 命令结合“|”查看尾部一行的信息也可以使用下面的grep命令
/dev/mapper/vgroup-vgroup1 on /mail type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
[root@lokott ~]# mount | grep /dev/mapper/vgroup-vgroup1
/dev/mapper/vgroup-vgroup1 on /mail type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
-
编辑用户和组账号的配额设置(这里需要有非root的用户,可以用tail命令查看/etc/passwd的信息,如果没有其他用户使用useradd创建一个用户,下面给出具体演示过程)
[root@lokott ~]# tail -3 /etc/passwd //查看,我这里是由一个lokott的用户的,为了演示下面创建一个lisi
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
[root@lokott ~]# useradd lisi //创建新的用户账号和密码
[root@lokott ~]# passwd lisi
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@lokott ~]# tail -3 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
lisi:x:1001:1001::/home/lisi:/bin/bash
[root@lokott ~]# xfs_quota -x -c 'limit -u bsoft=1G bhard=2G isoft=20 ihard=50 lisi' /mail/
这里对最下面的命令进行详细解释,这条命令是真正实现编辑用户的配额设置的命令操作,其中xfs_quota是命令,选项-x表示专家模式,-c表示命令(command,其实就是单引号内的内容,类似数据库的增删改查操作,limit表示限制,-u表示对用户,后面的是限制配额大小,然后是用户名,最后千万不要忘记挂载点!!!)
-
查看磁盘配额使用情况和验证磁盘配额功能,首先在root下将挂载点的权限改为777,否则待会切换用户时创建文件权限不够
[root@lokott ~]# xfs_quota -c 'quota -uv lisi' /mail/ //查看磁盘容量限制
Disk quotas for User lisi (1001)
Filesystem Blocks Quota Limit Warn/Time Mounted on
/dev/mapper/vgroup-vgroup1
0 1048576 2097152 00 [--------] /mail
[root@lokott ~]# xfs_quota -c 'quota -iuv lisi' /mail/ //查看文件数量限制
Disk quotas for User lisi (1001)
Filesystem Files Quota Limit Warn/Time Mounted on
/dev/mapper/vgroup-vgroup1
0 20 50 00 [--------] /mail
[root@lokott ~]# xfs_quota -x -c 'report -a' /mail/ //查看配额的所有信息
User quota on /mail (/dev/mapper/vgroup-vgroup1)
Blocks
User ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
lisi 0 1048576 2097152 00 [--------]
Group quota on /mail (/dev/mapper/vgroup-vgroup1)
Blocks
Group ID Used Soft Hard Warn/Grace
---------- --------------------------------------------------
root 0 0 0 00 [--------]
[root@lokott ~]# chmod 777 /mail/
[root@lokott ~]# su - lisi //切换用户
上一次登录:六 11月 2 16:15:17 CST 2019pts/0 上
[lisi@lokott ~]$ cd /mail/ //进入挂载点目录创建文件方式来验证(方法一)
[lisi@lokott mail]$ ls
[lisi@lokott mail]$ touch {1..20}.txt
[lisi@lokott mail]$ ls
10.txt 12.txt 14.txt 16.txt 18.txt 1.txt 2.txt 4.txt 6.txt 8.txt
11.txt 13.txt 15.txt 17.txt 19.txt 20.txt 3.txt 5.txt 7.txt 9.txt
[lisi@lokott mail]$ touch {20..60}.txt //上面查看的数量限制是50,现在超过50了
touch: 无法创建"51.txt": 超出磁盘限额
touch: 无法创建"52.txt": 超出磁盘限额
touch: 无法创建"53.txt": 超出磁盘限额
touch: 无法创建"54.txt": 超出磁盘限额
touch: 无法创建"55.txt": 超出磁盘限额
touch: 无法创建"56.txt": 超出磁盘限额
touch: 无法创建"57.txt": 超出磁盘限额
touch: 无法创建"58.txt": 超出磁盘限额
touch: 无法创建"59.txt": 超出磁盘限额
touch: 无法创建"60.txt": 超出磁盘限额
[lisi@lokott mail]$ ls | wc -l //表示成功创建了30个
50
[lisi@lokott mail]$ su //切换到root下看一下数量限制的变化,其中warn/time变为6days
密码:
[root@lokott mail]# cd
[root@lokott ~]# xfs_quota -c 'quota -iuv lisi' /mail/ //查看数量配额限制功能
Disk quotas for User lisi (1001)
Filesystem Files Quota Limit Warn/Time Mounted on
/dev/mapper/vgroup-vgroup1
50 20 50 00 [6 days] /mail
10.实验小结(2):
对磁盘进行配额操作后,其限制是非常严格的,上面我们通过创建文件的方法验证了磁盘配额数量限制的效果,其中警告时间表示从明天开始计算6天时间,时间超过后由于软限制40的文件节点数量的限制,后面创建的10个文件将会被删除!
下面通过dd命令来验证配额容量限制的效果:
[root@lokott ~]# su - lisi //首先切换到lisi用户上cd到挂载点目录删除原来的文件
上一次登录:六 11月 2 16:46:28 CST 2019pts/0 上
[lisi@lokott ~]$ cd /mail/
[lisi@lokott mail]$ ls
10.txt 14.txt 18.txt 21.txt 25.txt 29.txt 32.txt 36.txt 3.txt 43.txt 47.txt 50.txt 8.txt
11.txt 15.txt 19.txt 22.txt 26.txt 2.txt 33.txt 37.txt 40.txt 44.txt 48.txt 5.txt 9.txt
12.txt 16.txt 1.txt 23.txt 27.txt 30.txt 34.txt 38.txt 41.txt 45.txt 49.txt 6.txt
13.txt 17.txt 20.txt 24.txt 28.txt 31.txt 35.txt 39.txt 42.txt 46.txt 4.txt 7.txt
[lisi@lokott mail]$ rm *.txt -f //删除所有文件然后使用dd命令操作,软限制1G 硬限制2G
[lisi@lokott mail]$ cd
[lisi@lokott ~]$ dd if=/dev/zero of=/mail/demo01.txt bs=50M count=10 //第一次没问题
记录了10+0 的读入
记录了10+0 的写出
524288000字节(524 MB)已复制,0.647092 秒,810 MB/秒
[lisi@lokott ~]$ dd if=/dev/zero of=/mail/demo02.txt bs=50M count=20 //第二次没问题
记录了20+0 的读入
记录了20+0 的写出
1048576000字节(1.0 GB)已复制,0.685654 秒,1.5 GB/秒
[lisi@lokott ~]$ dd if=/dev/zero of=/mail/demo03.txt bs=50M count=20 //第三次失败了
dd: 写入"/mail/demo03.txt" 出错: 超出磁盘限额
记录了11+0 的读入
记录了10+0 的写出
574619648字节(575 MB)已复制,0.357243 秒,1.6 GB/秒
[lisi@lokott ~]$ du -sh /mail/ //统计目录空间大小使用情况
2.0G /mail/
[lisi@lokott ~]$ ls -lh /mail/ //查看详细信息
总用量 2.0G
-rw-rw-r--. 1 lisi lisi 500M 11月 2 17:08 demo01.txt
-rw-rw-r--. 1 lisi lisi 1000M 11月 2 17:09 demo02.txt
-rw-rw-r--. 1 lisi lisi 548M 11月 2 17:10 demo03.txt
[lisi@lokott ~]$ su
密码:
[root@lokott lisi]# cd
[root@lokott ~]# xfs_quota -c 'quota -uv lisi' /mail/ //查看容量配额限制功能
Disk quotas for User lisi (1001)
Filesystem Blocks Quota Limit Warn/Time Mounted on
/dev/mapper/vgroup-vgroup1
2097152 1048576 2097152 00 [6 days] /mail
11.实验小结(3)
通过dd命令(dd命令是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换)来验证磁盘配额中容量限制的功能测试验证,可见此与上一个方法验证的结果类似,实验操作过程中注意以下两点:
需要切换用户验证和更新挂载点的内容(如果第二个方法没有先将原来的文件删除,是无法进行实验的)