LVM创建逻辑卷,实现单个目录挂载多个磁盘

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVM创建逻辑卷,实现单个目录挂载多个磁盘相关的知识,希望对你有一定的参考价值。

参考技术A LVM 是 Logical Volume Manager 的缩写,中文一般翻译为 "逻辑卷管理",它是 Linux 下对磁盘分区进行管理的一种机制。LVM 是建立在磁盘分区和文件系统之间的一个逻辑层,系统管理员可以利用 LVM 在不重新对磁盘分区的情况下动态的调整分区的大小。如果系统新增了一块硬盘,通过 LVM 就可以将新增的硬盘空间直接扩展到原来的磁盘分区上。

LVM 的优点如下:

LVM 也有一些缺点:

LVM 的优点对服务器的管理非常有用,但对于桌面系统的帮助则没有那么显著,所以需要我们根据使用的场景来决定是否应用 LVM。

通过 LVM 技术,可以屏蔽掉磁盘分区的底层差异,在逻辑上给文件系统提供了一个卷的概念,然后在这些卷上建立相应的文件系统。下面是 LVM 中主要涉及的一些概念。

可以这么理解,LVM 是把硬盘的分区分成了更小的单位(PE),再用这些单元拼成更大的看上去像分区的东西(PV),进而用 PV 拼成看上去像硬盘的东西(VG),最后在这个新的硬盘上创建分区(LV)。文件系统则建立在 LV 之上,这样就在物理硬盘和文件系统中间添加了一层抽象(LVM)。下图大致描述了这些概念之间的关系:

对上图中的结构做个简单的介绍:两块物理硬盘 A 和 B 组成了 LVM 的底层结构,这两块硬盘的大小、型号可以不同。PV 可以看做是硬盘上的分区,因此可以说物理硬盘 A 划分了两个分区,物理硬盘 B 划分了三个分区。然后将前三个 PV 组成一个卷组 VG1,后两个 PV 组成一个卷组 VG2。接着在卷组 VG1 上划分了两个逻辑卷 LV1 和 LV2,在卷组 VG2 上划分了一个逻辑卷 LV3。最后,在逻辑卷 LV1、LV2 和 LV3 上创建文件系统,分别挂载在 /usr、/home 和 /var 目录。

step-1:使用 fdisk -l 查看当前的磁盘信息

step-3:安装gdisk ,使用gdisk对物理磁盘进行分区

通过 p 命令可以查看磁盘当前的状态:

输出中的前几行是磁盘的基本信息,比如总大小为 20G,一共有多少个扇区(sector),每个扇区的大小,当前剩余的空间等等。然后是已经存在的分区信息(上图显示还没有任何分区):

下面通过 以下命令来创建新分区(依次敲):

step-4:如果之前已经划分为多个分区,则可以执行 fdisk /dev/sdc 合并为1个分区,把分区删除后,再对/dev/sdc进行LVM

step-5:现在我们可以基于磁盘分区 /dev/sdd1等来创建 LVM 物理卷(LV),可以通过 pvcreate 命令来完成

使用 pvdisplay 可以看到我们创建的5个物理卷。

step-6:基于一个或多个 PV,可以创建 VG,lvm_data是vg组的名字,可以自定义,,vgs 命令可以观察 VG 的信息

step-7:有了 VG 就可以创建逻辑卷 LV 了,lvcreate 命令用来创建 LV,让我们在前面创建的lvm_data上创建名称为lvm_data_1的 LV

当我们创建 LV lvm_data/lvm_data_1时,其实是创建了名称为 /dev/lvm_data/lvm_data_1的设备文件,现在我们来格式化这个逻辑卷(在该 LV 上创建文件系统),目标为比较常见的 ext4 格式:

最后可以挂载到一个目录上,查看结果:

LVM逻辑卷VG卷组丢失故障处理

