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 ...
随机推荐
- Java语言输出菱形图型
package fuxi;public class Diamond { public static void main(String[] args) { printHollowRh ...
- 全国计算机二级python备考
选择题: https://www.itkaoshi.net/3476.html 操作题: https://www.bilibili.com/video/BV1Zj411f7ey?p=1 经典题讲解: ...
- HDFS存储流程及HA
HDFS架构 主从(Master/Slaves)架构 由一个NameNode和一些DataNode组成 NameNode负责存储和管理文件元数据,并维护了一个层次型的文件目录树 DataNode负责存 ...
- No.2.1
字体图标( 目的:使用字体图标技巧实现网页中简洁的图标效果) 字体图标展示的是图标,本质是字体,处理简单的.颜色单一的图片 优点:灵活性:灵活的修改样式,例如:尺寸,颜色等 轻量级:体积小,渲染快,降 ...
- 四种语言刷算法之删除链表的倒数第 N 个结点
力扣19. 删除链表的倒数第 N 个结点 1.C /** * Definition for singly-linked list. * struct ListNode { * int v ...
- Classical Cipher
[NPUCTF2020]Classical Cipher 难得做到一道古典密码的题目,打开后有一个flag.zip和一个提示. 解密后的flag请用flag{}包裹 压缩包密码:gsv_pvb_rh_ ...
- 如何利用fooview实现钉钉自动打卡
我们平常遇到需要钉钉打卡的那种公司,经常要抢时间不敢晚起,有的公司还要扣钱,这样就很难受.本文教你一种行之有效的办法实现钉钉自动打卡. 有些人可能会用什么虚拟定位之类的工具,但是这种是很容易被钉钉发现 ...
- leetcode 跳跃游戏系列
55. 跳跃游戏 能跳一个范围,贪心 class Solution { public: bool canJump(vector<int>& nums) { int m = 0; / ...
- Vue-cli JSX踩坑问题!
今天封装一个公用组件库,期间使用到了JSX,发现在Data配置中去配置渲染函数出现了 h function is not defined的问题?? 网上查询一大堆所谓安装JSX的东西,其实Vue-cl ...
- HCIP-ICT实战进阶06-BGP基础
HCIP-ICT实战进阶06-BGP基础 0 前言 运营商内部网络通过RIP.OSPF.ISIS实现网络互联, 但运营商之间要怎么办? 能不能互相引入路由? 理论上可行, 但考虑到网络机密问题和内部路 ...