LVM(Logicl Volume Manager),邏輯卷管理器,通過使用邏輯卷管理器對硬碟儲存設備進行管理,可以實作硬碟空間的動态劃分和調整。
一、 基本概念
1、 實體卷-----PV(Physical Volume)
實體卷在邏輯卷管理中處于最底層,它可以是實際實體硬碟上的分區,也可以是整個實體硬碟。
2、 卷組--------VG(Volumne Group)
卷組建立在實體卷之上,一個卷組中至少要包括一個實體卷,在卷組建立之後可動态添加實體卷到卷組中。一個邏輯卷管理系統工程中可以隻有一個卷組,也可以擁有多個卷組。
3、 邏輯卷-----LV(Logical Volume)
邏輯卷建立在卷組之上,卷組中的未配置設定空間可以用于建立新的邏輯卷,邏輯卷建立後可以動态地擴充和縮小空間。系統中的多個邏輯卷要以屬于同一個卷組,也可以屬于不同的多個卷組。
4、 實體區域--PE(Physical Extent)
實體區域是實體卷中可用于配置設定的最小存儲單元,實體區域的大小可根據實際情況在建立實體卷時指定。實體區域大小一旦确定将不能更改,同一卷組中的所有實體卷的實體區域大小需要一緻。
5、 邏輯區域—LE(Logical Extent)
邏輯區域是邏輯卷中可用于配置設定的最小存儲單元,邏輯區域的大小取決于邏輯卷所在卷組中的實體區域的大小。
6、 卷組描述區域-----(Volume Group Descriptor Area)
卷組描述區域存在于每個實體卷中,用于描述實體卷本身、實體卷所屬卷組、卷組中的邏輯卷及邏輯卷中實體區域的配置設定等所有資訊,卷組描述區域是在使用pvcreate建立實體卷時建立的。
二、 LVM的一般操作過程
1、 在磁盤分區上建立實體卷
#fdisk /dev/hdb
#pvdisplay /dev/hdb1 //在已經建立好的分區或硬碟上建立實體卷
#pvcreate /dev/hdb1
2、 使用實體卷建立卷組
#vgcreate myVG /dev/hdb1 //建立卷組,日後可以根據需要添加新的實體卷到已有卷組中
3、 在卷組中建立邏輯卷
#lvcreate –L 10M –n myLV1 myVG //從已有卷組建立邏輯卷,通常隻配置設定部分空間給該邏//輯卷
4、 在邏輯卷上建立檔案系統
5、 将檔案系統挂載到Linux系統的目錄樹中
6、 在卷組中添加新的實體卷
當卷組中沒有足夠的空間配置設定給邏輯卷時,可以使用vgextend指令添加新的實體卷到該卷組中,來擴充卷組容量。在一引起特殊的情況下也可以把卷組中現有的實體卷移出卷組。
#vgextend myVG /dev/hdb2
7、 擴充邏輯卷的容量
當邏輯卷的空間不能滿足需要時,可以使用lvextend指令把卷組中的空閑空間配置設定到該邏輯卷以擴充邏輯卷的容量。在邏輯卷的空閑空間過大時,也可以使用lvreduce指令縮減邏輯卷的容量。這樣就實作了邏輯卷容量的動态調整。
#lvextend –L +4M /dev/myVG/myLV
8、 調整邏輯卷中檔案系統的大小
三、 常用指令
1、 實體卷指令
一般維護指令:
#pvscan //在系統的所有磁盤中搜尋已存在的實體卷
#pvdisplay 實體卷全路徑名稱 //用于顯示指定實體卷的屬性。
#pvdata 實體卷全路徑名稱 //用于顯示實體卷的卷組描述區域資訊,用于調試目的。
#pvchange –x|--allocation {y|n} 實體卷全路徑名 //用于改變實體卷的配置設定許可設定
實體卷的建立與删除指令
#pvcreate 裝置全路徑名 //用于在磁盤或磁盤分區上建立實體卷初始化資訊,以便對
//該實體卷進行邏輯卷管理。
#pvmove 源實體卷全路徑我[目的實體卷全路徑名] //用于把某實體卷中的資料轉
//移到同卷組中其他的特刊卷中。
2、 卷組指令
一般維護指令
#vgscan //檢測系統中所有磁盤
#vgck [卷組名] //用于檢查卷組中卷組描述區域資訊的一緻性。
#vgdisplay [卷組名] //顯示卷組的屬性資訊
#vgrename 原卷組名 新卷組名
#vgchange -a y|n [卷組名] //改變卷組的相應屬性。是否可配置設定
#vgchange -l 最大邏輯卷數 //卷組可容納最大邏輯卷數
#vgchange -x y|n [卷組名] //卷是否有效
#vgmknodes [卷組名|卷組路徑] //用于建立(重建立立)已有卷組目錄和其中的裝置文
//件
卷組配置的備份與恢複指令
#vgcfgbackup [卷組名] //把卷組中的VGDA資訊備份到“/etc/lvmconf”目錄中的檔案
#vgcfgrestore -n 卷組名 實體卷全路命名 //從備份檔案中必得指定實體卷的資訊
卷組的建立與删除指令
#vgcreate 卷組名 實體卷全路徑名[實體卷全路徑名]
#vgmove 卷組名
卷組的擴充與縮小指令
#vgextend 卷組名 實體卷全路徑名[實體卷全路徑名]
#vgreduce 卷組名 實體卷全路徑名[實體卷全路徑名]
卷組的合并與拆分
#vgmerge 目的卷組名 源卷組名 //合并兩個已經存在的卷組,要求兩個卷組的實體
//區域大小相等且源卷組是非活動的。
#vgsplit 現有卷組 新卷組 實體卷全路徑名[實體卷全路徑名]
卷組的輸入與輸出指令
#vgexport 卷組名
#vgimport 卷組名 卷組中的實體卷[卷組中的實體卷]
3、 邏輯卷指令
一般指令
#lvscan
#lvdisplay 邏輯卷全路徑名[邏輯卷全路徑名]
#lvrename 舊邏輯卷全路徑名 新邏輯卷全路徑名
#lvrename 卷組名 舊邏輯卷名 新邏輯卷名
#lvchange
#e2fsadm -L +|- 邏輯卷增減量 邏輯卷全路徑名
邏輯卷的建立與删除指令
#lvcreate
#lvremove
邏輯卷的擴充與縮小指令
#lvextend -L|--size +邏輯卷大小增量 邏輯卷全路徑名
#lvreduce q -L|--size +邏輯卷減小量 邏輯卷全路徑名
4、 邏輯卷管理指令
#lvmdiskscan //檢測所有的SCSI、IDE等儲存設備
#lvmchange -R|--reset //複位邏輯卷管理器
#lvmsadc [日志檔案全路徑名] //收信邏輯卷管理器讀寫統計資訊,儲存到日志文
//件中。
#lvmsar 日志檔案全路徑名 //從lvmsadc指令生成的日志檔案中讀取并報告邏輯卷
//管理器的讀寫統計資訊。
如果有什麼問題,可與我聯系: [email protected]