VolumeDrive:$4.95 512MB OpenVZ VPS

volumedrive

VolumeDrive 的低价 dedicated server 业务比较受关注,和 BurstNET 一样走的是低价路线,但远远没有 Burst 做的大,以前 VPSee 介绍的另一个 VPS 服务商 Up2vps 就是用的他们家的服务器。VolumeDriver 的 VPS 在官方网站上找不到,只有在 WHT 上才可以看到,估计他们的 dedicated server 业务不景气,想临时利用多余的服务器来做 VPS 业务,他们可能不是真正想进入 VPS 业务,也或许是想试试水为以后发展 VPS 业务做准备,他们的数据中心在 Scranton, PA,VPS 使用 vePortal 控制面板。 VPS 配置如下:

VPS Package #1 VPS Package #2
512MB Guaranteed 1024MB Guaranteed
1GB Burst 2GB Burst
30GB 硬盘 50GB 硬盘
1000GB 1500GB
1 IP 2 IP
4.95美元 8.95美元

服务器配置信息:

Our nodes vary. However, for the most part we utilize dual Xeon Harpertown CPUs, ECC Fully Buffered ram and raid 10 hard drive configurations.

Newwebsite:$6.95 512MB OpenVZ VPS

newwebsite

Newwebsite 来自美国的 Virginia 州,域名是1997年注册的,起初的业务也是做网站设计,后来逐步过渡到 hosting,2001年的时候自己打造了一个小规模的数据中心,后来慢慢发现自己拥有数据中心成本太高、不值得,于是在2009年彻底放弃了自己的数据中心而改用租用数据中心,他们把所有设备都搬到了 OnePartner.com,据称 OnePartner 是美国唯一的 Tier III 数据中心,100% uptime 保证。Newwebsite 的业务很广,基本涉入 hosting 的各条业务线,从域名注册、VPS 到 SSL Certificates、Reseller 等,24小时电话支持。这款 VPS 在 Newwebsite 官方网站上的原价是29.95美元每月,现在在 WHT 上有优惠,只要6.95美元,让人不敢相信的是他们的每个 VPS 还送一个 DirectAdmin,假设他们是团购的 DirectAdmin license,那也要9美元1份啊,6.95刀的 VPS 不是亏本么?他们还有每日备份,2个 IP,还可以 Reverse DNS,难怪 LowEndBox 上有人给他们留评论说 “too good to be true”,VPSee 提醒大家这家 VPS 的优惠已经超出了基本常识和经济学可以理解的范畴,他们可能是在做慈善或者类似 OneNetwork 那样打算跑路。VPS 配置如下:

SolusVM 控制面板
512MB RAM
25GB 硬盘
500GB 流量
2个 IP
6.95美元

没有服务器配置信息。

DamnVPS:$5.95 512MB OpenVZ/Xen VPS

damnvps

DamnVPSrusfoster 离开 VAServ 后创办的另一家 VPS 公司,VAServ 这个名字可能很多人都不熟悉,但是说到 FsckVPS 就会有很多人回忆起去年因为 HyperVM 漏洞导致 FsckVPS 服务器被黑、上演上千客户完全丢失数据的杯具。VAServ 就是 FsckVPS 的姐妹站点(sister site),也是 HyperVM 的受害者之一,损失也很惨重。现在 DamnVPS 推出 beta VPS 计划,完全免费的 OpenVZ 和 Xen VPS,不过现在已经申请不到了,他们在博客上公布了将要发布的 VPS 价格,过了 beta 测试他们就会公开提供 VPS 服务,价格比较实惠,如果使用他们提供的优惠码 OPENING 的话,还可以得到 10% 的永久优惠。他们家的 Xen VPS 有半虚拟化(PV)的和全虚拟化(HVM)两种,半虚拟化的 Xen VPS 性能更好,但是全虚拟化的 Xen VPS 可以支持 Windows 等操作系统。他们的服务器监视系统显示他们目前拥有10台服务器,配置不详,数据中心遍布 UK, US West Coast, Texas 和 US East Coast. 虽然 rusfoster 的 VPS 曾经被黑,但是他们在这个行业混了很长时间,积累了很多宝贵的经验,这些都是其他新服务商不具备的,比起一个从来没放过错误(或者还没来得及放错误)的 “新新” 服务商来说要老练的多,VPSee 相信他们能吸取上次控制面板的教训,大家可以留意一下这家服务商。VPS 配置如下:

