1. A method of dynamically mapping addresses between a virtual disk address and one or more physical block addresses for a storage system in response to a write operation requested by a host system, the method comprising: receiving a write request from a host, said write request including a virtual memory address and one or more blocks of data; determining whether memory space in the storage system has been allocated for the one or more blocks of data based on the virtual memory address; if it is determined that memory space has been allocated, completing the write operation to the allocated memory space; and if it is determined that no memory space has been allocated: automatically allocating memory space in the storage system for the one or more blocks of data; and completing the write operation to the allocated memory space.