Activating Storage Systems with Agents
John H. Hartman · 2002
Swarm is a scalable, modular storage system that allows high-level services to influence low-level storage functions such as data layout, metadata management, and crash recovery via agents. An agent is a program that is attached to data in the storage system and invoked when particular events occur during the data's lifetime. For example, when Swarm needs to write data to disk, agents attached to the data are invoked to determine a layout policy. Agents can be persistent, so that they remain attached to the data they manage until the data are deleted; this allows agents to continue to affect how the data are handled long after the application or storage service that created the data has terminated. Swarm and its agent mechanism are implemented as a Linux kernel module. In this paper, we present Swarm's agent architecture, describe the types of agents that Swarm supports and the infrastructure used to support them, and discuss their performance overhead and security implications. We describe how several storage services and applications use agents, and the benefits they derive from doing so.