Today the increasing progress is received with mobile devices. The general tendencies of IT technologies are reduction of size of devices and increase in time of autonomous work without power supply. However cost of these advantages is presence as serious resource restrictions of the device, especially it concerns capacity of storage devices in use. Reason of decreasing power consumption preclude from using well known high-capacity storage devices such as hard disks. From other hand, the high cost of storage space of alternative storage devices provokes manufacturers to use low-capacity storages for affordable devices. All above told together with continuous increase in amount of used data induces IT experts to address to problems of devices with limited resources.
The OLPC XO laptop is one of such devices. It intended to provide children around the world with new opportunities to explore, experiment and express themselves. According to the purposes of the project, power consumption should make not more than 4 watts. It nominally consumes less than two watts—less than one tenth of what a standard laptop consumes—so little that XO can be recharged by human power. This is a critical advance for the half-billion children who have no access to electricity (see http://laptop.org/). It is reached owing to refusal of moving parts including a hard disk. Flash memory of 1G capacity is used instead. So we faced with problem of lack of user space. It seems like thing out of scope of software development while we don't take into account communication capabilities of such devices. But in assumption that they can be united with network somehow it becomes interesting area to research in.
Imagine that the group of children with XO laptops comes together for school lesson. They all need to use the same set of data to learn the unit. Any of them have not enough user space to store all needed information locally, but if the data will shared among all of them everyone will be able to use it.
So the idea of the project is to investigate ways to provide ability to use much more data on device with lack of user space (by taken XO laptop as an example) by distributing data among the group of such devices in assumption that they supports networking and the sets of needed data are overlapped among this group.
The objective is to provide software allowing distributed storing and using data among the net for XO laptop, which has special Fedora Core 7 OS installed.
The most obvious solution is to use distributed file system. It will allow solving issues above: to distribute data, to provide the general access to them, to provide a necessary level of reliability and fault tolerance.
This file system has to:
- run on Fedora Core 7
- support IP networking
- support striping
- support serverless mode
There are a lot of distributed file systems with different characteristics but there is no one which addresses all of these issues. So the first step is to adopt more appropriate system to our needs. After some investigation the Lustre FS was took as the base. “Lustre is a highly scalable distributed file system that combines open standards, the Linux operating system, an open networking API, and innovative protocols. Together, these elements create the worlds largest “network-neutral” data storage and retrieval system”. (c) (see http://Lustre.org).
So the following tasks might be planed:
- investigate the Lustre abilities from project objectives point of view. Define features we need and not need;
- make Lustre port for XO specific Fedora OS;
- find the most appropriate configuration for XO;
- define project specific procedures such as entering and leaving group, synchronizing meta-data and election of meta-data server etc.
We don't expect to solve the problem of lack of user space for XO laptop completely. We expect to get one of possible solutions of issue so provide base for development and improvement in this area.
The one direction of feature work is to improve solution for XO laptop including the following:
- provide subsystem of efficient meta-data management in the case of decentralized network;
- implement software-mirroring to address reliability issues, etc.
From other hand the experience of this project could be applied to solve wide issue of distributed storing and using data on devices with limited resources.