Linux LVM逻辑卷
一、LVM的定义
LVM 是 Logical Volume Manager 的简称,译为中文就是逻辑卷管理。它是 Linux 下对硬盘分区的一种管理机制。LVM 适合于管理大存储设备,并允许用户动态调整文件系统的大小。此外,LVM 的快照功能可以帮助我们快速备份数据。LVM 为我们提供了逻辑概念上的磁盘,使得文件系统不再关心底层物理磁盘的概念。
1、逻辑卷管理
动态调整磁盘容量,从而提高磁盘管理的灵活性
/boot分区用于存放引导文件,不能基于LVM创建
2、分区
-
物理卷(Physical Volume,PV):就是真正的 物理硬盘 或 分区
-
卷组(Volume Group,VG):将多个物理卷合起来就组成了卷组。组成同一个卷组的物理卷可以是同一块硬盘的不同分区,也可以是不同硬盘上的不同分区。我们可以把卷组想象为一块逻辑硬盘。
-
逻辑卷(Logical Volume,LV):卷组是一块逻辑硬盘,硬盘必须分区之后才能使用,我们把这个分区称作逻辑卷。逻辑卷可以被格式化和写入数据。我们可以把逻辑卷想象为分区。
3、格式化
4、挂载
二、LVM的管理命令
1、主要命令
| 功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
|---|---|---|---|
| Scan扫描 | pvscan | vgscan | lvscan |
| Create创建 | pvcreate | vgcreate | lvcreate |
| Display显示 | pvdisplay | vgdisplay | lvdisplay |
| Remove删除 | pvremove | vgremove | lvremove |
| Extend扩展 | vgextend | lvextend | |
| Reduce减少 | vgreduce | lvreduce |
逻辑卷:可以动态扩容,加缩容(一般不会缩容,防止数据丢失)
2、创建逻辑卷
(1)首先加一块20G的硬盘,然后刷新一下

(2)先使用fdisk命令将磁盘设备/dev/sdb划分主分区sdb1,然后把分区类型的ID标记号改为8e


(3)创建物理卷,扫描查看是否成功

(4)显示新建的物理卷

(5)创建卷组,卷组名为vg1,并且查看创的卷组

(6)创建逻辑卷,大小10G,逻辑卷名为mysql,再对逻辑卷进行格式化

(7)挂载

三、扩容
(1)扩展卷组,+5G扩完后需要刷新


