在生产环境,服务器的数据盘/分区经常需要扩容,以应对生产业务数据的高速增长,通常我们的生产环境的服务器,如数据库服务器的数据盘都是通过LVM逻辑卷来管理扩容操作。
1. 新建lvm
# 新建xfs文件系统格式的LVM分区
# 安装lvm2
yum install -y lvm2
# 新建pv
pvcreate /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1
pvcreate /dev/nvme[0-2]n1
# 新建vg
vgcreate data_vg /dev/nvme0n1 /dev/nvme1n1 /dev/nvme2n1
vgcreate data_vg /dev/nvme[0-2]n1
# 新建lv
lvcreate -l 100%FREE -n data_lv data_vg
#格式化磁盘文件系统格式xfs
mkfs.xfs /dev/data_vg/data_lv
#挂载,写入/etc/fstab
echo "/dev/data_vg/data_lv /data xfs defaults 0 0" >>/etc/fstab
mount -a
2.扩容lvm
# 扩容xfs格式LVM
# 新增磁盘如/dev/vdd,想要加入并扩容/data分区
# 首先创建pv
1. pvcreate /dev/vdd
# 扩容vg
2. vgextend data_vg /dev/vdd
# 扩容lv,通过参数 -r(resizefs)-l (extents +100%FREE)
3.1 lvextend -r -l +100%FREE /dev/mapper/data_vg-data_lv
# 扩容lv,但是一分为二,通过xfs_growfs达到扩容分区大小目的
3.2 lvextend /dev/data_vg/data_lv /dev/vdd
3.2 xfs_growfs /dev/data_vg/data_lv
# 验证结果
df -hT
3. ansible批量格式化数据盘
- name: 格式化数据盘
remote_user: root
hosts: all
gather_facts: false
tasks:
- name: mkfs.xfs data
filesystem:
fstype : xfs
dev : "{{ item }}"
with_items:
- "/dev/vdb"
- "/dev/vdc"
- "/dev/vdd"
- "/dev/vde"
- "/dev/vdf"
- "/dev/vdg"
- "/dev/vdh"
- "/dev/vdi"
- "/dev/vdj"
- "/dev/vdk"
- "/dev/vdl"
- "/dev/vdm"
- "/dev/vdn"
- "/dev/vdo"
- "/dev/vdp"
- name: appendonly mount to /etc/fstab
shell: /bin/echo "{{ item }}" >>/etc/fstab
with_items:
- "/dev/vdb /data1 xfs defaults 0 0"
- "/dev/vdc /data2 xfs defaults 0 0"
- "/dev/vdd /data3 xfs defaults 0 0"
- "/dev/vde /data4 xfs defaults 0 0"
- "/dev/vdf /data5 xfs defaults 0 0"
- "/dev/vdg /data6 xfs defaults 0 0"
- "/dev/vdh /data7 xfs defaults 0 0"
- "/dev/vdi /data8 xfs defaults 0 0"
- "/dev/vdj /data9 xfs defaults 0 0"
- "/dev/vdk /data10 xfs defaults 0 0"
- "/dev/vdl /data11 xfs defaults 0 0"
- "/dev/vdm /data12 xfs defaults 0 0"
- "/dev/vdn /data13 xfs defaults 0 0"
- "/dev/vdo /data14 xfs defaults 0 0"
- "/dev/vdp /data15 xfs defaults 0 0"
- name: mount data
shell: mount -a