lvm講解
阿新 • • 發佈:2017-06-21
blank target users file
- lvm
- lvm 基本組成
- 創建LVM
- 擴容邏輯卷
- 縮減邏輯卷(xfs文件系統不支持)
lvm
lvm (Logical Volume Manager)邏輯分卷管理器;可用於管理磁盤驅動器或其他類似的大容量存儲設備.
通過LVM,可以實現存儲空間的抽象化並在上面建立虛擬分區(virtual partitions),可以更簡便地擴大和縮小分區,可以增刪分區時無需擔心某個硬盤上沒有足夠的連續空間,LVM是用來方便管理的,不會提供額外的安全保證。
lvm 基本組成
物理卷Physical volume (PV):可以在上面建立卷組的媒介,可以是硬盤分區,也可以是硬盤本身或者回環文件(loopback file)。物理卷包括一個特殊的header,其余部分被切割為一塊塊物理區域(physical extents)。 卷組Volume group (VG):將一組物理卷收集為一個管理單元。 邏輯卷Logical volume (LV):虛擬分區,由物理區域(physical extents)組成。 物理區域Physical extent (PE):硬盤可供指派給邏輯卷的最小單位(通常為4MB)
示例:
兩塊物理硬盤 硬盤1 (/dev/sda): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |分區1 50GB (物理卷) |分區2 50GB (物理卷) | |/dev/sda1 |/dev/sda2 | |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _| 硬盤2 (/dev/sdb): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |分區1 120GB (物理卷) | |/dev/sdb1 | | _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
LVM方式 卷組VG1 (/dev/MyStorage/ = /dev/sda1 + /dev/sda2 + /dev/sdb1): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |邏輯卷1 15GB |邏輯卷2 35GB |邏輯卷3 170GB | |/dev/MyStorage/rootvol |/dev/MyStorage/homevol |/dev/MyStorage/mediavol | |_ _ _ _ _ _ _ _ _ _ _ _ _ _ __|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
創建LVM
實例:
1、創建分區:
fdisk /dev/sdb
2、t 更改ID
Command (m for help): t
Partition number (1-3,5, default 5): 1
Hex code (type L to list all codes): L
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / 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 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 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 hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f ‘W95 Ext‘d (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix
Hex code (type L to list all codes): 8e
Changed type of partition ‘Linux‘ to ‘Linux LVM‘
Command (m for help): t
Partition number (1-3,5, default 5): 2
Hex code (type L to list all codes): 8e
Changed type of partition ‘Linux‘ to ‘Linux LVM‘ `
3、準備物理卷
pvcreate命令用於將物理硬盤分區初始化為物理卷,以便LVM使用
pvcreate /dev/sdb1 /dev/sdb2
在使用pvcreate命令時,如果提示沒有這個命令,使用yum安裝,在使用yum安裝時,可以使用yum provides pvcreate來確認命令的依賴軟件包。
[[email protected] ~]# pvcreate /dev/sdb1 /dev/sdb2
WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sdb1.
WARNING: xfs signature detected on /dev/sdb2 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sdb2.
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
驗證物理卷:
[[email protected] ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- 10.0g 10.0g
/dev/sdb2 lvm2 --- 5.0g 5.0g
詳細顯示PV信息
[[email protected] ~]# pvdisplay
"/dev/sdb1" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID UeQKm2-m02J-wUx-AVs7-B7Oj-31I-gbuua
"/dev/sdb2" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb2
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID yt1V3N-SPNr-vylp-ZpDz-Drkb-lkdY-41y1r
4、創建卷組
vgcreate命令用於創建LVM卷組。卷組(Volume Group)將多個物理卷組織成一個整體,屏蔽了底層物理卷細節。在卷組上創建邏輯卷時不用考慮具體的物理卷信息。
用法:
vgcreate 卷組名 對應物理卷
創建:
[[email protected] ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2
Volume group "vg1" successfully created
查看:
[[email protected] ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 0 0 wz--n- 14.99g 14.99g
5、創建邏輯卷
lvcreate 命令用於創建LVM的邏輯卷。邏輯卷是創建在卷組之上的。邏輯卷對應的設備文件保存在卷組目錄下,例如:在卷組vg100上創建一個邏輯卷lvol0,則此邏輯卷對應的設備文件為/dev/vg100/lvol0。
常用參數:
-L 指定大小
# vg1上創建一個3G的lv
[[email protected] ~]# lvcreate -L 3G -n lv01 vg1
Logical volume "lv01" created.
# vg1上創建占vg1容量50%的lv02
[[email protected] ~]# lvcreate -l 50%VG -n lv02 vg1
Logical volume "lv02" created.
# 剩余空間全部分配給lv03
[[email protected] ~]# lvcreate -l 100%FREE -n lv03 vg1
Logical volume "lv03" created.
# 檢查lv狀態
[[email protected] ~]# lvscan
ACTIVE ‘/dev/vg1/lv01‘ [3.00 GiB] inherit
ACTIVE ‘/dev/vg1/lv02‘ [7.50 GiB] inherit
ACTIVE ‘/dev/vg1/lv03‘ [4.50 GiB] inherit
6、格式化
[[email protected] ~]# mke2fs -t ext4 /dev/vg1/lv01
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe blocks
196608 inodes, 786432 blocks
39321 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=805306368
24 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
7、掛載
[[email protected] ~]# mount /dev/vg1/lv01 /date1
[[email protected] ~]# mount /dev/vg1/lv02 /date2
[[email protected] ~]# mount /dev/vg1/lv03 /date3
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 16G 1.9G 14G 12% /
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.4G 0 1.4G 0% /dev/shm
tmpfs 1.4G 8.6M 1.4G 1% /run
tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
/dev/sda1 197M 109M 88M 56% /boot
tmpfs 280M 0 280M 0% /run/user/0
/dev/mapper/vg1-lv01 2.9G 9.0M 2.8G 1% /date1
/dev/mapper/vg1-lv02 7.3G 34M 6.9G 1% /date2
/dev/mapper/vg1-lv03 4.4G 18M 4.1G 1% /date3
8、寫開機啟動掛載
編輯 /etc/fstab 文件
擴容邏輯卷
lvresize命令用於調整LVM邏輯卷的空間大小,可以增大空間和縮小空間。使用lvresize命令調整邏輯卷空間大小和縮小空間時需要謹慎,因為它有可能導致數據丟失。
添加物理卷擴大卷組:
vgextend命令用於動態擴展LVM卷組,它通過向卷組中添加物理卷來增加卷組的容量。LVM卷組中的物理卷可以在使用vgcreate命令創建卷組時添加,也可以使用vgextend命令動態的添加
[[email protected] ~]# vgextend vg1 /dev/sdb5
WARNING: ext4 signature detected on /dev/sdb5 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdb5.
Physical volume "/dev/sdb5" successfully created.
Volume group "vg1" successfully extended
如果原有vg卷上還有多余空間,則不需要前面的這一步,可以直接用以下步驟擴容:
# 指定容量擴展空間
[[email protected] ~]# lvextend -L +500M /dev/vg1/lv01
Size of logical volume vg1/lv01 changed from 3.00 GiB (768 extents) to 3.49 GiB (893 extents).
Logical volume vg1/lv01 successfully resized.
# 擴展剩余所有空間
[[email protected] ~]# lvextend -l +100%FREE /dev/vg1/lv03
Size of logical volume vg1/lv03 changed from 4.50 GiB (1151 extents) to 9.00 GiB (2305 extents).
Logical volume vg1/lv03 successfully resized.
# 查看狀態
[[email protected] ~]# lvscan
ACTIVE ‘/dev/vg1/lv01‘ [3.49 GiB] inherit
ACTIVE ‘/dev/vg1/lv02‘ [7.50 GiB] inherit
ACTIVE ‘/dev/vg1/lv03‘ [9.00 GiB] inherit
檢查磁盤錯誤:
在做此操作前,確認磁盤不是掛載狀態!!!xfs不需要
[[email protected] ~]# e2fsck -f /dev/vg1/lv01
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg1/lv01: 14/196608 files (0.0% non-contiguous), 31038/786432 blocks
更新邏輯卷信息:
如果不更新卷信息,重新掛載後無法識別擴容後的大小!!
[[email protected] ~]# resize2fs /dev/vg1/lv01
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv01 to 914432 (4k) blocks.
The filesystem on /dev/vg1/lv01 is now 914432 blocks long.
xfs文件系統需要執行:
xfs_growfs /dev/vg1/lv01
擴容前大小:
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 16G 1.9G 14G 12% /
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.4G 0 1.4G 0% /dev/shm
tmpfs 1.4G 8.6M 1.4G 1% /run
tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
/dev/sda1 197M 109M 88M 56% /boot
tmpfs 280M 0 280M 0% /run/user/0
/dev/mapper/vg1-lv01 2.9G 9.0M 2.8G 1% /date1
/dev/mapper/vg1-lv02 7.3G 34M 6.9G 1% /date2
/dev/mapper/vg1-lv03 4.4G 18M 4.1G 1% /date3
擴容後大小:
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 16G 1.9G 14G 12% /
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.4G 0 1.4G 0% /dev/shm
tmpfs 1.4G 8.6M 1.4G 1% /run
tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
/dev/sda1 197M 109M 88M 56% /boot
tmpfs 280M 0 280M 0% /run/user/0
/dev/mapper/vg1-lv03 8.8G 21M 8.3G 1% /date3
/dev/mapper/vg1-lv02 7.3G 34M 6.9G 1% /date2
/dev/mapper/vg1-lv01 3.4G 12M 3.2G 1% /date1
縮減邏輯卷(xfs文件系統不支持)
1、先取消掛載
2、檢查磁盤錯誤:
[[email protected] ~]# e2fsck -f /dev/vg1/lv01
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg1/lv01: 14/196608 files (0.0% non-contiguous), 31038/786432 blocks
3、更新邏輯卷信息:
[[email protected] ~]# resize2fs /dev/vg1/lv01 3G
** 後面的這個大小是縮減後的大小**
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv01 to 914432 (4k) blocks.
The filesystem on /dev/vg1/lv01 is now 914432 blocks long.
4、重設大小:
[[email protected] ~]# lvresize -L 3G /dev/vg1/lv01
WARNING: Reducing active logical volume to 3.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lv01? [y/n]: y
Size of logical volume vg1/lv01 changed from 3.49 GiB (893 extents) to 3.00 GiB (768 extents).
Logical volume vg1/lv01 successfully resized.
[[email protected] ~]# lvextend -L 3G /dev/vg1/lv02
New size given (768 extents) not larger than existing size (1919 extents)
[[email protected] ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv01 vg1 -wi-ao---- 3.00g
lv02 vg1 -wi-a----- 7.50g
lv03 vg1 -wi-ao---- 9.00g
[[email protected] ~]# mount /dev/vg1/lv02 /date2
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 16G 1.9G 14G 12% /
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.4G 0 1.4G 0% /dev/shm
tmpfs 1.4G 8.6M 1.4G 1% /run
tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
/dev/sda1 197M 109M 88M 56% /boot
tmpfs 280M 0 280M 0% /run/user/0
/dev/mapper/vg1-lv01 2.9G 9.1M 2.8G 1% /date1
/dev/mapper/vg1-lv03 3.9G 18M 3.6G 1% /date3
/dev/mapper/vg1-lv02 2.9G 23M 2.7G 1% /date2
lvresize和lvextend 是一樣的效果,不過後者要在磁盤掛載後才能看到磁盤大小的變化!!
lvm講解