Linux LVM与磁盘配额

目录

一.LVM概述

LVM

LVM机制的基本概念

PV(Physical Volume,物理卷)

VG(Volume Group,卷组)

LV(Logical Volume,逻辑卷)

二.LVM 的管理命令

三.创建并使用LVM

1.创建并扩容逻辑卷步骤

添加三块新的硬盘,重启主机

先使用fdisk工具将其中的两块磁盘设备/dev/sdb、/dev/sdc划分出主分区sdb1、sdc1,并且把分区类型的ID标记号改为"8e";

创建物理卷

4.创建卷组,卷组名为vg01

5.创建逻辑卷,逻辑卷名为lv01,容量为30GB,生成的文件路径为/dev/vg01/lv01

6.对逻辑卷进行格式化,创建XFS文件系统,并挂载到/data目录下

7.逻辑卷再扩容

 8.扩容逻辑卷

9.刷新XFS文件系统

四.磁盘配额

实现磁盘限额的条件

作用范围

CentOS7 中设置磁盘配额步骤

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

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

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

4.查看磁盘容量和文件数限制

5.查看磁盘限额使用情况


一.LVM概述

LVM

  • Logical Volume Manager,逻辑卷管理能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性
  • ·/boot分区用于存放引导文件,不能基于LVM创建

LVM机制的基本概念

  • PV   (物理卷)
  • VG   (卷组)
  • LV    (逻辑卷)

PV(Physical Volume,物理卷)

  • 物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录 LVM 的属性,并把存储空间分割成默认大小为 4MB 的基本单元(PE),从而构成物理卷。

VG(Volume Group,卷组)

  • 由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷。

LV(Logical Volume,逻辑卷)

  • 从卷组中分割出的一块空间,形成逻辑卷。使用 mkfs 等工具可在逻辑卷上创建文件系统。

二.LVM 的管理命令

  • 建立物理卷:pvcreate 设备名1 [设备名2…](分区或磁盘)
  • 建立卷组:==vgcreate 卷组名 物理卷名1 物理卷名2
  • 建立逻辑卷:lvcreate -L 指定容量大小 -l 指定PV数量 -n 逻辑卷名 卷组名
  • 扩容卷组:vgextend -L +大小 /dev/卷组名
  • 扩容逻辑卷:lvextend -L +大小 /dev/卷组名/逻辑卷名

创建逻辑卷的时候,是从前往后,先创建物理卷,在创建卷组,最后创建逻辑卷;

删除逻辑卷的时候,是从后往前,先删除逻辑卷,在删除卷组,最后删除物理卷。

三.创建并使用LVM

1.创建并扩容逻辑卷步骤

  1. 添加三块新的硬盘,重启主机

先使用fdisk工具将其中的两块磁盘设备/dev/sdb、/dev/sdc划分出主分区sdb1、sdc1,并且把分区类型的ID标记号改为"8e";

fdisk /dev/sdb /dev/sdc
n
#第一次回车,创建主分区
#第二次回车,选择分区号,默认为1
#第三次回车,填写起始扇区,默认为2048
#第四次回车,填写终止扇区,默认为41943039
t 
8e  #更改分区类型为'8e',Linux LVM类型
w fdisk -l

3.创建物理卷

pvcreate /dev/sdb1 /dev/sdc1
pvscan  #物理卷由分区/dev/sdc1和/dev/sdb1构成
pvdisplay

4.创建卷组,卷组名为vg01

vgcreate vg01 /dev/sd[bc]1    #在物理卷[/dev/sdb1 /dev/sdc1]基础上创建卷组vg01
vgdisplay   #已成功创建卷组vg01

5.创建逻辑卷,逻辑卷名为lv01,容量为30GB,生成的文件路径为/dev/vg01/lv01

lvcreate -L 10G -n lv01 vg01 #在卷组vg01基础上创建逻辑卷lv01
lvdisplay 

6.对逻辑卷进行格式化,创建XFS文件系统,并挂载到/data目录下

mkfs -t xfs /dev/vg01/lv01   #将新创建的逻辑卷/dev/vg01/lv01格式化为xfs类型
mkdir /data
mount /dev/vg01/lv01 /data   #将xfs文件系统挂载到/lll目录下
df

7.逻辑卷再扩容

  • 先将可以进行扩容的设备进行分区,然后再扩容
  • 创建物理卷,再扩展卷组
  • pvcreate /dev/sdd1  #为分区/dev/sdd1创建物理卷
    vgextend vg01 /dev/sdd1  #将/dev/sdd1作为卷组abc的扩展卷组
    vgdisplay

 8.扩容逻辑卷

lvextend -L +5G /dev/vg01/lv01 #将逻辑卷/dev/vg01/lv01再扩容20G,+号代表再原来基础上扩展增加20G大小,不带+号代表指定大小

9.刷新XFS文件系统

df 
/dev/vg01/lv01 xfs          此处显示并未扩容成功
xfs_growfs /dev/vg01/lv01   刷新XFS文件系统容量df 
/dev/vg01/lv01 xfs           再次查看已经扩容成功lsblk               查看系统中所有可用块设备信息

