Linux中國

Linux LVM簡明教程

圖中頂部,首先是實際的物理磁碟及其劃分的分區和其上的物理卷(PV)。一個或多個物理卷可以用來創建卷組(VG)。然後基於卷組可以創建邏輯卷(LV)。只要在卷組中有可用空間,就可以隨心所欲的創建邏輯卷。文件系統就是在邏輯卷上創建的,然後可以在操作系統掛載和訪問。

LVM測試說明

本文將介紹怎麼在linux中創建和管理LVM。我們將會分成兩個部分。第一個部分,我們首先要在一個硬碟上創建多個邏輯卷,然後將它們掛載在/lvm-mount目錄。然後我們將要對創建好的卷調整大小。而第二部分,我們將會從另外一塊硬碟增加額外的卷到LVM中。

準備磁碟分區

通過使用fdisk,創建磁碟分區。我們需要創建3個1G分區,注意,並不要求分區的大小一致。同樣,分區需要使用『8e』類型來使他們可用於LVM。

# fdisk /dev/sdb 
Command (m for help): n ## 新建
Command action
   e   extended
   p   primary partition (1-4)
p ## 主分區

Partition number (1-4): 1 ## 分區號
First cylinder (1-1044, default 1):  ## 回車用默認的1
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +1G ## 大小

Command (m for help): t ## 改變類型
Selected partition 1
Hex code (type L to list codes): 8e ## LVM 的分區代碼
Changed system type of partition 1 to 8e (Linux LVM)

重複上面的操作來創建其他兩個分區。分區創建完成後,我們應該有類似如下的輸出:

# fdisk -l 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         132     1060258+  8e  Linux LVM
/dev/sdb2             133         264     1060290   8e  Linux LVM
/dev/sdb3             265         396     1060290   8e  Linux LVM

準備物理卷(PV)

剛創建的分區是用來儲存物理卷的。LVM可以使用不同大小的物理卷。

# pvcreate /dev/sdb1
# pvcreate /dev/sdb2
# pvcreate /dev/sdb3 

使用下列命令檢查物理卷的創建情況。下面截取部分輸出。"/dev/sdb2"是一個新的"1.01 GiB"物理卷。

# pvdisplay 
  --- NEW Physical volume   PV Name               /dev/sdb2
  VG Name
  PV Size               1.01 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               jszvzz-ENA2-g5Pd-irhV-T9wi-ZfA3-0xo092

使用下列命令可以刪除物理卷。

# pvremove /dev/sdb1 

準備卷組(VG)

下列命令用來創建名為'volume-group1'的卷組,使用/dev/sdb1, /dev/sdb2 和 /dev/sdb3創建。

# vgcreate volume-group1 /dev/sdb1 /dev/sdb2 /dev/sdb3

使用下列命令可以來驗證卷組。

# vgdisplay 
  --- Volume group   VG Name               volume-group1
  System ID
  Format                lvm2
  Metadata Areas        3
  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                3
  Act PV                3
  VG Size               3.02 GiB
  PE Size               4.00 MiB
  Total PE              774
  Alloc PE / Size       0 / 0
  Free  PE / Size       774 / 3.02 GiB
  VG UUID               bwd2pS-fkAz-lGVZ-qc7C-TaKv-fFUC-IzGNBK

從輸出中,我們可以看見卷組的使用量/總量。物理卷給卷組提供空間。只要在這個卷組中還有可用空間,我們就可以隨意創建邏輯卷。

使用下列命令刪除卷組。

# vgremove volume-group1 

創建邏輯卷(LV)

下列命令創建一個名為'1v1'、大小為100MB的邏輯卷。我們使用小分區減少執行時間。這個邏輯卷使用之前創建的卷組的空間。

# lvcreate -L 100M -n lv1 volume-group1 

邏輯卷可使用lvdisplay命令查看。

# lvdisplay 
  --- Logical volume   LV Name                /dev/volume-group1/lv1
  VG Name                volume-group1
  LV UUID                YNQ1aa-QVt1-hEj6-ArJX-I1Q4-y1h1-OFEtlW
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                100.00 MiB
  Current LE             25
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

現在邏輯卷已經準備好了,我們可以格式化和掛載邏輯卷,就像其它ext2/3/4分區一樣!

# mkfs.ext4 /dev/volume-group1/lv1
# mkdir /lvm-mount
# mount /dev/volume-group1/lv1 /lvm-mount/ 

一旦邏輯卷掛載,我們就可以到掛載點 /lvm-mount/ 上讀寫了。要創建和掛載其它的邏輯卷,我們重複這個過程。

最後,使用lvremove我們可以刪除邏輯卷。

# umount /lvm-mount/
# lvremove /dev/volume-group1/lv1 

擴展一個LVM卷

