Vertical elasticity, or scale-up of individual virtual machines is hard to perform in today's cloud environments due to limitations in the amount of hardware resources available in single servers. We propose a novel approach that allows aggregation of memory, compute and I/O resources from multiple physical machines in resource pools which in turn are used to seamlessly provision virtual machines with the right amount of resources. We present our architecture and highlight key functionality such as transparent and resilient memory aggregation and fast live migration. Our approach is validated by a demonstration using benchmarks and a real-world big-data application. Performance results indicate a very low overhead in using aggregated memory as well as a significant improvement in live migration performance.