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 15:42
下一篇 2016-09-01 18:40

相關推薦

  • 文件查詢、yum安裝等零散知識點總結

    歸納重要知識點:文件查詢、Linux配置文件、文件的壓縮與歸檔、yum安裝包文件   這篇博客介紹以前遺落的重要知識點進行歸納總結,分為四大塊:文件查詢命令、全局與個人配置文件、文件的壓縮與歸檔、yum命令安裝程序包的相關條件與操作。下面結合個人理解與學習內容一一進行總結。     一.文件查詢命令locate與find &nb…

    Linux干貨 2016-08-26
  • Linux啟動流程

    Linux的啟動流程有以下部分組成,以下流程以CentOs 6.8為例 1、POST加電自檢,檢測各項硬件工作是否正常,BIOS選擇啟動設備。 2、根據設備的前446字節,加載bootloader程序 3、initramfs是1.5階段,intramfs文件是創建系統時生成的文件。intramfs是一個過渡階段,initramfs加載系統的一些設備驅動,比如…

    2017-05-15
  • iptables初探

    iptables 簡述 基礎知識 命令使用 簡述 iptables是什么?netfilter又是什么? iptables是位于用戶控件的一個防火墻規則控制管理工具。netfilter是位于內核中的真正的防火墻,由五個鉤子函數(hooks)而組成。 iptables的作用是什么? 用來添加,刪除,管理netfilter規則。 netfilter的作用是什么? …

    2016-05-31
  • Linux Cluster之Keepalived + Nginx的實現

      一、實驗環境 http server1與http server2組成web集群,由nginx服務器實現負載均衡代理,使用keepalived保證nginx服務的高可用。通過虛擬IP192.168.154.177對外提供web服務。 實驗目的: 1)當Nginx server1上的nginx服務異常時,由nginx server2提供反帶服務。 …

    2016-11-02
  • 第6天預習xargs命令的用法

    Xargs用法詳解 1. 簡介   之所以能用到這個命令,關鍵是由于很多命令不支持|管道來傳遞參數,而日常工作中有有這個必要,所以就有了xargs命令,例如: find /sbin -perm +700 |ls -l     &n…

    Linux干貨 2016-08-05
  • 正則表達式基礎以及grep的簡單使用

    正則表達式基礎以及grep的簡單使用   1,定義 正則表達式是你所定義的模式模板,Linux可以用它來過濾文本。Linux工具(比如grep、sed、gawk)能夠在處理數據時使用正則表達式對數據進行模式匹配。如果數據匹配模式,它就會被接受并進一步處理;如果數據不匹配,它就會被濾掉。 2,正則表達式的原則 (1)正則表達式模式都區分大小寫。(2)…

    2017-04-09
欧美性久久久久