LVM邏輯卷管理

為什么要用LVM?

    想象一個示例,如果我們給定的分區是50G,過段時間發現空間不夠用,此時我們就要重新加一塊新硬盤,重新分區格式化,將原來分區上的數據復制過來,再重新掛載,整個過程會非常麻煩,LVM可以很有效的解決這個問題

LVM簡介

    及邏輯卷(Logical Volume Manager)管理,它的突出重點在于可以彈性收縮filesystem的容量,可以將多塊物理硬盤整合成一個整體,這樣看就像是一塊磁盤一樣,而且還可以添加或刪除硬盤到這個整體中,實現彈性磁盤空間。

~1T~X[UG2LG}A~@Q[7~C@AM.png

PV:物理卷(Physical Volume)

    PV物理卷就是指硬盤區分或從邏輯上與磁盤分區具有同樣功能的設備,是LVM的基本存儲邏輯塊。

VG:卷組(Volume Group)

    其內部是由多個物理卷組合而成的一個整體空間,可有一個或多個物理卷組成

LV:邏輯卷(Logical Volume)

    邏輯卷類似于系統中的硬盤分區,在邏輯卷上可以創建文件系統并使用

dm:Device Mapper,將一個或多個底層塊設備組織成一個邏輯設備的模塊

    /dev/dm#

    

     /dev/mapper/VG_NAME-LV_NAME

          /dev/mapper/vo10-root

     /dev/VG_NAME/LV_NAME

          /dev/vo10/root

pv管理工具:

    pvs:查看pv簡要信息

    pvdisplay:查看pv詳細信息

    pvcreate /dev/DEVICE:創建pv

    pvmove /dev/DEVICEE:將指定pv的數據移至其他pv

    pvremove /dev/DEVICE:移除指定的pv

vg管理工具:

    vgs:查看vg簡要信息

    vgdisplay:查看vg詳細信息

    vgcreate VolumeGroupName PhysicalDevicePath…  創建卷組

    vgextend VolumeGroupName PhysicalDevicePath…  擴展卷組

    vgreduce VolumeGroupName PhysicalDevicePath…  縮減卷組

        縮減前先做pvmove

    vgremove VG_NAME:移除卷組

lv管理工具:

    lvs:查看lv簡要信息

    lvdisplay:查看lv詳細信息

    lvcreate -L #[mMgGtT] -n LV_NAME VolumeGroup  創建lv

    lvremove /dev/VG_NAME/LV_NAME

擴展邏輯卷:

    lvextend -L [+]#[mGgGtT] /dev/VG_NAME/LV_NAME  擴展邏輯卷

    resize2fs /dev/VG_NAME/LV_NAME    擴展文件系統

縮減邏輯卷:

    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 /dev/VG_NAME/LV_NAME /point

    

 

創建LVM

1.創建pv物理卷

[root@CentOS6 ~]# pvcreate /dev/sd{b,c}
  Physical volume "/dev/sdb" successfully created
  Physical volume "/dev/sdc" successfully created
[root@CentOS6 ~]# pvs            #此時pv還不屬于任何卷組
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdb        lvm2 ---- 20.00g 20.00g
  /dev/sdc        lvm2 ---- 20.00g 20.00g
[root@CentOS6 ~]#

2.創建vg卷組

[root@CentOS6 ~]# vgcreate myvg /dev/sd{b,c}    #創建名字為myvg的卷組
  Volume group "myvg" successfully created
[root@CentOS6 ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  myvg   2   0   0 wz--n- 39.99g 39.99g
[root@CentOS6 ~]# pvs        #兩個pv屬于卷組myvg
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdb   myvg lvm2 a--u 20.00g 20.00g
  /dev/sdc   myvg lvm2 a--u 20.00g 20.00g
[root@CentOS6 ~]#

3.創建lv邏輯卷

[root@CentOS6 ~]# lvcreate -L 20G -n mylv myvg
  Logical volume "mylv" created.
[root@CentOS6 ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-a----- 20.00g                                                    
[root@CentOS6 ~]#

4.創建文件系統

[root@CentOS6 ~]# mke2fs -t ext4 -b 2048 -m 3 -L MYLV /dev/myvg/mylv 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=MYLV
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 10485760 blocks
314572 blocks (3.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=547356672
640 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
	16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 
	2048000, 3981312, 5619712, 10240000

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@CentOS6 ~]# blkid /dev/myvg/mylv 
/dev/myvg/mylv: LABEL="MYLV" UUID="26fd05b4-b59e-4c65-b9f5-03bb4749912a" TYPE="ext4" 
[root@CentOS6 ~]#

5.掛載使用

3SE_E%)V_$}CZ1}N($6]2U0.png

