关于LVM

LVM


1.关于lvm的基本了解

  

PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。
VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。
LV(logical volume):逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。
PE(physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。
LE(logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
卷组描述区域:卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中逻辑卷、逻辑卷中物理区域的分配等所有信息,它是在使用pvcreate建立物理卷时建立的。


2. lvm建立


>>划分物理分区,并修改分区标签为1vm
    8e
>>pvcreate /dev/vdb1        ##创建物理卷
>>vgcreate vg0 /dev/vdb1    ##创建物理卷组
>>lvcreate -L 100M -n lv0 vg0    ##创建逻辑卷
>>mkfs.xfs /dev/vg0/lv0        ##格式化设备
>>mount /dev/vg0/lv0 /westos    ##设备挂载投入使用

#监控命令#

watch -n 1 ‘pvs;echo =======;vgs;echo========;lvs;echo========;df -h /westos'

3. lvm拉伸


##在xfs文件系统下##

1)当vg中剩余容量充足时,

>>lvextend -L 400M /dev/vg0/lv0    ##拉伸逻辑卷容量
>>xfs_growfs /dev/vg0/lv0     

2)当vg中的容量不足时

[cpp]  view plain  copy
  1. 如下情况:  
  2. [root@localhost westos]# lvextend -L 700 /dev/vg0/lv0  
  3. <span style="font-size:14px;"></span><span style="font-size:14px;">  Extending logical volume lv0 to 700.00 MiB  
  4.   Insufficient free space: 51 extents needed, but only 0 available</span>  

>>pvcreate /dev/vdb2        ##创建新的物理卷
>>vgextend vg0 /dev/vdb2    ##扩大物理卷组
>>lvextend -L 700M /dev/vg0/lv0    ##扩大逻辑卷容量
>>xfs_growfs /dev/vg0/lv0     ##拉伸设备文件容量

4. lvm缩减


##在ext文件系统下##

*更换文件系统为ext4

>>umount /westos
>>mkfs.ext4 /dev/vg0/lv0

*拉伸

>>lvextend -L 800M /dev/vg0/lv0
>>mount /westos
>>resize2fs /dev/vg0/lv0    ##更改文件设备容量(支持挂载同时热更改)

*缩减

1)对设备
>>umount /westos
>>e2fsck -f /dev/vg0/lv0 #确定已有设备文件的大小
>>resize2fs /dev/vg0/lv0 200M
>>mount /dev/vg0/lv0 /westos
>>lvreduce -L 200 /dev/vg0/lv0

不支持在线操作,必须先取消挂载

2)对卷组
>>pvmove /dev/vdb1 /dev/vdb2  #当我要移除的分区存在数据,那么需要把数据迁移到其他pv中
>>vgreduce vg0 /dev/vdb1
>>pvremove /dev/vdb1

5.lvm的快照


快照作用:保护原始数据不被破坏
>>lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0
实操:

1)在/westos下建立文件

注:此时/westos下挂载的是设备/dev/vg0/lv0
touch /westos/file{1..4}
ls /westos

2)取消/westos挂载

umount /westos

3)新建快照设备删除/westos下文件

lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0##同时亦快照了文件系统,故不用对快照的逻辑卷格式化就可以进行挂载
mount /dev/vg0/lv0backup /westos
ls /westos
rm -rf file*

4)取消快照设备挂载

umount /westos

5)移除快照设备

lvremove /dev/vg0/lv0backup

6)新建快照设备lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0

mount /dev/vg0/lv0backup /westos

7)查看/westos下文件

ls /westos

6. lvm的删除

lvremove /dev/vg0/lv0
vgremove vg0
pvremove /dev/vdb2
fdisk /dev/vdb


#当lvm的分区被误删除时#

当出现以下错误时:

1)

[cpp]  view plain  copy
  1. 删除分区 /dev/vdb1 后,同步结果如下:  
  2. <span style="font-size:14px;">[root@server ~]# <span style="color:#3333FF;">partprobe</span>  
  3. Error: Partition(s) 1 on /dev/vdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a result, the old partition(s) will remain in use.  You should reboot now before making further changes.  
  4. [root@server ~]# <span style="color:#3333FF;">fdisk -l</span>  
  5.    Device Boot      Start         End      Blocks   Id  System  
  6. /dev/vdb2         1026048     2050047      512000   8e  Linux LVM  
  7. [root@server ~]# <span style="color:#3333FF;">blkid</span>  
  8. /dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"   
  9. /dev/vdb1: UUID="1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH" TYPE="LVM2_member"   
  10. /dev/vdb2: UUID="8XOl5c-DuVJ-SCzS-NSND-Zf6h-Op0V-CIKcB7" TYPE="LVM2_member"   
  11. [root@server ~]# pvremove /dev/vdb1  
  12.   PV /dev/vdb1 belongs to Volume Group vg0 so please use vgreduce first.  
  13.   (If you are certain you need pvremove, then confirm by using --force twice.)  
  14.   
  15. <span style="font-size:12px;color:#FF0000;">说明分区 /dev/vdb1 正在被使用时,被删除了。</span></span>  

解决办法:

[cpp]  view plain  copy
  1. [root@server ~]# <span style="color:#3333FF;">pvmove /dev/vdb1 /dev/vdb2</span>  
  2. <span style="font-size:14px;">  /dev/vdb1: Moved: 6.0%  
  3.   /dev/vdb1: Moved: 100.0%</span>  

2)

[cpp]  view plain  copy
  1. [root@server ~]# <span style="color:#3333FF;">pvs</span>  
  2. <span style="font-size:14px;"></span><span style="font-size:14px;">  PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?  
  3.   PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?  
  4.   PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?  
  5.   PV             VG   Fmt  Attr PSize   PFree    
  6.   /dev/vdb2      vg0  lvm2 a--  496.00m 296.00m  
  7.   unknown device vg0  lvm2 a-m  496.00m 496.00m  
  8. [root@server ~]# <span style="color:#3333FF;">vgs</span>  
  9.   PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?  
  10.   PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?  
  11.   VG   #PV #LV #SN Attr   VSize   VFree    
  12.   vg0    2   1   0 wz-pn- 992.00m 792.00m  
  13. [root@server ~]# <span style="color:#3333FF;">partprobe</span></span>  

解决办法:

[cpp]  view plain  copy
  1. [root@server ~]# <span style="color:#3333FF;">vgreduce vg0 --removemissing</span>  
