Linux基础之LVM

一.LVM介绍

  1. LVM(Logic Volume Management)逻辑卷管理器,其基本原理就是将多个磁盘的分区在逻辑上进行组合,使之成为一个大容量的磁盘进行使用,可以实现动态的分配存储空间。

  2. LVM基本模型以及基本术语,如下图所示:

LVM.png

PV:物理卷,从逻辑上与磁盘分区具有同样功能的设备
VG:卷组,由一个或多个物理卷组成
LV:逻辑卷,具有逻辑边界的存储空间,可以在逻辑卷上创建文件系统
LE(Logic Extend):可以被寻址的基本单元
PE(Physical Extend):是物理卷的基本单位

而逻辑卷的实现要依赖内核模块dm(device mapper),其功能是将一个或多个底层物理设备组织成一个逻辑设备的模块,因为在linux中一切皆文件,所以表现为/dev/dm-#

二.LVM的使用

从上图中可以看出来,要创建逻辑卷,要从下向上进行,即先创建PV,然后创建VG,最后创建LV.

  1. pv管理工具

查看物理卷信息:pvs:简略的显示pv信息
查看物理卷信息:pvdisplay:详细显示pv信息
创建物理卷:pvcreate </dev/device> :创建pv设备

2.vg管理工具

查看卷组:vgs:简略的显示vg信息
查看卷组:vgdisplay:详细的显示vg信息
创建卷组:vgcreate -s <size> vg_name physical_device
扩展卷组:vgextend vg_name physical_device
删除卷组:vgremove <vg_name>

3.lv管理工具

查看逻辑卷:lvs:简略的显示lv信息
查看逻辑卷:lvdisplay:详细的显示lv信息
创建逻辑卷:lvcreate -L <size> -n <lv_name> vg_name
扩展逻辑卷:lvextend -L <size> /dev/vg_name/lv_name 
删除逻辑卷:lvremove /dev/vg_name/lv_name 

4.扩展逻辑卷

(1)扩展物理边界:lvextend -L <size> /dev/vg_name/lv_name 
(2)扩展逻辑边界:resize2fs /dev/vg_name/lv_name

5.缩减逻辑卷

(1)卸载逻辑卷:umount /dev/vg_name/lv_name
(2)对逻辑卷进行强制检查:ex2fsck -f /dev/vg_name/lv_name
(3)缩减逻辑边界:resize2fs -L /dev/vg_name/lv_name
(4)缩减逻辑卷:lvreduce -L /dev/vg_name/lv_name
(5)挂载:mount /dev/vg_name/lv_name

注意:扩展逻辑卷时,要先扩展物理边界,才能扩展逻辑边界;缩减逻辑卷时,先减少逻辑边界,才能减少物理边界

三.使用示例

1.创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl

(1) pvcreate /dev/sd{b,c}
(2) vgcreate -s 8M myvg /dev/sd{b,c}
(3) lvcreate -L 5G -n mylv1 /dev/myvg
(4) mkfs.ext4 /dev/myvg/mylv1
(5)编辑/etc/fstab文件,/dev/myvg/mylv1 /user1 ext4 acl 0 0

2.、扩展mylv1至9G,确保扩展完成后原有数据完全可用;

(1)lvextend -L +4G -n /dev/myvg/mylv1
(2) resize2fs /dev/myvg/mylv1

3.缩减mylv1至7G,确保缩减完成后原有数据完全可用;

(1) umount /dev/myvg/mylv1
(2) e2fsck -f /dev/myvg/mylv1
(3) resize2fs /dev/myvg/mylv1 7G
(4) lvreduce -L 7G -n /dev/myvg/mylv1

4.对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;

lvcreate -L 2G -p r -s -n mylv1.bak /dev/myvg/mylv1

原创文章,作者:zhangbao,如若转载,请注明出处:http://www.178linux.com/58589

(0)
zhangbaozhangbao
上一篇 2016-11-08 23:00
下一篇 2016-11-09 14:34

相关推荐

  • 程序包编译安装

    一、几个概念     1、开放源码         程序代码,人类可能读懂的程序语言,但是计算机不能识别和执行;     2、编译程序      &n…

    Linux干货 2015-05-11
  • 编译安装Linux内核

    实验前准备:在https://www.kernel.org/下载内核 这里我们下载的是:linux-4.14.10.tar.xz du -sh /app/linux.tar/ 此命令可查看内核文件大小 编译完成后/lib/modules下会生成4.14.10版的内核 1,tar xvf linux-4.14.10.tar.xz -C /app/解压缩准备好的…

    2018-01-03
  • 用户与组管理

    如何成为linux用户?     在linux系统中,要想从系统中获取资源、对系统进行管理和控制,就需要向系统申请一个账号,从而实现特定用途,当申请到账号后,要对它设置口令,这样用户账号就申请成功了,然后可以登陆系统,当用户登陆系统时,需要通过系统的认证,认证成功后才给予授权,在用户的使用过程中还会对用户进行审计。 为什么要设置…

    Linux干货 2016-08-08
  • 第十六周作业

    1、源码编译安装LNMP架构环境;     安装nginx:      1)安装依赖包 ]# yum groupinstall “Development Tools” “Development Libraries” -y ]# yum install wget openssl-devel ncurses-de…

    2017-05-02
  • iptables/netfilter从入门到进阶(Blog 17)

    博客作业:iptables/netfilter入门到进阶;

    2017-12-20
  • 第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 4、复制/etc/sk…

    Linux干货 2017-02-07