由于本人是linux小白,现在在自学linux目前学到了LVM就把LVM的实验步骤整理了一下,有什么错误请大家多多指点!

注:以下内容借鉴鸟哥的linux私房菜

LVM的重点在于可以弹性的调整文件系统的容量!而并非在于性能与数据保全上面。需要文件的读写性能可以使用RAID。LVM可以整个多个物理分区,让这些分区看起来就像一个磁盘一样。而且还可以在将来的其他的物理分区或将其从这个LVM上删除。

  1. 1.1    什么是LVMPV,PE,VG,LV的意义

LVM的全名是Logical Volume Manager ,中文可以翻译为逻辑管理器。之所以成为“卷”可能是因为可以将文件系统向卷一样伸长或缩短之故吧!LVM的做法是将几个物理的分区(或磁盘)通过软件组合成为一块看起来独立的大磁盘(VG),然后将这些大磁盘在经过分成可以使用的分区(LV),最终就就够挂载使用了。但是为什么这样的系统可以进行扩充或缩小呢?其实与一个称为PE的选项有关。

  • Physical Volume,PV,物理卷

  • 我们实际的分区需要调整系统标识符(system ID)成为8e(LVM的标识符),然后再通过pvcreate的命令将它转化为LVM最底层的物理卷(PV),之后才能将这些PV加以利用,调整systemID的方法就是使用fdisk工具

  • Volume Group,VG,卷组

  • 所谓的LVM大磁盘就是将许多PV整合成这个VG,所以VG就是LVM组合起来的大磁盘。这个大磁盘默认的最大容量是256GB,该结果与PE的大小有关,每个VG最多可以包含65534个PE,而每个PE的默认大小是4MB,一次默认的LVMVG会有4M*65534/(1024M/G)=256GB。PE是LVM中最小的存储单位,我们的文件数据都是由PE来处理的,简单地说PE就像文件系统里的block大小。所以调整PE的大小会影响到VG的最大容量

  • Logical Volume,LV,逻辑卷

  • 最终的VG还会被切成LV,这个LV就是最后可以被格式化使用的类型分区率。LV不可以随意指定大小。既然PE是整个LVM对的最小存储单位,那么LV的大小就与再次LV内的PE总数有关。为了方便用户利用LVM来管理其系统,因此LV的设备文件通常指定为“/dev/VGNAME/LVNAME 注:VGNAME是VG的名称;LVNAME是LV的名称”的样式。

  1. 1.2    LVM的实现流程

1、  先将磁盘通过fdisk命令进行分区

2、  将新建好的分区建为PV格式

3、  将全部的分区整个成一个VG,将VG的名称设置为vbirdv;且PE大小为16MB

4、  最终将VG容量都丢给LV,LV的名称设置为vbirdlv

5、  最终将LV格式化为ext3的文件系统,并挂载到/mnt/lvm下

  1. 1.3    实验步骤

  2. ×    创建分区

[root@localhost ~]# fdisk /dev/sdb          注:使用fdisk工具对/dev/sdb这块磁盘进行分区,由于笔者电脑中只有两块磁盘,本次实验将使用不同的分区代替磁盘。

Command(m for help): n

Command action

l   logical (5 or over)

p   primary partition (1-4)

l

First cylinder (1963-3917, default 1963):

Using default value 1963

Last cylinder, +cylinders or +size{K,M,G} (1963-3917, default 3917):+5G

如上示例创建sdb5、sdb6、sdb7、sdb8四个分区(可以根据自己的习惯创建分区笔者使用的是扩展分区)

  • 更改system ID

Command(m for help): t

Partitionnumber (1-8): 5

Hex code(type L to list codes): 8e

Changedsystem type of partition 8 to 8e (Linux LVM)

Command(m for help): t

Partition number (1-8): 6

Hex code(type L to list codes): 8e

Changedsystem type of partition 8 to 8e (Linux LVM)

Command(m for help): t

Partition number (1-8): 7

Hex code(type L to list codes): 8e

Changedsystem type of partition 8 to 8e (Linux LVM)

Command(m for help): t

Partition number (1-8): 8

Hex code(type L to list codes): 8e

Changedsystem type of partition 8 to 8e (Linux LVM)

注:将分区类型改为8e(其实没有设置成8e也没关系,不过某些LVM的检测命令可能会检测不到该分区。)

Command(m for help): p

Disk/dev/sdb: 107.4 GB, 107374182400 bytes

255heads, 63 sectors/track, 13054 cylinders

Units =cylinders of 16065 * 512 = 8225280 bytes

Sectorsize (logical/physical): 512 bytes / 512 bytes

I/O size(minimum/optimal): 512 bytes / 512 bytes

Diskidentifier: 0x74429a75

Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1        3917   31463271    5  Extended

/dev/sdb5               1         393    3156709+  8e  Linux LVM

/dev/sdb6             394        1308    7349706   8e  Linux LVM

/dev/sdb7            1309        1962    5253223+  8e  Linux LVM

/dev/sdb8            1963        2616    5253223+  8e  Linux LVM

Command(m for help): w

The partitiontable has been altered!

Callingioctl() to re-read partition table.

Syncingdisks.

使用p命令查看创建好的分区,确认无误后按w保存并退出。

[root@localhost~]# partprobe   注:强制让内核重新找一次分区表

[root@localhost~]# fdisk -l

Disk/dev/sdb: 107.4 GB, 107374182400 bytes

255heads, 63 sectors/track, 13054 cylinders

Units =cylinders of 16065 * 512 = 8225280 bytes

Sectorsize (logical/physical): 512 bytes / 512 bytes

I/O size(minimum/optimal): 512 bytes / 512 bytes

Diskidentifier: 0x74429a75

