LVM与磁盘配额

文章目录

  • LVM与磁盘配额
    • 一、LVM概述
      • 1、LVM概述
      • 2、LVM机制的基本概念
        • 2.1 PV(Physical Volume,物理卷)
        • 2.2 VG(Logical Volume,逻辑卷)
        • 2.3 LV(Logical Volume,逻辑卷)
    • 二、LVM 管理命令
      • 1、主要命令
      • 2、LVM命令详解
        • 2.1 pvcreate命令
        • 2.2 pvdisplay命令
        • 2.3 vgcreate命令
        • 2.4 vgdisplay命令
        • 2.5 vgextend命令
        • 2.6 lvcreate 命令
        • 2.7 lvdisplay 命令
        • 2.8 lvextend命令
      • 3、建逻辑卷的步骤
        • 3.1 建立逻辑卷命令步骤
        • 3.2 建立逻辑卷命令步骤(图文详解)
    • 三、设置磁盘配额
      • 1、磁盘配额的概述
        • 1.1 实现磁盘配额的条件
        • 1.2 Linux磁盘限额的特点
      • 2、磁盘配额步骤
    • 四、CentOS 7 中设置磁盘配额的步骤
      • 1、检查是否已经安装 xfsprogs 和xfs_quote软件包
      • 2、以支持配额功能的方式挂载文件系统
        • 以支持配额功能的方式挂载文件系统(图文详解)
      • 3、编辑用户和组账号的配额设置
        • 3.1 useradd zhangsan 创建zhangsan用户
        • 3.2 使用xfs_quota命令编辑配置设置
        • 3.3 常用选项
      • 4、限制命令
        • 4.1 仅限制磁盘容量
        • 4.2 仅限制文件数
        • 4.3 查看zhangsan磁盘容量限制
        • 4.4 查看zhangsan 文件数限制
      • 5、验证磁盘配额功能
      • 6、查看磁盘配额使用情况
        • 6.1 格式
        • 6.2 常用选项

LVM与磁盘配额

一、LVM概述

1、LVM概述

  • LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高了磁盘管理的灵活性

2、LVM机制的基本概念

2.1 PV(Physical Volume,物理卷)
  • 物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区快,用于记录LVM的属性,并把储存空间分割成默认大小为4MB的基本单元(PE),从而构成物理卷
2.2 VG(Logical Volume,逻辑卷)
  • 由一个或多个物理卷组成一个整日,即称为卷组,在卷组中可以动态的添加或移除物理卷
2.3 LV(Logical Volume,逻辑卷)
  • 逻辑卷建立在卷组上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从卷组中分割出的一块空间,作为用户创建文件系统的基础,这就是逻辑卷。使用 mkfs等工具可在逻辑卷上穿件文件系统

二、LVM 管理命令

1、主要命令

img

2、LVM命令详解

2.1 pvcreate命令
  • 概述:pvcreate用于将整个分区或整个硬盘转换成物理卷,主要是添加LVM属性信息并且划分PE存储单位。

  • 格式:pvcreate 设备名1 设备名2…

    pvcreate /dev/sd[bc]:将/dev/sd[bc]转换成物理卷

    [root@localhost ~]# pvcreate /dev/sd[bc]Physical volume "/dev/sdb" successfully created.Physical volume "/dev/sdc" successfully created.
    
2.2 pvdisplay命令
  • 概述:显示物理卷的详细信息,需要使用指定的物理卷作为命令参数,默认时将显示所有的物理卷信息

  • pvdisplay :显示所有物理卷信息

    pvdisplay /dev/sd[bc] :显示/dev/sd[bc]物理卷信息

    [root@localhost ~]# pvdisplay /dev/sd[bc]--- Physical volume ---PV Name               /dev/sdbVG Name               abcPV Size               20.00 GiB / not usable 4.00 MiBAllocatable           yesPE Size               4.00 MiBTotal PE              5119Free PE               5119Allocated PE          0PV UUID               pAuvcd-W3W9-TgDc-lB0e-iyAP-eBaT-feUrRa--- Physical volume ---PV Name               /dev/sdcVG Name               abcPV Size               20.00 GiB / not usable 4.00 MiBAllocatable           yesPE Size               4.00 MiBTotal PE              5119Free PE               5119Allocated PE          0PV UUID               mYT4wR-iVxz-DlaH-WESx-UVAf-w0NM-gHNiOQ
    
2.3 vgcreate命令
  • 概述:用于将一个或多个物理卷创建为一个卷组
  • 格式:vgcreate 卷组名 物理卷名1 物理卷名2
  • vgcreate abc /dev/sdb /dev/sdc 用单个物理卷创建组名abc的卷组

