Linux下逻辑卷的配置与管理

Linux下逻辑卷的配置与管理

.基本概念 

1、 物理卷-----PVPhysical Volume

物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。 

2、 卷组--------VGVolumne Group

卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。 

3、 逻辑卷-----LVLogical Volume

逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。 

4、 物理区域--PEPhysical Extent

物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。 

5、 逻辑区域—LELogical Extent

逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。 

6、 卷组描述区域-----Volume Group Descriptor Area

卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。

 

二、 LVM的一般操作过程 

1、 在磁盘分区上建立物理卷

#fdisk /dev/hdb

#pvdisplay /dev/hdb1 //在已经建立好的分区或硬盘上建立物理卷

#pvcreate /dev/hdb1 

2、 使用物理卷建立卷组

#vgcreate myVG /dev/hdb1 //建立卷组,日后可以根据需要添加新的物理卷到已有卷组中 

3、 在卷组中建立逻辑卷

#lvcreate -L 10M -n myLV1 myVG //从已有卷组建立逻辑卷,通常只分配部分空间给该逻辑卷 

4、 在逻辑卷上建立文件系统 

#mkfs.ext3 /dev/vg0/data                 格式化

5、 将文件系统挂载到Linux系统的目录树中 

#mount /dev/vg0/data /mnt

#lvdisplay /dev/vg0/data                 查看逻辑卷data的分区情况 

6、 在卷组中添加新的物理卷

当卷组中没有足够的空间分配给逻辑卷时,可以使用vgextend命令添加新的物理卷到该卷组中,来扩充卷组容量。在一引起特殊的情况下也可以把卷组中现有的物理卷移出卷组。

#vgextend myVG /dev/hdb2 

7、 扩充逻辑卷的容量

当逻辑卷的空间不能满足需要时,可以使用lvextend命令把卷组中的空闲空间分配到该逻辑卷以扩展逻辑卷的容量。在逻辑卷的空闲空间过大时,也可以使用lvreduce命令缩减逻辑卷的容量。这样就实现了逻辑卷容量的动态调整。

#lvextend L +4M /dev/myVG/myLV 

8、 调整逻辑卷中文件系统的大小 

#vgextend vg0 /dev/sdb3                    扩大卷组vg0,将分区sdb3加入卷组

#pvmove /dev/sdb1                          移除物理卷

#vgreduce vg0 /dev/sdb1                    从卷组中删除sdb1

pvmove将数据移走,但sdb1还在vg0内,还是属于卷组分区,vgreducesdb1vg0中删除

创建卷组时,默认的PE大小4MB,允许的LV最大256G

#vgcreate s 8M vg1 /dev/sdb1

-s    指定PE块大小 


三、 常用命令 

1、 物理卷命令

一般维护命令:

#pvscan //在系统的所有磁盘中搜索已存在的物理卷

#pvdisplay 物理卷全路径名称 //用于显示指定物理卷的属性。

#pvdata 物理卷全路径名称 //用于显示物理卷的卷组描述区域信息,用于调试目的。

#pvchange x|--allocation {y|n} 物理卷全路径名 //用于改变物理卷的分配许可设置 

物理卷的创建与删除命令

#pvcreate 设备全路径名 //用于在磁盘或磁盘分区上创建物理卷初始化信息,以便对

//该物理卷进行逻辑卷管理。

#pvmove 源物理卷全路径我[目的物理卷全路径名] //用于把某物理卷中的数据转

//移到同卷组中其他的特刊卷中。 

2、 卷组命令

一般维护命令

#vgscan //检测系统中所有磁盘

#vgck [卷组名] //用于检查卷组中卷组描述区域信息的一致性。

#vgdisplay [卷组名] //显示卷组的属性信息

#vgrename 原卷组名 新卷组名 

#vgchange -a y|n [卷组名] //改变卷组的相应属性。是否可分配

#vgchange -l 最大逻辑卷数 //卷组可容纳最大逻辑卷数

#vgchange -x y|n [卷组名] //卷是否有效

#vgmknodes [卷组名|卷组路径] //用于建立(重新建立)已有卷组目录和其中的设备文 

卷组配置的备份与恢复命令

#vgcfgbackup [卷组名] //把卷组中的VGDA信息备份到“/etc/lvmconf”目录中的文件

#vgcfgrestore -n 卷组名 物理卷全路命名 //从备份文件中必得指定物理卷的信息 

卷组的建立与删除命令

#vgcreate 卷组名 物理卷全路径名[物理卷全路径名]