Device Boot      Start         End     Blocks   Id System

/dev/sdb1               1        3917   31463271    5  Extended

/dev/sdb5               1         393    3156709+  8e  Linux LVM

/dev/sdb6             394        1308    7349706   8e  Linux LVM

/dev/sdb7            1309        1962    5253223+  8e  Linux LVM

/dev/sdb8            1963        2616    5253223+  8e  Linux LVM

1.4、PV阶段

pv:physical volume(实际额)

1)创建pv

pvcreate

2)删除pv

pvremove

3)扫描pv

pvscan

4)查看pv

pvdisplay

5)移动pv

pvmove

  • 检查系统上是否存在PV,然后将/dev/sdb5~8新建成为PV格式

[root@localhost~]# pvscan

PV /dev/sda2   VGVolGroup   lvm2 [39.51 GiB / 0    free]

Total:1 [39.51 GiB] / in use: 1 [39.51 GiB] / in no VG: 0 [0   ]

注:这个PV创建系统的时候自带的,与本次实验无关

  • 创建PV

[root@localhost ~]# pvcreate/dev/sdb{5,6,7,8}

Physicalvolume "/dev/sdb5" successfully created

Physicalvolume "/dev/sdb6" successfully created

Physicalvolume "/dev/sdb7" successfully created

Physicalvolume "/dev/sdb8" successfully created

注:这个命令可以一下创建多个PV比单个穿件简便不少

[root@localhost ~]# pvscan

PV/dev/sda2   VG VolGroup        lvm2 [39.51 GiB / 0    free]

PV/dev/sdb5                      lvm2 [3.01GiB]

PV/dev/sdb6                      lvm2 [7.01GiB]

PV/dev/sdb7                      lvm2 [5.01 GiB]

PV/dev/sdb8                      lvm2 [5.01GiB]

Total: 5[59.55 GiB] / in use: 1 [39.51 GiB] / in no VG: 4 [20.04 GiB]

这就分别显示每个PV的信息与系统所有的PV信息。尤其是最有一行,显示的是:整体PV的量/已经被使用到VG的量/剩余的PV量

  • 更详细的显示PV信息

[root@localhost~]# pvdisplay

[root@localhost ~]# pvdisplay

--- Physical volume ---

PV Name               /dev/sda2

VG Name               VolGroup

PV Size               39.51 GiB / not usable 3.00 MiB

Allocatable           yes (but full)

PE Size              4.00 MiB

Total PE              10114

Free PE               0

Allocated PE          10114

PV UUID              C8Soc4-4V1F-I3LI-YyJr-KnEP-urtx-xXpKjh

"/dev/sdb5" is a newphysical volume of "3.01 GiB"

--- NEW Physical volume ---

PV Name               /dev/sdb5

VG Name

PV Size               3.01 GiB

Allocatable           NO

PE Size               0

Total PE              0

Free PE               0

Allocated PE          0

PV UUID              IYkvra-xyFA-mB1U-7wvs-fhf4-I4Qg-88C3mG

"/dev/sdb6" is a newphysical volume of "7.01 GiB"

--- NEW Physical volume ---

PV Name               /dev/sdb6             ←实际的分区设备名称

VG Name                                              ←因为尚未分配出去所以空白

PV Size               7.01 GiB                 ←就是容量的说明

Allocatable           NO                               ←是否已被分配

PE Size               0                              ←在此PV内的PE大小

Total PE              0                                  ←共分出几个PE

Free PE               0                                 ←没被LV用掉的PE

Allocated PE          0                                   ←尚可分配出去的PE数量

PV UUID              gErjmF-t2Wb-jFI4-qLZ4-4lze-1oU9-O7HdRb

"/dev/sdb7" is a newphysical volume of "5.01 GiB"

--- NEW Physical volume ---

PV Name               /dev/sdb7

VG Name

PV Size               5.01 GiB

Allocatable           NO

PE Size               0

Total PE              0

Free PE               0

Allocated PE          0

PV UUID              CqHwxm-ZfFT-KHju-SkS0-bXNN-Q70X-hYkjb0

"/dev/sdb8" is a newphysical volume of "5.01 GiB"

--- NEW Physical volume ---

PV Name               /dev/sdb8

VG Name

PV Size               5.01 GiB

Allocatable           NO

PE Size               0

TotalPE              0

Free PE               0

Allocated PE          0

PV UUID              ty3uai-DtDD-h2QC-n01u-psKJ-7Blf-cvQAiL

注:由于PE是新建VG的时候才给予的参,因此在这里看到的PV里面PE会是0

而且也没有多余的PE可供分配(allocatable)

1.5、VG阶段

g:volume group(卷组)

1)创建vg

Vgcreate

2)删除vg

vgremove

3)扫描vg

vgscan

4)查看vg

vgdisplay

5)移动vg

gmove

6)扩展vg

vgextend

7)缩减vg

vgreduce

与VG不同,PV的名称是自定义的!我们知道PV的名称其实就是分区的设备文件名,但是这个VG名称则可以随便你自己取。在下面例子当中将VG取名为vbirdvg。新建这个VG的流程是这样的。

  • 创建VG

[root@localhost ~]# vgcreate -s 16Mvbirdvg /dev/sdb{5,6,7}

Volumegroup "vbirdvg" successfully created

以上字段的意思为将/dev/sdb5-7创建为一个VG,且指定PE大小为16MB。

注:-s后面跟的是PE的大小(size),单位可以是M、G、T(大小写均可)。

[root@localhost ~]# vgscan

Readingall physical volumes.  This may take awhile...

Foundvolume group "vbirdvg" using metadata type lvm2

Foundvolume group "VolGroup" using metadata type lvm2

