We live in a world of Internet services such as email, social networks,
web searching, and more, which must store increasingly larger volumes of
data. These services must run on cheap infrastructure, hence they must use
distributed storage systems; and they have to provide reliability of data for
long periods as well as availability, hence they must support online reconfiguration
to remove failed nodes and add healthy ones. The knowledge
needed to implement online reconfiguration is subtle and simple techniques
often fail to work well. This tutorial provides an introductory overview of
this topic, including a description of the main technical challenges, as well
as the various approaches that are used to address these challenges.