我们对目前的托pipe服务提供商并不满意,所以我们希望转移到另一个城市的另一家公司。 我们的业务是全球范围内访问的在线学校(这意味着我们需要24×7的可用性,但可能需要1-2小时的停机时间)。 世界各地的大学提供我们的课程作为自己的课程,所以这些协议的一部分表示,如果我们要支付任何一个月,我们在任何一个月内可以有不超过X次的停机时间。
所以我有一个计划,但是我想公开expression一下,看看是否有其他人看到我可能忽略的问题,或者如果你有更好的计划,你可以build议。
我们的设置:英特尔模块化服务器,带有jails的FreeBSD,apache,mysql,php。 学生login的域名是portal.mydomain.com
我在想,我们可以在站点B(新站点)放置我们服务器的第二个实例,并给它一个新的域名(portal1.mydomain.com)。 然后,我们可以强制来自portal.mydomain.com的所有stream量redirect到portal1.mydomain.com。 在这一点上,我们将DNS的原来的域名更改为具有新的IP地址。 那么我们会给它48小时的DNS更改传播。 到那时,我们只需更改新实例上的apache来响应portal.mydomain.com而不是portal1,然后一切都照常运行。
我忽略了这个计划中有没有漏洞? 有没有更好的方法来做到这一点?
为此,您必须确保您的应用程序不依赖于当前的域名,并且可以在portal1.mydomain.com下运行。
我过去的经历令人遗憾,事实并非总是如此。
如果你能确定域名不是问题,你的计划听起来不错。
当你切换到新的数据中心时,你显然需要同步MySQL数据库(在你的计划中你没有提到这一点)。
我将portal.mydomain.com DNSlogging的TTL设置为一个较低的值,所以它不需要48小时传播。
如果你不能确定,我的build议是这样的:
*降低portal.mydomain.com的TTL(5分钟)
*在新的DC中设置一个新的实例,同时监听portal.mydomain.com
*保持MySQL数据库从旧到新同步(复制)
*停止旧的DC中的Apache
**等待最后一个数据库更改复制
**停止复制新的数据库,configuration为独立的
**更改portal.mydomain.com的DNSlogging以指向新实例的IP
**configuration旧的Apache实例以访问新的DC中的MySQL DB
*等待,监视旧的Apache的请求,不再使用时closures
*再次将TTL设置为正常值
这也假设了一些事情,像DC之间的MySQL连接是可能的。