注:以上信息可以看出vbirdvg已经创建成功

[root@localhost ~]# pvscan

PV/dev/sdb5   VG vbirdvg         lvm2 [3.00 GiB / 3.00 GiB free]

PV/dev/sdb6   VG vbirdvg         lvm2 [7.00 GiB / 7.00 GiB free]

PV/dev/sdb7   VG vbirdvg         lvm2 [5.00 GiB / 5.00 GiB free]

PV/dev/sda2   VG VolGroup        lvm2 [39.51 GiB / 0    free]

PV/dev/sdb8                      lvm2 [5.01GiB]

Total:5 [59.52 GiB] / in use: 4 [54.51 GiB] / in no VG: 1 [5.01 GiB]

注:从以上信息中可以看出有三个PV被占用,有一个空闲(/dev/sdb8)

  • 更详细的显示出VG的信息

[root@localhost ~]# vgdisplay

---Volume group ---

VGName               vbirdvg

SystemID

Format                lvm2

MetadataAreas        3

MetadataSequence No  1

VGAccess             read/write

VGStatus             resizable

MAXLV                0

CurLV                0

OpenLV               0

MaxPV                0

CurPV                3

ActPV                3

VGSize               15.00 GiB                                   ←整体的VG容量有这么大

PESize               16.00 MiB                                   ←内部每个PE的大小

Total PE              960                                        ←总共的PE数量共有这么多

Alloc PE / Size       0 / 0  

Free PE / Size       960 / 15.00 GiB

VGUUID              QaQ6X4-U9RP-wW7m-bgWA-UJvY-4Kg5-6jmvye

注:深色三行指的是PE能够使用的情况!由于尚未创建LV,因此所有的PE均可自由使用。

---Volume group ---

VGName               VolGroup

SystemID

Format                lvm2

MetadataAreas        1

MetadataSequence No  3

VGAccess             read/write

VGStatus             resizable

MAXLV                0

CurLV                2

OpenLV               2

MaxPV                0

CurPV                1

ActPV                1

VGSize               39.51 GiB

PESize               4.00 MiB

TotalPE              10114

AllocPE / Size       10114 / 39.51 GiB

Free  PE / Size       0 / 0

VG UUID              madnL1-qOMP-r9EC-36w9-0bO0-KeyZ-z0znMh

注:VolGroup是创建系统时自带,本实验将无视该内容

这样我们就创建一个VG了,假设我们要增加这个VG的容量,我们可以使用刚才保留的/dev/sdb8增加VG容量。

  • 扩展VG

[root@localhost~]# vgextend vbirdvg /dev/sdb8

ume group"vbirdvg" successfully extended

注:这个命令可以将PV(/dev/sdb8)丢给vbirdvg。

[root@localhost ~]# vgdisplay

--- Volume group ---

VG Name               vbirdvg

System ID

Format                lvm2

Metadata Areas        4

Metadata Sequence No  2

VG Access             read/write

VG Status             resizable

MAX LV                0

Cur LV                0

Open LV               0

Max PV                0

Cur PV                4

Act PV                4

VG Size               20.00 GiB

PE Size               16.00 MiB

Total PE              1280                      ←可以看出PE数已经增加

Alloc PE / Size       0 / 0

Free  PE / Size       1280 / 20.00 GiB

VG UUID              QaQ6X4-U9RP-wW7m-bgWA-UJvY-4Kg5-6jmvye

--- Volume group ---

VG Name               VolGroup

System ID

Format                lvm2

Metadata Areas        1

Metadata Sequence No  3

VG Access             read/write

VG Status             resizable

MAX LV                0

Cur LV                2

Open LV               2

Max PV                0

Cur PV                1

Act PV                1

VG Size               39.51 GiB

PE Size               4.00 MiB

Total PE              10114

Alloc PE / Size       10114 /39.51 GiB

Free  PE / Size       0 / 0

VG UUID              madnL1-qOMP-r9EC-36w9-0bO0-KeyZ-z0znMh

1.6.、LV阶段

创建出VG这个大磁盘之后,再来就是要新建分区。这个分区就是所谓的LV。假设我们将刚才那个vbirdvg磁盘分成vbirdlv,整个VG的容量都会被分配到vbirdlv里面去。

LV命令:

1)创建LV

lvcreate

2)删除lv

lvremove

3)扫描lv

lvscan

4)查看lv

lvdisplay

5)移动lv

lvmove

6)缩减lv

lvreduce

7)扩展lv

lvextend

  •   创建LV

[root@localhost ~]#lvcreate -L 20G -n vbirdlv vbirdvg

Logical volume "vbirdlv" created

注:-L后面接容量,容量的单位可以是M、G、T等,需要注意的是最小单位为PE,因此这个数量必须要是PE的倍数,若不相符,系统会自行计算最相近的容量。

lvcreate后面也可以跟小写的“-l”若使用小写的-l则需要跟PE的“个数”,而不是数量,若要这么做,得要自行计算PE数。

-n:后面接的是LV的名称。

从vgdisplay可以看出VG共有20G,所以-L后面跟20G

  •   查看LV的详细信息

[root@localhost~]# lvdisplay

--- Logical volume ---

LV Path               /dev/vbirdvg/vbirdlv

LV Name                vbirdlv

VG Name                vbirdvg

LV UUID               p89ztk-RQFc-YG5j-20Xc-QtJ9-uYdR-DU5bfZ

LV Write Access        read/write

LV Creation host, time localhost, 2016-06-27 22:10:32 +0800

LV Status              available

# open                 0

LV Size                20.00 GiB                         ←这个LV的容量这么大

Current LE             1280

Segments               4

Allocation             inherit

Read ahead sectors     auto

- currently set to     256

Block device           253:2