LVM是通过将物理的磁盘或磁盘分区创建成物理卷(PV),多个物理卷添加创建为一个卷组(VG),然后在卷组的基础上创建逻辑卷(LVM),进而在逻辑卷上去创建文件系统,这种在硬盘或分区和文件系统之下的磁盘管理机制大大提高了对磁盘管理的灵活性,也是当前企业Linux环境下实现对磁盘分区管理的方式。
但在实际应用管理中,常常因为误操作,系统断电等原因造成卷组丢失,逻辑卷无法挂载等异常的故障,本文将通过在企业运维实践中逻辑卷故障处理过程给大家分享因为断电原因造成卷组丢失的恢复方法。

  问题现象
系统重启后,发现LVM中的一个VG丢失,导致Coremail的邮件系统无法运行。具体现象截图如下。
技术分享
 
 
 原因分析
1、一般LVM的VG丢失都是由于突然断电或者更换了操作系统等原因引起。尝试执行vgscan命令扫描卷组,无果。尝试通过vgcfgrestore –f /etc/lvm/backup/data  data 命令恢复VG卷组,提示以下错误。
  Cannot restore Volume Group data with 1 PVs marked as missing.
  Restore failed.
2、查看/etc/lvm/backup/data文件中PV0的ID号,与pvdisplay /dev/emcpowera命令中显示的UUID号不一致,初步判断是因为系统重启后,/dev/emcpowera的UUID号发生变化了。导致VG无法找到对应的物理卷。


  解决方法
为了防止数据丢失或破坏,首先对/dev/emcpowera设备的数据进行备份。如下所示。
[[email protected] backup]# dd if=/dev/emcpowera of=/data/01/emcpowera.img
209715200+0 records in
209715200+0 records out
107374182400 bytes (107 GB) copied, 455.871 s, 236 MB/s
 
执行以下命令重新修正/dev/emcpowera的UUID号。
[[email protected] backup]# pvcreate -u blfaxf-3CER-4r4l-MS32-v0aN-s3Ta-DH08ZV(此内容为/etc/lvm/backup/data/文件中PV的ID号) /dev/emcpowera --restorefile /etc/lvm/backup/data
  Physical volume "/dev/emcpowera" successfully created
 
恢复卷组信息。
[[email protected] backup]# vgcfgrestore -f /etc/lvm/backup/data data
  Restored volume group data
 
执行PVS,VGS查看卷组和物理卷信息,发现卷组信息已经找回。
[[email protected] backup]# vgs
  Found duplicate PV i8eJ0wjj9aCnINA3PuXs40eHn71KYGA9: using /dev/sde not /dev/sdai
  Found duplicate PV PEm5MuUjFCt3RNI246UUcd3FrjDfuPJE: using /dev/sdak not /dev/sdq
  Found duplicate PV zo1d35HeUV4frKw88HX0F34ynK2EYsXv: using /dev/sdal not /dev/sdr
  Found duplicate PV UdYII1L3cG3lhIiemcoUY8nTf19jxRcv: using /dev/sdam not /dev/sds
  Found duplicate PV Gy9jrkkhgRt0vgP4psvMOapl79Ui4f1Q: using /dev/sdan not /dev/sdt
  Found duplicate PV w8LuGV0ML9mFDYneAGCR1iV5LdJyg8bo: using /dev/sdao not /dev/sdu
  VG         #PV #LV #SN Attr   VSize    VFree 
  data         1   0   0 wz--n-  100.00g 100.00g
  data00b1     1   1   0 wz--n- 1024.00g      0
  data01b1     1   1   0 wz--n- 1024.00g      0
  data02b1     1   1   0 wz--n- 1024.00g      0
  data03b1     1   1   0 wz--n- 1024.00g      0
  data04b1     1   1   0 wz--n- 1024.00g      0
  data05b1     1   1   0 wz--n- 1024.00g      0
  homeb1       1   1   0 wz--n-  200.00g      0
  indexb1      1   1   0 wz--n-  200.00g      0
  searchb1     1   1   0 wz--n- 1024.00g      0
  vg_mcbl043   1   2   0 wz--n-  557.66g      0