​ vgcreate abc /dev/sd[bc] 通配符方法创建组名abc的卷组

[root@localhost ~]# vgcreate abc /dev/sd[bc]Volume group "abc" successfully created
2.4 vgdisplay命令
  • 概述:显示系统中各卷组的信息,需要指定卷组名作为指定参数,若不指定卷组名,则显示所有卷组参数
  • vgdisplay :显示所有卷组信息

​ vgdisplay abc:显示卷组名为abc的参数信息

[root@localhost ~]# vgdisplay  abc--- Volume group ---VG Name               abcSystem IDFormat                lvm2Metadata Areas        2Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                2Act PV                2VG Size               39.99 GiBPE Size               4.00 MiBTotal PE              10238Alloc PE / Size       0 / 0Free  PE / Size       10238 / 39.99 GiBVG UUID               lpJbbK-iM0t-ofaa-8ndh-bLC1-OOak-taAwzp
2.5 vgextend命令
  • 概述:用于扩展磁盘空间。当创建了新的物理卷,并需要将它添加到已有卷组中,就使用该命令

  • 格式:vgextend 卷组名 新物理卷

    vgextend abc /dev/sdd1:将新物理卷/dev/sdd1扩加值卷组abc中

2.6 lvcreate 命令
  • 用于从指定的卷组中分割空间,创建新的逻辑卷,需要指定逻辑卷的大小名称及所在的卷组作为参数

  • 格式:lvcreate -L 逻辑卷容量大小 -n 逻辑卷名 卷组名

    lvcreate -n mysql -L 10G abc:从卷组abc中划出10G创建名为mysql的逻辑卷

[root@localhost ~]# lvcreate -n mysql -L 10G abcLogical volume "mysql" created.
[root@localhost ~]# ll /dev/abc/mysql
lrwxrwxrwx. 1 root root 7 1228 15:14 /dev/abc/mysql -> ../dm-2
[root@localhost ~]# ll /dev/mapper/abc-mysql
lrwxrwxrwx. 1 root root 7 1228 15:14 /dev/mapper/abc-mysql -> ../dm-2
2.7 lvdisplay 命令
  • 概述:用于显示逻辑卷的详细信息,可使用卷组名作为参数,以显示该卷组中的所有逻辑卷信息,若不指定卷组名,则显示全部逻辑卷信息

  • 格式:lvdisplay 卷组名 逻辑卷名:显示卷组中逻辑卷信息

    lvdisplay: 显示所有逻辑卷信息

    lvdisplay /dev/abc/mysql

    [root@localhost ~]# lvdisplay /dev/abc/mysql--- Logical volume ---LV Path                /dev/abc/mysqlLV Name                mysqlVG Name                abcLV UUID                dqDsSG-gWYB-Fi8g-q8sp-dmBr-2Dzb-QaHIg2LV Write Access        read/writeLV Creation host, time localhost.localdomain, 2023-12-28 15:14:32 +0800LV Status              available# open                 0LV Size                10.00 GiBCurrent LE             2560Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           253:2
    
    2.8 lvextend命令
  • 概述:动态扩展逻辑卷的空间,可以从所在卷组中分割额外的空间进行扩展,只需指定增加的容量大小及逻辑卷文件位置即可,前提是该卷组中还有未分配的磁盘空间,否则需要先扩充卷组

  • 格式:lvextend -L +大小 /dev/卷组名/逻辑卷名

    lvextend -L +10G /dev/abc/mysql :将abc卷组中剩余的空间给mysql逻辑卷中新增10G ,最后可lvdisplay查看一下lv扩展是否成功

[root@localhost ~]# lvextend -L +10G /dev/abc/mysqlSize of logical volume abc/mysql changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents).Logical volume abc/mysql successfully resized.
[root@localhost ~]# lvdisplay  /dev/abc/mysql--- Logical volume ---LV Path                /dev/abc/mysqlLV Name                mysqlVG Name                abcLV UUID                dqDsSG-gWYB-Fi8g-q8sp-dmBr-2Dzb-QaHIg2LV Write Access        read/writeLV Creation host, time localhost.localdomain, 2023-12-28 15:14:32 +0800LV Status              available# open                 0LV Size                20.00 GiB(空间增加10G)Current LE             5120Segments               2Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           253:2

注:如果未生效可以使用刷新命令

命令:xfs_growfs /dev/卷组名/逻辑卷名——刷新xfs文件系统容量

