Linux LVM分区相关知识
Linux分区有多种方式,一种是LVM格式的比较方便,另一种是标准分区扩容比较麻烦,麻烦的事情那么出错的概率也就越大,所以建议生产环境上分区都使用LVM格式硬盘分区。
一. 什么叫LVM?
LVM全称叫「Logical Volume Manage」,可以允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小,允许在多个物理设备间重新组织文件系统。
LVM可以弹性的更改LVM的容量,pe是lvm中存储最小的存储单位,类似与我们平常说的1K。
它可以通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量,通过这样的方式来实现动态调整分区的大小,来达到更小风险的动态分区扩容与缩容。

二. LVM基本特性:
PV物理卷
LVM基本特性,即可以通过插件CLVM,实现群集逻辑卷管理
LV逻辑卷(逻辑卷管理:会在物理存储上生成抽象层,以便创建逻辑存储卷,方便设备命名)(下面是逻辑卷的分类)
Linear 线性卷(这是默认的LVM形式,即按顺序占用磁盘,一块写完了再写另一块)
Stripe 条带逻辑卷
RAID raid逻辑卷
Mirror 镜像卷
Thinly-Provision 精简配置逻辑卷
Snapshot 快照卷
Thinly-Provisioned Snapshot 精简配置快照卷
Cache 缓存卷
三. 创建PV时(一同被创建的有)
1. 接近设备起始处,放置一个标签,包括uuid,元数据的位置 #(这个标签每个磁盘默认都保持一份)
2. LVM元数据,包含LVM卷组的配置详情
3. 剩余空间,用于存储数据
四. LVM逻辑卷概念及创建LVM的步骤
1. LVM的组成
PE:(物理拓展,是VG卷组的基本组成单位)
PV:(物理卷)
VG:(卷组)
LV:(逻辑卷)
2. 创建LVM的步骤
1. 将磁盘创建为PV(物理卷),其实物理磁盘被条带化为PV,划成了一个一个的PE,默认每个PE大小是4MB
2. 创建VG(卷组),其实它是一个空间池,不同PV加入同一VG
3. 创建LV(逻辑卷),组成LV的PE可能来自不同的物理磁盘
4. 格式化LV,挂载使用
五. LVM相关命令工具
1. PV操作命令
pvchange 更改物理卷的属性
pvck 检查物理卷元数据
pvcreate 初始化磁盘或分区以供lvm使用
pvdisplay 显示物理卷的属性
pvmove 移动物理Exent
pvremove 删除物理卷
pvresize 调整lvm2使用的磁盘或分区的大小
pvs 报告有关物理卷的信息
pvscan 扫描物理卷的所有磁盘
2. VG操作命令
vgcfgbackup 备份卷组描述符区域
vgcfgrestore 恢复卷组描述符区域
vgchange 更改卷组的属性
vgck 检查卷组元数据
vgconvert 转换卷组元数据格式
vgcreate 创建卷组
vgdisplay 显示卷组的属性
vgexport 使卷组对系统不了解(这是个什么)
vgextend 将物理卷添加到卷组
vgimportclone 导入并重命名重复的卷组(例如硬件快照)
vgmerge 合并两个卷组
vgmknodes 重新创建卷组目录和逻辑卷特殊文件
vgreduce 通过删除一个或多个物理卷来减少卷组(将物理卷踢出VG)
vgremove 删除卷组
vgrename 重命名卷组
vgs 报告有关卷组信息
vgscan 扫描卷组的所有磁盘并重建高速缓存
vgsplit 将卷组拆分为两个,通过移动整个物理卷将任何逻辑卷从一个卷组移动到另一个卷组
3. lv操作命令
lvchange 更改逻辑卷属性
lvconvert 将逻辑卷从线性转换为镜像或快照
lvcreate 将现有卷组中创建逻辑卷
lvdisplay 显示逻辑卷的属性
lvextend 扩展逻辑卷的大小
lvmconfig 在加载lvm.conf和任何其他配置文件后显示配置信息
lvmdiskscan 扫描lvm2可见的所有设备
lvmdump 创建lvm2信息转储以用于诊断目的
lvreduce 减少逻辑卷的大小
lvremove 删除逻辑卷
lvrename 重命名逻辑卷
lvresize 调整逻辑卷大小
lvs 报告有关逻辑卷的信息
lvscan 扫描所有的逻辑卷
六. LVM管理命令
1. PV管理(物理卷)
pvcreate /dev/sdb1 制作PV
pvremove /dev/sdb1 删除PV撤销PV(需先踢出VG)
2. VG管理(卷组)
vgcreate datavg /dev/sdb1 制作VG
vgcreate datavg /dev/sdb1 /dev/sdb2 制作多个VG, 格式:vgcreate vgname 分区
vgcreate -s 16M datavg2 /dev/sdb3 注:-s 指定pe的大小为16M,默认是4M
vgreduce --removemissing datavg 从卷组中移除缺失的磁盘
vgreduce --removemissing datavg --force 强制移除
vgextend datavg /dev/sdb3 扩展VG空间
pvs 查看pv信息
vgreduce datavg /dev/sdb3 踢出VG中的某个成员
vgs 查看vgs信息
3. LV管理(逻辑卷)
lvcreate -n lvdata1 -L 1.5G datavg
#制作LV逻辑卷, 参数: -n lv的名字,-L 指定lv的大小,datavg 是vg的名字,表示从那个vg上来制作.
lvchange -ay /dev/datavg/lvdata1 激活修复后的逻辑卷
lvchange -ay /dev/datavg/lvdata1 -K 强制激活
七. LVM的快照
用途:注意用途是数据一致性备份,先做一个快照,冻结当前系统,这样快照里面的内容可暂时保持不变,系统本身继续运行,通过重新挂载备份快照卷,实现不中断服务备份。
例: lvcreate -s -n kuaizhao01 -L 100M /dev/datavg/lvdata1
八. LVM中查看PV\VG\LV和删除使用方法
1. 查看物理卷信息
pvs && pvdisplay
2. 查看卷组信息
vgs && vgdisplay
3. 查看逻辑卷信息
lvs && lvdisplay
4. 删除LV
lvremove /dev/mapper/VG-mylv
5. 删除VG
vgremove VG
6. 删除PV(注意删除顺序是LV,VG,PV)
pvremove /dev/sdb
九. 一个centos8.5的LVM扩容实例:
原因:有一台服务器是centos8系统,使用hyper-v虚拟机安装,使用一段时间后发现分区容量已占98%,需要扩容。经查询当前系统分区为LVM(逻辑卷管理), 卷组(vg)名为centos,支持动态扩容,所以决定直接添加新硬盘动态扩容,具体操作如下:
1. 虚拟机新添加一块硬盘:
虚拟机-右键-设置-IDE控制器-添加-选择126G容量-虚拟硬盘位置-选择目录-文件名-确定
2. 创建新的PV物理卷, 加入相应的VG:
fdisk -l #查看新磁盘是否添加成功,本例发现新出现sdb物理磁盘,即成功
#(似乎可以不分区) fdisk /dev/sdb #给新硬盘分区:n-p-回车-回车-w 保存退出
lsblk -f #查看一下磁盘逻辑和文件系统
pvcreate /dev/sdb #为新硬盘创建物理卷, 即把sdb添加到物理硬盘池中
pvs #查看pv物理卷空间,确认原有VG名为centos
vgextend centos /dev/sdb #将刚才创建好的物理卷添加到pv组空间centos中去
pvs #再查看一下pv组空间,新的sdb物理卷的VG名是否成功变成centos
vgs #查看卷组vg的容量情况,centos应该已经出现新的VFree空闲空间
3. 扩容LV逻辑卷centos-root:
df -hT #先查询出要动态扩容的vg逻辑卷全名
lvs #再次确认一遍需要扩容的vg name
lvextend -L +100G /dev/mapper/centos-root
#添加容量(路径也可以用: lvextend -L +100G /dev/centos/root)
xfs_growfs /dev/mapper/centos-root #确认扩容xfs格式的分区
# ext4文件系统 :resize2fs /dev/mapper/centos-root
df -hT && lsblk -f #查看挂载点、系统和容量,确认容量修改已经成功生效
pvs && vgs && lvs #查看物理卷&卷组&逻辑卷的信息, 确认成功
lsblk -f #查看新磁盘UUID号码“ls -l /dev/disk/by-uuid/”也可
vi /etc/fstab #配置挂载信息,如果用mount挂载,重启后可能引发系统崩溃
UUID=b0fab428-92a9-46b5-8032-772c628d98dd /data/mysql_data ext4 defaults 0 0
备注:如果分区为非LVM,可以添加硬盘格式化后挂载新目录,把原有数据cp转移到新目录。
Linux LVM分区相关知识的更多相关文章
- linux下分区相关知识
Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码.以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1.hda2.hda3.hda4,而逻辑分区占用 ...
- Linux lvm 分区知识笔记
盘面上可以细分出扇区(Sector)与柱面(Cylinder)两种单位,其中扇区每个为512bytes那么大. 通常所说的"硬盘分区"就是指修改磁盘分区表,它定义了"第n ...
- linux LVM分区查看dm设备
linux LVM分区查看dm设备 在linux中iostat -d查看磁盘状态时,有的会有如下dm-0,dm-1的条目. Device: tps kB_read/s ...
- Linux LVM分区管理、扩展
一.LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写.LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它 ...
- LINUX涉及网络相关知识
才接触到网络的老铁,是否比较晕呢? 简单记录一下网络相关知识吧(IPV4)! A0. 网络号.主机号 A1.网络地址分类: A2. 保留地址: A3. 子网掩码作用:(子网掩码.IPV4地址做“与”运 ...
- linux&android PPP 相关知识
Linux&Android PPP相关FAQ 目录 Linux&Android PPP相关FAQ.. 1 一. 文档说明... 3 二. 常见调试技 ...
- Linux的CPU相关知识
超线程和多线程的区别? 超线程从硬件层面理解,即一个CPU的部件(可以理解为核)同时执行多条指令,表现就是同时执行多个线程.多线程是软件层面的概念,比如CPU只有一个核,通过线程调度可以在一个时间段内 ...
- linux shell脚本相关知识
最近的项目中,有一个编写linux shell脚本的任务.由于之前不是很熟悉,在这个过程中遇到了很多困难,查找了很多资料,也收获了很多.下面是linux shell脚本中常用的知识总结. 1基础语法 ...
- Linux 文件权限相关知识
文件权限说明 Linux中的文件能否被访问和工具(程序)无关,和访问的用户身份有关(谁去运行这个程序) 进程的发起者(谁去运行这个程序). 进程的发起者若是文件的所有者: 拥有文件的属主权限 进程的发 ...
- Linux进程快照相关知识
查寻内核版本 uname -a // uname -r 进程快照 ps report a snapshot of the current processes USER ...
随机推荐
- 常用的"小脚本"-json数据处理
小背景: 我们公司项目中的小脚本是一些工具类,比如常用的是MapUtil工具类的一些方法 写公司的MapUtil工具类的方法要注意,方法名的命名,因为方法名,在公司的项目的某个业务流程有对方法名的进行 ...
- ESXi 安装 Truenas Core 解决企业共享存储免费方案
服务器配置 创建虚拟机内存最少8+,建议选择32,CPU没啥用,我给了2,硬盘我选择了50G+8T,因为一个虚拟机无法使用两个存储池,所以全部使用非SSD硬盘,自带网卡删除,单独给一个直通网卡,建议上 ...
- DevExpress gridControl 字体居住
设置列的标题居中显示: Designer - Views -右侧输入框中输入Appearance-HeaderPanel-TextOptions-设置HAlignment为Center 设置单元格内容 ...
- Mysql习题系列(三):单行函数
案例数据 提取码:2rd5 #[题目] # 1.显示系统时间(注:日期+时间) # 2.查询员工号,姓名,工资,以及工资提高百分之20%后的结果(new salary) # 3.将员工的姓名按首字母排 ...
- 查电脑并修改IP地址,你晓得吗?
查电脑并修改IP地址,你晓得吗? 好记性不如烂笔头,古人的话,浅显却好有深意,越品越有味道. 每次都会忘记怎么查电脑IP,那么今天就写下来吧! 方法一:通过命令行查询IP地址 快捷键Win ...
- 前端常见的Vue面试题目汇总
请说一下响应式数据的原理 默认Vue在初始化数据时,会给data中的属性使用Object.defineProperty重新定义所有属性,当页面到对应属性时,会进行依赖收集(收集当前组件中的watche ...
- 7. mixin的实现原理
mixin的实现原理 在Vue.mixin()中的内容会被维护到Vue.options静态属性里面 然后通过mergeOptions以特定的合并策略将全局的属性和用户属性合并起来 在获取用户选项的时候 ...
- vue-cli 根据不同的环境打包
根据项目需要,通过vue-cli中的npm run build 打包到不同的环境,例如测试环境,预发布环境,线上环境,根据process.env分别进行接口的调用 vue-cli 中build中bui ...
- C# 委托/回调
public delegate void MyDelegate();//定义一个委托类型 MyDelegate myDelegate;//创建一个委托变量 myDelegate = new MyDel ...
- CH583 是集成 BLE 无线通讯的 RISC-V MCU 微控制器
CH583 是集成 BLE 无线通讯的 RISC-V MCU 微控制器.片上集成 2Mbps 低功耗蓝牙 BLE 通讯模块.2 个全速 USB 主机和设备控制器及收发器.2 个 SPI.4 个串口.1 ...