【小哈划重点:根据预期,当卫星总量达到800颗时,即可在全美实现基本网络覆盖。最终,成千上万的Starlink卫星可以为全世界数十亿人提供始终在线的宽带互联网访问。】
Starlink:我们已经向太空发射了36000台Linux计算机,未来几年至少将达到200万台。
北京时间6月13日17:21,SpaceX使用猎鹰9火箭将58颗Starlink卫星和3枚SkySats卫星送入了轨道。
太阳光下的SpaceX火箭升空羽流图
北京时间6月4日上午9点25,Starlink“星链计划”刚完成了第八次卫星发射任务。紧接着,又于6月13日进行了第九次卫星发射。
这次发射没有按照常规发射60颗Starlink卫星,而是混装了3颗SkySat卫星和58颗Starlink卫星。SpaceX在升空后约13分钟部署了SkySat卫星,然后在升空后约39分钟部署了58颗Starlink卫星。随后助推器安全返回到海面回收点。
近地轨道上的58颗Starlink卫星
原计划每月一次的发射任务,这个月变成了两次。SpaceX之所以这么着急地发卫星,可能是因为夸下的海口要到期了——今年4月马斯克曾在社交媒体称星链版卫星互联网将在3个月内进行私人内测,即在今年7月开始提供私人Beta版服务。
SpaceX在上周刚刚利用一枚重复使用的猎鹰9号火箭向太空中发射了60颗星链卫星,加上这周发射的58颗,星链计划的总体在轨卫星已经达到540颗左右。根据预期,当卫星总量达到800颗时,即可在全美实现基本网络覆盖。最终,成千上万的Starlink卫星可以为全世界数十亿人提供始终在线的宽带互联网访问。
相当于发射了一个小型数据中心
SpaceX运行的这些Starlink卫星,类似于数据中心里众多的服务器,每发射60颗卫星,就包含4000多台Linux计算机。按照这样的计算方式,当前在轨卫星约540颗,SpaceX总共已经向星链体系发射出36000台Linux计算机。SpaceX公司星链软件主管MattMonson表示,这些设备的功能类似于基于Linux的服务器,“对于Starlink,我们需要卫星像数据中心中的服务器,而不是像某种特殊的交通工具。”
SpaceX计划在北半球夏季结束之前,推出星链网络服务的公测版本,美国政府也批准其在美国本土部署100万个最终用户终端。
现在,马斯克的1.2万颗星链卫星计划已经发射到第九批,另外3万颗,还在向美国通信委员会FCC申请中。假定第二代卫星搭载同等数量的Linux计算机,SpaceX相当于在未来几年会将至少200万台Linux计算机送入太空。
目前Starlink每天产生的数据已经超过5TB。为了减少向地面传输和存储数据的压力,解决思路就是尽可能让卫星在轨道上完成问题的检测。
整个Starlink宽带卫星网络的运营也类似于维护数据中心里的服务器集群,该集群也会频繁更新软件,以解决诸如性能和安全性等问题。MattMonson在Reddit论坛的答疑(AMA)里说,“卫星网络需要大量软件才能使其正常工作”。
Starlink团队表示这些在轨卫星曾不止一次地出现从未有过的故障,好在卫星本身能够保证自己的安全飞行,使团队有足够的时间对在轨卫星进行调试,找到修复方法,同时在软件更新当中不断修复问题。通常情况下,在轨卫星的软件大约每周更新一次,而地面系统则每周更新两次或更多次。他说:“软件上的小改进会对我们提供的服务质量和服务人数产生巨大影响。”
“而且星链计划与猎鹰/龙项目共享有大量Linux平台基础架构,因此后两者也从长达180多单位-年的星链在线测试中获得了巨大助益。”
共享的基础架构
载人龙飞船软件设计负责人Sulkin透露称,这些Linux计算机上运行有PREEMPT_RT补丁程序。这款补丁由红帽工程师研发而成,旨在将Linux转化为实时操作系统。
Sulkin还指出,SpaceX方面并未使用第三方Linux发行版,而且他们使用的版本中包含多款定制化驱动程序,用于实现硬件交互并构建起分布式计算机系统。
顺带一提,SpaceX公司的龙飞船同样运行Linux系统并使用由C++编写的飞行软件,飞船的触摸屏界面则使用Chromium与JavaScript渲染而成。Hnaide指出,该团队还为Chromium界面设计了一套内部反应库。此外,NASA宇航员Behnken与Hurley所使用的这套界面,也与星链卫星项目进行了部分交叉开发。
Starlink软件主管Monson表示,“机组人员使用的显示技术(尤其是地图与警报机制),正是我们首批星链卫星(Tintin)上用户界面的设计基础。”
Tintin A与B是SpaceX公司于2018年2月利用猎鹰9号火箭送入地球轨道的两颗测试性星链卫星。“在此之后,发射的体量开始快速增加。特别是看到Bob和Doug能用上我们所熟悉的开发成果,这种感觉太棒了。”
SpaceX公司表示,如果各位在校学生打算未来加入他们,首先需要高度重视对Linux专业知识的学习。
“要加入SpaceX,首先得拿到计算机科学或者相关专业的学位。大家应该多花时间保证自己确切理解事物的工作原理——在SpaceX,最出色的工程师一定要对代码的工作方式、网络的工作方式、Linux的工作方式以及硬件的工作方式拥有一丝不苟的严谨态度。另外,大家也可以通过业余项目或者SpaceX实习职位来体验如何构建事物、解决难题。”
安全性是难题
随着星链卫星宽带服务在未来几个月逐步由测试阶段过渡至运营阶段,安全性将成为SpaceX面临的一大关键难题。
Moran分享了工程师们目前正在着手解决的具体问题,包括卫星、网关、本地“UFO-on-a-stick”终端等等。Moran在答疑里写道,“我们设计的系统会对用户数据进行端到端加密,因此即使成功入侵卫星或网关,攻击者也无法拦截到其中的通信内容。我们系统中的所有硬件,包括卫星、网关、用户终端等,都只允许运行经过我们签名的软件,因此即使攻击者强行闯入,也无法获得持久的驻留点。”
如果卫星与地面失去联系,则将其编程为进入高阻力状态,从而坠入大气层销毁。为了确保此类问题不会影响最终用户,该网络被设计为多个卫星为单个用户提供服务的形式,以提供更多的容错能力。
“此外,我们还强化了系统内部,包括地面数据中心服务,使攻击者难以利用某一区域内的漏洞入侵其他区域。我们将继续努力,保证整体系统得到严密加固。虽然目前我们还有很多其他工作要处理(包括招聘新员工),但安全一直是我们非常重视的核心方向。”
未能使用机器学习
虽然科技行业正在利用机器学习技术全面推进自动化,但SpaceX的龙飞船与猎鹰火箭还没有用到这一强力武器。Starlink团队表示,“龙飞船与猎鹰火箭并没有用到机器学习技术,但未来SpaceX也许会逐步引入这方面技术。”
SpaceX的工程师们并没有透露他们在航天器上具体使用哪种计算硬件(包括CPU与GPU型号),但据猜测,这些计算机的性能恐怕不足以支持机器学习类应用。
这就不得不提到航天器的计算硬件问题。事实上,包括火箭、飞船等在内的航天器配备的CPU和市面上最新的CPU产品通常相去甚远。因为在太空环境下工作的CPU必须经过抗辐射处理,否则太空中的电离辐射和宇宙射线会让CPU工作异常。而为太空飞行定制的处理器除了需要经过特别的设计,还需要经过更多年的测试才能最终获得太空飞行的认证。
这些为上天定制的CPU从试验到最终的发射可能需要经过十年以上的时间,导致最终搭载的CPU可能是十年前的产品。国际空间站目前仍使用着1988年出品的老式20MHz英特尔80386SXCPU,这种芯片进行了专门的强化以抵御太空中宇宙射线的轰击。
(原文标题:《Starlink送“数据中心”上天:九次共发射36000台Linux计算机,每天产生数据超5TB》)