#vgmove 卷组名 

卷组的扩充与缩小命令

#vgextend 卷组名 物理卷全路径名[物理卷全路径名]

#vgreduce 卷组名 物理卷全路径名[物理卷全路径名] 

卷组的合并与拆分

#vgmerge 目的卷组名 源卷组名 //合并两个已经存在的卷组,要求两个卷组的物理

//区域大小相等且源卷组是非活动的。

#vgsplit 现有卷组 新卷组 物理卷全路径名[物理卷全路径名] 

卷组的输入与输出命令

#vgexport 卷组名

#vgimport 卷组名 卷组中的物理卷[卷组中的物理卷] 

3、 逻辑卷命令

一般命令

#lvscan

#lvdisplay 逻辑卷全路径名[逻辑卷全路径名]

#lvrename 旧逻辑卷全路径名 新逻辑卷全路径名

#lvrename 卷组名 旧逻辑卷名 新逻辑卷名

#lvchange

#e2fsadm -L +|- 逻辑卷增减量 逻辑卷全路径名 

逻辑卷的创建与删除命令

#lvcreate

#lvremove 

逻辑卷的扩充与缩小命令

#lvextend -L|--size +逻辑卷大小增量 逻辑卷全路径名

#lvreduce q -L|--size +逻辑卷减小量 逻辑卷全路径名 

4、 逻辑卷管理命令

#lvmdiskscan //检测所有的SCSIIDE等存储设备

#lvmchange -R|--reset //复位逻辑卷管理器 

#lvmsadc [日志文件全路径名] //收信逻辑卷管理器读写统计信息,保存到日志文件中。

#lvmsar 日志文件全路径名 //lvmsadc命令生成的日志文件中读取并报告逻辑卷管理器的读写统计信息。 

但对于后来加入到vg或者lv中的新lvm卷时,有两种常用重要的方法: 

                      第一种方法 

增加了逻辑卷的容量以后,就需要修改文件系统大小以实现利用扩充的空间。笔者推荐使用reiserfs文件系统来替代ext2或者ext3。因此这里仅仅讨论reiserfs的情况。Reiserfs文件工具提供了文件系统大小调整工具:resize_reiserfs。对于希望调整被加载的文件系统大小: 

    # resize_reiserfs -f /dev/web_document/www1 

    一般建议最好将文件系统卸载,调整大小,然后再加载: 

# umount /dev/web_document/www1

# resize_reiserfs /dev/web_document/www1

# mount -treiserfs /dev/web_document/www1 /data/wwwroot 

对于使用ext2ext3文件系统的用户可以考虑使用工具 

     ext2resize 

11、 减少逻辑卷大小 

使用lvreduce即可实现对逻辑卷的容量,同样需要首先将文件系统卸载: 

# umount /data/wwwroot

# resize_reiserfs -s-2G /dev/web_document/www1

# lvreduce -L-2G /dev/web_document/www1

# mount -treiserfs /dev/web_document/www1 /data/wwwroot 

            第二种方法(lv中的一种重要的格式文件系统方法) 

在阵列中创建一个文件系统。例如在 my_test_lv 中 创建一个ext2文 件系统: 

    mkfs -t ext2 /dev/test_vg/my_test_lv 

    可以用以下命令挂载LV: 

    mount /dev/test_vg/my_test_lv /usr1 

    如需在引导程序中创建LV,可 以在文件/etc/fstab中 添加适当的条目。 

                      第三种方法

 

PV (physical volume)物理卷

VG (Volume Group)卷组

LV Logical Volume)逻辑卷 

1.fdisk /dev/sdb

       分区sdb1,sdb2,sdb3

       分区类型8eLinux LVM

       如果系统在使用sdb,需要重启,以便系统重新读取sdb的分区表信息

2.#pvcreate /dev/sdb[1-3]                  初始化物理卷

3.#vgscan                                  扫描物理卷,创建卷组数据库,第一次创建lvm必须运行此命令

4.#vgcreate vg0 /dev/sdb1 /dev/sdb2        sdb1,sdb2创建卷组vg0

  #vgdisplay vg0                           查看卷组vg0的信息

5.#lvcreate n data L 10M vg0           vg0中创建一个新的名为data,大小10M的逻辑卷

6.#mkfs.ext3 /dev/vg0/data                 格式化

