• 沒有找到結果。

適用於低網路頻寬的個人化行動檔案系統

N/A
N/A
Protected

Academic year: 2021

Share "適用於低網路頻寬的個人化行動檔案系統"

Copied!
54
0
0

加載中.... (立即查看全文)

全文

(1)

國 立 交 通 大 學

電機與控制工程學系

碩士論文

適用於低網路頻寬的個人化行動檔案系統

Design and Implementation of a Personal Mobile File System

for Low Bandwidth Networks

研 究 生:許正道

Student: Cheng-Tao Hsu

指導教授:黃育綸 博士

Advisor: Dr. Yu-Lun Huang

中華民國九十八年五月

May, 2009

(2)

適用於低網路頻寬的個人化行動檔案系統

Design and Implementation of a Personal Mobile File System

for Low Bandwidth Networks

研 究 生:許正道 Student: Cheng-Tao Hsu

指導教授:黃育綸 博士 Advisor: Dr. Yu-Lun Huang

國 立 交 通 大 學

電機與控制工程學系

碩士論文

A Thesis

Submitted to Department of Electrical and Control Engineering

College of Electrical Engineering

National Chiao Tung University

in partial Fulfill of the Requirements

for the Degree of

Master

in

Department of Electrical and Control Engineering

May, 2009

Hsinchu, Taiwan, Republic of China

(3)

適用於低網路頻寬的個人化行動檔案系統

學生:許正道

指導教授:黃育綸

博士

國 立 交 通 大 學電機與控制工程學系(研究所)碩士班

隨著網路的迅速發展,行動網路上的檔案分享成為近幾年的熱門應用。 愈來愈多的研究 圍繞著日漸成熟的行動網路,同時也設計出各式各樣的檔案系統供使用者使用。 與傳統的有 線網路相比,行動網路有著頻寬較為有限、訊號品質較不穩定以及通訊成本的考量等特性, 多 數的研究在於利用離線操作的方式來解決網路連線品質的問題,而較少考慮通訊成本。 較低 的通訊成本,可以提升檔案系統在操作的反應以及效率。 本論文設計一個新的行動檔案系統 -- MoFS。 除了支援離線操作之外,MoSF 的設計中也同時考慮如何降低通訊頻寬需求量等問 題。 MoFS的使用者端透過使用者層的檔案系統程式庫、本地端快取、使用者認證與檔案傳輸 加密等方式,實現一個安全、容易部署且支援離線操作的行動檔案系統使用端。 MoFS 利用新 設計的伺服器通知(Server Notification)功能,由伺服器負責通知檔案狀態的變動情形,可 藉以降低使用者端因頻繁詢問檔案同步狀態所浪費的網路頻寬。 最後本研究亦透過數個實驗, 分析比較數種分散式網路檔案系統(包括 NFS、Coda 等)在不同硬體平台(x86、ARM等) 的效能表現。 實驗結果證明 MoFS 能有較快的檔案存取處理速度、較好的讀寫處理能力與較 低的網路頻寬消耗。 尤其在計算能力與系統資源有限的 ARM 嵌入式處理平台上,MoFS 能比 其他分散式網路檔案系統有更好的效能表現。

(4)

Design and Implementation of a Personal Mobile File System

for Low Bandwidth Networks

Student: Cheng-Tao Hsu

Advisor: Dr. Yu-Lun Huang

Department of Electrical and Control Engineering

National Chiao Tung University

Abstract

With the rapid growth of Internet technologies, file sharing has become one of the most

popular applications in recent years, especially on mobile networks. However, limited

band-width, unstable signals and high communication cost can erode the popularity of mobile file

sharing applications. In this research, we design a new mobile file system, MoFS, to provide

mobile file services with low-bandwidth consumption. MoFS is a structured user-space file

sys-tem that supports disconnected operations and implements a server-side notification to reduce

the bandwidth requirement resulting from the frequent status checks. MoFS does not modify the

server side but simply provides a dynamic-link library for applications. We realize our design

on both x86- and ARM-based platforms (Openmoko Freerunner). We also conduct a series of

experiments to demonstrate and compare the performance among various network file systems,

including NFS, Coda, etc. The experiment results show that MoFS has faster processing time,

(5)

Contents

摘要 i

Abstract ii

Table of Contents iii

List of Figures vi

List of Tables vii

Chapter 1 Introduction 1

1.1 Background . . . 1

1.2 Contribution . . . 2

1.3 Synopsis . . . 3

Chapter 2 Related Work 4 2.1 Traditional Network File System . . . 4

2.2 Network File System Supporting Mobility . . . 5

2.3 Filesystem in User-space (FUSE) . . . 8

2.4 SSHFS . . . 9

2.5 Summary . . . 10

Chapter 3 New Mobile File System: MoFS 13 3.1 Architecture . . . 13

3.2 MoFS Client . . . 14

3.2.1 File Operation Manager (FOM) . . . 14

(6)

3.2.3 Network Manager (NM) . . . 15

3.2.4 Upload Manager (UM) . . . 16

3.2.5 Version Manager (VM) . . . 17

3.3 MoFS Server . . . 17

3.4 Supported Operations . . . 19

3.4.1 Basic File Operations . . . 20

3.4.2 Advanced File Operations . . . 22

Chapter 4 Implementation 23 4.1 MoFS Client Application . . . 24

4.1.1 File Operation Manager (FOM) . . . 24

4.1.2 Data Manager (DM) . . . 25

4.1.3 Network Manager (NM) . . . 26

4.1.4 Upload Manager (UM) . . . 27

4.1.5 Version Manager (VM) . . . 27

4.2 MoFS Server Application . . . 27

4.3 Installation . . . 28

Chapter 5 Experiments and Analyses 29 5.1 Preliminaries . . . 29 5.1.1 Hardware . . . 29 5.1.2 Networks . . . 30 5.1.3 Tools . . . 30 5.2 Environment Setup . . . 31 5.3 Experiments . . . 32 5.3.1 Operation Latencies . . . 32 5.3.2 Read/Write Throughputs . . . 35 5.3.3 Communication Costs . . . 38

(7)

Chapter 6 Conclusion 42

(8)

List of Figures

2.1 Architecture of NFS. . . 5

2.2 Architecture of Coda. . . 6

2.3 Architecture of AshFS. . . 8

2.4 Work Flow of FUSE. . . 9

3.1 Architecture of MoFS. . . 13

3.2 Architecture of MoFS Client. . . 15

3.3 The Flow of Checking the Network States . . . 16

3.4 Architecture of MoFS Server. . . 18

3.5 Work Flow of Consistency Manager . . . 19

4.1 Architecture of MoFS . . . 23

4.2 Hash Tree Structure . . . 26

5.1 Experimental Environment . . . 31

5.2 File Operations Frequencies of Laptop . . . 33

5.3 File Operations Frequencies of MoFS/Smartphone . . . 35

5.4 Read/Write Throughputs of Laptop . . . 37

5.5 Read/Write Throughputs of MoFS/Smartphone . . . 38

(9)

List of Tables

2.1 Comparisons of related work . . . 12

3.1 ls . . . 20

3.2 open and close . . . 21

3.3 read and write . . . 21

5.1 File Operations Frequencies of MoFS/Laptop (1/Sec) . . . 33

