CentOS 6.3下配置LVM(逻辑卷管理)

CentOS 6.3下配置LVM(逻辑卷管理)html

1、简介linux

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是创建在硬盘和分区之上的一个逻辑层,来提升磁盘分区管理的灵活性。centos

LVM的工做原理其实很简单,它就是经过将底层的物理硬盘抽象的封装起来,而后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,咱们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其经过对底层的硬盘进行封装,当咱们对底层的物理硬盘进行操做时,其再也不是针对于分区进行操做,而是经过一个叫作逻辑卷的东西来对其进行底层的磁盘管理操做。好比说我增长一个物理硬盘,这个时候上层的服务是感受不到的,由于呈现给上层服务的是以逻辑卷的方式。ide

LVM最大的特色就是能够对磁盘进行动态管理。由于逻辑卷的大小是能够动态调整的,并且不会丢失现有的数据。若是咱们新增长了硬盘,其也不会改变现有上层的逻辑卷。做为一个动态磁盘管理机制,逻辑卷技术大大提升了磁盘管理的灵活性。工具

基本的逻辑卷管理概念:post

PV(Physical Volume)- 物理卷
物理卷在逻辑卷管理中处于最底层,它能够是实际物理硬盘上的分区,也能够是整个物理硬盘,也能够是raid设备测试

VG(Volumne Group)- 卷组
卷组创建在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组创建以后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中能够只有一个卷组,也能够拥有多个卷组。url

LV(Logical Volume)- 逻辑卷
逻辑卷创建在卷组之上,卷组中的未分配空间能够用于创建新的逻辑卷,逻辑卷创建后能够动态地扩展和缩小空间。系统中的多个逻辑卷能够属于同一个卷组,也能够属于不一样的多个卷组。spa

关系图以下:htm

63

PE(Physical Extent)- 物理块

LVM 默认使用4MB的PE区块,而LVM的LV最多仅能含有65534个PE (lvm1 的格式),所以默认的LVM的LV最大容量为4M*65534/(1024M/G)=256G。PE是整个LVM 最小的储存区块,也就是说,其实咱们的资料都是由写入PE 来处理的。简单的说,这个PE 就有点像文件系统里面的block 大小。因此调整PE 会影响到LVM 的最大容量!不过,在 CentOS 6.x 之后,因为直接使用 lvm2 的各项格式功能,所以这个限制已经不存在了。

pe_vg

2、系统环境

实验环境:Oracle VM VirtualBox

系统平台:CentOS release 6.3 (Final)

mdadm 版本:mdadm - v3.2.6 - 25th October 2012

LVM 版本:lvm2-2.02.100-8.el6.i686

设备类型:分区、物理硬盘、raid 设备

3、磁盘准备

在这篇文章中,咱们将模拟raid五、分区、物理硬盘三种类型设备建立VG,raid5 须要四块硬盘,分区和物理硬盘各一块硬盘,还有扩容时须要至少一块硬盘,因此在虚拟机里添加八块硬盘,每块5GB.

1

4、安装LVM管理工具

4.1 检查系统中是否安装了LVM管理工具

# rpm -qa|grep lvm

4.2 若是未安装,则使用yum 方式安装

# yum install lvm*

# rpm -qa|grep lvm

3

5、新建一个raid5 设备

使用/dev/sdb, /dev/sdc, /dev/sdd, /dev/sde 四块物理硬盘作软raid模拟。

# mdadm -C /dev/md5 -ayes -l5 -n3 -x1 /dev/sd[b,c,d,e]

2

写入RAID配置文件/etc/mdadm.conf 并作适当修改。

# echo DEVICE /dev/sd{b,c,d,e} >> /etc/mdadm.conf

# mdadm –Ds >> /etc/mdadm.conf

详细请参考上篇文章:http://www.cnblogs.com/mchina/p/linux-centos-disk-array-software_raid.html

6、新建一个分区

使用/dev/sdf 模拟分区。

# fdisk /dev/sdf

# fdisk -l /dev/sdf

4