--- Logical volume ---

LV Path                /dev/VolGroup/lv_root

LV Name                lv_root

VG Name                VolGroup

LV UUID               JNU6kK-z5rp-xkTU-lB9F-98yj-WcZc-E1AXrH

LV Write Access        read/write

LV Creation host, time localhost.localdomain, 2016-04-07 06:36:29 +0800

LV Status              available

# open                 1

LV Size                37.57 GiB

Current LE             9618

Segments               1

Allocation             inherit

Read ahead sectors     auto

- currently set to     256

Block device           253:0

--- Logical volume ---

LV Path               /dev/VolGroup/lv_swap

LV Name                lv_swap

VG Name                VolGroup

LV UUID               w1qlH9-6odx-Q4Es-tVAt-n3gn-JOjx-1v7QQY

LV Write Access        read/write

LV Creation host, time localhost.localdomain, 2016-04-07 06:36:32 +0800

LV Status              available

# open                 1

LV Size                1.94 GiB

Current LE             496

Segments               1

Allocation             inherit

Read ahead sectors     auto

- currently set to     256

Block device           253:1

注:我们整个分区已经准备好,接下来就是针对LV进行处理。要注意的是,VG的名称是vbirdvg,但是LV的名称必须使用全名!即/dev/vbirdvg/vbirdlv。后续的处理都是这样的!笔者就犯过这样的错误,不注意的话很容易搞错。

  1. 7、       文件系统阶段

  2. ×    格式化、挂载、查看LV

[root@localhost ~]#mkfs -t ext3 /dev/vbirdvg/vbirdlv

mke2fs 1.41.12 (17-May-2010)

文件系统标签=

操作系统:Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0blocks

1310720 inodes, 5242880 blocks

262144 blocks (5.00%) reserved forthe super user

第一个数据块=0

Maximum filesystem blocks=4294967296

160 block groups

32768 blocks per group, 32768fragments per group

8192 inodes per group

Superblock backups stored on blocks:

32768,98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

4096000

正在写入inode表: 完成

Creating journal (32768 blocks): 完成

Writing superblocks and filesystemaccounting information: 完成

This filesystem will be automaticallychecked every 29 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@localhost ~]# mkdir /mnt/lvm   ←/mnt下创建一个名为lvm的文件夹

[root@localhost ~]# mount/dev/vbirdvg/vbirdlv /mnt/lvm             ←将LV分区挂载到新建的文件夹下

[root@localhost ~]# df

Filesystem                   1K-blocks    Used Available Use% Mounted on

/dev/mapper/VolGroup-lv_root  38776280 5019072  31787444 14% /

tmpfs                           243140      72   243068   1% /dev/shm

/dev/sda1                       495844   34907   435337   8% /boot

/dev/mapper/vbirdvg-vbirdlv  20642428  176196  19417656  1% /mnt/lvm

注:其实Lv的名称构成为/dev/vbirdvg/vbirdlv是为了让用户直观德找到我们所需要的数据,实际上LVM的设备是放置到/dev/mapper/目录下!此时LV已经建好了,可以自有应用/mnt/lvm中的所有资源。

  1. 1.8、     放大LV容量

刚才和大家说到LVM最大的特色就是弹性调整磁盘容量,下面我们将        演示如何放大LVM容量,具体步骤如下:

1) 创建新的分区,将system ID改为8e;

2) 利用pvcreate构建PV;

3) 利用vgextend将PV加入我们的vbirdvg;

4) 通过resize2fs将文件系统的容量却是增加;

  • 创建新分区

[root@localhost lvm]# fdisk /dev/sdb

switch off the mode (command 'c') and change display units to

sectors (command 'u').

Command (m for help): p

Disk /dev/sdb: 107.4 GB, 107374182400 bytes

255 heads, 63 sectors/track, 13054 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x74429a75

Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1        3917   31463271    5  Extended

/dev/sdb5               1         393    3156709+  8e  Linux LVM

/dev/sdb6             394        1308    7349706   8e  Linux LVM

/dev/sdb7            1309        1962    5253223+  8e  Linux LVM

/dev/sdb8            1963        2616    5253223+  8e  Linux LVM

Command (m for help): n

Command action

l   logical (5 or over)

p   primary partition (1-4)

l

First cylinder (2617-3917, default 2617):

Using default value 2617

G

Command (m for help): p

Disk /dev/sdb: 107.4 GB, 107374182400 bytes

255 heads, 63 sectors/track, 13054 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x74429a75

Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1        3917   31463271    5  Extended

/dev/sdb5               1         393    3156709+  8e  Linux LVM

/dev/sdb6             394        1308    7349706   8e Linux LVM

/dev/sdb7            1309        1962    5253223+  8e  Linux LVM

/dev/sdb8            1963        2616    5253223+  8e  Linux LVM

/dev/sdb9            2617        3009    3156741   83  Linux

Command (m for help): t

Partition number (1-9): 9

Hex code (type L to list codes): 8e

Changed system type of partition 9 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdb: 107.4 GB, 107374182400 bytes

255 heads, 63 sectors/track, 13054 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x74429a75

Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1        3917   31463271    5  Extended

/dev/sdb5               1         393    3156709+  8e  Linux LVM

/dev/sdb6             394        1308    7349706   8e  Linux LVM

/dev/sdb7            1309        1962    5253223+  8e  Linux LVM

/dev/sdb8            1963        2616    5253223+  8e Linux LVM

/dev/sdb9            2617        3009    3156741   8e  Linux LVM

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

源忙.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

[root@localhostlvm]# partprobe

  • 创建新的PV

[root@localhost ~]# pvcreate /dev/sdb9

Physical volume"/dev/sdb9" successfully created

