LVM基本概念
LVM (Logical Volume Manager),逻辑卷管理
在保持现有数据不变的情况下动态的调整磁盘容量,提高磁盘管理的灵活性
注:/boot分区用于存放引导文件,不能基于LVM创建
LVM构成
PV物理卷 (Physical Volume)
物理卷是LVM机制的基本存储设备,通常为一个分区或整个硬盘
创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录 LVM 的属性,并把存储空间分割成默认大小为 4MB 的基本单元(PE),从而构成物理卷
VG卷组 (Volume Group)
卷组是由一个或多个物理卷组成的
在卷组中可以动态地添加或移除物理卷
LV逻辑卷 (Logical Volume)
从卷组中分割出的一块空间,形成逻辑卷
LVM命令
功能 | 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 |
建立物理卷PV
pvcreate 设备名
建立卷组VG
vgcreate 卷组名 物理卷名1 物理卷名2
在卷组VG中添加物理卷PV
vgextend VG名 设备名
建立逻辑卷LV
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
逻辑卷LV扩容
lvextend -L +大小(不超过卷组最大容量) /dev/卷组名/逻辑卷名
LVM配置
我们在虚拟机中添加两块10G新硬盘,分别为 sdb1 和 sdc1
将这两块硬盘分区并更改分区类型为8e 也就是LVM类型
[root@hbh ~]# pvcreate /dev/sdb1 /dev/sdc1 #将2块硬盘做成2个物理卷
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
[root@hbh ~]# vgcreate vghhh /dev/sdb1 /dev/sdc1 #将两个物理卷做成一个卷组
Volume group "vghhh" successfully created 卷组名为 vghhh
[root@hbh ~]# lvcreate -L 15G -n lvhhh vghhh # 在卷组中做一个15G的逻辑卷
Logical volume "lvhhh" created. 逻辑卷名为lvhhh
[root@hbh /dev]# tree -R
├── vghhh
│ └── lvhhh -> ../dm-0 该逻辑卷文件路径为 /dev/vghhh/lvhhh
[root@hbh ~]# mkfs.xfs /dev/vghhh/lvhhh
格式化该逻辑卷
可以使用mount命令挂载该逻辑卷到目录下使用
扩容
之前说LVM支持动态扩容,我们来试一下
[root@hbh ~]# lvextend -L +4G /dev/vghhh/lvhhh 在LV中添加4G容量
Size of logical volume vghhh/lvhhh changed from 15.00 GiB (3840 extents) to 19.00 GiB (4864 extents).
Logical volume vghhh/lvhhh successfully resized.
[root@hbh ~]# xfs_growfs /dev/vghhh/lvhhh 刷新文件系统容量,要在挂载时刷新
磁盘配额
磁盘配额,用来限制磁盘资源的使用
为了避免在服务器中出现磁盘空间不足的问题,就需要启用磁盘配额功能
对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制
以防止个别用户恶意或无意间占用大量磁盘空间
从而保持系统存储空间的稳定性和持续可用性
在CentOS系统中,
XFS文件系统通过xfs_quota工具进行管理
EXT3/4 文件系统通过 quota 工具进行管理
实施磁盘配额条件
需要Linux内核支持
安装xfsprogs与quota软件包
Linux磁盘限额的特点
作用范围:针对指定的文件系统(分区)
限制对象:用户帐号、组帐号
限制类型:磁盘容量、文件数量
限制方法:软限制、硬限制
磁盘配额配置
首先检查是否安装了xfsprogs和quota软件包
配额也分为3种
uquota(限制普通用户),gquota(限制用户组),pquota(限制项目)
需要用支持磁盘配额的挂载方式挂载
[root@hbh ~]# mount -o uquota,gquota,pquota /dev/vghhh/lvhhh /opt
这里用的是临时挂载,也可以在 etc/fstab 设置永久挂载
创建用户或组账户进行配额设置
[root@hbh ~]# xfs_quota -x -c ‘limit -u bhard=100M ihard=5 shiyan’ /opt
为用户’shiyan’设置配额
设置shiyan用户只能在此文件系统内创建5个文件,并且创建文件的总大小不能超过100M
-x 专家模式,只有用了-x后面才能接-c
-c 后面接子命令
limit 设置配额
-u 给用户设置配额,-g给用户组 -p给项目
bhard block的硬限制,bsoft为软限制
ihard inode的硬限制,isoft为软限制
配额设置好了,查看下用户配额信息
运用report子命令,列出文件系统的quota信息
后面也可以接一些选项
-u 只显示用户的配额
-g 只显示用户组的配额
-p 只显示项目的配额
-i 只显示inode的配额
-b 只显示block的配额
-h 人性化显示
-a 查看所有可用分区的磁盘容量配额
也可以在-c后接子命令quota再接选项 -uv 用户名和 -iuv 用户名 查看用户的磁盘容量限制和文件数量限制
验证磁盘配额功能
[root@hbh ~]# chmod 777 /opt shiyan是挂载到opt目录下的,将opt目录权限拉满
[root@hbh ~]# su shiyan 跳转到shiyan用户
[shiyan@hbh /root]$ cd /opt 一定要切换到做了配额的目录下在操作
[shiyan@hbh /opt]$ touch {1..5}.txt 创建5份txt文件
[shiyan@hbh /opt]$ ls
1.txt 2.txt 3.txt 4.txt 5.txt
[shiyan@hbh /opt]$ touch 6.txt
touch: 无法创建"6.txt": 超出磁盘限额 创建第6份文件失败,因为我们设置的文件数是5
[shiyan@hbh /opt]$ dd if=/dev/zero of=/opt/1.txt bs=10M count=11
dd: 写入"/opt/1.txt" 出错: 超出磁盘限额
记录了11+0 的读入 写入第11次失败 因为超过了设置的100M
记录了10+0 的写出 直接默认写入10次
104857600字节(105 MB)已复制,0.0958669 秒,1.1 GB/秒
[shiyan@hbh /opt]$
dd 命令是一个设备转换和连续复制命令
“if=” 指定输入设备(或文件)
“of=” 指定输出设备(或文件)
“bs=” 指定读取数据块的大小
“count=” 指定读取数据块的数量
/dev/zero “零”设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件
如何关闭配额设置
停止配额
xfs_quota -x -c ‘off -u’ /opt
子选项
-u -g -p
删除配额
xfs_quota -x -c ‘remove -u’ /opt
子选项
-u -g -p