Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1379023
  • 博文数量: 112
  • 博客积分: 7112
  • 博客等级: 少将
  • 技术积分: 1299
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-31 16:27
文章分类

全部博文(112)

文章存档

2011年(19)

2010年(20)

2009年(16)

2008年(20)

2007年(37)

分类: LINUX

2007-09-12 13:38:56

LVM-逻辑卷管理器创建过程

 

1.系统环境
 
linux as4   P42.0/512M/80G IDE接口 
 
2. 想关概念

LVM(logical volume manager) 逻辑卷管理器

其中主要分为这几个概念
1物理卷-简称PV
物理卷在逻辑卷管理器中属于最底层的,任何的逻辑卷和卷组都必需依靠物理卷来建立,物理卷可以是一个完整的硬盘,也可以是硬盘中的莫一个分区
2卷组-简称VG
卷组是建立在物理卷之上,一个卷组中可以包含一个物理卷组或者多个物理卷
3逻辑卷-简称LV
逻辑卷是建立在卷组之上的,卷组中的空间可以建立多个逻辑卷,并且逻辑卷可以随意从卷组的空闲空间中增减,逻辑卷可以属于一个卷组,也可以属于不同的多个卷组
4 物理区域-简称PE
物理区域是物理卷中最小的可分配储存单元
5 逻辑区域-简称-LE
逻辑区域是逻辑卷中可用于分配的最小储存单元
6 卷组描述区域-简称VGDA
用于描述物理卷,卷组,逻辑卷分配的所由信息

一个建立逻辑卷的流程如下
PV-VG-LV
物理卷包含卷组,卷组包含逻辑卷
3.创建过程
 
a)为逻辑卷管理器分配物理卷
我这里使用一个分区来作/dev/hda6(原为ext3)
#fdisk hda
>;t 
>;6
>;8e (为LVM分区)
>;w
重起
#pvcreate /dev/hda6
使用
#pvdisplay /dev/hda6查看是否建立
这样就建立好了物理卷
 
b) 在物理卷中建立卷组
#vgcreate vg0 /dev/hda6 其中vg0为要建立的卷组名程.这里的PE值我们使用默认的4M如需要增大可以使用-L 选想,记住一旦设定以后不可更改PE的值  ,vg0名字可以自己定义
#vgdisplay 查看是否建立成功

c) 在卷组中建立逻辑卷
#lvcreate -L 100M -n vg1 vg0
其中-L 选项表示你想的逻辑卷大小,以后可以用命令增减 -n指定逻辑卷的名程和卷组的名程,也可以使用绝对路径来达到上述目的
#lvdisplay /dev/vg0/vg1
查看是否建立成功
 
d)  为逻辑卷建立文件系统
#mkfs.ext3 /dev/vg0/vg1
然后挂载尝试是否建立成功
#mount /dev/vg0/vg1 /disk6
这样一个逻辑卷就基本成型了
如果要每次开机都自动挂接上在 fstab修改
[root@TestAs4 ~]# more /etc/fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
none                    /dev/pts                devpts  gid=5,mode=620  0 0
none                    /dev/shm                tmpfs   defaults        0 0
none                    /proc                   proc    defaults        0 0
none                    /sys                    sysfs   defaults        0 0
LABEL=/u01              /u01                    ext3    defaults        1 2
/dev/mapper/vg0-vg1     /disk6                  ext3    defaults        1 2
/dev/mapper/vg0-vg2     /disk7                  ext3    defaults        1 2
LABEL=SWAP-hda5         swap                    swap    defaults        0 0
/dev/hdd                /media/cdrom            auto    pamconsole,fscontext=system_u:object_r:removable_t,exec,noauto
,managed 0 0
[root@TestAs4 ~]#
 
4.逻辑卷的管理

a)增加新的物理卷到卷组
当卷组中没有足够的空间分配给逻辑卷时,可以用给卷组增加物理卷的方法来增加卷组的空间
# pvcreate  /dev/hda7
# vgextend vg0 /dev/hda7
这里注意hda7必需为LVM分区 

b) 扩充和减小逻辑卷的容量
#lvextend -L +500M /dev/vg0/vg1 
#ext2online /dev/vg0/vg1
-L 表示增减空间 +表示加 -表示建
#lvextend -L -500M /dev/vg0/vg1
#ext2online /dev/vg0/vg1
这里要注意文件系统必需是ext2或ext3,而且需要卸载文件系统来执行,减小的时候需要知道剪掉空间的大小,不然会造成丢失

