LVM概述
- logical volume manager,逻辑卷管理
- ** 能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性**
- /boot/分区用于存放引导文件,不能基于LVM创建
LVM机制的基本概念
- PV (物理卷)
可能是一个硬盘一个分区组成,一个物理卷pv将一个硬盘或者分区打散成多个pe,每个pe大小4mb - VG(卷组)
一个卷组vg由多个pv物理卷组成 - LV (逻辑卷)
在卷组中,划分适量大小的空间给逻辑卷
LVM的管理命令
- 主要命令
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
Scan扫描 | pvscan | vgscan | lvscan |
Create 建立 | pvcreate | vgcreate | lvcreate |
Display显示 | pvdisplay | vgdisplay | lvdisplay |
Remove删除 | pvremove | vgremove | lvremove |
Extend扩展 | —— | vgextend | lvextend |
Reduce减少 | —— | vgreduce | lvreduce |
- 主要命令
- pvcreat 设备名 1[设备名2…]
- vgcreate 卷组名 物理卷名1 物理卷名2
- lvcreate -L 容量大小 -n 逻辑卷名 卷组名
- lvextend -L +大小 /dev/卷组名/逻辑卷名
创建逻辑卷实验
实验:虚拟机新增两个硬盘,并创建abc卷组和abc01逻辑卷,将他们挂载到目录/opt/中
- 第一步,关闭虚拟机,增加两个20G的硬盘
- 第二步,将新增的磁盘划分出主分区/dev/sdb2和/dev/sdc1
使用fdisk +硬盘文件名
然后输入n 新建分区 之后一直空格
然后输入t 设置区分类型,L可以查看所有的类型标号,例如:83是默认Linux类型,这边选择8e,创建虚拟卷的类型
输入 p 查看分区状态
然后w/q 保存退出/不保存退出,这边设置好了,保存退出w
- 第三步,主分区创建好之后,创建物理卷
输入命令 pvcreate /dev/sdb2 + /dev/sdc1
这边显示创建成功 - 第四步 创建卷组,将新创建的主分区物理卷sdb2和sdc1放在abc卷组中
输入命令vgcreate +abc(卷组名)+/dev/sdb2+/devsdc1(即两个刚创建的物理卷
这边创建成功
- 第五步创建逻辑卷abc01,容量划分20G
输入命令:lvcreate -L 需要划分的容量大小 -n 逻辑卷名 卷组名
lvcreate -L 20G -n abc01 abc
逻辑卷创建完成 - 第六步,对逻辑卷进行格式化,创建xfs文件系统
输入命令:mkfs -t xfs /dev/卷组名/逻辑卷名
mkfs -t xfs /dev/abc/abc01
这边逻辑卷格式化完成 - 第七步,将逻辑卷挂载到/opt/目录下
输入命令:mount /dev/卷组名/逻辑卷名 空格/需要挂载的目录
mount /dev/abc/abc01 /opt/
挂载完成后查看是否挂载完成
这边查看到逻辑卷abc已经创建完成并且划分到abc01卷组中,也挂载到目录/opt中,实验完成
总结创建物理卷,卷组,逻辑卷,格式化逻辑卷和挂载目录相关命令
- :关闭主机,添加需要的新硬盘,重启主机
- :先使用 fdisk 工具将碰盘设备/dev/sdb、/de/sdc划分出主分区sdb1、sdc1,并且把分区类型的 ID 标记号改为"8e"
fdisk /dev/sdb
fdisk /dev/sdc
n t p w(fdisk的命令) - :创建物理卷
pucreate /dev/sdb1 /dev/sdc1 - :创建卷组,卷组名为vgname1
vgcreate vgnamel /dev/sdb1 /dev/sdc1 - :创建逻辑卷,逻辑卷名为lvname1,容量为 20G,生成的文件路径为/dev/vgname1/lvname1
lvcreate -L 20G -n lvname1 vgname1 - : 对逻辑卷进行格式化,创建 xfs 文件系统,并挂载到/opt目录下
mkfs -t xfs /dev/vgname1/lvname1 格式化逻辑卷
mount /dev/vgname1 /lvname1 /opt 挂载到/opt目录下 - lsblk或者df -hT查看一下,或者mount查看一下挂载情况
实验2:扩容卷组和逻辑卷
- 增加一个新的硬盘,若是原来卷组的容量不够的话,可以查看是否够不够
输入命令vgdisplay
这是我们上条实验做得卷组,以及可用的空间,这边可以进行扩容,
- 第一步:增加一个新的硬盘,划分主分区
输入命令:fdisk /dev/sdd,划分新的硬盘的主分区
这边操作跟实验一的第二步一样
- 第二步,创建物理卷
输入命令:pvcreate /dev/sdd1
这边创建完成 - 第三步,扩展需要扩容的卷组,这边需要扩容abc卷组,
输入命令vgextend 卷组名 新增的物理卷
输入命令vgextend abc /dev/sdd1
这边输入vgdisplay可用查看是否扩容完成
- 第四步,卷组扩容20G之后,扩容逻辑卷
输入命令:lvextend -L +需要扩容的容量 +/dev/卷组/逻辑卷名
lvextend -L +20G /dev/abc/abc01
查看是否扩容输入命令:lvdisplay
这边显示扩容完成,但是系统还没有识别,需要刷新 - 第五步,刷新文件系统容量
xfs_growfs /dev/vgname1/lvname1 #刷新xfs文件系统容量
这边文件系统还未显示扩容完成,输入下面命令
xfs_growfs /dev/abc/abc01 #刷新文件系统容量
resize218 /dev/vgname1/lvname1 #刷新ext.4类型文件系统容量
刷新完成输入命令df -hT查看一下
逻辑卷挂载完成
设置磁盘配额
- 当Linux根分区的磁盘空间耗尽时,Linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障。
- 为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性
- 在 centOs 系统中,不同的文件系统使用不同磁盘配额配置管理工具。例如,Xfs 文件系统通过 xfs_quota 工具进行管理, ext3/4 文件系统通过 quota
工具进行管理。
磁盘配额概述
- 实现磁盘限额的条件
- 需要Linux内核支持
- 安装xfsprogs与quota软件包
- Linux磁盘限额的特点
-
作用范围:针对指定的文件系统(分区)
-
限制对象:用户账号、组账号
-
限制类型:磁盘容量、文件数量
-
限制方法:软限制、硬限制
软限制:算是一种警告和体现,如限制一个数值,磁盘内容占了90% 提醒一下磁盘内容要占满了 硬限制:则是磁盘上限了 例子:软限制80M.硬限制100M 当磁盘使用到达80m时候会提醒,磁盘容量要占满了,超过软限制了 当磁盘使用到达100m时候会提醒和提示,无法再写入了
Centos7中设置磁盘配额步骤
-
检查是否已经安装xfsprogs和xfs_quota软件包
rpm -q xfsprogs quota
yum install -y xfsprogs quota
-
以支持配额功能挂载
umount /dev/vgname1/lvname1(先解挂,我们这边使用上面创建的逻辑卷和卷组即abc卷组和abc01逻辑卷)
mount -o usrquoat,grpquota /dev/vgname/lvname /opt #添加挂载参数“usrquota。grpquota”用于增加对用户、组配额功能的支持(这个命令是永久挂载)
需要先解挂载
或者vim /etc/fstab
/dev/vgname1/lvname1 /opt xfs defaulats,usrquota,grpquota 0 0
umount /dev/vgname1/lvname
解挂载后输入mount -a即可再次挂载
实现永久性挂载
mount -a # -a选项,将/etc/fstab的所有内容重新加载
3. 编辑用户和组账号的配额设置
useradd zhangshan 创建用户
passwd zhangshan 创建用户密码
xfs_quota -x -c ’limit -u bsoft -80M bhard-100M isoft 40 ihard 50 zhangsan’ /opt
-x:表示 启动专家模式,在当前模式下与允许 对配额系统进行修改的所有管理命令
-c:表示直接调用管理命令(调用的管理命令用引号括起来)
-u:指定用户账号对象(用户放在最后)
-g:指定组账号对象
bsoft:设置磁盘容量的软限制数值(默认单位为KB)
bhard:设置磁盘容量的硬限制数值(默认单位为KB)
isoft:设置磁盘文件数的软限制数值
ihard:设置磁盘文件数的硬限制数值
#仅限制磁盘容量
xfs_quota -x -c ‘limit -u bsoft=80M bhard=100M zhangshan’ /opt/
#仅限制磁盘文件数
xfs_quota -x -c ‘limit -u isoft=4 ihard=5 zhangsan’ /opt
#查看zhangsan磁盘容量限制
xfs quota -c ’quota -uv zhangsan‘ /opt/
#查看磁盘文件限制
xfs quota -c ’quota -i -uv zhangsan‘ /opt/
#验证磁盘配额功能
chmod 777 /opt/ #所有普通用户都可以对opt用户有读写权限,该命令是附加权限
su zhangsan #切换到张三目录
cd /opt #进入opt目录验证
#验证磁盘容量超限
dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=12
dd 命令是一个设备转换和连续复制命令
"if=”指定输入设备(或文件)就是指定复制的路径
of=指定输出设备(或文件)
”bs=”指定读取数据块的大小(每一次读取的大小)
“count=”指定读取数据块的数量/dev/zero“零"设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件(复制次数)
这边删除zhangshuo目录下的文件,这是之前验证用dd命令创建的90m的文件,在zhangshuo目录下的opt目录中
这边我们在重新创建一个超过一百m的命令,看是否创建成功
创建失败,硬限制在限制,所以实验成功
#验证磁盘文件数超限
touch {aa,bb,cc,dd,ee,ff}.txt
这边删除zhangshuo目录下的opt目录的所有文件,再去创建多个文件,看文件硬限制是否限制
文件数量的硬限制也成功限制
实验成功
xfs_quota -x -c ‘report -abih’ #查看所有用户的文件限制和容量限制