四.磁盘配额

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

实现磁盘限额的条件

  • 需要Linux内核支持
  • 安装xfsprogs与quota软件包Linux 磁盘限额的特点

作用范围

  • 针对指定的文件系统(分区)
  • 限制对象:用户帐号、组帐号
  • 限制类型:磁盘容量、文件数量
  • 限制方法:软限制、硬限制

CentOS7 中设置磁盘配额步骤

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

rpm -q xfsprogs quota
yum install -y xfsprogs quota

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

umount /data/  #卸载原先没有添加配额参数的挂载
dfmount -o usrquota,grpquota /dev/vg01/lv01 /data #添加挂载参数"usrquota,grpquota"用于增加对用户、组配额功能的支持###或者采用下面永久挂载文件系统的方式
vim /etc/fstab  #永久添加挂载参数,增加对用户和组配额功能的支持
/dev/vg01/lv01    /data     xfs    defaults,usrquota,grpquota    0  umount /dev/vg01/lv01    #卸载挂载目录
mount -a    #-a选项,将/etc/fstab的所有内容重新加载
df            #查看是否挂载成功
mount             #查看配额参数设置
/dev/mapper/vg01-lv01 on /data type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)

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

常用知识点

  • #同时限制磁盘容量和文件数
  • xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=8 ihard=10 zhangsan' /data/ #设置对zhangsan用户的配额要求
  • -x:表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用。
  • -c:表示直接调用管理命令。
  • -u:指定用户账号对象
  • -g:指定组账号对象
  • -v:显示详细信息
  • bsoft:设置磁盘容量的软限制数值(默认单位为KB)。
  • bhard:设置磁盘容量的硬限制数值(默认单位为KB)。
  • isoft:设置磁盘文件数的软限制数值。
  • ihard:设置磁盘文件数的硬限制数值。
  • #仅限制磁盘容量
  • xfs_quota -x -c 'limit -u bsoft=80M bhard=100M zhanqsan' /opt/
  • #仅限制文件数
  • xfs_quota -x -c 'limit -u isoft=4 ihard=5 zhangsan' /opt/
useradd ZS
echo '123' |passwd --stdin LS
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=8 ihard=10 ZS' /lll/
设置对zhangsan用户的配额要求

4.查看磁盘容量和文件数限制

chmod 777 /lll
ll /lll
su - ZS
cd /lll
dd if=/dev/zero of=./test1.txt bs=10M count=12
ll -h
exit


su - ZS
cd /lll
touch file{1..10}
ls -h
touch file11

5.查看磁盘限额使用情况

xfs_quota -x -c 'report -abih'

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

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

相关文章

React + Ts + Vite + Antd 项目搭建

1、创建项目 npm create vite 项目名称 选择 react 选择 typescript 关闭严格模式 建议关闭严格模式,因为不能自动检测副作用,有意双重调用。将严格模式注释即可。 2、配置sass npm install sass 更换所有后缀css为sass vite.config.ts中注册全局样式 /…

数据结构进阶之堆

今天我们学习的是数据结构里面的堆,大家先看看我们今天要学习的内容 一、堆概念及认识 在学习堆之前我们得先明白完全二叉树是什么样子,因为堆是依据完全二叉树的结构来实现的,所以在这里我先告诉大家完全二叉树的是什么,如下图…

【C++】力扣OJ题:构建杨辉三角

Hello everybody!今天给大家介绍一道我认为比较经典的编程练习题&#xff0c;之所以介绍它是因为这道题涉及到二维数组的构建&#xff0c;如果用C语言动态构建二维数组是比较麻烦的&#xff0c;而用C中STL的vector<vector<int>>,就可以立马构建出来&#xff0c;这也…

Jackson 2.x 系列【25】Spring Boot 集成之起步依赖、自动配置

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址&#xff1a;https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 前言2. 起步依赖3. 自动配置3.1 JacksonPrope…

【图文教程】在PyCharm中导入Conda环境

文章目录 &#xff08;1&#xff09;在Anaconda Prompt中新建一个conda虚拟环境&#xff08;2&#xff09;使用PyCharm打开需要搭建环境的项目&#xff08;3&#xff09;配置环境 &#xff08;1&#xff09;在Anaconda Prompt中新建一个conda虚拟环境 conda create - myenv py…

算法|基础算法|高精度算法

基础算法|位运算 1.高精度加法 2.高精度减法 3.高精度乘法 4.高精度除法 心有猛虎&#xff0c;细嗅蔷薇。你好朋友&#xff0c;这里是锅巴的C\C学习笔记&#xff0c;常言道&#xff0c;不积跬步无以至千里&#xff0c;希望有朝一日我们积累的滴水可以击穿顽石。 高精度加法 …

cpu调度与IO

内存中有A、B两个程序&#xff0c;CPU先依照顺序执行A&#xff0c;当CPU执行A的IO指令后&#xff0c;向磁盘发送IO请求&#xff0c;程序A进入阻塞队列中&#xff0c;等待IO过程结束。CPU此时执行程序B。DMA将磁盘中的数据copy到内存A的buff中&#xff0c;此时操作系统获取到IO任…

