背景

上一篇博客交代了如何在 Linode 上搭建邮件服务器,并配置好各种协议、记录来投入实际使用。

由于实践过程中,曾经尝试使用明文协议与服务器交流数据,可能泄露了账号、密码信息,造成之后被攻击发送垃圾邮件(详细情况类似于如下链接:链接 1,链接 2),IP 被上了黑名单,在 mail-tester.com 上的测试评分为 0 分,同时还收到了 Linode 的警告。

为了能继续使用邮箱服务,我只好想着法子给 Linode 换一个 IP。但原则上 Linode 是不支持换 IP 的。幸运的是,它支持 VPS 的迁移,而且方便快捷。从 Tokyo 节点迁移到 Fremont 节点后 IP 一般会发生变动(对于网络延迟,权衡了下大家的说法,Fremont 还不错:官方测速),这样就可以间接的更换 IP 了。

迁移过程很简单,这里做一下记录。

迁移准备

发出迁移请求

Linode 有比较完善的 Support。对于迁移这种情况,可以在 Support 页面发出如下请求:

1
2
3
4
5
6
7
Hi,

I've met with some problems with my server. And I think it's a solution to migrate my server from Tokyo to Fremont.

Could you please do me a favor?

Thanks a lot!

1 分钟之后,我就收到了技术支持的回复:

1
2
3
4
5
6
7
8
9
10
Hello,

Your migration to our Fremont datacenter has been configured. Please log into the Linode Manager, shut down, and click the migrate button to move to your new server. Your disk images will be moved with you. The migration should take approximately 10-15 minutes per gigabyte of data to complete. Please note that any existing backups for this Linode will be purged and will not be recoverable after you initiate the migration.

Your new IP address is: xxx.xxx.xxx.xxx

We ask that you begin this migration within 24 hours and let us know when it is complete. Thanks in advance!

Regards,
Jack Stitt

此时,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的更多相关文章

  1. 利用Snapshot快速跨Region迁移服务器

    当你需要对现有的网站进行跨区域迁移,或者是部署DR Site的时候,又不希望重新部署应用,有什么好办法呢?其实你可以利用Azure的磁盘snapshot进行磁盘级的复制,这样可以减少很多部署应用的时间 ...

  2. mysql跨节点join——federated引擎

    一. 什么是federated引擎 mysql中的federated类似于oracle中的dblink. federated是一个专门针对远程数据库的实现,一般情况下在本地数据库中建表会在数据库目录中 ...

  3. Spring Cloud Config Server 节点迁移引起的问题,请格外注意这一点!

    前言: 虽然强烈推荐选择使用国内开源的配置中心,如携程开源的 Apollo 配置中心.阿里开源的 Nacos 注册&配置中心. 但实际架构选型时,根据实际项目规模.业务复杂性等因素,有的项目还 ...

  4. Redis源码解析:28集群(四)手动故障转移、从节点迁移

    一:手动故障转移 Redis集群支持手动故障转移.也就是向从节点发送"CLUSTER  FAILOVER"命令,使其在主节点未下线的情况下,发起故障转移流程,升级为新的主节点,而原 ...

  5. 虚拟化学习笔记-KVM虚拟化跨机迁移原理

    参考:https://zhuanlan.zhihu.com/p/27055555 在线迁移过程划分为三个阶段:准备阶段.迁移阶段和切换阶段.迁移环境为虚拟化底层KVM+Qemu.虚拟化管理Libvir ...

  6. 使用ADMT和PES实现window AD账户跨域迁移-介绍篇

    使用 ADMT 和 pwdmig 实现 window AD 账户跨域迁移系列: 介绍篇 ADMT 安装 PES 的安装 ADMT:迁移组 ADMT:迁移用户 ADMT:计算机迁移 ADMT:报告生成 ...

  7. redis跨实例迁移 & redis上云

    1)redis跨实例迁移--源实例db11迁移至目标实例db30 root@fe2e836e4470:/data# redis-cli -a pwd1 -n 11 keys \* |while rea ...

  8. HarmonyOS新能力让数据多端协同更便捷,数据跨端迁移更高效!

    作者:yijian,终端OS分布式文件系统专家:gongashi,终端OS分布式数据管理专家 HarmonyOS作为分布式操作系统,其分布式数据管理能力非常重要.我们也一直围绕持续为开发者带来全局&q ...

  9. dolphinscheduler简单任务定义及复杂的跨节点传参

    dolphinscheduler简单任务定义及跨节点传参 转载请注明出处 https://www.cnblogs.com/funnyzpc/p/16395094.html 写在前面 dolphinsc ...

随机推荐

  1. POJ 3617 Best Cow Line ||POJ 3069 Saruman's Army贪心

    带来两题贪心算法的题. 1.给定长度为N的字符串S,要构造一个长度为N的字符串T.起初,T是一个空串,随后反复进行下面两个操作:1.从S的头部删除一个字符,加到T的尾部.2.从S的尾部删除一个字符,加 ...

  2. 双向链表(自己写的c++类)

    UVA还是上不去T T哭瞎了. 只好老老实实的研究上回买的书了. 写得有点长.好吧,我只是来复习C++类的. 特意用class 而不用struct写链表. 数据结构还没学...双向链表就当先预习了. ...

  3. uva 10710 - Chinese Shuffle(完美洗牌)

    option=com_onlinejudge&Itemid=8&category=474&page=show_problem&problem=1651"> ...

  4. php课程 10-35 php实现文件上传的注意事项是什么

    php课程 10-35 php实现文件上传的注意事项是什么 一.总结 一句话总结:记得限制大小和类型,还有就是用move_uploaded_file($sfile,$dfile);函数把上传到php临 ...

  5. 每日技术总结:setInterval,setTimeout,文本溢出,小程序,wepy

    前言: 项目背景:vue,电商,商品详情页 1.倒计时,倒计到0秒时停止 data () { return { n: 10 } }, created () { let int = setInterva ...

  6. js json简介(json的本质也是字符串)(用于服务器和客户端通信)

    js json简介(json的本质也是字符串)(用于服务器和客户端通信) 一.总结 1.json的语法和js的语法非常像,只是json的键和值都是双引号,因为json的本质也是字符串 2.json是一 ...

  7. gdbserver远程调试嵌入式linux应用程序方法

    此处所讲的是基于gdb和gdbsever的远程调试方法.环境为:PC机:win7.虚拟机:10.04.下位机:飞嵌TE2440开发板. 嵌入式linux应用程序的开发一般都是在linux里面编写好代码 ...

  8. ibatis 开发中的经验 (三)Struts+Spring+Ibatis 开发环境搭建

             ibatis项目中用到了一些基本配置,须要和spring集成,看了看这些配置大部分同hibernate中是一样的,也比較好理解.仅仅是须要他们的配置中每个类的含义,还有当中的一些细节 ...

  9. Java链接Redis时出现 “ERR Client sent AUTH, but no password is set” 异常的原因及解决办法

    Java链接Redis时出现 "ERR Client sent AUTH, but no password is set" 异常的原因及解决办法 [错误提示] redis.clie ...

  10. 从Lua调用C

    从Lua调用C: 方式:C函数从栈中获取函数參数(第一个參数总是局部栈的索引1),将结果压入栈中,C函数须要返回结果数量. 每一个函数都有自己的局部私有栈 样例: static int l_sin(l ...