Experiences with Implementation of Geographically and Organizationally Distributed
Meta FileSystem Using Erlang/
OTP
Increasing availability of computational platforms like Grids and
Clouds generates new challenges in the field of data accessibility. One of the objectives of
PL-Grid PLUS project [1] is to provide a meta file system operating in user space, which virtualizes organizationally and geographically distributed, heterogeneous storage systems - called VeilFS [2].
As a basic technology of VeilFS implementation Erlang/OTP [3] and noSQL database BigCouch [4] were selected. This choice of technology ensures the implementation of many of system requirements, but also affects the rise of many difficulties especially in terms of system security and performance of
I/O operations.
In this paper, the authors discuss problems encountered during the VeilFS implementation.
Description of VeilFS implementation:
A key element of VeilFS is management cluster which handles requests from clients. One cluster cooperates with thousands of clients and each client sends several requests concurrently. To meet this challenge, each machine in cluster is able to host all kinds of VeilFS modules. The module processes each request with a new process. The load of modules and nodes is monitored and instances of modules are dynamically added/deleted. It causes a problem with requests' routing. For this reason, the requests dispatcher works at each node. Additionally, the dispatcher works as a load balancer.
Erlang/OTP is a natural choice for realization of this architecture.
Unfortunately, this raises certain problems in the implementation of some parts of the system.
Security and performance issues:
One of the key requirements for VeilFS are system security and its performance in terms of I/O operations.
To meet the security requirements:
- open ports were reduced to 443 (
HTTPS) and 53 (
DNS) only,
- all network traffic, including file data, is encrypted using
SSL,
- authentication is achieved with
Grid Security Infrastructure (
GSI) and OpenID.
To meet the I/O performance requirements:
- the most critical parts of I/O infrastructure were implemented in
C language, as it offers low-level interfacing to storage systems,
- own mechanism of communication with DB was created.
Conclusions:
During the presentation the possibility of obtaining high VeilFS requirements using Erlang/OTP, and
the problems and solutions associated with obtaining security and performance of I/O operations, will be discussed.
Acknowledgments. This research is supported partly by the
European Regional Development Fund program no. POIG.02.03.00-00-096/10 as part of the PL-Grid
Plus and AGH-UST grant nr 11.11.230.015.
Thanks go to the rest of our team, especially to
Jacek Kitowski and
Renata Słota for their support and many discussions.
- published: 30 Apr 2014
- views: 88