1. A plurality of storage nodes, comprising: a first plurality of storage nodes configurable to communicate together as a first storage cluster, the first storage cluster configurable to execute a first software; a second plurality of storage nodes configurable to communicate together as a second storage cluster, the second storage cluster configurable to execute a second software independent of the first storage cluster executing the first software, wherein the first storage cluster is configurable to upgrade software or hardware independent of a software or hardware upgrade to the second storage cluster; each of the first and second pluralities of storage nodes having nonvolatile solid-state memory for user data storage; and each of the first and second pluralities of storage nodes configurable to distribute user data and metadata associated with the user data throughout a respective plurality of storage nodes such that a respective storage cluster maintains ability to read the user data, using erasure coding.