背景:依数据库服务器192.168.110.6(该数据库服务器没有备库)因为磁盘空间不足,需要扩容,操作系统为Red Hat 6.7,文件格式为ext4,lvm扩容超过16T,导致磁盘无法正常识别;
#parted -s /dev/sdc mklabel gpt #parted -s /dev/sdc mkpart primary ‘1 -1’ #pvcreate /dev/sdc1 #vgs //新加盘盘符为sdc,大小为6.54T #vgextend VolGroup /dev/sdc1 #lvs
#lvextend -L +6T /dev/VolGroup/lv_data #lsblk #resize2fs /dev/VolGroup/lv_data //开始报错,如下:
resize2fs 1.41.12 (17-May-2010)
resize2fs: New size too large to be expressed in 32 bits
#df -hT #lsblk #使用两条命令查询出的lvm大小不一致
#查看Linux系统是32位还是64位,32位只能支持16T。
#getconf LONG_BIT
说明:可以看到该系统为64位,但是lvm到了16T无法识别,猜测可能需要手动启用64位模式,参考链接中提供了解决方法,但未敢尝试,毕竟是数据库服务器,操作造成数据缺失太过危险;最终决定将磁盘缩容到15T;
缩容方法如下:
#umount /indata/
#扫描设备lv_data的文件系统是否正常,若不正常会自动修复错误。扫描过程漫长,等着;
#e2fsck -f /dev/VolGroup/lv_data
#调整lv_data的文件系统容量值为15T。警告,必须大于df显示的已用空间。
#resize2fs /dev/VolGroup/lv_data 15T //继续等
#将lv_data的容量调整成15T
#lvresize -L 15T /dev/VolGroup/lv_data
#lvs查看,发现磁盘容量已经缩容15T;
#mount /dev/VolGroup/lv_data /indata
#挂载正常,终于能正常使用了
#df -hT
=================================================================
参考链接:
centos 6 lvm 扩容超过16T的一个坑
https://blog.csdn.net/vic_qxz/article/details/83151554
查看Linux系统是32位还是64位的方法总结
https://www.jb51.net/article/136105.htm
https://www.cnblogs.com/tiantiandas/p/Linux_big_disk.html
=================================================================