<think>好的,用户现在需要关于LVM的使用指南或解决LVM输出为空的解决方案。根据之前的对话,用户可能已经尝试过一些基本的排查步骤,但输出仍然为空。现在需要更详细的指导,可能包括LVM的基本操作和深入的问题排查。 首先,我需要回顾之前的回答,确保不重复内容。之前的回答已经涵盖了物理卷初始化、卷组激活、内核模块加载等步骤。现在需要补充LVM的基础使用指南,同时细化问题排查的步骤,特别是结合用户提供的引用内容中的命令,比如lvscan、vgchange等。 用户提供的引用[1]中有关于逻辑卷管理的各种命令,例如lvcreate、lvextend等,这可能对编写使用指南有帮助。需要将这些命令整合到指南中,让用户了解如何创建、扩展和管理逻辑卷。同时,用户提到LVM输出为空的问题,可能需要结合这些命令进一步排查,例如使用lvscan来检查逻辑卷是否存在。 另外,用户可能对LVM的结构不太清楚,需要解释物理卷、卷组、逻辑卷的关系,以及常用命令的作用。比如,pvs、vgs、lvs分别对应物理卷、卷组、逻辑卷的状态查看,这些命令的正确使用可以帮助用户确认各层组件是否正常。 在解决输出为空的问题时,可能需要考虑更多的可能性,比如磁盘是否被系统正确识别,分区是否正确,文件系统是否存在损坏等。例如,使用lsblk和fdisk -l来确认磁盘是否存在,分区表是否正常。如果磁盘未被识别,LVM命令自然无法显示相关信息。 同时,用户可能遇到的另一个问题是元数据损坏,这时候需要使用vgcfgrestore来恢复备份的元数据,或者重新初始化物理卷。需要强调操作前的数据备份重要性,避免数据丢失。 另外,用户可能在激活卷组后仍然无法看到逻辑卷,这可能是因为设备映射未生成,需要检查/dev/mapper目录下的设备文件是否存在,或者使用dmsetup命令来重新生成映射。 还需要考虑权限问题,用户是否以root权限运行LVM命令,或者是否有适当的sudo权限。如果权限不足,命令执行会失败,导致输出为空。 最后,要确保回答结构清晰,分步骤说明使用指南和问题排查方法,每个步骤给出具体的命令和预期结果,帮助用户逐步解决问题。同时,生成的相关问题需要覆盖用户可能遇到的后续问题,比如命令报错、数据恢复等,引导用户进一步排查。</think>### LVM使用指南与输出为空的解决方案 --- ### **一、LVM基础使用指南** #### 1. **LVM核心概念** - **物理卷(PV)**:通过 `pvcreate` 初始化的物理磁盘或分区。 - **卷组(VG)**:由多个物理卷组成的存储池,通过 `vgcreate` 创建。 - **逻辑卷(LV)**:从卷组中划分的动态存储单元,支持动态调整大小[^1]。 #### 2. **常用操作命令** | 功能 | 命令示例 | 说明 | |---------------|-----------------------------------|----------------------------------------------------------------------| | **扫描** | `pvscan` / `vgscan` / `lvscan` | 检查物理卷、卷组、逻辑卷状态(输出为空时需排查)[^1] | | **创建PV** | `pvcreate /dev/sdb` | 初始化磁盘为物理卷 | | **创建VG** | `vgcreate vg_ssd /dev/sdb` | 将物理卷加入新卷组 | | **创建LV** | `lvcreate -L 50G -n lv_data vg_ssd` | `-L` 指定大小,`-n` 命名逻辑卷 | | **扩展LV** | `lvextend -L +10G /dev/vg_ssd/lv_data` | 增加逻辑卷大小(需同步文件系统:`resize2fs` 或 `xfs_growfs`) | | **缩减LV** | `lvreduce -L 40G /dev/vg_ssd/lv_data` | **需先缩减文件系统**,否则数据丢失 | | **重命名LV** | `lvrename vg_ssd lv_old lv_new` | 修改逻辑卷名称 | | **移除LV** | `lvremove /dev/vg_ssd/lv_data` | 删除逻辑卷(确认数据已备份) | | **快照** | `lvcreate -s -n snap -L 5G /dev/vg/lv` | 创建快照卷用于数据备份 | #### 3. **关键操作示例** **创建逻辑卷并挂载:** ```bash # 初始化物理卷 pvcreate /dev/sdb # 创建卷组 vgcreate vg_ssd /dev/sdb # 创建逻辑卷 lvcreate -L 50G -n lv_data vg_ssd # 格式化并挂载 mkfs.xfs /dev/vg_ssd/lv_data mkdir /data mount /dev/vg_ssd/lv_data /data ``` --- ### **二、LVM命令输出为空的解决方案** 若执行 `pvs`、`vgs`、`lvs` 无输出,按以下步骤排查: #### 1. **检查物理卷状态** ```bash # 确认物理卷已初始化 pvs pvscan # 若输出为空,初始化磁盘(谨慎操作!会清除数据) pvcreate /dev/sdb ``` #### 2. **激活卷组** ```bash # 扫描并激活卷组 vgscan vgchange -ay # 强制激活所有卷组[^1] vgs ``` #### 3. **验证逻辑卷路径** ```bash # 检查逻辑卷设备文件 lvscan ls /dev/mapper/ # 或 /dev/<VG名称>/<LV名称> # 若路径缺失,重新生成设备映射 vgchange -ay dmsetup create ``` #### 4. **排查内核模块与LVM服务** ```bash # 检查设备映射器模块 lsmod | grep dm_mod # 若未加载,手动加载 modprobe dm_mod dm_snapshot # 重启LVM服务(CentOS/RHEL) systemctl restart lvm2-*.service ``` #### 5. **修复元数据损坏** 若卷组元数据损坏,尝试恢复备份: ```bash vgcfgrestore -l vg_ssd # 查看备份 vgcfgrestore vg_ssd # 恢复最近备份 ``` --- ### **三、总结流程** 1. **初始化物理卷** → `pvcreate` 2. **创建卷组** → `vgcreate` 3. **创建逻辑卷** → `lvcreate` 4. **激活卷组** → `vgchange -ay` 5. **挂载使用** → `mount` --- ### **相关问题** 1. **如何监控LVM逻辑卷的实时使用情况?**(使用 `lvdisplay -m` 查看段分布[^1]) 2. **扩展逻辑卷后文件系统未生效怎么办?**(需运行 `resize2fs` 或 `xfs_growfs`) 3. **LVM快照卷能否跨卷组使用?**(否,快照需与原卷在同一卷组) 4. **`vgchange -ay` 激活卷组失败的可能原因?**(物理卷丢失或元数据损坏)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值