CentOS7 使用 parted 分区并创建 LVM

使用 parted 替代 fdisk 分区新硬盘,创建 LVM 逻辑卷,最后格式化为 xfs 文件系统。

CentOS7 使用 parted 分区并创建 LVM

我们申请了 6台 OpenStack 的 CentOS7 虚拟机来部署 Kubernetes 集群,其中 2台规划为 Master,4 台规划为 node(node 后面可以按需增加)。

和大多数云厂商的实例一样,我们的每个实例也有两块。其中一块 20G 用做系统盘,另一块 30G用做数据盘。

为了保持系统和数据盘的独立性,以防系统出现问题时能将数据盘分离挂载到其它实例上,我们不使用 lvm 合并这两块盘。

  • 使用 parted 分区新硬盘

这里我们新建了一个叫 /dev/vdb1 的分区,使用全部的硬盘,使用 % 方式可以实现自动对齐扇区。

parted -s /dev/vdb mklabel gpt
parted -s /dev/vdb mkpart /dev/vdb1 0% 100%
parted -s /dev/vdb print
  • 创建 lvm 逻辑分区

这里我们创建了一个名为 VolGroup 的 VG,以及一个 名为 lv_docker 的 lv。
这种命名方式仅仅是从 CentOS6 沿袭过来,并没有什么特别之处。

yum -y install lvm2

# 先创建 PV, 再根据 PV 创建 VG
pvcreate /dev/vdb1
vgcreate VolGroup /dev/vdb1

# 将 VG 的可用容量值存入变量,在下面直接引用
FREESIZE=$(vgdisplay | grep Free | awk -F/ '{print $2}' | awk '{print $2}')

# 创建 LV并指定大小以及所属的 VG
lvcreate -n lv_docker -l ${FREESIZE} VolGroup
lvresize -l +${FREESIZE} /dev/mapper/VolGroup-lv_docker

# CentOS7 推荐格式化为 xfs 提高性能
mkdir /var/lib/docker
mkfs.xfs /dev/VolGroup/lv_docker
mount /dev/mapper/VolGroup-lv_docker /var/lib/docker

# 检验一下
mount | grep lv_docker
df -hT
  • 添加 fstab 实现开机挂载
echo $(mount |grep lv_dfs |awk '{print $1" "$3" "$5" "$6}' | awk -F'[()]' '{print $1 $2}') >> /etc/fstab

umount /var/lib/docker
mount -a
df -hT

参考资料:
parted 工具文档: Parted User’s Manual