背景:
开发人员反映在使用owncloud上传1G左右的文件会传输失败(并不是直接报错,而是在800M左右的时候报写入磁盘失败)。
分析过程:
1. 由于owncloud此前并没有部署过, 要临时找相关的资料学习需要些时间,并且这开源的文档做得真是不尽人意。
2. 既然不是直接报错,而是上传到一定进度才报错,说明配置是没有问题的,推断是不是空间不够,于是登录虚拟机,查看空间情况,发现系统盘只有800M左右了。
3. 由于我也不知道owncloud是哪个配置文件配置了目录,所以只好让开发重新上传文件,我这边观察磁盘的使用情况,后续定位到了某个目录,如/owncloud/data/temp,应该是上传的文件先放在了缓冲文件,上传完成再挪到了真正的data目录。然而这个目录和/一起共享剩余800M的空间
解决方案:
1. 首先想到了改磁盘的大小,qemu-img可以改大小,不过要重启虚拟机,会造成业务中断,于是放弃
2. 同事以及百度给了一个思路,软链接,具体配置如下
2.2.1 虚拟机增加一个磁盘80G,并且mount到合适的目录,如/data/owncloud
2.2.2 将owncloud需要扩容的目录原样move到此目录
move /owncloud/data/temp /data/owncloud
2.2.3 将/data/owncloud做一个软链接到owncloud原目录,这就在不需要改动owncloud配置文件的情况下,变向扩容
ln -s /data/owncloud /owncloud/data/temp
总结:
1. 只要将原先的数据原封不动的迁移到新目录,数据就不会丢失
2. linux扩容不一定要真的扩充某个分区的大小,软链接也是可以实现的