Thank You 2010

很喜欢下面这句话:

The best thing I ever did with my life, was to make a mistake. The worst thing I ever did, was to play it safe and wonder “what if.”

这辈子最糟糕的事情莫过于平安虚度年华, 然后回过头说 “如果当初我 …”。为了不留下遗憾,为了安抚那颗悸动的心,为了不让自己以后说 “如果当初我做 …”,2009年底 VPSee 决定开启自己的创业探索之旅,能做自己喜欢的事情并能赚钱?这就是开始创业的美好想法,现实旅程远比想象的要辛苦,不到5小时的睡眠或就只为一个测试数据,2小时的等待或就为迁移一台服务器,成本的压力让人觉得这个行业门槛虽低但做起来一点都不容易。

2010年3月12日我们终于正式推出了基于 Xen 的 VPS 托管服务,3月14日我们迎来了第一位顾客,作为创业者,你无法忘记卖出第一份产品的喜悦;没有经历过,你无法体验过程的艰辛;没有付出过,你不能体会这种历程的美妙。幸运的是创业过程中我们没有遇到什么技术障碍,直接把多年的 Linux 和 Xen 企业环境生产经验搬到 VPS 业务上,驾轻就熟。我们遇到的最大问题主要是在成本控制方面,作为 one man 服务商我们不能把价格定得太高,我们租用的服务器也不可能像我们工作环境里操作的那些 SUN 服务器一样强悍,成本也不允许我们提供容错、容灾、在线迁移等功能。互联网时代信息都是透明的,你知道的别人也知道,我们的服务器租用成本也不可能比竞争对手低很多。那么我们只能靠技术手段来提高性能降低成本,通过裁剪 Linux 内核、优化内核参数、优化文件系统和磁盘 IO、分散多核 CPU 计算能力等一系列手段使我们能够提供至少20%以上的性能领先优势,这意味着同一配置的服务器在保证性能的情况下我们可以比竞争对手多卖出20%的 VPS、多获得20%的利润,幸运的是技术和经验没有办法拷贝和山寨,所以这20%的利润优势将会在长期的运营中得到增厚和强化,能更好帮助我们改进产品,能让我们能更长久的活下去。我们坚信在强调细化服务的今天、在高度竞争的主机托管市场,只有提供专业和差异化的产品才有可能生存下来,所以我们选择简单稳定作为我们产品的关键字。

我们一直非常的幸运,我们很幸运产品一推出就有很多客户信任我们;我们很幸运从热心网友那里收到了很多宝贵意见和建议;我们很幸运能吸引非常棒的客户;我们很幸运能结识一些业内朋友;我们很幸运学到了很多市场方面的知识和经验;我们很幸运收到一些合作邀请和机会;⋯⋯

谢谢客户对我们的支持和信任,谢谢读者对我们博客的持续关注,谢谢你,Merry Christmas & a very happy 2011,明年见!

thank you from vpsee.com

Linux 是谁写的?

Linux 实际上仅仅指 Linux kernel,而不是指由 Linux kernel 和 GNU 工具组成的操作系统,更不是指 RHEL/Fedora/Ubuntu/Debian/Arch/Gentoo 这些发行版。The Linux Foundation 去年9月份发布了一份 Who Writes Linux 2009 调查报告,这个月又发布了新版本的 Who Writes Linux 2010. 自从2005年开始已经有6100多个开发人员和600多家公司参与到 Linux 内核开发,这可能是人类史上最大、参与程度最高、最成功的开源项目。从一个大学生的个人业余兴趣到目前几乎所有重量级 IT 公司都参与的全球协作项目,Linux 开启了一个时代,虽然 Linux 并没有带来创新的内核或技术,但是 Linux 开创了全新的软件开发合作模式和全新的开源商业模式(确切的说是 RedHat 开创的这种商业模式),而这两种模式的创新让 Linux 取得了巨大的成功。

