linux LVM邏輯卷的創建,擴容,縮減和刪除


什么是LVM?

LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。

為什么要使用LVM?

在日常工作或者學習中,隨着電腦的不斷被使用,我們的磁盤空間可能會越來越小,這時候,我們不能直接更換大硬盤,因為硬盤有價,數據無價,這時候我們就可以使用LVM,LVM將存儲虛擬化,使用邏輯卷,你不會受限於物理磁盤的大小,另外,和硬件相關的存儲設置被其隱藏,你能不用停止應用或卸載文件系統來調整卷大小或數據遷移.這樣能減少操作成本,LVM最大的特點就是可以對磁盤進行動態管理。因為邏輯卷的大小是可以動態調整的,而且不會丟失現有的數據。如果我們新增加了硬盤,其也不會改變現有上層的邏輯卷。作為一個動態磁盤管理機制,邏輯卷技術大大提高了磁盤管理的靈活性。

LVM工作機制?

LVM就是通過將底層的物理硬盤抽象的封裝起來,然后以邏輯卷的方式呈現給上層應用。在傳統的磁盤管理機制中,我們的上層應用是直接訪問文件系統,從而對底層的物理硬盤進行讀取,而在LVM中,其通過對底層的硬盤進行封裝,當我們對底層的物理硬盤進行操作時,其不再是針對於分區進行操作,而是通過一個叫做邏輯卷的東西來對其進行底層的磁盤管理操作。

邏輯卷管理概念?

 物理卷(PV, Physical Volume)
物理卷就是指磁盤,磁盤分區或從邏輯上和磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有和LVM相關的管理參數。當前LVM允許你在每個物理卷上保存這個物理卷的0至2份元數據拷貝.默認為1,保存在設備的開始處.為2時,在設備結束處保存第二份備份.

卷組(VG, Volume Group)
LVM卷組類似於非LVM系統中的物理硬盤,其由物理卷組成。能在卷組上創建一個或多個“LVM分區”(邏輯卷),LVM卷組由一個或多個物理卷組成。

邏輯卷(LV, Logical Volume)
LVM的邏輯卷類似於非LVM系統中的硬盤分區,在邏輯卷之上能建立文件系統(比如/home或/usr等)。

關系如下:

                                                

 

 

具體操作:

1:檢查系統中是否安裝了LVM管理工具  # rpm -qa|grep lvm

[root@localhost ~]# rpm -qa |grep lvm
lvm2-2.02.177-4.el7.x86_64
llvm-private-5.0.0-3.el7.x86_64
lvm2-libs-2.02.177-4.el7.x86_64
[root@localhost ~]# 

2:如果未安裝,則使用yum 方式安裝 # yum install lvm*

手動添加兩個硬盤:sdl 20G sdh 1G

1:先開始創建物理卷PV:

基本PV命令:

 pvcreate 將物理分區新建為pv

              pvs/pvscan 查看系統里有pv的磁盤

              pvdisplay 顯示系統上面的pv狀態

              pvremove 刪除pv

准備使用:  兩個磁盤:/dev/sdl 以及 、/dev/sdh 來完成LVM

[root@localhost ~]# pvcreate /dev/sdl /dev/sdh
  Physical volume "/dev/sdl" successfully created.
  Physical volume "/dev/sdh" successfully created.
[root@localhost ~]# 

使用pvs查看新建的PV

[root@localhost ~]# pvs
  PV         VG Fmt  Attr PSize  PFree 
  /dev/sdh      lvm2 ---   1.00g  1.00g
  /dev/sdl      lvm2 ---  20.00g 20.00g
[root@localhost ~]# 

2:創建卷組vg

            有關vg的命令:

            vgcreate [-s xM] vgName /dev/sd ……  新建vg,-s后面接pe的大小(可選),單位是M,G,可以放多塊pv

            vgextend 擴展vg,就是增加pv

            vgs/vgscan 查看系統里有vg的磁盤

            vgdisplay 顯示系統上面的vg狀態

            vgremove 刪除vg

            vgreduce 在vg里刪除pv

創建vgqjc 並查看:

[root@localhost ~]# vgcreate -s 16M vgqjc /dev/sdl
  Volume group "vgqjc" successfully created
[root@localhost ~]# vgs
  VG    #PV #LV #SN Attr   VSize  VFree 
  vgqjc   1   0   0 wz--n- 19.98g 19.98g
[root@localhost ~]# 

創建邏輯卷lv

            有關lv的命令:

            lvcreate -l pe num /-L size -n lvname vgName  新建lv,-l指定pe的個數,-L指定容量,M,G

            lvextend 增加容量

            lvs/lvscan 查看系統里有lv的磁盤

            lvdisplay 顯示系統上面的lv狀態

            lvremove 刪除lv

            lvreduce 在lv里減少容量

創建lvqjc,並查看:

[root@localhost ~]# lvcreate -l 512 -n lvqjc vgqjc
WARNING: ext4 signature detected on /dev/vgqjc/lvqjc at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/vgqjc/lvqjc.
  Logical volume "lvqjc" created.
[root@localhost ~]# lvs
  LV    VG    Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvqjc vgqjc -wi-a----- 8.00g                                                    
[root@localhost ~]# 

格式化新建的LV  有兩種格式化方式:ext4文件系統:mkfs.ext4   xfs⽂文件系統:mkfs.xfs

[root@localhost ~]# mkfs.ext4 /dev/vgqjc/lvqjc
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
524288 inodes, 2097152 blocks
104857 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2147483648
64 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
 
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done 
 
[root@localhost ~]# 

掛載使用:

[root@localhost ~]# mount /dev/vgqjc/lvqjc /mnt
[root@localhost ~]# df
Filesystem              1K-blocks    Used Available Use% Mounted on
/dev/sda5                20754432 4050424  16704008  20% /
devtmpfs                   483088       0    483088   0% /dev
tmpfs                      498976       0    498976   0% /dev/shm
tmpfs                      498976    8836    490140   2% /run
tmpfs                      498976       0    498976   0% /sys/fs/cgroup
/dev/sda2                10475520  116032  10359488   2% /app
/dev/sda1                  201380  135436     65944  68% /boot
tmpfs                       99796       4     99792   1% /run/user/42
tmpfs                       99796      32     99764   1% /run/user/1000
/dev/sr0                  9176232 9176232         0 100% /run/media/qijunchao/CentOS 7 x86_64
/dev/mapper/vgqjc-lvqjc   8125880   36852   7653216   1% /mnt
[root@localhost ~]# 

 

下面我們將對LVM進行擴容和縮減操作,所以向/mnt中寫入測試數據以驗證LVM 的磁盤動態管理。# touch /mnt/qjc

二、LVM的在線擴展  

        分為兩種情況:

            第一種情況,需要擴展的pe數量,vg可以提供

[root@localhost ~]# lvs
  LV     VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvqjc  vgqjc  -wi-ao----   8.00g                                                    
  lvtest vgtest -wi-ao---- 160.00m                                                    
[root@localhost ~]# lvextend -L +100M /dev/vgtest/lvtest 
  Size of logical volume vgtest/lvtest changed from 160.00 MiB (40 extents) to 260.00 MiB (65 extents).
  Logical volume vgtest/lvtest successfully resized.
[root@localhost ~]# lvs
  LV     VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvqjc  vgqjc  -wi-ao----   8.00g                                                    
  lvtest vgtest -wi-ao---- 260.00m                                                    
[root@localhost ~]# 

查看實際的磁盤容量,發現並沒改變,需要對文件系統進行擴容 resize2fs /dev/vgtest/lv/test

 

[root@localhost ~]# df -Th
Filesystem                Type      Size  Used Avail Use% Mounted on
/dev/sda5                 xfs        20G  3.9G   16G  20% /
devtmpfs                  devtmpfs  472M     0  472M   0% /dev
tmpfs                     tmpfs     488M     0  488M   0% /dev/shm
tmpfs                     tmpfs     488M  8.7M  479M   2% /run
tmpfs                     tmpfs     488M     0  488M   0% /sys/fs/cgroup
/dev/sda2                 xfs        10G  114M  9.9G   2% /app
/dev/sda1                 xfs       197M  133M   65M  68% /boot
tmpfs                     tmpfs      98M  4.0K   98M   1% /run/user/42
tmpfs                     tmpfs      98M   32K   98M   1% /run/user/1000
/dev/sr0                  iso9660   8.8G  8.8G     0 100% /run/media/qijunchao/CentOS 7 x86_64
/dev/mapper/vgtest-lvtest ext4      151M  1.6M  139M   2% /mnt
[root@localhost ~]# resize2fs /dev/vgtest/lvtest 
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vgtest/lvtest is mounted on /mnt; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/vgtest/lvtest is now 266240 blocks long.
 
[root@localhost ~]# df -Th
Filesystem                Type      Size  Used Avail Use% Mounted on
/dev/sda5                 xfs        20G  3.9G   16G  20% /
devtmpfs                  devtmpfs  472M     0  472M   0% /dev
tmpfs                     tmpfs     488M     0  488M   0% /dev/shm
tmpfs                     tmpfs     488M  8.7M  479M   2% /run
tmpfs                     tmpfs     488M     0  488M   0% /sys/fs/cgroup
/dev/sda2                 xfs        10G  114M  9.9G   2% /app
/dev/sda1                 xfs       197M  133M   65M  68% /boot
tmpfs                     tmpfs      98M  4.0K   98M   1% /run/user/42
tmpfs                     tmpfs      98M   32K   98M   1% /run/user/1000
/dev/sr0                  iso9660   8.8G  8.8G     0 100% /run/media/qijunchao/CentOS 7 x86_64
/dev/mapper/vgtest-lvtest ext4      248M  2.1M  231M   1% /mnt
[root@localhost ~]# 

