一、简述
本文记录一次lvm磁盘分区的实例.从中了解和掌握lvm磁盘管理的原理和过程,想要学习lvm原理的同学,可以参考其它文档。
二、环境准备
当前主机情况:
主机有2块硬盘sda–15GB,sdb–20GB。sda做了lvm分区管理,系统安装在sda,/var/lib/docker使用根分区的空间,sdb为新增的硬盘,未使用。
新的需求:
- 把sdb划分成1个物理分区:sdb1,并做成lvm卷。
- 挂载/data目录,分配8GB空间。
- 挂载/var/lib/docker目录,分配12GB空间。
三、操作流程
整个操作过程,大致分成以下几步:
- 备份
- 分区
- lvm
- 挂载
- 数据迁移
四、详细步骤
4.1 备份
- /var/lib/docker备份
原来/var/lib/docker目录使用/分区的空间,现在要使用一个逻辑卷来对/var/lib/docker目录挂载,因此需要备份/var/lib/docker目录。
备份前首先停用docker进程:
备份/var/lib/docker到/home目录
- /data目录备份
如果/data原来有数据,也需要先备份。本次/data目录需要新建,为空文件夹,因此跳过备份。
4.2 分区
对sdb进行物理分区:
# fdisk /dev/sdb
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): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
查看分区后的结果:
4.3 lvm分区
- 使用pvcreate创建物理卷并使用pvdisplay查看结果
- 使用vgcreate创建卷组并使用vgdisplay查看结果
- 使用lvcreate创建逻辑卷并使用lvdisplay查看结果
4.4 挂载
- 格式化逻辑卷docker和data文件格式为xfs
- 创建/data目录
- 持久化挂载
4.5 数据迁移
- 迁移docker数据到/var/lib/docker
- 启动docker