LVM概述
注意:邏輯分區和邏輯卷不是一個概念
許多llinux作業系統的使用者在安裝作業系統時都會遇到這樣的的困境;如何精确評
估和配置設定配置設定各個硬體分區的容量。如果當初估計不準确,一旦系統分區不夠用就可能不得不備份,删除相關資料,甚至被迫重新規劃分區并重裝作業系統,以滿足應用系統的需要。
LVM是linux作業系統中對磁盤的分區進行管理的一種邏輯機制,它是建立在硬碟和分區之上,檔案系統之下的一個邏輯層,在建立檔案系統時屏蔽了下層的磁盤分區布局,是以能夠在保持現有資料不變的情況下動态調整磁盤容量,進而增強磁盤管理的靈活性。
在安裝Centos作業系統的過程中選擇自動分區時,就會預設采用LVM分區方案,而不需要在進行手動配置。需要注意的是LVM邏輯卷的建立依靠于核心,是以/boot分區不能基于LVM建立,必須獨立出來。
LVM基本概念
PV(Physical Volume)實體卷
實體卷是LVM機制的基本儲存設備,通常對應為一個普通分區或整個硬碟,
建立實體卷時,會在分區或硬碟頭部建立一個保留區,用于記錄LVM的屬性,并把存儲空間分割成預設大小為4MB的基本單元(Physical Exent,PE),而構成實體卷。實體卷一般直接使用裝置檔案名稱。
分區建立将ID轉換成8e,若是整個硬碟将所有空間劃分成一個主分區。
VG(Volume Group)卷組
由一個或多個實體卷組成一個整體,即成為卷組,在卷組中可以動态添加或移
除實體卷,多個實體卷可以分成不同的卷組,卷組的名稱使用者自己定義。
LV(Logical Volume)邏輯卷
邏輯卷建立在卷組之上,與實體卷沒有直接關系,對于邏輯卷來說,每個卷組
就是一個整體,從這個整體中分割出一個空間,作為使用者建立檔案系統的基礎,這一小塊空間就稱之為邏輯卷。邏輯卷經過格式化建立了檔案系統後,就可以挂載使用了。
邏輯卷建立步驟:準備分區–>建立實體卷–>建立卷組–>建立邏輯卷–>格式化(形成檔案系統)–>挂載使用
LVM管理指令
fdisk分完區後,分區類型改成8e
然後partx /dev/sdd 讓系統識别一下你的分區
實體卷管理
1,pvscan指令
pvscan指令用于掃描系統中所有的實體卷,并輸出相關資訊
2,pvcreate指令
格式:pvcreate 裝置1 [裝置2…]
pvcreate指令用于 将整個硬碟或分區轉換成實體卷,主要是添加LVM屬性資訊并劃分PE存儲機關,該指令需要使用硬碟或分區作為參數
3,pvdisplay指令
格式:pvdisplay /dev/sdb3
pvdisplay指令用于顯示實體卷的詳細資訊,需要使用指定的實體卷作為指令參數,預設時将顯示所有實體卷的資訊。
4,pvremove指令
格式:pvremove /dev/sdb3
pvremove指令用于将實體卷還原成普通的分區或磁盤,不在同于LVM體系,被移除的實體卷将無法被pvscan識别。
卷組管理
1, vgscan指令或vgs
vgscan指令用于掃描系統中已建立的LVM卷組及相關資訊。
2, vgcreate指令
格式:vgcreate 卷組名 實體卷名1 實體卷名2… [選項-s 指定PE大小(機關M)]
vgcreate myvg /dev/sdb1 /dev/sdb2
vgcreate指令用于将一個或多個實體卷建立為一個卷組,第一個指令參數用于設定卷組名稱,其後依次指定需要加入卷組的實體卷作為參數。
3, vgdisplay指令
格式:vgdisplay vgdata
vgdisplay指令用于顯示系統中各類卷組的詳細資訊,需要使用指定卷組名為參數,未指定卷組預設将顯示所有卷組的資訊。
4, vgremove指令
格式:vgremove vgdata
vgremove指令用于删除指定的卷組,将指定的卷組名稱作為參數即可。删除時應確定該卷組中沒有使用的邏輯卷
5, vgextend指令
格式:vgextend vgdata /dev/sdb4
vgextend指令用于擴充卷組的磁盤空間,當建立了新的實體卷,需要将其加入到已有的卷組中,就可以使用vgextend指令。該指令的第一個參數為需要擴充容量的卷組名稱,其後為需要添加到該卷組中的各實體卷。
6, vgreduce指令
格式:vgreduce vgdata /dev/sdb4
vgreduce指令用于減少卷組的磁盤空間。該指令的第一個參數為需要減少容量的卷組名稱,其後為需要減少到該卷組中的各實體卷。
邏輯卷管理
1, lvscan指令 或lvs
lvscan指令用掃描系統中已建立的邏輯卷及相關資訊。
2, lvcreate指令
lvcreate指令用于從指定的卷組中分割空間,以建立新的邏輯卷。需要指定邏輯卷大小,名稱及所在的卷組名作為參數
格式:lvcreate -L 容量大小 (-I 指定PE個數) -n 邏輯卷名 卷組名
lvcreat -n lvdata -L 8G data
3, lvdisplay指令
格式:lvdisplay /dev/vgdata/lvdata
lvdisplay指令用于像是邏輯卷的詳細資訊,可以指定邏輯卷的裝置檔案作為參數,也可以使用卷組名為參數,以顯示該卷組的所有邏輯卷的資訊。
4,lvextend指令
格式:lvextend -L +1G /dev/vgdata/lvdata
lvextend指令用于動态擴充邏輯卷的空間,當目前使用的邏輯卷空間不足時,可以從所在卷組中分割額外的空間進行擴充。隻要指定需要增加的容量大小及邏輯卷裝置檔案位置即可。前提是該卷組中還有尚未配置設定的磁盤空間,否則需要先擴充卷組容量。
執行xfs_growfs /dev/卷組名/邏輯卷名 指令以便重新識别檔案系統的大小。
5,lvreduce指令用于動态減少邏輯卷的空間。(重新識别檔案系統的大小無效) ext4可以用
格式:lvreduce -L -2G /dev/卷組名/邏輯卷名
6, lvremove指令
格式:lvremove /dev/卷組名/邏輯卷名
lvremove指令用于删除指定的邏輯卷,直接使用邏輯卷的裝置檔案作為參數即可。
建立實體卷
格式:pvcreate /dev/sdb1 /dev/sdb2
建立卷組
格式:vgcreat data /dev/sdb1 /dev/sdb2
卷組名
删除卷組
格式:vgremove data
擴充卷組:
格式:vgextend vgdata /dev/sdb3
減少卷組:
格式:vgreduce vgdata /dev/sdb3
建立邏輯卷:
格式:lvcreat -n lvdata -L 8G data
邏輯卷名 卷組名
格式化邏輯卷:
mkfs -t xfs /dev/卷組名/邏輯卷名
擴充邏輯卷:
lvextend -L +2G /dev/卷組名/邏輯卷名
-L:指定容量大小
減少邏輯卷:
lvreduce -L -2G /dev/卷組名/邏輯卷名
删除邏輯卷:
lvremove /dev/卷組名/邏輯卷名
重新整理:xfs_growfs /dev/卷組名/邏輯卷名 //重新擴充 邏輯卷後,重新識别檔案系統的大小
重新整理:ext4檔案系統用 resize2fs /dev/vgdata/lvdata
xfs_repair /dev/vgdata/lvdata //不能讀超級塊,磁盤修複
注意:xfs檔案系統隻支援增大分區的情況,不支援減少的情況