一、基本知识
1. LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
2. 物理卷(Physical Volume PV),物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
3. 卷组(Volume Group VG),卷组类似于非LVM系统中的物理硬盘,由物理卷组成。在一个卷组当中可以包含多个物理卷,卷组的边界大小就取决于底层物理卷加起来总共有多大,PV组合起来的大小就是VG的大小。
4. 逻辑卷(Logical Volume LV),LVM的逻辑卷类似于非LVM系统中的硬盘分区,每一个逻辑卷就是一个独立的文件系统,当做一个独立的分区来使用。一个VG可以划分出多个LV来,所有LV大小相加不能超过VG的边界。逻辑卷才是真正意义上的可以动态扩展和缩减的设备。
5. 物理块(Physical Extend PE),物理块是数据在磁盘上的存取单位,也就是每进行一次I/O操作,最小传输的数据大小。 物理卷只有加入卷组后才有PE。
6. 逻辑块(Logical Extend LE),文件系统管理的是一个逻辑空间,这个逻辑空间就象一个大的数组,数组的每个元素就是文件系统操作的基本单位——逻辑块,逻辑块是从0开始编号的,而且,逻辑块是连续的。通过逻辑块看到的就是卷组中的一个个PE。
二、操作练习
1. 删除一个分区:
# fdisk /dev/vdb
对/dev/vdb硬盘进行操作
# d
删除命令
# 2
选择删除的分区
2. 先创建分区:
# fdisk -l
创建之前 查看分区
在/dev/vdb 上创建3个分区:
vdb2 10G
vdb3 5G
vdb4 4G
# fdisk /dev/vdb
在硬盘/dev/vdb上创建分区
# n
新建
# p
选择主分区
# 2
分区号2
#
回车
# +10G
分区大小10G
# t
指定分区类型
# 2
要指定的分区号
# 8e
8e表示分区使用LVM类型,输入大写L可以查看分区类型的标识
# p
查看分区
# partprobe /dev/vdb
重读分区表,确保内核可以看到最新的分区
出现错误:Warning: WARNING: the kernel failed to re-read the partition table
on /dev/vdb (设备或资源忙). As a result, it may not reflect all of your changes until
after reboot.
这时需要重启一下服务器
# init 6
# cat /proc/partitions
查看分区表信息 分区没有问题
3. 实现物理卷PV的创建:
# pvcreate /dev/vdb{2,3,4}
# pvs
查看当前系统的pv
# pvdisplay
查看pv详细信息
# pvdisplay /dev/vdb2
查看某个PV的详细信息
物理卷只有加入卷组后才有PE
# pvscan
扫描当前系统下一共有多少个PV
4. 实现卷组VG的创建:
# vgcreate testvg /dev/vdb{2,3}
创建VG
# vgs
查看当前系统的vg
# vgdisplay
查看vg的详细信息
可以使用pvs查看一个vg中有几个pv
5. 实现逻辑卷LV的创建:
# lvcreate -L 10G -n testlv testvg
# lvs
查看lv信息
# lvdisplay /dev/testvg/testlv
查看lv的详细信息
# mke2fs -j /dev/testvg/testlv
格式化,建立文件系统
# mount /dev/testvg/testlv /test
挂载
lv的真实路径/dev/mapper/testvg-testlv 所以不能使用-创建卷组名
# ls -l /dev/mapper
# ls -l /dev/testvg
开机自动挂载
vim /etc/fstab
加上 /dev/myvg/testlv /users ext3 defaults,acl 0 0
echo /dev/testvg/testlv /test ext3 defaults,acl 0 0 >> /etc/fstab
# mount -a
检查挂载是否有问题
三、应用
1. 扩展逻辑卷
扩展的前提是并不影响逻辑卷原有的数据。扩展的风险其实非常小。
文件系统边界我们称为逻辑边界,逻辑边界是紧靠在物理边界上创建的。
第一步 先扩展物理边界
第二部 扩展逻辑边界
# df -lh
查看磁盘大小
当前逻辑卷为10G
# lvextend -L 12G /dev/testvg/testlv
只扩展了物理边界,扩展到12G。
再扩展逻辑边界
# resize2fs -p /dev/testvg/testlv
2. 缩减逻辑卷
缩减的前提是并不影响逻辑卷原有的数据,缩减逻辑卷的风险是很大的。
第一步 缩减逻辑边界
第二部 缩减物理边界
注意:
(1)、不能在线缩减,得先卸载;
(2)、确保缩减后的空间大小依然能存储原有的所有数据;
(3)、在缩减之前应该先强行检查文件,以确保文件系统处于一至性状态。
# df -lh
确保缩减后的空间不会小于已经使用的空间
# umount /test
# e2fsck -f /dev/testvg/testlv
检查文件系统的正确性
# resize2fs /dev/testvg/testlv 3G
缩减逻辑边界
# lvreduce -L 3G /dev/testvg/testlv
缩减物理边界
# mount -a
挂载
3. 快照卷
快照能够保留我们创建快照那一刻的数据。
创建快照卷时要注意:
(1) 生命周期为整个数据时长;在这段时长内,数据的增长量不能超出快照卷大小;
(2) 快照卷应该是只读的;
(3) 跟原卷在同一卷组内。
使用命令:
lvcreate
-s 表示快照卷
-n 为快照命名
-p r | w 指定权限
# lvcreate -L #(如1GB,此处表示创建快照的大小) -s(表示创建快照) -n(后接快照名) SLV_NAME -p(后面接权限) r /PATH/TO/LV(要创建快照的卷)
# lvcreate -L 100M -n testsnap -s -p r /dev/testvg/testlv
# lvs
# mount /dev/testvg/testsnap /mnt
挂载快照
快照创建后 原卷的改变不会影响快照中的数据的
做完全备份
# tar -jcf /tmp/test.tar.bz2 /mnt/*
备份快照
# umount /mnt
# lvremove /dev/testvg/testsnap
还原
# tar xf /tmp/users.tar.bz2 -C ./
-C 展开在什么地方去
本文出自 “scalpels” 博客,请务必保留此出处http://scalpels.blog.51cto.com/10181967/1652428
原文地址:http://scalpels.blog.51cto.com/10181967/1652428