LVM是Logical Volume Manager(邏輯卷管理)的簡寫,它是對磁盤分區進行管理的一種機制, LVM是建立在硬盤和分區之上的一個邏輯層,用來提高磁盤管理的靈活性.通過LVM可將若干個 磁盤分區連接爲一個整塊的卷組(Volume Group),形成一個存儲池.可以在卷組上隨意創建邏輯 卷(Logical Volumes),並進一步在邏輯捲上創建文件系統.
LVM作用:通過LVM可以方便的調整存儲卷的大小,並且可以對磁盤存儲按照組的方式進行命名、管理和
分配.當系統添加了新的磁盤,通過LVM可以直接擴展文件系統跨越該磁盤, 而不必將文件移動 到新的磁盤上
LVM四個概念:
pv:物理卷
vg:邏輯卷組,由物理卷組成
lv:邏輯卷
PE:最小存儲單位
LVM創建四個步驟:
1、創建物理卷pv:pvcreate
2、創建物理卷組vg:vgcreat
3、創建邏輯卷lv:lvcreate
4、對邏輯捲進行文化系統格式化
查看PV,VG,LV信息:
1、查看PV:pvs
2、查看VG:vgs
3、查看LV:lvs
例:創建一個LV1
1、查看磁盤信息:
[root@localhost ~]# fdisk -l
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
2、對磁盤sdb分區,分3個主分區:
[root@localhost ~]# 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 0x06a539c8.
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 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +2G
以此類推,創建其它2個主分區,最後輸入"w"保存分區創建。
Selected partition 4
First cylinder (787-2610, default 787):
Using default value 787
Last cylinder, +cylinders or +size{K,M,G} (787-2610, default 2610):
Using default value 2610
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
分區創建後,輸入命令:partprobe /dev/sdb 使分區在不重啓系統的情況下生效。
[root@localhost ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4
3、創建物理卷PV
[root@localhost ~]# pvcreate /dev/sdb{1,2}
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdb2" successfully created
將分區sdb1和sdb2轉爲物理卷,查看物理卷信息:
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 a-- 2.00g 2.00g
/dev/sdb2 lvm2 a-- 2.00g 2.00g
注:pv:物理卷名稱 VG:所屬邏輯卷組 PSize:物理卷容量 PFree:物理卷剩餘容量
4、創建邏輯卷組VG1
[root@localhost ~]# vgcreate VG1 /dev/sdb{1,2}
Volume group "VG1" successfully created
創建邏輯VG1,包含物理卷sdb1、sdb2,查看VG1信息:
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
VG1 2 0 0 wz--n- 4.01g 4.01g
注: VG:邏輯卷組名稱 #PV:包含物理卷個數 #LV:包含邏輯卷個數 VSize:卷組容量
VFree:卷組剩餘容量
5、創建邏輯卷LV:
[root@localhost ~]# lvcreate -n LV1 -L 4G VG1
Logical volume "LV1" created
注: -n 指定邏輯卷名稱
-L 指定邏輯卷容量大小
VG1 邏輯卷LV1創建在邏輯卷組VG1上
查看邏輯卷VL1信息:
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
LV1 VG1 -wi-a----- 4.00g
到此爲止,創建LVM的前三個步驟已經完成。查看pv、vg、lv信息除了pvs、vgs、lvs外,還有pvdisplay、vgdisplay、lvdisplay命令查看,而且更加詳細。
[root@localhost ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb1
VG Name VG1
PV Size 2.01 GiB / not usable 3.16 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 513
Free PE 0
Allocated PE 513
PV UUID dqBiSM-Gflt-IjH4-YMZH-vAF3-V2NQ-Zof2Nn
--- Physical volume ---
PV Name /dev/sdb2
VG Name VG1
PV Size 2.01 GiB / not usable 3.19 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 513
Free PE 2
Allocated PE 511
PV UUID jDlmm2-wIdW-pFlC-cMl0-0OWO-8XhT-JMJ73k
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name VG1
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 4.01 GiB
PE Size 4.00 MiB
Total PE 1026
Alloc PE / Size 1024 / 4.00 GiB
Free PE / Size 2 / 8.00 MiB
VG UUID HfIDZU-cPko-Lq4k-5vuB-5cAG-1soG-3oC8gM
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/VG1/LV1
LV Name LV1
VG Name VG1
LV UUID EkGiw6-ltwY-UAv4-OOFK-EcYn-Ug8d-KDVqHw
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2016-01-04 22:08:18 +0800
LV Status available
# open 0
LV Size 4.00 GiB
Current LE 1024
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
5、最後對邏輯卷LV1進行文化系統格式化
[root@localhost ~]# mkfs -t ext4 /dev/VG1/LV1
mke2fs 1.41.12 (17-May-2010)
文件系統標籤=
操作系統:Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user
第一個數據塊=0
Maximum filesystem blocks=1073741824
32 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
正在寫入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
到此創建LVM的4個步驟已完成。最後將創建的邏輯卷LV1掛載就可以存儲文件了,手動掛載或寫/etc/fstab文件中,讓開機自動掛載。
查看LV1的UUID:
[root@localhost ~]# blkid
/dev/sda2: UUID="1a3ba114-02f9-491d-bebf-95d2231815ac" TYPE="ext4"
/dev/sda1: UUID="6f1089de-bb06-4ee3-8e9b-a07530e7d503" TYPE="ext4"
/dev/sda3: UUID="cd69336c-6e79-45cf-aacf-98a7d1138d2b" TYPE="ext4"
/dev/sda5: UUID="124418b0-fb6a-4c10-8299-f63d59cea547" TYPE="swap"
/dev/sr0: LABEL="CentOS_6.6_Final" TYPE="iso9660"
/dev/sdb1: UUID="dqBiSM-Gflt-IjH4-YMZH-vAF3-V2NQ-Zof2Nn" TYPE="LVM2_member"
/dev/sdb2: UUID="jDlmm2-wIdW-pFlC-cMl0-0OWO-8XhT-JMJ73k" TYPE="LVM2_member"
/dev/sdb3: UUID="E30ReV-Ofxk-GeHy-l5lu-zT6P-hSfC-oTP6uf" TYPE="LVM2_member"
/dev/mapper/VG1-LV1: UUID="1764dcfb-cf37-430b-a803-60f4e2837ec6" TYPE="ext4"
創建一個目錄/LV1,將LV1掛載到此目錄下
[root@localhost ~]# mkdir /LV1
編輯fstab
[root@localhost ~]# vim /etc/fstab
9 UUID=1a3ba114-02f9-491d-bebf-95d2231815ac / ext4 defaults 1 1
10 UUID=6f1089de-bb06-4ee3-8e9b-a07530e7d503 /boot ext4 defaults 1 2
11 UUID=cd69336c-6e79-45cf-aacf-98a7d1138d2b /usr ext4 defaults 1 2
12 UUID=124418b0-fb6a-4c10-8299-f63d59cea547 swap swap defaults 0 0
13 tmpfs /dev/shm tmpfs defaults 0 0
14 devpts /dev/pts devpts gid=5,mode=620 0 0
15 sysfs /sys sysfs defaults 0 0
16 proc /proc proc defaults 0 0
17 /dev/sr0 /mnt iso9660 defaults 0 0
18 UUID=1764dcfb-cf37-430b-a803-60f4e2837ec6 /LV1 ext4 defaults 0 0
重新啓動自動掛載
[root@localhost ~]# mount -a
查看掛載信息:
[root@localhost ~]# mount -l
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sda3 on /usr type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sr0 on /mnt type iso9660 (ro) [CentOS_6.6_Final]
/dev/mapper/VG1-LV1 on /LV1 type ext4 (rw)