记一次腾讯云实例迁移
迫于最近的一台Debian 9的实例即将过期,本着节约资金的原则,又开了一年的学生机。
原由
1核1G, 50G数据盘,50G系统盘,当初搭建环境的时候,也是考虑十分不足,为今天埋下了坑。因为Mysql上要存储大量的数据(高达30G),故将mysql所在的文件夹/usr
放在了数据盘,并清空了系统盘上的/usr
内的所有文件(掩面)。
行动
一开始迁移的时候是这么考虑的,将系统盘制作镜像,数据盘制作快照并新建硬盘,挂载在新的实例上。殊不知却忽视了制作系统镜像时的小提示
Linux实例制作自定义镜像请确认 /etc/fstab不包含数据盘配置,否则会导致使用该镜像创建的实例无法正常启动。如果有挂载数据盘, 需要注释或删掉/etc/fstab中自行配置的数据盘的相关配置。
用过aws之后,体验qcloud,不得不吐槽一番,其制作镜像的速度真慢。当然,我这种情况,就算注释掉了/etc/fstab
也是没用的,因为系统盘的/usr
被我清空了。所以才导致了一下的情况。
- 重装系统过程中,一直提示重装系统,导致我边安装边吐槽良心云真垃圾。
- 假的重装完毕后,采用
ssh
无法登入,一直提示time out
此时,我也大概了解到是因为/usr确实的缘故,但Linux技术实在比较菜,不知如何下手,当时就想将原实例系统盘扩容,再将数据盘内/usr的数据迁移至系统盘,这里不得不说,qcloud居然不支持直接对系统盘扩容,只能在重装系统的时候对系统盘扩容。考虑到风险,还是先备份了全部盘,并制作了镜像,开始尝试对原实例进行重装系统,此时,考虑到原实例会自动挂载数据盘,重装后应该也不会有问题吧,结果,问题依旧,原实例都无法启动操作了。至此,深感无奈,感觉自己没什么能做的了(当时还不知道使用VNC),是不是只能在新实例上挂载数据盘,手动cp了,系统盘快照不能制作新硬盘,其上的数据是不是没希望了,当时感觉好绝望。
没办法,只能发工单了,还好,工单解决还比较顺利,也让我了解到了VNC以及Linux的各种启动模式。还行,比较顺利地完成了对原实例扩容。
接下来就是将数据盘上的内容全部转移到系统盘上,数据盘上/usr
是无法直接umount的,我也是一头雾水,当时,接触到了VNC,一直想在其上突破,只可惜以失败告终。好在得到了Monad大佬的帮助,瞬时茅塞顿开。
1 | mkdir /tmp/root # 新建一文件夹用来挂载系统盘 |
注释或删掉/etc/fstab
中自行配置的数据盘的相关配置,再重启实例大概就解决了。