LVM的创建与管理

一、基本概念

    1、LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

    2、why:通常在安装Linux系统的时候对磁盘进行一盘的分区,一旦日后分区或整个磁盘的空间不够用,就难以再扩容。但是使用lvm来管理磁盘的分区,由于是建立在磁盘和分区上的一个逻辑层,可以灵活管理存储空间,而且可以跨硬盘进行管理存储空间,而且不会对原有的数据文件造成损害。

    3、lvm的基本术语

       

        PV:Physical Volume,指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

        PE:Physical Extent,每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。

        VG:Volume Group,类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。

        LV:Logical Volume,类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。

        LE:Logical Extent,逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

        上述的基本关系如下图

        LVM的创建与管理blob.png

二、LVM的建立(配置LVM的流程:fdisk创建分区及修改ID为8e–>把分区转换为PV—>创建VG—>创建LV—>格式华LV—>mount文件系统

    1、常用工具

        

    pv管理工具:
	pvs:简要pv信息显示
	pvdisplay:显示pv的详细信息
	pvcreate /dev/DEVICE: 创建pv
		-v:显示过程
		-f:强制,
		-uuid:直接指定UUID

    vg管理工具:
	vgs
	vgdisplay
	vgcreate  [-s #[kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...][-s #[kKmMgGtTpPeE]]指定PE大小
	vgextend  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
	vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
		先做pvmove
	vgremove

    lv管理工具:
	lvs
	lvdisplay
	lvcreate -L #[mMgGtT] -n NAME VolumeGroup
	lvremove /dev/VG_NAME/LV_NAME

    扩展逻辑卷:
	lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
	resize2fs /dev/VG_NAME/LV_NAME
	df -lh
		
    缩减逻辑卷:
	umount /dev/VG_NAME/LV_NAME
	e2fsck -f /dev/VG_NAME/LV_NAME
	resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
	lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
	mount

    快照:snapshot
	lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name
	-p, --permission {r|rw}
	-n, --name LogicalVolume{Name|Path}
	-s, --snapshot OriginalLogicalVolume{Name|Path}



    2、lvm的构建过程

         先给系统添加硬盘并分区

[root@localhost ~]# fdisk /dev/sdc

WARNING: 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 (mforhelp): tSelected partition1Hex code (typeLtolist codes): 8e        //需要把分区的id修改为Linux LVMChangedsystemtypeofpartition1to8e (Linux LVM)

Command (mforhelp): pDisk /dev/sdc: 10.7 GB, 10737418240bytes255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of16065 * 512 = 8225280bytesSector size (logical/physical): 512bytes / 512bytesI/O size (minimum/optimal): 512bytes / 512bytesDisk identifier: 0x16f72b9f

   Device Boot      StartEnd      Blocks   IdSystem/dev/sdc1               11305104823818e  Linux LVM


        1)、将磁盘设定为PV           

[root@localhost ~]# pvcreate /dev/sda5
  Physical volume "/dev/sda5" successfully created
[root@localhost ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
[root@localhost ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created
[root@localhost ~]# pvs
  PV         VG       Fmt  Attr PSize  PFree 
  /dev/sda2  VolGroup lvm2 a--  58.59g     0 
  /dev/sda5           lvm2 ---  10.00g 10.00g
  /dev/sdb1           lvm2 ---  10.00g 10.00g
  /dev/sdc1           lvm2 ---  10.00g 10.00g
[root@localhost ~]# pvdisplay /dev/sdb1"/dev/sdb1" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0                       
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               GGKTNl-Yi0I-5RJX-WiHJ-iQSe-tvzO-vqRo8N

        2)、建立VG

[root@localhost ~]# vgcreate -s 6M myvg /dev/sda5 /dev/sd[b-c]1        //创建一个名为myvg的VG,并且设定PE大小为6M
  Volume group "myvg" successfully created
[root@localhost ~]# vgs
  VG       #PV #LV #SN Attr   VSize  VFree 
  VolGroup   130 wz--n- 58.59g     0 
  myvg       300 wz--n- 29.98g 29.98g
[root@localhost ~]# vgdisplay myvg
  --- Volume group ---
  VG Name               myvg
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               29.98 GiB
  PE Size               6.00 MiB
  Total PE              5117
  Alloc PE / Size       0 / 0   
  Free  PE / Size       5117 / 29.98 GiB
  VG UUID               WtwVcH-Ny7F-kAcN-MI5H-0AgA-b6rF-fUiuJB
   
[root@localhost ~]# pvdisplay /dev/sda5
  --- Physical volume ---
  PV Name               /dev/sda5
  VG Name               myvg                //显示此PE已经加入到myvg卷组中
  PV Size               10.00 GiB / not usable 2.54 MiB
  Allocatable           yes 
  PE Size               6.00 MiB            //PE大小由VG创建时确定,所以现在才有显示大小
  Total PE              1707
  Free PE               1707
  Allocated PE          0
  PV UUID               flJPpR-s9VI-OO5N-iSOm-K1nN-thOl-XknRjP


        3)、建立LV

[root@localhost ~]# lvcreate -L 10G -n mylv myvg            //创建一个名为mylv 10G大小的LV
  Rounding up size to full physical extent 10.00 GiB
  Logical volume "mylv" created.
[root@localhost ~]# lvs         //显示LV的简要信息
  LV       VG       Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  LogVol00 VolGroup -wi-ao---- 39.06g                                                    
  LogVol01 VolGroup -wi-ao----  9.76g                                                    
  LogVol02 VolGroup -wi-ao----  9.77g                                                    
  mylv     myvg     -wi-a----- 10.00g                                                    
[root@localhost ~]# lvdisplay /dev/myvg/mylv 
  --- Logical volume ---
  LV Path                /dev/myvg/mylv
  LV Name                mylv
  VG Name                myvg
  LV UUID                RFCRTA-hd1C-6DPh-tVdK-EVy7-mF47-0qfTJh
  LV Write Access        read/write                 //默认为读写模式
  LV Creation host, time localhost.localdomain, 2016-06-1117:42:47 +0800
  LV Status              available  # open                 0
  LV Size                10.00 GiB                  //10G大小
  Current LE             1707
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

        4)、格式化LV并挂载

