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转移到新目录。

最新文章

  1. hibernate模糊查询
  2. 到入百度LSS framework Reason: image not found
  3. Oracle On 、Where、Having 区别
  4. Windows下gvim配置
  5. Android兼容包multidex的开发和构建方法
  6. POJ 3261 Milk Patterns (求可重叠的k次最长重复子串)+后缀数组模板
  7. Linux VPS 基本命令
  8. Java-note-字符串转换为基本值
  9. TinyTask Portable(录制和回放电脑操作过程)
  10. sonar之安装篇
  11. https://github.com/aptana/studio3/releases aptana
  12. 第二十六节,Python内置函数
  13. 201521123049 《JAVA程序设计》 第3周学习总结
  14. Web开发入门学习笔记
  15. JQuery(三)-- AJAX的深入理解以及JQuery的使用
  16. web服务器之nginx和apache的区别
  17. 微信商户/H5支付申请 被拒原因:网站存在不实内容或不安全信息
  18. lr12介绍2
  19. 入门html第一次copy小米首页布局
  20. 并发之AQS原理(一) 原理介绍简单使用

热门文章

  1. AWK nr nf
  2. vue 清空element表单数据
  3. ES-DSL
  4. supervisor 安装及基本使用
  5. spring boot No qualifying bean of type 'org.apache.catalina.core.ApplicationContext' available
  6. Linux Qt编译时出现has modification time int the future的解决方法
  7. Win10安装离线.NET3.5流程
  8. 前端下载的方式总结(url,文件流,压缩包)
  9. 【c#】csharp_learn
  10. 面试题 --MySQL事务