A system for efficient backups using dynamically shared storage pools in
peer-to-peer networks comprises one or more processors and memory coupled
to the processors. The memory stores instructions executable by the
processors to implement a backup manager configured to dynamically
subdivide a storage pool into one or more portions of storage currently
designated for local backup data and one or more portions of storage
currently designated for peer-to-peer (P2P) backup data. In response to
local backup data received from a backup client, the backup manager may
store the local backup data in a portion of the storage pool that is
currently designated for local backup data. The backup manager may then
generate a P2P version of the local backup data, e.g., by encrypting
and/or redundancy encoding the local backup data, and transmit parts of
the P2P version to each of one or more peer devices in the P2P network.