LVM邏輯卷的創建、擴展、縮減和歸納


邏輯卷管理器LVM


LVM的優勢:1、彈性存儲 2、可以使用快照   

LVM: 將幾個物理分區通過軟件組合在一起,看起來像是獨立的大硬盤,而要用這塊大硬盤,就要將它分成可以使用的分區,然後格式化,掛載等

PV物理卷:將物理磁盤或物理分區初始化成LVM能用的物理卷,分區中的類型是8e:Linux LVM

VG邏輯卷組:將一個或者多個PV組合成一個大的磁盤,將其稱之爲組

LV邏輯卷:從VG中分割出來的分區,稱爲LV,LV被用來格式化後,進行掛載,設備代爲:  /dev/vgname/lvname

wKiom1VTAFqzHD8rAAGZUMYZl1A945.jpg

相關命令整理



創建 刪除 查看詳細查看 移動 擴展  減少
 PVpvcreatepvremovepvspvdisplaypvmove

 VGvgcreatevgremovevgsvgdisplayvgmovevgextendvgreduce
 LVlvcreatelvremovelvslvdisplaylvmovelvextendlvreduce








注:舉例:如果一個PV下有兩個物理分區sda6和sda7,現分區空間過大一個sda6已經夠用想把sda7拆下,

   

以下爲創建一個LV的具體操作


首先創建分區,sda6 sda7 這裏分區的文件系統選擇 8e  Linux LVM

  [root@bird 桌面]# pvcreate /dev/sda6 /dev/sda7

WARNING: swap signature detected on /dev/sda6. Wipe it? [y/n]: y

  Wiping swap signature on /dev/sda6.

  Physical volume "/dev/sda6" successfully created

  Physical volume "/dev/sda7" successfully created

[root@bird 桌面]# pvs   顯示創建的pv

  PV         VG   Fmt  Attr PSize PFree

  /dev/sda6       lvm2 ---  2.00g 2.00g

  /dev/sda7       lvm2 ---  1.01g 1.01g

[root@bird 桌面]# pvdisplay  顯示詳細的pv信息

  "/dev/sda6" is a new physical volume of "2.00 GiB"

  --- NEW Physical volume ---

  PV Name               /dev/sda6

  VG Name               

  PV Size               2.00 GiB

  Allocatable           NO

  PE Size               0   

  Total PE              0

  Free PE               0

  Allocated PE          0

  PV UUID               itkIEM-poEM-FK3M-Ycoj-Fco1-S11Q-MXnlby

   

  "/dev/sda7" is a new physical volume of "1.01 GiB"

  --- NEW Physical volume ---

  PV Name               /dev/sda7

  VG Name               

  PV Size               1.01 GiB

  Allocatable           NO

  PE Size               0   

  Total PE              0

  Free PE               0

  Allocated PE          0

  PV UUID               s9TdIp-v3hg-zYn3-BSJW-XDH2-wKXK-gXWJbW

[root@bird 桌面]# vgcreate zydata /dev/sda6 /dev/sda7   創建VG 

  Volume group "zydata" successfully created

[root@bird 桌面]# vgs  查看VG

  VG     #PV #LV #SN Attr   VSize VFree

  zydata   2   0   0 wz--n- 3.01g 3.01g

[root@bird 桌面]# vgdisplay  詳細顯示vg的信息

  --- Volume group ---

  VG Name               zydata

  System ID             

  Format                lvm2

  Metadata Areas        2

  Metadata Sequence No  1

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                0

  Open LV               0

  Max PV                0

  Cur PV                2

  Act PV                2

  VG Size               3.01 GiB

  PE Size               4.00 MiB

  Total PE              770

  Alloc PE / Size       0 / 0   

  Free  PE / Size       770 / 3.01 GiB

  VG UUID               iEZS4P-4jLo-dS4V-WwSJ-1lLo-73yd-i88tlv

   

[root@bird 桌面]# vgremove zydata     直接移除vg zydata

  Volume group "zydata" successfully removed

[root@bird 桌面]# vgs

