linux-lvm
今天,使用 df -hl 命令看到/dev/mapper/vg_*-lv_*这样的一些挂载点映射,不知道什么东西,搜搜......原来是linux下使用lvm管理磁盘产生的逻辑卷,顺便学习下什么是lvm
通常,windows下我们对磁盘空间有个错误的称呼:"c盘","d盘",其实它们是一块硬盘,这些误导我们对linux下磁盘的理解。windows下准确的称呼应该是:"c区","d区"。
LVM是 Logical Volume Manager(逻辑卷管理)的简写,是Linux环境下对磁盘分区进行管理的一种机,LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。
在使用LVM对磁盘进行动态管理以后,我们是以逻辑卷的方式呈现给上层的服务的,完整过程是:磁盘物理分区-物理卷-卷组-逻辑卷-挂载到目录
物理拓展(Physical Extend,PE):逻辑卷管理的最基本单位,PE的默认大小是4M大小
物理卷(Physical Volume,PV):就是指硬盘分区,也可以是整个硬盘或已创建的软RAID,是LVM的基本存储设备,格式化为物理卷的过程就是磁盘划分为一个个PE。
卷组(Volume Group,VG):是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个逻辑卷。
逻辑卷(Logical Volume,LV):类似于非LVM系统中的硬盘分区,它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件系统
linux 输入 vg +tab 显示所有此开头的命令
要创建一个LVM系统,一般需要经过以下步骤:
1、 创建分区:创建多个分区
使用分区工具(如:fdisk等)创建LVM分区,方法和创建其他一般分区的方式是一样的,区别仅仅是LVM的分区类型为8e。
fdisk /dev/vdb
n
p
默认
选择大小
t:修改分区类型 选择8e
继续 n,p,默认,选择大小,t,8e
w
2. 查看pv:pvdisplay
4. 创建PV-- 准备物理卷(PV)
pvcreate /dev/vdb1 /dev/vdb2
创建成功后通过pvdisplay 查看 能看到以上两个分区,但是还没有归属组
可以删除物理卷
# pvremove /dev/sdb1
5.显示卷组
vgdisplay
6.创建VG:准备卷组(VG)
vgcreate volume-group1 /dev/sdb1 /dev/sdb2 /dev/sdb3
vgcreate vg0 /dev/vdb1:创建卷组名称:vg0,把vdb1挂入
vgextend vg0 /dev/vdb2: 在现有的vg0中增加vdb2
vgdisplay 查看卷组信息:
从输出中,我们可以看见卷组的使用量/总量。物理卷给卷组提供空间。只要在这个卷组中还有可用空间,我们就可以随意创建逻辑卷。
使用下列命令删除卷组
vgremove volume-group1
8,逻辑卷可使用lvdisplay命令查看。
lvdisplay
7.创建逻辑卷(LV)
下列命令创建一个名为lv1'、大小为100MB的逻辑卷。
lvcreate -L 100M -n lv1 volume-group
9. 进行分区挂载
mkfs.xfs /dev/volume-group1/lv1
# mkdir /lvm-mount
# mount /dev/volume-group1/lv1 /lvm-mount/
10. 开机挂载
/etc/fstab 中增加:
/dev/volume-group1/lv1 /lvm-mount xfs defaults 0 0
11. 扩展一个LVM卷
lvextend -L +20G /dev/volume-group1/lv1
lvdisplay 查看此时已经增加了20G的空间
注意在扩充逻辑卷前,需要对该卷组还有多少空间判断一下vgdisplay。不能扩展的大于vg中free的大小
12. 删除lvm 一个逻辑分卷
lvremove(选项)(参数)
-f:强制删除。
lvremove /dev/vg1000/lvol0
13. 删除逻辑卷 报错:
Logical volume vg0/lv contains a filesystem in use.
1> 先umount 把逻辑分卷卸载
2> 再执行删除,还是报错的话,执行以下
Solution was:
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
后在删除
3> 我还执行 partprobe,xfs_growfs 此时会发现逻辑分卷没有卸载好,再次卸载,就可以删除了
14. df -h 此时还是没有变化,通过xfs_growfs 调整既可以
>xfs_growfs 挂在点(/local)