1. 程式人生 > >linux之LVM邏輯卷

linux之LVM邏輯卷

lvm邏輯卷的作用
LVM(logic volum manage):邏輯卷管理,由於一個物理儲存裝置的儲存空間固定且有限,而當需要一個指定大小的儲存空間時,顯然不可能去定製一個指定大小的硬碟,此時我們就可以使用LVM。
物理卷:pv(physcial volume)普通的直接訪問的儲存裝置
物理卷組:vg(volume group)有限個物理卷的集合
邏輯卷:lv(logical volume)從VG中拿出的我們想要的儲存空間
pe(physcial extend):物理盤區,將物理卷加入到卷組後,這個物理卷提供的物理空間會被分號成塊,成為pe


一,LVM邏輯卷

LVM是pe的整數倍  pe是lvm的最小儲存單元  物理擴充套件
pvs(物理卷),vgs(物理組),lvs(邏輯卷)

監控命令:
watch -n 1 'pvs;echo +++++;vgs;echo +++++;lvs;echo +++++;df -h /weixindata'
監控,pvs(物理卷),vgs(物理組),lvs(邏輯卷)

1,建立目錄weixindata
--mkidr /weixindata
2,更改分割槽名稱為linux_LVM (8e)
--fdisk /dev/vdb
--t  ##更改分割槽標籤
--5  ##選擇分割槽編號
--8e ##選擇8e
--p  ##檢視是否更改成功
--wq ##儲存設定
--partprobe  ##手動同部分割槽,讓邏輯卷可用
3,將物理分割槽/dev/vdb5轉化為物理卷
--pvcreate /dev/vdb5
4,將物理卷新增到物理卷組
--vgcreate weixingroup /dev/vdb5
5,從物理卷組拿出一部分,這部分就是邏輯卷,給weixindata目錄50M
--lvcreate -L 50M -n weixindata weixingroup
6,格式化邏輯卷,新增檔案系統為xfs,讓weixindata目錄的50M生效
--mkfs.xfs /dev/weixingroup/weixindata
7,將邏輯卷掛載到/weixindata中
--mount /dev/weixingroup/weixindata /weixindata

監控命令:
watch -n 1 'pvs;echo +++++;vgs;echo +++++;lvs;echo +++++;df -h /weixindata'
監控,pvs(物理卷),vgs(物理組),lvs(邏輯卷)

1,建立目錄weixindata
--mkidr /weixindata
2,更改分割槽名稱為linux_LVM (8e)
--fdisk /dev/vdb
--t  ##更改分割槽標籤
--5  ##選擇分割槽編號
--8e ##選擇8e
--p  ##檢視是否更改成功
--wq ##儲存設定
--partprobe  ##手動同部分割槽,讓邏輯卷可用
3,將物理分割槽/dev/vdb5轉化為物理卷
--pvcreate /dev/vdb5
4,將物理卷新增到物理卷組
--vgcreate weixingroup /dev/vdb5
5,從物理卷組拿出一部分,這部分就是邏輯卷,給weixindata目錄50M
--lvcreate -L 50M -n weixindata weixingroup
6,格式化邏輯卷,新增檔案系統為xfs,讓weixindata目錄的50M生效
--mkfs.xfs /dev/weixingroup/weixindata
7,將邏輯卷掛載到/weixindata中
--mount /dev/weixingroup/weixindata /weixindata

二,裝置的拉伸

監控命令:
watch -n 1 'pvs;echo +++++;vgs;echo +++++;lvs;echo +++++;df -h /weixindata'

1,拉伸weixindata儲存空間為90M
--lvextend -L 90M /dev/weixingroup/weixindata
2,使得給weixindata的90M生效
--xfs_growfs /dev/weixingroup/weixindata
此時的/dev/vdb5的100M已經全部給weixindata目錄了,如果還要拉伸空間,需要新建立一個分割槽,把這個分割槽可以加給weixindata
3,建立新的分割槽
--fdisk /dev/vdb
--partprobe
4,將物理分割槽/dev/vdb6轉化為物理卷
--pvcreate /dev/vdb6
5,將物理卷/dev/vdb6新增到物理卷組weixingroup中
--vgextend weixingroup /dev/vdb6
6,從物理卷組拿出一部分,這部分就是邏輯卷,給weixindata目錄150M
--lvextend -L 150M /dev/weixingroup/weixindata
7,格式化邏輯卷,讓給weixindata目錄的150M生效
--xfs_growfs /dev/weixingroup/weixindata

