去年年底新上了一个系统,一直在调试。这用了还没两天,实施的乙方告诉我硬盘不够了需要扩容,我心里一句mmp飘过,这才几天,当初怎么规划的。但也没办法,只好给虚拟机新增加了一块500G的硬盘,告诉他们可以在系统里扩了。结果昨天上午告诉我,他们研究了几天,不会扩,不会……扩……所以还是您来扩吧。这乙方真是大爷啊,不过这乙方情况特殊,当大爷是当惯了的,我们这些甲方忍啊忍啊也就习惯了,只好自己做了,幸亏当初操作系统是自己装的,用了LVM,否则还不知道被这些大爷怎么折腾。
1. 虚拟机增加硬盘
这一步很简单,不需要停机,直接对虚拟机编辑设置,点添加选择硬盘,设置大小就可以了。考虑到实际上系统可能一下用不了这么多空间,就选择了Thin 格式。
2. 在虚拟机内识别新硬盘
这时候直接在虚拟机内执行fdisk -l 是看不到新添加的硬盘的,需要我们手动扫描识别一下。
# ls /sys/class/scsi_host/
# echo "- - -" > /sys/class/scsi_host/host0/scan
# echo "- - -" > /sys/class/scsi_host/host1/scan
# echo "- - -" > /sys/class/scsi_host/host2/scan
# ls /sys/class/scsi_device/
# echo 1 > /sys/class/scsi_device/0:0:0:0/device/rescan
# echo 1 > /sys/class/scsi_device/2:0:0:0/device/rescan
# echo 1 > /sys/class/scsi_device/2:0:1:0/device/rescan
当然具体扫描的命令根据目录下的内容而定,这些就不用说了。
3.硬盘分区
经过上一步扫描,系统里就识别了新硬盘,这时候执行fdisk -l就可以在最下面看到新硬盘了,根据你原来scsi设备的数量,新硬盘一般是/dev/sdb 之类的,这时候就可以用fdisk分区了
# fdisk /dev/sdb
输入‘n’创建新分区,后边一般选默认就可以了。然后输入‘t’设置磁盘类型为‘8e’,输入‘w’保存退出。
# partprobe
经过上面两步,硬盘就算分区好了,现在执行fdisk -l就可以看到分区了,可以看到分区是/dev/sdb1 下面就是正式扩容了。
4. 扩容
- 创建物理卷
#pvcreate /dev/sdb1
- 扩容原VG:cl
#vgextend cl /dev/sdb1
- 扩容原lv:root
#lvresize -L +500G /dev/cl/root
- 文件系统识别新容量
#xfs_growfs /dev/mapper/cl-root
- 查看扩容结果
`#df -lh
5. 大爷的新要求——新建VG
上面扩容完给大爷们看了一下,结果大爷们说还有另外一个目录存的备份数据,空间比较紧张,也需要扩一下……你大爷的,扩之前怎么不说……
后来干脆新建了backup专门用来放备份数据。
前面几步和前面一样,先给虚拟机增加硬盘,再在虚拟机内扫描新硬盘并进行分区,创建PV,下面就不一样了,我选择了新建VG和LV。
#vgcreate backup /dev/sdc1
#lvcreate -L 299G -n lvBackup backup
#mkfs.xfs /dev/backup/lvBackup
#cd /
#mkdir backup
#mount /dev/mapper/backup-lvBackup /backup
这样新的文件系统就创建完了可以使用了。当然,也可选择不新建VG,将新增加的硬盘空间加入原VG,在原VG内创建LV。
另外需要注意的是由于是新创建的VG,会占用一个PV,在创建LV的时候,不要选择新增加的所有硬盘空间(这里是300G)。
6. 设置自动挂载
新建的文件系统没有设置的话,在操作系统重启后不会自动挂载,我们可以设置为自动:
修改/etc/fstab文件,在最后增加一行
/dev/mapper/backup-lvBackup /backup xfs defaults 0 0
这里其它参数都很容易理解,只有最后两个0,前面一个是dump备份设置,0为忽略;后一个是fsck磁盘检查设置,0为不检查。
至此,大爷们的要求都已完全满足,我也可以回家吃饭了。