准备工做就绪,下面咱们使用三种设备/dev/md五、/dev/sdf一、/dev/sdg 来完成LVM实验。

7、建立PV

# pvcreate /dev/md5 /dev/sdf1 /dev/sdg

5

查看PV

# pvdisplay

6

还可使用命令pvs 和pvscan 查看简略信息。

# pvs

7

# pvscan

8

8、建立VG

# vgcreate vg0 /dev/md5 /dev/sdf1 /dev/sdg

9

说明:vg0 是建立的VG设备的名称,能够随便取;后面接上述的三个设备,也就是把三个设备组合成一个vg0.

查看VG

# vgdisplay

10

说明:

VG Name  VG的名称

VG Size  VG的总大小

PE Size  PE的大小,默认为4MB

Total PE  PE的总数量,5114 x 4MB = 19.98GB

Free PE / Size  剩余空间大小

一样可使用命令vgs 和vgscan 查看。

# vgs

11

# vgscan

12

9、建立LV

# lvcreate -L 5G -n lv1 vg0

13

说明:

-L 指定建立的LV 的大小
-l 指定建立的LV 的PE 数量
-n LV的名字
上面命令的意思是:从vg0 中分出5G的空间给lv1 使用

查看LV的信息

# lvdisplay

14

说明:

LV Path  LV的路径,全名

LV Name  LV的名字

VG Name  所属的VG

LV Size  LV的大小

再来看VG 的信息

# vgs

15

VFree 从19.98g 减小到了14.98g,另外的5g 被分配到了lv1.

10、格式化LV

# mkfs.ext4 /dev/vg0/lv1

16

11、挂载使用

# mkdir /mnt/lv1

# mount /dev/vg0/lv1 /mnt/lv1/

# df –TH

17

将挂载信息写入/etc/fstab

18

12、添加测试数据

下面咱们将对LVM进行扩容和缩减操做,因此向/mnt/lv1 中写入测试数据以验证LVM 的磁盘动态管理。

# touch /mnt/lv1/test_lvm_dynamic.disk

# touch /mnt/lv1/test_lvm_dynamic.disk2

# touch /mnt/lv1/test_lvm_dynamic.disk3

# ll /mnt/lv1/

19

十3、LVM的扩容操做

LVM最大的好处就是能够对磁盘进行动态管理,并且不会丢失现有的数据。

假若有一天,lv1的使用量达到了80%,须要扩容,那咱们该怎么作呢?

由于vg0中还有不少剩余空间,因此咱们能够从vg0中再分配点空间给lv1。

13.1 LV的扩容

查看vg0 的剩余容量,还有14.98g 可用。

15

对lv1进行扩容。

# lvextend -L +1G /dev/vg0/lv1

20

说明:在lv1原有的基础上增长了1G.

查看如今vg0 的剩余容量,减小了1G.

21

再查看lv1的容量,从5G增长到了6G.

22

使用df –TH 命令查看实际的磁盘容量。

23

发现实际容量并无变化,由于咱们的系统还不认识刚刚添加进来的磁盘的文件系统,因此还须要对文件系统进行扩容。

# resize2fs /dev/vg0/lv1

# df –TH

24

如今的可用容量已经增长到了5.9G。

查看测试数据

25

数据正常,对lv1的在线动态扩容完成。

还有一种状况,就是假如咱们的vg0 空间不够用了,怎么办?这时咱们就须要对VG进行扩容。

13.2 VG的扩容

VG的扩容能够有两种方法,第一种方法是经过增长PV来实现,操做以下:

A. 建立PV,使用/dev/sdh 来建立一个PV。

26

B. 扩容VG

如今的vg0 容量为19.98g.

27

# vgextend vg0 /dev/sdh

# vgs

28

如今vg0 的容量为24.97g, 增长了5GB,即一块物理硬盘的容量,VG扩容成功。

第二种方法是经过扩展RAID设备的容量来间接对VG进行扩容。这种方法在上一篇文章中有介绍,这里再也不赘述,须要注意的地方是,/dev/md5 的大小变化后,须要调整PV的大小,操做以下:

# pvresize /dev/md5

