LVM是在磁盤分區和文件系統之間添加的一個邏輯層,來爲文件系統屏蔽下層磁盤分區佈局,提供一個抽象的盤卷,在盤捲上建 立文件系統。首先我們討論以下幾個LVM術語:
*物理存儲介質(
*物理卷(physical volume,PV)
物理卷就是指硬盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
*卷組(Volume Group,VG)
LVM卷組類似於非LVM系統中的物理硬盤,其由物理卷組成。可以在卷組上創建一個或多個“LVM分區”(邏輯卷),LVM卷組由一個或多個物理卷組成。
*邏輯卷(logical volume,LV)
LVM的邏輯卷類似於非LVM系統中的硬盤分區,在邏輯卷之上可以建立文件系統(比如/home或者/usr等)。
*PE(physical extent,PE)
每一個物理卷被劃分爲稱爲PE(PhysicalExtents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認爲4MB。
好了,上面幾個術語是比較重要的,如果還不清楚,可以先谷歌或者百度一下。
1 創建pv
比如我要創建sdb這塊硬盤和sdc1這個硬盤的地一個分區:pvcreate /dev/sdb /dev/sdc1
假設sdb和sdc1都是10g。
要注意,如果創建整個硬盤爲pv的話,那麼這個硬盤必須沒有分區,要不然不會成功,會提示: Device /dev/sdb not found (or ignored by filtering).這個要注意。
查看pv的命令:詳細pv信息:pvdisplay 簡略pv信息:pvs
2 創建vg
vgcreate newvg /dev/sdb /dev/sdc1
這個newvg爲你創建vg的名字,此時就會在/dev/下有一個newvg的目錄,/dev/newvg
查看vg的命令:詳細vg信息:vgdisplay 簡略vg信息:vgs
3 創建lv
lvcreate -n newlv -L 5G newvg
記得這個vg不要加路徑,否則會提示:
Volume group name expected (no slash)
Run `lvcreate --help' for more information.
n後接lv的名字 L後接要創建lv的大小
這時就會在這個newvg目錄下創建了一個newlv文件查看lv命令: 詳細lv信息:lvdisplay 簡略lv信息:lvs
此時你用lvs就可以看到你的lv信息了,但還不能使用,要格式化後纔可以
4 使用lv
mkfs.ext4 /dev/newvg/newlv
掛載並使用
mount /dev/newvg/newlv /mnt
5 擴大lv
擴大lv的操作可以在線進行,意思就是可以不用卸載這個lv設備就可以動態擴充lv大小
lvextend -L +3G /dev/newvg/newlv
要注意,L參數後加要擴充的大小,而且這個大小必須比你的vg剩餘空間要小,你可以先用vgs看一下你的vg剩餘空間是多少。
此時,你用lvs查看已經看到newlv已經變爲8g了,但實際上你用df -h查看發現還是5g,因爲新加的文件系統並沒有被格式化,系統並不識別,所以還得加這樣一行命令
resize2fs /dev/newvg/newlv,這個有可能提示讓你先運行e2fsck -f這個命令先檢查一下磁盤。
好了,現在df -h查看你的newlv是不是已經變爲8g了呢!
6 擴大vg
比如我現在想把/dev/sdc2 這個分區加到newvg裏來,假設這個分區爲20g,該怎麼實現呢?
創建pv: pvcreate /dev/sdc2
擴大vg: vgextend /dev/sdc2
好了,vg已經擴容完畢了,執行vgs查看一下,發現newvg已經變爲40g了,但是空餘的空間只有32G,因爲之前的newpv已經佔 用了8g了
7 減小lv
這個操作不常用,而且需要注意的一點是,這個操作必須離線進行,也就是說你要先卸載要操作的lv設備,不然數據會 丟失
好了,先卸載:umount /dev/newvg/newlv
然後再減小格式化的系統文件:reszie2fs /dev/newvg/newlv 5G 這個後面跟的是你要減小爲多大
然後減小lv大小:lvreduce -L -3G /dev/newvg/newlv這個L後跟你要減小多少(注意和上面的區別),而且要注意的是,這個減 小後剩餘的空間絕對不能比上面resize2fs後剩餘的空間小,一般這個剩餘的空間會比上面resize後剩餘的空間大 1G作爲緩衝區,因爲有些系統換算單位不一樣,我這裏讓他們相等,不過做實驗的時候最好大1g比較好。
查看lvs,並掛載: mount/dev/newvg/newlv /mnt
8 減小vg
比如我現在要把sdc2這個分區拿出來,可以這麼做:
vgreduce newvg /dev/sdc2
發現了沒,對vg操作都不要加路徑!!!
要注意的是:你要保證你當前的這個分區並沒有lv在使用,纔可以減小,否則會提示Please enter physical volume paths or option -a Run `vgreduce --help' for more information.
9 取消pv
pvremove /dev/sdc2 這個沒什麼說的
最後要說的就是,lvm並不受操作系統限制,把這兩塊硬盤放到別的電腦上,照樣會有一個newlv的lv。lvm和操作系統無關。
好了,今天lvm教程就講這麼多,明天來寫一下acl的權限機制