Active Storage Networks ----------------------- David Nagle and Greg Ganger Carnegie Mellon University Delivery of persistent data is the dominant use of network bandwidth, in both LAN and WAN environments. Despite this fact, network implementations and storage services continue to ignore the particular needs, characteristics and capabilities of their partners in network storage delivery. For example, current network infrastructures do not support Network-attached Storage (NAS) in providing redundancy, secure management, and striping, often forcing NAS back to central server bottlenecks. Worse, network-attached storage components and future networking technologies (e.g., Active Networks) are evolving independently, perhaps in counterproductive ways and certainly not in collaborative ways. We believe, however, that these two core infrastructural technologies (i.e., NAS and Active Nets) can assist each other to enhance existing services and provide new ones. Fundamentally, both attempt to improve system-level performance, reliability, scalability, and extensibility by leveraging the almost-free and rapidly growing wealth of device-based processing cycles and memory. This work proposes to evolve both technologies in a complementary way, creating a consistent programming interface that simplifies development, enables migration of functionality, and allows each technology to help overcome the limitations in the other. For example, client-based RAID over NAS suffers significant performance and/or reliability problems in heavily-loaded or long-latency networks. Migrating core RAID functionality into the network (e.g., switches, routers) positions key functions in more central locations much closer to storage. This can increase reliability and performance without having to resort to a server-based RAID controller. NAS can also help Active Networks. For example, if the network does not trust functions provided by a client, network components that integrate NAS's security model can turn directly to NAS for trusted code, providing exactly the same degree high-level of security as NAS provides. As a another example, consider data types that place real-time constraints on data movement through the network and within storage. An Active Network that understands the scheduling requirements should be able to ensure timely data delivery. However, if the data source (i.e. storage) is not ready to transmit or receive the data, then schedules will fail. Likewise, NAS attempts to solve this problem by integrating real-time scheduling into storage, but will fail if the network is unable to deliver data. If Active Nets and Network-attached Storage are integrated, they could cooperate to provide end-to-end delivery guarantees. Further, the two could negotiate (and renegotiate) buffer sizes and transmission periods based on observed and expected traffic patterns, allowing each more flexibility for local optimizations.