Linode跨节点迁移:从Tokyo到Fremont
背景
上一篇博客交代了如何在 Linode 上搭建邮件服务器,并配置好各种协议、记录来投入实际使用。
由于实践过程中,曾经尝试使用明文协议与服务器交流数据,可能泄露了账号、密码信息,造成之后被攻击发送垃圾邮件(详细情况类似于如下链接:链接 1,链接 2),IP 被上了黑名单,在 mail-tester.com 上的测试评分为 0 分,同时还收到了 Linode 的警告。
为了能继续使用邮箱服务,我只好想着法子给 Linode 换一个 IP。但原则上 Linode 是不支持换 IP 的。幸运的是,它支持 VPS 的迁移,而且方便快捷。从 Tokyo 节点迁移到 Fremont 节点后 IP 一般会发生变动(对于网络延迟,权衡了下大家的说法,Fremont 还不错:官方测速),这样就可以间接的更换 IP 了。
迁移过程很简单,这里做一下记录。
迁移准备
发出迁移请求
Linode 有比较完善的 Support。对于迁移这种情况,可以在 Support 页面发出如下请求:
1 |
|
1 分钟之后,我就收到了技术支持的回复:
1 |
|
此时,Linode 控制面板中已经多了一个迁移的提醒:You have a migration pending!
。
不过先不要着急迁移,因为迁移过程是不可恢复的,我们需要首先将 VPS 中得重要数据备份到本地。注意如回复中所说,这种备份不同于 Linode 中的备份服务。
备份数据
找到一份科学的全盘备份数据方式:linode 用户通过 ssh+dd 命令复制整个磁盘。不可否认 dd 做传输比 scp 一个个拷贝文件快得多,但由于需要将整个盘 5G 数据全部通过网络传输,而家里网速慢,传输数据只有大概 100KB/s 的速度,需要等待太长时间。
实际上,我所需要备份的文件无非是/home
目录下得所有数据和部分服务的配置数据(比如 postfix、dovecot、nginx 等),总共大概也就 100MB,于是决定选择性的用 scp 传输备份数据:
scp root@vps-ip:/backup /home/backup #vps-ip 替换为服务器 IP 地址
同时由于零散的传输文件效率不高,可以考虑先将服务器端所有小文件使用 tar 命令压缩到一个包里:
tar zcvf backup.gz /home /etc/nginx/sites-enable
在本地的解压缩命令如下:
tar zxvf backup.gz
当然,实际上我们都不会希望备份数据需要被使用到啦,而迁移 vps 丢失数据的概率应该也是很小的。
修改 DNS 记录
由于迁移过程需要大概一个多小时,网站服务的不可访问是无法避免了。只好尽可能将迁移过程放在深夜没有用户访问需求的时候。
从这个角度讲,DNS 的修改也没有特别的及时性要求。在前已完成前修改好 DNS 服务器中的 A 记录、MX 记录等配置即可。
迁移
在正式迁移之前,需要关闭服务器。
然后点击 Linode 控制面板中的 migration 按钮。接下来,就是一个多小时的等待。
后续
完成迁移之后,开启 VPS,还需要注意修改服务中 IP 相关的配置。比如 shadowsocks 里的 json.config 中的 server ip。
一切顺利完成后,别忘了去 Support 界面回复 Ticket =).
如果你考虑租用 Linode 机器,而又不吝啬使用我的推荐码,本博客不胜感激=).
原文地址:http://biaobiaoqi.me/blog/2014/01/26/migrate-linode-vps-from-tokyo-to-fremont/
版权声明:自由转载-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0
Linode跨节点迁移:从Tokyo到Fremont的更多相关文章
- 利用Snapshot快速跨Region迁移服务器
当你需要对现有的网站进行跨区域迁移,或者是部署DR Site的时候,又不希望重新部署应用,有什么好办法呢?其实你可以利用Azure的磁盘snapshot进行磁盘级的复制,这样可以减少很多部署应用的时间 ...
- mysql跨节点join——federated引擎
一. 什么是federated引擎 mysql中的federated类似于oracle中的dblink. federated是一个专门针对远程数据库的实现,一般情况下在本地数据库中建表会在数据库目录中 ...
- Spring Cloud Config Server 节点迁移引起的问题,请格外注意这一点!
前言: 虽然强烈推荐选择使用国内开源的配置中心,如携程开源的 Apollo 配置中心.阿里开源的 Nacos 注册&配置中心. 但实际架构选型时,根据实际项目规模.业务复杂性等因素,有的项目还 ...
- Redis源码解析:28集群(四)手动故障转移、从节点迁移
一:手动故障转移 Redis集群支持手动故障转移.也就是向从节点发送"CLUSTER FAILOVER"命令,使其在主节点未下线的情况下,发起故障转移流程,升级为新的主节点,而原 ...
- 虚拟化学习笔记-KVM虚拟化跨机迁移原理
参考:https://zhuanlan.zhihu.com/p/27055555 在线迁移过程划分为三个阶段:准备阶段.迁移阶段和切换阶段.迁移环境为虚拟化底层KVM+Qemu.虚拟化管理Libvir ...
- 使用ADMT和PES实现window AD账户跨域迁移-介绍篇
使用 ADMT 和 pwdmig 实现 window AD 账户跨域迁移系列: 介绍篇 ADMT 安装 PES 的安装 ADMT:迁移组 ADMT:迁移用户 ADMT:计算机迁移 ADMT:报告生成 ...
- redis跨实例迁移 & redis上云
1)redis跨实例迁移--源实例db11迁移至目标实例db30 root@fe2e836e4470:/data# redis-cli -a pwd1 -n 11 keys \* |while rea ...
- HarmonyOS新能力让数据多端协同更便捷,数据跨端迁移更高效!
作者:yijian,终端OS分布式文件系统专家:gongashi,终端OS分布式数据管理专家 HarmonyOS作为分布式操作系统,其分布式数据管理能力非常重要.我们也一直围绕持续为开发者带来全局&q ...
- dolphinscheduler简单任务定义及复杂的跨节点传参
dolphinscheduler简单任务定义及跨节点传参 转载请注明出处 https://www.cnblogs.com/funnyzpc/p/16395094.html 写在前面 dolphinsc ...
随机推荐
- POJ 3617 Best Cow Line ||POJ 3069 Saruman's Army贪心
带来两题贪心算法的题. 1.给定长度为N的字符串S,要构造一个长度为N的字符串T.起初,T是一个空串,随后反复进行下面两个操作:1.从S的头部删除一个字符,加到T的尾部.2.从S的尾部删除一个字符,加 ...
- 双向链表(自己写的c++类)
UVA还是上不去T T哭瞎了. 只好老老实实的研究上回买的书了. 写得有点长.好吧,我只是来复习C++类的. 特意用class 而不用struct写链表. 数据结构还没学...双向链表就当先预习了. ...
- uva 10710 - Chinese Shuffle(完美洗牌)
option=com_onlinejudge&Itemid=8&category=474&page=show_problem&problem=1651"> ...
- php课程 10-35 php实现文件上传的注意事项是什么
php课程 10-35 php实现文件上传的注意事项是什么 一.总结 一句话总结:记得限制大小和类型,还有就是用move_uploaded_file($sfile,$dfile);函数把上传到php临 ...
- 每日技术总结:setInterval,setTimeout,文本溢出,小程序,wepy
前言: 项目背景:vue,电商,商品详情页 1.倒计时,倒计到0秒时停止 data () { return { n: 10 } }, created () { let int = setInterva ...
- js json简介(json的本质也是字符串)(用于服务器和客户端通信)
js json简介(json的本质也是字符串)(用于服务器和客户端通信) 一.总结 1.json的语法和js的语法非常像,只是json的键和值都是双引号,因为json的本质也是字符串 2.json是一 ...
- gdbserver远程调试嵌入式linux应用程序方法
此处所讲的是基于gdb和gdbsever的远程调试方法.环境为:PC机:win7.虚拟机:10.04.下位机:飞嵌TE2440开发板. 嵌入式linux应用程序的开发一般都是在linux里面编写好代码 ...
- ibatis 开发中的经验 (三)Struts+Spring+Ibatis 开发环境搭建
ibatis项目中用到了一些基本配置,须要和spring集成,看了看这些配置大部分同hibernate中是一样的,也比較好理解.仅仅是须要他们的配置中每个类的含义,还有当中的一些细节 ...
- Java链接Redis时出现 “ERR Client sent AUTH, but no password is set” 异常的原因及解决办法
Java链接Redis时出现 "ERR Client sent AUTH, but no password is set" 异常的原因及解决办法 [错误提示] redis.clie ...
- 从Lua调用C
从Lua调用C: 方式:C函数从栈中获取函数參数(第一个參数总是局部栈的索引1),将结果压入栈中,C函数须要返回结果数量. 每一个函数都有自己的局部私有栈 样例: static int l_sin(l ...