[root@localhost ~]# pvscan

PV /dev/sdb5   VG vbirdvg   lvm2 [3.00 GiB / 0    free]

PV /dev/sdb6   VG vbirdvg   lvm2 [7.00 GiB / 0    free]

PV /dev/sdb7   VG vbirdvg   lvm2 [5.00 GiB / 0    free]

PV /dev/sdb8   VG vbirdvg   lvm2 [5.00 GiB / 0    free]

PV /dev/sdb9                           lvm2 [3.00 GiB / 0    free]

PV /dev/sda2   VG VolGroup  lvm2 [39.51 GiB / 0    free]

Total: 6 [62.51 GiB] / inuse: 6 [62.51 GiB] / in no VG: 0 [0   ]

注:可以看出/dev/sdb9是新加入尚未使用的

  • 加大VG使用vgextend功能

[root@localhost ~]#vgextend vbirdvg /dev/sdb9

Volumn group “vbirdvg”successfully extended

[root@localhost ~]# vgdisplay

--- Volume group ---

VG Name               vbirdvg

System ID

Format                lvm2

Metadata Areas        5

Metadata Sequence No  4

VG Access             read/write

VG Status             resizable

MAX LV                0

Cur LV                1

Open LV               0

Max PV                0

Cur PV                5

Act PV                5

VG Size               23.00 GiB

PE Size               16.00 MiB

Total PE              1472

Alloc PE / Size       1280 / 23.00 GiB

Free  PE / Size       192/ 3GB

VG UUID              QaQ6X4-U9RP-wW7m-bgWA-UJvY-4Kg5-6jmvye

--- Volume group ---

VG Name               VolGroup

System ID

Format                lvm2

Metadata Areas        1

Metadata Sequence No  3

VG Access             read/write

VG Status             resizable

MAX LV                0

Cur LV                2

Open LV               2

Max PV                0

Cur PV                1

Act PV                1

VG Size               39.51 GiB

PE Size               4.00 MiB

Total PE              10114

Alloc PE / Size       10114 / 39.51 GiB

Free  PE / Size       0 / 0

VG UUID               madnL1-qOMP-r9EC-36w9-0bO0-KeyZ-z0znMh

root@localhost ~]# lvresize –l +192 /dev/vbirdvg/vbirdlv

Extending logical volume vbirdlvto 23 GB

Logical volume vbirdlvsuccessfully resized

注:本次使用-l只是为了给大家演示-l的用法

这样就增加LV了。Lvresize的用法很简单,基本上同样通过-l或-L来增加。

[root@localhost ~]# lvdisplay

--- Logical volume ---

LV Path                /dev/vbirdvg/vbirdlv

LV Name                vbirdlv

VG Name                vbirdvg

LV UUID                p89ztk-RQFc-YG5j-20Xc-QtJ9-uYdR-DU5bfZ

LV Write Access        read/write

LV Creation host, timelocalhost, 2016-06-27 22:10:32 +0800

LV Status              available

# open                 0

LV Size                23.00 GiB

Current LE             1472

Segments               5

Allocation             inherit

Read ahead sectors     auto

- currently set to     256

Block device           253:2

--- Logical volume ---

LV Path                /dev/VolGroup/lv_root

LV Name                lv_root

VG Name                VolGroup

LV UUID               JNU6kK-z5rp-xkTU-lB9F-98yj-WcZc-E1AXrH

LV Write Access        read/write

LV Creation host, timelocalhost.localdomain, 2016-04-07 06:36:29 +0800

LV Status              available

# open                 1

LV Size                37.57 GiB

Current LE             9618

Segments               1

Allocation             inherit

Read ahead sectors     auto

- currently set to     256

Block device           253:0

--- Logical volume ---

LV Path                /dev/VolGroup/lv_swap

LV Name                lv_swap

VG Name                VolGroup

LV UUID               w1qlH9-6odx-Q4Es-tVAt-n3gn-JOjx-1v7QQY

LV Write Access        read/write

LV Creation host, timelocalhost.localdomain, 2016-04-07 06:36:32 +0800

LV Status              available

# open                 1

LV Size                1.94 GiB

Current LE             496

Segments               1

Allocation             inherit

Read ahead sectors     auto

- currently set to     256

Block device           253:1

[root@localhost ~]# df -h /mnt/lvm

Filesystem                  Size  Used Avail Use% Mounted on

/dev/mapper/vbirdvg-vbirdlv  20G  173M   19G  1% /mnt/lvm

注:可以看出最终结果中LV真的有放大到23G,但文件系统没有增加。而且,我们的LVM可以在线直接处理,并不需要给它umount。

  • 使用resize2fs

[root@localhost lvm]# dumpe2fs /dev/vbirdvg/vbirdlv

dumpe2fs 1.41.12 (17-May-2010)

Filesystem volume name:   <none>

Last mounted on:          <not available>

Filesystem UUID:          b0560ee1-443e-4230-a3bd-0d13d4d39891

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal ext_attr resize_inodedir_index filetype needs_recovery sparse_super large_file

Filesystem flags:         signed_directory_hash

Default mount options:    (none)

Filesystem state:         clean

Errors behavior:          Continue

Filesystem OS type:       Linux

Inode count:              1310720

Block count:              5242880                 这个文件系统的block总数

Reserved block count:     262144

Free blocks:              5116557

Free inodes:              1310708

First block:              0

Block size:               4096

Fragment size:            4096

Reserved GDT blocks:      1022

Blocks per group:         32768         多少个block设置成为一个block

Fragments per group:      32768

Inodes per group:         8192

Inode blocks per group:   512

Filesystem created:       Mon Jun 27 22:17:05 2016

Last mount time:          Mon Jun 27 22:41:45 2016

