目录:
1、管理逻辑卷管理LVM的概念
2、设置步骤-创建逻辑卷
1、先分区
2、分区表写入内核
3、创建物理卷
4、创建卷组
5、创建逻辑卷
6、创建文件系统(格式化)
7、挂载
8、检查
3、查看物理卷,卷组和逻辑卷信息
1、查看物理卷信息-pvdisplay
2、查看卷组信息-vgdisplay
3、查看逻辑卷-lvdisplay
4、高级逻辑卷配置
1、增加卷组大小
2、减少卷组大小
3、增加逻辑卷的大小,基于XFS文件系统
4、增加逻辑卷的大小,基于ext4文件系统
5、删除逻辑卷
5、卸载已经挂载的硬盘
2、删除逻辑卷
3、删除卷组
4、删除物理卷
我们在对普通的硬盘分区,格式化和挂载对磁盘分区时,如果发现磁盘空间不够了,或者发现磁盘分配的空间太大了。如果需要重新规划硬盘的话,就需要对硬盘进行重新格式化,当然这样硬盘的数据也就都没有了,而逻辑卷就可以完美的这个问题。
逻辑卷可以很轻松的对磁盘进行管理,比如可以很轻松的增加和减少硬盘的大小。
从物理层面考虑,使用逻辑卷可以针对物理磁盘,RAID阵列或者SAN磁盘等
逻辑卷管理中几个重要的内容
1、物理卷(PV):对物理设备进行注册,以便可以划分到卷组
2、卷组(VG):由一个或多个物理卷组成,可以理解为一个硬盘池。注意一个PV只能给一个VG
3、逻辑卷(LV):从卷组中空闲的空间获取磁盘容量,也可以把多余的容量还给卷组
1、先分区
分区类型是Linux LVM,使用fdisk分区是0x8e
[root@localhost ~]# fdisk /dev/sdb
<省略部分输出>
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-419430399, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-419430399, default 419430399): +10G //给该分区10G
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): t //修改分区类型
Selected partition 1
Hex code (type L to list all codes): 8e //设置分区类型
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): w //保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
2、分区表写入内核
[root@localhost ~]# partprobe /dev/sdb
3、创建物理卷
[root@localhost ~]# pvcreate /dev/sdb1
WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y //新分区应该不会弹出该告警
Wiping xfs signature on /dev/sdb1.
Physical volume "/dev/sdb1" successfully created.
4、创建卷组
其中lewis是卷组的名字。卷组的容量就是sdb1这个分区的大小。如果卷组lewis的容量用完了,再新建分区或者增加硬盘来扩容,很方便。
[root@localhost ~]# vgcreate lewis /dev/sdb1
Volume group "lewis" successfully created
5、创建逻辑卷
-n 设置逻辑卷的名称为:lvlewis
-L 指定逻辑卷的大小为:2G
lewis 指从卷组lewis中,取2G的空间
[root@localhost ~]# lvcreate -n lvlewis -L 2G lewis
Logical volume "lvlewis" created.
6、创建文件系统(格式化)
注意看格式化的路径:/dev/卷组名/逻辑卷名
[root@localhost ~]# mkfs.xfs /dev/lewis/lvlewis
meta-data=/dev/lewis/lvlewis isize=256 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
7、挂载
[root@localhost ~]# mkdir lewisfile //创建一个挂载点,也就是一个目录
[root@localhost ~]# vim /etc/fstab //编辑配置文件
/dev/lewis/lvlewis /root/lewisfile xfs defaults 0 0 //增加如下内容
[root@localhost ~]# mount -a //挂载测试
8、检查
发现有/dev/mapper/lewis-lvlewis 2.0G 33M 2.0G 2% /root/lewisfile,表示创建成功
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 8.4G 42G 17% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 57M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/mapper/centos-home 142G 23G 119G 17% /home
/dev/sda1 497M 130M 368M 27% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/mapper/lewis-lvlewis 2.0G 33M 2.0G 2% /root/lewisfile
1、查看物理卷信息-pvdisplay
命令后面不跟参数,会显示所有物理卷
[root@localhost ~]# pvdisplay /dev/sdb1
--- Physical volume ---
PV Name /dev/sdb1
VG Name lewis
PV Size 10.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2559
Free PE 2047
Allocated PE 512
PV UUID hRUtFB-sTAc-V3CH-BL42-dMMZ-QxHu-G1zYCR
主要字段解释
PV Name 分区
VG Name 被分配到的卷组名
PV Size 物理卷的空间大小,包括不可用
PE Size 物理卷以PE作为最小单位进行结算,即最小是4M
Free PE 总共有多少个PE可用,所以物理卷可用空间大小一定是4M的倍数,所以某系情况下,我们看到最终分好的逻辑卷和实际情况会有些差异。
命令后面不跟参数,会显示所有卷组
[root@localhost ~]# vgdisplay lewis
--- Volume group ---
VG Name lewis
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
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 512 / 2.00 GiB
Free PE / Size 2047 / <8.00 GiB
VG UUID 5AQA0E-b3qZ-qDJj-4AYq-pBk5-xpDO-xJ1UFe
主要字段解释
1、VG Name 卷组名
2、VG Size 卷组大小
3、Total PE 以PE单位来表示总大小
4、free PE / Size 还剩下多少个PE(剩余空间有多少)
3、查看逻辑卷-lvdisplay
命令后面不跟参数,会显示所有逻辑卷
[root@localhost ~]# lvdisplay /dev/lewis/lvlewis
--- Logical volume ---
LV Path /dev/lewis/lvlewis
LV Name lvlewis
VG Name lewis
LV UUID bdaiVL-Ue2l-5pkQ-RhWv-720q-emRI-36b12v
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2019-02-12 15:51:52 +0800
LV Status available
# open 1
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
主要字段解释
LV Path 逻辑卷的路径
LV Name 逻辑卷的名字
VG Name 卷组名字
LV Size 逻辑卷大小
1、增加卷组大小
卷组是用通过物理卷增加,物理卷是通过分区给的。因此增加一个分区sdb2为50G,并且把sdb2设置为物理卷
具体操作间上文
给卷组lewis增加分区sdb2
[root@localhost ~]# vgextend lewis /dev/sdb2
Volume group "lewis" successfully extended
查看卷组大小,看到了VG Size字段为59.99 GiB,表示成功
[root@localhost ~]# vgdisplay lewis
//省略部分输出
VG Size 59.99 GiB
//省略部分输出
2、减少卷组大小
把sdb2这个分区,从lewis卷组中拿走,减少卷组大小的前提是里面没有数据
[root@localhost ~]# vgreduce lewis /dev/sdb2
Removed "/dev/sdb2" from volume group "lewis"
3、增加逻辑卷的大小,基于XFS文件系统
主要分为四个步骤
1、检查卷组是否有空间–vgdisplay
2、增加逻辑卷大小–lvextend
[root@localhost ~]# lvextend -L +20G /dev/lewis/lvlewis
Size of logical volume lewis/lvlewis changed from 2.00 GiB (512 extents) to 22.00 GiB (5632 extents).
Logical volume lewis/lvlewis successfully resized.
3、刷新文件系统
[root@localhost ~]# xfs_growfs /dev/lewis/lvlewis
meta-data=/dev/mapper/lewis-lvlewis isize=256 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 524288 to 5767168
4、检查确认
[root@localhost ~]# df -h
/dev/mapper/lewis-lvlewis 22G 34M 22G 1% /root/lewisfile
4、增加逻辑卷的大小,基于ext4文件系统
所有步骤都是xfs一样,唯一不同的是第三步,刷新文件系统
3、刷新文件系统命令
[root@localhost ~]# resize2fs /dev/lewis/lvlewis
注意:删除之前请先做好数据备份,需要按照以下四步一次进行
5、卸载已经挂载的硬盘
然后df检查。删除/etc/fstab文件下的挂载内容的配置
[root@localhost ~]# umount /dev/lewis/lvlewis
2、删除逻辑卷
[root@localhost ~]# lvremove /dev/lewis/lvlewis
Do you really want to remove active logical volume lewis/lvlewis? [y/n]: y
Logical volume "lvlewis" successfully removed
3、删除卷组
[root@localhost ~]# vgremove lewis
Volume group "lewis" successfully removed
4、删除物理卷
[root@localhost ~]# pvremove /dev/sdb1 /dev/sdb2
Labels on physical volume "/dev/sdb1" successfully wiped.
Labels on physical volume "/dev/sdb2" successfully wiped.