1. A method for data storage, comprising: in a system that comprises one or more storage controllers, multiple servers and multiple storage devices that communicate over a network, sharing among the one or more storage controllers and the servers a data structure, which (i) represents thinly-provisioned user volumes used by the servers in storing data on the storage devices, and (ii) specifies for the user volumes a mapping between logical addresses and physical addresses of the storage devices; generating in a given server, by accessing the shared data structure using direct remote access to a memory of the one or more storage controllers and without executing code on the one or more storage controllers, storage commands that access one or more of the user volumes using the physical addresses, including translating one or more of the logical addresses into the physical addresses of the storage devices using the mapping specified in the shared data structure; and sending the storage commands, which specify the physical addresses, from the given server directly to one or more of the storage devices, without executing code on the one or more storage controllers.