精华资料整理:服务器迁移经验谈

原创
运维 系统运维
有关服务器迁移,一般的实际需求是怎样的?迁移过程中常见的问题又有哪些?以下内容采集编译自Server Fault网站有关migration词条的FAQs,整理了有关服务器迁移方面的常见问题。其中包括硬件迁移、数据库迁移、虚拟平台的迁移等方面。

【51CTO精选编译】有关服务器迁移,一般的实际需求是怎样的?迁移过程中常见的问题又有哪些?以下内容采集编译自Server Fault网站有关migration词条的FAQs,整理了有关服务器迁移方面的常见问题。

 

迁移单台服务器需要注意什么?

Q:我有台Ubuntu Server 9.04,跑着web,数据库和mail,整个硬盘有5GB数据。打算换台好机子,但是我没做过迁移,能不能给些入门指导?

A:首先,备份所有的东东,并在新机子上恢复。这包括:

1、所有的数据库dump出来,在新机子上restore

2、webserver、数据库、email的配置文件复制过去

当然,免不了会有些停机时间。想减少停机时间,还有几个建议:

1、迁移前先对所有email数据做一次rsync,在所有都配置、测试完毕之后,将旧服务器上的服务停掉,仅rsync***的数据,启动新服务器

2、直到切换之前,使用MySQL replication确保两台服务器的数据库内容一致

3、rsync可以用于一切数据,甚至数据库也可以,当然为了避免错误,数据库还是使用dump或replication吧。

如果配置文件比较多比较零散,怕出错的话,建议列一张清单,然后一条一条执行。另外,所有的配置文件都应该在 /etc 下面,除非没用软件包或者安装了专有软件的情况才有在 /opt 下面的。

如何把用户账户迁移到新的Linux机器?

Q:我们有个内部Subversion库运行在Linux机子上,Ubuntu 8,通过svn+ssh验证方式登录。最近入手了台新机子,也装了Linux,Ubuntu 9,用RAID 1+0配置了更大磁盘空间,所以想把Subversion库迁移过去。

我怎么把所有的user,group和文件信息都迁移过去?我打算把 /etc/passwd 和 /etc/group 以及所有 /home 下的用户目录都复制过去,这样就可以了么?

A:你需要复制的内容包括:

/etc/passwd

/etc/shadow

/etc/group

/etc/gshadow

/var/spool/mail

/home

详细情况可参考本篇文章

A:用户不多的话,直接useradd(定义同样的uid和gid)会比较快一些。

另外,在新机子上创建号用户之后,记得将老机子上的登录禁止掉,并用rsync把用户的home目录同步过来。迁移完毕之后,重置一下密码即可。

之所以要避免复制 /etc/passwd 和 /etc/group ,是防止你把机子搞乱之后自己(或root)登录不进去了。而去如果发行版不同,对这些文件的解读也会有区别,所以要谨慎。一个不小心,可能会开放了guest登录,或导致其他安全问题。当然了,虽然说复制密码文件要谨慎,但是也不用过于神经质。

从Apache迁移到Nginx好吗?有什么经验分享?

Q:我目前使用Apache的以下模块:多个虚拟主机,Server Side Include,以及FastCGI,想问问各位有关迁移到Nginx的问题。大家有什么经验分享,比如迁移过程中的问题,迁移之后有没有好处,nginx上有用的模块等?

A:我个人经验而言是值得的。比如我有个Magento搭建的电子商务站(大家都知道Magento是很慢的)。迁移到nginx+php-fcgi/php-fpm+apc之后,我这边的性能提高了100%。所以,除非Apache上有必要的模块,否则我推荐Nginx。具体情况可以参考我的Magento调优笔记

A:你要的这三个模块:多个虚拟主机,SSI,还有FastCGI,Nginx都支持。我这边同时应用Lighttpd,Apache和Nginx。无法彻底抛弃Apache,是因为我们需要运行一些自定义模块(包含一个改良版mod_pubcookie),而这些功能很难迁移到Lighttpd/Nginx上。

我用Lighttpd做轻量内容服务器,但是它在FreeBSD上的表现不是很好(尤其是使用FreeBSD的sendfile / kqueue syscalls 的时候Lighttpd会死掉,还连带着把整个服务器也弄宕机)。而Nginx方面我就没遇到过任何问题。所以我正在用Nginx替换掉所有的Lighttpd。

如何快速迁移MySQL?