[root@localhost ~]# mke2fs -t ext4 -L "myLVM" /dev/myvg/mylv mke2fs 1.41.12 (17-May-2010)
警告: 512 块未使用.

文件系统标签=myLVM
操作系统:Linux块大小=4096 (log=2)
分块大小=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks656640 inodes, 2621440 blocks131097 blocks (5.00%) reserved for the super user
第一个数据块=0Maximum filesystem blocks=268435456080block groups32768 blocks per group, 32768 fragments per group8208 inodes per groupSuperblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 26 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@localhost ~]# blkid /dev/myvg/mylv 
/dev/myvg/mylv: LABEL="myLVM"UUID="384e1993-9517-423a-b69b-26bbad53c3d3"TYPE="ext4" 

[root@localhost ~]# mount /dev/myvg/mylv /backup/
[root@localhost ~]# mount | grep "mylv"/dev/mapper/myvg-mylv on /backup type ext4 (rw)


    3、lvm的扩展

   [root@localhost ~]# lvextend -L +5G /dev/myvg/mylv   //给mylv增加5G的空间大小
  Rounding size to boundary between physical extents: 5.00 GiB
  Size of logical volume myvg/mylv changed from 10.00 GiB (1707 extents) to 15.01 GiB (2561 extents).
  Logical volume mylv successfully resized
[root@localhost ~]# lvdisplay /dev/myvg/mylv 
  --- Logical volume ---
  LV Path                /dev/myvg/mylv
  LV Name                mylv
  VG Name                myvg
  LV UUID                RFCRTA-hd1C-6DPh-tVdK-EVy7-mF47-0qfTJh
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2016-06-1117:42:47 +0800
  LV Status              available  # open                 1
  LV Size                15.01 GiB          //已增加了5G的大小
  Current LE             2561
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2[root@localhost ~]# resize2fs /dev/myvg/mylv     //最后还需要重新调整对应的文件系统的大小resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on /backup; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1Performing an on-line resize of /dev/myvg/mylv to 3933696 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 3933696 blocks long.

[root@localhost ~]# df -lh /dev/myvg/mylv Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/myvg-mylv                       15G   25M   14G   1% /backup         //此时显示文件系统大小也也扩容后大小

    4、LVM的缩减

[root@localhost ~]# umount /backup/             //①先卸载

[root@localhost ~]# e2fsck -f /dev/myvg/mylv    //②强制检测
e2fsck 1.41.12 (17-May-2010)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
myLVM: 12/993168 files (0.0% non-contiguous), 101500/3933696 blocks

[root@localhost ~]# resize2fs /dev/myvg/mylv 5G         //③先缩减文件系统的大小到5Gresize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv to1310720 (4k) blocks.
The filesystem on /dev/myvg/mylv isnow1310720 blocks long.

[root@localhost ~]# lvreduce -L5G /dev/myvg/mylv  //④再缩减LV到5G大小
  Rounding sizeto boundary betweenphysical extents: 5.00 GiB  WARNING: Reducing active logical volume to5.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce mylv? [y/n]: y  Sizeoflogical volume myvg/mylv changedfrom15.01 GiB (2561 extents) to5.00 GiB (854 extents).  Logical volume mylv successfully resized
  
