开发实录

如何『瞬间』迁移在用大资源

2015-05-01  本文已影响42人  Jackong

想像一下,目录/var/www/app/public/upload被用于资源上传存放。
起初,用户量不大,看起来没什么问题。可是用户越来越多了,这里的空间越占越大,慢慢地接近100%。

此时,我们需要将这些资源转移:

现阶段,我选了前者;当然,对于改革,我从未放弃。

考虑到/var和/data是两个不同文件系统。

假设使用:

显然,这方法不靠谱;最后,我的做法是这样的:

#!/bin/bash
rsync -av /var/www/app/public/upload /data/resource/
rsync -av /var/www/app/public/upload /data/resource/
mv /var/www/app/public/upload /var/www/app/public/upload.bk
ln -s /data/resource/upload /var/www/app/public/upload

因为前面已经做了第一次rsync,第二次rsync其实速度会非常快(几乎瞬间),此时将mv移动到同目录下(同文件系统),其实是重命名(也是瞬间),最后,ln软链回去(同时也是瞬间完成)

job done!

上一篇下一篇

猜你喜欢

热点阅读