首页 > 代码库 > lvm逻辑卷管理

lvm逻辑卷管理


它是Linux环境下对磁盘分区进行管理的一种机制

解释:

LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的 文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。

解释:

在一般对内存管理中,当内存不够时,最好的办法就是加入新的硬盘,可是应该怎么加入呢,于是引出了lvm逻辑卷管理概念,我们将内存比作橙汁,在用户少使,橙汁够喝,内存够用,在用户基数变大是,橙汁不够了,硬盘空间不够,我们需要加入橙汁,在此,我们将分区的硬盘比作橙子,将其榨成橙汁变成pv   将所有的橙汁汇总变成仓库即vg,最后需要多少拿多少即lv

所以,我们可以先简单做一下lvm的制作管理

一:分区

注:将标签改为lvm

[root@server20 ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x57efd1b2.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
Partition number (1-4, default 1): 
First sector (2048-20971519, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +2G
Partition 1 of type Linux and of size 2 GiB is set

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): l

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 Ext‘d (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1 80  Old Minix      
Hex code (type L to list all codes): 8e
Changed type of partition ‘Linux‘ to ‘Linux LVM‘

Command (m for help): p

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x57efd1b2

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048     4196351     2097152   8e  Linux LVM

Command (m for help): wq

二:成果监控

pvs vgs  lvs 分别监控对应的

[root@server20 ~]# watch -n 1 "pvs;echo "===";vgs;echo "===";lvs; echo "======""

三:具体操作

1:新建pv

[root@server20 ~]# pvcreate /dev/vdb1      
  Physical volume "/dev/vdb1" successfully created

        监控

 PV         VG     Fmt  Attr PSize PFree
  /dev/vdb1  hahavg lvm2 a--  2.00g 1.90g

2:新建vg

[root@server20 ~]# vgcreate hahavg /dev/vdb1  
 #此处hahavg为自己起的名字,地址在/dev/hahavg
  Volume group "hahavg" successfully created

        监控

===
  VG     #PV #LV #SN Attr   VSize VFree
  hahavg   1   1   0 wz--n- 2.00g 1.90g

3:新建lv

[root@server20 ~]# lvcreate -L 100M -n hahalv hahavg 
#此处-L 表示大小 -n 名字  后面接vg
  Logical volume "hahalv" created

   监控

 LV     VG     Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
  hahalv hahavg -wi-a----- 100.00m

4:vg的扩展:前提拥有pv

[root@server20 ~]# vgextend hahavg /dev/vdb2
  Physical volume "/dev/vdb2" successfully created
  Volume group "hahavg" successfully extended

   监控

 PV         VG     Fmt  Attr PSize   PFree
  /dev/vdb1  hahavg lvm2 a--    2.00g   1.90g
  /dev/vdb2  hahavg lvm2 a--  196.00m 196.00m
===
  VG     #PV #LV #SN Attr   VSize VFree
  hahavg   2   1   0 wz--n- 2.19g 2.09g

5:vg的缩小

[root@server20 ~]# vgreduce hahavg /dev/vdb2
  Removed "/dev/vdb2" from volume group "hahavg"

  监控 

 PV         VG     Fmt  Attr PSize   PFree
  /dev/vdb1  hahavg lvm2 a--    2.00g   1.90g
  /dev/vdb2         lvm2 a--  200.00m 200.00m
===
  VG     #PV #LV #SN Attr   VSize VFree
  hahavg   1   1   0 wz--n- 2.00g 1.90g
===
  LV     VG     Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
  hahalv hahavg -wi-a----- 100.00m
======

注:要去掉vg前提是我们没有使用其作lvs

vgextend vg0 /dev/vdb2         ##扩展vg,前提是/dev/vdb2成了pv
vgreduce vg0 /dev/vdb2         ##缩小vg,即将/dev/vdb2去掉
lv缩小  由于xfs系统不能扩展。所以只能将其格式化ext4
umount /dev/vg0/lv0    #卸载
mkfs.ext4d /dev/vg0/lv0    ##格式化为ext4
resize2fs /dev/vg0/lv0  
lvextend -L 320M /dev/vg0/lv0  ##缩小


本文出自 “12462896” 博客,请务必保留此出处http://12472896.blog.51cto.com/12462896/1953858

lvm逻辑卷管理