想象乙個情況,我們在當初規劃主機的時候將/home分配了50g空間,等到使用者眾多之後導致這個filesystem不夠大,此時我們該怎麼做呢?通常做法是這樣的:再加一顆新硬碟,然後重新分割、格式化,將/home的資料完整的複製過來,然後將原本的partition解除安裝重新掛載新的partition。整個過程較為繁瑣。若是第二次分割給的容量太多,導致很多磁碟容量被浪費了,又想將這個partition縮小時,該如何操作?將上述的流程再做一遍?有沒有更簡單的方法呢?有的!那就是lvm。
lvm(logical volume manager, 邏輯卷管理器),我們使用的是版本2,lvm的型別編號為8e。lvm的重點在於可以彈性的調整filesystem的容量,而並非在於資料的儲存效率及安全方面,提高檔案的讀寫效率和資料的可靠性是raid所考慮的問題。lvm可以整合多個實體partition在一起,讓這些partitions看起來就像是乙個磁碟一樣。而且還可以在未來新增或移除其他的實體partition到這個lvm管理的磁碟當中。如此一來,整個磁碟空間的使用實在是相當的具有彈性。
/dev/vg_name/lv_name,如:/dev/vol0/root。
接下來我們就通過示例來看看如何去實現lvm邏輯卷的管理。
(1)建立pv
與pv相關的一些管理命令有:pvcreate,pvdisplay,pvs,pvscan,pvremove,pvmove。
pvcreate:pvcreate /dev/device
:將實體partition建立成為pv。
pvscan:搜尋目前系統裡面任何具有pv的磁碟。
pvs:簡要pv資訊顯示;
pvdisplay:顯示pv的詳細資訊;
pvremove:將pv屬性移除,讓該partition不具有pv屬性。
先準備塊裝置,調整其id為8e;
然後建立pv:pvcreate [-f] /dev/sda
檢視pv資訊:pvdisplay [/dev/sda
(2)建立vg
與vg相關的一些管理命令有:
vgcreate:主要建立vg的命令,引數比較多。
vgscan:搜尋系統上面是否有vg存在。
vgdisplay:顯示目前系統上面的vg狀態。
vgextend:在vg內新增額外的pv。
vgreduce:在vg內移除pv。
vgchange:配置vg是否啟動(active)。
vgremove:刪除乙個vg。
vgs:簡要vg資訊顯示;
vgdisplay:顯示vg的詳細資訊;
vgcreate [-s #[kkmmggttppee]] [-t|--test] [-v|--verbose] volumegroupname physicaldevicepath [physicaldevicepath...]
vgextend volumegroupname physicaldevicepath [physicaldevicepath...]
vgreduce volumegroupname physicaldevicepath [physicaldevicepath...]
(需要先做pvmove)
vgremove
:刪除捲組
vgcreate myvg /dev/sda3
vgextend myvg /dev/sda5 將/dev/sda5加入myvg中;
pvmove /dev/sda5 移動/dev/sda5
vgreduce myvg /dev/sda5
(3)建立lv
與lv相關的一些管理命令有:
lvcreate:建立lv。
lvscan:查詢系統上面的lv。
lvs:簡要lv資訊顯示。
lvdisplay:顯示lv的詳細資訊。
lvextend:在lv裡面新增容量。
lvreduce:在lv裡面減少容量。
lvremove:刪除乙個lv。
lvresize:對lv進行容量大小的調整。
lvcreate -l #[bbsskkmmggttppee] [-n|--name logicalvolume] vg_name
例如:lvcreate -l 10g -n magedulv mageduvg
lvremove /dev/vg_name/lv_name
:刪除邏輯卷
(4)擴充套件邏輯卷
用fdisk配置新的具有8e system id的partition。
利用pvcreate建立pv。
利用vgextend將pv加入我們的mageduvg。
利用lvresize將新加入的pv內的pe加入magedulv中。
通過resize2fs將檔案系統的容量增加。
# lvextend -l [+]#[mmggtt] /dev/vg_name/lv_name
: 修改物理邊界(分割槽的物理空間);
# resize2fs /dev/vg_name/lv_name
:修改邏輯邊界(檔案系統大小),不指定大小代表使用該分割槽物理空間上所有可用大小;
(5)縮減邏輯卷
# umount /dev/vg_name/lv_name
:解除安裝已經掛載的lv;
# e2fsck -f /dev/vg_name/lv_name
:檔案系統強制檢測和修復;
# resize2fs /dev/vg_name/lv_name #[mmggtt]
:縮減邏輯邊界(檔案系統大小);
# lvreduce -l [-]#[mmggtt] /dev/vg_name/lv_name
:縮減邏輯卷大小(物理邊界、分割槽的物理空間);
# mount /dev/vg_name/lv_name /mnt/lvm
:重新掛載縮減後的lv。
(6)lv的掛載
要想真正的使用lvm就必須對lv進行格式化掛載。
mkfs -t ext3 /dev/mageduvg/magedulv
mkdir /mnt/lvm
mount /dev/mageduvg/magedulv /mnt/lvm
(1)lvm快照概述
快照就是將當前的系統資料記錄下來,在未來若有資料變動,則會將變更前的資料放在快照區進行儲存,那麼快照區將有兩部分組成:變更之前的資料和未變更的資料。lvm的系統快照只備份有變更的資料,檔案系統內沒有變動的資料依舊儲存在原本的區塊內,因此通過lvm快照備份下來的資料所占用的容量非常小。由於快照區與原本的lv共享很多pe塊,因此快照卷與原卷必須在同乙個卷組中。
(2)lvm快照操作
建立快照:lvcreate -l #[mmggtt] -p r -s -n snapshot_lv_name original_lv_name
snapshot_lv_name:快照卷名字,original_lv_name:原卷名字。
示例如下:
建立快照:lvcreate -s -l 512m -n mylv-snap -p r /dev/myvg/mylv
顯示資訊:lvdisplay
建立快照目錄:mkdir /mnt/snapshot
掛載快照卷:mount /dev/myvg/mylv-snap /mnt/snapshot
umount /mnt
:解除安裝快照卷
lvremove /dev/myvg/mylv-snap
:刪除快照卷
umount /backup
:解除安裝原卷
lvremove /dev/myvg/mylv
:刪除原卷
vgremove myvg
:刪除原卷組
pvremove /dev/sda3
:刪除物理卷
(3)利用快照恢復資料
注意:所要恢復的資料不能超過快照區的總大小,因為如果變動的資料大小超過了快照區的空間,那麼快照區不能容納所有變動的資料,這時快照功能將失效。
示例:先在原來的lv中寫入一些資料,然後通過lvm的快照功能來恢復到之前的操作。
cp -r /etc /mnt/lvm/
建立乙個資料恢復的臨時目錄:mkdir -pv /tmp/backup
cd /mnt/snapshot
tar -zcf /tmp/backup/lvm.tar.gz *
將快照卷mageduss解除安裝並移除,因為裡面的內容已經備份出來了
5.1umount /mnt/snapshot
5.2lvremove /dev/mageduvg/mageduss
解壓備份出來的檔案,和/mnt/lvm目錄中的資料做對比,檢視是否已經恢復到相關操作之前了。
邏輯卷管理器 LVM
在lvm中,主要有三個概念 到這裡我們可以看出,原本是直接在硬碟上建立分割槽,然後在分割槽上建立檔案系統。使用了lvm後,在其中插入乙個邏輯層,相當於是在一塊邏輯硬碟上建立邏輯分割槽,然後在邏輯分割槽上建立檔案系統。下面是乙個lvm使用的例子 linux下邏輯卷管理器 lvm 的乙個例子 在圖中有兩...
Linux邏輯卷管理器 LVM
通過使用linux的邏輯卷管理器 logical volume manager,lvm 使用者可以在系統執行時動態調整檔案系統的大小,把資料從一塊硬碟重定位到另一塊硬碟,也可以提高i o操作的效能,以及提供冗餘保護,它的快照功能允許使用者對邏輯卷進行實時的備份。對一般使用者來講,使用最多的是動態調整...
LVM邏輯卷管理器 建立
1 磁碟分割槽 使用fdisk fdisk l可以檢視所有的分割槽 3 使用分割槽建立pv pvcreate dev hda 後面接物理分割槽 建立的pv名字為物理分割槽名字 4 建立及增加vg 建立vg vgcreate s 10m g t vgname pvname 例 vgcreate s 1...