resize2fs /dev/vgtest/lvtest  #更新文件系統的大小,即激活

resize2fs -f /dev/vgtest/lvtest 500M #強制設置大小

dump2fs /dev/vgtest/lvtest  #查看ext系列文件系統

第二種情況,vg空間不夠,需先擴展vg,擴展vg就是往vg中加pv

新建pv, 進行擴容,再查看

[root@localhost ~]# pvcreate /dev/sdg
  Physical volume "/dev/sdg" successfully created.
[root@localhost ~]# vgextend vgtest /dev/sdg
  Volume group "vgtest" successfully extended
[root@localhost ~]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree 
  vgqjc    1   1   0 wz--n- 19.98g 11.98g
  vgtest   2   1   0 wz--n-  1.99g <1.74g
[root@localhost ~]# 
[root@localhost ~]# lvextend -L 1G /dev/vgtest/lvtest 
  Size of logical volume vgtest/lvtest changed from 260.00 MiB (65 extents) to 1.00 GiB (256 extents).
  Logical volume vgtest/lvtest successfully resized.
[root@localhost ~]# lvs
  LV     VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvqjc  vgqjc  -wi-ao---- 8.00g                                                    
  lvtest vgtest -wi-ao---- 1.00g   

查看測試數據:

[root@localhost ~]# ll /mnt
total 16
drwx------. 2 root root 16384 Aug 11 22:25 lost+found
-rw-r--r--. 1 root root     0 Aug 11 23:33 qjc
[root@localhost ~]# 

3:LVM的縮減操作:

 1:umount 文件系統

 2:縮減文件系統

[root@localhost ~]# lvs
  LV     VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvqjc  vgqjc  -wi-a----- 8.00g                                                    
  lvtest vgtest -wi-a----- 1.00g                                                    
[root@localhost ~]# resize2fs /dev/vgqjc/lvqjc 5G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vgqjc/lvqjc to 1310720 (4k) blocks.
The filesystem on /dev/vgqjc/lvqjc is now 1310720 blocks long.
 
[root@localhost ~]# lvreduce -L 5G /dev/vgqjc/lvqjc 
  WARNING: Reducing active logical volume to 5.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vgqjc/lvqjc? [y/n]: y
  Size of logical volume vgqjc/lvqjc changed from 8.00 GiB (512 extents) to 5.00 GiB (320 extents).
  Logical volume vgqjc/lvqjc successfully resized.
[root@localhost ~]# lvs
  LV     VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lvqjc  vgqjc  -wi-a----- 5.00g                                                    
  lvtest vgtest -wi-a----- 1.00g                                                    
[root@localhost ~]# ls #檢查文件是否丟失

掛載查看

[root@localhost ~]# mount /dev/vgqjc/lvqjc /mnt
[root@localhost ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/sda5               xfs        20G  3.9G   16G  20% /
devtmpfs                devtmpfs  472M     0  472M   0% /dev
tmpfs                   tmpfs     488M     0  488M   0% /dev/shm
tmpfs                   tmpfs     488M  8.7M  479M   2% /run
tmpfs                   tmpfs     488M     0  488M   0% /sys/fs/cgroup
/dev/sda2               xfs        10G  114M  9.9G   2% /app
/dev/sda1               xfs       197M  133M   65M  68% /boot
tmpfs                   tmpfs      98M  4.0K   98M   1% /run/user/42
tmpfs                   tmpfs      98M   32K   98M   1% /run/user/1000
/dev/sr0                iso9660   8.8G  8.8G     0 100% /run/media/qijunchao/CentOS 7 x86_64
/dev/mapper/vgqjc-lvqjc ext4      4.8G   32M  4.5G   1% /mnt
[root@localhost ~]# 

查看測試文件:

[root@localhost ~]# ll /mnt
total 16
drwx------. 2 root root 16384 Aug 11 22:25 lost+found
-rw-r--r--. 1 root root     0 Aug 11 23:33 qjc
[root@localhost ~]# 

測試成功。

刪除LVM

如果要徹底的來移除LVM的話,需要把創建的步驟反過來操作。

1:卸載 文件系統

2:刪除lv

3:刪除vg

4:刪除pv

[root@localhost ~]# lvremove /dev/mapper/vgqjc-lvqjc 
Do you really want to remove active logical volume vgqjc/lvqjc? [y/n]: y
  Logical volume "lvqjc" successfully removed
[root@localhost ~]# vgremove /dev/mapper/vgqjc
  Volume group "vgqjc" successfully removed
[root@localhost ~]# pvremove /dev/sdl
  Labels on physical volume "/dev/sdl" successfully wiped.
[root@localhost ~]# 

LVM刪除成功

————————————————
原文鏈接:https://blog.csdn.net/qq_27281257/article/details/81603410


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM