2013年4月24日星期三

CentOS + rar + unrar 安装 rar unrar命令详解



先记下2个最常用的 rar 命令
将 21andy.com 目录打包为 andy.rar

# rar andy.rar ./21andy.com/
解压 andy.rar 到当前目录

# rar x andy.rar
CentOS + rar + unrar 安装

# vi /etc/yum.repos.d/dag.repo
放入如下内容

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
然后直接 yum 安装

# yum -y install rar unrar

centos 6.2 vpn安装教程,centos6.2一键vpn安装包(灰常好,感谢原作者啊)



故事发生时间: 2012-10-03 / 故事分类: 网站相关 / 4个小故事 我也要讲故事
最近把以前使用的centos 5.6换成了6.2的版本,以前使用的vpn安装包安装几次都失败,可能是不兼容新版的系统了.于是在网上找到了这个适用于centos 6.2的一键vpn安装包.特此送上给有相同需求的朋友.
centos 6.2 vpn安装教程,centos6.2一键vpn安装包
(一直本教程仅仅适用于Xen或KVM VPS,不适用于Openvz VPS):
第一步: 下载vpn(CentOS6专用)一键安装包
#wget http://www.hi-vps.com/shell/vpn_centos6.sh
#chmod a+x vpn_centos6.sh
第二部: 运行一键安装包
#bash vpn_centos6.sh
会有三个选择:
1. 安装VPN服务
2. 修复VPN
3. 添加VPN用户
首先输入1,回车,VPS开始安装VPN服务(VPN服务安装完毕后会默认生成一个用户名为vpn,密码为随机数的用户来。)
此外需要添加新的VPN用户时,作如下操作,
#bash vpn_centos6.sh
然后选择3,然后输入用户名和密码,OK
4. 修复VPN服务
如果VPN拨号发生错误,可以试着修复VPN,然后重启VPS
#bash vpn_centos6.sh
选择2,然后reboot

江苏南通抓获一杀人嫌犯 潜逃10年偷遍江浙沪

中广网南京4月24日消息 10年前,重庆男子韩某在当地一场赌博纠纷中,残忍地将一名赌友刺死,就此开始了漫长的逃亡生涯。此后,他不仅偷遍了江浙沪多个城市,还住旅馆、泡澡堂、买彩票。4月22日晚,就在韩某购买刮刮彩中了1000元奖后,被伏击多时的江苏南通警方擒获。
去年12月以来,南通市区德民花苑、华侨花苑等地发生20余起入室盗窃案件,被盗的财物包括现金、名表、笔记本电脑、金银首饰等,价值10万余元。南通崇川警方发现,犯罪嫌疑人异常狡猾,采用专业工具开锁入室行窃,每次作案前都用纸张将对门住家的猫眼遮挡,防止被人发现。监控录像显示,嫌疑人是一名中年男子,中等身材,戴鸭舌帽和眼镜,身背双肩包。
茫茫人海,嫌疑男子究竟躲在了哪里?民警一遍遍地梳理案情,经过研判发现,该男子使用了多张他人身份证住宿旅馆,随即进行了重点盯防。22日傍晚,当发现相关身份证在海安一家小旅馆登记住宿后,南通崇川警方迅速行动,抽调10余名精干警力奔赴海安。经过伏击守候,当晚10点多,民警在旅馆内成功将外出归来的犯罪嫌疑人韩某抓获。
经查,韩某今年47岁,重庆涪陵人,是一名潜逃十年的杀人嫌犯。据韩某交代,2003年12月,他在一场赌博引发的纠纷中,持刀在老家涪陵一家娱乐城外将赌友何某杀害,随即开始逃亡生涯。10年中,韩某四处漂泊、居无定所,以偷盗为生。他买来专业工具,潜入江浙沪一带多个城市疯狂入室行窃。警方初步查明,韩某仅在南通市区就作案20余起,每次得手后立即乘大巴车离开,在另一城市将赃物变卖,同时使用盗窃来的他人身份证在小旅馆落脚。
有了经济来源,韩某的生活可谓“丰富多彩”。在南通海安落脚后,他不仅前往浴室泡澡,还购买了刮刮彩,中了1000元大奖。就在他兴高采烈地回到旅馆之时,等候多时的民警一举将其擒获。在韩某的随身物品中,民警当场查获其还未来得及销赃的手表一块以及笔记本电脑两台。目前,重庆警方已派人赶往南通,准备将韩某押解回渝。
(原标题:江苏南通警方抓获一杀人嫌犯 潜逃10年偷遍江浙沪)

毛泽东与康生的“整风”运动

