简介
逻辑卷管理LVM是一个多才多艺的硬盘系统工具。无论在Linux或者其他类似的系统,都是非常的好用。传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。LVM并不需要重启就可以让内核知道分区的存在。
LVM使用分层结构,如下图所示。
首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV)。一个或多个物理卷可以用来创建卷组(VG)。然后基于卷组可以创建逻辑卷(LV)。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问
磁盘分区
1、首先使用fdisk增加的磁盘分区
#fdisk /dev/sdb
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xff3a8918
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 8e Linux LVM
/dev/sdb2 4196352 8390655 2097152 8e Linux LVM
/dev/sdb3 8390656 12584959 2097152 8e Linux LVM
迅速创建扩展分区,并划分3个逻辑分区
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e
Selected partition 4
First sector (12584960-41943039, default 12584960):
Using default value 12584960
Last sector, +sectors or +size{K,M,G} (12584960-41943039, default 41943039):
Using default value 41943039
Partition 4 of type Extended and of size 14 GiB is set
Command (m for help): n
All primary partitions are in use
Adding logical partition 5
First sector (12587008-41943039, default 12587008):
Using default value 12587008
Last sector, +sectors or +size{K,M,G} (12587008-41943039, default 41943039): +2G
Partition 5 of type Linux and of size 2 GiB is set
Command (m for help): n
All primary partitions are in use
Adding logical partition 6
First sector (16783360-41943039, default 16783360):
Using default value 16783360
Last sector, +sectors or +size{K,M,G} (16783360-41943039, default 41943039): +2G
Partition 6 of type Linux and of size 2 GiB is set
Command (m for help): n
All primary partitions are in use
Adding logical partition 7
First sector (20979712-41943039, default 20979712):
Using default value 20979712
Last sector, +sectors or +size{K,M,G} (20979712-41943039, default 41943039): +2G
Partition 7 of type Linux and of size 2 GiB is set
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xff3a8918
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 8e Linux LVM
/dev/sdb2 4196352 8390655 2097152 8e Linux LVM
/dev/sdb3 8390656 12584959 2097152 8e Linux LVM
/dev/sdb4 12584960 41943039 14679040 5 Extended
/dev/sdb5 12587008 16781311 2097152 83 Linux
/dev/sdb6 16783360 20977663 2097152 83 Linux
/dev/sdb7 20979712 25174015 2097152 83 Linux
2、t更改分区文件系统的ID为8E,并w保存操作
Command (m for help): t
Partition number (1-7, default 7): 5
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-7, default 7): 6
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-7, default 7):
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xff3a8918
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 8e Linux LVM
/dev/sdb2 4196352 8390655 2097152 8e Linux LVM
/dev/sdb3 8390656 12584959 2097152 8e Linux LVM
/dev/sdb4 12584960 41943039 14679040 5 Extended
/dev/sdb5 12587008 16781311 2097152 8e Linux LVM
/dev/sdb6 16783360 20977663 2097152 8e Linux LVM
/dev/sdb7 20979712 25174015 2097152 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
3、为了能快速的加载新分区,我们使用partprobe命令手动更新
[root@aiker01 ~]# partprobe
[root@aiker01 ~]# ll /dev/sdb
sdb sdb1 sdb2 sdb3 sdb4 sdb5 sdb6 sdb7
4、创建物理卷PV
[root@aiker01 ~]# pvcreate /dev/sdb5 /dev/sdb6 /dev/sdb7
Physical volume "/dev/sdb5" successfully created.
Physical volume "/dev/sdb6" successfully created.
Physical volume "/dev/sdb7" successfully created.
列出刚才创建的物理卷,新创建的物理卷都会带“--- NEW Physical volume ---”
[root@aiker01 ~]# pvdisplay /dev/sdb[5-7]
"/dev/sdb7" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb7
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID XegRtK-Fr4V-AfJ2-QVxu-hOo2-dGE8-HR2dox
"/dev/sdb6" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb6
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID p6WjVw-X3th-BZVW-UfI9-nCIo-uLPg-uO5pUW
"/dev/sdb5" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb5
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID KCPzgS-O43B-CFua-xSUn-fdCX-emSS-WHWQBG
pvs命令可以列出物理卷的使用列表,物理卷大小,使用情况,剩余的物理卷大小
[root@aiker01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 cl lvm2 a-- <19.51g 4.00m
/dev/sdb1 vg1 lvm2 a-- <2.00g 0
/dev/sdb2 vg1 lvm2 a-- <2.00g 0
/dev/sdb3 vg1 lvm2 a-- <2.00g 0
/dev/sdb5 lvm2 --- 2.00g 2.00g
/dev/sdb6 lvm2 --- 2.00g 2.00g
/dev/sdb7 lvm2 --- 2.00g 2.00g
创建卷组VGS
先查看现有的卷组
[root@aiker01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
cl 1 4 0 wz--n- <19.51g 4.00m
vg1 3 1 0 wz--n- <5.99g 0
[root@aiker01 ~]# vgcreate vg2 /dev/sdb[5-6]
Volume group "vg2" successfully created
[root@aiker01 ~]# vgdisplay vg2 #列出刚才创建的卷组详情
--- Volume group ---
VG Name vg2
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 3.99 GiB
PE Size 4.00 MiB
Total PE 1022
Alloc PE / Size 0 / 0
Free PE / Size 1022 / 3.99 GiB
VG UUID 0yIJqM-O6HU-c7yO-VeBZ-AWz3-WiJQ-cUSM1i
[root@aiker01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
cl 1 4 0 wz--n- <19.51g 4.00m
vg1 3 1 0 wz--n- <5.99g 0
vg2 2 0 0 wz--n- 3.99g 3.99g
创建逻辑卷LVS
[```root@aiker01 ~]# lvcreate -l 1022 -n lv2 vg2 #-l 按pe,-L按size
Logical volume "lv2" created.
**格式化逻辑卷**
[root@aiker01 ~]# mkfs.ext4 /dev/vg2/lv2
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 width=0 blocks
261632 inodes, 1046528 blocks
52326 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1071644672
32 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
[root@aiker01 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home cl -wi-ao---- 4.00g
root cl -wi-ao---- 8.57g
swap cl -wi-ao---- 4.00g
var cl -wi-ao---- <2.93g
lv1 vg1 -wi-ao---- <5.99g
lv2 vg2 -wi-a----- 3.99g
[root@aiker01 ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1
├─sda2 xfs 460aa503-2017-41c1-a406-c94f8b1097b7 /boot
└─sda3 LVM2_member KzLxC5-B3g0-qvz5-4Bsf-Neaq-y3f1-cmRV0I
├─cl-root xfs 16cc098f-10c5-4b7d-9a3a-cfd0289a0e12 /
├─cl-swap swap 542d997a-3a61-4e10-afe5-f4f96277eba9 [SWAP]
├─cl-var xfs 2b8c9632-31ea-4299-9cb3-aa8d6d9c030e /var
└─cl-home xfs b7a246f3-746e-49e4-bab0-4def83faaa26 /home
sdb
├─sdb1 LVM2_member osUKLK-uhqg-5owr-qicf-m5Rj-NnxA-7kZOdb
│ └─vg1-lv1 ext4 22c8fa37-a406-4d65-b853-1bb361296a7f /mnt
├─sdb2 LVM2_member 1lNxWq-1jKg-mRfu-NJpO-8996-d5Nc-lpGfwu
│ └─vg1-lv1 ext4 22c8fa37-a406-4d65-b853-1bb361296a7f /mnt
├─sdb3 LVM2_member CsatVM-Qjr6-OdZi-Z150-ToEk-Fwty-dScaIs
│ └─vg1-lv1 ext4 22c8fa37-a406-4d65-b853-1bb361296a7f /mnt
├─sdb4
├─sdb5 LVM2_member KCPzgS-O43B-CFua-xSUn-fdCX-emSS-WHWQBG
│ └─vg2-lv2 ext4 75ba0d5a-f0e5-4182-a543-d24c83843b3d
├─sdb6 LVM2_member p6WjVw-X3th-BZVW-UfI9-nCIo-uLPg-uO5pUW
│ └─vg2-lv2 ext4 75ba0d5a-f0e5-4182-a543-d24c83843b3d
└─sdb7 LVM2_member XegRtK-Fr4V-AfJ2-QVxu-hOo2-dGE8-HR2dox
sr0
[root@aiker01 ~]# mkdir /data **#创建目录**
[root@aiker01 ~]# mount /dev/vg2/lv2 /data/** #挂载格式化后的逻辑卷**
[root@aiker01 ~]# df -hT** #查看文件系统的详情**
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/cl-root xfs 8.6G 5.3G 3.4G 62% /
devtmpfs devtmpfs 2.4G 0 2.4G 0% /dev
tmpfs tmpfs 2.4G 0 2.4G 0% /dev/shm
tmpfs tmpfs 2.4G 8.7M 2.4G 1% /run
tmpfs tmpfs 2.4G 0 2.4G 0% /sys/fs/cgroup
/dev/mapper/cl-home xfs 4.0G 33M 4.0G 1% /home
/dev/mapper/cl-var xfs 3.0G 159M 2.8G 6% /var
/dev/sda2 xfs 497M 132M 366M 27% /boot
/dev/mapper/vg1-lv1 ext4 5.9G 16M 5.6G 1% /mnt
tmpfs tmpfs 479M 0 479M 0% /run/user/0
/dev/mapper/vg2-lv2 ext4 3.9G 16M 3.7G 1% /data
本文转自 喵来个鱼 51CTO博客,原文链接:http://blog.51cto.com/m51cto/2048175,如需转载请自行联系原作者