一,LVM简介:
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。
与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为应用与用户分配存储空间。在LVM管理下的存储卷可以按需要随时改变大小与移除(可能需对文件系统工具进行升级)。LVM也允许按用户组对存储卷进行管理,允许管理员用更直观的名称(如"sales'、 'development')代替物理磁盘名(如'sda'、'sdb')来标识存储卷。列如:四个磁盘分区可以组成一个很大的空间,然后在这些空间上划分一些逻辑分区,当一个逻辑分区的空间不够用的时候,可以从剩余空间上划分一些空间给空间不够用的分区使用。
PV(phyical volume):是物理的磁盘分区
VG(volume group):LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库或者是几个大的硬盘。
LV(logical extent):也就是从VG中划分的逻辑分区
二,创建和管理LVM
1,创建分区
使用分区工具fdisk创建lvm分区,方法和创建其他一般分区的方法一样,区别LVM的分区类型为8e,如下图查看当前分区
使用fdisk创建分区,并进入分区进行管理
最后要保存修改
注意:划分分区的类型为8e,这是LVM的分区格式。
2,创建PV,如下图所示: pvcreate /dev/sdb3
查看刚才创建的命令:pvdisplay(pvs或pvscan)来查看简略信息。
1
2
3
4
5
6
|
[root@GJB-UAT ~]
# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb3
VolGroup00 lvm2 a-- 100.00g 1020.00m
[root@GJB-UAT ~]
# pvscan
PV
/dev/sdb3
VG VolGroup00 lvm2 [100.00 GiB / 1020.00 MiB
free
]
Total: 1 [100.00 GiB] /
in
use: 1 [100.00 GiB] /
in
no VG: 0 [0 ]
|
3,创建和扩展VG(vgcreate VolGroup00 /dev/sdb1)如果有的话直接扩展,没有的话先创建在扩展
[root@localhost ~]#yum -y install parted
[root@localhost ~]# partprobe (不重启使分区表有效)
vgdisplay(vgs或vgscan)查看是否创建或扩展成功。
说明:
VG Name VG的名称
VG Size VG的总大小
PE Size PE的大小,默认为4MB
Total PE PE的总数量,5114 x 4MB = 19.98GB
Free PE / Size 剩余空间大小
同样可以使用命令vgs 和vgscan 查看
1
2
3
4
5
6
|
[root@GJB-UAT ~]
# vgs
VG
#PV #LV #SN Attr VSize VFree
VolGroup00 1 1 0 wz--n- 100.00g 1020.00m
[root@GJB-UAT ~]
# vgscan
Reading all physical volumes. This may take a
while
...
Found volume group
"VolGroup00"
using metadata
type
lvm2
|
4,创建LV(lvcreate -L +100G -n lv1 VolGroup00)
1
2
|
[root@GJB-UAT ~]
# lvcreate -L +100G -n lv1 VolGroup00
Logical volume
"lv1"
already exists
in
volume group
"VolGroup00"
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[root@GJB-UAT ~]
# lvdisplay
--- Logical volume ---
LV Path
/dev/VolGroup00/lv1
LV Name lv1
VG Name VolGroup00
LV UUID XX9spD-gBIC-RwNY-V6Tf-xZUp-du0c-Aq4Vln
LV Write Access
read
/write
LV Creation host,
time
GJB-UAT, 2017-03-21 15:15:13 +0800
LV Status available
# open 1
LV Size 99.00 GiB
Current LE 25344
Segments 1
Allocation inherit
Read ahead sectors auto
- currently
set
to 256
Block device 253:0
|
注意:
-L 指定创建的LV 的大小
-l 指定创建的LV 的PE 数量
-n LV的名字
上面的意思是:从VolGroup00卷组中分出100G的空间给lv1使用
使用lvdisplay来进行查看LV的情况。如果减少的话,只需 lvcreate -L -100G -n lv1 VolGroup00即可。
5,格式化LV( mkfs -t ext3 /dev/VolGroup00/lv1)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@localhost ~]
# mkfs -t ext3 /dev/VolGroup00/lv1
[root@localhost ~]
#mkdir /test
[root@localhost ~]
#mount /dev/VolGroup00/lv1 /test
mount
:
/dev/mapper/VolGroup00-lv1
already mounted or
/test
busy
mount
: according to mtab,
/dev/mapper/VolGroup00-lv1
is already mounted on
/test
[root@GJB-UAT ~]
# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/sda2
9.7G 4.4G 4.8G 49% /
tmpfs 7.8G 0 7.8G 0%
/dev/shm
/dev/sda1
194M 27M 158M 15%
/boot
/dev/sda5
12G 295M 11G 3%
/data
/dev/mapper/VolGroup00-lv1
98G 19G 74G 21%
/test
|
备注:
可以看到刚添加的100G容量。如果是原先都有的话,可以直接扩展就可以了如下:
[root@localhost ~]# resize2fs /dev/VolGroup/lv_root #执行该重设大小,对于当前正在使用的LogVol01有效
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/VolGroup/lv_root to 3934208 (4k) blocks.
The filesystem on /dev/VolGroup/lv_root is now 3934208 blocks long.
6,把新分区写入到配置文件/etc/fstab.如果系统重启的话就可以自动加载了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@GJB-UAT ~]
#vim /etc/fstab
# /etc/fstab
# Created by anaconda on Wed Jun 22 17:32:40 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9100c104-010a-418c-80e7-29e88fd746ce / ext4 defaults 1 1
UUID=d157a57e-325a-459d-ad27-a1ee880ed836
/boot
ext4 defaults 1 2
UUID=19c71233-9130-4296-8551-72c05e14e613
/data
ext4 defaults 1 2
UUID=a8c629c6-34bc-4c28-92e0-768bf0e0f235 swap swap defaults 0 0
tmpfs
/dev/shm
tmpfs defaults 0 0
devpts
/dev/pts
devpts gid=5,mode=620 0 0
sysfs
/sys
sysfs defaults 0 0
proc
/proc
proc defaults 0 0
/dev/VolGroup00/lv1
/test
ext3 defaults 1 2
|
常用的命令:
1
2
3
4
|
[root@iZ23iod5vslZ ~]
# blkid
/dev/xvda1
: UUID=
"6634633e-001d-43ba-8fab-202f1df93339"
TYPE=
"ext4"
/dev/xvdb1
: UUID=
"8c3bc2d1-429c-4c09-a501-6dffbf9250ee"
TYPE=
"ext3"
/dev/xvdc1
: UUID=
"2ea5998b-8a44-458d-b1fa-630302dbf212"
TYPE=
"ext4"
|
本文参考:http://www.cnblogs.com/gaojun/archive/2012/08/22/2650229.html
本文转自 lqbyz 51CTO博客,原文链接:http://blog.51cto.com/liqingbiao/1708371