A Method to Adapt Storage Protocol Stack Using Custom File Metadata to Commodity Linux Servers

  • Takayuki Fukatani Hitachi Limited
  • Atsushi Sutoh Hitachi Limited
  • Takahiro Nakano Hitachi Limited
Keywords: file server, POSIX, portability, Linux


Storage vendors have had difficulty adapting their proprietary protocol stacks to commodity servers. Despite large development effort, many proprietary protocol stacks can be used only on the specialized storage appliances because they depend on specialized hardware or software. Most of these protocol stacks use original filesystems to store custom file metadata that contain the protocol specific metadata to comply with the protocol specifications. In this study, we propose a new metadata management module named the protocol metadata module (PMM) that enables the custom file metadata to be used on commodity Linux servers. The PMM uses a portable operating system interface (POSIX)-based Linux interface to store the custom file metadata in Linux filesystems so that the protocol stacks can use the custom file metadata without the specialized hardware or software. The PMM enables the protocol stacks using the custom file metadata to offer the protocol functions on commodity Linux servers. We applied our developed PMM to the protocol stack of our storage appliance to verify its concept. Our evaluation results show that the PMM increases the protocol function coverage from 75.0% to 96.7% on Linux servers while suppressing the access performance degradation to at most 8% in the typical file server workloads.


Watson, P. Benn, “Multiprotocol data access: NFS CIFS and HTTP,” Technical Report TR3014 Network Appliance, 1999.

DELL EMC, “Dell EMC Isilon OneFS: A Technical Overview,” DELL EMC White paper, 2016.

The Internet Engineering Task Force; http://www.ietf.org/

Microsoft Developer Network; https://msdn.microsoft.com/

M. Carlson, A. Yoder, L Schoeb, D. Deel, C.Pratt, “Software-defined storage,” Storage Networking Industry Association (SNIA), White paper, 2015.

H. V. Madhyastha, J. C. McCullough, G. Porter, R. Kapoor, S. Savage, et. al. “scc: cluster storage provisioning informed by application characteristics and SLAs.” Proc. 10th USENIX Conference on File and Storage Technologies (FAST 2012), 2012.

The Open Group. The Open Group Base Specifications Issue 7, 2013 Edition. http://pubs.opengroup.org/onlinepubs/9699919799/.

D. P. Bovet, and M Cesati, “Understanding the Linux kernel,” 3rd Edition. O'Reilly Media, Inc., 2005.

G. Sivathanu, CP. Wright, and E. Zadok, “Ensuring data integrity in storage: Techniques and applications,” Proc 2005 ACM workshop on Storage security and survivability, ACM, 2005.

G. S. Barrall, T. Willis, S. Benham, M. Cooper, C. J. Aston, et al. “Apparatus and method for hardware implementation or acceleration of operating system functions,” U.S. Patent No 6,826,615, 2004.

M. Russinovich, D, A. Solomon, and A. Ionescu, “Windows Internals (6th Edition),” Microsoft Press, 2012.

xfs.org; http://xfs.org/.

Ext4 Wiki; https://ext4.wiki.kernel.org/index.php/Main_Page.

T. S. Pillai, V. Chidambaram, R. Alagappan, S. Al-Kiswany, A.C. Arpaci-Dusseau, et al., “All file systems are not created equal: on the complexity of crafting crash-consistent applications,” Proc. 11th Symposium on Operating Systems Design and Implementation (OSDI'14), 2014.

open_by_handle(3) - Linux man page; https://linux.die.net/man/3/open_by_handle.

W. Lee, K. Lee, and H Son. “Waldio: Eliminating the filesystem journaling in resolving the journaling of journal anomaly,” Proc. USENIX Annual Technical Conference 2015 (ATC 2015), pp 235-247, 2015.

V. Tarasov, E. Zadok, and S. Shepler. “Filebench: A Flexible Framework for File System Benchmarking,” article in ;login; magazine, Spring 2016, Vol. 41, No. 1

P. Deniel, T. Leibovici, and J. C. Lafoucrière, “GANESHA, a multi-usage with large cache NFSv4 server,” Linux Symposium, 2007.

samba.org; https://www.samba.org/.

Kumar K. V, A. Grünbacher, and G. Banks. "Implementing an advanced access control model on Linux," Linux Symposium. 2010.

A. Burtsev, K. Srinivasan, P. Radhakrishnan, L. N. Bairavasundaram, K. Voruganti, et al., “Fido: Fast Inter-Virtual-Machine Communication for Enterprise Appliances,” Proc. 2009 USENIX Annual Technical Conference (ATC 2009), 2009

T. Pascu, “ONTAP Select Product Architecture and Best Practices,” NetApp Technical Report 4517, NetApp. 2016.

J. Bornholt, A. Kaufmann, J. Li, A. Krishnamurthy, E. Torlak et al., “Specifying and Checking File System Crash-Consistency Models,” Proc. 21st International Conference on Architectural Support for Programming Languages and Operating Systems 2016 (ASPLOS '16), 2016.

T. S. Pillai, V. Chidambaram, R. Alagappan, S. Al-Kiswany, A. C. Arpaci-Dusseau et al., “All file systems are not created equal: on the complexity of crafting crash-consistent applications,” Proc. 11th USENIX conference on Operating Systems Design and Implementation (OSDI'14), 2014.

R. Verma, A. A. Mendez, S. Park, S. Mannarswamy, T. Kelly, et al., “Failure-atomic updates of application data in a linux file-system,” Proc. 13th USENIX Conference on File and Storage Technologies (FAST'15) 2015, pp 203-211, 2015.

Atomic Commit In SQLite; https://www.sqlite.org/atomiccommit.html.

M. Zheng, J. Tucek, D. Huang, F. Qin, M. Lillibridge et al., “Torturing databases for fun and profit,” Proc. 11th Symposium on Operating Systems Design and Implementation (OSDI'14), pages 449–464, 2014.

T. Q. Dam, S. Cheon and Y. Won. “On the IO characteristics of the SQLite Transactions.” MOBILESoft 2016, 2016.