磁盘管理——LVM

一 什么是LVM

逻辑卷轴管理器(英语:LogicalVolume Manager,缩写为LVM),又译为逻辑卷宗管理器、逻辑磁区管理器、逻辑磁碟管理器,是Linux核心所提供的逻辑卷轴管理(Logical volume management)功能。它在硬碟的硬盘分区之上,又建立一个逻辑层,以方便系统管理硬碟分割系统。

最先由IBM开发,在AIX系统上实作,OS/2 作业系统与 HP-UX也支援这个功能。在1998年,Heinz Mauelshagen 根据在 HP-UX 上的逻辑卷轴管理器,写作出第一个 Linux 版本的逻辑卷轴管理器。

 磁盘管理——LVM_第1张图片

#LVM:把磁盘合并

#物理卷:PV 划分为LVM的声明

#卷组:VG 把多个磁盘分到一组

#逻辑卷:LV 化分一部分使用

 

二 物理卷相关操作

#动态添加和减少
#坏了:磁盘更换,数据丢失
#安装pvcreate命令
[root@serv01 ~]# yum install /sbin/pvcreate-y
#创建物理卷
[root@serv01 ~]# pvcreate /dev/sdb1/dev/sdc1 /dev/sdd1
 Physical volume "/dev/sdb1" successfully created
 Physical volume "/dev/sdc1" successfully created
 Physical volume "/dev/sdd1" successfully created
#显示物理卷
[root@serv01 ~]# pvdisplay
 "/dev/sdb1" is a new physical volume of "2.00 GiB"
  ---NEW Physical volume ---
  PVName               /dev/sdb1
  VGName              
  PVSize               2.00 GiB
 Allocatable           NO
  PESize               0  
 Total PE              0
 Free PE               0
 Allocated PE          0
  PVUUID              pz5yiv-EiGe-ggUF-PBuz-DGg7-Q7TN-wcRtDF
  
 "/dev/sdc1" is a new physical volume of "2.00 GiB"
  ---NEW Physical volume ---
  PVName               /dev/sdc1
  VGName              
  PVSize               2.00 GiB
 Allocatable           NO
  PESize               0  
 Total PE              0
 Free PE               0
 Allocated PE          0
  PVUUID              Ktxmtw-CXKV-EfUF-NU8q-dxBJ-ptFG-J61jGl
  
 "/dev/sdd1" is a new physical volume of "2.00 GiB"
  ---NEW Physical volume ---
  PVName               /dev/sdd1
  VGName              
  PVSize               2.00 GiB
 Allocatable           NO
  PESize               0  
 Total PE              0
 Free PE               0
 Allocated PE          0
  PVUUID              RGu6DT-qQut-fnAU-Hdvu-NKT4-uggp-QtFNRs

 

三 卷组相关操作

#显示卷组
[root@serv01 ~]# vgdisplay
  Novolume groups found
 
#创建卷组
[root@serv01 ~]# vgcreate myvg /dev/sdb1/dev/sdc1 /dev/sdd1
 Volume group "myvg" successfully created
[root@serv01 ~]# vgdisplay
  ---Volume group ---
  VGName               myvg
 System ID            
 Format                lvm2
 Metadata Areas        3
 Metadata Sequence No  1
  VGAccess             read/write
  VGStatus             resizable
  MAXLV                0
  CurLV                0
 Open LV               0
  MaxPV                0
  CurPV                3
  ActPV                3
  VGSize               5.99 GiB
  PESize               4.00 MiB
 Total PE              1533
 Alloc PE / Size       0 / 0  
 Free  PE / Size       1533 / 5.99 GiB
  VGUUID               Yai04O-2UGc-LoZ3-iVHA-L7yO-26eZ-CI82tb


四 逻辑卷相关操作

#创建逻辑卷
[root@serv01 ~]# lvcreate -L 500M -n mylv01myvg
 Logical volume "mylv01" created
