一、LVM
1、lvm概述
lvm (logical volume manager ):逻辑卷管理 linux系统下对硬盘分区的一种管理机制。
场景:lvm机制特别适合于管理大存储设备。
作用:可以动态的对硬盘进行扩容 。
- 逻辑上的磁盘,概念上的磁盘,文件系统创建之后不在考虑底层的物理磁盘。
- 若干个磁盘分区或者物理硬盘,合并成一个逻辑卷组,再把这些逻辑卷组划分成一个个的逻辑卷。
- 用户就可以把逻辑卷看做是一个可动态扩容,快速创建,快速分区的分区。
- 可以是一个硬盘的不同的分区,也可以是不同硬盘的不同分区。
2、逻辑卷的作用
作用:解决磁盘容量限制的问题,传统的硬盘分区是固定的,分配完之后无法进行调整,要调整只能推到重来,逻辑卷是把卷组分为多个硬盘,不在考虑底层的物理硬盘,可以实现多个硬盘的汇聚以及动态扩容。
- pv:物理卷,真正的物理硬盘的分区。
- vg:卷组 把物理上的分区结合起来。形成了卷组。卷组就是逻辑上的硬盘。
- lv:逻辑卷 把卷组进行分区,相当于物理硬盘的分区,逻辑卷可以动态扩容。
3、LVM的管理命令
4、创建LVM
准备工作:添加3块硬盘,每块硬盘分别分出一个区
1、创建物理卷
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1
2、创建逻辑卷组
vgcreate test1 /dev/sd{b..d}1
第一步与第二步可以合并
vgcreate test1 /dev/sd{b..d}1
查看逻辑卷信息,三块硬盘合并其中
[root@localhost ~]# vgdisplay /dev/test1 #查看逻辑卷的信息
3、创建逻辑卷,并分配大小为10G
[root@localhost ~]# lvcreate -L +10G -n tt1 /dev/test1
或
[root@localhost ~]# lvcreate -L +10G -n tt1 test1
查看逻辑卷信息是否创建成功
[root@localhost ~]# lvdisplay /dev/test1/tt1
4、创建文件管理
常见有xfs与ext4两种格式
A、创建xfs格式
[root@localhost ~]# mkfs.xfs /dev/test1/tt1
B、创建ext4格式
[root@localhost ~]# mkfs.ext4 /dev/test2/tt2
5、动态拓展逻辑卷
逻辑卷拓展19G
[root@localhost ~]# lvextend -L +19G /dev/test1/tt1
查看信息是否扩展成功
[root@localhost ~]# lvdisplay /dev/test1/tt1
若未发生变化是xfs格式需要在拓展命令行最后加 -r,重新查看即可
[root@localhost ~]# lvextend -L +19G /dev/test1/tt1 -r
若未发生变化是ext4格式输入下面命令更新即可
[root@localhost ~]# resize2fs /dev/test2/tt2
6、将逻辑卷组的所有空间大小全部添加到逻辑卷,然后再进行拓展逻辑分区
1、新建硬盘分区sdb2,大小为10G
2、将空间拓展到逻辑卷组中
[root@localhost ~]# vgextend /dev/test1 /dev/sdb2
查看逻辑卷组中信息,已将sdb2的内存拓展到逻辑卷扩展,按照5方法将逻辑卷组的内存大小拓展到逻辑卷中
7、挂载
A、临时挂载
[root@localhost /]# mount /dev/test1/tt1 /data1
[root@localhost /]# mount /dev/test2/tt2 /data2
B、永久挂载
普通永久挂载对tt1进行挂载
进入 /etc/fstab进行交互
/dev/test1/tt1 /data1 xfs defaults 0 0
保存退出,加载挂载。
根据UUID进行挂载
使用blkid命令查看想挂载的UUID号,此次对tt2进行挂载
[root@localhost ~]# blkid
进入 /etc/fstab进行交互
UUID="0c3abe6b-0d83-437d-8720-4c65af0d4370" /data2 ext4 defaults 0 0
保存退出,加载挂载。
查看,挂载成功!
二 、磁盘配额
1、概述
- linux的磁盘空间有两个方面:第一个是物理空间 也就是磁盘容量
- 第二个inode号耗尽,也无法写入
- linux根分区:根分区的空间耗尽,服务程序崩溃,系统无法启动,
- 为了防止有人恶意的占用磁盘空间,我们就有了磁盘配额的功能,一方面限制用户占用磁盘的空间,另一方面限制用户创建文件的数量。
- xfs文件系统 xfs_quota进行管理,ext3/4文件 quota进行管理。
2、对xfs文件系进行磁盘配额
对1中的/dev/test1/tt1进行磁盘配额
1、下载并检查是否安装相关的软件包
[root@localhost /]# yum -y install xfsprogs quota 下载
[root@localhost /]# rpm -q xfsprogs quota
2、对xfs系统文件进行解挂载,进入/etc/fstab 交互 进行永久挂载
/dev/test1/tt1 /data1 xfs defaults,usrquota,grpquota 0 0
保存退出,mount -a重新加载
3、关闭防火墙以及安全机制
[root@localhost /]# systemctl stop firewalld.service
[root@localhost /]# setenforce 0
4、创建普通用户,设置密码
[root@localhost /]# useradd zhangsan
[root@localhost /]# echo 123 | passwd --stdin zhangsan
5、设置权限
[root@localhost /]# chmod 777 data1
6、对磁盘容量,文件数量进行配额
#对磁盘的容量进行配额,限制最多100M
[root@localhost data]# xfs_quota -x -c 'limit -u bsoft=80M bhard=100M zhangsan' /data1
#对磁盘的文件数量进行配额,限制最多6个
[root@localhost data]# xfs_quota -x -c 'limit -u isoft=4 ihard=6 zhangsan' /data1
-x表示启用专家模式,配额系统的所有管理命令都可以使用
-c直接调用命令
-u指定对象用户
bsoft:软限制,即使超过了,也可以使用
bhard:硬限制,到了指定的配额就不可以写入了
isoft创建文件的软限制
ihard创建文件的硬限制
7、切换用户,进入目标目录data,并创建9个文件
su - zhangsan
[zhangsan@localhost data1]$ touch {1..9}.txt
结果展示最多只能创建6个文件,并提示超出磁盘限额
删除文件刚刚创建的文件,写入一个120M的文件,提示超出磁盘限额,并且最多只能放100M
dd if=/dev/zero of=/data1/123.txt bs=10M count=12
8、小结
在对磁盘容量,文件数量进行配额,两者满足其一种条件时文件将不可继续被写入。