|
- Linux挂载LVM分区的方法
- 这几天在折腾服务器 遇到需要挂载第二块硬盘的问题 第二块硬盘做了LVM
- 经过查找 找到了解决办法 备忘一下
- #fdisk -l
- [root@localhost /]# fdisk -l
- Disk /dev/sda: 36.7 GB, 36778545152 bytes
- 255 heads, 63 sectors/track, 4471 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
- /dev/sda1 * 1 13 104391 83 Linux
- /dev/sda2 14 2463 19679625 83 Linux
- /dev/sda3 2464 3949 11936295 83 Linux
- /dev/sda4 3950 4471 4192965 5 Extended
- /dev/sda5 3950 4471 4192933+ 82 Linux swap / Solaris
- Disk /dev/sdb: 73.4 GB, 73407868928 bytes
- 255 heads, 63 sectors/track, 8924 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
- /dev/sdb1 * 1 8924 71681998+ 8e Linux LVM
- Disk /dev/sdc: 36.7 GB, 36703934464 bytes
- 255 heads, 63 sectors/track, 4462 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
- /dev/sdc1 * 1 13 104391 83 Linux
- /dev/sdc2 14 4462 35736592+ 8e Linux LVM
- [root@localhost /]# pvs
- PV VG Fmt Attr PSize PFree
- /dev/sdb1 lvm2 -- 68.36G 68.36G
- /dev/sdc2 VolGroup00 lvm2 a- 34.06G 32.00M
- sdc2就是我要挂接的
- [root@localhost /]# vgscan
- Reading all physical volumes. This may take a while...
- Found volume group "VolGroup00" using metadata type lvm2
- [root@localhost /]# lvscan
- inactive '/dev/VolGroup00/LogVol00' [32.09 GB] inherit
- inactive '/dev/VolGroup00/LogVol01' [1.94 GB] inherit
- 可以看到新修改的VolGroup00是inactive状态
- [root@localhost /]# vgchange -a y
- 2 logical volume(s) in volume group "VolGroup00" now active
- [root@localhost /]# lvscan
- ACTIVE '/dev/VolGroup00/LogVol00' [32.09 GB] inherit
- ACTIVE '/dev/VolGroup00/LogVol01' [1.94 GB] inherit
- 好了,现在可以挂载了
- [root@localhost /]# mount -t ext3 /dev/VolGroup00/LogVol00 /d1
-
-
-
-
-
-
- 如果lvm两个卷同名,则需要对另一个进行重命名
- [root@localhost ~]# pvs
- PV VG Fmt Attr PSize PFree
- /dev/hda2 VolGroup00 lvm2 a- 76.22G 32.00M
- /dev/hdc2 VolGroup00 lvm2 a- 74.38G 32.00M
- 两个VG名称居然一样,
- [root@localhost ~]# vgrename VolGroup00 VolGroup88
- Found more than one VG called VolGroup00. Please supply VG uuid.
- [root@localhost ~]#vgrename 0iHE6T-dGIa-zkG2-Hn6f-heiH-OOwD-OzRmEt VolGroup88
- Volume group “VolGroup00″ still has active LVs
- 卸载
- vgchange -a n /dev/Volxxx
- kpartx -d /dev/loopx
- losetup -d /dev/loopx
-
-
- [root@shmym dev]# vgscan
- Reading all physical volumes. This may take a while...
- Found volume group "VolGroup00" using metadata type lvm2
- Found volume group "VolGroup00" using metadata type lvm2
- [root@shmym dev]# pvscan
- PV /dev/sda2 VG VolGroup00 lvm2 [68.25 GB / 64.00 MB free]
- PV /dev/hda2 VG VolGroup00 lvm2 [232.78 GB / 160.00 MB free]
- Total: 2 [301.03 GB] / in use: 2 [301.03 GB] / in no VG: 0 [0 ]
- [root@shmym dev]# pvs
- PV VG Fmt Attr PSize PFree
- /dev/hda2 VolGroup00 lvm2 a- 232.78G 160.00M
- /dev/sda2 VolGroup00 lvm2 a- 68.25G 64.00M
- [root@shmym dev]# vg
- vgcfgbackup vgconvert vgextend vgreduce vgscan
- vgcfgrestore vgcreate vgimport vgremove vgsplit
- vgchange vgdisplay vgmerge vgrename
- vgck vgexport vgmknodes vgs
-
- [root@shmym dev]# vgrename -h
- vgrename: Rename a volume group
- vgrename
- [-A|--autobackup y|n]
- [-d|--debug]
- [-h|--help]
- [-t|--test]
- [-v|--verbose]
- [--version]
- OldVolumeGroupPath NewVolumeGroupPath |
- OldVolumeGroupName NewVolumeGroupName
- [root@shmym dev]# vgrename VolGroup00 VolGroup01
- Found more than one VG called VolGroup00. Please supply VG uuid.
- 解释:找到一个以上的卷组名为VolGroup00 。请提供卷组的UUID 。
- [root@shmym dev]# vgdisplay
- --- Volume group ---
- VG Name VolGroup00
- System ID
- Format lvm2
- Metadata Areas 1
- Metadata Sequence No 3
- VG Access read/write
- VG Status resizable
- MAX LV 0
- Cur LV 2
- Open LV 2
- Max PV 0
- Cur PV 1
- Act PV 1
- VG Size 68.25 GB
- PE Size 32.00 MB
- Total PE 2184
- Alloc PE / Size 2182 / 68.19 GB
- Free PE / Size 2 / 64.00 MB
- VG UUID 0iHE6T-dGIa-zkG2-Hn6f-heiH-OOwD-OzRmEt
- --- Volume group ---
- VG Name VolGroup00
- System ID
- Format lvm2
- Metadata Areas 1
- Metadata Sequence No 3
- VG Access read/write
- VG Status resizable
- MAX LV 0
- Cur LV 2
- Open LV 2
- Max PV 0
- Cur PV 1
- Act PV 1
- VG Size 232.78 GB
- PE Size 32.00 MB
- Total PE 7449
- Alloc PE / Size 7444 / 232.62 GB
- Free PE / Size 5 / 160.00 MB
- VG UUID 5QwszM-BM1o-oG9i-sI8Y-T3Yw-sp0X-v6U2Pn
-
-
- 使用LVM逻辑卷管理的利弊
- 解决方案
- 在以往的Linux系统中(比Redhat AS4更早的版本),默认是不支持LVM逻辑卷管理的
- 当磁盘连接到服务器后,使用fdisk将其划分为主分区和扩展分区
- 随后直接把分区进行格式化,生成诸如/dev/sda1、/dev/sda2之类的分区
- 这些分区可以直接用mount命令挂载到目录来使用
- 当应用了LVM后,磁盘分区/dev/sda1、/dev/sda2这样的分区会被LVM认为是一整个VG,即卷组
- 这样的卷组是不能直接挂载的
- 要由LVM转换成/dev/VolGroup01这样的VG卷组
- 然后每个卷组又包含/dev/VolGroup01/LogVol01这样的LV,即逻辑卷
- 当使用他们的时候,需要将/dev/VolGroup01/LogVol01挂载到目录
- 因此,LVM虽然提供了可调节分区(卷)大小的能力
- 但是由于其PV->VG-LV三层架构的存在,在后期数据迁移和恢复上比较复杂
- 例如,当前磁盘使用了/dev/VolGroup00/LogVol01这样的名称
- 把这块磁盘挂载到其他服务器上后,如果存在另外一块硬盘名称也是由LVM管理
- 并且默认也使用了“/dev/VolGroup00/LogVol01”的名称
- 那么两个硬盘的VG名称冲突,就无法继续挂载LV读取数据了
- 这种冲突,在两个硬盘都是数据磁盘的时候,还可以修改名称来解决
- 但是,如果冲突双方中的一块是系统硬盘,那么则LVM拒绝对磁盘做卸载、改名等处理
- 此时第二块硬盘里边的数据就恢复不出来了
- 唯一的解决方法是把这个硬盘挂载到其他没有使用LVM的服务器上
- 或者找一个使用了LVM但是VG卷组名称不一样的服务器上
- 这是LVM设计应用中的一个无法解决的bug
- 因此,在服务器上,为了保证尽可能好的后期灾难恢复,不推荐用LVM
- 最好使用简单直接使用磁盘分区格式化,以便恢复数据
- 如果非要用LVM,请注意,在安装系统分区之初,就给自己磁盘的LVM起一个不容易冲突的唯一的名字
- 例如/dev/VolHehe001、/dev/VolHehe002等
复制代码 |
|