[[email protected] backup]# lvs
  Found duplicate PV i8eJ0wjj9aCnINA3PuXs40eHn71KYGA9: using /dev/sde not /dev/sdai
  Found duplicate PV PEm5MuUjFCt3RNI246UUcd3FrjDfuPJE: using /dev/sdak not /dev/sdq
  Found duplicate PV zo1d35HeUV4frKw88HX0F34ynK2EYsXv: using /dev/sdal not /dev/sdr
  Found duplicate PV UdYII1L3cG3lhIiemcoUY8nTf19jxRcv: using /dev/sdam not /dev/sds
  Found duplicate PV Gy9jrkkhgRt0vgP4psvMOapl79Ui4f1Q: using /dev/sdan not /dev/sdt
  Found duplicate PV w8LuGV0ML9mFDYneAGCR1iV5LdJyg8bo: using /dev/sdao not /dev/sdu
  LV       VG         Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home     data       -wi-------  100.00g                                                   
  sata     data00b1   -wi-ao---- 1024.00g                                                    
  sata     data01b1   -wi-ao---- 1024.00g                                                   
  sata     data02b1   -wi-ao---- 1024.00g                                                   
  sata     data03b1   -wi-ao---- 1024.00g                                                    
  sata     data04b1   -wi-ao---- 1024.00g                                                   
  sata     data05b1   -wi-ao---- 1024.00g                                                   
  home     homeb1     -wi-ao----  200.00g                                                   
  ssd      indexb1    -wi-ao----  200.00g                                                   
  sata     searchb1   -wi-ao---- 1024.00g                                                    
  LogVol00 vg_mcbl043 -wi-ao----   16.00g                                                   
  LogVol01 vg_mcbl043 -wi-ao----  541.66g           
                                       
执行lvchange命令,重新激活LV逻辑卷。
[[email protected] backup]# lvchange -ay /dev/data/home
  LV       VG         Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home     data       -wi-a-----  100.00g                                                   
  sata     data00b1   -wi-ao---- 1024.00g                                                    
  sata     data01b1   -wi-ao---- 1024.00g                                                   
  sata     data02b1   -wi-ao---- 1024.00g                                                   
  sata     data03b1   -wi-ao---- 1024.00g                                                   
  sata     data04b1   -wi-ao---- 1024.00g                                                   
  sata     data05b1   -wi-ao---- 1024.00g                                                   
  home     homeb1     -wi-ao----  200.00g                                                   
  ssd      indexb1    -wi-ao----  200.00g                                                   
  sata     searchb1   -wi-ao---- 1024.00g                                                   
  LogVol00 vg_mcbl043 -wi-ao----   16.00g                                                   
  LogVol01 vg_mcbl043 -wi-ao----  541.66g     
 
重新挂载使用。
[[email protected] backup]# mount /dev/mapper/data-home /mnt
[[email protected] backup]# cd /mnt
[[email protected] mnt]# ls
coremail  lost+found
[[email protected] mnt]# cd coremail/
[[email protected] coremail]# ls
api  client_body_temp  del.txt       gateway  java  lib64    logs   oracle            proxy_temp  scgi_temp  sso                  uwsgi_temp  web
bin  conf              fastcgi_temp  install  lib   libexec  mysql  oradiag_coremail  sbin        sophos-av  ud1_coremail.tar.gz  var
[[email protected] coremail]# pwd
/mnt/coremail
 
至此,故障解除。

以上是关于LVM创建逻辑卷,实现单个目录挂载多个磁盘的主要内容,如果未能解决你的问题,请参考以下文章

LVM逻辑卷VG卷组丢失故障处理

LVM逻辑卷的创建管理

LVM逻辑卷管理--在线扩容逻辑卷与卷组容量缩减逻辑卷快照

Linux 磁盘分区永久挂载创建LVM逻辑卷

LVM逻辑卷的创建扩展缩减和归纳

Centos磁盘信息和LVM逻辑卷总结