LVM实验完全手册PDF文件下载

LVM实验完全手册PDF文件下载
LVM实验完全手册PDF文件下载

RHEL5 LVM实验完全手册

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分LVM区管理的灵活性, 使得用户在无需停机的情况下方便地调整各个分区大小。

A、创建LVM

1、创建磁盘分区,转换文件系统类型为LVM(8e)

[root@vm ~]# fdisk /dev/sdb

The number of cylinders for this disk is set to 2610.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-2610, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): 100

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4): 2

First cylinder (101-2610, default 101):

Using default value 101

Last cylinder or +size or +sizeM or +sizeK (101-2610, default 2610): 200

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4): 3

First cylinder (201-2610, default 201):

Using default value 201

Last cylinder or +size or +sizeM or +sizeK (201-2610, default 2610): 500

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Selected partition 4

First cylinder (501-2610, default 501):

Using default value 501

Last cylinder or +size or +sizeM or +sizeK (501-2610, default 2610): 1200 Command (m for help): p

Disk /dev/sdb: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sdb1 1 100 803218+ 83Linux

/dev/sdb2 101 200 803250 83Linux

/dev/sdb3 201 500 2409750 83Linux

/dev/sdb4 501 1200 5622750 83Linux Command (m for help): t //转换分区类型为LVM

Partition number (1-4): 1

Hex code (type L to list codes): 8e//LVM对应的ID为8e,此处可以输入L查看。Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): t

Partition number (1-4): 2

Hex code (type L to list codes): 8e

Changed system type of partition 2 to 8e (Linux LVM)

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): 8e

Changed system type of partition 3 to 8e (Linux LVM)

Command (m for help): t

Partition number (1-4): 4

Hex code (type L to list codes): 8e

Changed system type of partition 4 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdb: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sdb1 1 100 803218+ 8e Linux LVM /dev/sdb2 101 200 803250 8e Linux LVM /dev/sdb3 201 500 2409750 8e Linux LVM /dev/sdb4 501 1200 5622750 8e Linux LVM Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@vm ~]#

[root@vm ~]# partprobe /dev/sdb

2、创建物理卷PV

[root@vm /]# pvcreate /dev/sdb[1-4]

Physical volume "/dev/sdb1" successfully created

Physical volume "/dev/sdb2" successfully created

Physical volume "/dev/sdb3" successfully created

Physical volume "/dev/sdb4" successfully created

[root@vm /]#

[root@vm /]# pvdisplay

"/dev/sdb1" is a new physical volume of "784.39 MB"

--- NEW Physical volume ---

PV Name /dev/sdb1

VG Name

PV Size 784.39 MB

Allocatable NO

PE Size (KByte) 0

Total PE 0

Free PE 0

Allocated PE 0

PV UUID dGLeKz-GIsP-3oT9-jbn9-fSRI-RSQA-vSs1vA "/dev/sdb2" is a new physical volume of "784.42 MB"

--- NEW Physical volume ---

PV Name /dev/sdb2

VG Name

PV Size 784.42 MB

Allocatable NO

PE Size (KByte) 0

Total PE 0

Free PE 0

Allocated PE 0

PV UUID Nn5qwE-qrAY-CpzQ-HgMC-zY1o-vHeb-3wuABX "/dev/sdb3" is a new physical volume of "2.30 GB"

--- NEW Physical volume ---

PV Name /dev/sdb3

VG Name

PV Size 2.30 GB

Allocatable NO

PE Size (KByte) 0

Total PE 0

Free PE 0

Allocated PE 0

PV UUID cmLeoO-lGFK-JWtH-Y0rD-l9Mz-JvpX-eUdemo "/dev/sdb4" is a new physical volume of "5.36 GB"

--- NEW Physical volume ---

PV Name /dev/sdb4

VG Name

PV Size 5.36 GB

Allocatable NO

PE Size (KByte) 0

Total PE 0

Free PE 0

Allocated PE 0

PV UUID nsj9Ok-E8FL-je15-Td4H-fpMZ-mqk4-JJ9DPg [root@vm /]#

3、创建卷组VG

[root@vm /]# vgcreate vg01 /dev/sdb{1,2,3,4}

/dev/cdrom: open failed: Read-only file system

/dev/cdrom: open failed: Read-only file system

Attempt to close device '/dev/cdrom' which is not open.

/dev/cdrom: open failed: Read-only file system

Attempt to close device '/dev/cdrom' which is not open.

/dev/cdrom: open failed: Read-only file system

Attempt to close device '/dev/cdrom' which is not open.

Volume group "vg01" successfully created

[root@vm /]# vgdisplay

--- Volume group ---

VG Name vg01

System ID

Format lvm2

Metadata Areas 4

Metadata Sequence No 1

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 0

Open LV 0

Max PV 0

Cur PV 4

Act PV 4

VG Size 9.19 GB

PE Size 4.00 MB

Total PE 2352

Alloc PE / Size 0 / 0

Free PE / Size 2352 / 9.19 GB

VG UUID 271SRY-NgFn-dgXJ-ZpF4-duMx-j7Oh-ujCpP7

[root@vm /]#

4、创建逻辑卷LV

[root@vm ~]# lvcreate -L 2000M -n lv01 vg01 //创建名称为lv01的LVM,注意最后必须跟前一步创建的卷组的名称,即vg01

/dev/cdrom: open failed: Read-only file system

Logical volume "lv01" created

[root@vm ~]#

[root@vm mnt]# lvdisplay

--- Logical volume ---

LV Name /dev/vg01/lv01

VG Name vg01