監控命令:
watch -n 1 'pvs;echo +++++;vgs;echo +++++;lvs;echo +++++;df -h /weixindata'

1,拉伸weixindata儲存空間為90M
--lvextend -L 90M /dev/weixingroup/weixindata
2,使得給weixindata的90M生效
--xfs_growfs /dev/weixingroup/weixindata
此時的/dev/vdb5的100M已經全部給weixindata目錄了,如果還要拉伸空間,需要新建立一個分割槽,把這個分割槽可以加給weixindata
3,建立新的分割槽
--fdisk /dev/vdb
--partprobe
4,將物理分割槽/dev/vdb6轉化為物理卷
--pvcreate /dev/vdb6
5,將物理卷/dev/vdb6新增到物理卷組weixingroup中
--vgextend weixingroup /dev/vdb6
6,從物理卷組拿出一部分,這部分就是邏輯卷,給weixindata目錄150M
--lvextend -L 150M /dev/weixingroup/weixindata
7,格式化邏輯卷,讓給weixindata目錄的150M生效
--xfs_growfs /dev/weixingroup/weixindata

注:xfs檔案系統只支援擴充套件,不支援縮減

三,將檔案系統改為ext4,並擴充套件
改變檔案系統時,必須先解除安裝

監控命令:
watch -n 1 'pvs;echo +++++;vgs;echo +++++;lvs;echo +++++;df -h /weixindata'

1,先解除安裝之前xfs時的掛載
--umount /weixindata/
2,新增檔案系統為ext4
--mkfs.ext4 /dev/weixingroup/weixindata
3,掛載
--mount /dev/weixingroup/weixindata /weixindata/
4,擴充套件weixindata為160M
--lvextend -L 160M /dev/weixingroup/weixindata
5,使給weixindata的160M生效
--resize2fs /dev/weixingroup/weixindata

監控命令:
watch -n 1 'pvs;echo +++++;vgs;echo +++++;lvs;echo +++++;df -h /weixindata'

1,先解除安裝之前xfs時的掛載
--umount /weixindata/
2,新增檔案系統為ext4
--mkfs.ext4 /dev/weixingroup/weixindata
3,掛載
--mount /dev/weixingroup/weixindata /weixindata/
4,擴充套件weixindata為160M
--lvextend -L 160M /dev/weixingroup/weixindata
5,使給weixindata的160M生效
--resize2fs /dev/weixingroup/weixindata


四,裝置的縮減
注:必須先解除安裝。先縮小軟體(檔案系統),再縮小硬體

監控命令:
watch -n 1 'pvs;echo +++++;vgs;echo +++++;lvs;echo +++++;df -h /weixindata'

1,解除安裝
--umount /weixindata/
2,掃描,防止縮小到儲存不了本來擁有的內容
--e2fsck -f /dev/weixingroup/weixindata 
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/weixingroup/weixindata: 11/40960 files (0.0% non-contiguous), 10825/163840 blocks

3,縮小weixindata檔案系統為50M
--resize2fs /dev/weixingroup/weixindata 50M
4,掛載,使縮小的檔案系統生效
--mount /dev/weixingroup/weixindata /weixindata/
5,縮小邏輯卷50M
--lvreduce -L 50M /dev/weixingroup/weixindata 

監控命令:
watch -n 1 'pvs;echo +++++;vgs;echo +++++;lvs;echo +++++;df -h /weixindata'

1,解除安裝
--umount /weixindata/
2,掃描,防止縮小到儲存不了本來擁有的內容
--e2fsck -f /dev/weixingroup/weixindata
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/weixingroup/weixindata: 11/40960 files (0.0% non-contiguous), 10825/163840 blocks