Last write time:          Mon Jun 27 22:41:45 2016

Mount count:              2

Maximum mount count:      29

Last checked:             Mon Jun 27 22:17:05 2016

Check interval:           15552000 (6 months)

Next check after:         Sat Dec 24 22:17:05 2016

Reserved blocks uid:      0 (user root)

Reserved blocks gid:      0 (group root)

First inode:              11

Inode size:                256

Required extra isize:     28

Desired extra isize:      28

Journal inode:            8

Default directory hash:   half_md4

Directory Hash Seed:      624a67f4-a148-425e-bb32-59ad7534feea

Journal backup:           inode blocks

Journal features:         (none)

日志大小:             128M

Journal length:           32768

Journal sequence:         0x0000000e

Journal start:            1

Group 0: (Blocks 0-32767)                ←括号内为block的号码

主 superblock at 0, Group descriptors at 1-2

保留的GDT块位于 3-1024

Block bitmap at 1025 (+1025), Inode bitmap at 1026 (+1026)

Inode表位于 1027-1538 (+1027)

31222 free blocks, 8180 free inodes, 2 directories

可用块数: 1545-6151, 6153-32767

可用inode数: 12-13, 15-8192

….(中间省略)…….

Group 159: (Blocks 5210112-5242879)          这是本系统中最后一个group

Block bitmap at 5210112 (+0), Inode bitmap at 5210113 (+1)

Inode表位于 5210114-5210625 (+2)

32254 free blocks, 8192 free inodes, 0 directories

可用块数: 5210626-5242879

可用inode数: 1302529-1310720

注:以上信息是文件系统内的superblock的记录情况。

[root@localhostlvm]# resize2fs -f /dev/vbirdvg/vbirdlv

resize2fs1.41.12 (17-May-2010)

zingrequired

olddesc_blocks = 2, new_desc_blocks = 2

ocks.

Thefilesystem on /dev/vbirdvg/vbirdlv is now 6029312 blocks long.

注:

-f:强制进行resize的操作;

-f后面跟设备名还可以在设备名后面跟大小,可以加也可以不加,如果加上size的话必须给定一个单位(M、G等)如果没有size的话默认使用整个分区量来处理。

[root@localhost ~]# df -h /mnt/lvm

Filesystem                   Size  Used Avail Use% Mounted on

/dev/mapper/vbirdvg-vbirdlv   23G 173M   22G   1% /mnt/lvm

[root@localhost ~]# ls -l/mnt/lvm/

总用量 20

drwx------. 2 root root 16384 6月 27 22:17 lost+found

-rwxr-xr-x. 1 root root    23 6月  2722:29 test.sh

注:Lvm中的数据依然存在。

如果你已经有填数据在lvm扇区中,这个数据是不会死掉的,还会在以前原本的扇区当中。

  1. 1.9、      缩小LV容量

         [root@localhost ~]# pvdisplay

  --- Physical volume ---

PV Name               /dev/sdb5

VG Name               vbirdvg

PV Size               3.01 GiB / not usable 10.75 MiB

Allocatable           yes (but full)

PE Size               16.00 MiB

Total PE              192

Free PE               0

Allocated PE          192

PV UUID              IYkvra-xyFA-mB1U-7wvs-fhf4-I4Qg-88C3mG

注:从以上信息得知/dev/sdb5有多大,而且含有192个PE的量。

那如果要使用resize2fs是,则减去7.01GB就可以了。

[root@localhost ~]# pvscan

PV /dev/sdb5   VG vbirdvg    lvm2 [3.00 GiB / 0    free]

PV /dev/sdb6   VG vbirdvg    lvm2 [7.00 GiB / 0    free]

PV /dev/sdb7   VG vbirdvg    lvm2 [5.00 GiB / 0    free]

PV /dev/sdb8   VG vbirdvg    lvm2 [5.00 GiB / 0    free]

PV /dev/sdb9   VG vbirdvg    lvm2 [3.00 GiB / 0    free]

PV /dev/sda2   VG VolGroup   lvm2 [39.51 GiB / 0    free]

Total: 6 [62.51 GiB] / in use: 6 [62.51 GiB] /in no VG: 0 [0   ]

注:从以上信息可以看出去除/dev/sdb5剩余容量为20GB(7+5+5+3=20)

  • 卸载/mnt/lvm

[root@localhost ~]# umount/mnt/lvm

  • 进行磁盘检查

[root@localhost ~]# e2fsck -f/dev/vbirdvg/vbirdlv

e2fsck 1.41.12 (17-May-2010)

第一步: 检查inode,块,和大小

第二步: 检查目录结构

第3步: 检查目录连接性

Pass 4: Checking reference counts

第5步: 检查簇概要信息

/dev/vbirdvg/vbirdlv:12/1507328 files (0.0% non-contiguous), 138659/6029312 blocks

  • 降低文件系统的容量

[root@localhost ~]# resize2fs/dev/vbirdvg/vbirdlv 20G

resize2fs 1.41.12 (17-May-2010)

Resizing the filesystem on/dev/vbirdvg/vbirdlv to 5242880 (4k) blocks.

The filesystem on/dev/vbirdvg/vbirdlv is now 5242880 blocks long.

注:有可能出现容量不能够写小数点为的时候大家可以把G换算成M就可以了。

  • 降低LV的容量

[root@localhost ~]# lvresize -l-192 /dev/vbirdvg/vbirdlv

WARNING: Reducing active and open logical volume to 20.00 GiB

THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reducevbirdlv? [y/n]: y            ←会有警告信息,但是我们的实际数据量还是比16G要小,所以就按y

Reducing logical volume vbirdlv to 20.00 GiB

Logical volume vbirdlv successfully resized