整风可以说是中共历史上一个挥之不去的运动,每逢历史关键时期,领导人就会祭起整风运动的大旗来大整政敌,大树权威。我们不妨就中共历史上的两次大整风——延安整风运动和57年整风运动来看个究竟。
始于19415月终于1945420日的“延安整风运动”,其运动动机就是为了清除党内的不同派系,建立毛泽东在中共党内独一无二的领导权威。其实,早在江西时期,就有地方党派因不服从毛泽东的问题,结果导致了反AB团运动和富田事变。反AB团运动影响了毛泽东的声誉,被二十八个布尔什维克夺取领导权与毛泽东发动的反AB运动有很大关系。到了延安时期,虽然毛泽东成了最高领袖,但党内还是有不同派系,对毛泽东有不同意见。这其中对毛泽东权威构成最大威胁的就是王明集团。
西安事变之后,中共得到了国民政府的承认,抗战全面爆发之后不久,王明就从苏联回国了。在193712月政治局会议上,王明的演讲博得了全场的喝彩,人们都对他奉若神明,因为他代表的是共产国际,等于是钦差大臣的身份,连毛泽东都不得不附和他的言论。毛泽东私下里对一位朋友说,我的命令不出这个窑洞,毛泽东刚刚到手的领导权又有得而复失的危险,而这个危险产生的原因就是共产国际对中共的领导。在具体政策上,毛泽东主张独立自主的发展,深入到敌后建立根据地,放手发动群众,壮大自己。王明则认为抗日必须遵守国民党的领导,一切经过统一战线。在随后的岁月里,王明来到武汉组建了长江局,由于王明获得周恩来的部分支持,因此长江局俨然成了中共的第二朝廷,开始涉足对军队的指挥领域,形成了与延安的中共中央分庭抗礼之势,国际派的势力再次崛起,这是毛泽东不能允许的。他于是利用武汉会战后武汉失守的机会,撤消了长江局,消弱王明权力。1941年,又利用共产国际的解散来彻底清除王明集团在党内的影响,其方式就是整风运动。
1942年春,毛泽东正式发动整风运动。他自己并没有亲自走上前台,而是在幕后指挥,实际执行由康生来操作,这样一来,毛本人进可攻,退可守,完全立于不败之地。每个人都必须批判王明的错误路线,毛泽东还派人组织编写了《六大以来》、《两条路线》、《二十二个文件》等多种材料,每个党员干部都必须阅读,还必须写自传,对自己的过去进行总清算。毛泽东利用自己的组织权力出手又快又准,王明陷入了四面楚歌的境地。
在理论上,毛泽东祭起“马克思主义的中国化”法宝,强调他创立的毛泽东思想是马克思主义与中国实践相结合的产物,从而不但夺回了对文宣部门的控制,而且也从思想上改造了中共,夺回了对马列的解释权。
在手段上,毛泽东重用从苏联回来,深得克格勃精髓的康生担任运动主角。19422月整风运动开始的时候,康生已经是整风运动中仅次于毛泽东的重要人物。他身兼政治局委员、书记处书记、中央社会部部长兼情报部部长、中央总学委副主任。中央总学委不归政治局和书记处领导,只服从总学委主任毛泽东。总学委领导延安整风运动。这个组织很像文革中的中央文革小组,凌驾于政治局和书记处之上,只听从“最高指示”。康生领导整风运动,也只听从总学委主任的指示。全党从学习马列主义、反对官僚主义、宗派主义和党八股很快转入审干、肃反。康生说:“整风必然转入审干,审干必然转入肃反。”于是,在延安,一切有碍于毛泽东成为伟大领袖的人,都被康生打成敌特反革命,进行随心所欲的清除。康生的名言是:“有材料还需要审问吗?先抓起来再说,正因为不清楚才关起来审问,审问就是为弄清问题。”那些关押在窑洞里的人,除夜间连轴转逼供外,还施加暴力。一心向往革命的青年忽然被宣布为特务,对他们精神上的打击太大,超过对肉体的折磨。自杀的,逼疯的,哭喊的,充满阳光的世界变成悲惨世界。这就是延安的抢救运动。薄一波在他晚年的回忆录《七十年的回忆与思考》中写到他亲眼见到的抢救的“惨状”:“有一件我难忘的往事,其情景多年来不时涌上心头……那时母亲也与我一起到了延安,我把她安置在深沟的一个窑洞居住。有一天,我去看她,她说,‘这里不好住,每天晚上鬼哭狼嚎,不知怎么回事。’我于是向深沟里走去,一查看至少有六七个窑洞关着约上百人,有许多人神经失常。问他们为什么?有的大笑,有的哭泣……最后看管人才无可奈何地告诉我:他们都是被‘抢救’的知识分子,是来延安学习而遭到‘抢救’的!” 师哲作为参与逮捕行动的安全部人员,回忆19433月末康生是如何圈定被捕人员名单的:康生手里拿着名单,一边同我们谈话,一边在名单上做记号、打圈点,嘴里念叨:这个是“复兴”,这个是“C.C”、“汉奸”、“叛徒”、“日特”…… (参见蓝英年《康生在延安》)胡耀邦那时也被康生搞打成“温情主义”、“糊涂主义”,批斗了好几个月,他的身体由小胖子变成了小瘦子,从此以后几十年再也没有胖过。据说多年后,胡耀邦提到康生还心有余悸。
然而就是靠了整风这样的运动和康生这样的打手,到19454月中共七大召开时,毛泽东思想方成为中共政治指导思想,毛泽东权势空间提高,成为独一无二的领袖。中共彻底的摆脱了莫斯科的影响,走上民族主义的轨道。
因为这次成功,毛泽东对整风这种形式情有独钟,所以到1957年,当他觉得自己的政权面临危机之际,他又祭起了整风法宝。
1957年,因执政党工作作风引起的社会不满和国际上的波匈事件,毛泽东感到了统治合法性危机。19571月,毛泽东在省市自治区党委书记会议上重点讲到了党内和社会上的思想动向及少数人闹事问题。他说:“苏共二十大的台风一刮,中国也有那么一些蚂蚁出洞。这是党内的动摇分子,一有机会他们就要动摇。”不过,毛泽东很有信心地说,“匈牙利事件的一个好处,就是把我们中国的这些蚂蚁引出了洞”。“在匈牙利,大民主一来,把党政军都搞垮了。在中国,这一条是不会发生的。”对此不必害怕,“如果有人用什么大民主来反对社会主义制度,推翻共产党的领导,我们就对他们实行无产阶级专政”。口头虽然这样说,但事实上,波匈事件发生后,毛泽东意识到已经取得的政权还有丧失的可能,其危险来自于执政党与人民群众的矛盾,于是提出正确处理人民内部的矛盾,开展党内整风运动。毛泽东最初提出整风,是希望借助党外知识界力量,通过“和风细雨”的方式遏制共产党内的官僚主义、主观主义和宗派主义,从而巩固自己地位化解统治危机。
当然,毛泽东斯时展开整风运动,除了挽回政党统治合法性外,也还有自己权威遭到挑战的原因。八大后,受苏共批判斯大林的个人迷信的影响,在党章里取消毛泽东思想的指导地位,使他很不满,嘴上不说,心怀怨气,认为是挑战他的至上权威。他对党内潜在的逆己倾向已高度警惕。正如夏衍所说,1957年反右,当时就有人说,毛主席怕的不是章罗联盟,怕的是党内出赫鲁晓夫。在八届二中全会的讲话中,他还重提高岗事件,说那时他讲过:“北京城里头有两个司令部:一个司令部就是我们这些人的,这个司令部刮阳风,烧阳火;第二个司令部呢,就是叫地下司令部,也刮一种风,烧一种火,叫刮阴风,烧阴火。……其目的就是要刮倒阳风,灭掉阳火,打倒一大批人。”而现今“我们高级干部、中级干部中,还有个别人(不多)里通外国”(指私送情报给苏共)。他严令这些人“把这个问题向大家说清楚”,“不讲,就要查,查出来就给适当处分。”
然而,出乎意料的是:当时的知识分子,特别是民主党派中的“右翼”民主人士,对所谓“官僚主义、主观主义和宗派主义”固然不满,但他们更为不满的却是领导人本身的大起大落,鸣放的矛头指向了他本人(“党天下”、“轮流坐庄”、“小知识分子领导大知识分子”,“老和尚”等问题),对他和共产党的领导权挑战,这当然是他更不能容忍的。于是他掉转矛头,发动反右斗争,狠狠打击“右派”的“猖狂进攻”。
要之,所谓整风运动,其最根本动机就在于为新权威立威,同时消除旧权威影响。因而,每次政权更替之际,我们都会看到它的阴影——比如后来的“三种人”、“三讲”等等都是其余波。

2013年4月22日星期一

两年内从零到每月十亿 PV 的发展

Pinterest正经历了指数级曲线般的增长,每隔一个半月翻翻。在这两年里,Pinterest,从 每月PV量0增长到10亿,从两名成立者和一个工程师成长为四十个工程师,从一台MySQL 服务器增长到180台Web 服务器(Web Engine),240台接口服务器(API Engine), 88台MySQL 数据库 (cc2.8xlarge) ,并且每台DB有一个备份服务器,110台Redis 实例服务(Redis Instance),200台 Memcache 实例服务(Memcache Instance)。
令人叹为观止的增长。想一探Pinterest的传奇吗?我们请来了Pinterest的两位创立者Yashwanth Nelapati 和 Marty Weiner,他们将以 Scaling Pinterest为题讲述关于Pinterest架构的充满戏剧化的传奇故事。他们说如果能在一年半前飞速发展时能看到有人做类似题材的演讲的话,他们就会有更多的选择,以避免自己在这一年半里做出的很多错误的决定。
这是一个很不错的演讲,充满了令人惊讶的细节。同时这个演讲也是很务实的,归根结底,它带来了可让大家选择的策略。极度推荐

