Add storage state guards and transition callbacks.

To ensure that we access tiered storage in the proper way, we have
guards now.