5.2 File Operations Frequencies of MoFS/Smartphone (1/Sec) . . . 35

5.3 Read/Write Throughputs of MoFS/Laptop (KB/Sec) . . . 36

5.4 Read/Write Throughputs of MoFS/Smartphone (KB/Sec) . . . 37

(10)

Chapter 1

Introduction

With the rapid growth of Internet technologies, file sharing becomes one of the most popular

applications in recent years, especially on mobile networks. People like to share their musics,

video clips, documents, and even personal schedules on the Internet. However, the limited

bandwidth, unstable signals, and high communication costs erode the popularity of file sharing

applications on mobile networks.

1.1

Background

In 1987, A research group, under the direction of of M. Satyanarayanan, studied on mobile

network file systems and designed the Coda file system [1][2]. Coda is a distributed file

sys-tem for large scale local area networks. With a shared data repository, users can entirely rely

on local resources when that repository is partially or totally inaccessible. Coda also supports

disconnected operations, and has good performance through the design of client side persistent

caching. For every command, a Coda client program needs to check the file status with the Coda

file server and thus require more bandwidth consumption.

In 1998, NFS/M [3] extends NFS to support mobility and disconnected operations. Based

on the NFS protocol, NFS/M works seamlessly with the existing NFS server. Such a design

may make it easy to be deployed. Different from conventional NFS systems, NFS/M

(11)

operations. The modification of NFS client application requires kernel patches to rebuild a new

client program. The deployment of NFS/M is then restrained.

For easy development and deployment, Filesystem in User-space (FUSE) [4] provides

li-braries and APIs to construct a user-space file system [5]. With a user-space implementation,

FUSE allows simple installation (no patches and no kernel rebuilds) and is usable by

non-privileged users. Currently, many file systems, such as SSHFS [6][7], AshFS [8], httpfs [9],

etc, are implemented based on the FUSE libraries and APIs.

Based on FUSE, SSH Filesystem (SSHFS) realizes a file client application based on the SSH

File Transfer Protocol. Since most SSH servers already support FTP protocol, no modification is

required on the SSHFS servers. On the other hand, using an SSHFS client application is similar

to the usage of an SSH client program. It is as easy as logging into an SSH server.

Also taking FUSE as its basis, AshFS [8] shots for a user-space personal file system. AshFS

supports some advanced features including disconnected operations and automatic

synchroniza-tion. Since AshFS is designed for the personal use, it simplifies some complex mechanisms used

in conventional distributed file systems. Such a simplification may reduce the bandwidth

con-sumption and computing powers. However, AshFS suffers from the same problem as that in

Coda, more bandwidth is required for frequent status checks.

1.2

Contribution

In this research, we design a new mobile file system, named as MoFS. MoFS is a

struc-tured user-space file system. With a persistent cache reserved at the client program, MoFS also

supports disconnected operations. In a MoFS client program, FUSE is used to execute file

(12)

server-side notification to reduced the bandwidth requirements resulted from the frequent

sta-tus checks. For easy installation, MoFS does not modify the SSH server program but simply

provides a dynamic link library for the MoFS server daemon.

1.3

Synopsis

The thesis is organized as follows. We review existing file systems in Chapter 2. Then, we

describe the architecture of the proposed mobile file system (MoFS) in Chapter 3. Chapter 4

explains the implementation of MoFS, and we show some experiments and the performance of

(13)

Chapter 2

Related Work

Because of the population of Internet, people sharing files on network become more and

more familiar. For this situation, the network file system needs some features: mobility, security,

and conveniency. The mobility includes wireless support, bandwidth, disconnect operation, file

caching. The security includes user authentication, data encryption, and access protection. The

conveniency includes deployment effort, and friendly using. There are many researches focus

on network file system. We can divide them into two categories: traditional network file system

and network file system supporting mobility. In this paper, we define ``server side change'' as

``give some individual patch to the general file server''.

2.1

Traditional Network File System

The network file system distributed without mobility supports is defined as ``Traditional

Network File System''. The Network File System (NFS) is a network file system protocol

de-fined in RFC 1813 (NFSv3 [10]). It is the first widely deployed transparent network file system.

Using NFS not only improves the storage for the users but also provides well remote backup.

Therefore, many people shared files by using NFS. It use RPC to communicate between server

and client, but it does not support disconnect operation and does not have any cache. No

se-curity property is also its disadvantage. We illustrate the architecture of NFS with Figure 2.1.

(14)

module of NFS client. NFS client transmits the request to NFS server over the internet by RPC.

Next, NFS server requires the real data through VFS at server side, then returns them back to

client side.

File Request

VFS

NFS

Client Internet ServerNFS

VFS Ext3 User Space Kernel Space RPC Client Server Figure 2.1:Architecture of NFS.

2.2

Network File System Supporting Mobility

Mobility becomes one of the major issues in designing distributed network file systems. To

support mobility, we need to consider many criteria, such as limited bandwidth, battery-powered

mobile devices, secure communications, etc. This section discusses existing file systems

sup-porting mobility. The first two file systems, Coda [2][1] and MAFS [11], create brand new

architecture to support mobility, while the last two (NFS/M [3] and AshFS [8]) implement new

client side programs to support disconnect operations and meanwhile keep their file servers

un-changed.

• Coda

Coda is a distributed file system with server replication and disconnected operation. To

(15)

storing copies of files on multiple servers. For clients does not have network with server,

Coda provides disconnected operation to let the client can work continuously. Coda

con-tains three blocks, two at client: Coda kernel module and Venus, one at server: Vice, as we

show in Figure 2.2 Assume client and server are connected, here comes a file command,

``cat'' for example. The system call comes into kernel catching by VFS which notices the

action executes in Coda file system directory. VFS through Coda kernel module

com-municates with Venus, Coda cache manager, by ``/dev/cfs0''. Venus use RPC2 protocol

communicates with Vice, Coda file server, over the network. Then, the informations are

returned by the same path. In this flow, we know that Coda uses the RPC2 protocol

li-brary on client-server communication, but RPC2 is not very familiar cause deployment

difficultly. In addition, Coda has fully reintegration and replication methods, means that

it needs enough control messages. Using too many control messages may cause more

protocol overhead, then increasing the communication cost.

VFS Coda Kernel Module Ext3 ‧‧‧ Kernel Space User Space File Request Venus

Client

Vice Internet

RPC2

Server

Figure 2.2: Architecture of Coda.

(16)

MAFS (Adaptive Mobile File System) is a distributed file system designed to cope with

floating available bandwidth. It designs a new protocol, Adaptive RPC for client-server

communication. By using Adaptive RPC, MAFS propagates file modifications

asyn-chronously at all bandwidth levels. It uses RPC priorities to reduce interference between

read and write traffic at low bandwidth. To ensure the application adapts itself to the

avail-able bandwidth, lower bandwidth translates into longer delays for lower-priority RPCs.

The write RPC has the lowest priority and has longer delay at low bandwidth. This way

may cause file inconsistency. MAFS incorporate a new invalidation-based update

propa-gation algorithm, SIRP, to ensure the propapropa-gation.

• NFS/M

NFS/M extends NFS client without modifying the NFS server. It supports data

