码迷,mamicode.com
首页 > 其他好文 > 详细

LVM

时间:2015-08-29 01:02:53      阅读:381      评论:0      收藏:0      [点我收藏+]

标签:lvm


 Logical Volume Manager

LVM是在物理设备的基础上,建立逻辑存储设备,逻辑存储设备可以随意扩充,或缩减

功能

    1、 根据需求动态扩充,或缩减空间

    2、 实现快照备份

基本结构及概念




·技术分享


PV         pyicalvolume 物理卷,由物理设备盘区,raid或磁盘组成,

VG        volumegroup 卷组,由整数个PV组成,一个PV包含若干个 PE可添加或缩减PV弹性变化

LV:             logical volume 逻辑卷,建立在vg上,最大不能超过vg的大小

PE:           最小的物理存储单位,只有加载到VG上才确定其大小 类似与物理磁盘中的block

LE          在物理卷上叫PE,在逻辑卷上叫LE,最小的存储单位,

PV    管理工具

         pvs pv summary 概要显示pv信息

         pvdisplay:详细显示pv使用情况

         pvcreate 创建pv

         pvcreate [--commandprofile ProfileName] [-d|--debug] [-h|--help]  [-t|--test]

       [-v|--verbose]  [--version] [-f[f]|--force  [--force]]   [-y|--yes]  [--labelsector]

       [--bootloaderareasize size]  [-M|--metadatatype type][--[pv]metadatacopies NumberOf?

       Copies][--metadatasize size]  [--metadataignore  {y|n}] [--dataalignment  alignment]

       [--dataalignmentoffset   alignment_offset]   [--restorefile   file] [--norestorefile]

       [--setphysicalvolumesize  size] [-u|--uuid  uuid] [-Z|--zero  {y|n}]  PhysicalVolume

       [PhysicalVolume...]

                   -f 强制创建pv,不管其是否被划分到其他的vg中使用

                   -v verbose 显示创建过程

                   -u uuid  基于uuid创建物理卷

pvremove 移除pv

pvmove 将数据从该pv上转移到其他的pv上,以使该pv可以进行其他的移除类操作

pvremove  抹去数据 

[--commandprofile  ProfileName] [-d|--debug] [-h|--help] [-t|--test]

       [-v|--verbose] [--version][-f[f]|--force [--force]] [-y|--yes] PhysicalVolume

       [PhysicalVolume...]

pvremovewipes the label on a device so that LVM will no longer recognise it as

       a physical volume.

pvscan 探测,扫描该系统上的所有的LVM块设备

pvchage:修改物理卷属性

VG管理工具

         vgs    概要显示vg信息

vgdisplay        显示vg的详细信息

vgcreate     创建vg

vgcreate [--addtag Tag] [--allocAllocationPolicy] [-A|--autobackup {y|n}] [-c|--clus?

     tered {y|n}][--commandprofile ProfileName] [-d|--debug]  [-h|--help]  [-l|--maxlogi?

       calvolumes MaxLogicalVolumes][-M|--metadatatype type] [--metadataprofile ProfileName]

       [-p|--maxphysicalvolumes    MaxPhysicalVolumes]    [--[vg]metadatacopies     NumberOf?

       Copies|unmanaged|all]  [-s|--physicalextentsize  PhysicalExtentSize[bBsSkKmMgGtTpPeE]]

       [-t|--test] [-v|--verbose] [--version][PHYSICAL DEVICE OPTIONS] VolumeGroupName Phys?

       icalDevicePath [PhysicalDevicePath...]

-s   设定物理卷的大小

vgextend

vgextend   [-A|--autobackup   {y|n}]  [--commandprofile  ProfileName]   [-d|--debug]

       [-h|-?|--help] [--restoremissing][-f|--force]  [-t|--test]  [-v|--verbose]  [PHYSICAL

       DEVICE OPTIONS] VolumeGroupNamePhysicalDevicePath [PhysicalDevicePath...]

vgremove

vgremove     [--commandprofile     ProfileName]    [-d|--debug]    [-f|--force]

       [-h|-?|--help] [--noudevsync][-t|--test] [-v|--verbose] VolumeGroupName [Vol-

       umeGroupName...]

vgremove allows you toremove one or more volume groups.  If oneor more physi-

       cal volumes in the volume group arelost, consider vgreduce --removemissing to

       make the volume group metadataconsistent again.

       If there  are logical volumes thatexist in the volume group, a prompt will be

       given to confirm removal.  You can override the prompt with -f.

        

vgreduce

         vgreduce  [-a|--all] [-A|--autobackup  {y|n}]  [--commandprofile  ProfileName]

       [-d|--debug] [-h|-?|--help][--removemissing] [-t|--test] [-v|--verbose]  Vol-

       umeGroupName [PhysicalVolumePath...]

         vgreduce 允许你从vg 移除一个或更多未使用的pv

 