3,縮小weixindata檔案系統為50M
--resize2fs /dev/weixingroup/weixindata 50M
4,掛載,使縮小的檔案系統生效
--mount /dev/weixingroup/weixindata /weixindata/
5,縮小邏輯卷50M
--lvreduce -L 50M /dev/weixingroup/weixindata


五,移除物理卷

1,如果要移除/dev/vdb5物理卷,需要把/dev/vdb5物理卷的內容移到/dev/vdb6,如果沒有內容,跳過此步
-- pvmove /dev/vdb5 /dev/vdb6
2,移除/dev/vdb5的物理卷組
--vgreduce weixingroup /dev/vdb5
3,移除物理卷
--pvremove /dev/vdb5


1,如果要移除/dev/vdb5物理卷,需要把/dev/vdb5物理卷的內容移到/dev/vdb6,如果沒有內容,跳過此步
-- pvmove /dev/vdb5 /dev/vdb6
2,移除/dev/vdb5的物理卷組
--vgreduce weixingroup /dev/vdb5
3,移除物理卷
--pvremove /dev/vdb5

六,裝置(邏輯卷)的快照

1,在weixindata建立10個檔案
--cd /weixindata
--touch weixindate{1..10}
--ls
2,生成邏輯卷的快照weixindata_backup,模板為/dev/weixingroup/weixindata
--lvcreate -L 20M -n weixindata_backup -s /dev/weixingroup/weixindata
3,掛載快照
--mount /dev/weixingroup/weixindata_backup /weixindata/
--df   ##檢視是否掛載成功
4,進入掛載目錄檢視是否有之前建立的檔案
--cd /weixindata/
--ls  ##有檔案
--rm -rf *
--ls  ##刪除檔案

如何恢復快照裡的檔案?
1,解除安裝weixindata
--umount /weixindata/
2,移除上一步的快照
--lvremove /dev/weixingroup/weixindata_backup 
3,再次生成快照
--lvcreate -L 20M -n weixindata_backup -s /dev/weixingroup/weixindata
4,掛載快照
--mount /dev/weixingroup/weixindata_backup /weixindata/
5,檢視掛載目錄看是否有檔案
--ls /weixindata/  ##有建立的檔案


1,在weixindata建立10個檔案
--cd /weixindata
--touch weixindate{1..10}
--ls
2,生成邏輯卷的快照weixindata_backup,模板為/dev/weixingroup/weixindata
--lvcreate -L 20M -n weixindata_backup -s /dev/weixingroup/weixindata
3,掛載快照
--mount /dev/weixingroup/weixindata_backup /weixindata/
--df   ##檢視是否掛載成功
4,進入掛載目錄檢視是否有之前建立的檔案
--cd /weixindata/
--ls  ##有檔案
--rm -rf *
--ls  ##刪除檔案

如何恢復快照裡的檔案?
1,解除安裝weixindata
--umount /weixindata/
2,移除上一步的快照
--lvremove /dev/weixingroup/weixindata_backup
3,再次生成快照
--lvcreate -L 20M -n weixindata_backup -s /dev/weixingroup/weixindata
4,掛載快照
--mount /dev/weixingroup/weixindata_backup /weixindata/
5,檢視掛載目錄看是否有檔案
--ls /weixindata/  ##有建立的檔案

兩個邏輯卷部分錯誤的解決辦法:

1,邏輯卷正使用的時候,刪除邏輯卷vdb5之前的(vdb6會變成了vdb5),vgs報錯的解決辦法
--fdisk /dev/vdb
--d
--5
--wq
--partprobe
--vgs  會報錯
解決方法:
--vgreduce --help   ##檢視如何使用vgreduce恢復命令
--vgreduce --removemissing weixingroup  ##恢復物理卷組,vgs不再報錯
--vgs