[root@bird 桌面]# vgcreate -s 8M zydata /dev/sda6  創建PE大小爲8M的 默認爲4M 這裏僅指定了sda6

  Volume group "zydata" successfully created

[root@bird 桌面]# vgdisplay 

  --- Volume group ---

  VG Name               zydata

  System ID             

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  1

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                0

  Open LV               0

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               2.00 GiB

  PE Size               8.00 MiB

  Total PE              256

  Alloc PE / Size       0 / 0   

  Free  PE / Size       256 / 2.00 GiB

  VG UUID               mqn1Hj-pGoD-WyZS-8kgq-unEd-R3dj-7pFLa1

   擴展邏輯卷:

[root@bird 桌面]# vgextend zydata /dev/sda7  擴展一個sda7進去

  Volume group "zydata" successfully extended

[root@bird 桌面]# vgs

  VG     #PV #LV #SN Attr   VSize VFree

  zydata   2   0   0 wz--n- 3.01g 3.01g

[root@bird 桌面]# vgdisplay 

  --- Volume group ---

  VG Name               zydata

  System ID             

  Format                lvm2

  Metadata Areas        2

  Metadata Sequence No  2

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                0

  Open LV               0

  Max PV                0

  Cur PV                2

  Act PV                2

  VG Size               3.01 GiB  加sda7之後大小變爲3G  (sda6爲2G 7爲1G

  PE Size               8.00 MiB  之前定義過,則自動將新擴展進來的sda7的PE設置爲8M.

  Total PE              385

  Alloc PE / Size       0 / 0   

  Free  PE / Size       385 / 3.01 GiB

  VG UUID               mqn1Hj-pGoD-WyZS-8kgq-unEd-R3dj-7pFLa1

# pvmove /dev/sda7  先用pvmove將sda7中的數據複製出來,即可以將7中數據移到其他的分區中去),  

[root@bird 桌面]# vgreduce zydata /dev/sda7   用vgreduce從zydata中將sda7除去

  Removed "/dev/sda7" from volume group "zydata"

[root@bird 桌面]# vgs

  VG     #PV #LV #SN Attr   VSize VFree

  zydata   1   0   0 wz--n- 2.00g 2.00g

[root@bird 桌面]# pvs

  PV         VG     Fmt  Attr PSize PFree

  /dev/sda6  zydata lvm2 a--  2.00g 2.00g

  /dev/sda7         lvm2 ---  1.01g 1.01g  sda7不屬於任何VG 

[root@bird 桌面]# pvremove /dev/sda7  最後用pvremove 移除

 Labels on physical volume "/dev/sda7" successfully wiped

[root@bird 桌面]# pvs

  PV         VG     Fmt  Attr PSize PFree

  /dev/sda6  zydata lvm2 a--  2.00g 2.00g

必須先將sda7數據move出來再用vgreduce除去sda7,最後才能pvremove來移除sda7,vgremove是用來移除vg的,vgreduce和vgextend是用來減少和增加分區的如

vgextend zydata /dev/sda7

vgreduce zydata /dev/sda7

[root@bird 桌面]# lvcreate -n testlv -L 1G zydata  創建大小爲1G的lv

  Logical volume "testlv" created. 

[root@bird 桌面]# lvs

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

  testlv zydata -wi-a----- 1.00g                                                    

[root@bird 桌面]# lvdisplay 

  --- Logical volume ---

  LV Path                /dev/zydata/testlv   路徑

  LV Name                testlv

  VG Name                zydata

  LV UUID                MMkFjJ-qlMN-ebQ1-eoBm-nxfz-nPtF-By8WU3

  LV Write Access        read/write

  LV Creation host, time bird, 2017-04-19 15:03:47 +0800

  LV Status              available

  # open                 0

  LV Size                1.00 GiB

  Current LE             128

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:0


[root@bird 桌面]# mke2fs -j /dev/zydata/testlv   格式化lv

mke2fs 1.41.12 (17-May-2010)

文件系統標籤=

操作系統:Linux

塊大小=4096 (log=2)

分塊大小=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

65536 inodes, 262144 blocks

13107 blocks (5.00%) reserved for the super user

第一個數據塊=0

Maximum filesystem blocks=268435456

8 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks: 

32768, 98304, 163840, 229376


正在寫入inode表: 完成                            

Creating journal (8192 blocks): 完成

Writing superblocks and filesystem accounting information: 完成


This filesystem will be automatically checked every 28 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@bird 桌面]# mkdir /mnt/test3  

