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

 > 建好分区后要格式化分区,建立文件系统

mkfs.xfs -f /dev/sda1

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/ 

 如果挂载的时候,挂载目录下已有文件,如何处理?  

Linux mount--目录挂载新磁盘后原文件不见了_Ruishine的博客-程序员宝宝_mount后原数据没了 - 程序员宝宝

 

但有时我们会遇到这样的情况:挂载点为已有非空目录
这时我们需要注意先把目录中文件拷贝至其他目录后再执行挂载操作。
假设待挂载的非空目录为 /oradata, 操作如下:
# mkdir /new                  //创建临时目录
# cp -R /oradata/*  /new     //将/oradata下的所有数据复制到/new
# rm -rf /oradata/*          //腾出空间给原来的硬盘(可选)
#mount /dev/sdb /oradata    //挂载/oradata到新硬盘
# cp -R /new/*  /oradata    //将/new下的所有数据复制回/oradata
# rm -rf /new              //删除临时目录

如果很不幸,挂载的路径有文件,不小心把其它文件覆盖了,怎么办?
不要慌!数据并没有丢失。
比如挂载到了 /home下,原来/home下的文件全都不见了。
此时我们只需要解挂:
# umount /dev/sdb /home
也可以省略挂载点,直接写成:
# umount /dev/sdb
解挂后,操作系统指向 /home 的地址改变了,原来的文件又能看见了

 

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值