##LVM是什麼? LVM(Logical Volume Manager),即磁盤卷管理,是Linux環境下對磁盤分區進行管理的一種機制。經過LVM能夠很方便的實現:服務器
##LVM原理 LVM是磁盤分區和文件系統之間添加的一個邏輯層,來爲文件系統屏蔽下層磁盤分區佈局,提供一個抽象的盤卷,在盤捲上創建文件系統。 LVM架構以下: 架構
如下操做前請肯定保存好硬盤中的數據。。。。app
首先安裝LVM(以Debian爲例)佈局
sudo apt-get install lvm2
性能
將硬盤初始化爲物理卷 在建立卷組前,首先要將硬盤初始化成物理卷已供LVM使用。code
pvcreate /dev/sda /dev/sdb /dev/sdc2
ip
能夠經過pvdisplay或者pvs來查看已經建立的物理卷信息。rem
建立卷組 將已經建立的物理卷整合成爲一個卷組get
vgcreate mydisk /dev/sda /dev/sdb /dev/sdc2
vgcreate能夠經過-s選項來改變PE的默認大小,大小必須是2的階乘,最小爲1kb。 一樣能夠經過vgdisplay和vgs來查看卷組信息。 能夠發現/dev/多了一個mydisk文件夾效率
建立邏輯卷
lvcreate -n MyRoot -L +14G mydisk
這樣就建立了名字爲MyRoot的邏輯卷,塊設備文件默認爲/dev/mydisk/MyRoot(其是一個鏈接,指向/dev/mapper/的同名文件)。 一樣可使用lvs和lvdisplay來查看邏輯卷的狀況。
PS 若是過須要條塊化,請參閱7
在邏輯捲上建立分區 邏輯卷建立完成後就能夠當成普通的塊文件來使用。
mkfs.ext4 /dev/mydisk/MyRoot
掛載使用 掛載到合適的位置。 mount /dev/mydisk/MyRoot/ /mnt/MySecret
條塊化I/O LVM條塊化是LVM功能之一,該技術會跨多個磁盤寫入數據,而不是對單一物理卷持續寫入。條塊化優勢以下:
建立lv的時候能夠加上-i[number]選項就可使用條塊化方法,若是須要可使用-I選項聲明條塊尺寸,一樣必須是2的階乘,可是不能超過PE的大小。
##LVM的伸展 LVM能夠實如今線擴大分區容量,也就是說,若是分區的空間不夠用了,能夠隨時擴大而不用下線。 從下至上
初始化要添加的物理分區或硬盤,同上。
擴展卷組 將一個硬盤或者物理分區添加到卷組之中。 vgextend mydisk /dev/sdd
擴展邏輯卷 擴大邏輯卷 lvextend -L +1G /dev/mydisk/MyRoot
注意擴大的單位可使用必定不要超過VG的剩餘空間。
更新文件系統 resizefs /dev/mydisk/MyRoot #ext二、ext三、ext4
xfs_growfs /dev/mydisk/MyRoot #XFS
簡單而優雅。
##LVM的縮小 LVM縮小操做必須離線,並且必定要備份數據 相比伸展,LVM的縮小操做就有必定的風險了,必定要當心。 自上而下
umount /mnt/MySecret
resize2fs /dev/mydisk/MyRoot 1G #將文件系統改變爲1G,請肯定已存在的文件體積小於1G
e2fsck -f /dev/mydisk/MyRoot
lvreduce -L -1G /dev/mydisk/MyRoot #將MyRoot縮小成1G
mount /dev/mydisk/MyRoot /mnt/MySecret
必定要當心謹慎。。##縮小卷組 縮小卷組其實就是將物理硬盤移出卷組,移出前必定要保證移出的物理硬盤是空的。若是使用了條塊化I/O的化,備份數據吧(求大神指教)。 vgreduce mydisk /dev/sda
vgreduck -a mydisk #自動移除空的卷
##刪除LVM 由上至下。。
1.刪除LV lvremove /dev/mydisk/MyRoot
2.刪除VG vgremove mydisk 3.刪除PV
pvremove /dev/sda`
##LVM快照
LVM快照是以空間換時間時間的方式製做的lvm卷副本。它只在lvm中工做,並只在源邏輯捲髮生改變時佔用快照卷的空間。若是源卷的變化達到1GB這麼大,快照卷一樣也會產生這樣大的改變。於是,對於空間有效利用的最佳途徑,就是老是進行小的修改。若是快照將存儲空間消耗殆盡,咱們可使用lvextend來擴容。而若是咱們須要縮減快照所佔用卷的大小,可使用lvreduce。
說白了快照就是保存變化前的文件,因此快照不能用於備份,它並非完整的副本,因此當遇到硬盤物理損壞等非正常情況是沒法恢復的。
步驟:
vgdisplay
信息裏的Free PE/Size項)來建立快照,沒有的話請參考上面擴容部分擴容。2.建立快照
lvcreate --size 1G --snapshot --name my_snap /dev/mydisk/MyRoot
驗證快照 使用lvs
查看,會發現多了一個my_snap,而它的origin欄對應着MyRoot,這就是存放快照的卷,能夠經過df -Th
來查看佔用的空間。
擴充快照 在使用過程當中可能發生空間不夠用的狀況,這時候請必定在空間佔慢前擴充快照的空間,也就是其邏輯卷的空間(參考上文)。
快照恢復 恢復操做是沒法在線的。 首先要卸載要回復的物理卷,而後在進行合併操做。
umount /mnt/MyRoot lvconvert --merge /dev/mydisk/my_snap
在合併完成後,快照卷將被自動移除。
##LVM遷移
LVM遷移是LVM衆多優秀特性之一,經過它,咱們能夠遷移邏輯捲到一個新的磁盤而不會丟失數據,也不用關機操做。該特性的功能是將數據從舊磁盤移動到新磁盤。一般,咱們只是在一些磁盤發生錯誤時,纔將數據從一個磁盤遷移到另一個磁盤存儲。 特色:
###方法一:
df -h
和lvdisplay
和vgdisplay
查看磁盤和LVM狀態2.在要遷移到的硬盤/分區上建立物理卷
`pvcreate /dev/sdc1`
添加到已有卷組
` vgextend mydisk /dev/sdc1` `vgs`
建立鏡像到新物理卷
`lvconvert -m 1 /dev/mydisk/MyRoot /dev/sdc1`
-m爲--mirror的縮寫,數字是表示鏡像份數,過程時間稍長。。
驗證鏡像
lvs -o+devices
刪除原鏡像 這時候MyRoot對應者/dev/sdc1的鏡像和對應原來的多個物理卷組成的鏡像。要將原來的移除,要先刪除原來的鏡像
lvconvert -m 0 /dev/mydisk/MyRoot
0即移除。
###方法2 方法一第三步日後:直接使用`pvmove /dev/mydisk/MyRoot /dev/sdc1 方法一的意義在於,服務器環境LVM通常會有不少鏡像,相似raid 1,直接建立鏡像要快的多。(聽人說的,待肯定)