​ resize2fs /dev/卷组名/逻辑卷名——刷新ext4文件系统容量

3、建逻辑卷的步骤

  • 类似于分区
  1. 物理卷:将硬盘转化成pe
  2. 卷组:将pr分组,一个逻辑卷只可以用一个组里面的pe
  3. 逻辑卷:从卷组取pe,类似于分区的一个空间

需要使用的话,还要进行格式化和挂载的步骤

3.1 建立逻辑卷命令步骤
lvm如果使用分区,要修改分区类型为(t)8e,pvcreate  /dev/sdb1  /dev/sdc   #建立物理卷(可以省略)vgcreate  vg1  /dev/sdb1  /dev/sdc   #建立卷组取名vg1,并将/dev/sdb1  /dev/sdc 加入卷组lvcreate  -n  mysql -L 10G  vg1   #建立逻辑卷,-n指定逻辑卷的名字,-L指定大小,pe是从vg1卷组中来/dev/vg1/mysql 或者 /dev/mapper/vg1-mysql   #新建立逻辑卷的名字假设卷组空间不够,先扩容卷组vg1
vgextend 卷组名 设备名(如:vgextend vg1 /dev/sdd)  #扩容卷组vg1再扩容逻辑卷
lvextend  -L 指定大小 逻辑卷名(如:lvextend  -L  +5G  /dev/vg1/mysql) #扩容逻辑卷xfs格式:xfs_growfs /mnt  或者
lvextend  -L  +5G  /dev/vg1/mysql  -r(扩容逻辑卷时,加选项-r,会立马同步文件系统)  #同步文件系统
-r:立马同步文件系统
3.2 建立逻辑卷命令步骤(图文详解)

image-20231228161555021

image-20231228162803907

image-20231228163142719

image-20231228164946765

三、设置磁盘配额

  • 当Linux根分区的磁盘空间耗尽时,Linux操作系统将无法再建立新的文件, 同时也可能会出现服务程序崩溃、系统无法启动等故障。
  • 为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间文件、数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性。在CentOS系统中,不同的文件系统使用不同磁盘配额配置管理工具。 例如,XFS文件系统通过xfs_quota工具进行管理; EXT3/4 文件系统通过 quota 工具进行管理。

1、磁盘配额的概述

1.1 实现磁盘配额的条件
  • 需要Linux内核支持
  • 安装xfsprogs与quote软件包
1.2 Linux磁盘限额的特点
  • 作用范围:针对指定的文件系统(分区)
  • 限制对象:用户账号和组账号
  • 限制类型:磁盘容量、文件数量
  • 限制方法:软限制、硬限制(软限制:发出警告提示;硬限制:直接中断执行)

2、磁盘配额步骤

  • 步骤1:以支持配额功能的方式挂载文件系统
  • 步骤2:编辑用户和组账号的配额设置
  • 步骤3:验证磁盘配额功能
  • 步骤4、查看磁盘配额使用情况

四、CentOS 7 中设置磁盘配额的步骤

1、检查是否已经安装 xfsprogs 和xfs_quote软件包

rpm -q xfsprogs(安装)  #检查是否已经安装xfsprogs
rqm -q quota   #检查是否已经安装quote
yum install -y xfsprogs quota   #如果未安装使用yum install命令安装即可
[root@localhost ~]# rpm -q xfsprogs
xfsprogs-4.5.0-12.el7.x86_64
[root@localhost ~]# rpm -q quota
quota-4.01-19.el7.x86_64

2、以支持配额功能的方式挂载文件系统

  • 添加usrquota、grpquota 挂载参数

  • 格式:mount -o usrquota,grpquota /dev/卷组名/逻辑卷名

    [root@localhost ~]# mount -o usrquota,grpquota /dev/abc/mysql /mnt
    [root@localhost ~]# df -Th
    文件系统                类型      容量  已用  可用 已用% 挂载点
    /dev/mapper/centos-root xfs        50G  3.5G   47G    7% /
    devtmpfs                devtmpfs  897M     0  897M    0% /dev
    tmpfs                   tmpfs     912M     0  912M    0% /dev/shm
    tmpfs                   tmpfs     912M  9.2M  903M    2% /run
    tmpfs                   tmpfs     912M     0  912M    0% /sys/fs/cgroup
    /dev/sda1               xfs       5.0G  179M  4.9G    4% /boot
    tmpfs                   tmpfs     183M  4.0K  183M    1% /run/user/42
    tmpfs                   tmpfs     183M   48K  183M    1% /run/user/0
    /dev/sr0                iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
    /dev/mapper/abc-mysql   xfs        20G   33M   20G    1% /mnt
    
以支持配额功能的方式挂载文件系统(图文详解)

image-20231228173624094

image-20231228173759815

3、编辑用户和组账号的配额设置

3.1 useradd zhangsan 创建zhangsan用户
  • passwd zhangsan
3.2 使用xfs_quota命令编辑配置设置
  • 格式:xfs_quota -x -c ‘limit -u bsoft=N bhard=N isoft=N ihard=N 用户名’ 挂载点
3.3 常用选项
  • xfs_quota -x -c ‘limit -u bsoft=80M bhard=100M isoft=40 ihard=50 zhangsan’ /opt/ /opt为指定磁盘配额的分区
-x∶ 表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
-c∶ 表示直接调用管理命令
-u∶ 指定用户账号对象
-g∶ 指定组账号对象
bsoft∶ 设置磁盘容量的软限制数值(默认单位为 KB)
bhard∶ 设置磁盘容量的硬限制数值 (默认单位为 KB)
isoft∶设置磁盘文件数的软限制数值
ihard∶设置磁盘文件数的硬限制数值

4、限制命令

4.1 仅限制磁盘容量
  • xfs_quota -x -c ‘limit -u bsoft=80M bhard=100M zhangsan’ /opt/
4.2 仅限制文件数
  • xfs_quota-x -c ‘limit -u isoft=4 ihard=5 zhangsan’ /opt/
4.3 查看zhangsan磁盘容量限制
  • xfs_quota -c ‘quota -uv zhangsan’ /opt/
4.4 查看zhangsan 文件数限制
  • xfs_quota -c ‘quota -iuv zhangsan’ /opt/

5、验证磁盘配额功能

chmod 777 挂载点
su 用户名
cd 挂载点
dd if=/dev/zero of=挂载点/test.txt bs=10M, count=12 #验证磁盘容量超限
touch {1..20}.txt    验证磁盘文件数超限dd命令是一个设备转换和连续复制命令
“if=”          指定输入设备(或文件)
“of=”         指定输出设备(或文件)
“bs=”         指定读取数据块大小
“count=”   指定读取数据块的数量
/dev/zero “零”设备文件,可以无限的提取空字符,常用来生成一个特定大小的文件

6、查看磁盘配额使用情况

6.1 格式
  • xfs_quota -x -c ‘report 选项’
6.2 常用选项
-a  代表所有用户账号和组账号
-b  代表容量
-i  代表文件数量
-h  代表人性化显示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android移动端超分辨率调研(未完成 目前自用)

作用 图片加载是目前几乎所有的APP都具备的基础能力,在节省服务商的传输带宽之外,也可以降低用户消费端流量的消耗,提升用户的加载速度。帮助每一个产品用更低的成本达到更好的图片加载效果。 效果 另一方面 用TensorFlow实现的图像极度压…

Nginx配置反向代理

代理通常用于在多个服务器之间分配负载,无缝显示来自不同网站的内容,或通过 HTTP 以外的协议将处理请求传递给应用程序服务器。 将请求传递到代理服务器 当 NGINX 代理请求时,它会将请求发送到指定的代理服务器,获取响应&#x…

大语言模型发展史

前言 2023年可谓是生成式AI元年,大语言模型从崭露头角到锋芒毕露,已然成为人工智能领域的关键推动力。这一创新性的技术不仅在自然语言处理领域崭露头角,更深刻地改变了我们对人机交互、智能助手和信息处理的认知。那么大语言模型的发展历程…

HarmonyOS云开发基础认证【题库答案】

HarmonyOS应用开发者基础认证【题库答案】 HarmonyOS应用开发者高级认证【题库答案】 一、判断题 应用架构的演进依次经历了微服务架构、单体架构、Serverless架构等阶段。(错)鸿蒙应用可以使用Arkts开发(对)认证服务在绑定微信账…

如何使用ArcGIS Pro自动矢量化建筑

相信你在使用ArcGIS Pro的时候已经发现了一个问题,那就是ArcGIS Pro没有ArcScan,在ArcGIS Pro中,Esri确实已经移除了ArcScan,没有了ArcScan我们如何自动矢量化地图,从地图中提取建筑等要素呢,这里为大家介绍…

基于 eBPF 构建下一代智能可观测系统

作者:梵登、千陆 本文基于 KubeCon China 2023 分享整理 我们今天分享的主题是基于 eBPF 构建下一代智能可观测系统。 在开始之前呢,我先介绍一下我们自己。我是刘恺,花名是千陆,目前是阿里云 ARMS K8s 监控子产品的负责人。这…