这篇演讲中有两个我最为看重的经验:
1.强大的架构在处理增长时通过简单增加相同的东西(服务器)来应对,同时还能保证系统的正确性。当遇到某种(性能)问题时,你想通过砸钱来扩容指的是你可以简单增加服务器(boxes)。如果你的架构能够做到这一点,那它就如金子一般强大而珍贵!
2. 当某些(性能问题)快到极限时大多数技术都会以他们自己的方式失败。这导致他们在审核工具时要考虑以下一些特性:成熟,好且简单,有名气且用的人多,良好的支持,持续的优异性能,很少失败,开源。按照这样的标准,他们选择了:MySQL, Solr, Memcache, and Redis,放弃了Cassandra ,Mongo。
这两点经验是相互联系的。遵循(2)中提到的标准的工具可以在扩容时简单增加服务器(boxes).当负载增加了,成熟的产品更少会有问题。当你遇到问题时,你至少希望它的社区团队能够帮助解决。当你使用的工具过于技巧化和过于讲究时,你会发现你遇到一堵无法逾越的墙。
在这段演讲里,碎片化(sharding)优于集群(clusterting)的观点是我认为最好的一部分。为了应对增长,通过增加资源,更少失败的模式,成熟,简单,良好的支持,最终圆满完成。请注意他们选择的工具以sharding的方式增长,而不是clustering。关于他们为什么选择sharding和他们如何做sharding是很有趣的事,这很可能触及到你以前未考虑过的场景。
现在,让我们看看Pinterest如何扩容:
(本段有些术语黑话不是很明白,望纠错)

基本概念

  • Pins是一幅关于其他信息的集合的图片,描述了为什么它对于用户来说很重要,可以链回到他们发现它的地方。
  • Pinterest是一个社交网络。你可以追踪人或者板报(boards).
     
  • Database:它包含了拥有pins的板报(boards)和拥有板报(boards)的人 ,可以追踪或重新建立(repin)联系,还包含认证信息。
     
启动于2010年三月--自我发现时期
此时此刻,你甚至不知道你在做的这个产品将要做什么。你有想法,迭代开发更新产品的频率很高。最终因遇到一些在现实生活中永远不会遇到的奇怪的简短的MySQL查询而结束。
早期的一些数字:
  • 两个创始人
  • 一个工程师
  • Rackspace托管服务器
  • 一个小型web引擎
  • 一个小型MySQL数据库
2011年1月
扔在潜伏前进中,产品得到了一些用户反馈。以下是数据:
  • Amazon EC2 + S3 + CloudFront云服务
  • 一台NGinX,4台Web 引擎(作冗余用,不是真正为了负载)
  • 一台MySQL数据库+一台读备份服务器(防止主服务器宕机)
  • 一个任务队列+两个任务处理
  • 一台MongoDB(为了计数)
  • 两个工程师
至2011年9月--试运行阶段

 
每一个半月翻翻的疯狂增长阶段。
  • 当高速发展时每个晚上每个星期都会有技术失败的情况发生
  • 这时,你阅读大量白皮书,它会告诉你把这个增加进来就行了。当他们添加了大量技术时,毫无例外都失败了。
  • 最终你得到一个极为复杂的架构图:
    • Amazon EC2 + S3 + CloudFront
    • 2NGinX, 16 Web Engines + 2 API Engines
    • 5 Functionally Sharged MySQL DB + 9 读备份
    • 4 Cassandra 节点
    • 15 Membase 节点(分成三个单独的集群)
    • 8 Memcache 节点
    • 10 Redis 节点
    • 3 任务路由(Task Routers)+ 4 Task Processors
    • 4 ElasticSearch 节点
       
    • 3 Mongo集群
    • 3名工程师
  • 5种主要的数据库技术只为了应付他们自己的数据
  • 增长极快以至MySQL负载很高,而其他一些技术都快到达极限
  • 当你把某些技术的应用推至极限时,他们又以自己的方式宣告失败。
  • 放弃一些技术并问它们到底能做什么。对每一件事情重新构架,海量工作量。

架构成熟 2012 1月

重新设计的系统架构如下:
  • Amazon EC2 + S3 + Akamai, ELB
  • 90 Web Engines + 50 API Engines
  • 66 MySQL DBs (m1.xlarge) + 1 slave each
  • 59 Redis Instances
  • 51 Memcache Instances
  • 1 Redis Task Manager + 25 Task Processors
  • Sharded Solr
  • 6 Engineers .使用Mysql,Redis,Memcache Solr,他们的优势是简单高效并且是成熟的技术。随着Web流量增加,Iphone的流量也随之开始越来越大。 
    稳定期 2012 10月 12 仅仅在一月份以后,大概就有4倍的流量增长。 系统架构数据如下:The numbers now looks like:
    • Amazon EC2 + S3 + Edge Cast,Akamai, Level 3
    • 180 Web Engines + 240 API Engines
    • 88 MySQL DBs (cc2.8xlarge) + 1 slave each
    • 110 Redis Instances
    • 200 Memcache Instances
    • 4 Redis Task Manager + 80 Task Processors
    • Sharded Solr
    • 40 Engineers (and growing)
    注意到,此时的架构应该是合理的,只是通过增加更多的服务器。你认为此时通过更多的投入来应对这么大的规模的流量,投入更多的硬件来解决这个问题, 下一步 迁移到SSDs

为什么是Amazon EC2/S3

  • 相当的可靠。数据中心也会宕机, Multitenancy 加入了不少风险,但不是坏处。
  • 良好的汇报和支持。他们确实有很不错的架构师而且他们知道问题在哪里。
  • 良好的额外服务支持(peripherals),特别是当你的应用处于增长时期。你可能在App Engine中转晕,你不用亲自去实现,只需要简单和他们的服务打交道,例如maged cache,负载均衡,映射和化简,数据库和其他所有方面。Amazon的服务特别适合起步阶段,之后你可以招聘工程师来优化程序。
  • 分秒钟获得新的服务实例。这是云服务的威力。特别是当你只有两名工程师,你不用担心容量规划或者为了10台memcache服务器等上两周。10台memcache服务器几分钟内就能加完。
  • 反对的理由:有限的选择。直到最近你才能用SSD而且还没高内存配置的方案。
  • 赞成的理由:还是有限的选择。你不需要面对一大堆配置迥异的服务器。

为什么是 MySQL?

  • 非常成熟
  • 非常耐用。从不宕机且不会丢失数据。
  • 招聘方便,一大堆工程师懂MySQL.
  • 反应时间和请求数量(requies rate,我认为是request rate参考下面)是线性增长的。有些数据库技术的反应时间在请求飙升时不是很好。
  • 很好的软件支持-- XtraBackup, Innotop, Maatkit
  • 很好的社区,问的问题总能轻易获取到答案
  • 很好的厂商支持,譬如Percona
  • 开源--这一点很重要,特别是你刚开始没有很多资金支持时。

为什么选择Memcache?

  • 非常成熟
  • 非常简单。它就是一个socket的哈希表。
  • 性能一直很好
  • 很多人知道并喜欢
  • 从不崩溃
  • 免费

为什么选择Redis?

  • 还不成熟,但它是非常好并且相当简单。
  • 提供了各种的数据结构。
  • 可以持久化和复制,并且可以选择如何实现它们。你可以用MySQL风格持久化,或者你可以不要持久化,或者你只要3小时的持久化。
  • Redis上的数据只保存3个小时,没有3小时以上的复本。他们只保留3个小时的备份。
  • 如果存储数据的设备发生故障,而它们只是备份了几个小时。这不是完全可靠的,但它很简单。你并不需要复杂的持久化和复制。这是一个更简单,更便宜的架构。
  • 很多人知道并喜欢
  • 性能一直很好
  • 很少的一些故障。你需要了解一些小故障,学习并解决它们,使它越来越成熟。
  • 免费

Solr

  • 只需要几分钟的安装时间,就可以投入使用
  • 不能扩展到多于一台的机器上(最新版本并非如此)
  • 尝试弹性搜索,但是以Pinterest的规模来说,可能会因为零碎文件和查询太多而产生问题。
  • 选择使用Websolr,但是Pinterest拥有搜索团队,将来可能会开发自己的版本。 

