LVM使用分层结构,如下图所示。
主要包括:
- 物理卷-----PV(Physical Volume)
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。 - 卷组-----VG(Volumne Group)
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。 - 逻辑卷-----LV(Logical Volume)
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组。 - 物理区域-----PE(Physical Extent)
物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。 - 逻辑区域-----LE(Logical Extent)
逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。 - 卷组描述区域-----(Volume Group Descriptor Area)
卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。工作原理
(1)物理磁盘被格式化为PV,空间被划分为一个个的PE。
(2)不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE池内。
(3)LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘。
(4)LV现在就直接可以格式化后挂载使用了。
(5)LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据 。
linux磁盘扩容接下来我们首先要在一个硬盘上创建多个逻辑卷,然后将它们挂载在/data2目录下
- 关闭虚拟机,右键--设置--扩展,选择想要扩展的容量,等待扩展完成后会显示还需要在系统内部进行设置
- 利用df -h可以看到磁盘使用情况,可以看到目前可用空间已经不多了
[peng@localhost ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 13M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda3 18G 18G 511M 98% / /dev/sda1 297M 164M 134M 55% /boot tmpfs 378M 24K 378M 1% /run/user/1000
- 首先先通过命令查看到新磁盘的分区
[root@localhost peng]# fdisk -l Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 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: 0x000c42c7 Device Boot Start End Blocks Id System /dev/sda1 * 2048 616447 307200 83 Linux /dev/sda2 616448 4810751 2097152 82 Linux swap / Solaris /dev/sda3 4810752 41943039 18566144 83 Linux
- 对新加的磁盘进行分区操作
[root@localhost peng]# fdisk /dev/sda //选择新增硬盘 Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p //查看已分区数量 Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 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: 0x000c42c7 Device Boot Start End Blocks Id System /dev/sda1 * 2048 616447 307200 83 Linux /dev/sda2 616448 4810751 2097152 82 Linux swap / Solaris /dev/sda3 4810752 41943039 18566144 83 Linux Command (m for help): n //新增一个分区 Partition type: p primary (3 primary, 0 extended, 1 free) e extended Select (default e): p //分区类型选择主分区 Selected partition 4 //选择分区号,这里系统默认选择了4 First sector (41943040-209715199, default 41943040): Using default value 41943040 Last sector, +sectors or +size{K,M,G} (41943040-209715199, default 209715199): Using default value 209715199 Partition 4 of type Linux and of size 80 GiB is set Command (m for help): p //查看当前分区 Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 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: 0x000c42c7 Device Boot Start End Blocks Id System /dev/sda1 * 2048 616447 307200 83 Linux /dev/sda2 616448 4810751 2097152 82 Linux swap / Solaris /dev/sda3 4810752 41943039 18566144 83 Linux /dev/sda4 41943040 209715199 83886080 83 Linux //可以看到已经多了一个分区 Command (m for help): w //写入磁盘保存设置 The partition table has been altered!
- 重启虚拟机格式化新建分区
[root@localhost peng]# reboot
- 初始化刚刚的分区
[root@localhost peng]# pvcreate /dev/sda4 Physical volume "/dev/sda4" successfully created.
pvdisplay查看创建的物理卷
[root@localhost peng]# pvdisplay "/dev/sda4" is a new physical volume of "80.00 GiB" --- NEW Physical volume --- PV Name /dev/sda4 VG Name PV Size 80.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID OUnWDf-BbGk-NpRg-NGoP-D2pN-8pL4-YGWWdy
- 使用/dev/sda4创建名为centos的卷组
[root@localhost peng]# vgcreate centos /dev/sda4 Volume group "centos" successfully created
vgdisplay查看创建的卷组
[root@localhost peng]# vgdisplay --- Volume group --- VG Name centos 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 <80.00 GiB PE Size 4.00 MiB Total PE 20479 Alloc PE / Size 0 / 0 Free PE / Size 20479 / <80.00 GiB //这里可以看到,有80G的空间是空闲的 VG UUID DDlU1I-Z0qs-HN7T-cpND-iQxG-o609-AdPSXv
如果已经有卷组可以直接加入
vgextend centos /dev/sda4
- 在刚刚创建的卷组下创建一个名为lv1,大小为79G(小于空闲空间)的逻辑卷
[root@localhost peng]# lvcreate -L 79G -n lv1 centos Logical volume "lv1" created.
lvdisplay查看创建的逻辑卷
[root@localhost peng]# lvdisplay --- Logical volume --- LV Path /dev/centos/lv1 LV Name lv1 VG Name centos LV UUID VdIqFs-qyrd-r18P-83Uq-wiIr-2Wbh-ZXwMen LV Write Access read/write LV Creation host, time localhost.localdomain, 2021-08-27 01:03:12 -0700 LV Status available # open 0 LV Size 79.00 GiB Current LE 20224 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0
也能利用lvresize -L xxx /dev/ead4/lv1重新设置卷大小
- 最后格式化,就可以挂载使用啦
[root@localhost peng]# mkfs.ext4 /dev/centos/lv1 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 5177344 inodes, 20709376 blocks 1035468 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2168455168 632 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, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done [root@localhost peng]# mkdir /data2 [root@localhost peng]# mount /dev/centos/lv1 /data2
df -h查看容量
[root@localhost peng]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 13M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda3 18G 18G 510M 98% / /dev/sda1 297M 164M 134M 55% /boot tmpfs 378M 40K 378M 1% /run/user/1000 /dev/mapper/centos-lv1 78G 57M 74G 1% /data2 //完成扩容
- 除此之外,也能使用centos7自带的磁盘管理工具进行编辑
- 对新加的磁盘进行分区操作