prefetch-ing, disconnect operation and data reintegration. The original NFS is not suitable for

mo-bile computing applications. The reason is that NFS assumes the communication network

is fast and reliable. But the real situation is network connection may not even available in

some areas. NFS/M uses Cache Manager and Proxy Server to maintain local disk cache.

For the file consistency issue, NFS/M used mathematical expression to show how conflict

occurred and how to resolve the conflict.

• AshFS

AshFS is a lightweight mobile file system. It is extended from SSHFS [7] but supports

disconnect operations. It used the SSH [12][13][14][15][16] server for the file services,

and developed a new client program to handle file cache, disconnect operation, file

stal-eness, conflict when reintegration, communication state, and transmission optimization.

The implementation of AshFS leverages a user-space filesystem library, called FUSE [4].

(17)

the command goes from shell to VFS to invoke the ``ls'' function of the specified file

system. Since FUSE is used as the underlying library, the invocation goes back to the user

space. Then, the ``ls'' function of libfuse is invoked. Next, the AshFS client application

either obtains file information from server by SSH client (if the internet is reachable), or

shows the file information existed in the local data cache (if network is disconnected.)

Since AshFS uses a stateless server without keeping client state information, it needs to

periodically check the staleness of files. The periodical checks result in high

communi-cation costs. File Request VFS FUSE kernel module Ext3 libfuse AshFS Client

Application SSH Client Internet SSH Server

User Space Kernel Space Client Server a 1 b 2 ‧‧‧

Figure 2.3: Architecture of AshFS.

2.3

Filesystem in User-space (FUSE)

A file system has to provide file operation functions. In general, file system operations

(18)

the network speed. We use FUSE to make a file system in the user space. The work flow of

FUSE shows as Figure 2.4. When a file request, like stat, comes from user, it enters the VFS in

the kernel. The VFS identifies that the request is for FUSE file system, and the VFS passes the

request to the FUSE kernel module. The FUSE kernel module transfers the request to user space

FUSE library, by allowing the library to access a special device /dev/fuse. Finally the FUSE

library communicates with the user space application to know how to answer the request.

File Request libfuse FUSE Application glibc glibc User Space Kernel Space VFS FUSE kernel module Ext3 ‧‧‧

Figure 2.4:Work Flow of FUSE.

2.4

SSHFS

SSHFS is a file system client based on the SSH File Transfer Protocol. Since most SSH

servers already support this protocol it is very easy to set up: i.e. on the server side there's

(19)

with ssh. On the local computer where the SSHFS is mounted, the implementation makes use

of the FUSE kernel module.

2.5

Summary

In this section, we compare existing file systems in terms of mobility, security, and

con-veniency. A file system supporting mobilily need to have a persistent cache, can work at the

disconnection, and suitable for wireless environment. User authentication and data encryption

are the security issue of a mobile file system. If a network file system uses the standard protocol,

it increases the convenience of the deployment.

• Persistent Cache

The file system uses cache to hoard the needing files into local disk. When the file system

wants to access a file, it can access the file in the cache directly. Directly accessing the

cache can reduce the slow efficiency caused by network. Here, ``persistent'' means the

caching files are not just temporary storing in local disk. Even if users reboot the client,

the caching files are still hoarding in the local disk.

• Disconnected Operation

In the mobile network, users may not connect with Internet all the time. However, users

still hope that they can work with the remote file at disconnection. Hence, disconnected

operation is a very important method for mobile network. In addition, after the network

resumes, file reintegration and file consistency between client and server are another

im-portant issue [17][18][19].

• Wireless Supporting

(20)

or WiFi. Since the environment and the network interface card, the quality of the wireless

network is floating at many time. For unstable wireless network, the mobile file system

have many special method to improve the efficiency of the usage of network.

• User Authentication

The privacy and security of the files in the file system become more and more important.

Only the file owner has right to access the file. The mechanism of identification allows

only users who have the right can access the file.

• Data Encryption

In mobile network, transfer data using the wireless network is a very common way.

How-ever, transferring files through the wireless network is easy to be eavesdropped and causes

confidential information to be disclosed. Using data encryption to transfer files can ensure

the security and privacy of files. It is necessary for mobile network.

• Standard Protocol

Using the standard protocol can increase the feasibility and portability of the system. It

is easier to integrate with existing system and easier to expand for future development.

If a network file system uses the standard protocol, it increases the convenience of the

deployment.

Table 2.1 shows the comparison of characteristics about NFS, SSHFS, Coda, MAFS, NFS/

M, and AshFS. First, it shows that Coda, MAFS, NFS/M, and AshFS are well supporting for

mobility. These four file system have different cache control mechanisms to support

discon-nected operation. In contrast, NFS and SSHFS only provide remote access in connection. Since

NFS protocol only provides IP mask to protect connection source, NFS and NFS/M can not give

(21)

tran-ferring data to cause information be stolen. Coda considers security issue, it has safe protection

for data transmission. SSHFS and AshFS use the well-know secure shell protocol so that the

data transmission is very reliable and securable. MAFS uses self-definition network protocol.

NFS, NFS/M, SSHFS, and AshFS use general standard protocol. Using standard protocol can

increase the feasibility of system. FUSE only provides an interface for developer to construct

an user-defined file system. Since FUSE is not a complete file system, we does not list FUSE

in Table 2.1.

Table 2.1: Comparisons of related work

NFS SSHFS Coda MAFS NFS/M AshFS

(nfsd) (sshd) (Vice) (MAFS Server) (nfsd) (sshd)

Persistent Cache No No Yes Yes Yes Yes

Disconnected Operation No No Yes Yes Yes Yes

Wireless Supporting No No Yes Yes Yes Yes

User Authentication No Yes Yes Yes No Yes

Data Encryption No Yes Yes No No Yes

(22)

Chapter 3

New Mobile File System: MoFS

3.1

Architecture

We show the architecture of mobile file system, MoFS, in Figure 3.1. For easy

deploy-ment, we use FUSE to construct a user-level file system so that we do not modify the kernel

source code. For decreasing the communication cost of checking file staleness, we use a server

side program, MoFS server application. For transmission security, we use SSH protocol for

communication between client and server.

VFS FUSE Kernel module Ext3 libfuse File Request SSH Server Internet MoFS Server Application Client Server User Space Kernel Space SSH Client MoFS Client Application

(23)

3.2

MoFS Client

Figure 3.2 shows that MoFS Client is composed of libfuse, MoFS Client Application, SSH

Client, in user space, and VFS, FUSE kernel module, Ext3, in kernel space. VFS, FUSE kernel

module, libfuse, and MoFS Client Application construct a user-level file system for easy

deploy-ment. VFS, Ext3, and MoFS Client Application construct a local cache to use in disconnected

operation. MoFS Client Application and SSH Client protect the transmission data securely with

SSH protocol. The behavior of VFS, FUSE kernel module, Ext3, libfuse, and SSH Client is

similar to their action in AshFS. MoFS Client Application is a client program to maintain file

caching, network status, and client requests. MoFS Client Application is composed of File

Op-eration Manager, Data Manager, Network Manager, Upload Manager, and Version Manager.

The relationship of these managers shows as Figure 3.2. The File Operation Manager (FOM)

implements file system operations, like open, read, write, close, and so on. The Data Manager