在reiserfs文件系统中未作测试

c) 删除逻辑卷-卷组-物理卷 (必需按照先后顺序来执行删除)
#lvremove /dev/vg0/vg1 删除逻辑卷
#vgremove /dev/vg0 删除卷组
这里有一个问题,如果建立的卷组是活动的,他就不能删除
这里需要使用一个命令来是他变成固定的,以便删除
#vgchage -a n /dev/vg0
-a 参数指定卷组是否是活动的,n表示固定,y表示活动
#vgremove /dev/vg0 
成功
物理卷的删除,移除/etc下的lvmconf 和lvmtab的两个文件,然后将分区转换为linux的就可以了 

4  检查物理卷,卷组,逻辑卷

分别使用3个命令
1 pvscan 检查物理卷
2 vgscan 检查卷组
3 lvscan 检查逻辑卷 
 
 
 
 
 
--------------------------------------------------------------------------

一、LVM概述

        LVM是Linux系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上,文件系

    统之下的一个逻辑层,能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高了磁盘管理

    的灵活性。

        /boot分区不能基于LVM创建,必须独立出来。

    1.PV(Physical Volume,物理卷)

          物理卷是LVM机制的基本储存设备,通常对应为一个普通分区。物理卷一般直接使用设备文件

      名,如dev/sdb1等。用于转换成物理卷的普通分区,需要用fdisk工具将分区类型的ID标记号改为

      “8e”,即文件系统为Linux LVM。

    2.VG(Volume Group,卷组)

          卷组是由一个或多个物理卷组成的一个整体,在卷组中可以动态地添加或移除物理卷,卷组

      名称由用户自行定义。

    3.LV(Logical Volume,逻辑卷)

          逻辑卷是建立在卷组之上的,与物理卷没有直接关系。逻辑卷就是从卷组中切出的一小块空

      间,作为用户创建文件系统的基础。使用mkfs工具在逻辑卷上创建文件系统后,即可挂载到Linux

      系统中的目录下使用了。

 

二、PV物理卷的管理

    1.pvscan命令,扫描系统中的所有物理卷

          [root@localhost ~]#pvscan

    2.pvcreate命令,创建物理卷

          [root@localhost ~]#pvcreate  分区设备文件名称

    3.pvdisplay命令,显示物理卷的详细信息

          [root@localhost ~]#pvdisplay

    4.pvremove命令,将物理卷还原成普通分区

          [root@localhost ~]#pvremove  物理卷名称

 

三、VG卷组管理

    1.vgscan命令,扫描系统中建立的卷组

          [root@localhost ~]#vgscan

    2.vgcreate命令,将一个或多个物理卷创建成一个卷组

          [root@localhost ~]#vgcreate  卷组名  物理卷名1  物理卷名2 …

    3.vgdisplay命令,显示系统中各卷组的详细信息

          [root@localhost ~]#vgdisplay

    4.vgextend命令,用于扩展卷组的磁盘空间

          [root@localhost ~]#vgextend  需要被扩展的卷组名  新的物理卷名 

    5.vgremove命令,删除指定的卷组

          [root@localhost ~]#vgremove  卷组名

 

四、LV逻辑卷管理

    1.lvscan命令,扫描系统中建立的逻辑卷

          [root@localhost ~]#lvscan

    2.lvcreate命令,创建逻辑卷

          [root@localhost ~]#lvcreate -L  容量大小  -n  逻辑卷名  卷组名 

    3.lvdisplay命令,显示系统中逻辑卷的详细信息

          [root@localhost ~]#lvdisplay

    4.lvextend命令,用于动态扩展逻辑卷的空间

          [root@localhost ~]#lvextend -L  +容量大小  /dev/卷组名/逻辑卷名

          调整逻辑卷的容量后,需要执行“resize2fs /dev/卷组名/逻辑卷名”命令,重新识别文

      件系统的大小。 

    5.lvremove命令,用于删除指定的逻辑卷

          [root@localhost ~]#lvremove /dev/卷组名/逻辑卷名

 

 

=============================================================

 LVM管理大分区

lvs  查看lv使用情况

 

sdb一共13个分区1-13

pvcreate   /dev/sdb1

pvcreate   /dev/sdb3

.

.

.

pvcreate   /dev/sdb13

vgs   查看总vg使用情况

 

vgcreate   mediavg  /dev/sdb1

vgextend  mediavg  /dev/sdb2

vgextend  mediavg  /dev/sdb3

.

.

.

vgextend mediavg /dev/sdb13

 

