Linux中國

使用 LVM 添加存儲

邏輯卷管理器 Logical Volume Manager LVM)允許在操作系統和硬體之間建立一個抽象層。通常,你的操作系統會查找磁碟(/dev/sda/dev/sdb 等)和這些磁碟中的分區(/dev/sda1/dev/sdb1 等)。

LVM 在操作系統和磁碟之間創建了一個虛擬層。LVM 不是一個驅動器持有一定數量的分區,而是創建一個統一的存儲池(稱為 卷組 Volume Group ),跨越任意數量的物理驅動器(稱為 物理卷 Physical Volume )。使用卷組中可用的存儲,LVM 可以為你的操作系統提供類似磁碟和分區的功能。

操作系統完全沒有意識到它被「欺騙」了。

![Drive space](/data/attachment/album/202112/13/235133iemicuc3i2i4wwci.png "Drive space")

由於 LVM 虛擬地創建卷組和邏輯卷,因此即使在系統運行時,也可以輕鬆調整它們的大小或移動它們,或者創建新卷。此外,LVM 提供了其它情況下不存在的特性,比如創建邏輯卷的活動快照時無需首先卸載磁碟。

LVM 中的卷組是一個命名的虛擬容器,將底層物理磁碟組合在一起。它充當一個池,可以從中創建不同大小的 邏輯卷 Logical Volume 。邏輯卷包含實際的文件系統並且可以跨越多個磁碟,並且不需要物理上連續。

特性

  • 分區名稱通常具有系統名稱,例如 /dev/sda1。LVM 具有便於人們理解的名稱,例如 home 或者 media
  • 分區的總大小受底層物理磁碟大小的限制。在 LVM 中,卷可以跨越多個磁碟,並且僅受 LVM 中所有物理磁碟總大小的限制。
  • 分區通常只有在磁碟未使用且已卸載時才能調整大小、移動或刪除。LVM 卷可以在系統運行時進行操作。
  • 只能通過分配與分區相鄰的可用空間來擴展分區。LVM 卷可以從任何地方佔用可用空間。
  • 擴展分區涉及移動數據以騰出可用空間,這非常耗時,並且可能會在斷電期間導致數據丟失。LVM 卷可以從卷組中的任何地方佔用可用空間,甚至可以在另一塊磁碟上。
  • 因為在 LVM 中創建卷非常容易,所以它鼓勵創建不同的卷,例如創建單獨的捲來測試功能或嘗試不同的操作系統。對於分區,此過程將非常耗時並且容易出錯。
  • 快照只能在 LVM 中創建。它允許你創建當前邏輯卷的時間點鏡像,即使在系統運行時也可以。這非常適合備份。

測試設置

作為演示,假設你的系統具有以下驅動器配置:

NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk
`-xvda1 202:1    0   8G  0 part /
xvdb    202:16   0   1G  0 disk
xvdc    202:32   0   1G  0 disk
xvdd    202:48   0   2G  0 disk
xvde    202:64   0   5G  0 disk
xvdf    202:80   0   8G  0 disk

步驟 1. 初始化磁碟以用於 LVM

運行 pvcreate /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf。輸出應如下:

Physical volume "/dev/xvdb" successfully created
Physical volume "/dev/xvdc" successfully created
Physical volume "/dev/xvdd" successfully created
Physical volume "/dev/xvde" successfully created
Physical volume "/dev/xvdf" successfully created

使用 pvs 或者 pvdisplay 查看結果:

"/dev/xvde" is a new physical volume of "5.00 GiB"
--- NEW Physical volume PV Name               /dev/xvde
VG Name
PV Size               5.00 GiB
Allocatable           NO
PE Size               0
Total PE              0
Free PE               0
Allocated PE          0
PV UUID               728JtI-ffZD-h2dZ-JKnV-8IOf-YKdS-8srJtn

"/dev/xvdb" is a new physical volume of "1.00 GiB"
--- NEW Physical volume PV Name               /dev/xvdb
VG Name
PV Size               1.00 GiB
Allocatable           NO
PE Size               0
Total PE              0
Free PE               0
Allocated PE          0
PV UUID               zk1phS-7uXc-PjBP-5Pv9-dtAV-zKe6-8OCRkZ

"/dev/xvdd" is a new physical volume of "2.00 GiB"
--- NEW Physical volume PV Name               /dev/xvdd
VG Name
PV Size               2.00 GiB
Allocatable           NO
PE Size               0
Total PE              0
Free PE               0
Allocated PE          0
PV UUID               R0I139-Ipca-KFra-2IZX-o9xJ-IW49-T22fPc

"/dev/xvdc" is a new physical volume of "1.00 GiB"
--- NEW Physical volume PV Name               /dev/xvdc
VG Name
PV Size               1.00 GiB
Allocatable           NO
PE Size               0
Total PE              0
Free PE               0
Allocated PE          0
PV UUID               FDzcVS-sq22-2b13-cYRj-dXHf-QLjS-22Meae

"/dev/xvdf" is a new physical volume of "8.00 GiB"
--- NEW Physical volume PV Name               /dev/xvdf
VG Name
PV Size               8.00 GiB
Allocatable           NO
PE Size               0
Total PE              0
Free PE               0
Allocated PE          0
PV UUID               TRVSH9-Bo5D-JHHb-g0NX-8IoS-GG6T-YV4d0p

步驟 2. 創建卷組

運行 vgcreate myvg /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf。通過 vgs 或者 vgdisplay 查看結果:

--- Volume group VG Name               myvg
System ID
Format                lvm2
Metadata Areas        5
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                5
Act PV                5
VG Size               16.98 GiB
PE Size               4.00 MiB
Total PE              4347
Alloc PE / Size       0 / 0
Free  PE / Size       4347 / 16.98 GiB
VG UUID               ewrrWp-Tonj-LeFa-4Ogi-BIJJ-vztN-yrepkh

步驟 3: 創建邏輯卷

運行以下命令:

lvcreate myvg --name media --size 4G
lvcreate myvg --name home --size 4G

使用 lvs 或者 lvdisplay 驗證結果:

--- Logical volume LV Path                /dev/myvg/media
LV Name                media
VG Name                myvg
LV UUID                LOBga3-pUNX-ZnxM-GliZ-mABH-xsdF-3VBXFT
LV Write Access        read/write
LV Creation host, time ip-10-0-5-236, 2017-02-03 05:29:15 +0000
LV Status              available
# open                 0
LV Size                4.00 GiB
Current LE             1024
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           252:0

--- Logical volume LV Path                /dev/myvg/home
LV Name                home
VG Name                myvg
LV UUID                Hc06sl-vtss-DuS0-jfqj-oNce-qKf6-e5qHhK
LV Write Access        read/write
LV Creation host, time ip-10-0-5-236, 2017-02-03 05:29:40 +0000
LV Status              available
# open                 0
LV Size                4.00 GiB
Current LE             1024
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           252:1

步驟 4: 創建文件系統

使用以下命令創建文件系統:

vgcreate myvg /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf
mkfs.ext3 /dev/myvg/media
mkfs.ext3 /dev/myvg/home

掛載它:

mount /dev/myvg/media /media
mount /dev/myvg/home /home

使用 lsblk 命令查看完整配置:

NAME         MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda         202:0    0   8G  0 disk
`-xvda1      202:1    0   8G  0 part /
xvdb         202:16   0   1G  0 disk
xvdc         202:32   0   1G  0 disk
xvdd         202:48   0   2G  0 disk
xvde         202:64   0   5G  0 disk
`-myvg-media 252:0    0   4G  0 lvm  /media
xvdf         202:80   0   8G  0 disk
`-myvg-home  252:1    0   4G  0 lvm  /home

步驟 5: 擴展 LVM

添加一塊新的 /dev/xvdg 磁碟。要擴展 home 卷,運行以下命令:

pvcreate /dev/xvdg
vgextend myvg /dev/xvdg
lvextend -l 100%FREE /dev/myvg/home
resize2fs /dev/myvg/home

運行 df -h,你應該可以看到新的磁碟大小。

就是這樣!

LVM 為你配置存儲的方式提供了極大的靈活性。嘗試一下,並享受 LVM 的樂趣!

本文首發於 作者個人博客,經授權改編。

via: https://opensource.com/article/21/9/add-storage-lvm

作者:Ayush Sharma 選題:lujun9972 譯者:perfiffer 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國