(DM) maintains local file cache and metadata information. The Network Manager (NM)

mon-itors network status and executes network commands. The Upload Manager (UM) optimizes

files in the upload queue. The Version Manager (VM) controls the version of the local file cache.

3.2.1

File Operation Manager (FOM)

In our design, the FOM implements file system operations, like open, read, write, close, and

so on. The FOM is a implementation of the API which provide by FUSE library. When creating

a new file or reading/writing a file, it will communicate with the Data Manager for getting file's

information. When the request relates to network, get file's metadata from server for example,

(24)

VFS FUSE Kernel module Ext3 libfuse File Operation Manager Data

Manager ManagerVersion

Upload Manager File Request Network Manager User Space Kernel Space SSH Client MoFS Client Application

Figure 3.2: Architecture of MoFS Client.

3.2.2

Data Manager (DM)

The DM maintains local file cache and metadata information. For using less network

pack-ages, we do not download all the files in server. When we list the server directory, we only

get the stat structure of files in the server directory. In this method, we can download the files

what we actually need. At the first time we open the file, the file start to download. Another

mechanism for decreasing communication packages is writeback-on-close. We only upload the

modified file to server when the file is closed.

3.2.3

Network Manager (NM)

The NM monitors network status and executes network commands. We divide the

connec-tion status, like AshFS, into three states: Strong, Weak, and Disconnect. We define the three

states by using ICMP packets as showing in Figure 3.3 When we execute any file operators,

like open, we need to check the network status to know if we can send any commands to the

(25)

in 100ms, we define the network status in Strong State. Otherwise, we send an ICMP packet

again. The second time for waiting the reply, we set the timeout as twice than the first ICMP

packet. If the reply does not timeout, we define it in Weak State. Provided that the timeout still

happens, does not reply in 200ms, we define the network status in Disconnect State.

Send the First ICMP Packet Reply Timeout? Weak State Strong State Disconnect State Send the Second

ICMP Packet

Reply Timeout?

start

Figure 3.3: The Flow of Checking the Network States

3.2.4

Upload Manager (UM)

The UM optimizes files in the upload queue. We want to decrease the usage of

communica-tion, so we design an upload optimizer, like AshFS. When using a file system, people may doing

some redundant works, like creating a file and deleting the file in short period of time. The main

action of the optimizer is to reduce the redundancy. The UM uploads the file to the server only

at the Strong State, so the optimizer has different behaviors at different network status. At the

Strong State, if there has no any other file operations, no download files or no fetch metadata,

the UM upload files immediately. But at Weak State and Disconnect State, the files put into

an upload queue waiting for the Strong State to come. At these two states, the UM monitors

(26)

in upload queue.

3.2.5

Version Manager (VM)

The VM controls the version of the local file cache. In AshFS, when a reintegration occurs,

system resolves the staleness between server and client. At this situation, file may be have

some conflicts. AshFS use the ``rename'' mechanism to solve conflict programs. The "rename"

mechanism changes old file to a new name with timestamp, and changes the latest file to the real

name. It is confused at viewing the directory by using "rename" mechanism. The real files are

overwhelmed by other renamed files. Version control is another choice to decrease this situation.

Using version control mechanism, we put the older version file into the repository. If we discover

that the file in repository is the real file we need, we can revert the file from the repository by

using version control mechanism. In version mechanism, we only save different part in old

version. By using ``diff'' we decrease the disk usage comparing with rename mechanism in

AshFS. However, version control mechanism may cause operation overhead at resolving content

conflict.

3.3

MoFS Server

MoFS Server is composed of SSH Server and MoFS Server Application (Figure 3.4). SSH

Server is a well-know shell server with security issue. MoFS Server Application is a server

program to record the file state for client. MoFS Server Application only has one component,

Consistency Manager (CM). The CM keeps file consistency between client and server.

To comply with existing file systems, AshFS does not change the server side. It means that

(27)

SSH Server Consistency Manager

MoFS Server Application

Figure 3.4:Architecture of MoFS Server.

original ssh server for operating. No server side change is a good method for easy deployment

and portability, but it wastes communication cost when validating the files in cache. Every

operation of AshFS needs to validate the files in cache. The cost of validation will be very large.

There are two different methods can decrease the effect of validation. One is to change the server

program, and the other one is to create a relay process. Changing the server program involves

patching and rewriting. Patching means we modified a current existing server code, and then

rebuild the server program. Rewriting means we do not use any existing server, but we write new

server code instead. Regardless of giving a patch to the original server or rewriting a new server

program, it will be inconvenient to setup the server side. Changing the server program conflicts

to our expectation. The other option is to create a relay process. Relay process is a server side

program. It transmits the messages between server and client, but not only bypass the messages.

On the progress, relay process records the file requests from client. Relay process will check

files status continuously. It will return the updating message to client, if the server side files are

updated. This method does not modify the original server program, but makes a little change to

server side. Users can still use the original server, and execute a small process in a easy way.

Relay process does not modify the server code, but also can decrease the communication cost.

In our design, relay process is called Consistency Manager (CM). The work flow of CM

(28)

client, CM determines the request. If the request is a download request, the CM checks whether

the client accesses the file or not. The CM adds the information or updates the file into record

pool. Finally, server transfers the file to client. If the request is a upload request, the CM receives

the file right away. And then checking the record pool makes sure that whether the file is on

tracking. If there is a client has used the file, the CM sends a message to announce the client

that the files has been changed.

waiting for client request

download file from server ?

upload file to server ?

send file to client

receive file from client

file info. recorded in record pool ? upadate file info.

in record pool

add file info. in record pool file info. recorded

in record pool ?

add file info. in record pool

send update info. to client No No No No Yes Yes Yes Yes

Figure 3.5: Work Flow of Consistency Manager

3.4

Supported Operations

MoFS supports lots of operations at client and server. The first kind of operation is the

basic file operation, like open, read, write, and so on. All the file systems have to provide the

basic file operations for I/O. The second kind of operation is the advanced file operation only

(29)

3.4.1

Basic File Operations

MoFS supports all the file operations provide by kernel, consisted of ls (list), open, read,

write, close, rename, rm (remove), chmod (change file mode), chown (change file owner), mkdir

(make directory), and rmdir (remove directory). We implements those operations at FOM in

MoFS Client Application. The file requests of ls, open, read/write, and close are the most

important operations at file I/O usage.

Table 3.1 shows the behavior of ``ls''. The ls command is to list the contents of the directory.

As an user executes ``ls'' in the shell at MoFS mount point, VFS transmits the request to FUSE

kernel module. Since FUSE is used as the underlying library, the invocation goes back to the

user space. Then, the ``ls'' function of libfuse is invoked. Next FOM asks DM whether the

metadata of this directory is in metadata cache. If metadata cache has the metadata of require

directory, returning the information to the user. Otherwise, FOM adds a request in upload queue

of UM to require the metadata of required directory. NM and SSH Client bypasses the request

to SSH Server. Finally, the metadata of required directory gets from the file server and then

caches in local memory for next usage.

Table 3.1: ls

Operation Description Actions

ls Lists the directory information

1. Find the metadata in cache.

2. Check if the metadata is valid.

3. Enqueue the ``get metadata request'' to

the upload queue of UM.

