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

相关推荐

  • Python基础篇之过程型程序设计

    一、Python过程型程序设计 面向过程 以指令为中心,由指令处理数据 如何组织代码解码问题 面向对象 以数据为中心,所有的处理代码都围绕数据展开 如何设计数据结构组织数据,并提供对此类数据所允许处理操作 简单方法: 1)、编译安装新版本至某特定路径 # yum install readline-devel # tar xf Python-2.7.6.tar…

    2018-01-11
  • 文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

    文件查找(Find和Locate)常用用法及摩根定律趣解(重要) 摩根定律: 非(A 且 B)=(非 A)或(非 B) 非(A 或 B)=(非 A)且(非 B) 这样看起来不是很好理解下面通过一些列图片给大家展示; 图(1)  图(2)  图二中的黑色就A且B,A且B的反面三种情况(如图1)即为(非A)或(非B)。因此…

    Linux干货 2016-08-21
  • varnish 缓存服务器配置与使用

    varnish 缓存服务器配置与使用 一、cache 1.缓存为什么会存在? 一个快的设备要想和慢的设备交互,只有一种办法就是让快的设备工作在慢的设备的频段上!这样的话就浪费了,我们可以在两者之间加上一个加速器,这个加速器就叫做缓存! CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读…

    2016-11-13
  • linux文本处理三剑客—grep

      cat:concatenate 文本文件查看工具 cat [option] filename… -n:给显示出来的文本行加上编号 -b:非空行编号 -V:显示 ^ -E:显示行结束符$ -T:显示制表符 -A:显示所有控制符-A=-VET -s:压缩连续…

    系统运维 2016-08-05
  • 马哥网络教育班21期+第一周博客作业

    1、描述计算机的组成及其功能。   硬件:     CPU(运算器、控制器、一缓存(L1)、二级缓存(L2)):       运算器主要用来进行算数运算以及逻辑运算。       控制器主要是用来协调       一级缓存和二级缓存主要是用…

    Linux干货 2016-07-12
  • iptables 实现应用层过滤

        在linux环境中,工作于内核空间的netfilter和工作于用户空间的iptables共同组成了其功能强大且操作灵活的防火墙系统,对进出主机或内外网之间的流量基于IP地址、通信协议、端口以及连接状态等进行管控,然而,对于一些使用非固定端口或者通信协议的应用程序,默认是没有办法做限制的,比如聊天软件QQ、下载工具迅雷等,不过我们可…

    Linux干货 2015-07-10