推荐-LVM

LVM

LVM

Linux应用


1.LVM简介

LVM:Logical Volume Manager,逻辑卷管理器。LVM利用Linux内核的device-mapper模块来实现存储系统的虚拟化(系统分区独立于底层硬件)。通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间。 LVM是用来方便管理的,不会提供额外的安全保证。
LVM


2.LVM创建

首先要在实际的物理磁盘及其划分的分区上,创建物理卷(PV)。一个或多个物理卷可以用来创建卷组(VG)。然后基于卷组可以创建逻辑卷(LV)。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问。


3.准备磁盘分区

首先通过fdisk来创建磁盘分区,创建分区之后需要指定分区的类型,LVM使用的是“8e”。

[root@localhost ~]# fdisk  /dev/sdbWARNING: DOS-compatible mode is deprecated. It's strongly recommended to         switch off the mode (command 'c') and change display units to         sectors (command 'u').
Command (m for help): n #新建
Command action   
    e   extended   
    p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1): 
Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261): +500M  #分配空间大小
Command (m for help): t #改变分区类型
Partition number (1-4): 1
Hex code (type L to list codes): 8e # 将分区类型改变为LVM
Changed system type of partition 1 to 8e (Linux LVM)

重复上述步骤创建分区sdb2和sdb3

   Device Boot      Start         End      Blocks   Id  System
   /dev/sdb1               1          65      522081   8e  Linux LVM
   /dev/sdb2              66         130      522112+  8e  Linux LVM
   /dev/sdb3             131         261     1052257+  8e  Linux LVM

4.创建PV

分区创建完成之后需要创建物理卷(PV),LVM可以使用不同大小的物理卷。

pvcreate /dev/sdb1 #使用pvcreate创建PV
pvcreate /dev/sdb2
pvcreate /dev/sdb3
pvs   
    PV         VG   Fmt  Attr PSize   PFree    
    /dev/sdb1       lvm2 a--  509.84m 509.84m  
    /dev/sdb2       lvm2 a--  509.88m 509.88m  
    /dev/sdb3       lvm2 a--    1.00g   1.00g

使用pvs可以显示已创建pv的简要信息,使用pvdisplay可以查看已创建pv的详细信息,使用pvremove可以删除已创建的pv。

pvremove /dev/sdb1

5.创建VG

pv创建好之后可以创建vg,在vg中,常用的命令有pvcreat、pvextend 、pvreduce已经pvmove。各自的命令格式如下:

vgcreate  [-s #[kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
vgextend  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]

vgcreate -s 4M mylvm /dev/sdb1 /dev/sdb2 #创建vg -s指定PE大小
vgdisplay #显示vg 
vgs #显示vg简要信息  
    VG    #PV #LV #SN Attr   VSize    VFree     
    mylvm   2   0   0 wz--n- 1016.00m 1016.00m

当vg的大小不够时可以使用vgextend添加pv到vg中

vgextend mylvm /dev/sdb3 #扩展vg 
vgs 
    VG    #PV #LV #SN Attr   VSize VFree  
    mylvm   3   0   0 wz--n- 1.99g 1.99g

可以使用vgreduce来移除一个pv,需要注意的是在一处一个pv是应先对操作的pv做pvmove操作,移除当中的数据。

pvmove  /dev/sdb3 #将sdb3的数据移动到其它pv中
vgreduce mylvm /dev/sdb3 #从mylvm中移除sdb3

6.创建LV

vg完成之后可以创建lv:

lvcreate -L 200M -n lv01 mylvm #创建
lvlvdisplay #显示lv详细信息
lvs #简要显示lv信息  
    LV   VG    Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert  
    lv01 mylvm -wi-a----- 200.00m

创建完lv之后就可以格式化和挂载逻辑卷使用了

mkfs.ext4 /dev/mylvm/lv01 #格式化逻辑卷
mount /dev/mylvm/lv01 ./test #挂载逻辑卷
umount /dev/mylvm/lv01  #卸载已挂载的逻辑卷
lvremove /dev/mylvm/lv01 #删除逻辑卷

7.扩展和缩减LV

LVM最大的功能就是能够调整逻辑卷的大小,下面是对逻辑卷大小的调整,对逻辑卷的调整命令的执行顺序是很重要的。此处是争对ext类型的文件系统,使用中的逻辑卷由两部分构成,一是使用其物理空间,二是文件系统的大小,所以在调整时两部分都应该调整。

扩展时不需要卸载正在使用的逻辑卷,扩展是先扩展物理空间的大小,再扩展文件系统的大小。

lvs  
    LV   VG    Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert  
    lv01 mylvm -wi-ao---- 200.00m