(30)

im-portant at file access. The ``open'' file operation is the begin of every file operations for a file or

device. In MoFS, only at the time users need the file (open the file), then client download the

file into cache by DM. The ``close'' file operation is the end of every file operations for a file or

device. In MoFS, only at the time users close the file and also write some data into the file, the

client upload the file from cache by DM.

Table 3.2: open and close

Operation Description Actions

open Open a file or device

1. Find the metadata in cache.

2. Check flags for download and write.

close Close a file descriptor 3. Enqueue the requests into the upload

queue of UM.

Table 3.3 shows the behavior of ``read'' and ``write''. The ``read'' and ``write'' operations

in MoFS work similar to the general operation in Ext3. MoFS only operates the files in cache

until close the files.

Table 3.3: read and write

Operation Description Actions

read Read data by a descriptor

1. Find the metadata in cache.

2. Access the file in the cache.

write Write data to a descriptor

(31)

3.4.2

Advanced File Operations

There are some operations created by MoFS. MoFS provides some advanced file operations

for improving the usability. The ``mofs remove cache'' command deletes the cache file in the

local cache manually. The ``mofs dhash'' command checks the hash table usage to determine

(32)

Chapter 4

Implementation

The Chapter 3 explains the design of MoFS, in this chapter we explain how do we relize the

MoFS. As we show in Figure 4.1, there are many necessary components for MoFS, including

FUSE and SSH client/server. FUSE provides a simple connection between kernel space and

user space for a file system. After Linux kernel 2.6, FUSE has been included in the source code

of Linux kernel. SSH is very famous on remote control. We have to setup SSH Server at the file

server, and SSH Client at all user client side. In next two sections, we show how to implement

MoFS Client Application and MoFS Server Application.

VFS FUSE Kernel module Ext3 libfuse File Operation Manager Data

Manager ManagerVersion

Upload Manager File Request Network Manager SSH Server Internet Consistency Manager Client Server User Space Kernel Space SSH Client MoFS Client Application MoFS Server Application

(33)

4.1

MoFS Client Application

MoFS Client Application has five components that we mention before. The File Operation

Manager (FOM) implements file system operations, like open, read, write, close, and so on. The

Data Manager (DM) maintains local file cache and metadata information. The Network Manager

(NM) monitors network status and executes network commands. The Upload Manager (UM)

optimizes files in the upload queue. The Version Manager (VM) controls the version of the local

file cache.

4.1.1

File Operation Manager (FOM)

The FOM is a implementation of the API which provide by FUSE library. It implements

the file system operation function and maps the functions to FUSE. In Table 4.1, we shows the

relationship between shell commands / function calls and file system operations. The command

``ls'' (list directory contents) for example, after enter the ``ls'' command in shell, it calls the

``opendir'' file system operation to check whether the directory is existing or not. Next, it read

all contents name of the directory into a buffer for showing results. At the end of reading the

directory, it calls ``releasedir'' to close the session of reading. Finally, showing the details of

contents in buffer, by using ``getattr'' file system operation with parameter of conetent name in

buffer. By default, FUSE runs multi-threaded, so that we need to concern for mutual execution.

Although solving the mutual execution may waste time, multi-threaded can increase the use of

(34)

Table 4.1:

Shell command/Function Call Used File System Operations

ls opendir, readdir, releasedir, getattr

open access, open / create / open + mknod, utimens

close flush, release, utimens

write truncate, write, utimens

read read, utimens

rm unlink

4.1.2

Data Manager (DM)

The DM maintains local file cache and metadata information. The usage of data structure

influences the operation performance of the local file cache and metadata information. Using

array is a basic way to maintain the cache, but array does not have good extensibility. Next, we

think may be linked list is a good data structure for cache design. We analysis the behaviors of

maintaining local file cache and metadata information. There are three main behaviors: insert,

delete, and search. We also discover that before insert or delete any entry in the cache, we need

to know wether the same named entry is in the cache or not. Hence, the ``search'' behavior is the

most frequent one of the three behavior. Clearly, linked list is not suitable for our design. We

have to use a O(1) data structure for implement. Using hash data structure is a choice. As not

all the mobile device have large disk or memory. System space usage is another issue so that

the hash size can not be too large. Generally, hash has two method to implement, linear probe

and linear linked list. Linear probe has no extensibility and linked list has low efficient at large

(35)

of metadatas in one bucket, useing tree structure can let the time in O(logn).

The Figure 4.2 shows the combination with hash and tree. First, we use absolute path (whole

directory and file name) as the hash key. At the insertion, the DM records how many nodes are

used in every buckets. If the usage of buckets is not balance, it can change the hash key manually

to improve the performance.

h ‧ ‧ ‧ 0 Index Bucket

Figure 4.2: Hash Tree Structure

4.1.3

Network Manager (NM)

The NM is to check the network status between client and server. In our design, we use

ICMP packets to identify the status into Strong, Weak, and Disconnect. The main purpose of

the use of ICMP is to confirm the existence of network connect and the network quality. The

ping utility is a famous tool to send ICMP ECHO REQUEST to network hosts and like our purpose. We refer to the source code of ping utility to implement the status checking. The NM

also provides a ssh wrap function and a sftp wrap function to execute the commands on file

(36)

4.1.4

Upload Manager (UM)

The UM queues the requests of file operations and transfers it to file server by NM. We

construct four queues, each queue has their own priority. These four queues queuing different

kind of requests, with the priorities for ``get metadata'', ``download object'', ``upload object'',

and ``remove object''. As the ``get metadata'' queue has any requests, the UM executes them

first. Before a request puts into ``remote object'' queue, the UM checks whether the same name

file is in the ``upload queue''. If the request matches in ``upload queue'', the UM deletes the

request which is in the ``upload queue'' and remove the file on server (if exist). By using the

optimization, the UM can decrease the communication waste.

4.1.5

Version Manager (VM)

The VM controls the version of the local cache. As the server notify comes back from the

CM, VM downloads the different part of file between client and server. And VM revises the file

to the latest version. The VM also maintains a small command daemon for the MoFS advanced

commands.

4.2

MoFS Server Application

Only one component is implemented in MoFS Server, the Consistency Manager (CM).

The CM is a relay process to record the access state of the files at server. There are two

ways to realize the record method. The first method is to create a small client-server program

which intercepts the SSH session from MoFS client. After essential operations, the small

client-server program resend the session to the real SSH client-server then do the real procedure. But this

(37)

convenience of deployment. The second method is to use ``LD PRELOAD'' [20],the environment

variable under UNIX-like operating system. LD PRELOAD instructs the loader to load additional

libraries into a program, beyond what is specified when it is compiled. It allows users to add

or replace functionality when they run a program and can be used for beneficial purposes. We

implement a shared library at server side to let the sftp-server loading it. The shared library

catches two functions, ``open()'' and ``socket()''. The ``open'' function is called when client

download or upload a file. At the same time, the shared library logs the informations. The

``socket'' function is called when the sftp connection be created. When a connection be created,

it check the server file repository periodically for file staleness.

4.3

Installation

The requirements of a MoFS client are libfuse, FUSE kernel module, SSH client program,

and MoFS Client Application. Generally, FUSE kernel module and SSH client program are the

