Storage & Backup

Backup Transfer Time: Calculate the Copy, Then Plan Recovery

An illustrative backup payload, its transfer-time estimate and the startup and validation work needed for recovery.
Estimate the copy with clear inputs, then check the complete recovery path.
A 240 GiB transfer at 1,000 Mbps and 80 percent efficiency takes 42 minutes 57 seconds; a separate illustrative recovery budget allows time for preparation, streaming restoration, startup and checks.
Calculate the data phase, then budget the surrounding work. The 90-minute timeline uses chosen allowances, not measured recovery times.Original Boxvirt diagram. Illustrative model; transfer time does not establish an application recovery result. View full size ↗

Transferring 240 GiB over a 1 Gbps connection at an assumed 80% payload efficiency takes about 42 minutes 57 seconds. That estimates one transfer phase. Getting the application back also requires access to the backup, usable destination storage, startup and a check that the recovered service works.

For a useful estimate, identify the bytes that will cross the connection, choose a rate that applies to that path, and give the transfer its own window inside the recovery plan. We will calculate both the duration and the speed needed for a target window. All sizes, rates and time budgets below are illustrative inputs, not measurements of Boxvirt’s infrastructure.

Choose the payload for the operation you are planning

The provisioned size of a VM disk, the amount of data stored in a backup repository and the bytes transmitted by one job can be different. Write down which operation you mean before using a size:

OperationSize to investigate
First backup to a destinationData the backup client needs to transmit for that initial operation
Later incremental backupData transmitted after that backup system’s reuse and reduction
Copy of an archive fileThe actual archive size, if that file is what crosses the connection
Recovery of a guest or applicationData fetched for the selected recovery, which can differ from the latest backup’s upload

For example, the Proxmox Backup technical overview explains how snapshots reference chunks and later uploads can reuse chunks already present on the server. A small incremental upload therefore does not tell you the payload needed to recover the whole selected snapshot.

Use logs from a comparable operation where available. Keep logical data size, transmitted payload and destination writes labelled separately. Compression, deduplication and sparse storage can change their relationship; this calculation does not predict those savings.

Keep data units and rate units visible

The NIST binary-prefix reference defines a GiB as 1,073,741,824 bytes and a GB as 1,000,000,000 bytes. A byte contains eight bits. Here, Mbps means one million bits per second, while MB/s means one million bytes per second.

240 GiB = 240 × 1,073,741,824 = 257,698,037,760 bytes
1 Gbps = 1,000 Mbps = 1,000,000,000 bits/second
100 MB/s = 800 Mbps

Changing 240 GiB to 240 GB changes the amount of data. It is not just a different display label. Likewise, entering 100 MB/s as 100 Mbps makes the assumed rate eight times smaller.

Calculate the transfer phase

For an assumed connection rate and a chosen payload-efficiency factor:

Transfer seconds = payload bytes × 8 ÷ (connection bits/second × efficiency)

Efficiency is a fraction in the formula. In our example, 80% becomes 0.8, so the effective payload rate is 800 Mbps, or 100 MB/s:

Seconds = 257,698,037,760 × 8 ÷ (1,000,000,000 × 0.8)
        = 2,576.9803776

Rounded up to a whole second, that is 42 minutes 57 seconds. The 80% factor is a scenario input. It is not a claim about typical Ethernet efficiency or the performance of your backup system.

These three scenarios show the effects of changing the inputs:

PayloadAssumed connectionEfficiencyEstimated transfer duration
240 GiB1,000 Mbps80%42 min 57 sec
240 GB1,000 Mbps80%40 min
240 GiB250 Mbps80%2 hr 51 min 48 sec

To reproduce the first row in the download and upload time calculator, choose Transfer time, enter 240 GiB, 1,000 Mbps and 80%. The displayed duration rounds up, while the calculation retains the fractional seconds. The same arithmetic works for backup uploads and restore downloads; their payloads and available rates must be chosen independently.

Use an observed payload rate without discounting it again

Suppose a comparable copy averages an illustrative 80 MiB/s over the transfer phase. That is already an observed payload rate. Enter 80 MiB/s and 100% efficiency when modelling the same phase, rather than applying another allowance for overhead that the observation already includes.

For 240 GiB:

Seconds = 240 × 1,024 MiB ÷ 80 MiB/second
        = 3,072 seconds = 51 minutes 12 seconds

Applying an extra 80% factor would instead produce 64 minutes. That is a different, deliberately reduced-rate scenario; it should not be presented as the unchanged measured-rate estimate.

Check that the observation is an average, not a brief peak, and that its bytes and elapsed time refer to the operation you are estimating. The upload side of a remote connection may also have a different limit from the download side. Shared traffic, remote throttling, source reads and destination writes can all constrain sustained progress.

Give transfer a window inside the recovery objective

A recovery-time objective applies to recovery of the service or system, not merely the end of a file copy. See the NIST recovery-time objective definition for the broader recovery context.

Consider this hypothetical 90-minute planning budget:

PhaseChosen allowanceWhat must be included
Prepare and obtain access10 minFind the backup, credentials and keys; prepare the target
Stream data and restore to storage45 minFetch, process and write data along the restore path
Start the guest and application15 minBoot and satisfy required service dependencies
Validate the recovered service20 minCheck expected data and a real application operation
Total90 minEnd-to-end budget, not a measured recovery result

The transfer calculation must fit the 45-minute data phase, rather than using all 90 minutes. Our 42 min 57 sec network estimate leaves only about 2 min 3 sec of that phase. Source processing or slow writes could use that margin or become the limiting part of the phase themselves.

Reads, transfer and writes often overlap in a streaming restore. Measure or model that combined path; do not automatically add three full-duration passes over the same data. If your workflow downloads an archive completely and then extracts it as a separate step, those sequential phases need separate time. Compressed input bytes and expanded destination bytes also require a consistent basis before comparing their rates.

The budget above is an example of how to organise the estimate. It does not establish that a real application can recover in 90 minutes.

Work backwards to the required connection speed

For 240 GiB within a 45-minute transfer window at the same assumed 80% factor:

Connection bits/second = payload bytes × 8 ÷ (target seconds × efficiency)
Required Mbps = 257,698,037,760 × 8 ÷ (2,700 × 0.8) ÷ 1,000,000
              ≈ 954.437 Mbps

In the transfer calculator, choose Required connection speed, enter 240 GiB, 45 minutes and 80%. The result is approximately 954.437 Mbps, before any additional contingency. This is the model’s required nominal rate; the effective payload rate is about 763.550 Mbps. It is not a guaranteed service requirement from a provider.

A faster advertised connection helps only if the rest of the recovery path can sustain the corresponding progress. When testing a local restoration, Internet bandwidth might not be part of the path at all.

Replace assumptions with a repeatable recovery record

For the next planned restore test, record the backup identity, requested scope, units and payload; source and target; phase timestamps; sustained rates; concurrent workload; and the application check that marks completion. Keep successful data transfer distinct from successful application recovery.

The Proxmox Backup client documentation recommends periodic recovery tests. It also describes benchmarks for compression, encryption and, when a repository is supplied, TLS upload speed. Such a benchmark can help investigate one part of the path, while a timed application recovery checks the complete sequence.

If a run misses the budget, identify which phase exceeded its allowance before changing the link estimate. A log showing slow source reads calls for a different investigation from a long wait for a key or an application that will not start. Use the Proxmox backup and restore checklist for the recovery workflow, and the ZFS capacity planning guide when checking space on the destination. Transfer time and destination capacity need to work together in the final plan.

KEEP EXPLORING

Related guides