UWB高精度人员定位系统源码,全方位护航安全生产

定位管理系统使用UWB定位技术,通过在厂区安装定位基站,为人员或设备佩戴定位标签的形式,实现人员精准实时定位。可以实现人员、车辆物资实时定位、工作考勤、电子围栏、历史轨迹回放、巡检巡查、物资盘点、路径规划、三维显示等,以…

NLP 自然语言处理实战

自然语言处理 ( Natural Language Processing, NLP) 是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,用于分析理解机器与人之间的交互,常用的领域有:实体识别、文本纠错…

Conda:Python环境管理的瑞士军刀

在数据科学和机器学习的世界中,管理各种库和依赖关系的重要性不容忽视。Conda 就是为此而生的强大工具。本文将深入探讨 Conda 的简介、功能以及使用示例,帮助你更好地理解和使用这个工具。 Conda 简介 Conda 是一个开源的包管理系统和环境管理系统&am…

惟客数据昆仑-开发云成功开源了!让研发更简单高效

​近期,WakeData惟客数据产品——昆仑-开发云成功开源。 今年4月,惟客数据完成了新一轮产品能力升级,与战略伙伴联合研发具有私有化部署能力的行业大模型 WakeMind 。 昆仑-开发云在可视化领域建模的基础上也引入了 WakeMind 的能力&#x…

如何在Docker环境下安装火狐浏览器并结合内网穿透工具实现公网访问

文章目录 1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox Firefox是一款免费开源的网页浏览器,由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏…

【力扣题解】P94-二叉树的中序遍历-Java题解

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P94-二叉树的中序遍历-Java题解🌏题目描述💡题解&#x1f30f…

鸿蒙原生应用/元服务开发-Stage模型能力接口(十)下

ohos.app.form.FormExtensionAbility (FormExtensionAbility) 系统能力:SystemCapability.Ability.Form 示例 import FormExtensionAbility from ohos.app.form.FormExtensionAbility; import formBindingData from ohos.app.form.formBindingData; import formP…

Miniconda 3 | 出发,探索Python

介绍 Miniconda 是 Anaconda 的精简版本,是一个轻量级的 Python 包管理工具和环境管理工具。 优势和功能主要包括: 轻量级和快速安装: Miniconda 相比 Anaconda 更小巧,只包含最基本的工具和包管理功能。安装速度更快&#xff0c…

端口+目录扫描

目录 前言: 基础知识: 状态码: 2XX: 3XX: 4XX: 5XX: 消息头: 请求头: 响应头: 目录扫描: 接口扫描: 主机存活扫描: I…

网页设计期末 建筑博物馆首页 HTML+CSS+js 完整代码(轮播图+瀑布流)

文章目录 前言:完整代码在总结处跳转!!! 描述:结果展示:部分代码演示:(完整代码在总结处跳转)总结:(完整代码在此处跳转) 前言&#x…

C++面试宝典第11题:两数之和

题目 给定一个整数数组和一个目标值,请在该数组中找出和为目标值的那两个整数,并返回他们的数组下标,要求时间复杂度为O(n)。可以假设每种输入只会对应一个答案,注意:不能重复利用这个数组中同样的元素。 解析 这道题主要考察应聘者对算法时间复杂度和空间复杂度的理解,时…

【JVM篇】Java是如何实现平台无关的?

Java是如何实现平台无关的? ✔️什么是平台无关性✔️平台无关性的实现✔️Java虚拟机✔️字节码✔️Java语言规范 ✔️扩展知识仓✔️平台无关性的好处✔️ 有哪些语言实现了平台无关?✔️Java中基本数据类型的大小都是确定的吗? ✔️什么是平台无关性 平台无关性就是一种语…

Net6 Core webApi发布到IIS

Net6 Core Api发布到IIS不同于webapi,依赖框架不同,配置也移至项目内Program.cs 一、发布到指定文件夹和IIS,不过注意IIS应用程序池选择的是 “无托管代码“ 在IIS管理器中点击浏览,访问接口路径报500.19,原因是所依赖…

机器学习之K-means聚类

概念 K-means是一种常用的机器学习算法,用于聚类分析。聚类是一种无监督学习方法,它试图将数据集中的样本划分为具有相似特征的组(簇)。K-means算法的目标是将数据集划分为K个簇,其中每个样本属于与其最近的簇中心。 以下是K-means算法的基本步骤: 选择簇的数量(K值)…