术语
物理存储介质(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