29

十4、LVM的缩减操做

缩减操做须要离线处理。

14.1 LV的缩减

A. umount 文件系统

30

B. 缩减文件系统

# resize2fs /dev/vg0/lv1 4G

31

提示须要先运行磁盘检查。

C. 检查磁盘

# e2fsck –f /dev/vg0/lv1

32

D. 再次执行缩减操做

33

缩减文件系统成功,下面缩减LV的大小。

E. 缩减LV

# lvreduce /dev/vg0/lv1 –L 4G

34

说明:Step E 和Step D 缩减的大小必须保持一致,这里的4G是缩减到的大小;若是使用的是"-4G",则表示容量减小多少的意思。

F. 挂载查看

35

LV 缩减成功。

G. 查看测试数据

36

数据正常。

14.2 VG的缩减

A. umount 文件系统

37

B. 查看当前的PV详情

38

C. 将/dev/sdg 从vg0 中移除

# vgreduce vg0 /dev/sdg

39

D. 再次查看PV状况

40

/dev/sdg 已经不属于vg0了。

E. 查看vg0 的状况

41

vg0 的大小减小了5GB.

VG 缩减成功。

十5、删除LVM

若是要完全的来移除LVM的话,须要把建立的步骤反过来操做。

15.1 umount 文件系统

37

15.2 移除LV

# lvremove /dev/vg0/lv1

45

15.3 移除VG

# vgremove vg0

46

15.4 移除PV

# pvremove /dev/md5 /dev/sdf1 /dev/sdg /dev/sdh

62

LVM 移除成功。

十6、LVM 快照(snapshot)

快照就是将当时的系统信息记录下来,就好像照相同样,将来如有任何资料变更了,则原始资料会被移动到快照区,没有被改动的区域则由快照区与档案系统共享

snapshot

LVM 系统快照区域的备份示意图(虚线为档案系统,长虚线为快照区)

左图为最初创建系统快照区的情况,LVM 会预留一个区域 (左图的左侧三个PE 区块) 做为数据存放处。此时快照区内并无任何数据,而快照区与系统区共享全部的PE 数据, 所以你会看到快照区的内容与文件系统是如出一辙的。等到系统运做一阵子后,假设A 区域的数据被更动了 (上面右图所示),则更动前系统会将该区域的数据移动到快照区,因此在右图的快照区被占用了一块PE 成为A,而其余B 到I 的区块则仍是与文件系统共享!

快照区与被快照的LV 必需要在同一个VG 里。

16.1 创建LV

# lvcreate -L 100M -n lv1 vg0

# mkfs.ext4 /dev/vg0/lv1

# mount /dev/vg0/lv1 /mnt/lv1/

16.2 写入测试数据

# touch /mnt/lv1/test_lvm_snapshot_1

# touch /mnt/lv1/test_lvm_snapshot_2

# cp -a /etc/ /mnt/lv1/

# cp -a /boot/ /mnt/lv1/

51

16.3 建立快照

# lvcreate -L 80M -s -n lv1snap /dev/vg0/lv1

说明:为/dev/vg0/lv1 建立一个大小为80M,名称为lv1snap 的快照。

# lvdisplay

53

/dev/vg0/lv1snap 的LV Size 为100MB,使用量为0.01%.

16.4 将刚才建立的快照挂载查看

55

/mnt/lv1 和/mnt/snapshot 是如出一辙的。

16.5 进行档案的修改操做

56

16.6 再次查看

57

snapshot 的使用量为10.36%,原始资料有改动。

16.7 对snapshot 里的资料进行打包备份,准备还原

58

16.8 卸载并移除snapshot

59

16.9 卸载并格式化/mnt/lv1,清空数据

60

16.10 恢复数据

61

能够看到,原始数据已经成功恢复。

LVM 快照实验成功。

注意:对lv1的修改量不能超过快照的大小,因为原始数据会被搬移到快照区,若是你的快照区不够大,若原始资料被更动的实际数据量比快照区大,那么快照区固然容纳不了,这时候快照功能会失效喔

相关文章
相关标签/搜索