LVM 逻辑卷管理

术语

物理存储介质(The physical media):指的是系统的存储设备,如上面制作的分区/dev/sdb1、/dev/sdc1、/dev/sdd5

物理卷(PV: Physical Volume):相当于物理存储介质,但添加了与LVM相关的管理参数。

卷组(VG: Volume Group):由一个或多个物理卷组成。

逻辑卷(LV: Logical Volume):在卷组的基础上划分的逻辑分区(文件系统)。

PE(physical extent):每一个物理卷被划分为称为PE的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。

LE(logical extent):逻辑卷也被划分为被称为LE的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应

步骤

1、创建分区

可以使用fdisk或parted进行分区,和前面举例中的区别仅仅是分区类型要选8e。这里将三块新硬盘的剩余空间做成LVM分区,parted方式(仅举一例,其余略):

1

2

parted -s /dev/sdb mkpart primary 107GB 100%

parted -s /dev/sdb toggle 2 lvm  #表示将第二个分区定义为lvm类型(8e)

2、 创建PV

1

2

3

4

5

6

7

8

9

10

11

12

[root@idc-v-71252 ~]# pvcreate /dev/sd[bcd]2

  Physical volume "/dev/sdb2" successfully created

  Physical volume "/dev/sdc2" successfully created

  Physical volume "/dev/sdd2" successfully created

[root@idc-v-71252 ~]#

#查看

[root@idc-v-71252 ~]# pvscan

  PV /dev/sda2  VG centos  lvm2 [79.51 GiB / 64.00 MiB free]

  PV /dev/sdb2              lvm2 [100.00 GiB]

  PV /dev/sdc2              lvm2 [106.87 GiB]

  PV /dev/sdd2              lvm2 [93.13 GiB]

  Total: 4 [379.50 GiB] / in use: 1 [79.51 GiB] / in no VG: 3 [300.00 GiB]

3、 创建VG

1

2

3

4

5

6

7

8

[root@idc-v-71252 ~]# vgcreate -s 8M test_lvm /dev/sd[bcd]2

  Volume group "test_lvm" successfully created

#这里使用选项-s指定PE大小为8M,卷组起名为test_lvm

#查看

[root@idc-v-71252 ~]# vgscan

  Reading all physical volumes.  This may take a while...

  Found volume group "centos" using metadata type lvm2

  Found volume group "test_lvm" using metadata type lvm2

4、创建LV

1

2

3

4

5

6

7

8

9

10

11

[root@idc-v-71252 ~]# lvcreate -n test_1 -L 50G test_lvm

  Logical volume "test_1" created.

[root@idc-v-71252 ~]#

#选项-n指定LV名为test_1,-L指定大小,也可以用选项-l指定LE的数量

#查看

[root@idc-v-71252 ~]# lvscan

  ACTIVE            '/dev/centos/swap' [7.88 GiB] inherit

  ACTIVE            '/dev/centos/home' [23.48 GiB] inherit

  ACTIVE            '/dev/centos/root' [48.09 GiB] inherit

  ACTIVE            '/dev/test_lvm/test_1' [50.00 GiB] inherit

[root@idc-v-71252 ~]#

5、格式化及挂载

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#在这里进行格式化,第一步分区之后并不需要格式化。

#这里我们格式化成xfs格式

[root@idc-v-71252 ~]# mkfs.xfs /dev/test_lvm/test_1

meta-data=/dev/test_lvm/test_1  isize=256    agcount=4, agsize=3276800 blks

        =                      sectsz=512  attr=2, projid32bit=1

        =                      crc=0        finobt=0

data    =                      bsize=4096  blocks=13107200, imaxpct=25

        =                      sunit=0      swidth=0 blks

naming  =version 2              bsize=4096  ascii-ci=0 ftype=0

log      =internal log          bsize=4096  blocks=6400, version=2

        =                      sectsz=512  sunit=0 blks, lazy-count=1

realtime =none                  extsz=4096  blocks=0, rtextents=0

[root@idc-v-71252 ~]# mount /dev/test_lvm/test_1 /root/temp/test_1

[root@idc-v-71252 ~]# df -h|grep ^/dev

/dev/mapper/centos-root      49G  22G  27G  44% /

/dev/sda1                    497M  170M  328M  35% /boot

/dev/mapper/centos-home      24G  16G  7.6G  68% /home

/dev/sdb1                    99G  61M  94G    1% /root/temp/tmp

/dev/sdc1                    92G  61M  87G    1% /root/temp/tmp_1

/dev/sdd5                    92G  61M  87G    1% /root/temp/tmp_2

/dev/mapper/test_lvm-test_1  50G  33M  50G    1% /root/temp/test_1

这里文件系统之所以显示为/dev/mapper/….是因为内核利用Mapper Device机制将设备做了映射:

1

2

3

4

[root@idc-v-71252 ~]# ls -l /dev/mapper/test_lvm-test_1

lrwxrwxrwx 1 root root 7 12月 14 09:58 /dev/mapper/test_lvm-test_1 -> ../dm-3

[root@idc-v-71252 ~]# ls -l /dev/test_lvm/test_1

lrwxrwxrwx 1 root root 7 12月 14 09:58 /dev/test_lvm/test_1 -> ../dm-3

实际上/dev/test_lvm/test_1和/dev/mapper/test_lvm-test_1指向了同一个设备/dev/dm-3(在配置文件/etc/fstab中写任意一种都可以),这里就不对映射机制做详细展开了。

命令

前面举例中说到了几个创建和查看命令,除此之外,LVM还有一系列的命令,它们都以pv/vg/lv开头,所起的作用大多是增加、删除、扩充、缩减、查看、改变等等。

创建命令

1

pvcreate vgcreate lvcreate

查看命令分三类,显示信息侧重或详细程度不同:

1

2

3

pvs pvscan pvdisplay

vgs vgscan vgdisplay

lvs lvscan lvdisplay

改变属性(分别改变本层次上对象的属性)

1

pvchange vgchange lvchange

扩容

1

vgextend lvextend

缩减(慎用)

1

vgreduce lvreduce

改名

1

vgrename lvrename

你可能感兴趣的:(LVM 逻辑卷管理)