想开发多语言同城送餐app?这10个关键问题需详解

在当今数字化时代&#xff0c;多语言同城送餐app开发成为了引人注目的商业机会。随着人们生活节奏的加快&#xff0c;外卖行业逐渐成为人们生活中不可或缺的一部分。如果您计划开发一款多语言同城送餐app&#xff0c;必须要谨慎考虑一些关键问题&#xff0c;才能确保项目的成功…

Docker Container (容器) 常见命令

Docker 容器的生命周期 什么是容器&#xff1f; 通俗地讲&#xff0c;容器是镜像的运行实体。镜像是静态的只读文件&#xff0c;而容器带有运行时需要的可写文件层&#xff0c;并且容器中的进程属于运行状态。即容器运行着真正的应用进程。容 器有初建、运行、停止、暂停和删除…

stm32实现hid鼠标

启动CubelMX 选择芯片&#xff08;直接输入stm32f103zet6) 设置时钟 如下图 usb设置 配置usb设备 调试端口设置 配置时钟 项目输出设置 打开工程&#xff08;后记&#xff1a;此工程含有中文不能编译通过) 配置项目 配置调试器 编译无法通过 删除路径中的中文&#xff0c;以及…

飞桨Ai(二)paddle使用CPU版本可以正常识别,切换为GPU版本时无法识别结果

一、问题描述&#xff1a; 刚开始用paddle的CPU版本&#xff0c;对训练好的模型进行推理&#xff0c;正常识别出想要的结果后来尝试使用paddle的GPU版本&#xff0c;然后发现识别出来是空的 二、系统思路&#xff1a; 最终系统环境如下&#xff1a; 系统&#xff1a;win10 …

CSS3 max/min-content及fit-content、fill-available值的详解

c3中对width的值多了几个值&#xff1a;fill-available, max-content, min-content, 以及fit-content。 1.width:fill-available 我们在页面中扔一个没有其他样式的<div>元素&#xff0c;则&#xff0c;此时&#xff0c;该<div>元素的width表现就是fill-availabl…

Towards IP Geolocation Using Delay and TopologyMeasurements(TBG)(2006年)

下载地址:Towards IP geolocation using delay and topology measurements | Proceedings of the 6th ACM SIGCOMM conference on Internet measurement 被引次数:492 Katz-Bassett E, John J P, Krishnamurthy A, et al. Towards IP geolocation using delay and topology …

LVM与磁盘配额

目录 一.LVM概述 1.LVM &#xff08;Logical Vokume Manager &#xff09;逻辑卷管理 2.LVM的管理命令 3.创建并使用LVM操作步骤 二.磁盘配额概述 1.实现磁盘限额的条件 2.Linux磁盘限额的特点 3.实现磁盘配额的步骤 三.总结&#xff1a; 一.LVM概述 1.LVM &#xff…

(BERT蒸馏)TinyBERT: Distilling BERT for Natural Language Understanding

文章链接&#xff1a;https://arxiv.org/abs/1909.10351 背景 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;预训练语言模型&#xff08;如BERT&#xff09;通过大规模的数据训练&#xff0c;已在多种NLP任务中取得了卓越的性能。尽管BERT模型在语言理解和生成…

开源无需root!一款功能强悍的手机电脑同屏工具,14K star拿捏了【文末带项目源码】

现在使用最常用的设备就是手机和电脑了&#xff0c;经常会需要将手机屏幕镜像到电脑&#xff0c;或者是用电脑来操控手机等。 今天给大家安利一款功能强悍好用的工具 - QtScrcpy。 简介 QtScrcpy 是一个强大的安卓手机实时投屏到电脑的开源项目&#xff0c;可以将你的安卓手机…

ubuntu 设置 root 用户密码,创建新用户并赋权限

ubuntu 设置 root 用户密码&#xff0c;创建新用户并赋权限 在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用&#xff0c; 安装 Ubuntu-20.04 系统&#xff0c;新安装好的系统&#xff0c;设置用户名密码时&#xff0c; root 用户密码默认为空&#xff0c;这时需要设置…

jsoncpp 编译和使用

原文链接&#xff1a; jsoncpp的编译和使用 jsoncpp 编译出库文件 1.从github仓库下载 2.下载 cmake 工具 3.生成VS项目 4.编译得到需要的库文件 jsoncpp 的使用 查看原文

MySQL 基础使用

文章目录 一、Navicat 工具链接 Mysql二、数据库的使用1.常用数据类型2. 建表 create3. 删表 drop4. insert 插入数据5. select 查询数据6. update 修改数据7. delete 删除记录truncate table 删除数据 三、字段约束字段1. 主键 自增delete和truncate自增长字段的影响 2. 非空…

idea运行报错:启动命令过长

JAVA项目&#xff0c;运行的时候报错 Command line is too long. Shorten the command line via JAR manifest or via a classpath file and rerun老问题了&#xff0c;记录一下 解决办法&#xff1a; 1、Edit Configurations 2、点击Modify options设置&#xff0c;勾选S…