Skip to content


[转]喜悦村 美国移民之路

http://www.phpx.com/happy/thread-258821-1-1.html
转自村长sadly
个人站长不容易。除了有时间 有热情 没什么资源。

有关部门动辄就一个通知,随时掐你的生命线。

本站由于有论坛,无法完成相关要求现主站已移民至美国 he.net 的 Fremont 机房。
该机房位于美国西海岸的加州Fremont市。

“中美之间的网络电话等数据传输毫无疑问得通过跨域太平洋的海底光缆来进行。目前中美之间有两条直达海底光缆,一条是China-US Cable Network, 网络容量达到了80Gbps,中国大陆登陆点为上海崇明岛和汕头,美国登陆点为加州的San Luis Obispo(位于圣何塞与洛杉矶之间)。还有一条即著名的Trans Pacific Cable,设计容量达到了惊人的5.12Tbps,大陆登陆点为上海(中国电信)和青岛(中国联通),美国登 陆点为俄勒冈州的Nedonna沙滩。两条光缆均已开通商用,但从目前我多次traceroute的结果来看,TPE似乎还没有向一般宽带用户开放。中美之间的带宽增长速度相当惊人,根据CNNIC的统计数据,截至2008年底中国电信与美国之间的带宽为203980MB,而中国网通为110456MB.目前中国电信在北美西海岸的节点有华盛顿州的西雅图,加州的圣何塞,洛杉矶和帕拉阿图。

一般电信/网通用户访问美国站点网络数据传输所走的路线先是本地ISP网络,然后是城域网,接着是各省市网络节点,然后是骨干网,最后从上海等出口出去,跨越一万多公里的浩瀚太平洋后,在美国加州/俄勒冈州登陆。网络延时(latency)在200ms以上。很多人误认为GFW的网络过滤会影响网速,但事实上这种影响可以忽略不计的,网络延时在200ms以上主要还是在于传输距离太长,日本/澳大利亚网民的对美网络延时和大陆用户差不多的,而欧洲用户跨越大西洋一般在100ms以上。如果是你是移动用户的话,带宽资源想对于两大巨头要少的可怜,移动用户一般是先南下到香港连接NTT的节点,然后绕道日本达到美国,网络延时达到了惊人的七八百毫秒。

  这样对于大陆用户来说最佳的机房所在地应该是在西海岸加州,加州的机房最集中的主要有三个,San Jose(圣何塞),Fremont和洛杉矶。其中,San Jose和Fremont都位于湾区,也即是硅谷的入口。
” (文字为引用,未找到原始出处)

另外,在Dallas 和Seattle由于有光纤连接加州主要的数据交换中心,大陆的访问速度也不错。

 

服务器选址过程及注意事项

基于以上帖子所说的信息,村长开始选择IDC。

大家一般用的工具包括 ping 看ping值, traceroute 看路由线路。
这两个工具都不错,但是要会合理利用。

C:\>ping www.phpx.com -t
Pinging www.phpx.com [72.13.82.90] with 32 bytes of data:
Reply from 72.13.82.90: bytes=32 time=224ms TTL=51
Reply from 72.13.82.90: bytes=32 time=223ms TTL=51
Reply from 72.13.82.90: bytes=32 time=223ms TTL=51
Reply from 72.13.82.90: bytes=32 time=223ms TTL=51
Reply from 72.13.82.90: bytes=32 time=223ms TTL=51
Reply from 72.13.82.90: bytes=32 time=223ms TTL=51
Reply from 72.13.82.90: bytes=32 time=224ms TTL=51
Reply from 72.13.82.90: bytes=32 time=223ms TTL=51
Reply from 72.13.82.90: bytes=32 time=224ms TTL=51
Reply from 72.13.82.90: bytes=32 time=226ms TTL=51
Ping statistics for 72.13.82.90:
    Packets: Sent = 10, Received = 10, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 223ms, Maximum = 226ms, Average = 223ms

如上ping值的意义:
a)主机的IP地址是 72.13.82.90,这个比较简单啦
b)数据包的大小是32个字节
c)最小ping值223毫秒,最大ping值226毫秒,平均 223毫秒
d)累计发送了10个ping包,收到10个,丢失0个,丢失率 0%

测ping值要注意,
ping 值只是个参考值,它的大小和用户访问速度有关但并不完全相等
(我在北京联通ping上海电信服务器基本不超过140ms,但是访问速度比美国
还慢。)

ping要关注的是,ping值是否稳定也就是线路是否稳定,如果一条线路最快10ms,
最慢100ms,平均50ms,这条线路绝对是够烂的。

另外重点关注的是丢包率,丢包意味着一个数据发出去但是对端没收到,丢包率
高一般意味着对方带宽用的比较满。
—————————————————–

下面说tracert