[root@serv01 ~]# lvdisplay
--- Logical volume ---
  LVName                /dev/myvg/mylv01
  VGName                myvg
  LVUUID               zjfjIV-S3Kv-dkHZ-xKOC-wPV7-nG3H-QuaKGU
  LVWrite Access        read/write
  LVStatus              available
  #open                 0
  LVSize                500.00 MiB
 Current LE             125
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
  -currently set to     256
 Block device           253:0

五 LVM使用

#格式化
[root@serv01 ~]# mkfs.ext4 /dev/myvg/mylv01
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the superuser
First data block=1
Maximum filesystem blocks=67633152
63 block groups
8192 blocks per group, 8192 fragments pergroup
2032 inodes per group
Superblock backups stored on blocks:
       8193,24577, 40961, 57345, 73729, 204801, 221185, 401409
 
Writing inode tables: done                           
Creating journal (8192 blocks): done
Writing superblocks and filesystemaccounting information: done
 
This filesystem will be automaticallychecked every 37 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
#挂载
[root@serv01 ~]# mount /dev/myvg/mylv01/web/
[root@serv01 ~]# df -h
Filesystem            Size Used Avail Use% Mounted on
/dev/sda2             9.7G  1.1G 8.1G  12% /
tmpfs                 188M     0 188M   0% /dev/shm
/dev/sda1             194M   25M 160M  14% /boot
/dev/sda5             4.0G  137M 3.7G   4% /opt
/dev/sr0              3.4G 3.4G     0 100% /iso
/dev/mapper/myvg-mylv01
                      485M   11M 449M   3% /web
 
