There are provided a storage system and a method of operating thereof. The method comprises: a) representing to a plurality of hosts an available logical address space divided into one or more logical groups (e.g. logical volumes, virtual partitions, snapshots, combinations of a given logical volume and its respective snapshot(s), etc.), and b) mapping between one or more contiguous ranges of addresses related to the logical address space and one or more contiguous ranges of addresses related to the physical address space, wherein said mapping is provided with the help of one or more mapping trees, each tree assigned to a separate logical group in the logical address space. Mapping between contiguous ranges of addresses related to the logical address space and contiguous ranges of addresses related to the physical address space can be a) mapping between LBA and DBA addresses; b) mapping between VUA and VDA addresses; c) mapping between LBA and VDA addresses; and d) mapping between VUA and DBA addresses, wherein virtual unit addresses (VUA) characterize a first virtual layer operable to represent the logical address space, and virtual disk addresses (VDA) characterize a second virtual layer operable to represent the physical storage space.