C:\>tracert www.phpx.com
Tracing route to www.phpx.com [72.13.82.90]
over a maximum of 30 hops:
  1    <1 ms    <1 ms    <1 ms  localhost [192.168.10.1]
  2    24 ms    21 ms    23 ms  localhost [10.160.38.1]
  3    46 ms    22 ms    12 ms  61.148.45.65
  4    31 ms    12 ms     8 ms  61.148.154.237
  5    37 ms    25 ms    11 ms  bt-228-021.bta.net.cn [202.106.228.21]
  6    50 ms    32 ms    10 ms  202.96.12.25
  7    50 ms    56 ms    53 ms  219.158.4.58
  8    57 ms    54 ms    41 ms  219.158.5.134
  9   226 ms   279 ms   223 ms  219.158.25.26
10   249 ms   276 ms   222 ms  gige-g5-7.core1.sjc2.he.net [216.218.209.113]
11   223 ms   294 ms   234 ms  10gigabitethernet1-1.core1.fmt1.he.net [72.52.92
.109]
12   225 ms   224 ms   237 ms  10gige1-1.fmt1.egihosting.com [64.71.129.70]
13   225 ms   224 ms   249 ms  72.13.82.90
Trace complete.

traceroute (linux) tracert (win) 用来跟踪从用户端发出的数据到达对端经过了
哪些路由节点。

请注意    9   226 ms   279 ms   223 ms  219.158.25.26 ,这一行,他的ip是中国
网通的,但它并不在中国,到这里数据实际已经到达了中美海缆的美国登陆点。

tracert的意义在于,知道从你这里出发是怎么到达服务器的,譬如北京从家里到天津,可以有
多条路有多种走法,坐公车可能要2个小时(可能要转乘市内公交,相当于路由节点增加了),
开车可能要1个小时,坐城际特快可能要30分钟。

虽然路径的两端一致,但是总共所花费的时间却很大不同。

数据传递所经过的节点越多,出错的概率就越大,好比你做公交车,换来换去的走到某一段路赶上那堵车,速度就超慢了。

但是所经过的节点少也不完全等于快,好比你家门口两条路,可以从门口的广场直接到1公里以外
的单位,也可以从另一边的公园里绕到单位的另一侧再往回走。 可是广场上有活动人超多(带宽阻塞了),走不快,而公园里很空,这样虽然绕了路(多了中间节点),但花费的时间却很少。

 

上面说过了IDC选址的基本出发点和测试工具。

不过呢,要想知道一个地方是不是合适,最重要的办法,还是让潜在用户群直接访问看效果
当然,可以是显式的(如村长经常在群里请大家帮忙测试某个网站的速度)也可以是隐式的(如监控宝工具)。

村长将着眼点放在了  
The planet的Dallas机房, Softlayer的Dallas机房,Seattle机房,
Peer1的Los Angeles机房, He.net的Fremont等几个地方。

这几个机房都是属于带宽、实体面积都比较大的独立服务商,企业实力比较雄厚,不太会出现跑路的情况。

村长选择了主机以上机房的多个客户网站,请大家做了测试,也使用很多工具做了自动测试。
最后的综合结论是各家都不错,但是Theplanet,Peer1的机房方向性比较强,有的地方很快,有的地方很慢。
另外的两个相对来说,各地访问速度比较均衡。

Softlayer的用户也比较多,购买也方便。He.net几乎是专心运营骨干网的,租用服务器的价格高的吓人。
于是村长决定先在Softlayer Seattle做个更长时间的实际访问测试,荷包不鼓啊不能直接租独服
做测试用,找个二级代理商租个VPS算了。

这样 sea.phpx.com 就诞生了,这是假设在一台 openvz 基础上的vps服务器,内存512M,流量500G每月。

这里来说一下VPS, 村长想大部分人都用过vmware吧? 就是那个意思。
把一台物理的服务器分隔成多个逻辑独立的虚拟服务器,每个虚拟服务器也就是VPS都有自己的
CPU,内存,硬盘,可以单独的安装不同的操作系统,应用程序。 那台物理的主机被称为母机。

VPS的核心技术是虚拟化,包括虚拟机(如vmware,virtual pc) ,准虚拟化(如XEN),全虚拟化
(如Virtuozzo/OpenVZ), 这方面说起来很长,大家自己百度学习吧。

这里强调一下,首先母机的挂掉会直接的让所有的vps都挂掉,这个不难理解:)

然后,虚拟机毕竟不是实体的,有仿真损耗,性能要平均损失20%左右。

再然后,基于XEN软件的vps分配的是独占资源,也即1G的内存分配512M的vps只能分配4个,
基于OpenVZ软件的vps分配的是共享资源,也即1G的内存可以分配多余4个VPS。
因此OpenVZ的VPS是可以超售(over selling)的,一旦一台母机上的vps子机都来请求资源就会
使用硬盘模拟内存,性能急剧下降,有可能挂掉。

最后,也是最重要的,vps不是物理机,你的所有数据只是对应到母机的一个文件夹下相应的目
录树而已。
比如你的 /etc/iptables 可能对应的就是 /vz/vps000/etc/iptables 。
因此你的所有数据对于母机而言是完全暴露的,母机管理员还可以通过工具直接进入你的vps运
行中环境
而不需要把他们停机,这也不会在你的系统上留下任何log。
所以万不可把私密的数据放在那里,倒不是说母机管理员会盗你的数据,而是一旦母机被黑客攻
击,就全玩完了,你自己在vps上做再多的安全设置都保护不了。 。

