1. 新建卷
添加新硬盘并挂载到指定路径下
1.1 初始化新硬盘
可以看出当前磁盘有一块硬盘,名字叫sda,大小是100G
1.1.1 在外部挂载一块30GB大小的硬盘
1.1.2 重启系统,再次查看硬盘,可以看到这块挂载的硬盘了。名字叫sdb,大小是30G
1.1.3 对这块硬盘进行分区,格式选 8e 代表lvm分区
此时可以看到sdb1,代表这块新硬盘的分区完成
fdisk -l /dev/sdb
磁盘 /dev/sdb:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x75e7f5e8
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 60819455 30408704 8e Linux LVM
1.2 创建新的LVM卷并挂载指定目录
创建顺序:依次是 VG->PV->PE->LV。VG最大,LV最小。一定要注意顺序。
1.2.1 先创建VG(Volume Group),卷组名称 lvmlx
# 查看系统所有VG
vgdisplay | grep 'VG Name'
VG Name centos
# 之前系统已经创建过了一个名称叫centos的卷组,下面新建一个新的卷组,名称叫lvmlx
$ vgcreate lvmlx /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
Volume group "lvmlx" successfully created
1.2.2 不需要手动创建PV。如果VG是新建的,会自动创建一个PV
$ pvscan
PV /dev/sda2 VG centos lvm2 [<99.00 GiB / 4.00 MiB free]
PV /dev/sdb1 VG lvmlx lvm2 [<29.00 GiB / <29.00 GiB free]
Total: 2 [127.99 GiB] / in use: 2 [127.99 GiB] / in no VG: 0 [0 ]
# 如果此时继续创建PV,会报错
$ pvcreate /dev/sdb1
Can't initialize physical volume "/dev/sdb1" of volume group "lvmlx" without -ff
/dev/sdb1: physical volume not initialized.
查看自动创建的PV信息
1.2.3 创建LV,并挂载到系统的指定目录下
# LV的名称:lvname1
# VG的名称:lvmlx
# 创建一个名称叫lvname1的LV,挂载在lvmlx的VG上,大小是2000M
lvcreate -L 2000M -n lvname1 lvmlx
Logical volume "lvname1" created.
# 查看刚才创建的LV名称
$ lvscan
ACTIVE '/dev/centos/swap' [<7.88 GiB] inherit
...
ACTIVE '/dev/lvmlx/lvname1' [1.95 GiB] inherit
# 格式化LV分区类型,与现有系统保持一致
$ mkfs -t ext4 /dev/lvmlx/lvname1
mke2fs 1.42.9 (28-Dec-2013)
...
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
# 挂载指定的目录
# 原有目录路径
lvMountOn=/srv/data/abc
mkdir -p /data/$lvMountOn
# 如果原来的路径不存在,就创建空目录
mkdir -p $lvMountOn
# 存放临时数据
cp -r $lvMountOn/* /data/$lvMountOn/
# TODO 存在危险
#rm -rf $lvMountOn/*
mount /dev/lvmlx/lvname1 $lvMountOn/
# 恢复数据
cp -r /data/$lvMountOn/* $lvMountOn/
查看系统硬盘信息,可以看到新的LV已经挂载到指定目录上了。
1.3 设置开机自动挂载LV
# 新建的LV名称
lvName=lvname1
# 需要挂载的原有目录路径,即挂载点
lvMountOn=/srv/data/abc
# 获得LV的UUID
blkid | grep $lvName | awk -F "\"" '{print $2}'
# 将挂载信息加入到开启启动中
echo "UUID=0c6f4ad6-254a-490d-b8c7-079c4ac17e92 $lvMountOn ext4 defaults 0 0" >> /etc/fstab
# 卸载并重新挂载,验证fstab文件准确性
umount $lvMountOn
mount -a
mount | grep $lvName
2 扩容卷
2.1 创建新硬盘并分区
创建一个20G的硬盘,并分区成lvm格式。具体步骤同上(过程略)。
$ fdisk -l /dev/sdc
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x071e18e3
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 41943039 20970496 8e Linux LVM
2.2 确定要挂载的路径
此次挂载到根目录
$ df -h | grep root
/dev/mapper/centos-root 50G 18G 33G 36% /
# centos-root VG+LV的名称
vgscan | grep centos
Found volume group "centos" using metadata type lvm2
lvscan | grep root
ACTIVE '/dev/centos/root' [50.00 GiB] inherit
2.3 先创建PV, 然后将该PV加入到原有VG中
# 原有的pv,一共有两个
$ pvdisplay -c
/dev/sda2:centos:207616000:-1:8:8:-1:4096:25343:1:25342:gAmMta-xKQp-rw6U-fzh9-f0ih-KBFv-4gXtjI
/dev/sdb1:lvmlx:60817408:-1:8:8:-1:4096:7423:6923:500:DIe4O6-3FPT-a2jc-A6ki-m807-4DJR-vXGVV1
# 创建一个新PV,挂载点是sdc1
$ pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
# 将这个PV,扩展到VG中
$ vgextend centos /dev/sdc1
Volume group "centos" successfully extended
再次查看VG,已经扩展出了20GB
2.4 扩展原来的LV卷。
重启后依然生效,不需要在fstab中对硬盘进行额外的配置
#0 确定要扩展的LV,以及原始大小50G
lvscan
ACTIVE '/dev/centos/swap' [<7.88 GiB] inherit
ACTIVE '/dev/centos/home' [<41.12 GiB] inherit
ACTIVE '/dev/centos/root' [50.00 GiB] inherit
ACTIVE '/dev/lvmlx/lvname1' [1.95 GiB] inherit
#1 给原来的LV,增加10GB
$ lvextend -L +10G /dev/centos/root
#2 确认挂载点的硬盘类型时xfs
cat /etc/fstab | grep centos-root
/dev/mapper/centos-root / xfs defaults 0 0
#3 扩展原有分区,否则df显示还是原来的大小
$ xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=3276800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=13107200, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=6400, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 13107200 to 15728640
#4 再次查看硬盘大小,已经扩展了10G
df -h /
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 60G 18G 43G 30% /