LVM實驗:LVM動手操作


1,什麼叫LVM

    LVM全名Logical Volume Manager(邏輯卷管理),它是Linux環境下一種磁盤分區管理機制,該機制可以彈性的修改分區大小.

wKioL1Wl1M6TlA0sAACdJviir8w150.jpg

物理塊(Physical Extent,PE)

        每一個物理卷PV被劃分爲稱爲PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認爲4MB。所以物理卷(PV)由大小等同的基本單元PE組成。

物理卷(Physical Volume,PV)

        指磁盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。

卷組(Volume Group,VG)

        類似於非LVM系統中的物理磁盤,其由一個或多個物理卷PV組成。可以在卷組上創建一個或多個LV(邏輯卷)。

邏輯卷(Logical Volume,LV)

        類似於非LVM系統中的磁盤分區,邏輯卷建立在卷組VG之上。在邏輯卷LV之上可以建立文件系統(比如/home或者/usr等)。

文件系統:

        文件系統大小一般小於等於物理磁盤空間,是操作系統用於明確磁盤或分區上的文件的方法和數據結構;即在磁盤上組織文件的方法。當我們調整物理盤區大小時,文件系統大小時固定的,此時我們需要擴大文件系統管理的空間,以達到拓展分區的作用,或者縮小文件系統管理的空間,以便磁盤空間被合理利用

    構建LV邏輯卷時,需要依次創建PV,VG,LV,(PE在構建VG時可以使用-s指定大小,默認在創建LV時自動分配),拓展LVM邏輯卷時首先需要確認LV是否已經達到VG上限,若果沒有達到,可以直接調整LV大小,完成後使用resize2fs調整文建立在LV捲上的文件系統大小.


2.創建LVM操作步驟

    2.1

        創建物理卷PV:

        創建物理卷時常用的命令:pvcreate,pvdisplay,pvscan,pvmove,pvremove

pvcreate創建PV,格式:pvcreate /PATH/disk|partition
pvdisplay查看系統上PV卷信息,可單獨使用,也可以指定查看PV卷,格式:pvdisplay /PATH/PV
pvscan/pvs查看系統上PV卷信息,所屬卷組,已使用空間等,可單獨使用,可以指定查看
pvmove移動PV數據,格式:pvmove /PATH/PV或指定位置pvmove /PATH/PV /PATH/PV
pvremove移除PV卷,格式:pvremove /PATH/PV

[root@localhost mysh]# pvcreate /dev/sdc{1,2,3,5}   基於分區創建PV卷
  Physical volume "/dev/sdc1" successfully created
  Physical volume "/dev/sdc2" successfully created
  Physical volume "/dev/sdc3" successfully created
  Physical volume "/dev/sdc5" successfully created

[root@localhost mysh]# pvdisplay /dev/sdc1  查看sdc1的pv信息
  "/dev/sdc1" is a new physical volume of "1.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name               
  PV Size               1.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               NExGGE-7Sjh-xc42-jRZ8-YpOc-7m50-7ReIL7

[root@localhost mysh]# pvs        瀏覽系統上的pv卷
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda2  centos lvm2 a--  19.51g    0 
  /dev/sdb1  myvg   lvm2 a--   3.00g 3.00g
  /dev/sdb2  myvg   lvm2 a--   3.00g 3.00g
  /dev/sdb3  myvg   lvm2 a--   3.00g 3.00g
  /dev/sdc1         lvm2 a--   1.00g 1.00g
  /dev/sdc2         lvm2 a--   1.00g 1.00g
  /dev/sdc3         lvm2 a--   1.00g 1.00g
  /dev/sdc5         lvm2 a--   1.00g 1.00g

[root@localhost mysh]# pvremove /dev/sdc5     移除基於sdc5的pv卷
  Labels on physical volume "/dev/sdc5" successfully wiped


    2.2創建卷組VG

        創建卷組常用到的命令:vgcreat,vgremove,vgextend,vgreduce,vgs,vgdisplay,vgscan

vgcreate創建VG,格式:vgcreate VG_NAME /PATH/PV (指定的PV卷可以爲多個)
            -s 指定PE大小,默認爲4M
vgremove移除VG,格式:vgremove  VG_NAME
vgextend拓展VG:vgextend VG_NAME /PATH/PV
vgreduce縮小PV:vgreduce VG_NAME /PATH/PV

vgs

vgdisplay

vgscan

查看VG卷組

[root@localhost ~]# vgcreate myvg2 /dev/sdc{1,2,3}    創建VG卷組
Volume group "myvg2" successfully created

[root@localhost ~]# vgs                                                                   查看系統上的VG卷組
  VG     #PV #LV #SN Attr   VSize  VFree
  centos   1   2   0 wz--n- 19.51g    0 
  myvg     3   0   0 wz--n-  8.99g 8.99g
  myvg2    4   0   0 wz--n-  3.98g 3.98g

