-
LVM的特点
-
传统分区的缺点:
传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变。当一个分区空间已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中。
-
当采用LVM时:
1.将硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;
2.文件系统建立在LVM上,可以跨分区,方便使用;
3.当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。
#使用LVM主要是方便管理、增加了系统的扩展性。可以跨分区,多个硬盘组合。
-
LVM的制作步骤:
-
拥有基本分区
-
做成物理卷: pv ------- sdb1、sdb2 打pv的标记。
-
加入卷组: vg-------- 卷组里面包含:sdb1 sdb2,建立在PV之上。
-
逻辑卷 : lv ------- 逻辑卷是从卷组里面拿空间出来做成的逻辑卷,在起个名,建立在VG之上
-
制作文件系统------mkfs.xfs lvm路径
-
挂载 ------mount 使用lvm
-
#制作lvm的时候可以是一整块硬盘也可以是硬盘分好的区并且是还没有用的。必须是没有做文件系统的
-
创建了LVM
[root@server-1 ~]# yum -y install lvm2 #如果没有pv命令安装
[root@server-1 ~]# ll /dev/sd* #查看所有磁盘
brw-rw----. 1 root disk 8, 0 2月 25 09:04 /dev/sda
brw-rw----. 1 root disk 8, 1 2月 25 09:04 /dev/sda1
brw-rw----. 1 root disk 8, 2 2月 25 09:04 /dev/sda2
brw-rw----. 1 root disk 8, 16 2月 25 09:04 /dev/sdb
[root@server-1 ~]# pvcreate /dev/sdb #创建sdb为物理卷
Physical volume "/dev/sdb" successfully created.
[root@server-1 ~]# pvs #查看PV
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb lvm2 --- 10.00g 10.00g
[root@server-1 ~]# vgcreate vg1 /dev/sdb #将sdb创建为vg1
Volume group "vg1" successfully created
[root@server-1 ~]# vgs #查看vg
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 1 0 0 wz--n- <10.00g <10.00g
[root@server-1 ~]# vgscan
Reading volume groups from cache.
Found volume group "vg1" using metadata type lvm2
Found volume group "centos" using metadata type lvm2
[root@server-1 ~]# vgdisplay #详细查看vg
--- Volume group ---
VG Name vg1
System ID
Format lvm2
Metadata Areas 1
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 1
Act PV 1
VG Size <10.00 GiB
PE Size 4.00 MiB
Total PE 2559
Alloc PE / Size 0 / 0
Free PE / Size 2559 / <10.00 GiB
VG UUID jHlw8l-xPxZ-0RHB-UR5L-pjLa-E4RN-8E90wu
参数解释:
-L 指定lv的大小
-n 给创建的lv起一个名字
-l 20 指定PE
[root@server-1 ~]# lvcreate -L 500M -n lv1 vg1 #在vg1里创建一个大小为500M的lv1
Logical volume "lv1" created.
[root@server-1 ~]# lvs #查看lv
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 -wi-a----- 500.00m
[root@server-1 ~]# mkfs.xfs /dev/vg1/lv1 #将lv制作为xfs文件系统
meta-data=/dev/vg1/lv1 isize=512 agcount=4, agsize=32000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=128000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@server-1 ~]# mkdir /mnt/lv1 # 在/mnt下创建挂载点lv1
[root@server-1 ~]# mount /dev/vg1/lv1 /mnt/lv1 # 将lv1挂载到lv1
[root@server-1 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 470M 0 470M 0% /dev
tmpfs tmpfs 487M 0 487M 0% /dev/shm
tmpfs tmpfs 487M 8.6M 478M 2% /run
tmpfs tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 6.4G 11G 38% /
/dev/sda1 xfs 1014M 171M 844M 17% /boot
tmpfs tmpfs 98M 4.0K 98M 1% /run/user/42
tmpfs tmpfs 98M 28K 98M 1% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg1-lv1 xfs 497M 26M 472M 6% /mnt/lv1
[root@server-1 ~]# lvcreate -l 434 -n lv2 vg1 ##采用PE方式在创建lv2
Logical volume "lv2" created.
[root@server-1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 -wi-ao---- 500.00m
lv2 vg1 -wi-a----- <1.70g
[root@server-1 ~]# mkdir /mnt/lv2 #在/mnt下创建挂载点lv2
[root@server-1 ~]# mkfs.ext4 /dev/vg1/lv2 #将lv2制作为ext4文件系统
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
111104 inodes, 444416 blocks
22220 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=455081984
14 block groups
32768 blocks per group, 32768 fragments per group
7936 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@server-1 ~]# mount /dev/vg1/lv2 /mnt/lv2 #将lv2挂载到lv2上
[root@server-1 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 470M 0 470M 0% /dev
tmpfs tmpfs 487M 0 487M 0% /dev/shm
tmpfs tmpfs 487M 8.6M 478M 2% /run
tmpfs tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 6.4G 11G 38% /
/dev/sda1 xfs 1014M 171M 844M 17% /boot
tmpfs tmpfs 98M 4.0K 98M 1% /run/user/42
tmpfs tmpfs 98M 28K 98M 1% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg1-lv1 xfs 497M 26M 472M 6% /mnt/lv1
/dev/mapper/vg1-lv2 ext4 1.7G 5.1M 1.6G 1% /mnt/lv2
-
LVM逻辑卷扩容
如果lv所在的vg有空间直接扩容就可以了!
没有的话添加一块硬盘。
[root@server-1 ~]# lsblk
-
扩容vg(vgextend)
[root@server-1 ~]# pvcreate /dev/sdc #将sdc创建为物理卷
Physical volume "/dev/sdc" successfully created.
[root@server-1 ~]# vgextend vg1 /dev/sdc #将/dev/sdc扩展到vg1中
Volume group "vg1" successfully extended
[root@server-1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 2 2 0 wz--n- 14.99g <12.81g
-
扩容lv
[root@server-1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 -wi-a----- 500.00m
lv2 vg1 -wi-a----- <1.70g
[root@server-1 ~]# lvextend -L 900M /dev/vg1/lv1 #将lv1扩容到900M
Size of logical volume vg1/lv1 changed from 500.00 MiB (125 extents) to 900.00 MiB (225 extents).
Logical volume vg1/lv1 successfully resized.
[root@server-1 ~]# lvextend -L +1000M /dev/vg1/lv2 #将lv2增加1000M
Size of logical volume vg1/lv2 changed from <1.70 GiB (434 extents) to 2.67 GiB (684 extents).
Logical volume vg1/lv2 successfully resized.
[root@server-1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 -wi-a----- 900.00m
lv2 vg1 -wi-a----- 2.67g
[root@server-1 ~]# lvextend -l +20 /dev/vg1/lv2 #在原有基础上加20个PE
Size of logical volume vg1/lv2 changed from 2.67 GiB (684 extents) to 2.75 GiB (704 extents).
Logical volume vg1/lv2 successfully resized.
[root@server-1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 -wi-a----- 900.00m
lv2 vg1 -wi-a----- 2.75g
-
FS(file system)文件系统扩容
[root@server-1 ~]# df -Th
/dev/mapper/vg1-lv1 xfs 497M 26M 472M 6% /mnt/lv1
/dev/mapper/vg1-lv2 ext4 1.7G 5.1M 1.6G 1% /mnt/lv2
[root@server-1 ~]# xfs_growfs /dev/vg1/lv1 #xfs扩容
meta-data=/dev/mapper/vg1-lv1 isize=512 agcount=4, agsize=32000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=128000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 128000 to 230400
[root@server-1 ~]# resize2fs /dev/vg1/lv2 #ext4扩容
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg1/lv2 is mounted on /mnt/lv2; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vg1/lv2 is now 720896 blocks long.
[root@server-1 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vg1-lv1 xfs 897M 26M 872M 3% /mnt/lv1
/dev/mapper/vg1-lv2 ext4 2.7G 5.1M 2.6G 1% /mnt/lv2