1. A method of processing IO requests in a data storage metro-cluster, comprising: virtualizing a set of LUNs (logical unit numbers) to make the LUNs accessible by any of multiple storage processors within the data storage metro-cluster; operating, on each of the storage processors, a clustered storage pool, the clustered storage pool deriving storage units from the set of virtualized LUNs for provisioning to data objects and maintaining consistency with the clustered storage pool on each of the other storage processors such that changes to a clustered storage pool on one storage processor are reflected in the clustered storage pools of all storage processors; operating, on each of the storage processors, a clustered file system presenting a single namespace shared among the storage processors, the clustered file system provisioned from storage units of the clustered storage pool and storing a data object realized in a form of a file of the clustered file system; and in response to receiving IO requests, providing read and write access to the data object by the storage processors of the metro-cluster in an active-active arrangement, wherein the multiple storage processors include a first storage processor at a first location and a second storage processor at a second location, the second location being remote from the first location, wherein maintaining consistency with the clustered storage pool on each of the other storage processors includes mirroring data over distance from the first storage processor at the first location to the second storage processor at the second location, and wherein virtualizing the set of LUNs causes a locally-attached LUN of the first storage processor at the first location to appear as a local LUN of the second storage processor at the second location.