default packages of Linux distributions so that for installation users only need to setup libfuse

and MoFS Client. The requirements of MoFS server are SSH server program (SSH daemon)

and MoFS Server Application (shared library). SSH server program is an important remote

shell for Linux servers so that the installation of server is only to modify the configuration about

sftp-server (let the sftp-server preloads the shared library).

The requirements of Coda are RPC2 library, Light Weight Processes (lwp) library,

Recover-able Virtual Memory (rvm) library, Coda kernel module, and Coda (Vice and Venus). Although

in many package maintenance systems of different Linux distributions have the packages of

RPC2 library, lwp library, and rvm library, the installation dependency should be carefully

(38)

Chapter 5

Experiments and Analyses

5.1

Preliminaries

5.1.1

Hardware

We construct a testing environment to evaluate MoFS performance. The hardware

specifi-cations are listed as follow:

• File Server

The file server is a PC-based computing unit. Intel Pentium 4 3.0GHz CPU with 512 MB

of RAM using an internal 3.5 inch SATA 7200rpm 80GB disk with Gigabit Ethernet NIC.

The operating system is Debian 5.0 Linux kernel 2.6.26.

• File Client

A file client program can be executed on a variety of devices, including laptop and

smart-phone.

– Laptop (Client A)

Intel Core2 Duo CPU T7300 2.00GHz with 512MB of RAM using an internal 2.5

inch SATA 7200rpm notebook hard drive with 802.11abg NIC. The operating system

is Debian 5.0 Linux kernel 2.6.26.

(39)

Samsung S3C2442B ARM920T 400MHz with 128MB of RAM using 256MB NAND

flash and 512MB microSD with 802.11b/g SiP-M. The operating system is Fyp

(De-bian 5.0) Linux kernel 2.6.28 (Openmoko Neo FreeRunner).

5.1.2

Networks

We use three kinds of networks to construct the experimental environment. Clients can

connect with the file server by Ethernet, wireless LAN, or the mobile network.

• Ethernet: In our experimental environment, the file server and file client connect to

Inter-net by a 10/100 Mbps switch.

• Wireless LAN: We use an Atheros 5212 802.11b/g WLAN interface on a PC to be the AP. • Mobile: We can use CHT GSM/3.5G mobile network.

5.1.3

Tools

We use some tools to evaluate the capability of file operation, read/write throughput, and

communication cost.

• Bonnie++ [21][22] is an industry-standard file system benchmark used to benchmark

ideal performance in a uniform and repeatable way. We utilize Bonnie++ to evaluate file

operations frequency and file read/write throughput.

• The iftop [23][24] listens to network traffic on a named interface and displays current

bandwidth usage by pairs of hosts. We use iftop to measure the efficiency in the use of

(40)

• The netem provides Network Emulation functionality for testing protocols by emulating

the properties of wide area networks. We use netem to emulate GPRS network between

File Server and Laptop.

5.2

Environment Setup

We construct a testing environment to evaluate MoFS performance as shown in Figure 5.1.

In this experimental environment, we construct several networks, including LANs, 802.11

wire-less networks, and 3rdgeneration mobile networks, all connected to the Internet. We setup

sev-eral MoFS clients in these networks. The MoFS clients, with a comprehensive computing power,

can access the MoFS server via the Internet. The first kind of clients is PC-based computing

unit.

Local Area Network

Local Area Network

Wireless Network

(Wi-Fi)

Mobile Network

(GSM/3.5G)

File

Server

AP

PC

Smartphone

Laptop

(Client A)

Internet

Data

Storage

BSS

Smartphone

(Client B)

Laptop

(41)

5.3

Experiments

The main concern of all file systems is general file operation. The mobility is just a feature

of a mobile file system. Original file operation can not be reduced by adding mobility, so that

we need to know the file operation performance of MoFS. The network communication cost

is also an important issue that we want to realize. In our experiments, we intend to analyze

the performance about operation latencies, read/write throughputs, and communication costs.

We compare different file system to show their difference. However, FUSE just provides file

operations libraries and APIs, not a fully file system. The ``FUSE'' represents a simple file

system just mirrors the root directory to mount point by using FUSE libraries and APIs.

5.3.1

Operation Latencies

In the first part, we use three operations (create, stat, and remove) to measured the operation

latencies on laptop and smartphone.

• Exp1.1 : Latencies of MoFS/Laptop

To measure the latency of operations for laptop by wireless network, we connect the laptop

to the AP. The connection bandwidth is between 800KBps to 1MBps. In Exp1.1, we use

Bonnie++ to create 2048 files in 20 times, and the files sizes are between 0.5MBytes to 1MBytes.

In Table 5.1 and Figure 5.2, Ext3 and FUSE are local file systems, NFS is a traditional

network file system, and Coda, AshFS, and MoFS are file systems supporting mobility.

We can find that all the file systems do not faster than Ext3 at create and remove, because

they are still the essence of ext3. AshFS and MoFS are based on FUSE libraries and APIs,

(42)

the network directly, so the bottleneck of NFS is the network bandwidth so that it has lower

frequency. Since MoFS cache the metadata in the memory, MoFS has the fastest frequency

at the stat operation. FUSE still fetches the metadata from disk so that its frequency is

lower than Ext3 and MoFS. Coda concerns at many properties and has complex design

may cause its performance not very well. For remove operation, AshFS and MoFS put

the work unit into a waiting queue, so that they does not execute the remove operations

immediately. Since the remove operation behavior of AshFS and MoFS, they look like

fast at remove operation, but actually their remove speed are more slower.

Table 5.1: File Operations Frequencies of MoFS/Laptop (1/Sec)

Ext3 FUSE NFS Coda AshFS MoFS

Create 37.4 35.15 0 31 31.75 34.19

Stat 35.1 30.13 1 33.71 33.6 41.85

Remove 131.4 102.56 53 111.57 154.7 156.7

Create Stat Remove

0 20 40 60 80 100 120 140 160 180 37 35 131 35 30 103 31 34 112 32 34 155 34 42 157 1 53

Ext3 FUSE NFS Coda AshFS MoFS

File Operations F re qu en cy ( 1/ S ec )

Figure 5.2: File Operations Frequencies of Laptop

(43)

To measure the latency of operations for smartphone, we connect the smartphone to the

AP. Since the wireless module (chip and antenna) of the smartphone has poor quality,

the connect bandwidth is between 300KBps to 500KBps. The last experiment works on

smartphone, with little disk size, so that we create the files with small size. The setting

of Bonnie++ for smartphone is to create 2048 files in 20 times, and the files sizes are

between 200KBytes to 500KBytes.

In Table 5.2 and Figure 5.3, Ext3 and FUSE are local file systems, NFS is a traditional

network file system, and AshFS, and MoFS are file systems supporting mobility. Coda

needs the supporting both in kernel space and user space. The kernel source code of Coda

is pulled into kernel.org repository. Since the Coda user space program may need much

disk size, Coda can not work under smartphone. Although the storage in smartphone

is microSD card different to a hard disk, the results of smartphone are similar with the

results of PC. Ext3, the local file system, is the highest performance file system for file

operations. NFS propagates all operations by the network directly, so the bottleneck of

NFS is the network bandwidth so that it has lower frequency. Since the lower computing

