Skip to content

faster OS image download #2391

Open
Open
@iwanbk

Description

@iwanbk

Is your feature request related to a problem? Please describe

The full VM OS image download is slow from Australia, it took around 20 mins

Feature Request: Faster or Local OS load for (big) images

threefoldtech/test_feedback#419

Describe the solution you'd like

There are two kind of solutions:

  1. from hub side
    It is already described on https://git.ourworld.tf/tfgrid/circle_engineering/issues/33: create replica of flist hub that are closer to the users

  2. speedup the download from zos side
    rfs download the block on read operation. Because the download triggered by io.Copy (

    zos/pkg/storage/disk.go

    Lines 148 to 152 in 0ea6170

    _, err = io.Copy(file, source)
    if err != nil {
    return errors.Wrap(err, "failed to write disk image")
    }
    ), the flow become something like this:
    - OS try to read some block
    - rfs call remote hub to download the block
    - repeat until finish
    The process happens sequentially, hence very slow

    Some alternatives:
    a. Do the download on open, it is what happens in 0-fs
    IMO It is quite a big change from architecture point of view, i currently don't know the impact of this change
    b. paralelize the io.Copy
    It is a simple solution, but if the slowness happen on other usecase, we have to apply the same technique, which might be error prone.

While making hub replica would help to speedup the issue, i think solution 2.b also worth to do because it would further speedup the process and also quite easy to do.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions