使用kickstart创建逻辑卷管理(LVM)分区

在ks.cfg文件的’Disk Partition Information’下添加以下选项,使用kickstart创建逻辑卷管理(LVM)分区:

注意: 上面提到的选项是有先后顺序的。物理卷将先被创建,然后是卷组和逻辑卷。

一个例子: 创建两个物理分区分别给Boot和Swap分区,剩余的空间作LVM。 Continue reading “使用kickstart创建逻辑卷管理(LVM)分区”

LVM逻辑卷管理学习笔记02(上)-物理卷和卷组

上篇文章只是简单介绍了一下LVM,知道lvm的基本构成是 整块裸硬盘或某个分区->物理卷(PV)->卷组(VG)->逻辑卷(LV),在上层就是把逻辑卷mount到目录下应用了

接下来就进行实操学习,并介绍下每层上的相应命令。
学习环境:vmware5.0 centos4.4 100M硬盘3块

1.物理卷的创建

如果要使用整块硬盘在作为物理卷的话,这块硬盘必须没有分区表信息,需要清除硬盘分区表的信息可以使用下面的命令

dd if=/dev/zero of=/dev/sdx bs=512 count=1

使用pvcreate命了来创建一个块设备做为物理卷。下面的命令把/dev/sdb /dev/sdc初始化用作物理卷

pvcreate /dev/sdb /dev/sdc

下面的命令是把一个分区初始化成一个pv

pvcreate /dev/sdb1
使用lvmdiskscan命令用了查看系统中哪些块设备可以用于作为物理卷
# lvmdiskscan
/dev/ramdisk [ 16.00 MB]
/dev/ram [ 16.00 MB]
/dev/sda1 [ 101.94 MB]
/dev/ram2 [ 16.00 MB]
/dev/sda2 [ 509.88 MB]
/dev/ram3 [ 16.00 MB]
/dev/root [ 5.40 GB]
/dev/ram4 [ 16.00 MB]
/dev/ram5 [ 16.00 MB]
/dev/ram6 [ 16.00 MB]
/dev/ram7 [ 16.00 MB]
/dev/ram8 [ 16.00 MB]
/dev/ram9 [ 16.00 MB]
/dev/ram10 [ 16.00 MB]
/dev/ram11 [ 16.00 MB]
/dev/ram12 [ 16.00 MB]
/dev/ram13 [ 16.00 MB]
/dev/ram14 [ 16.00 MB]
/dev/ram15 [ 16.00 MB]
/dev/sdb [ 102.40 MB] LVM physical volume
/dev/sdc [ 102.40 MB] LVM physical volume
3 disks
16 partitions
2 LVM physical volume whole disks
0 LVM physical volumes
有三个命令用来显示LVM物理卷的属性:pvs,pvdisplay,pvscan
pvs命了用格式化的方式显示了物理卷的信息,每行显示一个物理卷信息。pvs提供了非常详细格式控制参数,以后单独再来说这个命令。
pvdisplay命了非常详细的显示了每个物理卷的信息(如size,extents,volumegroup等等),下面就是一个pvdisplay显示的内容
# pvdisplay
— Physical volume —
PV Name /dev/sdc
VG Name vg1
PV Size 100.00 MB / not usable 0
Allocatable yes
PE Size (KByte) 4096
Total PE 25
Free PE 25
Allocated PE 0
PV UUID PB8TiB-f86q-NZZn-S22h-D35p-o8Zq-qBYeS1
pvscan用来扫描系统中都有哪些pv可用。如下所示
# pvscan
PV /dev/sdc VG vg1 lvm2 [100.00 MB / 100.00 MB free]
PV /dev/sdb VG vg1 lvm2 [100.00 MB / 100.00 MB free]
Total: 2 [200.00 MB] / in use: 2 [200.00 MB] / in no VG: 0 [0 ]
可以在lvm.conf文件中配置相应的过滤规则,让pvscan不扫描定义好规则的pv
当硬盘出现故障或者想删除一个物理卷的时候,可以使用pvchange命令把需要的pv设置成不可分配的状态,命令如下
pvchange -x n /dev/sdc
这样在通过pvdisplay看到这个pv的allocatable的状态就是NO了,如下所示
pvdisplay
— Physical volume —
PV Name /dev/sdc
VG Name vg1
PV Size 100.00 MB / not usable 0
Allocatable NO
PE Size (KByte) 4096
Total PE 25
Free PE 25
Allocated PE 0
PV UUID PB8TiB-f86q-NZZn-S22h-D35p-o8Zq-qBYeS1
使用-x y参数可以恢复pv的可分配状态。
使用pvremove命令来移除一个pv,使用如下
# pvremove /dev/sdc
Labels on physical volume “/dev/sdc” successfully wiped

2,卷组的管理

可以使用vgcreate命令来创建卷组,比如我们现在要创建一个卷组名为vg1,其中包含/dev/sdb /dev/sdc两个pv,如下

# vgcreate vg1 /dev/sdb /dev/sdc
Volume group “vg1” successfully created
当一个卷组创建好之后,它的默认最小扩展空间是4MB,这个扩展空间就是逻辑卷可以增加或减少的最小量。大量的扩展空间并不会对逻辑卷的i/o性能带来影响。
当然,在使用vgcreate创建卷组的时候可以通过-s参数调整一个你认为合适的数值。同样可以使用-p和-l参数来限制物理卷和逻辑卷的数量。
如果已经创建好了一个卷组,现在添加了新的物理卷,可以通过vgextend命令来把这个新的物理卷加入到已经创建好的vg中,如下
#vgextend vg1 /dev/sdd
Volume group “vg1” successfully extended
在物理卷的时候有显示物理卷信息的命令,同样也有现实卷组信息的命令,vgs和vgdisplay。
vgscan这个命令用来显示系统中存在的卷组,其实这个命令主要的作用是用来查找卷组和更行LVM的缓存文件。
vgs和pvs命令一样,通过不同的参数,可以输出定制化的内容
vgdisplay命令通过固定格式显示卷组的详细信息(包括size,extents,物理卷数量等等)。下面是我测试环境的输出
# vgdisplay
— Volume group —
VG Name vg1
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 204.00 MB
PE Size 512.00 KB
Total PE 408
Alloc PE / Size 0 / 0
Free PE / Size 408 / 204.00 MB
VG UUID utUPzW-P9up-vbSy-vzt4-Frb6-24Dd-5yhZ2X

vgscan命令在系统中扫描所有被支持的磁盘设备找到LVM的物理卷和卷组。这个过程会创建LVM缓存在/etc/lvm/.cache文件,这个文件主要用来维护当前的LVM设备的清单。

LVM会在以下情况自动运行vgscan命令,系统启动的时候,LVM进行操作的时候(比如执行了vgcreate命令或者当LVM检测到出现了一个不一致的情况时)。当系统的硬件配置被更改的时候,就必须人为手动的执行vgscan命令了,不然就会导致系统不认新的设备,以至于启动的时候不能被加载。

如果要把一个不用的物理卷从一个卷组中移除掉,可以使用vgreduce命令。vgreduce命令会在移除一个或多个物理卷时收缩卷组的容量。在把一个物理卷从一个卷组中移除之前,可以通过pvdisplay这个命令查看这个物理卷有没有被逻辑卷使用,如果物理卷仍被使用就需要使用pvmove命令把数据迁移到其他的物理卷上,然后在使用vgreduce命令将物理卷移除。下面的命令将物理卷/dev/hda1从卷组my_volume_group中移除

# vgreduce my_volume_group
使用vgremove命令可以删除一个不包含逻辑卷的卷组
# vgremove vg1
Volume group “vg1” successfully removed
使用vgsplit命令可以从卷组中分离出一部分物理卷创建一个新的卷组。
有了分离命令,自然就会有合并的命令。那就是vgmerge命令,可以使用这个命令把一个未活动的源卷和一个活动的活着未活动的目标卷合并,合并是有前提条件的,1、两个卷的PE size相同,2、两个卷组中物理和逻辑卷摘要要和目标卷组的限制匹配。
下面看实际的例子
分离卷组-把/dev/sdc从逻辑卷vg1中分离出并创建vgnew组
# vgsplit vg1 vgnew /dev/sdc
Volume group “vgnew” successfully split from “vg1”

把vgnew组合并到vg1组中
# vgmerge vg1 vgnew
Volume group “vgnew” successfully merged into “vg1”

卷组的metadata数据的备份和打包总是会在卷组或逻辑卷配置文件变更的时候自动的创建,当然除非你在lvm.conf文件中禁用了这项功能。默认情况下metadata数据的备份会被存储在/etc/lvm/backup文件中,而metadata打包文件会存储在/etc/lvm/archives文件中。可以认为的执行vgcfgbackup命令来备份metadata到/etc/lvm/backup文件中。
使用vgrename命令可以对于一个存在的卷组改名,比如下面的明白把vg02卷组改名成my_volume_group
#vgrename vg02 my_volume_group
能够移动整个LVM卷组到另外一个系统中,在做这个操作的时候建议使用vgexport和vgimport命令。vgexport命令使一个未激活的卷组对系统不可访问,从而允许你分离卷组中的物理卷。vgimport命令可以使系统再次访问这个卷组。把一个卷组从一个系统迁移到另一个系统可以执行以下几个步骤:
a.确认卷组中的活动卷上的文件没有被用户访问,然后unmount这个逻辑卷。
b.使用vgchange命令加-a n参数讲卷组标记为未激活,这样就阻止了在这个卷组中的任何活动。
c.使用vgexport导出卷组,这样系统就不会对这个卷组访问了,从而可以把这个卷组移走。当导出了卷组之后,再用pvscan命令查询时,物理卷都显示成为在一个导出卷组中,如下
# pvscan
PV /dev/sdb is in exported VG my_volume_group [100.00 MB / 100.00 MB free]
PV /dev/sdc is in exported VG my_volume_group [100.00 MB / 100.00 MB free]
Total: 2 [200.00 MB] / in use: 2 [200.00 MB] / in no VG: 0 [0 ]
这时就可以关机拔硬盘然后插到别的系统上了。
d.把硬盘加到新的系统中后就可以执行vgimport命令来导入卷组了,这样就能使卷组可以被系统访问到了
e.然后使用vgchange命令加上-a y参数激活卷组
f.然后mount到文件系统上就可以使用了。

要创建卷组文件夹和逻辑卷特殊文件可以使用vgmknodes命令。这个命令用来在/dev文件夹中检查被逻辑卷需要的LVM2的特殊文件。这个命令还可以创建任何丢失的特殊文件,并移除不再使用的。

以上内容翻译自redhat LVM Administrator’s Guide文档中chapter4,如有不对之处还望指出,谢谢。

LVM逻辑卷管理学习笔记01-基本概念介绍

1、逻辑卷(Logical Volumes)

卷管理系统在物理存储上创建了一个虚拟层,用来创建逻辑卷存储。这样就比直接使用物理存储来说提供了更多的灵活的方法。

 逻辑卷提供了存储的虚拟化。使用逻辑卷不在严格要求物理磁盘容量的大小了。另外,硬件存储设备被配置在应用的后端,这样在更改磁盘大小的时候,就不用停止应用或卸载文件系统。这样可以减少运维的成本。

逻辑卷相比直接使用物理存储来讲有以下几个优势

  • 灵活的扩展性
    使用逻辑卷,文件系统可以再多个磁盘上进行扩展,同时你可以把多个磁盘容量或多个分区划入到一个逻辑卷中
  • 可调整大小的存储池
    可以使用简单的命令对逻辑卷的大小进行增减,而不需要从新格式化或从新分区
  • 在线状态下的数据再分配
    快速部署一个新的、适应性更强子存储系统时,可以再系统活动状态移动数据。在磁盘被使用的时候,数据同样可以被分配到磁盘上。
  • 方便设备命名
    逻辑存储卷在用户自定义的组中被管理,这个自定义的组可以随意按照自己喜好命名
  • 磁盘条带化
    可以再两块或更多的硬盘上创建条带化的逻辑卷,用了增加吞吐量
  • 卷镜像
    逻辑卷提供了一个方便的方法来配置数据的镜像
  • 卷快照
    使用逻辑卷,你可以创建设备的快照来实现备份,或者在影响实际数据的情况下测试你需要的变更带来的效果

2、LVM架构一览

从RHEL4开始LVM1就被LVM2替代了,LVM2在1的基础上改进了很多,如

  • 灵活的扩展性
  • 更高效的数据源存储
  • 更好的回复格式
  • 新的ASCII数据源格式
  • 数据源的源自改变
  • 冗余的数据源复制

LVM2除了快照和cluster以外,都完全兼容LVM1。通过vgconvert命令可以方便的把LVM1格式的卷组转换到LVM2格式。

在最下层的物理存储,每个LVM逻辑单元都是一个块设备,可以是一个分区,也可以是整个磁盘。这个设备被作为LVM的物理卷(PV)初始化。

创建一个逻辑卷,要把物理卷先合并到一个卷组(VG)中。这个创建了一个磁盘空间池,在这上LVM逻辑卷就可以被分配了。创建LVM逻辑卷的过程有点类似将磁盘分区的过程。逻辑卷被文件系统和应用程序使用。

上图是LVM逻辑卷组成图

3、在cluster中使用LVM

cluster逻辑卷管理(CLVM)就是把cluster扩展的设置到了LVM上,这种扩展允许cluster中的机器使用LVM来管理共享存储。

当一个逻辑卷正在被配置的时候,CLVM会允许用户在共享存储上配置逻辑卷,但会锁住这个逻辑卷去访问物理存储。CLVM使用由高可用并相对均衡的机构来提供锁服务。

以上资料翻译自redhat的LVM Administrator’s Guide 5.2,本人英语水平有限,不对之处还望指出。谢谢