LVM - Logical Volume Manager 是Linux系統下最強大的磁碟管理技術之一.它將您從不得不思考物理容量中解脫出來,代之以邏輯形式來思考這些容量. 當您需要考慮如何替使用者資料和系統檔案分配空間的時候,LVM可以讓您徹底忘記傳統的分區做法.
簡單地來說,LVM就是將眾多物理裝置群組合成一個大的虛擬設備,使用者只需思考如何在虛擬設備上做傳統的空間分配策略,而將物理裝置的管理交由LVM自己去處理.這個由物理裝置群組合所成的虛擬設備稱為卷組(Volume Group),簡稱為VG;而使用者在卷組VG上所劃分的磁碟空間則稱為邏輯卷(Logical Volume),簡稱為LV;而原始物理裝置必須經過初始化處理才能加入卷組集合,這種經過特別處理的原始裝置或磁碟空間則稱為物理卷(Physical Volume),簡稱為PV.
LVM磁碟空間管理系統允許您在需要的時候重新調整大小, 這也就意味著在管理磁碟空間資源方面, 您將獲得極大程度的自由. 基本上這是很有誘惑力的, 但您應該留心硬碟出錯的情況,如果您沒有在LVM管理中為出現這種情況而做好計劃,那麼您可能會丟失大量資料.
LVM 術語:
PV - Physical Volume 物理卷,例如一個硬碟,或一個Software RAID裝置;
VG - Volume Group 卷組,將一組物理卷收集為一個嵌入式管理單元;
LV - Logical Volume 邏輯卷,等同於傳統分區,可看作便準的塊裝置,以容納檔案系統;
PE - Physical Extent 物理塊,劃分物理卷的資料區塊;
LE - Logical Extent 邏輯塊,劃分邏輯卷的資料區塊;
LVM 結構:
為了讓大家瞭解關於LVM的概念和結構.實現方式等.作者花了整整一天時間畫了一個圖.
突然發現自己的”設計”水準很前衛很潮流. (誰說圖片不好看誰就不要看文章了! :-))
說明: /boot 這個掛載分區不能存在於VG卷組裡.所以我們一般是建議單獨分區.
使用LVM的基本步驟如下:
1. 安裝lvm2 (apt-get install lvm2)
2. 使用fdisk分區指定的物理硬碟
3. 使用lvm管理工具進行lvm配置 (建立PV / VG / LV)
4. 格式化已經設定好的LV邏輯卷.掛載到指定目錄.
5. 關於如何增加/刪除/修改LV邏輯卷大小.請期待第2季.
LVM 配置步驟:
// 查看物理磁碟狀態 - 硬碟(容量1GB) /dev/sdb 已經識別
Debian:/home/reistlin#fdisk -l
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0×0002db3a
Device Boot Start End Blocks Id System
/dev/sda1 1 1033 8297541 83 Linux
/dev/sda2 1034 1305 2184840 82 Linux swap / Solaris
Disk /dev/sdb: 1073 MB, 1073741824 bytes
128 heads, 32 sectors/track, 512 cylinders
Units = cylinders of 4096 * 512 = 2097152 bytes
Disk identifier: 0×00000000
Disk /dev/sdb doesn’t contain a valid partition table
// 使用 fdisk 對 /dev/sdb 分區
Debian:/home/reistlin#fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0×4e896764.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.
Warning: invalid flag 0×0000 of partition table 4 will be corrected by w(rite)
Command (m for help):new
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4):1
First cylinder (1-512, default1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-512, default512):
Using default value 512
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition’s system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
// 查看分區後的物理磁碟資訊 - /dev/sdb1 狀態正常
Debian:/home/reistlin#fdisk -l
Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0×0002db3a
Device Boot Start End Blocks Id System
/dev/sda1 1 1033 8297541 83 Linux
/dev/sda2 1034 1305 2184840 82 Linux swap / Solaris
Disk /dev/sdb: 1073 MB, 1073741824 bytes
128 heads, 32 sectors/track, 512 cylinders
Units = cylinders of 4096 * 512 = 2097152 bytes
Disk identifier: 0×4e896764
Device Boot Start End Blocks Id System
/dev/sdb1 1 512 1048560 83 Linux