MetalinkIsoDownloads

Differences between revisions 1 and 7 (spanning 6 versions)
Revision 1 as of 2007-02-26 09:00:21
Size: 3649
Editor: c-66-176-118-121
Comment: initial MetalinkIsoDownloads page
Revision 7 as of 2008-08-06 16:37:59
Size: 6040
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
 * '''Launchpad entry''': [https://features.launchpad.net/distros/ubuntu/+spec/metalink-iso-downloads metalink-iso-downloads]
 * '''Created''': 2007-02-26 by [https://launchpad.net/~albryan Ant]
 * '''Contributors''': [https://launchpad.net/~albryan Ant]
 * '''Launchpad entry''': [[https://features.launchpad.net/distros/ubuntu/+spec/metalink-iso-downloads|metalink-iso-downloads]]
 * '''Created''': 2007-02-26 by [[https://launchpad.net/~albryan|Ant]]
 * '''Contributors''': Agostino Russo, Steve Langasek, [[https://launchpad.net/~albryan|Ant]]
 * '''Implemented''': 2008-04-20
Line 12: Line 13:
Using Metalink for Ubuntu CD ISO downloads could increase availability, efficiency, and eliminate errors during download and repair corrupted files. Using [[https://help.ubuntu.com/community/Metalink|Metalink]] for Ubuntu CD ISO downloads could increase availability, efficiency, and eliminate errors during download and repair corrupted files. Wubi uses Metalinks for ISO downloads.
Line 16: Line 17:
Metalink can list FTP/HTTP/P2P sources for files and provide error free downloads. When dealing with large downloads, normally if there is an error and you are using FTP or HTTP then the download needs to be restarted from the beginning (double the bandwidth, a 600 MB transfer is now 1.2 GB). Most users do not know how to repair a download. Metalink can list FTP/HTTP/P2P sources for files and provide error free downloads. When dealing with large downloads, normally if there is an error and you are using FTP or HTTP then the download needs to be restarted from the beginning (doubling the bandwidth, a 600 MB transfer is now takes 1.2 GB). Most users do not know how to repair a download with rsync or torrents, or may not be allowed to.

A simple .metalink file looks like this:
{{{
<?xml version="1.0" encoding="UTF-8"?>
<metalink version="3.0" xmlns="http://www.metalinker.org/">
  
  <files>
   <file name="ubuntu-6.10-desktop-i386.iso">
    <os>Linux-x86</os>
    <size>732293120</size>
    <verification>
     <hash type="md5">b950a4d7cf3151e5f213843e2ad77fe3</hash>
    </verification>
    <resources>
      <url type="http"
           location="ro"
           preference="90">
       http://ftp.iasi.roedu.net/mirrors/ubuntulinux.org/releases/.pool/ubuntu-6.10-desktop-i386.iso
      </url>
      <url type="http"
           location="jp"
           preference="100">
       http://ftp.yz.yamagata-u.ac.jp/pub/linux/ubuntu/releases/.pool/ubuntu-6.10-desktop-i386.iso
      </url>
      <url type="http"
           location="us"
           preference="90">
       http://ftp.osuosl.org/pub/ubuntu/.pool/ubuntu-6.10-desktop-i386.iso
      </url>
    </resources>
   </file>
  </files>
</metalink>
}}}
Line 20: Line 55:
 * List multiple FTP/HTTP/P2P sources for a download. (This allows for faster downloading with segmented multi-source downloads, if you want).  * List multiple FTP/HTTP/P2P sources for a download. A .metalink for an ISO will list all mirrors that it is available from. (This allows for faster downloading with segmented multi-source downloads, if you want).
Line 25: Line 60:
 * Include a PGP signature to verify authenticity.
Line 37: Line 73:
1. Non technical Windows, Mac, or Linux user trys to download ISO from Ubuntu.com. 1. John is a non-technical Windows/Mac/Linux user. He wants to download an Ubuntu CD image from Ubuntu.com, all he needs to choose is his architecture and CD type (Desktop/Alternate/Server) and use the small Metalink client linked to from that page.
Line 39: Line 75:
2. Downloads Metalink client. (Soon, an easy Firefox extension). 2. Harriet is using Firefox with a Metalink client extension, this downloads an Ubuntu CD image for her from the given metalink files.
Line 41: Line 77:
3. Clicks Ubuntu ISO download link. 3. Eric has an incredibly fast Internet connection. His computer uses multiple sources from the Ubuntu Metalink file to maximise his bandwidth usage.
Line 43: Line 79:
4. Ubuntu ISO downloads from multiple sources error free. No need to 'md5sum ubuntu.iso' to check it at the end. 4. Mary has an unreliable wireless connection. Downloading an Ubuntu CD image is a major time investment, and she does not want to keep restarting it on error. Metalink checks the image for her as it is downloaded and only redownloads what is needed, leaving Mary with an error-free Ubuntu CD image.
Line 52: Line 88:
For simplicity, [http://metalinks.sourceforge.net/ metalink tools] can be used. Or [http://download.packages.ro/perl-foundry/ RoPkg::Metalink] (Perl).
If you want to get fancy, there's a patch to add Metalink creation to [http://wiki.osuosl.org/display/Bouncer/Home Bouncer].

 * Add script to generate metalink files to the ISO building process. Some such scripts are available in [[http://metalinks.sourceforge.net/|metalink tools]]:
  * [[http://code.google.com/p/metalink-library/|Metalink Library for PHP and Python]] (PHP, Python)
  * [[http://metamirrors.nl/node/60|metalink]]
  * [[http://download.packages.ro/perl-foundry/|RoPkg::Metalink]] (Perl).
  * [[http://wiki.osuosl.org/display/Bouncer/Home|Bouncer]].
  * [[http://www.mirrorbrain.org/|MirrorBrain]] (openSUSE download redirector).
 * Host the generated files on the official website: http://releases.ubuntu.com/8.04/ and other directories containing the ISOs might be a good place.

As an example see [[http://download.packages.ro/metalink/testing/|Metalink @ Package Resources]] (which uses [[http://download.packages.ro/perl-foundry/|RoPkg::Metalink]]) and has .metalinks with chunk checksums/repair information for Ubuntu, Edubuntu, and Kubuntu ISOs. OpenOffice.org and others use the .metalinks generated there.
Line 62: Line 106:
[http://download.packages.ro/metalink/ Metalink @ Package Resources] does not contain chunk checksums/repair information for Ubuntu, Edubuntu, and Kubuntu ISOs yet, only full file checksums. Chunk checksums/repair information are being added now. N/A

NOTE: This page is part of the Ubuntu Specification process. Please check the status and details in Launchpad before editing. If the spec is Approved then you should contact the Assignee, or another knowledgeable person, before making changes.

  • Launchpad entry: metalink-iso-downloads

  • Created: 2007-02-26 by Ant

  • Contributors: Agostino Russo, Steve Langasek, Ant

  • Implemented: 2008-04-20

  • Packages affected: None

Summary

Using Metalink for Ubuntu CD ISO downloads could increase availability, efficiency, and eliminate errors during download and repair corrupted files. Wubi uses Metalinks for ISO downloads.

Rationale

Metalink can list FTP/HTTP/P2P sources for files and provide error free downloads. When dealing with large downloads, normally if there is an error and you are using FTP or HTTP then the download needs to be restarted from the beginning (doubling the bandwidth, a 600 MB transfer is now takes 1.2 GB). Most users do not know how to repair a download with rsync or torrents, or may not be allowed to.

A simple .metalink file looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<metalink version="3.0" xmlns="http://www.metalinker.org/">
  
  <files>  
   <file name="ubuntu-6.10-desktop-i386.iso">
    <os>Linux-x86</os>
    <size>732293120</size>
    <verification>
     <hash type="md5">b950a4d7cf3151e5f213843e2ad77fe3</hash>
    </verification>
    <resources>     
      <url type="http"
           location="ro"
           preference="90">
       http://ftp.iasi.roedu.net/mirrors/ubuntulinux.org/releases/.pool/ubuntu-6.10-desktop-i386.iso
      </url>
      <url type="http"
           location="jp"
           preference="100">
       http://ftp.yz.yamagata-u.ac.jp/pub/linux/ubuntu/releases/.pool/ubuntu-6.10-desktop-i386.iso
      </url>
      <url type="http"
           location="us"
           preference="90">
       http://ftp.osuosl.org/pub/ubuntu/.pool/ubuntu-6.10-desktop-i386.iso
      </url>      
    </resources>
   </file>
  </files> 
</metalink>

Metalink has the following advantages:

  • List multiple FTP/HTTP/P2P sources for a download. A .metalink for an ISO will list all mirrors that it is available from. (This allows for faster downloading with segmented multi-source downloads, if you want).
  • Some ISPs and organizations don't allow P2P, so it's good to have the FTP/HTTP sources to fall back on.
  • If one link or server fails, download automatically continues using another.
  • Automatic full file checksum verification at end of transfer.
  • Automatic error correction for downloads in progress and repairing of corrupted downloads (using optional chunk checksums/repair info/segment hashes).
  • Include a PGP signature to verify authenticity.
  • Ability to give certain mirrors or P2P sources priority.
  • List location information (by country) for mirrors, so downloads can be filtered by location.
  • Simplifies download page layout. (The current download page has 14 screens of mirrors. This can be reduced to 3 .metalinks).
  • No server side changes or tracker necessary.
  • GPLed Clients for Mac, Unix, and Windows, along with non-Free clients. (aria2 included in feisty).

More information is available here:

Use cases

1. John is a non-technical Windows/Mac/Linux user. He wants to download an Ubuntu CD image from Ubuntu.com, all he needs to choose is his architecture and CD type (Desktop/Alternate/Server) and use the small Metalink client linked to from that page.

2. Harriet is using Firefox with a Metalink client extension, this downloads an Ubuntu CD image for her from the given metalink files.

3. Eric has an incredibly fast Internet connection. His computer uses multiple sources from the Ubuntu Metalink file to maximise his bandwidth usage.

4. Mary has an unreliable wireless connection. Downloading an Ubuntu CD image is a major time investment, and she does not want to keep restarting it on error. Metalink checks the image for her as it is downloaded and only redownloads what is needed, leaving Mary with an error-free Ubuntu CD image.

Scope

Reducing bandwidth costs in distributing Ubuntu online by using P2P and current mirror network more efficiently. Reduce support costs of dealing with corrupted and error downloads. Simplify download pages. Simplify download process for happier users.

Design

Implementation

As an example see Metalink @ Package Resources (which uses RoPkg::Metalink) and has .metalinks with chunk checksums/repair information for Ubuntu, Edubuntu, and Kubuntu ISOs. OpenOffice.org and others use the .metalinks generated there.

Code

N/A

Data preservation and migration

N/A

Unresolved issues

N/A

BoF agenda and discussion


CategorySpec

MetalinkIsoDownloads (last edited 2008-08-06 16:37:59 by localhost)