注:降低LV的量,同时我们知道/dev/sdb5有192个PE

[root@localhost ~]# lvdisplay

--- Logical volume ---

LV Path               /dev/vbirdvg/vbirdlv

LV Name                vbirdlv

VG Name                vbirdvg

LV UUID               p89ztk-RQFc-YG5j-20Xc-QtJ9-uYdR-DU5bfZ

LV Write Access        read/write

LV Creation host, time localhost, 2016-06-27 22:10:32 +0800

LV Status              available

# open                 1

LV Size                20.00 GiB

Current LE             1280

Segments               4

Allocation             inherit

Read ahead sectors     auto

- currently set to     256

Block device           253:2

--- Logical volume ---

LV Path               /dev/VolGroup/lv_root

LV Name                lv_root

VG Name                VolGroup

LV UUID               JNU6kK-z5rp-xkTU-lB9F-98yj-WcZc-E1AXrH

LV Write Access        read/write

LV Creation host, time localhost.localdomain, 2016-04-07 06:36:29 +0800

LV Status              available

# open                 1

LV Size                37.57 GiB

Current LE             9618

Segments               1

Allocation             inherit

Read ahead sectors     auto

- currently set to     256

Block device           253:0

--- Logical volume ---

LV Path               /dev/VolGroup/lv_swap

LV Name                lv_swap

VG Name                VolGroup

LV UUID                w1qlH9-6odx-Q4Es-tVAt-n3gn-JOjx-1v7QQY

LV Write Access        read/write

LV Creation host, time localhost.localdomain, 2016-04-07 06:36:32 +0800

LV Status              available

# open                 1

LV Size                1.94 GiB

Current LE             496

Segments               1

Allocation             inherit

Read ahead sectors     auto

- currently set to     256

Block device           253:1

注:这样就将LV缩小了,接下来就是要将/dev/sdb5移出vbirdvg这个VG之外。我们在移出之前我们要先确定/dev/sdb9里面的PE完全不被使用后才能将/dev/sdb5抽离

  • /dev/sdb9移出vbirdvg

[root@localhost ~]# pvdisplay

--- Physical volume ---

PV Name               /dev/sdb5

VG Name               vbirdvg

PV Size               3.01 GiB /not usable 10.72 MiB

Allocatable           yes (butfull)

PE Size               16.00 MiB

Total PE              192

Free PE               0

Allocated PE          192

PV UUID               IYkvra-xyFA-mB1U-7wvs-fhf4-I4Qg-88C3mG

--- Physical volume ---

PV Name               /dev/sdb6

VG Name               vbirdvg

PV Size               7.01 GiB /not usable 9.45 MiB

Allocatable           yes (butfull)

PE Size               16.00 MiB

Total PE              448

Free PE               0

Allocated PE          448

PV UUID              gErjmF-t2Wb-jFI4-qLZ4-4lze-1oU9-O7HdRb

--- Physical volume ---

PV Name               /dev/sdb7

VG Name               vbirdvg

PV Size               5.01 GiB /not usable 10.10 MiB

Allocatable           yes (butfull)

PE Size               16.00 MiB

Total PE              320

Free PE               0

Allocated PE          320

PV UUID              CqHwxm-ZfFT-KHju-SkS0-bXNN-Q70X-hYkjb0

--- Physical volume ---

PV Name               /dev/sdb8

VG Name               vbirdvg

PV Size               5.01 GiB /not usable 10.10 MiB

Allocatable           yes (butfull)

PE Size               16.00 MiB

Total PE              320

Free PE               0

Allocated PE          320

PV UUID              ty3uai-DtDD-h2QC-n01u-psKJ-7Blf-cvQAiL

--- Physical volume ---

PV Name               /dev/sdb9

VG Name               vbirdvg

PV Size               3.01 GiB /not usable 10.75 MiB

Allocatable           yes

PE Size               16.00 MiB

Total PE              192

Free PE               192

Allocated PE          0

PV UUID              PaBXJr-hpTK-hcvU-8Uxh-odDw-QNEX-dTeL0V

--- Physical volume ---

PV Name               /dev/sda2

VG Name               VolGroup

PV Size               39.51 GiB /not usable 3.00 MiB

Allocatable           yes (butfull)

PE Size               4.00 MiB

Total PE              10114

Free PE               0

Allocated PE          10114

PV UUID              C8Soc4-4V1F-I3LI-YyJr-KnEP-urtx-xXpKjh

注:先确认/dev/sdb5是否将PE都删除了

通过查看上述信息可以看出在/dev/sdb9上有没有使用的PE刚好和/dev/sdb5上的PE一样大,我们需要将PE从/dev/sdb5转移到/dev/sdb9

  • 转移PE

[root@localhost ~]# pvmove/dev/sdb5 /dev/sdb9

/dev/sdb5: Moved: 0.0%

/dev/sdb5: Moved: 26.0%

/dev/sdb5: Moved: 52.1%

/dev/sdb5: Moved: 78.1%

/dev/sdb5: Moved: 100.0%

注:Pvmove 来源pv 目标pv,可以将/dev/sdb5中的数据全部移动到/dev/sdb9中。

  • /dev/sdb5移出vbirdvg

                            [root@localhost ~]# vgreduce vbirdvg/dev/sdb5

Removed "/dev/sdb5" from volumegroup "vbirdvg"

[root@localhost~]# pvscan

PV /dev/sdb6   VG vbirdvg         lvm2 [7.00 GiB / 0    free]

PV /dev/sdb7   VG vbirdvg         lvm2 [5.00 GiB / 0    free]

PV /dev/sdb8   VG vbirdvg         lvm2 [5.00 GiB / 0    free]