集群vs.分片

  • 在迅速扩展的过程中,Pinterest认识到每次负载的增加,都需要均匀的传播他们的数据。
  • 针对问题先确定解决方案的范围,他们选择的范围是集群和分片之间的一系列解决方案。

集群 —— 所有事情都是自动化的

  • 示例: Cassandra, MemBase, HBase
  • 结论: 太可怕了,不是在现在,可能在将来,但现在太复杂了,有非常多的故障点
  • 属性:
    • 自动化数据分布
    • 可移动数据
    • 可重新进行分布均衡
    • 节点间可通讯,大量的握手、对话
  • 有点:
    • 自动伸缩数据存储,至少白皮书上是这么说的
    • 安装简单
    • 在空间中分布存储你的数据,可在不同区域有数据中心
    • 高可用性
    • 负载均衡
    • 没有单点故障
  • 缺点 (来自用户一手的体验):
    • 还是相当年轻不成熟
    • 还是太复杂,一大堆节点必须对称的协议,这是一个在生产环境中难以解决的问题。
    • 很少的社区支持,有一个沿着不同产品线的分裂社区会减少每个阵营的支持。
    • 很少工程师有相关的知识,可能是很多工程师都没用过 Cassandra.
    • 复杂和和可怕的升级机制
    • 集群管理算法是一个 SPOF 单点故障,如果有个 bug 影响每个节点,这可能会宕机 4 次。
    • 集群管理器编码复杂,有如下一些失败的模式:
      • 数据重新均衡中断:当一个新机器加入然后数据开始复制,它被卡住了。你做什么工作?没有工具来找出到底发生了什么。没有社会的帮助,所以他们被困。他们又回到了MySQL。
      • 所有节点的数据损坏. What if there’s a bug that sprays badness into the write log across all of them and compaction or some other mechanism stops? Your read latencies increase. All your data is screwed and the data is gone.
      • 均衡不当而且很难修复. 非常常见,如果你有10个节点,你会注意到所有节点都在一个节点上,有一个手工处理方式,但会将所有负载分布到一个单节点上
      • 权威数据失效. 集群方案是很智能的。In one case they bring in a new secondary. At about 80% the secondary says it’s primary and the primary goes to secondary and you’ve lost 20% of the data. Losing 20% of the data is worse than losing all of it because you don’t know what you’ve lost.

 

分片(sharding) - 全凭人手

  • 裁决: 分片是赢家。我觉得他们分片的方案与Flicker非常相似。
  • 特点:
    • 如果去掉集群方式下所有不好的特点,就得到了分片。
    • 人工对数据进行分布。
    • 不移动数据。
    • 通过切分数据来分担负荷。
    • 节点不知道其它节点的存在。某些主节点控制一切。
  • 优点:
    • 可以通过切分数据库来扩大容量。
    • 在空间上分布数据。
    • 高可用。
    • 负载均衡。
    • 放置数据的算法十分简单。这是最主要的原因。虽然存在单点(SPOF),但只是很小的一段代码,而不是复杂到爆的集群管理器。过了第一天就知道有没有问题。
    • ID的生成很简单。
  • 缺点:
    • 无法执行大多数连接。
    • 没有事务功能。可能会出现写入某个数据库失败、而写入其它库成功的情况。
    • 许多约束只能转移到应用层实现。
    • schema的修改需要更多的规划。
    • 如果要出报表,必须在所有分片上分别执行查询,然后自己把结果合起来。
    • 连接只能转移到应用层实现。
    • 应用必须应付以上所有的问题。

何时选择分片?

  • 当有几TB的数据时,应该尽快分片。
  • 当Pin表行数达到几十亿,索引超出内存容量,被交换到磁盘时。
  • 他们选出一个最大的表,放入单独的数据库。
  • 单个数据库耗尽了空间。
  • 然后,只能分片。
分片的过渡
  • 过渡从一个特性的冻结开始。
  • 确认分片该达到什么样的效果——希望尽少的执行查询以及最少数量的数据库去呈现一个页面。
  • 剔除所有的MySQL join,将要做join的表格加载到一个单独的分片去做查询。
  • 添加大量的缓存,基本上每个查询都需要被缓存。
  • 这个步骤看起来像:
  • 1 DB + Foreign Keys + Joins
  • 1 DB + Denormalized + Cache
  • 1 DB + Read Slaves + Cache
  • Several functionally sharded DBs+Read Slaves+Cache
  • ID sharded DBs + Backup slaves + cache
  • 早期的只读奴节点一直都存在问题,因为存在slave lag。读任务分配给了奴节点,然而主节点并没有做任何的备份记录,这样就像一条记录丢失。之后Pinterest使用缓存解决了这个问题。
  • Pinterest拥有后台脚本,数据库使用它来做备份。检查完整性约束、引用。
  • 用户表并不进行分片。Pinterest只是使用了一个大型的数据库,并在电子邮件和用户名上做了相关的一致性约束。如果插入重复用户,会返回失败。然后他们对分片的数据库做大量的写操作。
如何进行分片?
  • 可以参考Cassandra的ring模型、Membase以及Twitter的Gizzard。
  • 坚信:节点间数据传输的越少,你的架构越稳定。
  • Cassandra存在数据平衡和所有权问题,因为节点们不知道哪个节点保存了另一部分数据。Pinterest认为应用程序需要决定数据该分配到哪个节点,那么将永远不会存在问题。
  • 预计5年内的增长,并且对其进行预分片思考。
  • 初期可以建立一些虚拟分片。8个物理服务器,每个512DB。所有的数据库都装满表格。
  • 为了高有效性,他们一直都运行着多主节点冗余模式。每个主节点都会分配给一个不同的可用性区域。在故障时,该主节点上的任务会分配给其它的主节点,并且重新部署一个主节点用以代替。
  • 当数据库上的负载加重时:
  • 先着眼节点的任务交付速度,可以清楚是否有问题发生,比如:新特性,缓存等带来的问题。
  • 如果属于单纯的负载增加,Pinterest会分割数据库,并告诉应用程序该在何处寻找新的节点。
  • 在分割数据库之前,Pinterest会给这些主节点加入一些奴节点。然后置换应用程序代码以匹配新的数据库,在过渡的几分钟之内,数据会同时写入到新旧节点,过渡结束后将切断节点之间的通道。

ID结构

  • 一共64位
  • 分片ID:16位
  • Type:10位—— Board、User或者其它对象类型
  • 本地ID——余下的位数用于表中ID,使用MySQL自动递增。
  • Twitter使用一个映射表来为物理主机映射ID,这将需要备份;鉴于Pinterest使用AWS和MySQL查询,这个过程大约需要3毫秒。Pinterest并没有让这个额外的中间层参与工作,而是将位置信息构建在ID里。
  • 用户被随机分配在分片中间。
  • 每个用户的所有数据(pin、board等)都存放在同一个分片中,这将带来巨大的好处,避免了跨分片的查询可以显著的增加查询速度。
  • 每个board都与用户并列,这样board可以通过一个数据库处理。
  • 分片ID足够65536个分片使用,但是开始Pinterest只使用了4096个,这允许他们轻易的进行横向扩展。一旦用户数据库被填满,他们只需要增加额外的分片,然后让新用户写入新的分片就可以了。