power and the more threads in process, MoFS is not faster than FUSE and AshFS for stat

operations and remove operations. MoFS does not has the greatest performance for file

operations, but supporting mobility for file system.

Since Ext3 and Coda use kernel cache in memory, they can use memory more efficient by

linux kernel. For the limitted resource device, using MoFS can get good performance of local

file operation and mobility.

In the duration of experiment, we discover that the amounts of cache file in AshFS have the

limitation at about 5000 files. The large amounts of operations also crash the AshFS network

(44)

Table 5.2: File Operations Frequencies of MoFS/Smartphone (1/Sec)

Ext3 FUSE NFS AshFS MoFS

Create 14.45 9 5.8 7 6.5 Stat 27.35 20.8 9 18.5 15.7 Remove 115.65 71.8 29 54.25 52.1 Read Write 0 10000 20000 30000 40000 50000 60000 54853 39952 54723 39086 11205 10610 51655 35835 42774 36729 46715 38891

Ext3 FUSE NFS Coda AshFS MoFS

Operations T hr ou gh pu t( K B /S ec ) Read Write 0 200 400 600 800 1000 1200 1400 1056 1324 783 1177 564 772 476 573 632 684

Ext3 FUSE NFS AshFS MoFS

Operations T hr ou gh pu t( K B /S ec )

Create Stat Remove

0 20 40 60 80 100 120 140 14 27 116 9 21 72 6 9 29 7 19 54 7 16 52

Ext3 FUSE NFS AshFS MoFS

File Operations F re qu en cy ( 1/ S ec )

Figure 5.3: File Operations Frequencies of MoFS/Smartphone

only suit for a small scale environment.

5.3.2

Read/Write Throughputs

In the second part, we evaluate the read/write throughput of each file system on laptop and

smartphone.

• Exp2.1 : Read/Write throughputs of MoFS/Laptop

To evaluate the read/write throughput for laptop by wireless network, we connect the

laptop to the AP. The connection bandwidth is between 800KBps to 1MBps. In Exp2.1,

(45)

After write the file, Bonnie++ reads the file to evaluate the read speed of these file systems.

In Table 5.3 and Figure 5.4, Ext3 and FUSE are local file systems, NFS is a traditional file

system, and Coda, AshFS, and MoFS are file systems supporting mobility. We can find

that all the file systems do not faster than Ext3 at read and write, because they are still the

essence of ext3. AshFS and MoFS are based on FUSE libraries and APIs, so that their

read/write throughput may not higher than FUSE. NFS propagates all operations by the

network directly, so the bottleneck of NFS is the network bandwidth so that it has lower

throughput. Since Coda writes the file into local cache first then propagates the file for a

period of time delay, its throughput is similar to Ext3.

Table 5.3: Read/Write Throughputs of MoFS/Laptop (KB/Sec)

Ext3 FUSE NFS Coda AshFS MoFS

Read 54852.6 54723 11205.1 51655.1 42773.5 54715.2

Write 39951.6 39086 10610.3 35835.2 36729 38891.2

• Exp2.2 :Read/Write throughputs of MoFS/Smartphone

Since the wireless module (chip and antenna) of the smartphone has poor quality, the

con-nect bandwidth is between 300KBps to 500KBps. The last experiment works on

smart-phone, with little disk size, so that we write the files with small size. The setting of Bonnie

++ for smartphone is to write a 40MB file to evaluate the write speed of these file sys-tems. After write the file, Bonnie++ reads the file to evaluate the read speed of these file

systems.

In Table 5.4 and Figure 5.5, Ext3 and FUSE are local file systems, NFS is a traditional

(46)

Read Write 0 10000 20000 30000 40000 50000 60000 54853 39952 54723 39086 11205 10610 51655 35835 42774 36729 46715 38891

Ext3 FUSE NFS Coda AshFS MoFS

Operations T hr ou gh pu t( K B /S ec )

Figure 5.4: Read/Write Throughputs of Laptop

Coda user space program may need much disk size, Coda can not work under smartphone.

Although the storage in smartphone is microSD card different to a hard disk, the results of

smartphone are similar with the results of PC. In Exp2.2, NFS has better throughput than

NFS in Exp2.1, because we use small size of file in Bonnie++. Since the lower computing

power and the more threads in process, MoFS is not faster than FUSE and AshFS for stat

operations and remove operations. MoFS does not has the greatest read/write through,

but supporting mobility for file system.

Table 5.4: Read/Write Throughputs of MoFS/Smartphone (KB/Sec)

Ext3 FUSE NFS AshFS MoFS

Read 1056.4 783.4 563.8 475.67 631.8

(47)

Read Write 0 200 400 600 800 1000 1200 1400 1056 1324 783 1177 564 772 675 693 632 684

Ext3 FUSE NFS AshFS MoFS

Operations T hr ou gh pu t( K B /S ec )

Figure 5.5: Read/Write Throughputs of MoFS/Smartphone

Since the large memory can cache more data for kernel, Ext3 and Coda have more cache

hit. MoFS can works well at limited hardware platform, and supports mobility.

5.3.3

Communication Costs

In the third part, we calculate the communication costs (network workload) between one

server and two clients.

• Exp3 : communication costs (network workload)

Since the wireless module (chip and antenna) of the smartphone has poor quality, the

con-nect bandwidth is between 300KBps to 500KBps. The smartphone use an AP to concon-nect

to the Internet. We use iftop at file server to calculate the network communication of

specific connection. At client, we execute a sequence of file operations including create,

(48)

S = {(hi, fi, oi, ti)+}

– hi:host

– fi:file

– oi:file operation

– ti:time

Here is two clients (hosts) and one server. First, host 1 reads file 1, so that host 1

down-loads file 1. After reading file 1, host 1 modifies some data then closes file 1, so that

host 1 uploads file 1 to the file server. Since host 1 accesses file 1, file server records the

information of host 1. Second, host 2 reads the same file, file 1, so that host 2 also

down-loads file 1. After reading file 1, host 2 modifies some data then close file 1. Then, host 2

uploads new file 1 to the file server. The file server gets the data of file 1 and records the

information of host 2. The file server finds that host 1 also accesses file 1, so file server

sends a notification automatically to host 1 to announce host 1 updating file 1.

In Table 5.5, NFS is a traditional network file system, AshFS, Coda, and MoFS are file

systems supporting mobility. Since this experiment is the calculation of communication

costs, we just compare with the network file systems. The connection bandwidth is

be-tween 800KBps to 1MBps on laptop. All the file system use the same testing sequence

to measure the communication cost (like ). NFS executes all the file operations during

the network so that it has the most network usage. AshFS caches file in local cache but it

need to check the file status frequently, this may exhaust the communication costs. Using

``rsync'' is the other factor cause AshFS exhaust the communication. MoFS does not

(49)

Client 1 require file1 Server open file1 download file1 write file1 write file1 close file1 upload file1

sequence

Client 2 sequenc server notification

Figure 5.6:Experiment flow for Communication Cost

differential upload, the communication cost of AshFS is similar to the communication cost

of MoFS. If we use differential upload instead of whole file upload, the communication

(50)

Table 5.5: Communication Costs of MoFS/Laptop (KB)

NFS Coda AshFS MoFS

(51)

