Petal is a distributed storage system consisting of a collection of network-connected storage servers that cooperatively implement a single logical storage system. The system allows clients to create, access and delete virtual disks of almost arbitrary size on demand. Each virtual disk can be accessed as if it were a locally attached disk from a single or multiple cooperating machines using the standard UNIX character and block device interfaces. Data stored on virtual disks are automatically distributed and replicated across multiple storage servers and disks to improve performance and availability. The system automatically tolerates and recovers from all single component failures, communication failures, and can be regionally distributed to survive site failures. Instantaneous copies of virtual disks, called snapshots, can be created in under a second and simplifies the task of making consistent backups. Recent snapshots can be kept online to allow users to retrieve accidentally deleted files without help from a system administrator. Additional servers and disks can be added incrementally, online, without disturbing users of the storage system; data is automatically redistributed in the background to take advantage of the additional capacity and performance of the new components. This talk will describe the motivation, design, and performance of Petal.