LVM的简单配置
主要内容LVM的简单介绍
LVM的配置与管理
LVM快照卷
LVM的简单介绍
作为一个linux用户,经常会碰到情况:因为事先已经分好了区,用着用着磁盘不够用了,而重新分区,又会对数据造成影响,有时候还需要重启。对个人用户来说问题倒不是很大,但对于企业来说无疑会造成重大损失。而LVM可以很好地解决这种问题。
逻辑滚动栏管理器(Logical Volume Manager,缩写为LVM),又译为逻辑卷宗管理器、逻辑磁盘管理器,是Linux核心所提供的逻辑滚动栏管理功能。它在硬盘的硬盘分区之上,又创建一个逻辑层,以方便系统管理硬盘分区系统。
优点:
接口统一,管理方式统一,还可以进行动态卷扩展
图例:
名词解释
物理卷(PV)
物理卷是指硬盘分区或者从逻辑上看起来和硬盘分区类似的设备(比如RAID设备)。
卷组(VG)
一个或者多个逻辑卷组成一个卷组。对于LVM而言,卷组类似于非LVM系统中的物理硬盘。卷组把多个逻辑卷组合在一起,形成一个可管理的单元。
逻辑卷(LV)
一个或者多个物理卷组成一个逻辑卷。对于LVM而言,逻辑卷类似于非LVM系统中的硬盘分区。逻辑卷可以包含一个文件系统(比如/home或者/usr)。
物理块physical extent (PE)
物理卷按大小相等的“块”为单位存储,块的大小与卷组中逻辑卷块的大小相同。
逻辑块logical extent (LE)
逻辑卷按“块”为单位存储,在一卷组中的所有逻辑卷的块大小是相同的。
LVM的配置与管理
1. PV的创建
# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created
# pvcreate /dev/sdc2
Device /dev/sdc2 not found (or ignored by filtering).
# pvcreate /dev/sdd2
Device /dev/sdd2 not found (or ignored by filtering).
本例中将/dev/sdb2, /dev/sdc2, /dev/sdd2三个分区建立为物理卷。
查看PV信息的命令pvs或pvdisplay
# pvs
PV VG FmtAttr PSizePFree
/dev/sdb2 lvm2 a--10.00g 10.00g
/dev/sdc2 lvm2 a--10.00g 10.00g
/dev/sdd2 lvm2 a--10.00g 10.00g
# pvdisplay
"/dev/sdb2" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb2
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID FIi1X2-wkxK-5Dwm-m2xA-lLy4-C8xi-k3Momk
"/dev/sdc2" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc2
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID DuQiC5-vV0P-nPrN-Pxmw-ls6u-DltT-vLuZ1u
"/dev/sdd2" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdd2
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID tkkjyZ-auVC-zeBG-o75Y-x7Fk-tWFA-oG9Lc1
2. VG的创建
# vgcreate myvg -s 8M /dev/sdb2 /dev/sdc2 /dev/sdd2
Volume group "myvg" successfully created
-s后面指定PE大小
查看VG的信息的命令vgs和vgdisplay
# vgs
VG #PV #LV #SN Attr VSizeVFree
myvg 3 0 0 wz--n- 30.00g 30.00g
# vgdisplay
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size 30.00 GiB
PE Size 8.00 MiB
Total PE 3840
Alloc PE / Size 0 / 0
FreePE / Size 3840 / 30.00 GiB
VG UUID Q5foAw-zo14-4Ljv-tTog-cYde-EvyY-4np2Ip
3. LV的创建
# lvcreate -L 30G -n mylv myvg
Logical volume "mylv" created
-L指定LV的大小,-n为LV的名字,最后的是VG的名字
查看LV的信息的命令lvs,lvdisplay
# lvdisplay
--- Logical volume ---
LV Path /dev/myvg/mylv
LV Name mylv
VG Name myvg
LV UUID c2FPdN-t2xv-k2Nj-634C-6Tft-D0Is-V6UVOI
LV Write Access read/write
LV Creation host, time FLyence.Wu, 2013-10-08 01:12:54 +0800
LV Status available
# open 0
LV Size 30.00 GiB
Current LE 3840
Segments 3
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
4. 格式化并挂载
# mkfs.ext4 /dev/myvg/mylv
# mount /dev/myvg/mylv /mnt
# echo "hello lvm" > /mnt/hello
# ls /mnt
hellolost+found
# cat /mnt/hello
hello lvm
在新挂载的分区中,新建一个文件,之后扩张和缩减LV时,判断文件是否损坏。
5. 扩展VG
首先准备好一个PV,使用vgextend命令即可完成扩展:vgextend VG_NAME /PATH/TO/PV
# pvcreate /dev/sda10
Physical volume "/dev/sda10" successfully created
# vgextend myvg /dev/sda10
Volume group "myvg" successfully extended
# vgs
VG #PV #LV #SN Attr VSizeVFree
myvg 4 1 0 wz--n- 40.00g 10.00g
myvg由30G增加到40G。
6. 缩减VG
确定要移除的PV;
将此PV上的数据转移至其它PV:pvmove /path/to/pv
从卷组中将此PV移除:vgreduce VG_NAME /PATH/TO/PV
# pvmove /dev/sdb2
/dev/sdb2: Moved: 0.1%
/dev/sdb2: Moved: 41.6%
/dev/sdb2: Moved: 88.4%
/dev/sdb2: Moved: 100.0%
# vgreduce myvg /dev/sdb2
Removed "/dev/sdb2" from volume group "myvg"
7. 扩展逻辑卷
首先确定要扩展的大小由30G-->40G
确定当前逻辑卷所在的卷组有足够的空闲空间;
扩展:
1、物理边界 +:扩展了 不带:扩展到
lvextend -L [+]SIZE /path/to/lv
2、逻辑边界
resize2fs /path/to/device
由于刚把/dev/sdb2移除了,现在重新加回去
# vgextend myvg /dev/sdb2
Volume group "myvg" successfully extended
# vgs
VG #PV #LV #SN Attr VSizeVFree
myvg 4 1 0 wz--n- 40.00g 10.00g
# lvextend -L +10G /dev/myvg/mylv
Extending logical volume mylv to 40.00 GiB
Logical volume mylv successfully resized
# resize2fs /dev/myvg/mylv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on /mnt; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 3
Performing an on-line resize of /dev/myvg/mylv to 10485760 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 10485760 blocks long.
# lvs
LV VG Attr LSizePool Origin Data%Move Log Cpy%Sync Convert
mylv myvg -wi-ao--- 40.00g
8. 缩减逻辑卷
首先确定缩减的大小,前提是至少能容纳原有的所有数据。
40G --> 35G
缩减:
1、卸载并强行检测文件系统;
e2fsck -f
2、逻辑边界
resize2fs /path/to/device SIZE
3、物理边界
lvreduce -L [-]SIZE /path/to/l
# e2fsck -f /dev/myvg/mylv
e2fsck 1.41.12 (17-May-2010)
/dev/myvg/mylv is mounted.
e2fsck: Cannot continue, aborting.
# umount /mnt
# e2fsck -f /dev/myvg/mylv
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/myvg/mylv: 12/2621440 files (0.0% non-contiguous), 209555/10485760 blocks
# resize2fs /dev/myvg/mylv 35G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv to 9175040 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 9175040 blocks long.
# lvreduce -L -5G /dev/myvg/mylv
WARNING: Reducing active logical volume to 35.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? : y
Reducing logical volume mylv to 35.00 GiB
Logical volume mylv successfully resized
# lvs
LV VG Attr LSizePool Origin Data%Move Log Cpy%Sync Convert
mylv myvg -wi-a---- 35.00g
将mylv挂载回去,查看hello文件是否完好
# mount /dev/myvg/mylv /mnt
# ls /mnt
hellolost+found
# cat /mnt/hello
hello lvm
数据并没有损坏,需要注意的是在缩减lv时,有风险,可能会造成数据损坏
LVM快照卷
逻辑卷管理(LVM)提供了为任何逻辑卷作一个快照的功能,目的是在一致的状态下来得到一个分区的备份.因为在备份过程中,应用程序可能访问一个分区的文件或者数据库.一些文件可能在一个状态被备份,而后面的文件可能在一个更新后被备份,导致备份的不完整。使用快照卷后,当文件发生变化时,先复制一份放到快照卷中。备份时,通过快照卷去访问分区
LVM 快照通过把文件系统的改变记录到一个快照分区,而不是对这个分区做镜像.因此当你创建一个快照分区时,你不需要使用和你正创建快照的分区一样大小的分区, 而是在做快照过程中需要改变的大小.这取决于有多少数据正在写入分区和你希望保留LVM快照多长 时间. 你保留的时间越长,在文件系统的的改变越多,更多的快照分区就会被填充改变的信息.在分区上的改变率越高,快照的平均生命期越短.如果一个LVM分区的改变量超过了快照的大小,那么快照就会被释放。
# lvcreate -L 500M -s -p r -n mylvsnap /dev/myvg/mylv
Rounding up size to full physical extent 504.00 MiB
Logical volume "mylvsnap" created
#-L指定快照卷大小,-s创建快照卷,-p r限制快照卷为只读访问,-n指定快照卷名称
建立后以只读形式挂载快照卷
# mount -o ro /dev/myvg/mylvsnap /media
改动/mnt里的hello文件,然后比较/mnt和/media中hello的差异
# echo "hello,lvm snap" >> /mnt/hello
# cat /mnt/hello
hello lvm
hello,lvm snap
# cat /media/hello
hello lvm
这是什么东东啊 我不在江湖,但江湖中有我的传说。 女,喜甜食,甚胖!该女有一癖好:痛恨蚂蚁,见必杀之。问其故曰:这小东西,那么爱吃甜食,腰还那么细! 这是什么东东啊 不错不错,楼主您辛苦了。。。 我身在江湖,江湖里却没有我得传说。
页:
[1]