Chapter 6

Conclusion

In this research, we design and implement a mobile file system, named MoFS. The new

proposed file system, MoFS supports disconnected operations with a persistent cache and

de-creases the communication costs at file status notification from the MoFS server. Taking FUSE

as it underlying file system library, MoFS requires no kernel patch in its deployment. Also, by

integrating with the SSH protocol, MoFS can provide user authentication and file encryption to

protect communication sessions between file servers and clients.

The MoFS client program has been implemented on both x86- and ARM-based platforms

(Openmoko Freerunner GTA02). We made several experiments to compare MoFS and other

file systems (Coda, AshFS, NFS, Ext3) in terms of processing latencies, read/write throughputs,

communication costs. From the experiment results, we conclude that MoFS/x86 and MoFS/

ARM have the best performance in retrieving file stats and removing files. For read/write

throughputs, MoFS/x86 and MoFS/ARM have the best performance. Also, comparatively, we

observe that less network traffic (communication costs) is required when running the MoFS

client on Laptop. In short, MoFS has faster processing time, better read/write throughputs and

(52)

References

[1] M. Satyanarayanan, J. Kistler, P. Kumar, M. Okasaki, E. Siegel, and D. Steere, ''Coda: A

Highly Available File System for a Distributed Workstation Environment,'' IEEE

Transac-tions on Computers, vol. 39, no. 4, pp. 447--459, 1990.

[2] P. J. Braam, ''The Coda Distributed File System,'' Linux Journal, p. 6, 1998.

[3] J. Lui, O. So, and T. Tam, ''NFS/M: An Open Platform Mobile File System,'' in Proc.

18th International Conference on Distributed Computing Systems, 26--29 May 1998, pp.

488--495.

[4] ''FUSE: Filesystem in Userspace.'' [Online]. Available: http://fuse.sourceforge.net/

[5] I. Voras and M. Zagar, ''Network Distributed File System in User Space,'' in Proc. 28th

International Conference on Information Technology Interfaces, 2006, pp. 669--674.

[6] M. E. Hoskins, ''SSHFS: super easy file access over SSH,'' Linux Journal, vol. 2006, no.

146, p. 4, 2006.

[7] M. Szeredi, ''SSH Filesystem,'' 2005. [Online]. Available: http://fuse.sourceforge.net/

sshfs.html

[8] L.-Y. Chang, ''AshFS: A Lightweight Mobile File System Supporting Disconnected

Oper-ations,'' Master's thesis, Department of Electrical and Control Engineering, National Chiao

Tung University, 2008.

[9] Marionraven and T. M, ''HTTPFS,'' 2006. [Online]. Available: http://httpfs.sourceforge.

(53)

[10] B. Callaghan, B. Pawlowski, and P. Staubach, ''NFS Version 3 Protocol Specification,''

RFC 1813 (Informational), Internet Engineering Task Force, Jun. 1995. [Online].

Available: http://www.ietf.org/rfc/rfc1813.txt

[11] B. Atkin and K. Birman, ''Network-Aware Adaptation Techniques for Mobile File

Sys-tems,'' in Proc. Fifth IEEE International Symposium on Network Computing and

Applica-tions NCA 2006, 2006, pp. 181--188.

[12] S. Lehtinen and C. Lonvick, ''The Secure Shell (SSH) Protocol Assigned Numbers,''

RFC 4250 (Proposed Standard), Internet Engineering Task Force, Jan. 2006. [Online].

Available: http://www.ietf.org/rfc/rfc4250.txt

[13] T. Ylonen and C. Lonvick, ''The Secure Shell (SSH) Protocol Architecture,'' RFC 4251

(Proposed Standard), Internet Engineering Task Force, Jan. 2006. [Online]. Available:

http://www.ietf.org/rfc/rfc4251.txt

[14] T. Ylonen and C. Lonvick, ''The Secure Shell (SSH) Authentication Protocol,'' RFC 4252

(Proposed Standard), Internet Engineering Task Force, Jan. 2006. [Online]. Available:

http://www.ietf.org/rfc/rfc4252.txt

[15] T. Ylonen and C. Lonvick, ''The Secure Shell (SSH) Transport Layer Protocol,'' RFC 4253

(Proposed Standard), Internet Engineering Task Force, Jan. 2006. [Online]. Available:

http://www.ietf.org/rfc/rfc4253.txt

[16] T. Ylonen and C. Lonvick, ''The Secure Shell (SSH) Connection Protocol,'' RFC 4254

(Proposed Standard), Internet Engineering Task Force, Jan. 2006. [Online]. Available:

http://www.ietf.org/rfc/rfc4254.txt

(54)

Sys-tem for Linux,'' in Proceedings of Usenix Annual Technical Conference, FREENIX Track,

2004, pp. 19--28.

[18] A. Boukerche and R. Al-Shaikh, ''Towards Building a Fault Tolerant and Conflict-Free

Distributed File System for Mobile Clients,'' vol. 2, April 2006, pp. 6 pp.--.

[19] A. Helal, A. Khushraj, and J. Zhang, ''Incremental Hoarding and Reintegration in Mobile

Environments,'' 2002, pp. 8--11.

[20] D. Dwyer and V. Bharghavan, ''A Mobility-Aware File System for Partially Connected

Operation,'' SIGOPS Oper. Syst. Rev., vol. 31, no. 1, pp. 24--30, 1997.

[21] R. Coker, ''The Bonnie++ Benchmark,'' 1999. [Online]. Available: http://www.coker.

com.au/bonnie++/

[22] I. Dowse and D. Malone, ''Recent Filesystem Optimisations on FreeBSD,'' in Proceedings

of the FREENIX Track: 2002 USENIX Annual Technical Conference. Berkeley, CA,

USA: USENIX Association, 2002, pp. 245--258.

[23] P. Warren and C. Lightfoot, ''iftop: Display bandwidth usage on an interface,'' Feb 12th

2006. [Online]. Available: http://www.ex-parrot.com/pdw/iftop/

數據

Figure 2.2: Architecture of Coda.
Figure 2.3: Architecture of AshFS.
Figure 2.4: Work Flow of FUSE.
Table 2.1: Comparisons of related work
+7

參考文獻

相關文件

Client: Angular 、 Cordova Server: Node.js(Express) 資料庫: MySQL. 套件管理: Node Package

Keywords: Mobile ad-hoc network, Cluster manager electing, Fuzzy inference rule, Workload sharing, Backup manager... 致謝 致謝

例如 : http ( 網頁伺服器所用的協定 ) 定義了 client 如何向 server request 網頁及 server 如何 將網頁及其中的各種內容回傳給 client 。. 提供服務給 application layer

4.3.1 若要開啟 SSH,則設定為【Enabled 開啟】。不開啟,則設定為【 Disabled 關閉】。把 SSH 服務開啟,方便日後有問題可以用 SSH 連線.. VMware vSphere Client 連線 5.1

Note that if the server-side system allows conflicting transaction instances to commit in an order different from their serializability order, then each client-side system must apply

However, if the EAP Identity does match a client Identifier and the CredentialState is Accepted the EAP server proceeds with the authentication process and verifies the credential

This option is designed to provide students an understanding of the basic concepts network services and client-server communications, and the knowledge and skills

[r]