摘要
- PlanetLab 的 slice 由多个节点上的虚拟机及其资源份额组成。它为服务提供统一的全球身份,却不取得任何物理节点的所有权。
- 中央服务可以提出并组合部署请求,实际执行仍取决于节点管理器、当前容量、调度器和托管机构的本地规则。
- 开放实验必须与资源隔离、行为记账和责任链同时存在;外部可见的流量需要追溯到发起它的 principal。
一个名字跨过了机器,产权没有
在 2000 年代初,研究者要测试一个广域网络服务,常常先向不同机构的熟人借账户。几个友好的服务器可以跑出演示,却很难形成可重复的实验环境,也无法充分暴露长距离、负载差异和管理规则带来的问题。
PlanetLab 把这种临时协作变成共享设施。一个研究组可以在许多站点部署同一服务,并以一个整体管理它。这个整体被称为 slice。
2004 年的系统论文给出了严格定义:服务在每个节点上获得部分 CPU、内存、存储和网络资源,由虚拟机承载;分布在不同地点的一组虚拟机被当成一个复合实体。对使用者而言,它像一组私人机器。但论文明确把这种“私人性”称为由隔离维持的假象。物理服务器没有转移,校园网络没有交出,本地机构也没有因一个全局账户而失去权力。
因此,slice 不是隐藏在互联网里的超级计算机,而是一组有边界、可撤回的本地授权。
slice 下面是一个个 sliver
PlanetLab 用 sliver 标记落到单个节点的事实:一台虚拟机及其获准使用的本地资源份额。slice 则是许多 sliver 组成的网络。
在这层基础之上,服务拥有相当大的选择空间。PlanetLab 不替所有项目规定同一种隧道拓扑,也不强迫大家使用同一种语言或运行时。研究者可以自行构造 overlay,并安装适合自己假设的环境。
但选择权不会自动变成资源。服务可以决定虚拟机如何互联,却不能在过载节点上凭空创造 CPU;可以请求某个地点,却不能让离线机器响应;可以获得隔离空间,却不能取得共享主机的系统权限。
2002 年的一份架构说明用 ticket 和 lease 描述这条边界。ticket 写明节点、资源量和时间窗口,兑换后才可能获得 lease,而且要通过节点本地的 admission control。该文档标为持续修订的草案,不能当作所有部署版本的固定实现。不过它留下了清楚的权力关系:全球分配者携带请求,本地节点判断是否兑现。
中央负责组合,节点负责成为现实
PlanetLab 并非没有中心。初始设计包含 PlanetLab Central,由它联系各节点的 node manager 创建本地虚拟机。创建 VM、执行限制和启动首批服务都需要特权组件。
与此同时,节点属于彼此独立的大学、实验室和其他组织。2006 年的运行经验把本地控制写成要求:每个组织必须保留对自身资源用途的部分决定权;平台若要持续扩大,就必须减少中央控制。
所以,一个 slice 在每个节点都要穿过一次权力边界。中央清单可以说某台机器“应当”属于部署,只有本地状态、node manager、调度器和托管政策能证明对应 sliver 正在运行。过时的全局记录描述愿望,running code 才描述现场。
这也是证据边界。登记了一百个节点,不等于一百份可用容量;一百台 VM 在线,也不等于它们处在相同的资源等级。
隔离不等于独占,也不等于性能保证
PlanetLab 需要处理不同类型的干扰。资源隔离限制一个 slice 对其他 slice 的 CPU、内存、磁盘和带宽影响;安全隔离分开命名空间和数据;稳定执行基座防止一个虚拟机修改邻居赖以运行的系统。
三者不能互相代替。安全上分离的服务仍可能遭遇延迟抖动;公平分享 CPU 不等于拥有 reservation;程序在 VM 内正确运行,也可能被站点带宽上限改变测量结果。
早期认为 best effort 暂时够用,实际负载很快纠正了这一判断。PlanetLab 后来采用公平分享、显式 reservation 和基于 token 的调度;内存紧张时,监控进程可能重置高消耗 VM;站点也能限制出站流量。
2006 年论文记录过一次有界实验:底层路径约为 74 毫秒,而未作特殊 CPU 处理时,overlay 往返时间落在 76 至 135 毫秒。加入 reservation 和实时调度后,大多数结果明显收敛,但内核活动造成的抖动没有完全消失。这不是整个平台的性能评分,只说明全局 slice 从未自动等于专用硬件。
责任链是实验自由的组成部分
PlanetLab 的流量进入真实互联网。网络测绘可能触发他人的入侵检测,一次吞吐量测试也可能占用校园网关。研究目的正当,不代表外部成本不存在。
2004 年论文因此要求完整记录资源使用,并能在事后把“行为”而不只是用量归到具体 slice。后来的设计原则把它概括为 chain of responsibility:对外可见的活动必须能回溯到负责的用户。
这条链让大量机构无需与每个研究组逐一建立信任。托管方不必认识所有用户,只要能执行限制、找出某个数据包背后的 principal,并让明确的责任方响应事件。
于是,slice 同时是执行边界和证据收据。一旦归因链断裂,虚拟化仍能隔开进程,却不能保护承担投诉和法律后果的托管机构。
解耦管理缩小了不可替代的核心
PlanetLab 试图只在节点 OS 中直接提供本地抽象,把 slice 创建、资源发现、监控和软件分发等全局功能做成上层服务。多个服务可以并行演化,共用明确接口,而不是让一个应用永久占有特殊权限。
这并没有消灭唯一性。总要有组件创建本地 VM、执行限制并引导第一个服务。作者承认这个小核心。设计纪律不是宣称“无人掌权”,而是缩小不可替代的权力面,并让接口可检查。
今天可以借用 Heng Lu 关于“最小初始规范”和“运行代码优先”的框架理解这一点:共同层只固定安全组合所必需的本地不变量,全局服务可以替换;中央记录不能制造节点从未授予的容量和权利。这是当代编辑视角,不是把后来的思想倒写成 PlanetLab 作者的历史动机。
“预见云”不是“发明云”
Princeton 2026 年的回顾称,PlanetLab 峰值达到 1,353 个节点、717 个站点和 48 个国家,并在 2020 年正式停止。Peterson 的表述很克制:PlanetLab 没有创造云,但预见了云。
它让人们提前习惯了申请抽象资源、远程部署软件、让多租户共享物理容量,并以逻辑服务而不是机器编号思考系统。它也提前暴露了现代控制台常会淡化的问题:哪个站点给了资源、给的是什么等级、谁能拒绝或重置、流量出事时谁负责。
PlanetLab 不是虚拟机、容器、CDN 或云编排的唯一源头,也不能把所有现代云写成它的直系后代。它的独特贡献,是把全局抽象放进真实、异构、稀缺且由多方管理的基础设施里运行。
项目结束不等于经验失效。需要延续的是可审计地组合本地授权的能力,而不是某个运营者的永生。
Larry Peterson 位于集体成果之中
Larry Peterson 是 PlanetLab 的核心组织者、架构参与者和运营者;Princeton 现将他列为 Robert E. Kahn Professor, Emeritus and Senior Research Scholar。但项目从来不是个人发明。
2002 年蓝图由 Peterson、Tom Anderson、David Culler 和 Timothy Roscoe 共同撰写。2004 年论文还包括 Andy Bavier、Mic Bowman、Brent Chun、Scott Karlin、Steve Muir、Tammo Spalink 和 Mike Wawrzoniak。2006 年经验论文属于 Peterson、Bavier、Marc E. Fiuczynski 和 Muir。动态 slice 说明是架构团队文档,由 Peterson 与 Amin Vahdat 编辑并列出其他贡献者。
保留共同署名正符合它的主题:许多机构可以协作运行一个系统,而不必虚构唯一所有者。
来源
- Peterson、Anderson、Culler 与 Roscoe — A Blueprint for Introducing Disruptive Technology into the Internet
- Bavier 等 — Operating System Support for Planetary-Scale Network Services
- Peterson、Bavier、Fiuczynski 与 Muir — Experiences Building PlanetLab
- PlanetLab Architecture Team — Dynamic Slice Creation
- Peterson 与 Roscoe — The Design Principles of PlanetLab
- Princeton Computer Science — Larry Peterson
- Princeton Computer Science — PlanetLab 回顾
- PlanetLab 项目存档
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