今天,开源的 Linux 已经离不开商业公司的贡献和参与,约有70%的代码来自这些商业公司和专职的开发人员。对 Linux kernel 贡献最大的是 RedHat,而同样开发流行版本 Ubuntu 的商业公司 Canonical 却没有看到踪影,可能 Canonical 把精力都放在了应用和整合上了吧。目前在企业级服务器市场 RedHat 还是绝对老大,Linux 内核代码贡献前两名 David Miller, Ingo Molnar 以及 Alan Cox, Dave Jones, Frank Eigler, Jon Masters 等这些顶级内核黑客都在 RedHat 工作(过)。技术公司的竞争其实就是人才的竞争,谁家的黑客级、大师级高手多谁家就能建立高门槛把竞争对手挡在门外,Ubuntu 要想在短时间内在服务器市场赶上 RedHat 还感觉有点吃力。

who writes linux

超级计算机11月数据统计

一年前讨论 Linux 发行版的时候提到了一些超级计算机的数据,今年6月份数据有点变化,这次刚发布的11月份超级计算机统计报告的亮点依然是中国,中国的 “天河1A” 第一次拿到冠军宝座,并且前十占有两个席位,排名都很靠前(第一和第三),6月份中国有24台超级计算机上榜,按照国家排名与德国并列第四,这次有42台计算机进入 Top500,仅次于美国。上次上榜的超级计算机的处理能力加起来中国排名第二,这次不管是计算机处理能力还是上榜的超级计算机台数都跃升为第二,短短6个月就造了18台超级计算机并进榜,非常惊讶,难道开始造航母了?(新浪:中国造航母须具备五大科技能力 超级计算机居首

还有一个亮点值得讨论的地方是 Amazon 的云计算集群计算系统(Amazon EC2 Cluster, Xeon X5570 2.95 Ghz, 10G Ethernet)进入 Top500,排名第231位,这是云计算的一次非常大的尝试和进步,VPSee 去年还讨论了 “云计算可以用来替代高性能计算吗?”,当时云计算的性能远远没有达到高性能计算(HPC )的要求,时过一年居然就上了榜,现在普通人用信用卡就可以用上超级计算机服务,这在以前是不敢想象的事情,会不会有人利用这种云计算 HPC 破译密码呢?

Linux 依然是超级计算机的绝对主力,对比6月份数据发现 Linux 总体上升5台,牢牢占有82%的份额,其中 CentOS 上升1台,SLES 9 下降1台,SLES 10 下降2台,SUSE/openSUSE/SLES 系还在下降。以下数据来自:Top 500 Super Computer Sites

操作系统版本 使用的个数 所占百分比 处理器个数
Linux(未知版本) 410 82.00 % 4540212
SLES 9 4 0.80 % 59504
CNK/SLES 9 14 2.80 % 1134592
SUSE Linux 1 0.20 % 26304
Redhat Linux 4 0.80 % 48800
RedHat Enterprise 4 3 0.60 % 14736
UNICOS/SUSE Linux 1 0.20 % 8192
SLES 10 2 0.40 % 14328
SLES10 + SGI ProPack 5 15 3.00 % 135200
RedHat Enterprise 5 2 0.40 % 11928
CentOS 8 1.60 % 114792

我们 VPS 服务器的 uptime?

我们经常收到 VPS 客户询问的两个问题就是“你们的网络对中国大陆快吗?”,“你们的服务器稳定吗?”。第一个问题不好回答,取决于中美线路和当地中国电信/网通的心情以及 RP~~;对于第二个问题我们决定公布部分服务器的 uptime 以供大家参考和监督。

刚开始打算用 PHP 和 Javascript 写那种实时打印 uptime 的页面,每秒更新看上去会比较酷,不过客户更关心的可能是服务器在线的天数和长期的稳定。如果用 Python 写这个脚本,字符串处理部分会更方便一些,可惜这台 VPS 上没有 Python(也不打算装)。昨晚纠结了一下还是决定用 Bash 写个简单的脚本用来打印我们服务器 dom0 上的 uptime 时间,这个 uptime 代表这台服务器已经连续不断运行多长时间。按照我们服务器的 uptime,最长的一台服务器已经连续运行了150多天,绝大部分服务器都连续工作90天左右。216.108.x.x 是新服务器,上线刚9天,load 是 0;69.64.x.x 上个月机房出现电力故障,导致重启一次。参考这个表格的时候有些需要注意的地方:

  • 数据每天更新一次,因为每台服务器的系统时间不同(差别很大),所以使用 cron 检查的时候可能出现某台服务器统计天数已经加一而其他服务器统计天数没变的情况;
  • 数据统计在北京时间凌晨完成,所以 load average 一般很小;
  • 因为每天更新一次,所以 ping 和 load average 的数据在这里没有多大意义。

uptime on our servers

免费试用1小时 Amazon EC2 云计算服务

Amazon 是目前最大的的云计算基础服务供应商,拥有最稳定和真正产业化的云计算业务和产品 Amazon EC2. 前天10月10日, Canonical 如期发布了 Ubuntu 10.10 版本,口号是 “10 out of 10″,并联合 Amazon 免费为尝鲜者提供1小时的 Ubuntu 10.10 Server 版本的试用,有点像当初 Ubuntu 桌面版免费寄光盘的味道,现在光盘驱动器安装操作系统的方式已经过时了,云时代流行 iso 和模板安装。以后每个人都可能在云里有个空间(系统),电脑、手机、iPad 一打开就直接到云里操作,而不是操作本地设备了。这种把应用程序和数据搬到云端的计算方式可以随时随地的进行,也不用担心数据在不同设备里的同步和丢失,真是很方便。几年前记得我的 Email 都是用邮件客户端来收发的,比如 Mutt, Thunderbird 等,电脑一坏或者换台机器就担心丢 Email 、联系人或者同步问题,现在直接在 Gmail 里操作,数据总是在 Google 云里(如果相信 Google 的话),无非是选择什么样的设备(Mac/iPhone/iPad/Windows/Linux/Android)去连接和操作而已。

对 Amazon EC2 和 Ubuntu 10.10 感兴趣的朋友可以通过 Try Ubuntu 10.10 Server in Amazon EC2 这个链接来申请免费试用1个小时的云计算服务。不要被 “云” 概念忽悠,云计算实际上是建立在虚拟技术上(多半是 Xen)、为消费者提供的一种按需使用的基础计算资源和服务模式,说白了就是1个 Xen VPS 而已,只不过这个 VPS 能实现自动化管理、分布式存储、备份冗余、按需增减资源、计算账单等。虽然大多数云基础服务商都依靠虚拟技术来架构云,但虚拟技术不是必须的,比如 Google 云就是建立在物理机上。免费试用的 Amazon EC2 申请过程很简单,成功注册后就会立刻得到 IP 和密码,按照提示直接 ssh ubuntu@174.129.161.70 就可以登录了:

ubuntu in the amazon ec2

下面是 Amazon EC2 这个虚拟机的配置,1颗 Xen CPU E5430@2.66GHz,1.6GB 的内存:

ubuntu@ip-10-112-233-200:~$ cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 23
model name	: Intel(R) Xeon(R) CPU           E5430  @ 2.66GHz
stepping	: 10
cpu MHz		: 2659.998
cache size	: 6144 KB
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu tsc msr pae cx8 cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht pbe nx lm constant_tsc up arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 lahf_lm tpr_shadow vnmi flexpriority
bogomips	: 5319.99
clflush size	: 64
cache_alignment	: 64
address sizes	: 38 bits physical, 48 bits virtual
power management:

ubuntu@ip-10-112-233-200:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          1665         73       1592          0          7         42
-/+ buffers/cache:         24       1641
Swap:          895          0        895

vpsee.com + android = vpseedroid

周六在朋友家烧烤,给正在打算换手机的朋友猛推了一把 Android,Android 上开发程序非常容易,并且能联机 debug,模拟器都不需要,实在是太方便了,在 Symbian 上做过开发的朋友一定能爱上 Android 的开发环境,Eclipse + Android SDK + Android for Eclipse 插件,集成开发环境全部搞定,更妙的是支持 Mac OS X 作为开发平台。昨天下午写了一个简单的看 vpsee.com 博客的小应用,功能很简单,就是列出 vpsee.com 上最新的10篇文章的标题,如果想看内容可以点击相应标题就会启动浏览器。现在这个 app 功能单一,纯粹为了好玩。有时间了会慢慢增加一些小功能,比如留言、翻页、新博客提示等等,好奇的朋友可以点击 vpseedroid.apk 下载。界面如下:

vpseedroid

数据中心的最佳温度

昨天中午发现实验室机房有个机柜的风扇不知道怎么回事坏了,导致机柜里面的温度过高,服务器风扇排出来的热都闷在机柜里出不去,尽管机房有空调,貌似空调的冷空气进不到机柜。Meeting Data Center Temperature Requirements 这篇论文就提到了数据中心(机房)的冷却和温度问题,空调的冷空气只能照顾到数据中心的部分设备,还有一部分设备却享受不到(取决于设备的排风速度和设备的位置),所以合理安排设备的位置和设计数据中心的整体通风流程很重要。

根据 ASHRAE 发布的 2008 ASHRAE Environmental Guidelines for Datacom Equipment,数据中心设备的温度最好维持在18和27摄氏度之间。为了保护环境、减少排放,ASHRAE 2008年把推荐的最低温度降低了2度(相比2004年)、最高温度增加了2度。温度太高或太低都会减少服务器、网络等各种设备的寿命、影响设备工作、甚至损害设备。

Recommended Temperature for Data Center

利用 Android 和 Wi-Fi 做间谍相机

现在 iPhone 和 Android 上的应用程序如此丰富不是偶然的,在 iPhone 和 Android 上开发应用实在是太简单了,开发人员很容易就能上手。VPSee 花了两天的时间完成了一个 Android 上的中、日、英文本阅读器,还包括自动识别文本编码(不用自己调编码设定),触摸放大、翻页等功能,这在 Nokia Symbian 上是不可能的(至少两天内不可能完成),如果有人也有过痛苦的 Symbian 开发经历就会明白 VPSee 在说什么。现在 Android 在 Scripting Layer for Android (SL4A) 项目的帮助下能支持 Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl 等脚本语言,我们安装 SL4A 后可以在 Android 上直接运行这些脚本,使得 Android 能支持更多编程语言、更加强大了。

利用 Android 和 Wi-Fi 做间谍相机的想法是这样的,在 Android 上装一个 web server 并用 Ruby 写个小小的 web app,通过浏览器和 wifi 访问这个 web server 和 web app,每次访问 web app 都会拍一张照片并更新 web server 上的照片。这样我们只需要把 Android 手机藏在某个地方,然后在电脑上就可以 “看” 到 Android 拍到的照片了~~(请保留邪恶的想法:D),以下操作在 VPSee 的 HTC Desire (Android 2.1) 上测试通过:

安装 SL4A 和 JRuby

首先到 SL4A 官方网站下载 sl4a_r2.apk 安装到 Android 上,然后点击 “menu” -> “View” -> “Interpreters”,然后再点击 “menu” -> “Add” -> “JRuby-1.4” 就会安装 JRuby for Android,安装成功后打开 SL4A 就会看到 hello_world.rb 和 toggle_airplane.rb 连个例子脚本,点击 “menu” -> “Add” 就会看到多了一个 “JRuby-1.4” 选项。

Ruby web app

接下来在自己电脑上写个 web app,并把 web app 拷贝到 Android 上,用 Ruby 写 web app 当然最好是用 Ruby on Rails 了,这里的应用没那么复杂,使用另一个轻量级 Ruby web 框架 Sinatra 就可以了。在桌面上创建一个 spycam 项目、创建相关目录、安装 sinatra:

$ cd /Users/vpsee/Desktop/
$ mkdir spycam
$ cd spycam
$ mkdir public
$ mkdir vendor
$ mkdir vendor/gems

$ gem install --http-proxy http://192.168.0.1:3128 sinatra
$ gem unpack sinatra --target=vendor/gems
Unpacked gem: '/Users/vpsee/Desktop/spycam/vendor/gems/sinatra-1.0'
$ gem unpack rack --target=vendor/gems
Unpacked gem: '/Users/vpsee/Desktop/spycam/vendor/gems/rack-1.1.0'

创建一个 spycam.rb 文件,并把以下内容拷贝过去(代码来自这篇文章):

$ vi spycam.rb

APP_DIR = File.expand_path File.dirname(__FILE__)
GEM_DIR = File.join(APP_DIR, 'vendor', 'gems')
PUBLIC_DIR = File.join(APP_DIR, 'public')

Dir.entries(GEM_DIR).each do |dir|
  $LOAD_PATH << File.join(GEM_DIR, dir, 'lib')
end

require "rack"
require "sinatra/base"
require "android"
DROID = Android.new

TEMPLATE = <<HTML
<!DOCTYPE html>
<html>
<head>
<title>Spy Camera - vpsee.com</title>
</head>
<body>
<a href="/"><img src="latest.png"></a>
</body>
</html>
HTML
class SpyCam < Sinatra::Base set :public, File.join(APP_DIR, 'public') get "/" do snapshot_path = File.join PUBLIC_DIR, 'latest.png' DROID.cameraCapturePicture snapshot_path TEMPLATE end end SpyCam.run!

运行

测试一下上面的 web app 和远程 WiFi 相机是否能拍照。用电脑通过 USB 连上 Android,拷贝上面的 spycam 下的 spycam.rb, public, vendor 到 Android 下的 sl4a/scripts,然后断开 Android USB 连接,运行 SL4A 执行 spycam.rb 脚本就会自动启动 WEBrick server 和运行 spycam.rb,WEBrick 是个提供 HTTP web services 的 Ruby 库,集成在 RoR 开发环境里用来测试程序,也是一个简单的 HTTP server,成功运行后显示应该如下:

Android WEBrick

在任何一台使用相同网络的电脑上打开浏览器访问 http://192.168.1.115:4567(Android 当前使用的 IP 地址是 192.168.1.115)就可以看到 Android 拍照了,每点击一次照片就会更新。

Android Spy Camera

LinuxCon 2010 会议视频

linux foundation

由 Linux Foundation 主办的 LinuxCon 2010 大会的视频已经上线,三天的视频内容需要注册和支付50刀才能看:

View one day of LinuxCon sessions for $20.00, or view all three days of sessions for $50.00.

VPSee 对好几个 topic 都很有兴趣,正在犹豫要不要掏钱,刚好昨天从 LinuxToy 看到一则消息,三天大会的 Sessions 可以免费注册,得到链接和密码 LFFRIENDS@2010! 后就可以免费在线看或者下载了,哈,还有这种好事,周末有事干了:)这是 VPSee 感兴趣的几个 topic:

Aug 10 2010 – Wim Coekaerts, A Technical Look at Linux at Oracle
Aug 10 2010 – David Ahern, Using KVM as a Transparent Hardware Abstraction Layer
Aug 10 2010 – Matthew Garrett, Android/Linux Kernel: Lessons Learned
Aug 10 2010 – James Morris, Linux Kernel Security: Adapting 1960’s Technology to Meet 21st Century Threats
Aug 10 2010 – David Rientjes, When the Kernel Runs out of Memory
Aug 10 2010 – Linux Kernel Panel
Aug 11 2010 – Marcus Rex, Empowering the Imagination For Tomorrow’s Linux Workloads
Aug 11 2010 – David Lutterkort, Deltacloud – Many Clouds, One API
Aug 11 2010 – Scott James Remnant, How We Made Ubuntu Boot Faster
Aug 11 2010 – Chris Mason, Btrfs File System: Status and Future
Aug 12 2010 – Martin K Peterson, Linux and Advanced Storage Technologies
Aug 12 2010 – Mark Hinkle, Open Source Tool Chains for Managing the Cloud
Aug 12 2010 – Jon Corbet, The Kernel Report

中国光缆出口分布

Greg’s Cable Map 这个网站利用 Bing 地图和 Wikipedia 数据做了一个全球光缆分布图,从图上可以看到中国大陆的海底光缆有6条(除去重复的),连接点只有3个,分别在青岛、上海和汕头。而日本有至少11个连接点和15条光缆,香港弹丸之地也有11条光缆。中国4.2亿网民(2010年6月统计数据)就靠这3个点和6条光缆来和世界联系,随着大批网站移到国外服务器以及 VPN 的大量使用,使得本来就很窄的出口带宽变得更加拥挤,所以不管美国数据中心和机房有多么的好、服务器有多么的强大,如果不解决出口带宽和光缆容量瓶颈就解决不了上网慢(Internet,不是 Chinanet)的问题。不过公允的说和其他大部分国家比起来中国的出口带宽还是挺大的,只不过人多分的羹就少了。

china cable map

下面是2010年最新的海底光缆分布图,截自 TeleGeography

china cable map