portsnap镜像的另一种实现方法

| 2 Comments

FreeBSD 5.5和6.1开始内建了 portsnap,portsnap是一种新的 ports 套件同步机制。

与传统的 cvsup 更新方式相比, portsnap 有一些优越性:

  • 对于经常进行更新的情况,portsnap很快:portsnap包含索引和具体的ports两部分,在更新的时候它首先会更新索引,而具体的更新则是下载两次索引描述的文件之间的差异,因此可以大大节省带宽。
  • portsnap有数字签名:cvsup并不包含任何加密或数字签名的机制,而portsnap的公钥则是通过光盘发给每一台机器的,相对来说安全性要好的多。
  • portsnap使用HTTP协议:通常,企业防火墙并不会拦截HTTP。

早先,架设portsnap镜像的方法比较复杂。由于portsnap的设计,架设portsnap镜像所产生的流量,在通常情况下大约会是仅做portsnap操作的3000倍左右。

之前听lwhsu提到了台湾那边的镜像所采用的方法,值得借鉴:

由于portsnap使用的是HTTP协议,而数据集相对较小,因此,实际上可以把这些内容全部作为反向代理放进内存。

2 Comments

可否详细介绍一下portsnap呢?做应用软件的时候经常要为它提供更新服务,我觉得portsnap至少就是个很好的例子告诉我为什么要这么做不那么做。 虽然已经用了很久了,但是我对它的具体实现方式一直不了解。比如当FileA改变的时候,它下载的是新的文件,还是两个文件之间的二进制差异?这个差异是以什么样的格式描述的?

早就尝试过这样的方法, 瓶颈在于国内外之间的链路, 因此意义不大. 反向代理第一次下载的时候一样慢的难以忍受.

Leave a comment

About this Entry

This page contains a single entry by Xin LI published on November 17, 2009 1:37 PM.

洗洗睡了吧...... was the previous entry in this blog.

服务器挂了 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.01