四、磁盘配额
1、实现磁盘配额的条件
需要Linux内核支持
- 安装xfsprogs与quota软件包
2、启动磁盘配额支持
- 文件系统配额支持
添加userquota、grpquota挂载参数
root@localhost ~]# mount -o remount,usrquota,grpquota /mnt
#添加此磁盘配额属性手动添加的方式,会在下次重新挂载时消失,因此我们可以直接修改 /etc/fstab 文件,将挂载参数写入到配置文件中,这样,即便重新挂载也不会消失,
[root@www ~]# vim /etc/fstab
/dev/sdb1 /mnt xfs defaults,usrquota,grpquota 0 0
[root@www ~]# mount -a
#刷新 /etc/fstab 文件
3、编辑用户和组账号的配额设置
- 使用xfs_quota命令编辑配额设置
- 常用的选项
- -x:表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
- -c:表示直接调用管理命令
- -u:指定用户账号对象
- -g:指定组账号对象
2.限制字段
- bsoft:设置磁盘容量的软限制数值(默认单位为KB)
- bhard:设置磁盘容量的硬限制数值(默认单位为KB)
- isoft:设置磁盘文件数的软限制数值
- ihard:设置磁盘文件数的硬限制数值
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M zhangsan' /opt/ #仅限制磁盘容量
xfs_quota -x -c 'limit -u isoft=4 ihard=5 zhangsan' /opt/ #仅限制文件数
xfs_quota -c 'quota-uv zhangsan' /opt/ #查看zhangsan磁盘:容量限制
xfs_quota -c 'quota -i -uv zhangsan' /opt/ #查看zhangsan文件数限制
4、磁盘配额步骤
1、检查是否已安装xfsprogs和xfs_quota软件包
rpm -q xfsprogs quota
yum install -y xfsprogs quota
2、用支持配额功能的方式挂载文件系统
umount /dev/vgname1/lvname1
mount -o usrquota,grpquota /dev/vgname1/lvname1 /opt#添加挂载参数”usrquota,grpquota"用于增加对用户、组配额功能的支持或者
vim /etc/fstab
/dev/vgname1/lvname1 /opt xfs defults,usrquota,grpquota 0 0
umount /dev/vgname1/lvname1
mount -a #-a选项,将/etc/fstab的所有内容重新加载
3、编辑用户和组账号的配额设置
useradd zhangsan
passwd zhangsan (echo "123456" | passwd --stdin zhangsan)
xfs_quota -x -c "limit -u bsoft=80M bhard=100M isoft=8 ihard=10 zhangsan" /opt
-x:表示启动专家模式,在当前模式下允许配额系统进行修改的所有管理命令可用。
-c:表示直接调用管理命令。
-u:指定用户账号对象
-g:指定组账号对象
bsoft:设置磁盘容量的软限制数值(默认单位为KB)。
bhard:设置磁盘容量的硬限制数值(默认单位为KB)。
isoft:设置磁盘文件数的软限制数值
ihard:设置磁盘文件数的硬限制数值
xfs_quota -x -c 'report -abih' /opt 查看所有分区配额使用情况
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M zhangsan' /opt/ #仅限制磁盘容量xfs_quota -x -c 'limit -u isoft=4 ihard=5 zhangsan' /opt/ #仅限制文件数
xfs_quota -c 'quota-uv zhangsan' /opt/ #查看zhangsan磁盘:容量限制
xfs_quota -c 'quota -i -uv zhangsan' /opt/ #查看zhangsan文件数限制
4、验证磁盘配额功能
chmod 777 /opt
su zhangsan
cd /opt
验证磁盘容量超限
dd if=/dev/zero of=/opt/kgc.txt bs=10M count=12验证磁盘文件数超限
touch {aa,bb,cc,dd,ee,ff}.txt
dd命令是一个设备转换和连续复制命令
"if="指定输入设备或文件
"of="指定输出设备或文件
"bs="指定读取数据块的大小
"count="指定读取数据块的数量
/dev/zero "零"设备文件,可以无限提供空字符。常用来生成一个特定大小的文件
5、查看配额使用情况
xfs_quota -x -c 'report - abih' #查看磁盘配额
report常用选项:
-u:对用户查看
-g:对组查看
-a:查看所有可用分区的配额使用报告
-b:查看磁盘容量
-i:查看文件数
相关文章:
Linux LVM逻辑卷
一、LVM的定义 LVM 是 Logical Volume Manager 的简称,译为中文就是逻辑卷管理。它是 Linux 下对硬盘分区的一种管理机制。LVM 适合于管理大存储设备,并允许用户动态调整文件系统的大小。此外,LVM 的快照功能可以帮助我们快速备份数据。LVM 为…...
Hive生产调优介绍
1.Fetch抓取 Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台。 在hive-default.xml…...
如何理解鼠标点击事件在程序中的处理
在计算机用户界面中,鼠标点击是一个常见的交互动作。那么,当你按下鼠标时,程序是如何知道这个点击是否针对它自己的按钮的呢?本文将探讨鼠标点击事件在操作系统和应用程序之间的传递过程。 鼠标点击事件的捕获 当你按下鼠标按钮…...
基于JWT的用户token验证
1. 基于session的用户验证 2. 基于token的用户身份验证 3. jwt jwt代码实现方式 1. 导包 <dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.18.2</version> </dependency> 2. 在登录…...
通过 conda 安装 的 detectron2
从 detectron2官网 发现预编译的版本最高支持 pytorch1.10、cuda11.3。(2023-12-26) 1、安装 conda 环境。 conda create --name detectron2 python3.8 2、安装 pytorch1.10 和 cuda11.3。 pip3 install torch1.10.0cu113 torchvision0.11.1cu113 torc…...
嵌入式开发——SPI OLED屏幕案例
学习目标 掌握移植方法掌握调试方式学习内容 需求 官方测试示例 选择对应的平台 测试示例中,找到芯片对应平台,我们选择的是STM32F407 修改例程 已知错误修改:...
ibm上电时序(视频内容)
...
如何在Vue.js中使用$emit进行组件通信
Vue.js是一个渐进式JavaScript框架,它以其简洁的数据绑定和组件系统而闻名。在构建具有多个组件层次的Vue应用时,组件间的通信成为一个关键的话题。Vue提供了一种名为$emit的方法,允许子组件向父组件发送消息。本文将详细介绍如何在Vue中使用…...
SPSS相关统计学知识精要回顾-大家都来做做
很多学生问我,学SPSS如果想深入学,那么统计学原理应该掌握到什么样的水准,我想说的是,如果真的想融会贯通,而不是短暂过关,那么应该具备一定的统计学基础,但是统计学知识也不是面面俱到都要去学…...
React Native 从类组件到函数组件
1. 发展趋势 React Native社区中的趋势是朝向使用函数组件(Functional Components)和Hooks的方向发展,而不是使用类组件(Class Components)。 React Native自推出Hooks API以来,函数组件和Hooks的使用变得…...
Redis 快速搭建与使用
文章目录 1. Redis 特性1.1 多种数据类型支持1.2 功能完善1.3 高性能1.4 广泛的编程语言支持1.5 使用简单1.6 活跃性高/版本迭代快1.7 I/O 多路复用模型 2. Redis发展历程3. Redis 安装3.1 源码安装3.1.1 下载源码包3.1.2 解压安装包3.1.3 切换到 Redis 目录3.1.4 编译安装 3.2…...
SpringBoot集成etcd,实现实时监听,实现配置中心
etcd 是一个分布式键值对存储,设计用来可靠而快速的保存关键数据并提供访问。通过分布式锁,leader选举和写屏障(write barriers)来实现可靠的分布式协作。etcd集群是为高可用,持久性数据存储和检索而准备。 以下代码实现的主要业务是…...
JavaScript元素根据父级元素宽高缩放
/*** 等比缩放* param wrap 外部容器* param container 待缩放的容器* returns {{width: number, height: number}}* 返回值:width:宽度, height:高度*/aspectRatio(wrap: any, container: any) {// w h / ratio, h w * ratioconst wrapW wrap.width;const wrapH…...
易趋产品升级(EasyTrack 11_V1.3) | 集成飞书、WPS、个性化设置,增强团队协作和用户体验
企业在项目管理过程中,经常会遇到项目信息同步不及时、沟通障碍以及管理软件使用不便捷等难题,导致团队协作效率低下。这种情况下,如果使用了多个办公软件(如:钉钉、企业微信、项目管理软件等),…...
帆软FineBi V6版本经验总结
帆软FineBi V6版本经验总结 BI分析出现背景 现在是一个大数据的时代,每时每刻都有海量的明细数据出现。这时大数据时代用户思维是:1、数据的爆炸式增长,人们比起明细数据,更在意样本的整体特征、相互关系。2、基于明细的“小…...
03.MySQL的体系架构
MySQL的体系架构 一、MySQL简介二、MySQL的体系架构三、MySQL的内存结构四、MySQL的文件结构 一、MySQL简介 MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,后被Sun公司收购,Sun公司被Oracle…...
随笔笔记-2023
随笔 computed 是基于他们的依赖进行缓存的,。如果要随时计算 new Date().now(因为不是响应式的),那么需要用 computed。 如果不希望用缓存那么就用 methods 字符与字节 1 字节8 位1B8 bit;1KB 1024B,1MB1024KB1024*1024B 编码:…...
2023.12.31 Python 词频统计
练习:使用Python中的filter、map、reduce实现词频统计 样例数据: hello world java python java java hadoop spark spark python 需求分析: 1- 文件中有如上的示例数据 2- 读取文件内容。可以通过readline() 3- 将一行内容切分得到多个单…...
day12--java高级编程:网络通讯
5 Day19–网络通信(Socket通信) 说明: io流是跟本地的文件进行数据的传输,读或者写。网络通信:数据在网络中进行的传输。 本章专题与脉络 1. 网络编程概述 Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持&…...
MongoDB聚合:$out
$out阶段将聚合管道产生的文档写入到指定的集合,从MongoDB4.4开始,支持指定数据库。$out阶段必须放在聚合管道的最后,支持聚合结果任意大小的数据集。 警告: 如果指定的集合已经存在则会被替换。 语法 用法 1: 定数…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