2,如果配置檔案寫錯了/etc/fstab,reboot無法重啟
reboot就會出現報錯。
先輸入超級使用者密碼,得到一個shell視窗,先將錯誤的配置檔案註釋掉
--vim /etc/fstab  ##把錯誤的改回來


1,邏輯卷正使用的時候,刪除邏輯卷vdb5(之前的vdb6會變成了vdb5),vgs報錯的解決辦法
--fdisk /dev/vdb
--d
--5
--wq
--partprobe
--vgs  會報錯
解決方法:
--vgreduce --help   ##檢視如何使用vgreduce恢復命令
--vgreduce --removemissing weixingroup  ##恢復物理卷組,vgs不再報錯
--vgs

2,如果配置檔案寫錯了/etc/fstab,reboot無法重啟
reboot就會出現報錯。
先輸入超級使用者密碼,得到一個shell視窗,先將錯誤的配置檔案註釋掉
--vim /etc/fstab  ##把錯誤的改回來


七,刪除邏輯卷及相關資訊

1,lvs(檢視邏輯卷有哪些)
2,移除快照
--umount /weixindata/
--lvremove /dev/weixingroup/weixindata_backup 
--lvremove /dev/weixingroup/weixindata
3,移除物理卷組
--vgremove weixingroup 
4,移除物理卷
--pvremove /dev/vdb{5,6}
5,pvs(檢視物理卷還有哪些)  ##檢視是否移除錯誤
6,在這裡再刪除物理分割槽
--fdisk /dev/vdb  ##刪除物理分割槽 
--partprobe       ##手動同步分割槽


1,lvs(檢視邏輯卷有哪些)
2,移除快照
--umount /weixindata/
--lvremove /dev/weixingroup/weixindata_backup
--lvremove /dev/weixingroup/weixindata
3,移除物理卷組
--vgremove weixingroup
4,移除物理卷
--pvremove /dev/vdb{5,6}
5,pvs(檢視物理卷還有哪些)  ##檢視是否移除錯誤
6,在這裡再刪除物理分割槽
--fdisk /dev/vdb  ##刪除物理分割槽
--partprobe       ##手動同步分割槽

八,修改pe大小(pe是lvm的最小儲存單元)

--man vgcreat  /-S 檢視pe的預設大小
--vgcreate -s 16m vg0 /dev/vdb5  ##指定/dev/vdb5分割槽pe的大小
--vgdisplay  ##檢視pe大小
--vgremove  vg0  ##因為指定時已經設定了vg0,所以先移除掉,才可以進行一步
檢視預設pe大小:
--vgcreate  vg0 /dev/vdb5
--vgdisplay  ##檢視pe大小


--man vgcreat  /-S 檢視pe的預設大小
--vgcreate -s 16m vg0 /dev/vdb5  ##指定/dev/vdb5分割槽pe的大小
--vgdisplay  ##檢視pe大小
--vgremove  vg0  ##因為指定時已經設定了vg0,所以先移除掉,才可以進行一步
檢視預設pe大小:
--vgcreate  vg0 /dev/vdb5
--vgdisplay  ##檢視pe大小

九,更改磁碟分割槽表型別

1,刪除之前所有的磁碟分割槽
--fdisk /dev/vdb
--d
--wq儲存
--partprobe  ##手動同步分割槽列表

2,
--parted /dev/vdb
--輸入help
--輸入mklabel 再按兩下tab,檢視修改的磁碟分割槽表型別,
--輸入gpt    ##提示是否覆蓋資料
--輸入yes
--quit      ##退出
--fdisk -l  ##檢視/dev/vdb的磁碟分割槽是否改為gpt


1,刪除之前所有的磁碟分割槽
--fdisk /dev/vdb
--d
--wq儲存
--partprobe  ##手動同步分割槽列表

2,
--parted /dev/vdb
--輸入help
--輸入mklabel 再按兩下tab,檢視修改的磁碟分割槽表型別,
--輸入gpt    ##提示是否覆蓋資料
--輸入yes
--quit      ##退出
--fdisk -l  ##檢視/dev/vdb的磁碟分割槽是否改為gpt