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