AoE and HyperSCSI on Linux PDA Prepared by They Yu Shu
ATA and SCSI • AT Attachment (ATA) is a standard interface for connecting storage devices such as hard disks and CD-ROM drives inside personal computers. • SCSI (Small Computer System Interface) is a set of standards for physically connecting and transferring data between computers and peripheral devices. • Sets of commands to communicate between computer and hard drives/peripheral devices.
NAS and SAN • NAS (Network Attached Storage) • File I/O • NFS, CIFS User Storage Client OS Server OS Client File System Server File System NFS Client NFS Server TCP/IP TCP/IP
NAS and SAN • SAN (Storage Area Network) • Block I/O • iSCSI, HyperSCSI, AoE, FC protocols • Less overhead then File I/O User Client OS Storage Client File System Server OS Block I/O driver Block I/O Target driver Network Network
Data Sharing on Mobile Devices • File I/O : NFS, FTP, CIFS, HTTP….(Traditional ways) • Block I/O: AoE, HyperSCSI, iSCSI • Block I/O have higher performance then File I/O • iSCSI can achieve 10 times faster then NFS • Using network storage as local drive • This project is about AoE and HyperSCSI on mobile devices.
AoE(ATA over Ethernet) and HyperSCSI • ATA and SCSI commands are encapsulated in Ethernet frame and transmit over Ethernet. • Unlike iSCSI, these 2 protocols does not lay above TCP/IP layer, thus it have better performance then iSCSI. • It uses MAC addresses. • It is not routable.
iSCSI Transport Network AoE HyperSCSI Data link Data link Data link Physical Physical Physical
Application Scenario SCSI Server running HyperSCSI Target Driver PDA using Virtual Mounted Storage SCSI / ATA Block IO Wireless Network Home/Office Network Access Point Device running HyperSCSI Initiator Driver and AoE Initiator Driver PC/Notebook running AoE Target Driver
Components • AoE/HyperSCSI kernel module (driver) • Download from Open Source project and cross compile to PDA version. • Simple AoE/HyperSCSI GUI program • Developed using Qt/Embedded + Opie Libraries. • C++
Main Functions • Load/Reload/Unload kernel modules • List Detected Drives • Mount Detected Drives • Open Mounted Disk using File Manager • Do appropriate configurations