LV UUID XhYzsZ-RSBw-QIKt-pJsB-b9en-gk3F-fjdYJ1 LV Write Access read/write

LV Status available

# open 1

LV Size 1.95 GB

Current LE 500

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 256

Block device 253:0

[root@vm mnt]#

5、格式化

[root@vm ~]# mkfs.ext3 /dev/vg01/lv01 //格式化为EXT3文件系统mke2fs 1.39 (29-May-2006)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

256000 inodes, 512000 blocks

25600 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=524288000

16 block groups

32768 blocks per group, 32768 fragments per group

16000 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912

Writing inode tables: done

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override. [root@vm ~]#

6、挂载

[root@vm ~]# mount /dev/vg01/lv01 /mnt/

[root@vm ~]# cd /mnt/

[root@vm mnt]# ll

total 16

drwx------ 2 root root 16384 Jul 31 22:45 lost+found

[root@vm mnt]# //至此,LVM创建完毕。

B、为LM创建快照

LVM提供了对任意一个Logical Volume(LV)做“快照”(snapshot)的功能,以此来获得一个分区的状态一致性备份。

在某一个状态下做备份的时候,可能有应用正在访问某一个文件或者数据库,这就是使得备份的时候文件处于一个状态,而备份完后,文件却处于另外一个状态,从而造成备份的非一致性,这种状态恢复数据库数据几乎不会成功。

状态的解决办法是将其分区挂载为只读,然后通过数据库的表级别锁定(table-level write locks)甚至停止数据库来备份数据。所有这些方法无意严重影响了服务的可用性。使用LVM snapshot既可以获得一致性备份,又不会影响服务器的可用性。

要提醒一点是,snapshot这种方法仅对LVM有效,对于非LVM 文件系统无效。

LVM快照通过把文件系统的改变记录到一个快照分区,而不是对这个分区做镜像。因此当你创建一个快照分区时,你不需要使用和你正创建快照的分区一样大小的分区,而是在做快照过程中需要改变的大小。这取决于有多少数据正在写入分区和你希望保留LVM快照多长时间。你保留的时间越长,在文件系统的的改变越多,更多的快照分区就会被填充改变的信息。在分区上的改变率越高,快照的平均生命期越短。如果一个LVM分区的改变量超过了快照的大小,那么快

照就会被释放。

这里为上一步创建的LVM (lv01)创建快照。

创建之前先往lv01里面拷入部分文件:

为lv01创建快照:

[root@vm ~]# lvcreate -L 100M -n snap_lv01 -s /dev/vg01/lv01

// -s 参数指定快照snap_lv01的源为/dev/vg01/lv01

/dev/cdrom: open failed: Read-only file system

Logical volume "snap_lv01" created

[root@vm ~]# lvdisplay /dev/vg01/snap_lv01

--- Logical volume ---

LV Name /dev/vg01/snap_lv01

VG Name vg01

LV UUID 7zb1VE-1QBN-1eq2-lmhO-9FpD-PAvt-c7KnO8 LV Write Access read/write

LV snapshot status active destination for /dev/vg01/lv01

//注意此处指明了此LVM为/dev/vg01/lv01的快照

LV Status available

# open 0

LV Size 1.95 GB

Current LE 500

COW-table size 100.00 MB

COW-table LE 25

Allocated to snapshot 0.01%

Snapshot chunk size 4.00 KB

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 256

Block device 253:1

[root@vm ~]#

紧接着,我们可以挂载此快照,查看里面的内容:

文件内同和lv01里面的内同一致。需要注意的是,snap_lv01为lv01的快照,其大小只有100M,因此如果向lv01里面写入超过100M 的数据,snap_lv01即将损坏。实验过程如下:

然后再查看LVM状态:

由上可以看出,snap_lv01已经变为不可用状态,此时如果卸载snap_lv01,将不能再次挂载——快照已经损坏:

至此,LVM快照实验全部完成。

C、添加、删除和调整LVM大小

增加LVM大小,2种方法可以增加LVM大小,如果VG里面有剩余没有分配给LVM的空间,可以直接使用lvresize或者lvextend命令增加,如果没有足够的VG空间,可以在线添加新的PV,然后将新增加的PV加入到VG里面,即加大了VG空间大小,然后再使用lvresize 或者lvextend命令即可。

需要注意的是,调整了LVM大小后,还需要使用resize2fs命令在线调整该LVM大小,否则使用df –h 命令查看LVM的大小没有改变的。

(1)增加LVM过程如下:

创建一个2000M的lv01:

上图显示vg大小为4.59G,因此VG尚有未分配的空间。格式化lv01并且挂载,拷入部分数据。

查看文件系统空间使用情况:

使用剩余的未分配的vg空间增大LVM的大小。

紧接着挂载LVM。

可以看到,挂载后磁盘空间并没有变化,此时需要在线调整大小:

再查看LVM里面的文件内容:

可以看到文件内同没有变化。

以上是利用剩余的vg空间在线增加LVM大小,另外一种方法是在没有未分配的vg空间的情况下,通过增加pv的数量来增加vg的大小,从而实现增加LVM的大小:

在线添加一个vg,结果如下:

再查看调整之前的vg大小:

将新创建的pv (sdb8)在线假如到vg里面,然后查看vg大小:

同样,再调整LVM的大小:

文件内容并没有丢失:

(2)减小LVM大小

虽然Linux提供了减小LVM的命令,但一般情况下不建议减小,

此处也不做讨论。

(3)删除pv,vg和LVM:

删除LVM:

删除vg:

删除pv:

至此,RHEL5中LVM相关实验部分全部完成。

相关主题
相关文档
最新文档