服务器迁移经验谈
迁移单台服务器需要注意什么?
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,但是很费时间,有什么更快的办法么?
相关新闻>>
- 发表评论
-
- 最新评论 更多>>