Ubuntu Lvm 扩容教程
文章目录
LVM 的基本概念
物理卷 Physical volume (PV)
可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file)。物理卷包括一个特殊的 header,其余部分被切割为一块块物理区域(physical extents)。
卷组 Volume group (VG)
将一组物理卷收集为一个管理单元。
逻辑卷 Logical volume (LV)
虚拟分区,由物理区域(physical extents)组成。
物理区域 Physical extent (PE)
硬盘可供指派给逻辑卷的最小单位(通常为 4MB)。
磁盘操作相关命令
df -h
(查看挂载点)
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 395M 1.9M 393M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 19G 15G 2.7G 85% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda2 976M 214M 695M 24% /boot
/dev/vda1 511M 6.1M 505M 2% /boot/efi
vgdisplay
(显示当前的 volume group)
--- Volume group ---
VG Name ubuntu-vg
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 <18.50 GiB
PE Size 4.00 MiB
Total PE 4735
Alloc PE / Size 4735 / <18.50 GiB
Free PE / Size 0 / 0
VG UUID 85kJd0-aNqp-xkoX-HoGI-21DD-l2yL-Gn0Vzs
备注: 注意 VG SIZE,这里应该是你当前的可用空间大小,待扩容完毕,这里显示的应该是最终的大小
pvdisplay
(显示当前的 physical volume)
--- Physical volume ---
PV Name /dev/vda3
VG Name ubuntu-vg
PV Size <18.50 GiB / not usable 2.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 4735
Free PE 0
Allocated PE 4735
PV UUID VJipfU-IpDx-HOqN-ljM4-KXjJ-V7cP-yuwuzf
开始 LVM 扩容
查看 fdisk
fdisk -l
Disk /dev/vda: 20 GiB, 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
Disklabel type: gpt
Disk identifier: 9D1CE45C-69DE-4DCB-9CB0-A2E3C23B3813
Device Start End Sectors Size Type
/dev/vda1 2048 1050623 1048576 512M EFI System
/dev/vda2 1050624 3147775 2097152 1G Linux filesystem
/dev/vda3 3147776 41940991 38793216 18.5G Linux filesystem
Disk /dev/vdb: 40 GiB, 42949672960 bytes, 83886080 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
Disklabel type: dos
Disk identifier: 0xdab9b80a
Device Boot Start End Sectors Size Id Type
/dev/vdb1 2048 83886079 83884032 40G 83 Linux
Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 18.5 GiB, 19860029440 bytes, 38789120 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
查看所有连接到电脑上的储存设备
fdisk -l |grep '/dev'
2块磁盘效果图(新增磁盘,尚未挂载)
Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectors
/dev/vda1 2048 1050623 1048576 512M EFI System
/dev/vda2 1050624 3147775 2097152 1G Linux filesystem
/dev/vda3 3147776 41940991 38793216 18.5G Linux filesystem
Disk /dev/vdb: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 18.5 GiB, 19860029440 bytes, 38789120 sectors
创建vdb
分区
fdisk /dev/vdb
# 按如下操作
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
The old ext4 signature will be removed by a write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xdab9b80a.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-83886079, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-83886079, default 83886079):
Created a new partition 1 of type 'Linux' and of size 40 GiB.
Command (m for help): w
The partition table has been altered.
Syncing disks.
格式化磁盘
mkfs -t ext4 /dev/vdb1
# 输出如下:
mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 10485504 4k blocks and 2621440 inodes
Filesystem UUID: 368ba4ee-2a69-4d8d-80a3-bc61c82b7fd2
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done
创建 PV
pvcreate /dev/vdb1
查看卷组
pvscan
# 输出如下:
PV /dev/vda3 VG ubuntu-vg lvm2 [<18.50 GiB / 0 free]
PV /dev/vdb1 lvm2 [<40.00 GiB]
Total: 2 [<58.50 GiB] / in use: 1 [<18.50 GiB] / in no VG: 1 [<40.00 GiB]
扩容 VG
vgdisplay
# 输出如下:
--- Volume group ---
VG Name ubuntu-vg
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 <18.50 GiB
PE Size 4.00 MiB
Total PE 4735
Alloc PE / Size 4735 / <18.50 GiB
Free PE / Size 0 / 0
VG UUID 85kJd0-aNqp-xkoX-HoGI-21DD-l2yL-Gn0Vzs
vgextend ubuntu-vg /dev/vdb1
# 输出如下:
Volume group "ubuntu-vg" successfully extended
vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 58.49 GiB
PE Size 4.00 MiB
Total PE 14974
Alloc PE / Size 4735 / <18.50 GiB
# 此处即为可以扩容的大小
Free PE / Size 10239 / <40.00 GiB
VG UUID 85kJd0-aNqp-xkoX-HoGI-21DD-l2yL-Gn0Vzs
lvdisplay
--- Logical volume ---
# 扩容路径
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID DYHQsn-UfPl-OOtz-O1aI-9PzP-gGb6-L2XVXz
LV Write Access read/write
LV Creation host, time ubuntu-server, 2020-09-09 23:39:29 +0800
LV Status available
# open 1
LV Size <18.50 GiB
Current LE 4735
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
扩容 LV
# 增加指定大小
lvextend -L +30G /dev/ubuntu-vg/ubuntu-lv
# 按百分比扩容
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
# 输出如下:
Size of logical volume ubuntu-vg/ubuntu-lv changed from <18.50 GiB (4735 extents) to 58.49 GiB (14974 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
刷新分区
resize2fs /dev/ubuntu-vg/ubuntu-lv
df -h
# 成功扩容:
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 395M 1.9M 393M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 58G 15G 41G 27% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/vda2 976M 214M 695M 24% /boot
/dev/vda1 511M 6.1M 505M 2% /boot/efi