[root@localhost ~]# lvdisplay /dev/myvg/mylv 
  --- Logical volume ---
  LV Path                /dev/myvg/mylv
  LV Name                mylv
  VG Name                myvg
  LV UUID                RFCRTA-hd1C-6DPh-tVdK-EVy7-mF47-0qfTJh
  LV Write Accessread/write
  LV Creation host, time localhost.localdomain, 2016-06-1117:42:47 +0800
  LV Status              available
  # open0
  LV Size5.00 GiB           //此时以显示为缩减后的大小  Current LE             854
  Segments               1
  Allocation             inherit  Read ahead sectors     auto
  - currently setto256Block device           253:2
   [root@localhost ~]# mount /dev/myvg/mylv /backup/       //最后重新挂载
[root@localhost ~]# df -lh /dev/myvg/mylv 
Filesystem            Size  Used Avail Use% Mounted on/dev/mapper/myvg-mylv                      4.8G20M4.6G1% /backup     //文件系统此时也为5G大小


    4、快照功能的实现

[root@localhost ~]# lvcreate -p r -s -L 512M -n snmylv /dev/myvg/mylv       //创建一个大小为512M 只有读权限的快照卷
  Rounding up size to full physical extent 516.00 MiB
  Logical volume "snmylv" created.
[root@localhost ~]# ll /dev/myvg总用量 0lrwxrwxrwx. 1 root root 7 6月  11 18:51 mylv -> ../dm-2lrwxrwxrwx. 1 root root 7 6月  11 18:51 snaplv -> ../dm-6lrwxrwxrwx. 1 root root 7 6月  11 18:51 snmylv -> ../dm-8[root@localhost ~]# lvdisplay /dev/myvg/snmylv 
  --- Logical volume ---
  LV Path                /dev/myvg/snmylv
  LV Name                snmylv
  VG Name                myvg
  LV UUID                QG7ORH-YRyE-RTFA-JRCe-WhGk-mXAL-rjo0sl
  LV Write Access        read only          //只读权限
  LV Creation host, time localhost.localdomain, 2016-06-11 18:51:15 +0800
  LV snapshot status     active destination for mylv
  LV Status              available  # open                 0
  LV Size                5.00 GiB           //原卷大小
  Current LE             854
  COW-table size         516.00 MiB         //快照卷大小
  COW-table LE           86
  Allocated to snapshot  0.00%
  Snapshot chunk size    4.00 KiB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:8



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

(0)
mouse015110mouse015110
上一篇 2016-06-22
下一篇 2016-06-22

相关推荐

  • 马哥教育网络班第25期-第1周作业

    一、计算机的组成及其功能 计算机由硬件与软件组成 硬件     1、运算器                           &…

    Linux干货 2016-12-05
  • Linux进程管理命令和性能监控工具的应用

    概述 监控系统的各方面的性能,保障各类服务的有序运行,是运维工作的重要组成部分,本篇就介绍了一些常用的系统监控命令和相关参数的说明 具体包含一下几个部分 1.进程管理基础 2.进程管理工具(ps,top,htop,kill) 3.内存监控类工具(vmstat,pmap) 4.系统监控累工具(glances,dstat)…

    Linux干货 2016-09-26
  • 集群-基础知识(1)

    背景 随着互联网访问量的急剧增加,单台服务器的能力已严重不能满足需求。则需要从两个方面考虑提高服务能力:1、向上扩展,2、向外扩展 向上扩展的缺点: 1、造价高 2、随着性能的提高,会在某个临界点遇到瓶颈,导致性能随后降低。 向外扩展的优点: 1、造价低 2、提供高并发能力和高可用性 3、可扩展性好。 分类 负载均衡集群(Load Balance) 高可用集…

    Linux干货 2015-11-26
  • LinuxGrub修复方法

    Linux因Grub损坏的修复方法: 1)救援模式修复(备份了MBR) 2)救援模式修复(无备份MBR) 3)Grub下手动启动Linux系统 1、救援模式修复(备份了MBR)     MBR中存放了Bootloader信息(Grub),在磁盘的最开始512字节,当这512字节出现故障,系统将无法引导启动。 &nbsp…

    Linux干货 2016-06-22
  • 使用NFS和Samba文件服务搭建博客站点

    使用NFS和Samba文件服务搭建博客站点 实验目的:分别使用NFS和Smaba文件服务实现wordpress 实验要求: (1) server导出/data/application/web,在目录中提供wordpress; (2) client挂载nfs server导出的文件系统至/var/www/html;(3) 客户端1(lamp),部署w…

    2017-04-30
  • N25期—第四周作业

    1、 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp –rf /etc/skel /home/tuser1 chmod -R go= /home/tuser1 2、 编辑/etc/group文件,添加组hado…

    Linux干货 2016-12-26