首页 > 技术文章 > LVM

kaleidopink 2020-04-10 21:27 原文

LVM

LVM for Logical Volume Manager(邏輯捲管理)。

用戶在安裝Linux系統時常常遇到的一個問題就是無法準確的評估分區的大小。如果一個分區的大小沒有合適的分配,常常會遇到大文件無法存下的情況。一個邏輯分區無法存下時,無法跨越多個分區存儲。通常可以使用符號鏈解決。但是無法從根本上解決。

LVM的出現完美地解決了這個問題。LVM通俗的來說類似於內存管理中的地址映射,Linux的內存映射將內核訪問的內存與物理內存用一個內存地址映射隔離開來。LVM則是在磁盤層面實現了這個效果。

LVM本質上是一個虛擬設備驅動,它將多個物理存儲設備聯立起來組成一個存儲卷或者說卷組。LVM再從卷組中劃分不同的邏輯卷作為新的邏輯設備,邏輯卷在物理層面上不必是磁盤上連續的一片,其可以跨越多個物理卷。對於上層設備來說,相當於底層所有的存儲設備都連成了一片,這就形成了一個類似內存中的邏輯空間的東西。

對於LVM來說,跨卷存儲和調整分區大小只需要從邏輯層面修改響應文件信息,而物理層面的存儲信息不需要變化。當用戶增加物理卷時,只需要將新分區加入卷組並擴充邏輯卷即可。

Linux下製作LVM

安裝Linux時LVM並不會自動的安裝,需要用戶手動製作,製作時為了體現LVM跨分區跨磁盤的效果,最好將LVM製作在多個磁盤下。

假設有兩塊磁盤/dev/sda1, /dev/sda2

  1. 首先創建物理卷

    pvcreate /dev/sda1

    pvcreate /dev/sda2

  2. 創建卷組

    vgcreate vg_name /dev/sda1 /dev/sda2

    vg_name是卷組的名字

  3. 創建好後可以通過vgdisplay查看VG的情況。

  4. 創建LVM邏輯卷

    lvcreate -L size -n lvm_name vg_name

    -L參數後面接需要創建的邏輯卷的大小,單位是kKmMgGtT

    -n參數後面則接需要創建的邏輯卷的名字。

    最後需要在哪個卷組中創建邏輯卷就加上哪個卷組的名字。

    更多的參數可以通過man lvcreate命令查看。

  5. 創建好的邏輯卷文件可以通過/dev/vg_name/lvm_name路徑查看。

  6. 邏輯卷創建好後就可以進行文件系統的創建了,創建方式和正常創建在磁盤裡面基本沒有差別。

  7. 邏輯卷的擴容。

    lvextend -L size /dev/vg_name/lvm_name

    -L參數與前面同義。

    邏輯卷擴容後還需要命令文件系統識別新的文件系統大小。

    resize2fs /dev/vg_name/lvm_name

  8. LVM的掛載。和正常操作基本一樣。

  9. 設置開機自動掛載

    打開fstab

    vim /etc/fstab

    在最下面增加一行:

    /dev/vg_name/lvm_name /mnt/path ext4 defaults 0 0

    /mnt/path寫為你的LVM的掛載路徑。ext4也改为你创建的文件系统名字。

推荐阅读