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分区相关知识的更多相关文章

  1. linux下分区相关知识

    Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码.以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1.hda2.hda3.hda4,而逻辑分区占用 ...

  2. Linux lvm 分区知识笔记

    盘面上可以细分出扇区(Sector)与柱面(Cylinder)两种单位,其中扇区每个为512bytes那么大. 通常所说的"硬盘分区"就是指修改磁盘分区表,它定义了"第n ...

  3. linux LVM分区查看dm设备

    linux LVM分区查看dm设备 在linux中iostat -d查看磁盘状态时,有的会有如下dm-0,dm-1的条目. Device:            tps    kB_read/s   ...

  4. Linux LVM分区管理、扩展

    一.LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写.LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它 ...

  5. LINUX涉及网络相关知识

    才接触到网络的老铁,是否比较晕呢? 简单记录一下网络相关知识吧(IPV4)! A0. 网络号.主机号 A1.网络地址分类: A2. 保留地址: A3. 子网掩码作用:(子网掩码.IPV4地址做“与”运 ...

  6. linux&android PPP 相关知识

    Linux&Android PPP相关FAQ   目录 Linux&Android PPP相关FAQ.. 1 一.         文档说明... 3 二.         常见调试技 ...

  7. Linux的CPU相关知识

    超线程和多线程的区别? 超线程从硬件层面理解,即一个CPU的部件(可以理解为核)同时执行多条指令,表现就是同时执行多个线程.多线程是软件层面的概念,比如CPU只有一个核,通过线程调度可以在一个时间段内 ...

  8. linux shell脚本相关知识

    最近的项目中,有一个编写linux shell脚本的任务.由于之前不是很熟悉,在这个过程中遇到了很多困难,查找了很多资料,也收获了很多.下面是linux shell脚本中常用的知识总结. 1基础语法 ...

  9. Linux 文件权限相关知识

    文件权限说明 Linux中的文件能否被访问和工具(程序)无关,和访问的用户身份有关(谁去运行这个程序) 进程的发起者(谁去运行这个程序). 进程的发起者若是文件的所有者: 拥有文件的属主权限 进程的发 ...

  10. Linux进程快照相关知识

    查寻内核版本 uname  -a    //  uname  -r 进程快照 ps       report a snapshot of the current processes USER     ...

随机推荐

  1. Linux内存占用过高排查过程

    1 查看服务器状态 系统是 CentOS Linux release 7.5.1804 (Core)使用top命令看了下系统的状态 系统的整体负载和cpu并不高,但是内存使用比较高(总8G使用了7.2 ...

  2. oracle快速将表缓存到内存

    共有2种方法: 1) alter table fisher cache; 2) alter table fisher storage(buffer_pool keep); --取消缓存 1) alte ...

  3. sudo漏洞解决方案--源码转rpm包(spec文件编写)

    RPM 知识储备 将源码包打包成rpm包,一般有两种情况 在找包中,能够在网上找到 ".src.rpm" 结尾的包,并且是根据漏洞需要升级的版本的包 在找包中,没有找到 " ...

  4. MyBatis-Plus通用Iservice 方法详解

    public interface IService<T> { /** * 默认批次提交数量 */ int DEFAULT_BATCH_SIZE = 1000; /** * 插入一条记录(选 ...

  5. VUE学习-:class & :style

    :class & :style :class 键值对 <div id="app" v-bind:class="{ 'active': isActive }& ...

  6. js 页面小数相加精度问题

    解决方法:把需要计算的数字升级(乘以10的n次幂)成计算机能够精确识别的整数,等计算完毕再降级(除以10的n次幂),这是大部分编程语言处理精度差异的通用方法. 比如计算0.33和5.2的和,则需要把( ...

  7. C++数组(二):二维数组

    二维数组 什么是二维数组?二维数组就是在一维数组的基础上增加一个维度. 二维数组的定义方式 数据类型 数组名[行数][列数]; int arr[2][3]; arr[0][0] = 1; arr[0] ...

  8. SAP BW/4HANA学习笔记1

    1.Master Data BW/4HANA BW/4HANA简介 BW/4HANA的前身是SAP BW(Business Warehouse),本质是一种数据仓库解决方案. 数据仓库解决方案: 1. ...

  9. centos8下安装gcc11

    最近的云服务器使用的centos8,c以前编译器对c++20的新特性支持的较少,当前最新版的gcc对c++20的支持还是可以的,于是准备体验一下,首要就是升级gcc gcc官网:https://gcc ...

  10. web基础(6): CSS综合实例-咖啡网页设计

    咖啡店案例效果图 (一)页面的布局 1. 最上方的header:右下角是四个小图标,像图层一样附加在当前的header部分上. 2. 超链接构成的导航栏,鼠标悬浮的时候字体颜色发生变化. 3. 主体分 ...