一. LVM簡(jiǎn)介
LVM是邏輯卷管理(Logical Volume Manager)的簡(jiǎn)稱,它是Linux環(huán)境下對(duì)磁盤分區(qū)進(jìn)行管理的一種機(jī)制,LVM是建立在硬盤和分區(qū)之上的邏輯層惰瓜,來(lái)提高磁盤分區(qū)管理的靈活性。
LVM的工作原理其實(shí)很簡(jiǎn)單汉矿,它就是通過(guò)將底層的物理磁盤抽象的封裝起來(lái)崎坊,然后以邏輯卷的方式呈現(xiàn)給上層應(yīng)用。在傳統(tǒng)的磁盤管理機(jī)制中洲拇,我們的上層應(yīng)用是直接訪問(wèn)文件系統(tǒng)奈揍,從而對(duì)底層的物理硬盤進(jìn)行讀取曲尸,而在LVM中,其通過(guò)對(duì)底層的硬盤進(jìn)行封裝男翰,當(dāng)我們對(duì)底層的物理硬盤進(jìn)行操作時(shí)另患,其不再是針對(duì)于分區(qū)進(jìn)行操作,而是通過(guò)邏輯卷來(lái)對(duì)其進(jìn)行底層的磁盤管理操作蛾绎。比如說(shuō)我增加一個(gè)物理硬盤昆箕,這個(gè)時(shí)候上層的服務(wù)是感覺(jué)不到的,因?yàn)槌尸F(xiàn)給上層服務(wù)的是以邏輯卷的方式租冠。
LVM最大的特點(diǎn)就是可以對(duì)磁盤進(jìn)行動(dòng)態(tài)管理鹏倘。因?yàn)檫壿嬀淼拇笮∈强梢詣?dòng)態(tài)調(diào)整的,而且不會(huì)丟失現(xiàn)有的數(shù)據(jù)顽爹。如果我們新增加了硬盤纤泵,其也不會(huì)改變現(xiàn)有上層的邏輯卷。作為一個(gè)動(dòng)態(tài)磁盤管理機(jī)制话原,邏輯卷技術(shù)大大提高了磁盤管理的靈活性夕吻。
二. LVM基本術(shù)語(yǔ)
物理磁盤
物理存儲(chǔ)介質(zhì)(The physical media):這里指系統(tǒng)的存儲(chǔ)設(shè)備:硬盤,如:/dev/xvda繁仁、/dev/vdb等等涉馅,是存儲(chǔ)系統(tǒng)最低層的存儲(chǔ)單元。
PV(Physical Volume)- 物理卷
物理卷在邏輯卷管理中處于最底層黄虱,它可以是實(shí)際物理硬盤上的分區(qū)稚矿,也可以是整個(gè)物理硬盤
VG(Volumne Group)- 卷組
卷組建立在物理卷之上,一個(gè)卷組中至少要包括一個(gè)物理卷捻浦,在卷組建立之后可動(dòng)態(tài)添加物理卷到卷組中晤揣。一個(gè)邏輯卷管理系統(tǒng)工程中可以只有一個(gè)卷組,也可以擁有多個(gè)卷組朱灿。
LV(Logical Volume)- 邏輯卷
邏輯卷建立在卷組之上昧识,卷組中的未分配空間可以用于建立新的邏輯卷,邏輯卷建立后可以動(dòng)態(tài)地?cái)U(kuò)展和縮小空間盗扒。系統(tǒng)中的多個(gè)邏輯卷可以屬于同一個(gè)卷組跪楞,也可以屬于不同的多個(gè)卷組。
LVM使用分層結(jié)構(gòu)侣灶,如下圖所示:
查找新的磁盤
# fdisk -l
這里看到的新的磁盤設(shè)備名是:/dev/sdb甸祭。
創(chuàng)建分區(qū)
fdisk /dev/sdb
操作命令 n、p褥影、1池户、回車、回車、t校焦、8e赊抖、w
[root@tsbweb1 data]# fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.23.2)枫虏。
更改將停留在內(nèi)存中斩个,直到您決定將更改寫入磁盤。
使用寫入命令前請(qǐng)三思衰絮。
命令(輸入 m 獲取幫助):p
磁盤 /dev/sdb:17.2 GB, 17179869184 字節(jié)凝赛,33554432 個(gè)扇區(qū)
Units = 扇區(qū) of 1 * 512 = 512 bytes
扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)
磁盤標(biāo)簽類型:dos
磁盤標(biāo)識(shí)符:0xbb986126
設(shè)備 Boot Start End Blocks Id System
命令(輸入 m 獲取幫助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分區(qū)號(hào) (1-4,默認(rèn) 1):1
起始 扇區(qū) (2048-33554431坛缕,默認(rèn)為 2048):
將使用默認(rèn)值 2048
Last 扇區(qū), +扇區(qū) or +size{K,M,G} (2048-33554431墓猎,默認(rèn)為 33554431):
將使用默認(rèn)值 33554431
分區(qū) 1 已設(shè)置為 Linux 類型,大小設(shè)為 16 GiB
命令(輸入 m 獲取幫助):t
已選擇分區(qū) 1
Hex 代碼(輸入 L 列出所有代碼):L
0 空 24 NEC DOS 81 Minix / 舊 Linu bf Solaris
1 FAT12 27 隱藏的 NTFS Win 82 Linux 交換 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隱藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 擴(kuò)展 c7 Syrinx
5 擴(kuò)展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系統(tǒng)數(shù)據(jù)
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 純文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可啟動(dòng) 4f QNX4.x 第3部分 93 Amoeba e1 DOS 訪問(wèn)
a OS/2 啟動(dòng)管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 擴(kuò)展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隱藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 診斷 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隱藏的 FAT16 <3 61 SpeedStor ab Darwin 啟動(dòng) f2 DOS 次要
16 隱藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隱藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自動(dòng)
1b 隱藏的 W95 FAT3 70 DiskSecure 多啟 bb Boot Wizard 隱 fe LANstep
1c 隱藏的 W95 FAT3 75 PC/IX be Solaris 啟動(dòng) ff BBT
1e 隱藏的 W95 FAT1 80 舊 Minix
Hex 代碼(輸入 L 列出所有代碼):8e
已將分區(qū)“Linux”的類型更改為“Linux LVM”
命令(輸入 m 獲取幫助):p
磁盤 /dev/sdb:17.2 GB, 17179869184 字節(jié)赚楚,33554432 個(gè)扇區(qū)
Units = 扇區(qū) of 1 * 512 = 512 bytes
扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)
磁盤標(biāo)簽類型:dos
磁盤標(biāo)識(shí)符:0xbb986126
設(shè)備 Boot Start End Blocks Id System
/dev/sdb1 2048 33554431 16776192 8e Linux LVM
命令(輸入 m 獲取幫助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盤毙沾。
創(chuàng)建物理卷(PV)
# pvcreate /dev/sdb1
[root@tsbweb1 data]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
擴(kuò)展VG
[root@tsbweb1 data]# vgextend rhel_kandy /dev/sdb1
Volume group "rhel_kandy" successfully extended
[root@tsbweb1 data]# vgdisplay
--- Volume group ---
VG Name rhel_kandy
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 65.50 GiB
PE Size 4.00 MiB
Total PE 16769
Alloc PE / Size 12664 / 49.47 GiB
Free PE / Size 4105 / 16.04 GiB
VG UUID 7ZYehh-nfbe-36jd-p0Vm-892M-aZxh-r4kRrU
擴(kuò)展LV
lvextend -L +10G /dev/rhel_kandy/root
[root@tsbweb1 data]# lvextend -L +10G /dev/rhel_kandy/root
Size of logical volume rhel_kandy/root changed from 44.47 GiB (11384 extents) to 54.47 GiB (13944 extents).
Logical volume root successfully resized.
激活VG
[root@tsbweb1 data]# vgchange -a y rhel_kandy
2 logical volume(s) in volume group "rhel_kandy" now active
調(diào)整文件系統(tǒng)大小
resize2fs /dev/mapper/rhel_kandy-root
或者xfs_growfs
[root@tsbweb1 data]# xfs_growfs /dev/mapper/rhel_kandy-root
meta-data=/dev/mapper/rhel_kandy-root isize=256 agcount=4, agsize=2914304 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=11657216, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=5692, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 11657216 to 14278656
檢查已經(jīng)擴(kuò)容成功
[root@tsbweb1 data]# df -h
文件系統(tǒng) 容量 已用 可用 已用% 掛載點(diǎn)
/dev/mapper/rhel_kandy-root 55G 19G 36G 35% /
devtmpfs 7.9G 0 7.9G 0% /dev
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 7.9G 450M 7.4G 6% /run
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/sda1 497M 108M 390M 22% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/0