-- rhel7上邏輯卷的管理
當使用者根據實際情況需要對分區增加、減少等調整時,經常會受磁盤“靈活性”的限制,很不友善。
邏輯卷管理器則是在磁盤分區與檔案系統之間添加的邏輯層,提供一個抽象的卷組,使得管理者可以忽略底層磁盤布局,
進而實作分區的靈活動态調整。(在rhel7以上系統已經預設啟動lvm機制)
實體卷(pv,physical volume): 整個硬碟裝置或使用fdisk指令建立的硬碟分區;
卷組(vg,volume group): 由一個或多個實體卷(pv)組成的整體;
邏輯卷(lv,logical volume): 從卷組(vg)中切割出的空間來用于建立檔案系統,大小由pe的個數決定;
基本單元(pe,physical extent):預設為4mb的基本塊。
=============================================================
功能/指令 實體卷管理 卷組管理 邏輯卷管理
掃描 pvscan vgscan lvscan
顯示 pvdisplay vgdisplay lvdisplay
建立 pvcreate vgcreate lvcreate
删除 pvremove vgremove lvremove
擴充 --- vgextend lvextend
--------------------------------------------------------------------------------------------------------------
-- redhat7 配置 lvm (ahern)
添加磁盤,對磁盤進行分區,對要做lvm的分區,選擇類型為8e(即為linux lvm),儲存分區表;
fdisk /dev/sdb --> m->n->p->w
1、建立一個實體卷組
# pvcreate /dev/sdb1
# pvscan (檢視實體卷組指令)
# pvremove /dev/sdb1 (删除實體卷組指令)
2、建立一個邏輯卷組
# vgcreate vgu01 /dev/sdb1 (預設pe為4m)
# vgcreate –s 8m vgu01 /dev/sdb1 (可在建立時指定pe大小為8m)
# vgdisplay vgu01 (檢視邏輯卷組指令)
# vgremove vgu01 (删除邏輯卷組指令)
# vgextend vgu01 /dev/sdb2 (增加實體卷)
# vgreduce vgu01 /dev/sdb2 (删除實體卷)
3、生成邏輯卷 lv
# lvcreate –l 10g –n lvu01 vgu01 (建立大小為 10g 的分區 lv01)
# lvcreate -l 1278 -n lvu01 vgu01 (ok 5g)
# lvcreate –l 200 –n /dev/vgu01/lvu01 (建立大小為200個pe大小的分區/dev/vg0/lv01(即200x4m))
# lvscan (檢視邏輯分區)
4、格式化分區(格式化後 mount 即可正常使用)
# mkfs.xfs /dev/vgu01/lvu01
# mkfs -t ext4 /dev/vgu01/lvu01
5、建立挂載點 (挂載和解除安裝)
# mkdir /u01
# mount /dev/vgu01/lvu01 /u01 (挂載)
# vi /etc/fstab (永久挂載)
/dev/vgu01/lvu01 /u01 xfs defaults 0 0
# df -ht (檢視)
6、擴充分區大小
# lvextend –l +5g –n /dev/vgu01/lvu01 (增加5g)
# lvextend -l +1278 -n /dev/vgu01/lvu01 (增加5g)
# xfs_growfs /dev/vgu01/lvu01 (調整xfs格式分區大小: 雖然xfs檔案系統隻支援增加,不支援減少。但并不是說在xfs系統檔案下不能減小,隻是減小後,需要重新格式化才能挂載上。這樣原來的資料就丢失了!)
# lvextend –l +50 –n /dev/vgu01/lvu01 (增加50個pe)
# resize2fs /dev/vgu01/lvu01 -l 300m (調整ext4格式分區大小)
# lvreduce –l 300m –n /dev/vgu01/lvu01 (減小分區到300m(需先停用分區))
-- oel 6.10
# lvresize -l +1048572 /dev/volgroup/lv_u01
# resize2fs /dev/volgroup/lv_u01
7、停用啟用分區
# lvchange –an /dev/vgu01/lvu01 (停用lv01分區)
# lvchange –ay /dev/vgu01/lvu01 (啟用lv01分區)
8、邏輯卷容量擴充和減少
邏輯卷的容量擴充
# umount /dev/vgu01/lvu01 (umount要擴容的邏輯卷)
# lvextend -l 1g /dev/vgu01/lvu01 (将 lvu01 擴充到1g)
# e2fsck -f /dev/vgu01/lvu01 (檢查磁盤完整性)
# resize2fs /dev/vgu01/lvu01 (重置磁盤容量)
# mount /dev/vgu01/lvu01 /u01 (重新 mount)
邏輯卷的容量減少
# lvreduce -l 500m /dev/vgu01/lvu01 (将 lvu01 減少到500m)
9、快照功能
lvm的邏輯卷具有快照功能可以将邏輯卷的資料儲存為備份、以及快速的資料恢複。
# lvcreate -l 150m -s n snap /dev/vgu01/lvu01 (建立一個150m,名稱為snap的快照)
# lvcreate –l 40m –n /dev/vgu01/lvu01_snap –s /dev/vgu01/lvu01 (建立快照(設定大小為總理的20%))
# lvremove /dev/vgu01/lvu01_snap (删除快照)
10、資料遷移
# pvmove –i 3 /dev/sdb1 /dev/sdb2 (将sdb1資料遷到sdb2上,3秒重新整理一次)
11、檢視 lvm 的指令
pvs,vgs,lvs,pvdisplay,vgdisplay,lvdisplay
12、邏輯卷失效後激活邏輯卷
當找路勁下不到邏輯卷,檢視邏輯卷的時候裝置變成了inactive狀态的問題解決步驟如下:
檢視pv -> 檢視vg -> 檢視lvm -> lvminactive問題解決
-- one.檢視pv
指令:pvdisplay
可以看到pv 名稱、大小、總大小、剩餘空間大小、vg 名稱
-- two.檢視vg
指令:vgdisplay
可以看到vg名稱、格式、大小、總大小、剩餘大小
-- three.檢視lvm
指令:lvdisplay、lvscan
所有lv名稱,狀态、大小,這裡可以看到有個lvm狀态是not available。
同時也可以從lvscan指令掃描lvm看到,lvm狀态是inactive。
-- four.解決
激活vg 指令 vgchange 激活後挂載即可
[root@rac01 ~]# vgchange -ay vg名(vgu01)
4 logical volume(s) in volume group "vg名(vgu01)" now active
使用 lvscan 檢視狀态
-- 附lvm操作的相關指令
-- 實體卷指令
pvcreate 建立lvm實體卷
pvdisplay 顯示已建立的實體卷資訊
pvchange 設定pv的性能,允許或拒絕從這個磁盤上配置設定置另外的pe。
pvmove 在一個卷組中從源到目的移動已經配置設定的pe
pvremove 删除一個實體卷(也就是從實體卷中删除一個lvm标簽)
-- 卷組指令
vgcreate 建立卷組
vgdisplay 顯示卷組的資訊
vgchange 激活或者撤消卷組,允許卷組使用或不使用quorum來挂載
vgchange -a y 激活所有卷組 (開機執行,redhat可在/etc/rc.d/rc.sysinit系統啟動初始化腳本裡可以找到)
vgchange -a n 關閉所有卷組(提示:必須在umount所有的檔案系統後,才能成功執行
vgextend 通過添加磁盤擴充卷組
vgreduce 删除實體卷縮減卷組,vgscan 掃描所有磁盤尋找卷組
vgsync 同步鏡像
remove 删除卷組
vgexport 從系統中删除一個卷組,但不修改在基于實體卷的資訊
vgimport 通過掃描使用vgexport指令輸出的實體卷在系統中增加一個
vgcfgbackup 儲存卷組的配置資訊,記住一個卷組有一個或多個實體卷組成
vgcfgrestore 恢複卷的配置資訊
vgscan 讀取系統中建立的所有卷組
-- 邏輯卷指令
lvcreate 生成邏輯卷
lvdisplay 顯示邏輯卷的資訊
lvchange 改變邏輯卷的特性,包括可用性、排程政策、權限、塊重定位、配置設定政策、鏡像緩存的可用性lvextend 增加邏輯卷的空間
extendfs 擴充檔案系統的大小
lvreduce 減少邏輯卷的空間
lvremove 删除邏輯卷
lvsplit 分割镱像的邏輯卷
lvmerge 合并lvsplit過的邏輯卷
lvsync 同步邏輯卷
lvmmigrate 在一個分區中為邏輯卷遷移準備一個root檔案
lvlnboot 用來建立root,primary swap ,or dump邏輯卷
lvlnboot 删除lvlnboot建立的邏輯卷
-- 其他指令
fdisk -l 檢視系統中都認到了那些實體硬碟
mkfs 基于邏輯卷建立一個相應類型的檔案系統
mkdir -p $mount_piont 建立一個挂載目錄,建立好的檔案系統位于:/dev/$create_vg_name/$lv_name
mount /dev/$create_vg_name/$lv_name $mount_piont 挂載檔案系統