查找

  • 如果存在50个查找,举个例子,他们将ID分割且并行的运行查询,那么延时将达到最高。
  • 每个应用程序都有一个配置文件,它将给物理主机映射一个分片范围。
  • “sharddb001a”: : (1, 512)
  • “sharddb001b”: : (513, 1024)——主要备份主节点
  • 如果你想查找一个ID坐落在sharddb003a上的用户:
  • 将ID进行分解
  • 在分片映射中执行查找
  • 连接分片,在数据库中搜寻类型。并使用本地ID去寻找这个用户,然后返回序列化数据。

对象和映射

  • 所有数据都是对象(pin、board、user、comment)或者映射(用户由baord,pin有like)。
  • 针对对象,每个本地ID都映射成MySQL Blob。开始时Blob使用的是JSON格式,之后会给转换成序列化的Thrift。
  • 对于映射来说,这里有一个映射表。你可以为用户读取board,ID包含了是时间戳,这样就可以体现事件的顺序。
  • 同样还存在反向映射,多表对多表,用于查询有哪些用户喜欢某个pin这样的操作
  • 模式的命名方案是:noun_verb_noun: user_likes_pins, pins_like_user。
  • 只能使用主键或者是索引查找(没有join)。
  • 数据不会向集群中那样跨数据的移动,举个例子:如果某个用户坐落在20分片上,所有他数据都会并列存储,永远不会移动。64位ID包含了分片ID,所以它不可能被移动。你可以移动物理数据到另一个数据库,但是它仍然与相同分片关联。
  • 所有的表都存放在分片上,没有特殊的分片,当然用于检测用户名冲突的巨型表除外。
  • 不需要改变模式,一个新的索引需要一个新的表。
  • 因为键对应的值是blob,所以你不需要破坏模式就可以添加字段。因为blob有不同的版本,所以应用程序将检测它的版本号并且将新记录转换成相应的格式,然后写入。所有的数据不需要立刻的做格式改变,可以在读的时候进行更新。
  • 巨大的胜利,因为改变表格需要在上面加几个小时甚至是几天的锁。如果你需要一个新的索引,你只需要建立一张新的表格,并填入内容;在不需要的时候,丢弃就好。

呈现一个用户文件界面

  • 从URL中取得用户名,然后到单独的巨型数据库中查询用户的ID。
  • 获取用户ID,并进行拆分
  • 选择分片,并进入
  • SELECT body from users WHERE id = <local_user_id>
  • SELECT board_id FROM user_has_boards WHERE user_id=<user_id>
  • SELECT body FROM boards WHERE id IN (<boards_ids>)
  • SELECT pin_id FROM board_has_pins WHERE board_id=<board_id>
  • SELECT body FROM pins WHERE id IN (pin_ids)
  • 所有调用都在缓存中进行(Memcache或者Redis),所以在实践中并没有太多连接数据库的后端操作。

脚本相关

  • 当你过渡到一个分片架构,你拥有两个不同的基础设施——没有进行分片的旧系统和进行分片的新系统。脚本成为了新旧系统之间数据传输的桥梁。
  • 移动5亿的pin、16亿的follower行等。
  • 不要轻视项目中的这一部分,Pinterest原认为只需要2个月就可以完成数据的安置,然而他们足足花了4至5个月时间,别忘了期间他们还冻结了一项特性。
  • 应用程序必须同时对两个系统插入数据。
  • 一旦确认所有的数据都在新系统中就位,就可以适当的增加负载来测试新后端。
  • 建立一个脚本农场,雇佣更多的工程师去加速任务的完成。让他们做这些表格的转移工作。
  • 设计一个Pyres副本,一个到GitHub Resque队列的Python的接口,这个队列建立在Redis之上。支持优先级和重试,使用Pyres取代Celery和RabbitMQ更是让他们受益良多。
  • 处理中会产生大量的错误,用户可能会发现类似丢失board的错误;必须重复的运行任务,以保证在数据的处理过程中不会出现暂时性的错误。
  • 动态

    • 最初试图给开发者一个分片系统。每个开发者都能拥有自己的MySQL服务器,但事情发生了快速的变化,导致不能工作。变
    • 去了Facebook的模式:每个人可以获得一切。所以,你不得不非常谨慎

    未来发展方向

    • 基于服务的架构。
      • 当他们开始看到了很多的数据库负载,便像产卵一样,导致了很多的应用服务器和其他服务器堆在一起。所有这些服务器连接到MySQL和Memcache。这意味着有30K上的memcache连接了一对夫妇演出的RAM引起的memcache守护进程交换。
      • 作为一个修补程序,这些都是移动的服务架构。有一个跟随服务,例如,将只回答跟随查询。此隔离的机器数目至30访问数据库和高速缓存,从而减少了连接。
      • 帮助隔离功能。帮助组织,解决和支持这些服务的团队。帮助开发人员,为了安全开发人员不能访问其他服务。

    学到的知识

    • 为了应对未来的问题,让其保持简单。
    • 让其变的有趣。只要应用程序还在使用,就会有很多的工程师加入,过于复杂的系统将会让工作失去乐趣。让架构保持简单就是大的胜利,新的工程师从入职的第一周起就可以对项目有所贡献。
    • 当你把事物用至极限时,这些技术都会以各自不同的方式发生故障。
    • 如果你的架构应对增长所带来的问题时,只需要简单的投入更多的主机,那么你的架构含金量十足。
    • 集群管理算法本身就用于处理SPOF,如果存在漏洞的话可能就会影响到每个节点。
    • 为了快速的增长,你需要为每次负载增加的数据进行均匀分配。
    • 在节点间传输的数据越少,你的架构越稳定。这也是他们弃集群而选择分片的原因
    • 一个面向服务的架构规则。拆分功能,可以帮助减少连接、组织团队、组织支持以及提升安全性。
    • 搞明白自己究竟需要什么。为了匹配愿景,不要怕丢弃某些技术,甚至是整个系统的重构。
    • 不要害怕丢失一点数据。将用户数据放入内存,定期的进行持久化。失去的只是几个小时的数据,但是换来的却是更简单、更强健的系统!

    相关文章

2013年4月21日星期日

江苏泰州滨江工业园书记吃天价餐向群众下跪


人民公仆倒下了!4月19日晚,泰州滨江工业园区在其招待中心豪华宴请,被群众发现围堵。11时许,园区管委会书记张爱华手持话筒现身站到餐桌上,突然张爱华跪在餐桌上,作揖并向老百姓磕了三个头,说:“我今晚错了,请求原谅,做儿子,做孙子都行,请放我走”。
2013年4月19 日晚,江苏省泰州滨江工业园区管委会在其接待中心举行晚宴时,没有厉行国家倡导的勤俭节约作风,而是大摆宴席,喝五粮液、洋河系列酒梦3、梦6,饭桌上每人一条刀鱼、河豚等高级菜肴,遭到群众围堵。
当晚7时30分,在泰州滨江工业园区管委会,院内外围满了几百名附近群众。在其管委会院内的接待中心二楼207房间时,气愤的群众将当时就餐人员围堵在房间内,一些群众拿出手机拍照。有警察在现场。
附近居民说,滨江工业园管委会与他们居住的滨江花苑小区一路之隔,每天都能看见小车进进出出。今天晚上看见有十几辆小车开进管委会内,车内人员走进招待中心。为了探其究竟,有居民进入招待中心的二楼餐厅暗访发现,包厢内的人员正在大吃大喝,喝的是高档白酒洋河梦之蓝、五粮液,抽的是高档香烟,每人一条名贵的刀鱼和河豚。随后他们跑回小区通知小区居民一起到招待中心抓“现行”.几百名群众将餐厅包围后,有些“食客”溜之大吉,有些“食客”被困在房间内。有居民告诉记者,一桌下来至少要一万元。
细数了下,在二楼至少有四个包厢有酒席,每桌上面都是大鱼大肉,其中名贵的刀鱼和河豚每人一份。每桌至少有7、8瓶名贵的洋河系列酒梦3、梦6,还有红葡萄酒和啤酒。
当晚9时,当地群众仍然在管委会招待中心内,没有散去。