[root@serv01 ~]# cd /boot
[root@serv01 boot]# cd /web/
[root@serv01 web]# ls
lost+found
#拷贝文件
[root@serv01 web]# cp /boot/* ./ -rf
[root@serv01 web]# ls
config-2.6.32-131.0.15.el6.x86_64  initramfs-2.6.32-131.0.15.el6.x86_64.img  System.map-2.6.32-131.0.15.el6.x86_64
efi                                lost+found                               vmlinuz-2.6.32-131.0.15.el6.x86_64
grub                               symvers-2.6.32-131.0.15.el6.x86_64.gz
#追加文件到/etc/fstab
[root@serv01 web]# echo"/dev/myvg/mylv01 /web ext4 defaults 1 2" >> /etc/fstab
[root@serv01 web]# tail -n 1 /etc/fstab
/dev/myvg/mylv01 /web ext4 defaults 1 2
[root@serv01 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             9.7G  1.1G 8.1G  12% /
tmpfs                 188M     0 188M   0% /dev/shm
/dev/sda1             194M   25M 160M  14% /boot
/dev/sda5             4.0G  137M 3.7G   4% /opt
/dev/mapper/myvg-mylv01
                      485M   29M 431M   7% /web
/dev/sr0              3.4G  3.4G    0 100% /iso
#重启,到/web目录下查看文件
[root@serv01 web]# reboot
[root@larrywen disk]# ssh 192.168.1.11
[email protected]'s password:
Last login: Thu Aug  1 21:48:24 2013 from 192.168.1.1
[root@larrywen disk]# cd /web
config-2.6.32-131.0.15.el6.x86_64         lost+found                            System.map-2.6.32-131.0.15.el6.x86_64
initramfs-2.6.32-131.0.15.el6.x86_64.img  symvers-2.6.32-131.0.15.el6.x86_64.gz  vmlinuz-2.6.32-131.0.15.el6.x86_64
[root@serv01 web]# lvextend —help

六 增加逻辑卷

[root@serv01 web]# lvextend -L +500M/dev/myvg/mylv01
 Extending logical volume mylv01 to 1000.00 MiB
 Logical volume mylv01 successfully resized
#lvdisplay
[root@serv01 web]# lvdisplay
  ---Logical volume ---
  LVName                /dev/myvg/mylv01
  VGName                myvg
  LVUUID               zjfjIV-S3Kv-dkHZ-xKOC-wPV7-nG3H-QuaKGU
  LVWrite Access        read/write
  LVStatus              available
  #open                 1
  LVSize                1000.00 MiB
 Current LE             250
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
  -currently set to     256
 Block device           253:0
#查看磁盘发现大小没变
[root@serv01 web]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             9.7G  1.1G 8.1G  12% /
tmpfs                 188M     0 188M   0% /dev/shm
/dev/sda1             194M   25M 160M  14% /boot
/dev/sda5             4.0G 137M  3.7G   4% /opt
/dev/mapper/myvg-mylv01
                      485M   29M 431M   7% /web
/dev/sr0              3.4G  3.4G    0 100% /iso
[root@serv01 web]# cd /
#卸载
[root@serv01 /]# umount /web
#执行resize2fs命令更新
[root@serv01 /]# resize2fs /dev/myvg/mylv01
resize2fs 1.41.12 (17-May-2010)
Please run 'e2fsck -f /dev/myvg/mylv01'first.
#发现有提示,先执行e2fsck -f/dev/myvg/mylv01
[root@serv01 /]# e2fsck -f /dev/myvg/mylv01
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/myvg/mylv01: 16/128016 files (0.0%non-contiguous), 45237/512000 blocks
#再次执行上述命令,再次mount,再次查看磁盘空间,发现磁盘变大
[root@serv01 /]# resize2fs /dev/myvg/mylv01
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv01to 1024000 (1k) blocks.
The filesystem on /dev/myvg/mylv01 is now1024000 blocks long.
 
[root@serv01 /]# mount /dev/myvg/mylv01/web
[root@serv01 /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             9.7G  1.1G 8.1G  12% /
tmpfs                 188M     0 188M   0% /dev/shm
/dev/sda1             194M   25M 160M  14% /boot
/dev/sda5             4.0G 137M  3.7G   4% /opt
/dev/sr0              3.4G  3.4G    0 100% /iso
/dev/mapper/myvg-mylv01
                      969M   29M 891M   4% /web


七 减少空间

#减少空间——危险操作,很可能数据被破坏
[root@serv01 /]# lvreduce -L -700M/dev/myvg/mylv01
 WARNING: Reducing active and open logical volume to 300.00 MiB
 THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv01? [y/n]:y
 Reducing logical volume mylv01 to 300.00 MiB
 Logical volume mylv01 successfully resized
[root@serv01 /]# lvdisplay
  ---Logical volume ---
  LVName                /dev/myvg/mylv01
  VGName                myvg
  LVUUID               zjfjIV-S3Kv-dkHZ-xKOC-wPV7-nG3H-QuaKGU
  LVWrite Access        read/write
  LVStatus              available
  #open                 1
  LVSize                300.00 MiB
 Current LE             75
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
  -currently set to     256
 Block device           253:0
 
[root@serv01 /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             9.7G  1.1G 8.1G  12% /
tmpfs                 188M     0 188M   0% /dev/shm
/dev/sda1             194M   25M 160M  14% /boot
/dev/sda5             4.0G  137M 3.7G   4% /opt
/dev/sr0              3.4G  3.4G    0 100% /iso
/dev/mapper/myvg-mylv01
                      969M   29M 891M   4% /web
[root@serv01 /]# resize2fs /dev/myvg/mylv01
resize2fs 1.41.12 (17-May-2010)
Please run 'e2fsck -f /dev/myvg/mylv01'first.
 
[root@serv01 /]# e2fsck -f /dev/myvg/mylv01
e2fsck 1.41.12 (17-May-2010)
The filesystem size (according to thesuperblock) is 1024000 blocks
The physical size of the device is 307200blocks
Either the superblock or the partitiontable is likely to be corrupt!
Abort<y>? Yes
 
[root@serv01 /]# resize2fs /dev/myvg/mylv01300
resize2fs 1.41.12 (17-May-2010)
resize2fs: New size smaller than minimum(34402)
 
[root@serv01 /]# mount /dev/myvg/mylv01/web
mount: wrong fs type, bad option, badsuperblock on /dev/mapper/myvg-mylv01,
      missing codepage or helper program, or other error
      In some cases useful info is found in syslog - try
      dmesg | tail  or so
 
[root@serv01 /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             9.7G 1.1G  8.1G  12% /
tmpfs                 188M     0 188M   0% /dev/shm
/dev/sda1             194M   25M 160M  14% /boot
/dev/sda5             4.0G  137M 3.7G   4% /opt
/dev/sr0              3.4G  3.4G    0 100% /iso
 
 
[root@serv01 /]# lvremove /dev/myvg/mylv01
[root@serv01 /]# vgremove myvg
 
[root@serv01 /]# vgcreate myvg/dev/sd[bcd]1
 Volume group "myvg" successfully created
[root@serv01 /]# lvcreate -L 1000M -nmylv01 myvg
 Logical volume "mylv01" created
[root@serv01 /]# lvreduce -L -700M/dev/myvg/mylv01^C
[root@serv01 /]# umount /web
umount: /web: not mounted
[root@serv01 /]# lvreduce -L 700M/dev/myvg/mylv01
 WARNING: Reducing active logical volume to 700.00 MiB
 THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv01? [y/n]:y
 Reducing logical volume mylv01 to 700.00 MiB
 Logical volume mylv01 successfully resized
[root@serv01 /]# resize2fs -f/dev/myvg/mylv01 17323

 

八 添加磁盘

[root@serv01 /]# pvcreate /dev/sde1
 Physical volume "/dev/sde1" successfully created
[root@serv01 /]# vgextend myvg /dev/sde1
 Volume group "myvg" successfully extended
[root@serv01 /]# lvextend -L +2G/dev/myvg/mylv01
 Extending logical volume mylv01 to 2.68 GiB
 Logical volume mylv01 successfully resized
[root@serv01 /]# resize2fs /dev/myvg/mylv01
 
[root@serv01 /]# resize2fs /dev/myvg/mylv01
resize2fs 1.41.12 (17-May-2010)
resize2fs: Bad magic number in super-blockwhile trying to open /dev/myvg/mylv01
Couldn't find valid filesystem superblock.


九 减少(移除)磁盘

#减少(移除)磁盘:减少的磁盘不影响存储
[root@serv01 /]# pvmove /dev/sdb1
[root@serv01 /]# vgreduce myvg /dev/sdb1
[root@serv01 /]# pvremove /dev/sdb1
	
[root@serv01 /]# df -h

十 销毁磁盘

[root@serv01 /]# lvremove /dev/myvg/mylv01
[root@serv01 /]# vgremove myvg
[root@serv01 /]# pvremove /dev/sdc1
[root@serv01 /]# pvremove /dev/sdd1
[root@serv01 /]# pvremove /dev/sde1


十一 参考资料

http://zh.wikipedia.org/wiki/LVM

 

十二 相关文章

  • 磁盘管理——RAID 0
  • 磁盘管理——RAID 1
  • 磁盘管理——RAID 10
  • 磁盘管理——RAID 5
  • 磁盘管理——RAID 6
  • 磁盘管理——小实验



  我的邮箱[email protected]   新浪微博@Wentasy27         
  微信公众平台:JustOracle(微信号:justoracle)
  数据库技术交流群:336882565(加群时验证 From CSDN XXX)
  Oracle交流讨论组:https://groups.google.com/d/forum/justoracle
  By Larry Wen


磁盘管理——LVM_第2张图片 磁盘管理——LVM_第3张图片 磁盘管理——LVM_第4张图片
@Wentasy 博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。原创博文如需转载请注明出处,谢谢 :) [CSDN博客]

你可能感兴趣的:(linux,lvm,磁盘管理)