OpenVZ Xen
512MB Guaranteed RAM 512MB RAM
1GB Burst 512MB Swap
15GB 硬盘 15GB 硬盘
1000GB 1000GB
1 IP 1 IP
5.95美元 7.95美元

没有服务器配置信息。

Enotch Networks:$5.95 512MB OpenVZ VPS

enotch networks

Enotch Networks 起初是一家网站设计公司,建立于1997年,2001年的时候接受了私人投资而逐步演变成一家 hosting 服务商,服务包括 shared hosting, dedicated hosting, VPS 等,现在 Enotch 在长岛和纽约拥有自己的服务器和交换网络,并在2008年推出了自己的服务器租赁业务。看上去像一家比较可靠的公司,有24×7技术支持和电话响应,WHT 上有网友说他们家的技术支持响应很迅速。让 VPSee 不放心的是他们家服务器内存太大,16-32GB,又是 OpenVZ 的 VPS,让人不自觉就联想到超售。虽然 VPSee 不太喜欢 OpenVZ VPS,但是考虑到这个价格和这家公司的历史,还是推荐一下吧。VPS 配置如下:

Hades Hades II
512MB Guaranteed RAM 512MB Guaranteed RAM
0 Burst 1GB Burst
20GB 硬盘 20GB 硬盘
10Mbps unmetered bandwidth 10Mbps unmetered bandwidth
2 IP 2 IP
5.95美元 9.95美元

服务器配置信息:

16-32GB of RAM each Server Node, Hardware RAID.

Android 设置代理的问题

上周给 MM 弄了个 HTC Desire,Android 2.1 平台,比两年前的 Android 有了很大改进,平台的成熟度、可用性、用户界面和体验有了极大的提高,但是有个问题依然没有得到解决,就是设置代理的问题。两年前玩 Android SDK 移植一些 SIP 库的时候就知道 Android 的模拟器要使用代理服务器上网的话需要很变态的设置(见下面)。没想到两年后的今天,Android 2.1 版本上这个代理问题还没有解决,在 Android 官方讨论组上这篇 Issue 1273: IP Proxy Settings for Wifi Network 被回复了约5000次,接近900人盯着这个问题。Google/HTC/Sony/Motorola 这么多大厂商在开发 Android 手机,Android 又是开源的,不明白为什么就没人站出来解决这个问题。我还听到一个说法就是最初版本的 Android 是支持代理的,后来因为安全之类的原因在 Android 1.5 版本以后就取消了,不知道是不是这样,Google 官方也没有出来说明一下,如果是这样的话为什么 iPhone 和 Nokia 一开始就支持代理呢?

htc desire and android

在 Android 模拟器上可以这样设置代理:

> adb shell
# sqlite3 /data/data/com.google.android.providers.settings/databases/settings.db
sqlite> INSERT INTO system VALUES(99,’http_proxy', 'proxy:port');
sqlite>.exit

但是上面的方法在 HTC Desire 实物上却行不通,根本就没有 system 这个表。VPSee 周末花了一晚上都没有找到正确设置代理的方法。还有一个办法就是下载和安装 ProxySetting 这个第三方软件,不过 VPSee 试了也行不通。

前几天 Google I/O 大会还发布了 Android 2.2 版本,并且目标直指 Apple:

Google did not act we faced a Draconian future, a future where one man, one company, one device, one carrier would be our only choice.

现在 Apple 比较像当年的 Microsoft(更新:今年5月26日 Apple 正式超过 Microsoft 成为美国市值第二大公司,现在国内还有人蒙在鼓里、还在犹豫苹果是小众产品、还在怀疑这张图片是 PS 出来的,呵呵。现在的 Microsoft 比较像当年的 IBM 了,老成,没有任何新意的产品,让人都提不起精神来。可惜当年的 Windows Mobile 选择 copy Symbian,如果当时 Micorsoft 等一等,等到现在 copy iPhone 可能还会有点希望。Nokia 的日子也不好过,去年第三季度巨额亏损,自己不擅长软件,Symbian 平台烂透了,开发工具不好用、平台不开放、开发复杂、对程序员不友好,这么多年的 Symbian 没有几个像样的应用,所有加起来的应用程序还没有 iPhone/Android 一年开发的多。现在又是在一个淘汰老科技的时代,像 Nokia 这种吃老本的公司到现在都还没有拿出一个和 iPhone/Android 抗衡的产品,不知道基于 Linux 的 Maemo 能不能扛上拯救 Nokia 智能手机的重任,别以为把 Syimbian 开放源代码就完事,用户和开发人员真的不在乎平台的源代码,没有人看也没有人愿意去看源代码,用户体验才是王道。

MocoSpace 的架构

MocoSpace.com 是一家移动社交网站,有1200多万注册用户,每个月30亿的 PV ,是美国最大的移动社区。我们来看看 MocoSpace 是如何来架构他们的网站的。先来看看他们的统计数据,注意他们只有1个系统管理员,8个程序员,14台服务器(数据和原文来自 MOCOSPACE ARCHITECTURE – 3 BILLION MOBILE PAGE VIEWS A MONTH):

数据

每月30亿 PV
全美第4大流量的网站,继 MySpace, Facebook, Google 之后
75% 手机 Web, 25% Web
1200 万用户
每月600万独立访问
10万在线用户
每月上传1200万照片
每天接受和发送450万 email
8个程序员,2个测试员,1个系统管理员

平台和工具

CentOS + Red Hat
Resin application server, Java Servlets, JavaServer Pages, Comet
PostgreSQL
Memcached
ActiveMQ’s job + message queue,Red Hat 集群做 HA
Squid 静态内容缓存,曾试过 Varnish 但是 Varnish 不稳定
JQuery + Ajax
S3 用来存储用户照片和视频,现在用 Amazon S3 做外部存储是主流,EC2 用来做照片处理
F5 BigIP 负载均衡,用 gzip 压缩所有页面
Akamai CDN,每天 2TB 数据、2.5亿次请求。
Nagios 用来警告,Zabbix 用来监测
EMC SAN 用大量磁盘做 RAID 10 做需要高 IO 的数据库存储,用来替代高性能的 SSD,节省了大量成本
PowerMTA 做邮件传送,用Barracuda 做 spam 和 firewall
Subversion 做源代码控制,Hudson 做 continuous integration
FFMPEG 用来做视频处理
Selenium 用来自动测试浏览器
5x Dell 1950, 2x dual core, 16G RAM(Web 服务器)
5x Dell 6950/R905, 4x dual core, 32G RAM(Web 服务器)
2x Sun Fire X4600 M2 Server, 8x quad core, 256G RAM(数据库服务器)
2x Dell 6950, 4x dual core, 64G RAM(数据库服务器)

架构

他们的网站主要是面向手机应用的,所以他们遇到的一个大挑战是如何让他们的网站在几百种(从最新的 iPhone 到古董级的 Motorola Razrs)不同的手机设备上运行,屏幕大小、缺少相应的 Web 标准等都是问题。他们在几百种不同手机的数据上抽象出了一个表现层,只要用一套代码通过一个手机数据库(包括屏幕大小、允许的文件类型、允许打开的页面大小等)把处理好的页面发到对应的手机上。

他们也是通过 shard 数据库来分担负载的,以用户 key 作为 shard 的依据,通过查找一张全局表来找到用户所在的 shard,他们自己写了查询层,可以用来在不同的 shards 之间自由查询和关联数据。他们 offline 的时候检查数据的一致性,他们认为如果不是做银行系统的话,一致性不是那么重要,牺牲一点一致性来换回性能还是值得的。他们把大表划分成了小表,这样分散了锁表带来的问题。

他们使用多级缓存,从应用服务器里的缓存到分布式 memcached,当需要更新 memcached 的数据的时候,他们通过消息发送给每台应用服务器上的缓存,以做到数据一致。他们的服务器通过分布式消息队列来通讯,比如用户实时通过发消息告诉系统需要更新缓存等。

他们用专门的服务器来打造 social graph,并都放在内存里。

他们用 Kickstart 自动安装服务器,用 Puppet 来配置服务器,web 服务器、数据库服务器、cache 服务器等。

经验

  • 在增加服务器之前先确定现有的服务器硬件还能不能往上升级,可以挑选一些二手的 4U 服务器。
  • 理解瓶颈在那里?是 CPU 还是磁盘、网络 IO?数据库总是有磁盘 IO 问题。
  • 扩展 web 服务器很容易也很便宜,扩展数据库服务器就很麻烦了,找出数据库系统查询最多的、查询执行时间最长的,尽早跟踪和测试这些查询找出数据库性能瓶颈。他们使用 pgFouine log analyzer 和 PostgreSQL pg_stat_statements 工具来测量。
  • 不要让用户等待,尽量在后台处理。避免异步通讯,比如数据等待积累一定程度后再一次提交给数据库;S3 存储的延迟和错误都可能会很大,把失败的请求放在队列里,等队列积累到一定程度的时候再试,而不是失败一个试一个,减少开销。
  • 在设计阶段就考虑监测系统和性能,而不是到了部署的时候才开始监测。他们试过很多监测工具,Cacti, Ganglia, Hyperic, Zabbix, Nagios 等,最重要的是要找到自己用得顺手的工具。
  • 网站变大以后就要做好防黑客、防垃圾的准备。
  • 删除可能会开销很大,尽量软删除,而且用户删错了的话软删除容易恢复。
  • N+1 设计,永远不要少于两种方案。

ErectVPS:$7.95 512MB OpenVZ VPS

erectvps

ErectVPS 是一家英国 VPS 服务商,域名才注册了5个月,他们的服务器托管在美国 Kansas City 的 Joe’s Data Center. Joe’s Data Center 机房靠低价出名,为了节省成本他们的服务器大多采用二手设备,对个人来说租用他们家的服务器和机房性价比很高,但是要把 business 建在这家机房还是算了吧,不知道来自英国的 ErectVPS 为何如此信任这家美国廉价机房,多加点美金换个好机房以后麻烦会少很多。ErectVPS 声称他们的 VPS 都是用的 Dell/Supermicro/HP 服务器,看了他们的服务器硬件配置信息后发现和 Joe’s Data Center 上面提供的 dedicated server 配置不一致,VPSee 猜测他们是自己购买服务器然后托管在 Joe’s Data Center 的。他们家除了 OpenVZ VPS 外还有 KVM VPS,价格较贵,这里就不列出来了。VPS 配置如下:

SolusVM 控制面板
512MB RAM
30GB 硬盘
400GB 流量
1个 IP
7.95美元

服务器配置信息:

All our VPS nodes are at least 4 CPU nodes with RAID-1 or higher disks and 8GB RAM. All the VPS nodes are branded hardware (Dell/Supermicro/HP) meaning you know that we aren’t using some cheap off the shelf hardware but server quality components which are less likely to fail.

如何在 Xen VPS 上升级 Linux

有客户询问能否重新 rebuild 他的 Ubuntu 10.04 VPS 并升级到我们刚推出的 Ubuntu 12.04 LTS Server 版本,其实用户可以自己完成升级而不用我们 rebuild,不损失任何数据。和其他一些 Xen VPS 服务商不同,我们采用 PyGrub 来启动和管理 domU 的内核而不是在 dom0 范围内统一管理内核,这意味着用户可以在自己 VPS 上启动和使用自己的内核,这样做的好处是用户完全可以自己升级 VPS 的内核以及整个 Linux 系统(版本),完全不用我们的干预。升级办法很简单,就和在自己电脑上升级 Linux 一样,不过 OpenVZ VPS 是不能这样包括内核在内完整升级到新版本的。VPSee 建议在做任何升级之前做好备份。

Linode 和 SliceHost 两大 Xen VPS 服务商都相继发布了 Ubuntu 10.04 LTS 版本的 VPS. 我们上个星期安装和测试了 Ubuntu 10.04 LTS VPS,使用 8GB SUN V20z 服务器跑32个 128/256MB VPS 的混合,每个 VPS 上跑不同的应用和压力,测试结果在意料之中,Ubuntu 10.04 LTS 已经被我们加入到 VPS 计划之中并应用到了生产环境。

升级 Ubuntu 12.04 到 14.04(2014年4月17日更新)

我们的用户可以在自己的 VPS 上升级 Ubuntu 12.04 LTS Server 到 Ubuntu 14.04 LTS Server:

# apt-get update
# apt-get upgrade
# do-release-upgrade -d
# reboot

升级 Ubuntu 10.04 到 12.04

同样的,升级 Ubuntu 10.04 LTS Server 到 Ubuntu 12.04 LTS Server:

# apt-get update
# apt-get upgrade
# do-release-upgrade -d
# reboot

升级 CentOS 5.4/5.5 到 5.8

正在使用 CentOS 5.4/5.5 VPS 的用户想要升级到刚发布的 CentOS 5.8 版本的话就更简单了,直接在命令行:

# yum update
# reboot

升级 CentOS 5.x 到 6.x

除了重装系统,没有办法从 5.x 直接升级到 6.x:

升级 Fedora 12, 13 到 14

使用 Fedora 12 VPS 的用户可以这样升级到 Fedora 14:

# rpm --import https://fedoraproject.org/static/97A1071F.txt

# yum update yum
# yum --releasever=14 distro-sync --skip-broken

升级 Debian 5 到 6

使用 Debian 5 VPS 的用户可以这样升级到 Debian 6:

# wget http://ftp-master.debian.org/keys/archive-key-6.0.asc
# apt-key add archive-key-6.0.asc
# aptitude update

# vi /etc/apt/sources.list
:%s/lenny/squeeze/g
:wq

# apt-get update
# apt-get install apt dpkg
# apt-get dist-upgrade

# reboot

升级 Debian 6 到 7

正在使用 Debian 6 的用户可以这样升级到 Debian 7:

# vi /etc/apt/sources.list
deb http://mirrors.kernel.org/debian/ wheezy main
deb-src http://mirrors.kernel.org/debian/ wheezy main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade

# reboot

Netelligent:$7.5 128MB OpenVZ VPS

netelligent

netelligent 是家加拿大 hosting 公司,主要经营托管,dedicated server 等 hosting 业务,创立于2001年,总部在加拿大的 Montreal,服务器分布在加拿大和美国的5个数据中心,拥有自己的 BGP4 网络。最近他们在 WHT 上推出了 VPS,而且还可以申请试用 VPS,但是官方网站却没有放出任何 VPS 的消息。这款7.5美元的 VPS 的价格只有预付三个月才能拿到。他们的 VPS 除了提供 Linux 外还有 FreeBSD, Windows 可选。VPS 配置如下:

Virtuozzo 控制面板
128MB RAM
5GB 硬盘
100GB 流量
1个 IP
7.5美元

数据中心网络信息:

We run our own redundant BGP network with only premium providers such as Teleglobe, NLayer, Tiscali, Videotron and Level3. We have 3 pops 625 Rene-Levesque, 3000 Rene-Levesque and 1250 Rene-Levesque fully redundant in case of failure. Our core network is 100% CISCO with Juniper routers to ensure the best possible network environment.

用代理连接 OpenVPN 的问题

很多人在公司、学校都是通过代理服务器上的网,需要设置代理。我们有位客户在公司用代理上 OpenVPN 时遇到一个问题,他在我们的 VPS 上安装和配置好了 OpenVPN 服务,客户端也设置了代理 http-proxy 192.168.0.1 3128,可是就是连不上去。OpenVPN 客户端报错如下:

2010-05-16 15:46:48 Attempting to establish TCP connection with 192.168.0.1:3128 [nonblock]
2010-05-16 15:46:48
2010-05-16 15:46:49 TCP connection established with 192.168.0.1:3128
2010-05-16 15:46:49 Send to HTTP proxy: ‘CONNECT 206.221.200.200:1194 HTTP/1.0’
2010-05-16 15:47:40 recv_line: TCP port read timeout expired: Operation now in progress (errno=36)
2010-05-16 15:47:40 TCP/UDP: Closing socket
2010-05-16 15:47:40 process exiting

这是因为大部分代理服务器都封掉了非标准端口,并且很多管理员因为安全因素都封掉了非标准端口的 HTTP CONNECT,所以像 OpenVPN 的默认 1194 端口而且需要CONNECT 方法支持就不行。既然不能去要求公司管理员把 1194 端口打开,我们就只能在自己 VPS 上想办法,幸运的是大部分代理服务器都会开 443 端口并且可以 CONNECT,所以我们只需要修改自己 VPS 上 OpenVPN 服务器的监听端口,把它改成 443 就可以了,使用代理的话还必须用 TCP:

# vi /etc/openvpn/server.conf

# Which TCP/UDP port should OpenVPN listen on?
# If you want to run multiple OpenVPN instances
# on the same machine, use a different port
# number for each one.  You will need to
# open up this port on your firewall.
;port 1194
port 443

# TCP or UDP server?
proto tcp
;proto udp