海豹突击队:刺杀拉登的特种兵是如何炼成的


“砰”地一声短促的闷响。
第一枚5.56毫米口径的子弹,射入了本·拉登的胸膛。
就在他向后倒下的过程中,第二枚子弹已从左眼上方两厘米处,打穿了他的额头。
“以上帝和国家的名义——吉罗尼莫,吉罗尼莫,吉罗尼莫。”开枪的男子朝无线电喊道,“吉罗尼莫 E.K.I.A.——目标在行动中被击毙!”
“我们干掉他了。”白宫作战室中,奥巴马喃喃自语道。
两年前的5月1日深夜,“9·11”事件过去9年7个月零20天后,美国海军海豹突击队队员在巴基斯坦首都伊斯兰堡郊外小镇阿伯塔巴德的一栋建筑中,射出了复仇的子弹。
此时,距这场名为“海神之矛”的行动开始,仅仅过去了14分钟。
这名“基地”组织的首领,穿着棕褐色的伊斯兰长袍,戴着头巾,躺在血泊中。他的手里没有任何武器,死前也没有留下任何遗言。
因为他的“终结者”——“海豹”队员——不会给他哪怕一秒钟的时间,也不存在拘捕的疑问,击毙本·拉登是他们唯一选项。
“我对你们有百分之一百的信心,你们是这个世界上到目前为止最优秀的小规模特种作战部队。”事后,奥巴马如此褒赞海豹突击队。
成立半个多世纪以来,这支“美军王牌三栖特种部队”几乎参与了美国的每一次重大现代战争和军事反恐。
而在近十年,通过活捉萨达姆、阻击索马里海盗等重大行动,这支神秘之师也逐渐走进普通人的视野,并引起一些摄影师的关注。
现年50岁的美国女摄影师斯蒂芬妮·弗赖德·帕伦奇奥便是其中一位。
2002年至2012年间,她得到时任美国海军中将罗伯特·哈沃德的允许,全程跟踪“海豹”队员的训练,并先后两度随军深入阿富汗,用镜头近距离观察这支王牌部队,后者的神秘面纱得以首次通过图片揭开。
“他们付出的牺牲超过你我任何人的想象,对他们来说,每一天都是战争。”在海豹突击队击毙拉登两周年之际,斯蒂芬妮接受了《外滩画报》记者的采访,“过去的十年,我亲眼见证了这些士兵如何成长为‘精英勇士’,而唯一不变的,是他们所恪守的‘海豹’信条。”
初识“海豹”
斯蒂芬妮第一次与海豹突击队结缘始于1998年。通过一位挚友的介绍,她在当年的一次晚宴中认识了时任海军中将罗伯特·哈沃德(现任美军联合作战特种部队副司令员)。
那天晚上,斯蒂芬妮刚好坐在罗伯特的身旁。“你以前在什么部队?”斯蒂芬妮问。
“你听过海豹突击队吗?”罗伯特的自豪之情溢于言表,“我就是从那儿出来的。”
斯蒂芬妮的眼睛瞪得老大,她没想到,眼前这位军人便出自那支“改变海湾战争格局”的精英部队。随着交谈的深入,罗伯特的“海豹”经历进一步激发了斯蒂芬妮的好奇心。而在20世纪90年代,即便对斯蒂芬妮这样的美国人来说,“海豹突击队”也仅仅是新闻里一笔带过的“传奇”和“SEAL”这四个字母组成的一个符号。
“SEAL”(海豹)取自SEA(海)、AIR(空)、LAND(陆)之意,意即其具有强大的三栖作战能力,隶属于美国海军。
成立于1962年的海豹突击队,前身是“二战”中美国海军水下战斗爆破队,至今已扩大到两个战斗群,约2500人。
在斯蒂芬妮眼中,这支队伍依然在世人面前保持着足够的神秘感。但如何找到一个合适的方式揭开这层面纱,当时她并没有成熟的想法。
在随后的两三年里,经过罗伯特的引见,她认识了更多的“海豹”队员,这里面既有初出茅庐的新手,也有久经沙场的老将。
这些前期接触,让她对海豹突击队产生了愈加浓厚的探索兴趣。
“他们根本不是电影里描绘的那些大男子主义的士兵。”斯蒂芬妮说,“他们有血有肉,我很想告诉大家,他们到底是什么样的一群人。”
时机就这样不期而至。
2001年的“9·11”事件震惊世人,小布什政府也随之提升了反恐力量。其中,海豹突击队成为美军“装备升级”的关键一环。
当年,罗伯特作为前线副总指挥,带领包括海豹突击队在内的联合特种作战部队前往阿富汗执行反恐任务。
斯蒂芬妮随即给他写了一封电子邮件:“我想做一个6个月的拍摄项目,反映海豹突击队队员的真实生活,反映他们的喜怒哀乐,向世人展现他们所付出的牺牲,让更多人走进他们的内心,最后形成一本摄影集。你看可行吗?”
在回复中,罗伯特表示自己“很喜欢这个拍摄计划”,并会尽快向上级汇报。
惴惴不安中,斯蒂芬妮等待了两个月。罗伯特终于回复了邮件,只有两个字:“来吧!”
“这真是一个极其珍贵的机会。”她告诉《外滩画报》,“你要知道,在历史上,没有任何一名普通民众、记者或摄影师,曾经近距离且长时间接触过海豹突击队。”
2002年3月,“9·11”事件过去半年后,她和摄影集的文字撰稿人珍妮弗·沃尔顿一起出现在了位于加州科罗拉多岛的海豹突击队训练基地——海军特种作战训练中心。
“姑娘,这儿不是你来的地方”
“虽然得到了官方的拍摄许可,但是剩下的就只有靠我们自己了。”斯蒂芬妮的拍摄工作在起始阶段进行得并不顺利。
她的家在洛杉矶,距离加州南部的科罗拉多岛需要三小时车程。为了全身心投入拍摄工作,斯蒂芬妮放弃了原有的安逸生活,每天5点起床,给女儿准备好早餐后匆匆上路,并在8点半前赶到海豹突击队训练基地,开始一天的拍摄。
而最难的还在于获取“海豹”队员的信任。在斯蒂芬妮之前,没有任何一名摄影师能观看他们的日常训练;对于斯蒂芬妮自己来说,也没有任何“前辈”能够提供“模板”,指导她如何拍摄这些队员的“基础水下爆破训练”、“海豹资格训练”、“毕业典礼”、“远程部署”和“衣锦还乡”等主题。
在开始的几星期,斯蒂芬妮迟迟无法拍到令自己满意的作品——每每靠近那些正在参训的准“海豹”队员,她总会遭到对方的拒绝:“姑娘,这儿不是你来的地方,别在我身边转悠好吗?”
“是的,他们叫我‘姑娘’。其实我都可以当他们的妈妈了。”斯蒂芬妮颇感无奈。
经过三个月的接触,这些准“海豹”队员逐渐接纳了这位整天在他们面前“晃悠”的“姑娘”。
说是准“海豹”,因为他们离一名合格的海豹突击队队员,还有很长的路要走——等待他们的,是异常艰苦的训练与考核。
准“海豹”队员的训练时间长达 48周(即11个月)。前25周为基础水下爆破训练,训练地点即上文提及的科罗拉多海军特种作战训练中心。
然后是一周的静态绳索跳跃训练,接下来是三周的自由落体资格训练。这两项训练均在佐治亚州本宁堡的陆军空降训练中心完成。在海豹突击队执行的多次索降行动中,“海豹”队员从“黑鹰”直升机上沿着绳索潇洒速降的动作,便“产自”这四周的训练以及后期的反复练习。
接下来的19周,这些准“海豹”队员将回到科罗拉多,展开“资格训练”。通过上述所有训练后,受训者方可成为海豹突击队的正式成员。
“地狱周”和“钟先生”
在斯蒂芬妮的作品中,大量图片反映了基础水下爆破训练。
其中一张图体现的是防溺训练:十几名学员被绑上手脚,跳进2.74米深的水池中,努力让头部漂浮在水面之上。
要通过防溺这一关,他们必须按顺序完成以下规定动作:
1. 上下漂动5分钟;
2. 静态漂浮5分钟;
3. 游100米;
4. 上下漂动2分钟;
5. 前后翻转几下;
6. 游到水池底部并用牙齿取回某样东西;
7. 返回水面并再上下漂动5次。
基础水下爆破训练共持续七个月,分为四个阶段:训导阶段、基础训练阶段( 臭名昭著的“地狱周”便在此阶段)、自携式水下呼吸器训练阶段和陆战训练阶段。
其中,基础训练的日子最为难熬。该阶段也是主动放弃行为发生最为频繁的阶段。在八个星期的时间里,学员们的生活中充斥的是跑步、游泳、体操和学习驾驶小艇。
1000 至 3000 米的海中游泳和高难度的障碍跑是每日定时的课程。而在完成时间方面也有着严苛的要求——学员完成这些项目所需的时间必须逐日减少。
基础训练的第四周,便是让大量学员打退堂鼓的“地狱周”。
“地狱周”从周日落日开始计算,到星期五午夜零点结束。在这五天五夜时间里,学员最多只允许睡四个小时的觉。定时的训练、跑步、在泥地里匍匐前进,是学员每天必须面对的训练科目。
“只有在‘地狱周’中,学员才能真正理解海豹突击队的两句座右铭——第一句,‘海豹’的字典里没有我;第二句,最轻松的日子是昨天。”一位教官表示。
“地狱周”长时间的高度紧张和超负荷训练,让大批学员无法支撑。
在拍摄过程中,斯蒂芬妮经常看到这样的辛酸场景:长途奔袭训练中,有的学员跑着跑着突然倒在了地上;游泳训练中,有的学员游着游着就沉入水中。
据她观察,绝大多数半途而废的学员都是在“地狱周”选择退出。
前海豹突击队队员马库斯写过一本回忆录《孤独的幸存者》,里面详细记录了学员受训的内容。“可想而知,那种高强度的‘地狱式’训练,考验的不光是体能极限,更是意志力的承受极限。疼痛、寒冷和恐俱,时刻会把人逼到崩溃的边缘,对于受训队员来说,简直每天都是世界末日。”马库斯在回忆录中写道。
因此,教官又制定了一个比较人性化的规则。他们在训练中心挂上一口大钟,如果哪个学员觉得无法忍受,只要亲自去敲响这口钟,就表示自动放弃,随时可以收拾行李回家,绝不阻拦。“海豹”队员称这口钟为“Mr Bell”(钟先生)。
即便人人都把敲钟视为奇耻大辱,“钟先生”依然每天都会响起。
关于这口钟,马库斯曾发现一个奇怪的现象:大多数人都不是在训练过程中放弃的,而是晚上休息时跑去敲钟,也就是说,他们已经圆满完成了当天的训练任务,最艰难的时刻都挺过来了,为什么在最轻松的时候,反而决定放弃?
经验丰富的教官解开了马库斯心中的谜团:“他们没有专心投入当天的训练,总是在担心明天能不能熬过去,情不自禁陷入到对未来的恐惧之中,越想越害怕,于是放弃了。”
因此,教官会提醒留下的学员:“千万不要提前去想象痛苦!要忘记未来,只关注眼前,坚持完成当天的任务就是成功。”
而能够挺过“地狱周”的学员,大部分都成了最后的“正牌”海豹突击队队员。
金色三叉戟
在完成基础水下爆破训练,离开科罗拉多前,海军特种作战部队司令部会给通过第一阶段训练的学员举办一个结业典礼。
“现在,你们已经学会了如何在正确的时间,为达到正确的目的,去执行正确的任务。后面还有训练在等着你们。别忘了你们的誓词!”教官在结业典礼上说道。海豹突击队的誓词共有 10 小段,每个“海豹”队员都需要对这一千余字烂熟于心。
其中广为传颂的一段是:“在战争或和平时期,有一个特种兵时刻准备听从国家指挥;他是对成功怀着不平凡渴望的平凡人;他在逆境中锤炼,他与美利坚最杰出的特种部队并肩作战,为这个国家及斯土之上的人民服务,并捍卫他们的生命。而我就是那个人。”
但或许此刻,这些准“海豹”队员早已把誓词抛在了脑后:他们穿着整洁雪白的海军制服,和前来观摩典礼的家人拥抱,和女友亲吻,有的甚至跑到“钟先生”前,疯狂地敲击着这口折磨了自己数周的大钟。
结业典礼结束的晚上,他们一般会前往科罗拉多岛的 Danny 酒吧,抓住最后的时间尽情放松。因为接下来,跳伞训练与资格训练仍将对他们进行考验。
资格训练是学员成为正式“海豹”队员前的最后一个训练大项,历时 15 个星期,其间除了继续提高基本技能,还需学习实战中的团队合作战术,模拟完成团队任务。
通过资格训练的学员,将被授予美国海军征募代号,并获颁海豹突击队的三叉戟徽章——这是他们成为正式海豹突击队队员的标志。
这枚光荣的金色徽章,由一只两脚各抓一支枪的老鹰、三叉戟与船锚组成:老鹰代表美国立国之本的自由精神,枪象征捍卫美国的坚定信念,三叉戟代表海豹突击队的海上作战能力,船锚则指代美国海军。
48 周过去了,最后只有不到30% 的学员佩戴上了这枚徽章,成为这支“精英勇士”部队的一员。但这并不意味着他们就可以开始“刺杀本·拉登”了。
在向各作战单位报道之前,海豹突击队的新兵还需奔赴阿拉斯加州的科迪亚克,参加为期四周的寒冷天气条件下海上科目训练。
斯蒂芬妮跟随这些新兵,踏上了这片终年低温的“最后边疆”。
在这片美国领土最北端的高寒地带,她跟拍了一个叫“FTX”的24 小时终极训练项目。
“这个项目考验的是他们在极寒气候下的生存技能,以使他们适应现实世界中的极端天气情况。”斯蒂芬妮介绍。
在24 小时内,新兵必须连续完成从冰冷的海水中游到海滩的 500 码游泳项目,背负五六十磅的重物,通过钢索和远程导航穿越山间河谷,并在荒野中建立针对目标的秘密监测网络等任务。
所有的新兵训练结束后,不同中队的“海豹”队员还将分配至各自的团队,进行进一步的专业化与系统化训练。
例如,特别舟艇中队的“海豹”队员的工作重点,是在海上或河区环境里秘密投送和撤离其他“海豹”队员。有时他们还要负责国内与国外防务、欺骗作战、搜索救援和武装护航等任务。因此,他们还需要在科罗拉多海军特种作战中心参加高级训练,如接受武器操控、海上导航、高空跳伞、医疗急救、通信工程等方面的细化训练。而这些训练,将伴随他们的每一天。
“沉默战士”
正如上文指出,斯蒂芬妮本打算只跟拍他们六个月,没想到后来获得了这些“海豹”队员的充分信任与支持,竟从 2002 年一直拍到了 2012 年。
在这十年间,斯蒂芬妮从对军事一无所知,到学会熟练使用手枪和步枪,与“海豹”队员一起爬高山与冰川,一起乘坐冲锋舟,在阿富汗与他们一起乘坐 C5 和 C17 运输机执行任务,并和他们一起进行了3次跳伞训练。
“我也曾扪心自问,自己是否吃饱了没事干,跟着他们活受罪,但这确是一个在我四十岁之前的生命旅程中永远都不会想到的一段经历。”斯蒂芬妮说,“他们所做的一切都是如此伟大,他们一直在超越自己的极限。”
在斯蒂芬妮看来,海豹突击队的伟大正体现在他们所付出的“无言牺牲”。后来出版的这本摄影集的名字,就叫作《海豹突击队:无言的牺牲》。
她十分满意文字搭档珍妮弗想出的这个书名:“这个标题说明了一切。‘海豹’队员不希望自己被任何人知晓,他们更愿意被外界视为默默无闻的‘沉默战士’。”
在残酷的战争中,这些“无言的牺牲”无处不在——战场中的不可预见性,对于“身经百练”的海豹突击队而言,同样难以避免。
8 年前,这支部队在阿富汗与塔利班较量时曾遭遇2005 年 6 月,“海豹”第 10 小队“阿尔法”排接到命令:出动一支侦察小组,抓捕或击杀塔利班组织高级头目艾哈迈德·沙赫。沙赫领导着一支名为“山虎”的武装,当时传言与拉登关系密切。
情报显示,沙赫隐藏在阿富汗库纳尔省阿萨达巴德附近的一座村庄,那里群山环绕,驻有 100 多名狂热的塔利班武装分子。
“阿尔法”排决定,由迈克尔·墨菲上尉率领马修·阿克塞尔森中士、丹尼·戴兹中士和马库斯·鲁特雷尔中士组成4 人侦察小组,随身携带武器、观察器材、长焦相机、通信器材、双刃砍刀等装备,以及足够的口粮和饮水,在村庄附近的山坡上建立观察点,观察沙赫是否在村庄中藏身。目标确认后,侦察小组可召唤驻扎在巴格拉姆空军基地的战斗机实施轰炸。这便是著名的“红翼行动”。
“海豹”折戟
6 月 28 日晚,侦察小组登上运输直升机,趁夜色潜入茫茫大山。步行一个多小时后,侦察小组发现了一处视野极佳的观察点,墨菲上尉决定在此潜伏,待天亮后对村庄实施侦察。
太阳升起后不久,意外发生了。3 个牧羊人撞在侦察小组的潜伏点上,“海豹”队员被发现了!摆在他们面前的是两难选择:杀死牧羊人,或者放他们走。选择前者,“海豹”的安全没有问题,但任务结束后,必然会受到媒体和舆论的质疑,说不定还会以谋杀罪被送上军事法庭;选择后者,意味着“海豹”们将面临着极大的风险。
海湾战争中,绿色贝雷帽部队的士兵在潜伏时也被当地伊拉克人发现过,当时美国人选择放走他们。结果,伊拉克人转身就向共和国卫队告密,绿色贝雷帽士兵因此受到围攻。
4 位“海豹”队员刚刚来到阿富汗3 个月,面对如此两难的选择,一时不知如何是好。墨菲上尉打算向基地的战术行动中心请示,但无线电无法连通,无奈之下,他们决定投票表决。墨菲主张放牧羊人走,阿克塞尔森中士主张杀死他们,戴兹弃权,牧羊人的生死握在鲁特雷尔中士手中。鲁特雷尔犹豫再三,最终决定支持墨菲上尉,放 3 个牧人羊离开。
唯一生还的鲁特雷尔事后对这个决定悔恨万分:“这是我一生中做过的最蠢的决定,放在平时,就算喝醉了,或者脑子出了毛病也不会那么做!我投下那一票,就像签下了我们几个人的死亡证书,简直是混蛋透顶!如果我知道后来的情况,我会毫不犹豫地杀死他们!”
捡回性命的牧羊人急匆匆绕过山坡,消失在山脚下。中午时分,侦察小组最担心的事情发生了:100 多名塔利班武装分子从前、左、右三面围住潜伏点所在的山坡,排成密集的攻击队形蜂拥而上。
在武装分子的围攻下,四名“海豹”队员寡不敌众。戴兹中士、阿克塞尔森中士和墨菲上尉先后中弹牺牲。鲁特雷尔被身边爆炸的一枚火箭弹震落到山谷,侥幸被当地一名亲美的萨布雷·米阿村村民救起。
生死承诺
当年年末,小布什总统在白宫和五角大楼专门为迈克尔·墨菲举行了隆重的纪念仪式,其父母丹和莫琳代替阵亡的儿子从小布什总统手中接过了一枚荣誉勋章。
墨菲也是美国近35 年来首次获此殊荣的海军成员。在布什总统宣读表彰词时,丹和莫琳不能自已,斯蒂芬妮用相机记录下这一幕。
当天,迈克尔·墨菲的战友也来到现场。“他们队友之间的情谊,超越了骨肉兄弟,超越了生死边界;他们之间的生死承诺,将跟随墨菲走进另一个世界。”斯蒂芬妮在《海豹突击队:无言的牺牲》中写道。
在训练中,学员们经常被告知:现在的苦痛不是为了自己,而是为了能够在危难时刻拯救队友的生命。
随着训练的深入,日复一日,那些拥有共同渴求、经受共同考验的学员之间会产生一条纽带。他们的背景也许不同,但使命感让他们团结一致,他们共同见证着训练中的磨难、失败与胜利。一支队伍就此诞生——一支能够为国家赴汤蹈火的精英部队。而他们的牺牲却不仅仅体现在生命的消逝。
“他们可能无法与家人共度生日与各类周年纪念,无法在产房听到孩子的第一声啼哭,无法参与孩子的第一场足球比赛或舞蹈演出。由于无时不刻的训练与远程部署,他们告别了人们唾手可得的日常生活。”斯蒂芬妮告诉《外滩画报》,这些或大或小的赋予生活以意义的时刻,可能仅仅是他们生命中一声短促的回响。
尽管如此,每一名海豹突击队队员都知道,他对国家和队伍的义务必须放在首位,这种使命对于家庭造成的重大影响,将会是他人生中永远无法弥补的一个缺憾。
虽然在每项任务完成间隙的周末,部队会邀请他们的家人来到位于西海岸的海军基地公园,让“海豹”队员享受天伦之乐,但幸福的时光总是短暂——新的作战或训练任务会在周日晚准时下达。
2011 年 4 月 10 日的这个周日,24 名“海豹”队员接到通知,他们将被派往北卡罗来纳州一个密林环绕的地点参加演习训练。
在这个密林里,建有一个由土墙和铁栏杆围成的院落,面积约 1 英亩,院子里盖着一栋三层楼房。这是本·拉登藏身之所的一比一复制品。