一,LVM概述:
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制,它由Heinz Mauelshagen在Linux 2.4內核上實現,目前最新版本爲:穩定版1.0.5,開發版 1.1.0-rc2,以及LVM2開發版。
LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。前面談到,LVM是在磁盤分區和文件系統之間添加的一個邏輯層,來爲文件系統屏蔽下層磁盤分區佈局,提供一個抽象的盤卷,在盤捲上建立文件系統。物理卷(physical volume)物理卷就是指硬盤分區或從邏輯上與磁盤分區具有同樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。
Linux用戶安裝Linux操作系統時遇到的一個最常見的難以決定的問題就是如何正確地給評估各分區大小,以分配合適的硬盤空間。而遇到出現 某個分區空間耗盡時,解決的方法通常是使用符號鏈接,或者使用調整分區大小的工具(比如PatitionMagic等),但這都只是暫時解決辦法,沒有根本解決問題。隨着Linux的邏輯盤卷管理功能的出現,這些問題都迎刃而解,用戶在無需停機的情況下方便地調整各個分區大小。
通過LVM系統管理員可以輕鬆管理磁盤分區,如:將若干個磁盤分區連接爲一個整塊的卷組 (volumegroup),形成一個存儲池。管理員可以在卷組上隨意創建邏輯卷組(logicalvolumes),並進一步在邏輯卷組上創建文件系統。管理員通過LVM可以方便的調整存儲卷組的大小,並且可以對磁盤存儲按照組的方式進行命名、管理和分配,例如按照使用用途進行定義:“development”和“sales”,而不是使用物理磁盤名“sda”和“sdb”。而且當系統添加了新的磁盤,通過LVM管理員就不必將磁盤的 文件移動到新的磁盤上以充分利用新的存儲空間,而是直接擴展文件系統跨越磁盤即可。
二,安裝LVM
#rpm -qa | grep lvm
lvm2-2.02.88-7.el5
三,創建管理LVM
要創建一個LVM,需要以下一個命令步驟:
1,fdisk -l
分區工具可以看到未分區的磁盤,比如sdb
2,fdisk /dev/sdb 進入分區界面
m,相當於help
n,分區
p,查看分區
d,刪除分區
t,指定分區系統類型:LVM:8e linux:83 swap:82 因爲我們現在做的是LVM,所以一定要指定類型8e
w,保存退出
q, 不保存退出
#partprobe 不需要重啓系統即可刷新磁盤分區表
3,創建PV,轉換成PV
#pvcreate /dev/sdb1
#pvdisplay 查看
4,創建VG
#vgcreate VG_name /dev/sdb1也可以是已經存在的卷組名,同一VG名下的多個PV構成一個VG
#vgdisplay
5,劃分LV
#lvcreate -L 10G -n LV-name VG-name 在VG裏劃分出一個LV,其中:-L:指定LV的大小 -n:指定LV的名。
#lvdisplay
6,LV格式化&掛載
#mkfs -t(或mkfs.ext3) ext3 /dev/VG-name/LV-name
#mount /dev/VG-name/LV-name /data #掛載之後,分區即可使用
7,將物理卷還原成普通分區
#pvremove /dev/sdb1 保證此磁盤沒有使用,也就是說先lvremove,再vgremove,最後在pvremove
8,減少邏輯卷大小
#umount /data 先卸載
#e2fsck –f /dev/VG-name/LV-name 檢查文件系統的完整性
#resize2fs /dev/VG-name/LV-name 1G 將文件系統減小1G
#lvchange –an /dev/VG-name/LV-name 關閉邏輯卷 就cd不到LV的路徑了
#lvreduce –L -1G /dev/VG-name/LV-name 減小Vol01邏輯卷1G的空間
#lvchange –ay /dev/VG-name/LV-name 打開邏輯卷
注:如果不做lvchange操作而直接做減小邏輯卷,可能會導致數據寸壞,數據無價。文件系統大小和邏輯卷大小一定要保持一致才行。如果邏輯卷大於文件系統,由於部分區域未格式化成文件系統會造成空間的浪費。如果邏輯卷小於文件系統,數據就出問題了。
#lvs 查看LV-name的大小已減少1G爲
四,擴容當前分區
1,首先創建一個新的分區,以上步驟只操作步驟1,之後格式化
#mkfs -t ext3 /dev/sdc1
#partx /dev/sdb查看磁盤分區及使用情況
2,創建PV,擴容VG,LV
#pvcreate /dev/sdc1
#vgextend VG-name New_disk(比如/dev/sdc1)
#lvextend -L +100G /dev/VG-name/LV-name
#resize2fs /dev/VG-name/LV-name 執行重設大小,df才能生效