LVM的基本概念
- 物理卷 Physical Volume (PV): 可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file)。物理卷包括一个特殊的 header,其余部分被切割为一块块物理区域(physical extents)
- 卷组 Volume group (VG): 将一组物理卷收集为一个管理单元
- 逻辑卷 Logical volume (LV): 虚拟分区,由物理区域(physical extents)组成
- 物理区域 Physical extent (PE): 硬盘可供指派给逻辑卷的最小单位(通常为 4MB)
磁盘操作相关命令
- 查看挂载点
df -h
- 显示当前的 logical volume
lvdisplay
- 显示当前的 volume group
vgdisplay
- 显示当前的 physical volume
pvdisplay
开始 LVM 扩容
- 查看 fdisk
fdisk -l
- 查看所有储存设备
fdisk -l |grep '/dev
- 在虚拟机中挂载多一块磁盘,再操作
- 查看所有储存设备
- 创建 sdb 分区
fdisk /dev/sdb
## 在此处输入命令
## n:新建分区
## l: 选择逻辑分区,如果没有,则首先创建主分区(p),然后再添加逻辑分区(硬盘最多四个分区 P-P-P-P 或 P-P-P-E)
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p):
Using default response p.
Partition number (1-4, default 1):
First sector (2048-41943039, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039):
Created a new partition 1 of type 'Linux' and of size 20 GiB.
## 在此处输入命令
## w:写入磁盘
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
格式化磁盘
- 查看分区
fdisk -l |grep '/dev
- 格式化
mkfs -t ext4 /dev/sdb1
- 创建 PV
pvcreate /dev/sdb1
- 查看卷组
pvscan
扩容 VG
- 查看 VG
vgdisplay
- 扩容 VG
vgextend ubuntu-vg /dev/sdb1
扩容 LV
- 查看 VG
vgdisplay
- 查看 LV
lvdisplay
- 扩容 LV
# 按固定大小追加
lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv
# 按百分比追加
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
# 输出如下
Size of logical volume ubuntu-vg/ubuntu-lv changed from <19.00 GiB (4863 extents) to 38.99 GiB (9982 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
- 刷新分区
resize2fs /dev/ubuntu-vg/ubuntu-lv
- 验证是否成功
lvdisplay
- 注意: 不要卸载扩容的磁盘,可能出现丢失数据或是系统无法启动
异常处理(动态扩容提示空间不足)
动态扩容时可能会提示 /etc/lvm/archive/.lvm_xxxxxx: write error failed: No space left on device
的错误,这是由于磁盘空间使用量已经 100% 了,我们可以使用 lvresize
的方式扩容
lvresize -A n -L +10G /dev/ubuntu-vg/ubuntu-lv
resize2fs -p /dev/ubuntu-vg/ubuntu-lv