LVM逻辑卷管理与磁盘配额
文章目录
- 1.前言
- 2.LVM管理
- 2.1LVM概述
- (1)LVM基本原理
- (2)LVM实现过程
- (3)LVM基本术语
- 2.2LVM命令管理
- (1)PV管理工具
- (2)VG管理工具
- (3)LV管理工具
- 3.磁盘配额
- 3.1磁盘配额概述
- (1)为什么要做磁盘配额
- (2)实现磁盘配额的条件
- (3)磁盘配额的特点
- (4)磁盘配额实现流程
- 3.2磁盘配额命令管理
- 4.总结
1.前言
LVM:(Logical Volume Manager)能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。
磁盘配额:磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一位用户只能使用最大配额范围内的磁盘空间。
2.LVM管理
2.1LVM概述
(1)LVM基本原理
LVM(Logical Volume Manager)逻辑卷管理,是在硬盘分区和文件系统之间添加的一个逻辑层,为文件系统屏蔽下层硬盘分区布局,并提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM可以在硬盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越物理硬盘。当服务器添加了新的硬盘后,管理员不必将原有的文件移动到新的硬盘上,而是通过LVM直接扩展文件系统来跨越物理硬盘。
LVM就是通过将底层的物理硬盘封装,然后以逻辑卷的方式呈现给上层应用。当我们对底层的物理硬盘进行操作时,不再是针对分区进行操作,而是通过逻辑卷对底层硬盘进行管理操作。
(2)LVM实现过程
- 将设备指定为物理卷
- 用一个或者多个物理卷来创建一个卷组,物理卷是用固定大小的物理区域(Physical Extent, PE)来定义的
- 在物理卷上创建的逻辑卷, 是由物理区域(PE)组成
(3)LVM基本术语
PV(Physical Volume,物理卷)
物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE),从而构成物理卷
VG(Volume Group,卷组)
由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷
LV(Logical Volume,逻辑卷)
逻辑卷建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷。使用mkfs等工具在逻辑卷上创建文件系统
PE(Physical Extent,物理块)
物理卷PV中可以分配的最小存储单元,PE的大小可以指定,默认为4MB
LE(Logical Extent,逻辑块)
逻辑卷LV中可以分配的最小存储单元,在同一卷组VG中LE的大小和PE是相同的,并且一一相对
物理存储介质(The physical media)
LVM存储介质,可以是硬盘分区、整个硬盘、raid阵列或SAN硬盘。设备必须初始化为LVM物理卷,才能与LVM结合使用
2.2LVM命令管理
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
Scan扫描 | pvscan | vgscan | lvscan |
Create建立 | pvcreate | vgcreate | lvcreate |
Display显示 | pvdisplay | vgdisplay | lvdisplay |
Remove删除 | pvremove | vgremove | lvremove |
Extend扩展 | vgextend | lvextend | |
Reduce减少 | vgreduce | lvreduce |
注:最小化安装的虚拟机可能没有LVM功能,执行 yum -y install lvm2
(1)PV管理工具
显示PV信息
pvs
pvscan
pvdisplay #详细信息显示
创建pv
pvcreate /dev/DEVICE
删除pv
pvremove /dev/DEVICE
示例:
[root@c7-1 ~]#pvcreate /dev/sdb1 /dev/sdc1 #创建PV的前提是分区存在Physical volume "/dev/sdb1" successfully created.Physical volume "/dev/sdc1" successfully created.
[root@c7-1 ~]#pvscanPV /dev/sdb1 lvm2 [20.00 GiB]PV /dev/sdc1 lvm2 [20.00 GiB]Total: 2 [40.00 GiB] / in use: 0 [0 ] / in no VG: 2 [40.00 GiB]
[root@c7-1 ~]#pvremove /dev/sdb1 /dev/sdc1Labels on physical volume "/dev/sdb1" successfully wiped.Labels on physical volume "/dev/sdc1" successfully wiped.
[root@c7-1 ~]#pvscanNo matching physical volumes found
(2)VG管理工具
显示卷组
vgs
vgscan
vgdisplay
创建卷组
vgcreate [卷组名] [物理卷1] [物理卷2] #使用物理卷创建卷组
管理卷组
vgextend [卷组名] [物理卷1] [物理卷2] #使用物理卷扩展卷组
vgreduce [卷组名] [物理卷1] [物理卷2] #从卷组中移除物理卷
删除卷组
vgremove #删除卷组前先卸载卷组上的逻辑卷LV
示例:
[root@c7-1 ~]#pvcreate /dev/sdb1 /dev/sdc1Physical volume "/dev/sdb1" successfully created.Physical volume "/dev/sdc1" successfully created.
[root@c7-1 ~]#vgcreate test /dev/sdb1 /dev/sdc1Volume group "test" successfully created
[root@c7-1 ~]#pvcreate /dev/sdc2Physical volume "/dev/sdc2" successfully created.
[root@c7-1 ~]#vgextend test /dev/sdc2Volume group "test" successfully extended
[root@c7-1 ~]#vgreduce test /dev/sdc2Removed "/dev/sdc2" from volume group "test"
[root@c7-1 ~]#vgremove test Volume group "test" successfully removed
[root@c7-1 ~]#vgs
[root@c7-1 ~]#pvremove /dev/sdb1 /dev/sdc1Labels on physical volume "/dev/sdb1" successfully wiped.Labels on physical volume "/dev/sdc1" successfully wiped.
(3)LV管理工具
显示逻辑卷
lvs
lvscan
lvdisplay
创建逻辑卷
lvcreate -L [逻辑卷大小] -n [逻辑卷名] [卷组名]
删除逻辑卷
lvremove /dev/VG_NAME/LV_NAME
刷新文件系统大小
fsadm [options] resize device [new_size[BKMGTEP]]
xfs_growfs /dev/vgname1/lvname1 #刷新xfs文件系统容量
resize2fs /dev/vgname1/lvname1 #刷新ext4类型文件系统容量
创建 LVM 流程
pvcreate 创建 pv -> vgcreate 创建卷组 -> lvcreate 创建逻辑卷 -> mkfs.xfs lv 格式化-> mount 挂载
删除 LVM 流程
umount 卸载 -> lvremove lv 移出卷组中所有逻辑卷-> vgremove vg 移出卷组-> pvremove 移出 pv
示例:
#扫描主机,识别新添加的硬盘,这样不需要重启主机
echo "- - -" > /sys/class/scsi_host/host0/scan#分区 sdb,sdc,分别创三个区并设置格式为LVM,代号8e
echo -e "n\np\n1\n\n+20G\nn\np\n2\n\n+20G\nn\np\n3\n\n\nt\n1\n8e\nt\n2\n8e\nt\n3\n8e\nw\n" |fdisk /dev/sdb
echo -e "n\np\n1\n\n+20G\nn\np\n2\n\n+20G\nn\np\n3\n\n\nt\n1\n8e\nt\n2\n8e\nt\n3\n8e\nw\n" |fdisk /dev/sdc
partprobe /dev/sdb #重载分区表
partprobe /dev/sdc#创建 PV(物理卷),这里只用两个分区做实验
pvcreate /dev/sdb1 /dev/sdc1#创建 VG(卷组),web_kgc 为自己指定的卷组名称
vgcreate web_kgc /dev/sdb1 /dev/sdc1#创建 lv(逻辑卷),-L指定大小,-n指定逻辑卷名称,在卷组 web_kgc 的基础上创建
lvcreate -L 30G -n njzb web_kgc#格式化逻辑卷
mkfs.xfs /dev/mapper/web_kgc-njzb#挂载
mkdir /kgc_class
echo "/dev/mapper/web_kgc-njzb /kgc_class xfs defaults 0 0" >> /etc/fstab
mount -a#对创建的逻辑卷扩容20G,使用哪些分区进行扩容自行定夺,不需要和我一样
pvcreate /dev/sdc2
vgextend web_kgc /dev/sdc2
lvextend -L +20G /dev/web_kgc/njzb #这里扩容使用 +20G,"+"别漏了
xfs_growfs /dev/mapper/web_kgc-njzb #刷新 xfs 文件系统容量
3.磁盘配额
3.1磁盘配额概述
(1)为什么要做磁盘配额
在 Linux 根分区的磁盘空间或 inode 号耗尽时,Linux 将无法再创建新的文件(包括程序运行的临时文件),从而导致服务程序崩溃,系统无法启动等故障现象。为了避免出现类似问题,可以设置启用磁盘配额功能,对用户在指定文件系统(分区)中使用磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保证系统存储空间的稳定性和持续可用性。
在 Centos 系统中,不同的文件系统使用不同的磁盘配额配置管理工具。例如,xfs 文件系统通过 xfs_quota 工具进行管理;EXT3/4 文件系统通过 quota 工具进行管理。
(2)实现磁盘配额的条件
- 需要Linux内核支持
- 安装 xfsprogs 与 quota 软件包
(3)磁盘配额的特点
- 作用范围:针对指定的文件系统(分区)
- 限制对象:用户帐号、组帐号
- 限制类型:磁盘容量、文件数量
- 限制方法:软限制、硬限制
(4)磁盘配额实现流程
3.2磁盘配额命令管理
quota 命令用于显示磁盘已使用的空间与限制
-g 列出群组的磁盘空间限制
-q 简明列表,只列出超过限制的部分
-u 列出用户的磁盘空间限制
-v 显示该用户或群组,在所有挂入系统的存储设备的空间限制
-i 不查询 autofs 挂载点
-V 显示版本信息#xfs 文件系统通过 xfs_quota 工具进行管理
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=8 ihard=10 wangwu' /kgc_class/
-x: 表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
-c: 表示直接调用管理命令
-u: 指定用户账号对象
-g: 指定组账号对象
bsoft: 设置磁盘容量的软限制数值(默认单位为KB)
bhard: 设置磁盘容量的硬限制数值(默认单位为KB)
isoft: 设置磁盘文件数的软限制数值
ihard: 设置磁盘文件数的硬限制数值#仅限制 lisi 用户的磁盘容量
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M lisi' /opt/
#仅限制文件数
xfs_quota -x -c 'limit -u isoft=4 ihard=5 lisi' /opt/
#查看磁盘容量限制
xfs_quota -c 'quota -uv lisi' /opt/
#查看文件数限制
xfs_quota -c 'quota -i -uv lisi' /opt/#查看所有可用分区的磁盘容量配额使用情况
xfs_quota -x -c 'report -aibh'report常用选项:
-u:对用户查看
-g:对组查看
-a:查看所有可用分区的配额使用报告
-b:查看磁盘容量
-i:查看文件数
-h:单位以KB,MB等形式友好显示
示例:
#下面将用一个详细示例演示磁盘配额的配置方法
yum -y install xfsprogs quota
echo "- - -" > /sys/class/scsi_host/host0/scan
echo -e "n\np\n1\n\n\nt\n1\n8e\nw\n" |fdisk /dev/sdb
echo -e "n\np\n1\n\n\nt\n1\n8e\nw\n" |fdisk /dev/sdc
partprobe /dev/sdb && partprobe /dev/sdc
pvcreate /dev/sdb1 /dev/sdc1
vgcreate abc /dev/sdb1 /dev/sdc1
lvcreate -L 20G -n kgc abc
mkfs.xfs /dev/mapper/abc-kgc
mkdir /kgc_class
mount /dev/mapper/abc-kgc /kgc_class/
umount /kgc_class/
echo "/dev/mapper/abc-kgc /kgc_class xfs defaults,usrquota,grpquota 0 0" >> /etc/fstab
mount -a
useradd wangwu
echo "123456" |passwd --stdin wangwu
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=8 ihard=10 wangwu' /kgc_class/
xfs_quota -x -c 'report -aibh'#验证
chmod 777 /kgc_class
su - wangwu
cd /kgc_class
dd if=/dev/zero of=/kgc_class/test.txt bs=10M count=12 #超出磁盘配额,只复制了100M
touch {1..6}.txt #不能创建,超出磁盘限额
4.总结
作为一名运维工程师,日常工作中肯定少不了与磁盘打交道,逻辑卷管理和磁盘配额是非常实用的技术,学会灵活管理磁盘分区,遇到问题及时解决,事后复盘,对于个人运维能力的提升也大有裨益。
LVM逻辑卷管理与磁盘配额相关推荐
- LVM逻辑卷轴管理和磁盘配额实验
动态卷轴管理和磁盘配额实验 首先先在虚拟机中开启两个硬盘,我在rh6-2中新添加了两个硬盘,分别为sdbc和sdbd: 按照如上方法,再添加1个硬盘. 则添加的磁盘如下所示: 第一步:分区 接下来对s ...
- 文件系统,磁盘配额,数据存储,lvm 逻辑卷管理器
文件系统 文件系统包括:ext2 ext3 (比ext2多一个日志)ext4 iso9660(光盘文件系统) vfat (相当于win ...
- linux设置逻辑卷进不了图形界面,LVM逻辑卷管理器图形界面操作
LVM逻辑卷管理器图形界面操作 LVM有关概念 LVM(Logical Volume Manager)即逻辑卷管理器,它最先是在Linux 2.4内核中被集成到内核中去的,它的出现改变了传统的磁盘空间 ...
- Linux常用命令(八)LVM逻辑卷管理
Linux常用命令(八)LVM逻辑卷管理 一.LVM概述 LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下 ...
- linux系统中的分区与挂载,以及使用LVM逻辑卷管理器管理物理卷,卷组,逻辑卷知识点总结
物理设备的命名规则 在Linux系统中一切都是文件,硬件设备也不例外.既然是文件,就必须有文件名称.系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大 ...
- Android逻辑卷管理LVM,LINUX——LVM逻辑卷管理
LVM: logical volumes manager LVM逻辑卷部署 物理卷->卷组->逻辑卷 第一步:关机添加磁盘:两个磁盘可以构成一个磁盘组. 第二步:查看磁盘 # ls /de ...
- RHEL磁盘阵列与LVM逻辑卷管理器
磁盘阵列和逻辑管理器 本篇博客和各位聊聊关于linux系统中的相关磁盘阵列和逻辑管理器,都是涉及到硬件方面的操作.那我们为什么需要使用LVM以及配置RAID呢? 一般在公司中服务器需要保证数据的安全性 ...
- LVM逻辑卷管理器,部署逻辑卷,扩容逻辑卷,缩小逻辑卷,删除逻辑卷
1.LVM逻辑卷管理器 硬盘设备管理技术虽然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为RAID 磁盘阵列之后,再想修改硬盘分区大小就不容易了.换句话说,当用户想要随着 ...
- Linux如何查看LV的容量情况,LVM 逻辑卷管理器-增大LV容量
LVM 逻辑卷管理器-增大LV的容量 步骤: (1)新增一个8e systemID的分区: (2)用pvcreate命令构建PV: (3)用vgextend命令将PV加入vg_1: (4)用lvres ...
最新文章
- 力扣(LeetCode)刷题,简单+中等题(第34期)
- [导入]我翻译的JavaScript文章
- 经典排序算法 - 鸽巢排序Pigeonhole sort
- boost::unknown_exception用法的测试程序
- linux与windows双系统保持时间同步
- 遍历同辈节电的方法_JQuery遍历DOM节点的方法
- 前端学习(2903):用vite开发环境
- REVERSE-PRACTICE-CTFSHOW-1
- JAVA minaio模型_分布式系统之Java IO模型
- Python笔记-Can’t reconnect until invalid transaction is rolled back
- 一阶电路误差分析_电动涡旋压缩机转子的模态分析及试验研究
- windows系统vbs脚本 提取文件夹中的所有文件名
- 悉尼大学计算机科学专业,悉尼大学计算机科学专业
- img下方出现空隙的原因及解决办法
- xprivacy改IMEI
- SQL SERVER学习记录
- Pandas:1.创建、读和写操作
- python实现证件照更换背景颜色
- VB.NET中LISTVIEW控件点击列首排序问题
- [再寄小读者之数学篇](2014-11-20 计算二重积分)
热门文章
- 好妈妈胜过好老师:一个教育专家16年的教子手记读后感
- GB28181语音对讲
- 软件工程式工作—NQS组历程
- java设置xmlns xsi_xml文件中 xmlns xmlns:xsi 等解释
- 二叉树的基本概念及性质
- 组播技术基础——组播地址
- FFmpeg源代码:avformat_write_header/av_write_frame/av_interleaved_write_frame/av_write_trailer
- 工贸一体型企业外贸管理软件解决方案丨汇信外贸软件
- sa6125平台 机器异常后进入recovery
- 安豆苗:豌豆荚和棒普的混合体 无流量消耗的近场同步软件