[root@CentOS6 ~]# mount -a
[root@CentOS6 ~]# mount | tail -1
/dev/mapper/myvg-mylv on /mnt/lv type ext4 (rw)
[root@CentOS6 ~]# cd /mnt/lv/
[root@CentOS6 lv]# cp /etc/fstab ./
[root@CentOS6 lv]# cat fstab 

#
# /etc/fstab
# Created by anaconda on Thu Jul 21 15:34:03 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=f4d977bb-af76-4617-b07f-9c70ae42a056 /                       ext4    defaults        1 1
UUID=7907abdd-41cd-4609-8392-80e4a88c5b4c /boot                   ext4    defaults        1 2
UUID=50054489-14c8-4e49-a912-2ff368371653 /testdir                ext4    defaults        1 2
UUID=d9f41da6-9df2-410f-8074-500425b26a3d swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
//10.1.250.60/share	/root/mount		cifs	username=share,password=zhaizong	0 0
/dev/sr0		/media/cdrom		iso9660 defaults	0 0
LABEL=MYLV		/mnt/lv				ext4	defaults	0 0
[root@CentOS6 lv]#

 

 

擴展卷組

[root@CentOS6 ~]# pvcreate /dev/sdd        #添加一個pv
  Physical volume "/dev/sdd" successfully created
[root@CentOS6 ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdb   myvg lvm2 a--u 20.00g     0 
  /dev/sdc   myvg lvm2 a--u 20.00g 19.99g
  /dev/sdd        lvm2 ---- 20.00g 20.00g
[root@CentOS6 ~]# vgextend myvg /dev/sdd    #擴展卷組
  Volume group "myvg" successfully extended
[root@CentOS6 ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  myvg   3   1   0 wz--n- 59.99g 39.99g
[root@CentOS6 ~]#

 

縮減卷組

[root@CentOS6 ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdb   myvg lvm2 a--u 20.00g     0 
  /dev/sdc   myvg lvm2 a--u 20.00g 19.99g
  /dev/sdd   myvg lvm2 a--u 20.00g 20.00g
[root@CentOS6 ~]# pvmove /dev/sdb    #先將指定pv上的空間移至其他pv
  /dev/sdb: Moved: 0.1%
  /dev/sdb: Moved: 85.2%
  /dev/sdb: Moved: 100.0%
[root@CentOS6 ~]# vgreduce myvg /dev/sdb    #從卷組中移除指定pv
  Removed "/dev/sdb" from volume group "myvg"
[root@CentOS6 ~]# vgs    
  VG   #PV #LV #SN Attr   VSize  VFree 
  myvg   2   1   0 wz--n- 39.99g 19.99g
[root@CentOS6 ~]# pvremove /dev/sdb
  Labels on physical volume "/dev/sdb" successfully wiped
[root@CentOS6 ~]# pvs        
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdc   myvg lvm2 a--u 20.00g 19.99g
  /dev/sdd   myvg lvm2 a--u 20.00g     0 
[root@CentOS6 ~]#

 

 

擴展lv

[root@CentOS6 ~]# lvs    #當前lv為20G空間大小
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-ao---- 20.00g                                                    
[root@CentOS6 ~]# lvextend -L 30G /dev/myvg/mylv     #擴展lv
  Size of logical volume myvg/mylv changed from 20.00 GiB (5120 extents) to 30.00 GiB (7680 extents).
  Logical volume mylv successfully resized.
[root@CentOS6 ~]# resize2fs /dev/myvg/mylv 30G    #擴展文件系統至30G
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on /mnt/lv; on-line resizing required
old desc_blocks = 10, new_desc_blocks = 15
Performing an on-line resize of /dev/myvg/mylv to 15728640 (2k) blocks.
The filesystem on /dev/myvg/mylv is now 15728640 blocks long.

[root@CentOS6 ~]# lvs    
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-ao---- 30.00g
[root@CentOS6 ~]# df -hP |tail -1    #擴展成功
/dev/mapper/myvg-mylv   30G   15M   29G   1% /mnt/lv    
擴展可以不用卸載文件系統

 

縮減lv

[root@CentOS6 ~]# umount /dev/myvg/mylv     #第一步先卸載文件系統
[root@CentOS6 ~]# fsck -f /dev/myvg/mylv    #強制檢測文件系統
fsck from util-linux-ng 2.17.2
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
MYLV: 12/1966080 files (0.0% non-contiguous), 288304/15728640 blocks
[root@CentOS6 ~]# resize2fs /dev/myvg/mylv 10G    #縮減文件系統至10G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv to 5242880 (2k) blocks.
The filesystem on /dev/myvg/mylv is now 5242880 blocks long.

[root@CentOS6 ~]# lvreduce -L 10G /dev/    #縮減物理卷
Display all 215 possibilities? (y or n)
[root@CentOS6 ~]# lvreduce -L 10G /dev/myvg/mylv 
  WARNING: Reducing active logical volume to 10.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvg/mylv? [y/n]: y
  Size of logical volume myvg/mylv changed from 30.00 GiB (7680 extents) to 10.00 GiB (2560 extents).
  Logical volume mylv successfully resized.
[root@CentOS6 ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-a----- 10.00g
[root@CentOS6 ~]# mount /dev/myvg/mylv /mnt/lv/    #重新掛載邏輯卷,大小已縮減為10G
[root@CentOS6 ~]# df -hP | tail -1
/dev/mapper/myvg-mylv  9.8G   13M  9.5G   1% /mnt/lv

 

刪除邏輯卷

[root@CentOS6 ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-a----- 10.00g                                                    
[root@CentOS6 ~]# lvremove /dev/myvg/mylv     #刪除邏輯卷mylv
Do you really want to remove active logical volume mylv? [y/n]: y
  Logical volume "mylv" successfully removed
[root@CentOS6 ~]# lvs
[root@CentOS6 ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  myvg   2   0   0 wz--n- 39.99g 39.99g
[root@CentOS6 ~]# vgremove myvg    #刪除卷組myvg
  Volume group "myvg" successfully removed
[root@CentOS6 ~]# vgs
[root@CentOS6 ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sdc        lvm2 ---- 20.00g 20.00g
  /dev/sdd        lvm2 ---- 20.00g 20.00g
[root@CentOS6 ~]# pvremove /dev/sd{c,d}    #刪除所有pv
  Labels on physical volume "/dev/sdc" successfully wiped
  Labels on physical volume "/dev/sdd" successfully wiped
[root@CentOS6 ~]# pvs
[root@CentOS6 ~]#

 

快照卷

    快照就是將當時的系統信息記錄下來,就好像照相一般,若將來有任何數據改動了,則原始數據會被移動到快照區,沒有改動的區域則由快照區和文件系統共享

如何創建快照卷

    lvcreate -L #[mMgGtT] -p r -n snapshot_lv_name -s original_lv_name

1.創建快照卷

[root@CentOS6 ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-ao---- 10.00g                                                    
[root@CentOS6 ~]# lvcreate -L 2G -p r -n mulv_snap -s /dev/myvg/mylv     #為mylv邏輯卷創建快照卷
  Logical volume "mulv_snap" created.
[root@CentOS6 ~]# lvs
  LV        VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mulv_snap myvg sri-a-s---  2.00g      mylv   0.00                                   
  mylv      myvg owi-aos--- 10.00g                                                    
[root@CentOS6 ~]# mkdir /mnt/snap
[root@CentOS6 ~]# mount /dev/myvg/mulv_snap /mnt/snap/    #掛載快照卷
mount: block device /dev/mapper/myvg-mulv_snap is write-protected, mounting read-only
[root@CentOS6 ~]# cd /mnt/snap/
[root@CentOS6 snap]# ls
fstab  lost+found

2.恢復快照卷

[root@CentOS6 lv]# ls
fstab  lost+found
[root@CentOS6 lv]# rm -rf fstab     #原有的mylv中的數據丟失
[root@CentOS6 lv]# ls
lost+found
[root@CentOS6 lv]# cp -r /mnt/snap/* ./    #把快照卷當中數據復制回來即可
cp: overwrite `./fstab'? y
[root@CentOS6 lv]# ls
fstab  lost+found
[root@CentOS6 lv]#

3.刪除快照卷

[root@CentOS6 lv]# umount /mnt/snap/    #先卸載快照卷
[root@CentOS6 lv]# lvs
  LV        VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mulv_snap myvg sri-a-s---  2.00g      mylv   0.00                                   
  mylv      myvg owi-aos--- 10.00g                                                    
[root@CentOS6 lv]# lvremove /dev/myvg/mulv_snap     #刪除快照卷
Do you really want to remove active logical volume mulv_snap? [y/n]: y
  Logical volume "mulv_snap" successfully removed
[root@CentOS6 lv]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mylv myvg -wi-ao---- 10.00g                                                    
[root@CentOS6 lv]#

原創文章,作者:zhai796898,如若轉載,請注明出處:http://www.www58058.com/42720

(0)
zhai796898zhai796898
上一篇 2016-09-01
下一篇 2016-09-01

相關推薦

  • n28-第二周

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示 cp:copy files and directories 復制文件和目錄 -i:交互式復制 默認情況下是別名定義了alias cp=’cp -i’ -f:強制復制 #cp -f /etc/issue /tmp/first.txt -r:遞歸復制目錄 將/etc目錄遞歸復制到/tmp…

    Linux干貨 2017-12-10
  • 設計模式(九)外觀模式Facade(結構型)

    1. 概述      外觀模式,我們通過外觀的包裝,使應用程序只能看到外觀對象,而不會看到具體的細節對象,這樣無疑會降低應用程序的復雜度,并且提高了程序的可維護性。例子1:一個電源總開關可以控制四盞燈、一個風扇、一臺空調和一臺電視機的啟動和關閉。該電源總開關可以同時控制上述所有電器設備,電源總開關即為該系統的外觀模式設計。 2.…

    Linux干貨 2015-07-06
  • 馬哥linux運維第一天感受

    101個人的大家庭

    Linux干貨 2018-03-26
  • Linux命令幫助及history命令的使用

    1.Linux命令幫助的獲取詳解 在Linux中獲取命令幫助時,內部命令和外部命令的獲取方式是有區別的: 即  (1)內部命令:#help COMMAND ?            #man bash  (2)外部命令:<1> # COMMAND –hel…

    Linux干貨 2016-08-05
  • 博客

       這是我的第一篇博客!   平時學習中,總會遇到或大或小的問題,以及一些新的感悟,在當時能夠十分清晰記得,但過一些時日,便發現又忘記了。以前十分明白的東西,又變得有些模糊,甚至完全忘記。因此特別需要記錄下來,方便日后的查閱或分享給其他遇到類似問題的朋友。    如果以后忘記的某些知識,這時候,翻開以往博客…

    Linux干貨 2017-07-11
欧美性久久久久