LV逻辑卷,逻辑卷,逻辑卷只能在所在的vg中动态扩充,或缩减。

lvcreate 逻辑卷的创建,使用现有的逻辑卷组空间创建,

lvcreate [--addtag Tag] [--allocAllocationPolicy] [-a|--activate [a|e|l]{y|n}]

       [-k|--setactivationskip  {y|n}] [-K|--ignoreactivationskip]  [-A|--autobackup

       {y|n}] [--commandprofile ProfileName] [-C|--contiguous  {y|n}]  [-d|--debug]

       [-h|-?|--help] [--noudevsync][--ignoremonitoring] [--metadataprofile Profile-

       Name] [--monitor {y|n}][--[raid]maxrecoveryrate Rate] [--[raid]minrecoveryrate

       Rate] [-i|--stripes Stripes[-I|--stripesize StripeSize]] {[-l|--extents  Logi-

calExtentsNumber[%{VG|PVS|FREE}]   |  -L|--size  LogicalVolumeSize[bBsSkKmMg-

       GtTpPeE]] |  -V|--virtualsize  VirtualSize[bBsSkKmMgGtTpPeE]} [-M|--persistent

       {y|n}]  [--minor   minor]   [-m|--mirrors   Mirrors  [--nosync]  [--mirrorlog

       {disk|core|mirrored}  |  --corelog]   [-R|--regionsize   MirrorLogRegionSize]]

       [-n|--name  LogicalVolume{Name|Path}]  [-p|--permission {r|rw}] [-r|--readahead

       {ReadAheadSectors|auto|none}]  [-t|--test] [-T|--thin   [--cachemode   {write-

       back|writethrough}     [-c|--chunksize    ChunkSize[bBsSkKmMgG]]    [--discards

      {ignore|nopassdown|passdown}] [--poolmetadatasize MetadataVolumeSize[bBsSkKm-

       MgG]] [--poolmetadataspare {y|n}]][--thinpool ThinPoolLogicalVolume{Name|Path}

       [-s|--snapshot   [VolumeGroup{Name|Path}/]    ExternalOriginLogicalVolumeName]]

       [--type SegmentType]  [-v|--verbose]  [-W|--wipesignatures]  [-Z|--zero {y|n}]

       VolumeGroup{Name|Path}[/ThinPoolLogicalVolumeName][PhysicalVol-

       umePath[:PE[-PE]]...]

 

       lvcreate [-l|--extents LogicalExtentsNumber[%{ORIGIN|VG|PVS|FREE}] | -L|--size

       LogicalVolumeSize[bBsSkKmMgGtTpPeE]][-c|--chunksize ChunkSize[bBsSkK]] [--com-

       mandprofile Profilename] [--noudevsync][--ignoremonitoring] [--metadataProfile

       ProfileName]  [--monitor {y|n}]  [-n|--name  SnapshotLogicalVolume{Name|Path}]

       -s|--snapshot {[VolumeGroup{Name|Path}/]OriginalLogicalVolumeName -V|--virtual-

       sizeVirtualSize[bBsSkKmMgGtTpPeE]}

         -s  snapshot 制作快照卷 [vg{name|path}]  lv(要做快照的对象) VG{name|path}

         -n LV命名

         -L  #{kmgtpe} 指定大小

         -l  # 根据LE个数指定大小  

lvdisplay  详细显示逻辑卷信息

lvs        概要显示逻辑卷信息

lvextend   扩展逻辑卷,利用现有vg空间扩充lv大小

lvextend  [--alloc AllocationPolicy] [-A|--autobackup {y|n}] [--commandprofile

       ProfileName] [-d|--debug]  [-h|-?|--help]  [-f|--force] [-i|--stripes  Stripes

       [-I|--stripesize      StripeSize]]      {-l|--extents     [+]LogicalExtentsNum-

       ber[%{VG|LV|PVS|FREE|ORIGIN}]  |  -L|--size  [+]LogicalVolumeSize[bBsSkKmMg-

       GtTpPeE]}   [-n|--nofsck]   [--noudevsync]   [-r|--resizefs]   [--use-policies]

       [-t|--test] [-v|--verbose] LogicalVolumePath [PhysicalVolumePath[:PE[-PE]]...]

-L      size[+/-]SIZE[bkmgtpe]

lvconvert将逻辑卷转化为快照,

lvreduce 删除逻辑卷,删除逻辑卷时,须确保数据已备份或保存

snapshot  :保存的只是变化了的数据,未变化的数据还在原来的存储空间的

 

    快照卷 是对磁盘某一个时刻的数据进行保存,它保存的只是变化了的数据

对磁盘保存数据过程的时间很短,只在一瞬间,因此,基本上是完成数据,在保存过程中变化的数据不能保存,其和快照后的数据可以通过增量备份实现其保存

快照卷也可以作为访问数据的一个入口,因此只能存在与和要保存的卷的组中,不能跨组

但只能访问快照时刻的数据、

快照后的数据不会保存到快照卷中,

其实现过程中不能格式化数据

    具体实现命令

lvcreate–s –L #{kmgtpe} –n SNAPSHOT_NAME  OriginalLogicalVolumeName

 

 

 

 

二、逻辑卷与快照卷功能的实现

 

1创建一个至少有两个PV组成的大小为10G的名为testvgVG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录;

1、 要想创建pv必须要有可创建的物理设备,因此先创建两个5G的硬盘sdb1sdb2,且将磁盘格式转化成8e lvm格式,以供创建lvm使用省略

2、  创建物理卷

[root@localhost ~]# pvcreate /dev/sdb{1,2}

  Physical volume"/dev/sdb1" successfully created

          Physicalvolume "/dev/sdb2" successfully created

3、创建大小10G PE 16MB VG  testvg

[root@localhost ~]# vgcreate -s 16m testvg /dev/sdb{1,2}

    Volume group "testvg" successfullycreated

4、创建大小为5Gtestlv

[root@localhost ~]# lvcreate-n testlv -L 5G testvg

            Logicalvolume "testlv" created

[root@localhost ~]# lvs

         LV    VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert

       testlvtestvg    -wi-a-----   5.00g   

5/dev/testvg/testlv进行格式化

mkfs.ext4/dev/testvg/testlv

挂载到已创建的/users 目录下如此这样就可以使用testlv空间了了  

 

2新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录;

[archlinux@localhost~]$ cp -r /etc/pam.d/ /users/archlinux/

 

3扩展testlv7G,要求archlinux用户的文件不能丢失;

[root@localhost users]#lvextend -L 7G /dev/testvg/testlv

         [root@localhost users]#resize2fs -p /dev/testvg/testlv   #扩展逻辑边界

 

4收缩testlv3G,要求archlinux用户的文件不能丢失;

         缩减时,应先缩减其逻辑边界,在缩减其物理边界,而且不能在线缩减,需先卸载,还要强制进行磁盘检测,而且要确保缩减后的空间能承载现有数据,否则会出错!

1,  卸载,略

2,  缩减其逻辑边界

e2fsck -f /dev/testvg/testlv

 resize2fs -p /dev/testvg/testlv 3G

3、  缩减其物理边界

lvreduce -L 3G/dev/testvg/testlv

4、重新挂载并使用

 

5testlv创建快照,并尝试基于快照备份数据,验正快照的功能;

创建快照卷

[root@localhost ~]# lvcreate -L 3G -s /dev/testvg/testlv -n shotlv

#lvcreate -L 3G -s/dev/testvg/testlv -n shlv

挂载到/media目录下

#mount /dev/testvg/shlv /media

[root@localhost media]# ls /media

archlinux  lost+found

 

修改原数据

 [root@localhost media]# cd/users/

[root@localhost users]# mkdir tom

[root@localhost users]# ls /users

archlinux  lost+found  tom

快照卷并未改变

[root@localhost users]# ls /media

archlinux  lost+found

删除原数据

[root@localhost users]# rm -rf /users/*

将快照卷原样复制到原目录下,将原目录下的数据恢复到快照时刻的样子,实现了数据的基础备份

[root@localhost users]# cp -af /media/* /users/
[root@localhost users]# ls /users
archlinux  lost+found


 

 

6、创建一个由两个物理卷组成的大小为5G的卷组设备,要求其PE大小为16M;而后在此卷组中创建一个大小为2G的逻辑卷lv1,此逻辑卷要能在开机后自动挂载至/users目录;

[root@localhostusers]# pvcreate /dev/sda{5,6}

  Physical volume "/dev/sda5"successfully created

  Physical volume "/dev/sda6"successfully created

[root@localhostusers]# vgcreate -s 16M myvg /dev/sda{5,6}

  Volume group "myvg" successfullycreated

[root@localhostusers]# vgs

  VG    #PV #LV #SN Attr   VSize  VFree

  myvg    2   0   0 wz--n- 10.00g 10.00g

[root@localhostusers]# lvcreate -L 2G -n LV1 /dev/myvg

  Logical volume "LV1" created

[root@localhostusers]# mkfs.ext4 /dev/myvg/LV1

[root@localhost users]# vim /etc/fstab

/dev/myvg/LV1          /users                  ext4    defaults        0 0

~                                                                                               

"/etc/fstab" 18L, 963C        

[root@localhost users]# mount -a  


本文出自 “fall camel” 博客,请务必保留此出处http://fallcamel.blog.51cto.com/8079848/1689405

LVM

标签:lvm

原文地址:http://fallcamel.blog.51cto.com/8079848/1689405

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!