vgs 

lvcreate -L 500G -n medialv00 mediavg

lvcreate -L 500G -n medialv01 mediavg

          .

          .

          .

lvcreate -L 500G -n medialv30 mediavg

 

mkfs.ext3 -m 0  /dev/mapper/mediavg-medialv00

          .

          .

          .

mkfs.ext3 -m 0  /dev/mapper/mediavg-medialv30

pvs  检查pv使用情况

可以写个循环

[root@media1 tmp]# more mkfs_mk.sh

#!/bin/bash

for file in `seq -w 0 30`

do

  mkfs.ext3  -m 0  /dev/mapper/mediavg-medialv$file

done

 

 

[root@media1 mnt]# more mkmount2.sh

#!/bin/sh

for file in `seq -w 0 30`

  do

  mount /dev/mapper/mediavg-medialv$file  /mnt/disk$file

  done

扩大LV

lvextend -L +1000G /dev/mapper/mediavg-medialv00

         .

         .

         .

lvextend -L +1000G /dev/mapper/mediavg-medialv30

增大文件系统(这一步容易疏忽)

resize2fs    /dev/mapper/mediavg-medialv00 

         .

         .

resize2fs    /dev/mapper/mediavg-medialv30

 

 

 

遇到需要挂载第二块硬盘的问题 第二块硬盘做了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

--------------------------------------------

vgchange -a n cctv

使用上面这种方面停止掉了VG

再次启用那个VG

vgchange -a y  cctv

 -----------------------------------------------

 

 

 

lvm pv误格式化恢复
2009-05-04 10:49

今天误将lvm中的一个pv格式化,lvm部分信息丢失。

[root@localhost lvm]# pvdisplay
Couldn't find device with uuid 'P022eH-A8VQ-EcG3-rILJ-0oWF-Ni88-sVEwP8'.
--- Physical volume ---
PV Name               /dev/hda2
VG Name               VolGroup00
PV Size               148.94 GB / not usable 0  
Allocatable           yes (but full)
PE Size (KByte)       32768
Total PE              4766
Free PE               0
Allocated PE          4766
PV UUID               iwb4XU-KKnJ-eu3A-HBuf-xIS2-GoaV-K6gM42
  
--- Physical volume ---
PV Name               unknown device
VG Name               VolGroup00
PV Size               149.03 GB / not usable 0  
Allocatable           yes
PE Size (KByte)       32768
Total PE              4769
Free PE               7
Allocated PE          4762
PV UUID               P022eH-A8VQ-EcG3-rILJ-0oWF-Ni88-sVEwP8

试了
vgreduce --removemissing VolGroup00
[root@localhost lvm]# vgreduce --removemissing VolGroup00
Couldn't find device with uuid 'P022eH-A8VQ-EcG3-rILJ-0oWF-Ni88-sVEwP8'.
Couldn't find all physical volumes for volume group VolGroup00.
Couldn't find device with uuid 'P022eH-A8VQ-EcG3-rILJ-0oWF-Ni88-sVEwP8'.
Couldn't find device with uuid 'P022eH-A8VQ-EcG3-rILJ-0oWF-Ni88-sVEwP8'.
LV VolGroup00/LogVol00 in use: not removing
Failed to deactivate LV LogVol00
无效

最后尝试使用原先的uuid直接重新添加新硬盘
pvcreate --uuid P022eH-A8VQ-EcG3-rILJ-0oWF-Ni88-sVEwP8 /dev/hdc1
Physical volume "/dev/hdc1" successfully created
恢复成功。
[root@localhost lvm]# pvdisplay
--- Physical volume ---
PV Name               /dev/hda2
VG Name               VolGroup00
PV Size               148.94 GB / not usable 0  
Allocatable           yes (but full)
PE Size (KByte)       32768
Total PE              4766
Free PE               0
Allocated PE          4766
PV UUID               iwb4XU-KKnJ-eu3A-HBuf-xIS2-GoaV-K6gM42
  
--- Physical volume ---
PV Name               /dev/hdc1
VG Name               VolGroup00
PV Size               149.03 GB / not usable 0  
Allocatable           yes
PE Size (KByte)       32768
Total PE              4769
Free PE               7
Allocated PE          4762
PV UUID               P022eH-A8VQ-EcG3-rILJ-0oWF-Ni88-sVEwP8
  
[root@localhost lvm]# vgscan
Reading all physical volumes. This may take a while...
Found volume group "VolGroup00" using metadata type lvm2


阅读(3201) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~