Preparing for System Failure ... And Recovering Quickly