[root@localhost ~]# vgextend myvg2 /dev/sdc5                            將pv卷sdc5添加到myvg2的VG卷組
  Volume group "myvg2" successfully extended

[root@localhost ~]# vgreduce myvg2 /dev/sdc1                            將pv卷sdc1從myvg2的VG卷組內移除
  Removed "/dev/sdc1" from volume group "myvg2


    2.3創建邏輯卷LV

    創建LV常用到的命令:lvcreate lvremove,lvextend,lvreduce,lvs,lvdisplay,mke2fs

lvcreate創建LV卷:lvcreate -n LV_NAME -L 空間 VG_NAME
     -L:直接指定空間大小
     -l:指定盤區(PE)個數
lvremove移除LV邏輯卷,移除設備時需要先卸載設備,格式:lvremove /dev/VG_NAME/LV_NAME 
lvextend

拓展物理邊界 lvextend -L [+]# /dev/VG_NAME/PVNAME

           -L帶+表示需要增加的空間大小,不帶+表示拓展結果的空間大小

resize2fs

拓展邏輯邊界:resize2fs /dev/VG_NAME/PVNAME

-p表示拓展到物理邊界極限(即增加VG剩餘大小的空間)

lvreduce

裁剪邊界:lvreduce -L [-]# /PATH/TO/LV ,(要裁物理邊界需要先裁剪邏輯邊界,使用resize2fs)

            帶-號是縮減#size,不帶-號代表縮減到#size

mke2fs格式化LV卷:mke2fs -j /dev/VG_NAME/LV_NAME

lvs

lvscan

lvdisplay

瀏覽

    2.3.1拓展LVM:

root@localhost dev]# lvextend -L 2.6G /dev/myvg/mylv      將LV卷拓展到2.6G
  Extending logical volume mylv to 2.6 GiB
  Logical volume mylv successfully resized

root@localhost dev]# lvs                                                             查看LV                           
  mylv myvg   -wi-ao----  2.60g

root@localhost dev]# df -h                                                         查看磁盤使用

dev/mapper/myvg-mylv    1.9G  3.9M  1.8G   1% /mnt

root@localhost dev]# resize2fs -p /dev/myvg/mylv     拓展邏輯邊界至VG極限
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg/mylv is mounted on /mnt; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/myvg/mylv is now 681984 blocks long.


2.3.2 裁剪LVM;

    要裁剪LVM,首先要對其邏輯捲進行調整,調整過程中需要遵循:

        1,需要先卸載

        2,確保縮減後的空間依然能足夠存儲原有數據

        3,在縮減之前應該先強行檢查文件,以確保文件系統處於一致性狀態

    [root@localhost dev]# resize2fs /dev/myvg/mylv 2G   調整邏輯邊界大小至2G

resize2fs 1.42.9 (28-Dec-2013)Please run 'e2fsck -f /dev/myvg/mylv' first.         注意此處要求運行單引號內的命令

[root@localhost dev]# e2fsck -f /dev/myvg/mylv       運行該命令
e2fsck 1.42.9 (28-Dec-2013)
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/mylv: 11/172032 files (0.0% non-contiguous), 28167/681984 blocks

[root@localhost dev]# resize2fs /dev/myvg/mylv 2G      調整邏輯邊界大小至2G    
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg/mylv to 524288 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 524288 blocks long.

localhost dev]# lvs            查看LV

  LV   VG     Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert                                         

  mylv myvg   -wi-a-----  2.60g         此處可以看到修改邏輯卷後LV大小沒變

[root@localhost dev]# lvreduce -L 2.1G /dev/myvg/mylv         調整物理邊界,注意物理邊界要大於等於邏輯邊界
  Rounding size to boundary between physical extents: 2.10 GiB
  WARNING: Reducing active logical volume to 2.10 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: y
  Reducing logical volume mylv to 2.10 GiB
  Logical volume mylv successfully resized

localhost dev]# lvs       查看LV

  LV   VG     Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert

 myvg   -wi-a-----  2.10g           此處可以看到修改邏輯卷後LV大小已經改變

[root@localhost dev]# mount /dev/myvg/mylv /mnt                掛載

[root@localhost dev]# df -h                                        查看磁盤信息
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/myvg-mylv    2.0G  3.9M  1.8G   1% /mnt    此處可看到該LV卷大小已經調整至邏輯卷大小

[root@localhost dev]# resize2fs -p /dev/myvg/mylv     調整LV至物理邊界大小
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg/mylv is mounted on /mnt; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/myvg/mylv is now 550912 blocks long.

[root@localhost dev]# df -h          查看磁盤信息 
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/myvg-mylv    2.1G  3.9M  1.9G   1% /mnt


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章