7.#mount /dev/vg0/data /mnt

  #lvdisplay /dev/vg0/data                 查看逻辑卷data的分区情况

  #lvcreate n test l 5 vg0             创建逻辑卷用-l指定块数,默认块大小4MB,即分配逻辑卷20MB大小,这个默认的物理扩展块的大小可以通过命令vgdispaly vg0查看PE SIZE的值而知道。

创建完逻辑卷一定要mkfs.ext3格式化才能使用

#lvscan                                    扫描逻辑卷,看它们的活动情况 

#umount /mnt

#lvextend L +20M /dev/vg0/data           扩大逻辑卷20M,要先umount分区,再扩大

#e2fsck f /dev/vg0/data                  强行检查data逻辑卷

#resize2fs /dev/vg0/data                   重新定义分区大小

以上三步要按顺序进行,用以下一条命令可以达到上面三条命令相同的效果:

#e2fsadm L +20M /dev/vg0/data 

#pvscan                                    查看系统目前的物理卷情况

#vgextend vg0 /dev/sdb3                    扩大卷组vg0,将分区sdb3加入卷组

#pvmove /dev/sdb1                          移除物理卷

#vgreduce vg0 /dev/sdb1                    从卷组中删除sdb1

pvmove将数据移走,但sdb1还在vg0内,还是属于卷组分区,vgreducesdb1vg0中删除

创建卷组时,默认的PE大小4MB,允许的LV最大256G

#vgcreate s 8M vg1 /dev/sdb1

-s    指定PE块大小

通过改变PE块大小,从而改变卷组允许支持的逻辑卷最大容量 

技巧:

#clear      清屏

#df lh    显示系统现在的分区挂载情况 

建立快照(备份数据)

#lvcreate s L 52M n snap /dev/vg0/data

-s    表示快照

-L    快照大小要大于或等于被创建的逻辑卷data

-n    快照名称

快照不用格式化即可使用 

删除逻辑卷步骤

1.umount所有LV

2.lvremove /dev/vg0/data      (通过lvscan查看)如有快照,先移除快照再移除逻辑卷。

3.#vgchange -an /dev/vg0      休眠vg以便删除,vgchange -ay /dev/vg0此命令可以激活vg

4.#vgremove vg0

使用过程中,如有错误,可查看系统日志

#tail /var/log/message 

如果要使根分区使用LVM设备,需先创建好LVM设备,再用lvmcreate-initrd命令在boot分区创建支持lvm功能的虚拟磁盘镜像文件,最后修改grub.conf加载此镜像文件即可。 

最后如何删除一个vglv. 

.重点案例 

案例:创建LVM,挂载到/usr1,并实现开机自启;添加一块新硬盘到LV下,成功添加后,快速删除这些已经创建好的vg0lv0 

创建过程:fdisk /dev/hdb 

m 

n 

w 

mkfs.ext3 /dev/hdb1  格式化为EXT3文件类型 

cd / 

mkdir /usr1          创建挂载点目录 

mount -t ext3 /dev/hdb1 /usr1 

编辑/etc/fstab实现自动挂载。 

逻辑卷: 

fdisk /dev/hdb 

n   

p 

1  1主分区 

t 修改分区类型 

LVM的分区类型是8e 

w 保存 

pvdisplay /dev/hdb1 

pvcreate /dev/hdb1   创建物理卷 

vgcreate myVG /dev/hdb1  在物理卷上创建卷组 

lvcreate -L 20M -n mylv1 myVG 在卷组中创建逻辑卷 

mkfs.ext3 /dev/myVG/mylv1 lv进行格式化成ext3 

mount -t ext3 /dev/myVG/mylv1 /usr1 把已经做成功的lv逻辑卷挂载到/usr1 

当需要挂载一块新的硬盘到这个lv下时 

1pv /dev/sdb1 

2,vg vg0 /dev/sdb1 

3,lv -L +5.0G -n vl0 /dev/vg0(lvdisplay /dev/vg0/lv0) 

4e2fsck -f /dev/vg0/lv0 

5,resize2fs /dev/vg0/lv045只对新加硬盘进行格式化,而mkfs.ext3 /dev/vg0/lv0 对整个逻辑卷进行格式化,而新加卷只是对以前卷不够用时的一个扩展,而这样的话,会使以前的文件全部丢失,所以必须打45的命令来仅对第二块硬盘进行格式化) 

6,mount /dev/vg0/lv0 /mnt 

7,此时通过df -Th可以看到最后有该卷的挂载情况 

最后如何快速删除这些已经创建好的vg0lv0 

1vgremove /dev/vg0 

2,lvremove /dev/vg0/lv0(当然要先删除lv后删除vg) 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值