还有一点,无论物理机,还是vps,都存在硬件或者仿真硬件失效的可能性,经常做数据备份是
个好习惯。

好啦,下面继续说村子,有了VPS又不能把重要数据放在上面,那么Nginx就该上场了。
村长于是在西雅图的vps上用nginx做了一个反向代理,直接从北京联通的服务器上取网页数据
送给用户。
因为没有数据库,php这些,所以512M跑这个简直就是小菜一碟啦。

大家对cdn还是有误区,这个诞生于网络带宽匮乏的Web1.0时代的产物。
大家都认为它是搞静态的,比如新闻,把服务器上的文件取下来放在自己这缓存下来,
然后用户请求的时候就从自己的缓存发给用户而不用去服务器上取了。

这是老观念了。实际上,你用Nginx对网站做个反向代理,不带缓存,就是个动态的CDN了
那这样每次都去一对一的请求,也没有节省服务器的web请求啊,还浪费了更多带宽,这不是
瞎折腾吗?

不是这样的!它是解决了访问速度的问题。
上一次说tracert的时候,村长提到过, 访问节点少的路径未必是最快的。
一个北京的用户走公开路径去访问上海A机房里的网站速度很慢,
但是他从北京访问北京机房的B机房的服务器, 再由B机房的服务器做A机房的网站的反向代理
传输数据这样却可能很快。

这是为啥呢? 因为IDC之间和用户到IDC直接走的路径是不同的,这条路径上的带宽状况要好的多。
这也是为什么你家里安装了上行4Mbps的ADSL开个网站,用户访问速度也远比在IDC里租个1Mbps
的带宽慢的原因。

 

今天说点简单的。

大家租服务器的时候经常遇到,端口、带宽这种问题。 在此细讲一下。

100Mbps端口指的是你的主机接在交换机的100Mbps端口上,它为你提供了支持大峰值
访问条件。
如果是10Mbps端口,则指的是你的主机接在交换机的10Mbps端口上,这样,你的最大
峰值就是10Mbps,冲不上去了

而带宽是指你可以使用的数据流量,这个有用 带宽速率 和 数据量两种表达方式

譬如本站Fremont的服务器,网络方面的限制是
100Mbps端口,月数据流量2000GB,超出部分$1/GB

数据流量2000GB,折合成带宽限制就是
2000GB/30天/86400秒* 1024  (1GB=1024MB) * 8 (1Byte =1 bits) = 6.32Mbps
换言之,相当于一个全天24小时满载的独享6.32Mbps带宽。

那既然用量这么低为什么端口是100Mbps呢? 大家都知道,网站的访问是有明显的峰
谷效应的

白天人多的时候可能有几千人,晚上则可能只有几十个人。
这样,如果你租的是一个独享6.32Mbps的线路,那白天繁忙的时候一定是不够用的。

现在计算一下:
100Mbps端口,意味着你全天24小时满载每月数据流量可以达到32400GB,提供了
更好的峰值带宽。
10Mbps端口,意味着你全天24小时满载每月数据量可以达到3240GB,限制了最大
可能发生的费用

另外租主机的时候,要注意 10Mbps unmetered port ,10Mbps bandwidth,
这是两个不同的概念。
10Mbps unmetered port 指的是给你的主机接在10Mbps的交换机端口上,带宽不限
也就是最大可以跑3240GB
10Mbps bandwidth 指的是以速率方式计算带宽用量,月平均速度不高于10Mbps,
也就是实际可以跑到3240GB。
如果服务商没有明确的说明,最好问一下,以免发生不必要的麻烦。

然后,请注意一下服务商是全额计数据流量,还是95%计费法,(称作 95th percentile)
95%计费法是对用户比较有利的,也是一般服务商采用的。
简单的说,就是在一个月的计费周期里的,把带宽使用量按每五分钟统计一次(以bps速率计),
然后去掉最高的5%,而剩下的95%就是要付费的使用量。

你注意看MRTG 或者 CACTI 的流量图表里,那个偶然高上去的毛刺,最后一般
都会被平均掉。

本村用的100Mbps端口,然后每天清晨做数据备份的时候,实时带宽速率达到过80Mbps,
哈哈,这远高于平均速率,所以最后肯定被去掉了,于是一个月就省去了100GB左右的数据流量。

最后,请注意以上说的都是主机和IDC内部交换机的连接,带宽也是指的最大可能带宽。

机房的出口将会是最后限制,比如一个机房他的出口带宽就2Gbps,但它在机房里卖了
50个100Mbps独享带宽的机柜,大家无非就是在2Gbps的范围内抢罢了,不会都能跑
到100Mbps的。 所以机房出口越大越好。

当然还有接入商的问题,美国有很多带宽运营商,所以机房是单线接入,还是多线接入也
是个需要考虑的问题。

Posted in IDC.

Tagged with .


No Responses (yet)

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.