LVM:Logical Volume Manager (逻辑 卷 管理)
逻辑卷是由逻辑磁盘形成的虚拟盘,也可称为磁盘分区 LVM与直接使用物理存储相比,有以下优点:
1. 灵活的容量.
当使用逻辑卷时,文件系统可以扩展到多个磁盘上,你可以聚合多个磁盘或磁盘分区成单一的逻辑卷.
2.可伸缩的存储池.
你可以使用简单的命令来扩大或缩小逻辑卷大小,不用重新格式化或分区磁盘设备.
3.在线的数据再分配.
你可以在线移动数据,数据可以在磁盘在线的情况下重新分配.比如,你可以在线更换可热插拔的磁盘.
4. 方便的设备命名
逻辑卷可以按你觉得方便的方式来起任何名称.
5.磁盘条块化.
你可以生成一个逻辑盘,它的数据可以被条块化存储在2个或更多的磁盘上.这样可以明显提升数据吞吐量.
创建逻辑卷过程: physical volume 物理卷 ----> volume group 卷组 (被卷组指定后称 PE:Physical Extent物理盘区 逻辑)----> logical volume 逻辑卷(当PE划分给lv时 这时lv称 le逻辑盘区)----> 文件系统(只需格式化一次)
逻辑卷设备文件: dm:device mapper /dev/卷组名/逻辑卷名 --> /dev/mapper/卷组名-逻辑卷名
注意:分区时候 逻辑卷格式调整为 8e (查看L 修改t )
以下具体实现:
创建物理卷 pv
pvcreate
| 将dev下分区partition建立成为pv
| pvscan
| 检索目前系统中具有pv的磁盘,显示pv
| pvdisplay
| 显示系统中pv的状态
| pvremove
| 删除pv,该partition不在具有pv属性
| pvmove
| 可以将一个分区pe块上的数据转移到另一个分区的pe块上
|
创建pv
1
2
3
4
5
6
7
8
9
| /dev/sda10 3713 3738 208813+ 8e Linux LVM
/dev/sda11 3739 3803 522081 8e Linux LVM
[iyunv@marco vg1]# pvcreate /dev/sda10
Physical volume "/dev/sda10" successfully created
[iyunv@marco ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda10 lvm2 --- 203.92m 203.9
|
卷组管理 vg
vgcreate
| 创建VG -s 指定pe大小默认4MB
| vgscan
| 简要显示系统上的vg信息
| vgdisplay
| 显示vg的状态 [vgname]
| vgextend
| 在VG上增加额外的pv(扩展VG)
| vgreduce
| 在VG上移除pv(缩减VG)
| vgchange
| 设定VG是否启动
| vgremove
| 删除VG
| 创建vg:
1
2
3
4
5
| [iyunv@marco ~]# vgcreate vg3 /dev/sda10
Volume group "vg3" successfully created
[iyunv@marco ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg3 1 0 0 wz--n- 200.00m 200.00m
|
删除vg:
1
2
3
4
| [iyunv@marco ~]# vgremove vg3
Volume group "vg3" successfully removed
[iyunv@marco ~]# vgs
VG #PV #LV #SN Attr VSize VFree
|
逻辑卷的管理:lv
lvcreate, lvdisplay, lvs, lvextend, lvreduce, lvremove
lvs | 查看逻辑卷组 | lvcreate | -L:空间大小 -n : lvname | lvscan | 查看系统上的lv | lvdisplay | 显示lv状态 | lvextend | 扩大lv容量 -L:空间大小 -n : lvname | lvreduce | 缩减lv容量 -L:空间大小 -n : lvname | lvresize | 重新设置lv容量 | lvremove | 删除lv | 创建lv:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| [iyunv@marco ~]# lvcreate -L 200M -n lv3 vg3
Logical volume "lv3" created.
[iyunv@marco ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv3 vg3 -wi-a----- 200.00m
[iyunv@marco ~]# lvdisplay /dev/vg3/lv3
--- Logical volume ---
LV Path /dev/vg3/lv3
LV Name lv3
VG Name vg3
LV UUID qQNLZm-vDOw-WmR6-EdFA-uwh7-TPmS-62XJzt
LV Write Access read/write
LV Creation host, time marco, 2016-05-06 19:36:59 +0800
LV Status available
# open 0
LV Size 200.00 MiB
Current LE 50
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:4
[iyunv@marco ~]# mke2fs -t ext4 /dev/vg3/lv3
|
挂载: 1
2
3
4
5
6
7
8
9
| [iyunv@marco ~]# mkdir /vg3
[iyunv@marco ~]# mount /dev/vg3/lv3 /vg3
[iyunv@marco ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg3-lv3 190M 1.6M 179M 1% /vg3
[iyunv@marco ~]# cd /vg3/
[iyunv@marco vg3]# cp /etc/passwd ./
[iyunv@marco vg3]# ls
lost+found passwd
|
添加一个分区:
(注意:1、先确定扩展的大小;并确保所属的卷组有足够的剩余空间;2、扩展物理边界;3、扩展逻辑边界) 1
2
3
4
5
6
7
8
9
10
11
12
13
| [iyunv@marco vg3]# pvcreate /dev/sda11
[iyunv@marco vg3]# vgextend vg3 /dev/sda11
root@marco vg3]# vgs
VG #PV #LV #SN Attr VSize VFree
vg3 2 1 0 wz--n- 708.00m 508.00m
[iyunv@marco vg3]# lvextend -L 708M /dev/vg3/lv3
[iyunv@marco vg3]# resize2fs /dev/vg3/lv3
[iyunv@marco vg3]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv3 vg3 -wi-ao---- 708.00m
[iyunv@marco vg3]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg3-lv3 682M 2.5M 644M 1% /vg3
|
卸载分区:(如果条件允许,请先umount)
1、卸载卷,并执行强制检测
1
| [iyunv@marco /]# e2fsck -f /dev/vg3/lv3
|
2、缩减逻辑边界:
1
| [iyunv@marco /]# resize2fs /dev/vg3/lv3 100M
|
3、缩减物理边界:
1
| [iyunv@marco /]# lvreduce -L 100M /dev/vg3/lv3
|
查看:
1
2
3
| [iyunv@marco /]# vgs
VG #PV #LV #SN Attr VSize VFree
vg3 2 1 0 wz--n- 708.00m 608.00m
|
4、数据转移:
1
| [iyunv@marco /]# pvmove /dev/sda11 /dev/sda10
|
5、移除设备所在的卷组
1
| [iyunv@marco /]# vgreduce vg3 /dev/sda11
|
6、移除物理卷
1
| [iyunv@marco /]# pvremove /dev/sda11
|
完毕
|