基于OpenVZ架构VPS的一些“硬伤”

前阵子经历了一番对VPS重新部署的波折,发现了不少问题。

惭愧,都用了这么久的VPS了,到现在才开始手工调戏VPS。。

不过鹚这次是深深体验到基于OpenVZ架构的Linux版VPS的一些缺陷了。

这缺陷不是所谓的OpenVZ会超买等等原因。

其实按道理说,没有超卖的OpenVZ,比同配置的Xen的VPS性能要好一些。

OpenVZ架构嘛,不像Xen,是一种不完全的虚拟化。

主要表现在,内存共享(PS:其实这是容易超卖的主要原因),然后不支持Linux特有的Swap(交换分区)。

PS:其实我给我的Ubuntu分配了2GB的Swap空间,却基本上没用到……

因为不是彻底的虚拟化,所以像PPTP这种比较底层的VPN应用是无法支持的,不过OpenVPN还是可以用,但也得发Ticket给Burst要它给你开启Tun/Tap。。

但是以上的这些,都不太影响鹚对VPS的正常使用。

可不是这次鹚手工配置VPS的话,还真的没有发现OpenVZ本质上的缺陷。

本来Apache,Mysql,PHP,Django,Python都安装好了的。

按照默认方案,就只差一个FTP服务端了。

我是这样的,因为我在本地 “模拟” 出的 VPS 是用的Pure-FTPd。

之所以选Pure-FTPd,主要是它有一个强大的Web面板,可以套接Mysql实现虚拟FTP用户的添加,用虚拟FTP来进行认证,还可以指定虚拟用户的Charoot。

这对于懒得打命令的鹚是很方便的。

但是,在VPS上部署Pure-FTPd的时候,鹚却死活装不上去。

dpkg老是返回如下错误:

421 Unable to switch capabilities : Operation not permitted
invoke-rc.d: initscript pure-ftpd-postgresql, action “start” failed.

E: Sub-process /usr/bin/dpkg returned an error code (1)

起初,我还以为是dpkg的bug,于是按照网友提供的方法去修复……但是却毫无效果!

这令我百思不得其解,于是疯狂的Google,终于在国外的论坛上找到了一点启示。

而且,他们也都是通过软件仓库库安装Pure-FTPd的时候与我遇到的同样问题。

其实问题的重点在这里:

421 Unable to switch capabilities : Operation not permitted

鹚也不是很清楚,capabilities到底是内核了一种功能,还是内核的一个models(模块)。

但是到底是内核没有此功能,还是没有此模块呢?

若是缺乏此功能和此模块的话,那么我可不可以自己编译一个支持capabilities的内核来替代VPS的默认内核呢?

对啊,既然连Pure-FTPd这样优秀的FTP服务器,都要capabilities的支持,那为什么Burst的VPS就没有这样的支持呢?

想着想着,老外是这样解释的:

基于OpenVZ架构的Linux VPS默认是不支持capabilities模式的,如果非要其支持的话,就要VPS管理员,在母机上用类似如下命令开启对么台VPS小机的支持:

VPSID=101
for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
do
vzctl set $VPSID –capability ${CAP}:on –save
done

也就是说,造成Pure-FTPd无法安装的原因,是VPS的 “硬件” 不支持Linux内核的capabilities模式!

其实,要想Linux可以跑在OpenVZ上,就必须要对Linux内核进行很大程度的修改,所以,对于Linux VPS,尤其是基于OpenVZ架构的VPS,鹚建议 —— 最好不要升级内核!

不过老外也提供了解决方案,如果你确实想使用Pure-FTPd或者Pure-FTPd-Mysql的话,可以自己编译安装,并且在编译时加入如下参数:

–without-capabilities

编译我就懒得搞了,鹚不太喜欢自己编译软件,因为自己编译的软件,鹚不晓得配置文件在那些地方,所以后面就换上了ProFTPd。

Oh,想知道详情的话可以参考如下资料:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=272527

http://www.howtoforge.com/forums/archive/index.php/t-46503.html

另外,对于基于OpenVZ架构的VPS,虽然可以修改时区,却无法使用像 date -s xx:xx:xx 这样的命令修改时间,就算你是Root!

鹚的分析是,修改时间需要撼动主板的BIOS,而OpenVZ又是不彻底的虚拟化,所以……

当然,鹚不知道OpenVZ的VPS无法修改时间,是不是特例,不晓得完全虚拟化的Xen也是不是一样的无法修改时间……

不过,对于OpenVZ,若是真想修改系统时钟的话,还是可以发Ticket给客服的。

鹚是用的OpenVZ架构的VPS,而且是最实惠的Burst。

人家说Burst超买厉害,但是鹚用了这么久,基本上没出现宕机,而且各方面都还比较稳定。

所以鹚才不管你超不超卖呢,只要鹚可以正常使用就OK了。

不过,OpenVZ超买倒是其次,像鹚如上所说的那些 “硬性的缺陷”,才是真的比较纠结的。

这会造成很多软件无法正常的使用。

所以,对于想买VPS的朋友,如果你资金比较丰富,或者对Linux不是很熟悉的话。

鹚还是建议 —— 买Xen吧。

About Mucid

My life is brilliant !
This entry was posted in Technology and tagged , , , , , , . Bookmark the permalink.

77 Responses to 基于OpenVZ架构VPS的一些“硬伤”

  1. 木JJ says: Google Chrome 10.0.648.151 Google Chrome 10.0.648.151 Mac OS X  10.6.6 Mac OS X 10.6.6

    我的VPS也折腾了老半天.photonvps的XEN vps计划搭配lnmp,经常出现出现502错误,让我很是头疼.还满怀念以前用hostgator的日子,轻松.有什么问题交给他们的客服去做就行了.

  2. 独自流浪 says: Google Chrome 8.0.552.224 Google Chrome 8.0.552.224 Windows 7 Windows 7

    编译安装就是时间久,看CPU的性能
    OpenVZ不能改时区?这个没注意,不过好像我之前照着网上的一些方法,是没成功

  3. 诺基亚5250主题下载 says: Internet Explorer 8.0 Internet Explorer 8.0 Windows XP Windows XP

    有些真的看不懂 哎

  4. nomaka says: Google Chrome 10.0.648.6 Google Chrome 10.0.648.6 Windows XP Windows XP

    要Pure-FTPd 干啥 有ssh 可以用sftp嘛….还省内存….像我有问题直接tk客服…

  5. 博客之家 says: Google Chrome 10.0.642.2 Google Chrome 10.0.642.2 Windows XP Windows XP

    我连vps都没用过呢。