PV /dev/sdb9   VG vbirdvg         lvm2 [3.00 GiB / 0    free]

PV /dev/sda2   VG VolGroup        lvm2 [39.51 GiB / 0    free]

PV /dev/sdb5                     lvm2 [3.01 GiB]

Total: 6 [62.52 GiB] / in use: 5 [59.51 GiB]/ in no VG: 1 [3.01 GiB]

[root@localhost ~]# pvremove /dev/sdb5

Labels on physical volume"/dev/sdb5" successfully wiped

         注:/dev/sdb5已经空出来了,可以去让他做别的事情了!基本上是完成了,LVM快照请参考文章http://bella41981.blog.51cto.com/10603572/1795009

转载于:https://blog.51cto.com/bella41981/1794365

LVM逻辑管理器(Logical volume Manager)相关推荐

  1. 磁盘管理之逻辑卷管理(Logical Volume Manager)

    LVM是逻辑卷管理(Logical Volume Manager)的简称,它是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性. LVM将存储 ...

  2. Linux学习-逻辑滚动条管理员 (Logical Volume Manager)

    LVM 可以整合多个实体 partition 在一起, 让这些 partitions 看起来就像是一个磁盘一样!而且,还可以在未来新增或移除其他的实 体 partition 到这个 LVM 管理的磁盘 ...

  3. 逻辑卷管理器-LVM-Logical Volume Manager 基本操作

    LVM重点在于:可以弹性地调整文件系统的容量,而并不在于性能和数据安全上. LVM功能在于:可以整合多个物理分区,使得这些分区看起来像是一个磁盘,未来可以在LVM管理的磁盘中新增或删除其他物理分区. ...

  4. 逻辑卷管理员(Logical Volume Manager)介绍

    一.简介 我们在平时使用磁盘的时候经常会遇到磁盘的空间因为经常使用而造成磁盘的空间使用殆尽,但再重新更换磁盘又太麻烦,不仅要重新格式化磁盘,还要将原磁盘里数据再拷过去,特别的不方便,在Linux中为了 ...

  5. 理解 LVM (Logical Volume Manager)

    理解 LVM (Logical Volume Manager) Posted on2008-10-26 by hilyjiang 最近在安装 Gentoo 的过程中遇到一个新名词 ── LVM.由于在 ...

  6. 逻辑卷管理LVM(logical volume manager)

    LVM的全名是logical volume manager,中文翻译逻辑卷管理器.之所以称为卷是因为可以将文件系统像卷一样伸长和缩短,LVM的做法是将几个物理的分区(或磁盘)通过软件组合成为一块独立的 ...

  7. LVM(Logical Volume Manager)逻辑卷管理

    一:LVM简介 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管 ...

  8. Linux学习笔记38——磁盘配额 (Quota) 的应用与实作、软件磁盘阵列 (Software RAID)、逻辑卷轴管理员 (Logical Volume Manager)

    一.磁盘配额 (Quota) 的应用与实作 1,什么是 Quota Quota 的一般用途 [1] Quota 的使用限制 2,一个 XFS 文件系统的 Quota 实作范例 3 实作 Quota 流 ...

  9. LVM(logical volume manager) 逻辑卷管理器

    LVM(logical volume manager) 逻辑卷管理器 其中主要分为这几个概念 1物理卷-简称PV 物理卷在逻辑卷管理器中属于最底层的,任何的逻辑卷和卷组都必需依靠物理卷来建立,物理卷可 ...

  10. LVM: Logical Volume Manager 逻辑卷管理

    一.LVM介绍 LVM: Logical Volume Manager, Version: 2 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小 允许在多个物理设备间重新组织文件系统 将设备指 ...

最新文章

  1. JAVA基础14-Java接口及其使用
  2. linux c 文件描述符 得到 文件名
  3. Python爬虫彩票数据(120期)爬取
  4. Tomcat 架构原理到架构设计,写得非常好!
  5. 【NLP傻瓜式教程】手把手带你RNN文本分类(附代码)
  6. 2 Effect Hook
  7. 现在是小程序最好的时代
  8. spring cloud 和 dubbo 各自的优缺点
  9. linux卸载zabbix数据库,结合宝塔linux面板 centos6 7一键zabbix安装脚本!
  10. 【279天】跃迁之路——程序员高效学习方法论探索系列(实验阶段37-2017.11.11)...
  11. 山东省计算机考试无法报名,12月20日开始报名!山东2020年3月全国计算机等级考试注意事项来咯...
  12. android 集成x5内核时 本地没有,腾讯X5内核集成一些建议和爬坑记录
  13. 基于FPGA驱动ARINC429总线发送
  14. Matlab:Matlab 软件学习之GUI图像用户界面简介(工具栏/菜单栏/对话框)、GUI界面设计案例应用(设计二级菜单栏)之详细攻略
  15. [项目管理] BOT运作模式
  16. qt 二维数组初始化_C++数组初始化方法
  17. 二、azkaban 指南
  18. BLE设备地址类型笔记
  19. 利用公有云cvm 公网IP实现内网穿透,远程登录内网服务器
  20. 微星RTX 4090和RTX 4080 SUPRIM参数对比评测

热门文章

  1. Postman 中文包使用
  2. 简单网页制作html语言,用HTML语言制作简单的网页.doc
  3. 用生活案例讲述:erp系统是什么?有哪些作用?
  4. 如何查看自己的代理ip地址
  5. MySQL大批量造数据
  6. 计算机一级windows7操作,高校计算机一级考试指导书(Windows7+Office2010)
  7. 浅谈外存分配的几种方式
  8. 搜索引擎优化、常用SEO优化方法总结
  9. 精选西门子PLC工程实例源码【共300套】
  10. webrtc音频处理源码概述