[root@bird 桌面]# mount /dev/zydata/testlv  /mnt/test3/  掛載lv

[root@bird 桌面]# ls /mnt/test3/

lost+found   掛載成功

[root@bird 桌面]# cp /etc/fstab /mnt/test3/   測試

[root@bird 桌面]# cd /mnt/test3/

[root@bird test3]# cat fstab 


#

# /etc/fstab

# Created by anaconda on Mon Feb 13 23:50:17 2017

#

# 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=43fa2114-8933-43bc-b4dc-d1d4811e7a64 /                       ext4    defaults        1 1

UUID=1ee52a34-d3a4-47f8-9863-f90aeeede43e /boot                   ext4    defaults        1 2

UUID=ea629952-0afa-45e9-bbb5-eb1dafa4cbc9 /home                   ext4    defaults        1 2

UUID=2aca97a2-9b18-41cb-9838-7a05b6fbf560 /usr                    ext4    defaults        1 2

UUID=7c374472-feea-47c6-a711-41a1d90b1bae 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

/dev/sda7               /mnt                    ext3    defaults        0 0

[root@bird ~]# lvextend -L +100M  /dev/zydata/testlv  擴展lv,增加100M

  Rounding size to boundary between physical extents: 104.00 MiB

  Size of logical volume zydata/testlv changed from 1.00 GiB (128 extents) to 1.10 GiB (141 extents).

  Logical volume testlv successfully resized

[root@bird ~]# lvs

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

  testlv zydata -wi-ao---- 1.10g       

[root@bird ~]# resize2fs -p /dev/zydata/testlv   這是邏輯邊界的擴展必須進行,否則df -h查看的話lv的擴展沒有變化

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/zydata/testlv is mounted on /mnt/test3; on-line resizing required

old desc_blocks = 1, new_desc_blocks = 1

Performing an on-line resize of /dev/zydata/testlv to 288768 (4k) blocks.

The filesystem on /dev/zydata/testlv is now 288768 blocks long.

[root@bird ~]# df -lh

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2             7.6G  411M  6.8G   6% /

tmpfs                 504M  228K  503M   1% /dev/shm

/dev/sda1             1.9G   35M  1.8G   2% /boot

/dev/sda3             4.7G  336M  4.2G   8% /home

/dev/sda5             3.8G  3.2G  438M  89% /usr

/dev/sr0              3.6G  3.6G     0 100% /media/CentOS_6.7_Final

/dev/mapper/zydata-testlv

                       1.1G   34M 1021M   4% /mnt/test3  這裏增加的100M就顯示了

 注意:擴展的話先lvextend 物理邊界在resize2fs邏輯邊界,可以在線擴展:

                 1、lvextend -L +100M  /dev/zydata/testlv

                 2、/resize2fs -p /dev/zydata/testlv 

                    

       縮減的話:1、不能在線縮減

                 2、必須先卸載,df -h確定已用的空間大於你要縮小的空間

                 3、e2fsck -f /dev/zydata/testlv  強行檢查lv

                 4、resize2fs /dev/zydata/testlv —100M

                 5、lvreduce -L -100M /dev/zydata/testlv 

(用法 resize2fs /dev/zydata/testlv —100M(不帶加減號代表縮減至多少G)邏輯邊界後,在用lvextend來縮減物理邊界lvreduce -L -100M /dev/zydata/testlv 

  順便補充一個快照卷的過程,

  lvcreate -L 50M -s -p r  -n  kauizhao /dev/zydata/testlv

              大小 -s指定創建快照 -p r指定只讀 -n指定快照名 後面是lv的路徑

 至此一個完整的LVM的創建,擴展,縮減,以及要注意的地方都已經完成!OVER``````````


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