DocumentCode :
580087
Title :
A microdriver architecture for error correcting codes inside the Linux kernel
Author :
Brinkmann, Andre ; Eschweiler, D.
Author_Institution :
Univ. of Paderborn, Paderborn, Germany
fYear :
2009
fDate :
14-20 Nov. 2009
Firstpage :
1
Lastpage :
10
Abstract :
Coding tasks, such as encryption of data or the generation of failure-tolerant codes, belong to the most computationaly expensive tasks inside the Linux kernel. Their integration into the kernel enables the user to transparently access these functionalities, encrypted hard disks can be used in the same way as unencrypted ones. Nevertheless, Linux as a monolithic kernel is not prepared to support these expensive tasks by accessing modern hardware accelerators, like graphics processing units (GPUs), as the corresponding accelerator libraries, like the CUDA-API for NVIDIA GPUs, only offer user-space APIs. Linux is often used in conjunction with parallel file systems in high performance cluster environments and the tremendous storage growth in these environments leads to the requirement of multi-error correcting codes. Parallel file systems, which often run on a storage cluster, are required to store the calculated results without huge waiting times. Whereas the frontend of such a storage cluster can be build with standard PCs, it is in contrast nearly impossible to build a capable RAID backend with end user hardware up to now. This work investigated the potential of graphic cards for such coding applications like RAID in the Linux kernel. For this purpose, a special microdriver concept (Barracuda) has been designed that can be integrated into Linux without changing kernel APIs. For the investigation of the performance of this concept, the Linux RAID 6-system and the applied Reed-Solomon code have been exemplary extended and studied. The resulting measurements outline opportunities and limitations of our microdriver concept. On the one hand, the concept achieves a speed-up of 72 for complex, 8-failure correcting codes, while no additional speed-up can be generated for simpler, 2-error correcting codes. An example application for Barracuda could therefore be replacement of expensive RAID systems in cluster storage environments.
Keywords :
Linux; RAID; Reed-Muller codes; application program interfaces; cryptography; device drivers; error correction codes; fault tolerant computing; file organisation; graphics processing units; operating system kernels; parallel architectures; software libraries; 2-error correcting code; 8-failure correcting code; Barracuda; CUDA-API; Linux RAID 6-system; Linux kernel; NVIDIA GPU; RAID backend; Reed-Solomon code; accelerator library; cluster environment; cluster storage environment; coding application; coding task; data encryption; failure-tolerant code generation; graphic card; graphics processing unit; hard disk encryption; hardware accelerator; kernel API; microdriver architecture; monolithic kernel; multierror correcting code; parallel file system; storage cluster; user-space API;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
High Performance Computing Networking, Storage and Analysis, Proceedings of the Conference on
Conference_Location :
Portland, OR
Type :
conf
DOI :
10.1145/1654059.1654095
Filename :
6375535
Link To Document :
بازگشت