Q:我有大概40来个中小规模的MySQL数据库,需要把它们从一个whm服务器的数个cpanel帐号迁移到另一个服务器上。我本来的想法是手动一个一个dump然后import,但是很费时间,有什么更快的办法么?

A:能用ssh的话,我知道一个很快的方法:mysqldump配合几个参数,并和ssh链起来使用。这样可以让源数据库一边不中断的输出,目标数据库一边不中断的导入,而去也不会用到任何临时文件:)

源服务器# mysqldump --user=user1 --all-databases | ssh 目标服务器 'mysql --user=user2'

如果你在源服务器上使用你的私人密钥和ssh-agent验证过,就可以使用ssh的-A参数来建立连接,就不用被目标服务器的验证信息烦来烦去了。当然,Agent forwarding有安全隐患,要谨慎使用。

Q:我的MySQL备份文件怎么在SQL Server 2008里恢复?

A:你不能在SQL Server 2008里自动restore一个MySQL的备份文件。你可以写一个转换脚本,或者使用微软提供的DTS等工具。

服务器配置如何迁移?

Q:我有台Debian Lenny服务器,慢得很,所以最近买了台新机子,想要将整个Debian配置——包括用户账户、路径、安装的软件等——迁移过去。有什么比较快速的做法推荐?

A:网络安全而给力的话,netcat配合tar是***的方式。具体执行方法参考这篇文章。不要忘记用live distro重启服务器,chroot进系统重装一下MBR。如果用ACL的话,也不要忘记使用bsdtar。

A:Puppet或Cfengine这样的配置管理工具会比较简单些。如果之前做过部署,那么只要应用相同的classes就能让它自动部署你的配置。就算没做过,现在开始也不晚,给puppet做下描述,在原机子上应用检查一下,再应用到新机子上,这样以后就可以随时建立同样配置的新服务器了。虽然***次使用puppet做配置会更加费时间,但长远来看,绝对是更加节省时间的。

A:直接把整台机器rsync过去。

虚拟机实时迁移的相关问题?

Q:以前一直以为AMD和英特尔服务器之间是没有虚拟系统支持实时迁移的,直到今天才从KVM FAQ上看到KVM是支持这个实时迁移,而去2008年就有案例的。现在2011年了,想问一下现在有哪些主流的虚拟系统(ESXi,Xen,Hyper-V等)支持AMD和英特尔服务器之间的实时迁移的?

A:ESX/ESXi的话,可以通过一系列“高级配置”和VM CPU-bit设置实现AMD和英特尔之间的vmotion——不过,这样造成的问题比它带来的便利要多得多。

ESX/ESXi之所以不默认允许跨CPU架构的实时迁移,因为不同的CPU家族的能力各有不同。比如一个现代的英特尔CPU上跑着一个使用了SSE4.2指令的实例,那么你把它vMotion到一个不支持该指令的CPU上,实例就会崩溃。

解决方法之一是设定一个“***公约数”,即在一个集群中,采用最烂的CPU来设定VM的运行方式,忽略那些新CPU里面的各种功能和指令。

【51CTO.com独家特稿,转载请注明原文作者和出处。】

【编辑推荐】

  1. 用ezjail来创建和管理jail虚拟机
  2. 愚人节礼物:IT恶作剧手段集锦
  3. 天涯社区运维刘天斯:因分享而快乐 因快乐所以坚持
责任编辑:yangsai 来源: 51CTO.com
相关推荐

2009-01-05 10:35:30

2009-01-06 19:00:49

服务器安全网络

2011-09-09 09:50:40

Oracle

2010-09-07 16:52:50

DHCP服务器故障

2010-08-27 09:00:10

DHCP服务器迁移

2010-09-01 10:56:57

DHCP服务器

2009-09-14 15:04:44

2024-05-28 07:01:29

2011-09-13 11:26:09

交换机端口分析器SPAN交换机

2011-11-14 16:41:32

51CTO技术沙龙Exchange迁移

2011-06-27 15:42:10

IBM云计算云环境

2015-09-16 10:13:16

游戏性能

2017-01-20 09:43:12

日志告警挖掘

2010-08-17 13:23:49

2012-07-13 14:25:59

2009-06-29 15:39:53

Servlet和JSPServlet引擎

2011-08-15 10:27:48

2014-03-13 09:20:38

jQueryAngularJs

2011-06-21 16:26:19

SEO内部优化

2013-08-02 11:23:45

点赞
收藏

51CTO技术栈公众号