調整邏輯卷大小的功能是LVM最有用的功能。這個部分會討論我們怎麼樣擴展一個存在的邏輯卷。下面,我們將會擴展先前創建的邏輯卷『lv1』擴大到200MB。

注意,調整邏輯卷大小之後,也需要對文件系統調整大小進行匹配。這個額外的步驟各不相同,取決於創建文件系統的類型。在本文中,我們使用'lv1'創建了ext4類型的文件系統,所以這裡的操作是針對ext4文件系統的。(ext2/3文件系統也類同)。命令的執行順序是很重要的。

首先,我們卸載掉lv1卷

# umount /lvm-mount/ 

然後,設置卷的大小為200M

# lvresize -L 200M /dev/volume-group1/lv1 

接下來,檢查磁碟錯誤

# e2fsck -f /dev/volume-group1/lv1 

運行以下命令擴展文件系統以後,ext4信息就更新了。

# resize2fs /dev/volume-group1/lv1 

現在,這個邏輯卷應該已經擴展到200MB了。我們檢查LV的狀態來驗證。

# lvdisplay 
  --- Logical volume   LV Name                /dev/volume-group1/lv1
  VG Name                volume-group1
  LV UUID                9RtmMY-0RIZ-Dq40-ySjU-vmrj-f1es-7rXBwa
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                200.00 MiB
  Current LE             50
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

現在,這個邏輯卷可以再次掛載,同樣這個方法也可用於其他分區。

縮減一個LVM卷

這章節介紹縮減LVM卷大小的方法。命令的順序同樣重要。並且,下列命令對ext2/3/4文件系統同樣有效。

注意減少邏輯卷的大小值若小於儲存的數據大小,存儲在後面的數據會丟失。

首先,卸載掉卷。

# umount /dev/volume-group1/lv1

然後,檢測磁碟錯誤。

# e2fsck -f /dev/volume-group1/lv1 

接下來縮小文件系統,更新ext4信息。

# resize2fs /dev/volume-group1/lv1 100M 

完成以後,減少邏輯卷大小

# lvresize -L 100M /dev/volume-group1/lv1 

WARNING: Reducing active logical volume to 100.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce lv1? [y/n]: y Reducing logical volume lv1 to 100.00 MiB Logical volume lv1 successfully resized

最後,驗證調整後的邏輯卷大小。

# lvdisplay 
--- Logical volume   LV Name                /dev/volume-group1/lv1
  VG Name                volume-group1
  LV UUID                9RtmMY-0RIZ-Dq40-ySjU-vmrj-f1es-7rXBwa
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                100.00 MiB
  Current LE             25
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

擴展一個卷組

本節將討論擴展卷組的方法,將一個物理卷添加到卷組。讓我們假設我們的卷組'volume-group1'已經滿了,需要擴大。手上的硬碟(sdb)已經沒有其他空閑分區,我們添加了另外一個硬碟(sdc)。我們將看到如何把sdc的分區添加到卷組以擴展。

檢測現在卷組狀態

# vgdisplay volume-group1 
 --- Volume group   VG Name               volume-group1
  System ID
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  8
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               3.02 GiB
  PE Size               4.00 MiB
  Total PE              774
  Alloc PE / Size       25 / 100.00 MiB
  Free  PE / Size       749 / 2.93 GiB
  VG UUID               bwd2pS-fkAz-lGVZ-qc7C-TaKv-fFUC-IzGNBK

首先,我們創建一個2GB分區sdc1,類型為LVM(8e),如教程前所述。

# fdisk /dev/sdc 
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +2G

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

然後,我們創建一個物理卷 /dev/sdc1

# pvcreate /dev/sdc1 

現在,物理卷已經準備好了,我們可以簡單地將它增加到已存在的卷組'volume-group1'上。

# vgextend volume-group1 /dev/sdc1 

使用vgdisplay來驗證(可以看到卷組大小已經增大)。

# vgdisplay 
  --- Volume group   VG Name               volume-group1
  System ID
  Format                lvm2
  Metadata Areas        4
  Metadata Sequence No  9
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                4
  Act PV                4
  VG Size               5.03 GiB
  PE Size               4.00 MiB
  Total PE              1287
  Alloc PE / Size       25 / 100.00 MiB
  Free  PE / Size       1262 / 4.93 GiB
  VG UUID               bwd2pS-fkAz-lGVZ-qc7C-TaKv-fFUC-IzGNBK

注意,儘管我們使用一個單獨的磁碟做示範,其實只要是『8e』類型的磁碟分區都可以用來擴展卷組。

總結一下,LVM是一個非常給力的工具,用來創建和管理可變大小的分區。本文中,我們已經介紹了動態分區如何在LVM中創建和使用。我們也介紹了擴展/縮小邏輯卷和卷組的方法,和如何增加一個新的磁碟到LVM。

希望對你有幫助。

via: http://xmodulo.com/2014/05/use-lvm-linux.html

譯者:Vic___ 校對: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中國