lvextend -L +100M /dev/mylvm/lv01 #将逻辑卷lv01空间增加100M
resize2fs /dev/mylvm/lv01 #调整文件系统的大小
lvs  
    LV   VG    Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert  
    lv01 mylvm -wi-ao---- 300.00m

缩减逻辑卷是需要先卸载使用的逻辑卷方能进行操作。卸载完成后,需要对文件系统进行检测,再次是调整文件系统的大小,之后是调整空间的大小,最后,是对调整后的逻辑卷进行挂载。需要注意的是缩减逻辑卷肯,可能会造成数据的丢失,所以不推荐对逻辑卷进行缩减操作。

lvs  
    LV   VG    Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert  
    lv01 mylvm -wi-ao---- 300.00m 
e2fsck -f /dev/mylvm/lv01 #对文件系统进行检测
resize2fs /dev/mylvm/lv01 150M #缩减文件系统大小
lvreduce -L -150M /dev/mylvm/lv01 #缩减逻辑卷大小
lvs  
    LV   VG    Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert  
    lv01 mylvm -wi-a----- 152.00m

8.LVM创建快照

LVM还有一个很重要的功能就是对一个逻辑卷创建快照,快照可以理解成访问文件的另一条路径,创建快照是会创建一个快照大小,用来保存快照创建后变化的数据。并且快照空间应该和做快照的逻辑卷属于同一个vg。
格式为:lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name
为逻辑卷lv01创建一个名称为snap_lv01,大小为50M,权限为只读的快照

lvcreate -L 50M -p r -s -n snap_lv01 /dev/mylvm/lv01
mount /dev/mylvm/snap_lv01 ./snap/ #将快照挂载之后访问

不需要快照时可以卸载时候直接删除

umount ./snap/lvremove /dev/mylvm/snap_lv01

9.总结

LVM是很重要的一个工具,LVM也有其弊端,由于是软件方式实现的,所以当数据删除后,很难再恢复数据。所以重要的数据应该尽量避免使用LVM。

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

(0)
memokymemoky
上一篇 2016-04-11 13:08
下一篇 2016-04-11 15:31

相关推荐

  • 虚拟机配置网卡别名及centos 6 之bonding

    1、虚拟网卡实现一个网卡多个地址(测试环境为虚拟机),此处使用eth1网卡,并且将eth1的IP设置成固定的,其实还可以设置成DHCP自动获取,这就是Linux强大之处。但是由eth1虚拟出来的两张网卡不能使用DHCP自动获取。具体步骤如下(设置的IP看个人喜欢) [root@localhost network-scripts]# cat…

    Linux干货 2016-09-05
  • 111-puppet

    一.运维层次分类 OS Provision:

    2016-12-04
  • 进程管理工具:ps,top,htop,dstat

    进程列表查看,系统资源使用情况查看,比如CPU占用情况,内存使用情况,网络IO,硬盘IO等等。本文介绍的几款工具帮您实现。 进程是指运行中的程序的一个副本,进程的有关信息映射在/proc/#下,ps等工具通过加工/proc/下文件而显示出进程列表。 linux内核属于抢占式多任务式,内核将CPU处理时间按时间片分配给各个进程,这里有一个优先级的问题,优先级越…

    Linux干货 2016-09-22
  • Linux中/etc目录下常用的配置文件及其含义总结

         在linux中有一个很重要的思想就是一切皆文件,也就是说所有的系统参数的配置都是保存在各种各样的配置文件当中的,这点Linux和Windows有很大的差别。      因为Linux中有众多配置文件,学习起来难免会不容易记忆,所以在此把一些常用的配置文件记录下来,做一个归纳总结。根据FHS…

    Linux干货 2017-03-26
  • date(时间),timedatectl(时区),cal(日历)的用法

    date+%F 显示日期,   显示格式如 2017-07-15+%T 显示时间    显示格式如 15:00:15+%Y 显示年      显示格式如 2017+%m 月 +%d 日+%H 时+%M 分+%S 秒+%s 从linux初始到现在经历了多少秒+%w 显示数字形式的星期+%a …

    Linux干货 2017-07-14
  • linux 系统启动流程

    假设以个人架设的linux主机为例:当你按下电源键之后,计算机硬件会主动读取BIOS来加载硬件信息及进行硬件系统的自我测试,之后系统会主动读取系统第一个可启动的设备,此时就可以读入引导装载程序了。 引导程序可以指定使用哪个内核文件来启动,并实际加载内核到内存中解压缩与执行,此时内核就能够开始在内存内活动,并检测所有硬件信息,与加载适当的驱动程序来使这部主机开…

    Linux干货 2016-09-12

评论列表(1条)

  • stanley
    stanley 2016-04-11 15:31

    图做的很赞呢