A Design and Implementation of a Virtual File Management System for a
Distributed Video Server

Nobuyuki ENOKI, Masaya MIYAZAKI,Hideyuki OKA and Masashi YAMAGUCHI

Matsushita Electric Industrial Co., Ltd.
1006, Kadoma, Kadoma-shi, Osaka, 571, Japan
Phone: +81-6-900-9651, Fax: +81-6-904-7169
E-mail:{enoki, miyazaki, oka, yamagu}@isl.mei.co.jp}

Abstract

This paper describes a Virtual File Management System for a distributed video server. Our concept is to show distributed video data files in several video servers as they are in a single video server. To realize the concept, we propose the Virtual Network Tree mechanism. We also propose the Access History Recording mechanism to give information for relocating the distributed video data.

Keywords

distributed server, video server, Network Filesystem(NFS), access history, UNIX, local area network(LAN)

1 Introduction

Rapid advances in computing, storage, and network technologies have made possible a Video-on-demand system for delivering digital video data through computer networks. The video server for this system has a large number of disks for distributing many video streams to many clients simultaneously. When the performance or the storage capacity of the server becomes short as video data increases, an administrator may replace the server with a higher performance one with a more storage capacity. Another possible way is that he introduces another video server on the same network and manages these servers as a distributed video server system. In general, the distributed video server system consists of several medium performance servers is more cost effective than a single high performance server system. However, the distributed video server system causes some difficulties for applications or users. Users or application software should always know the physical location of the video data that they would like to access. To solve the problem, there are two approaches, (1)to adopt a physical location query system of the video data[3], and (2)to adopt a virtual file management system of distributed video data, which forwards access requests from clients to real servers.

In this paper, we assume Sun's Network Filesystem (NFS)[1] based video servers[2]. Their great advantage is that there is no need to change existing video applications that use the file abstraction interface to access video data on local disks. We propose to add a new mechanism to this video server system, a Virtual File Management System (VFM). It shows distributed video data stored in several NFS-based video servers as it stored in a single virtual server. We describe how VFM manages the distributed video data and allows users to access it without knowing its physical location.

Figure 1 shows the distributed video server system that we assume. It consists of several NFS-based video servers and a server on which VFM is running, a Virtual File Server (VFS). These servers and some clients are connected by a LAN; the clients use the NFS protocol over the UDP/IP protocol to retrieve video data from the servers and playback it.

Figure 1: The distributed video server system.

This system works as follows:

  1. A client sends a read request to VFS.
  2. VFM identifies the Video Server(VS) that stores the requested data.
  3. VFM forwards the read request to the VS.
  4. The VS directly sends the requested data to the client.
The remainder of this paper is structured as follows. We describe the features of VFS in section 2. Section 3 presents the implementation of VFM. In Section 4, we show the evaluation result. Section 5 concludes the paper.

2 Virtual File Management System (VFM)

In this section, we describe the problems of NFS-based distributed video server systems and propose the capabilities that will solve the problems.

2.1 Virtual Network Tree

As we stated in the previous section, when video titles are stored in several servers, users or applications should distinguish servers to access the data using the NFS protocol. It is very inconvenient for users. In addition, if an application depends on the server's name or address, it will not work without modification after a new server is introduced, or data is moved between servers.

We have designed the Virtual Network Tree service to solve the problem above. Figure 2 illustrates an example of the Virtual Network Tree. "ServerX" means a real video server, "fileX" means a file, and "dirX" means a directory. In this case, users or applications on clients can see the Virtual Network Tree in VFS although real data is stored in "ServerA" and "ServerB". They only mount VFS and do not need to know where the real data is stored. Even if "file2" in "ServerA" is moved to "dirA" in "ServerB", the Virtual Network Tree will not change at all.

Figure 2: An example of the Virtual Network Tree.

Please note that the Virtual Network Tree is different from a network directory service illustrated in Figure 3. In this case, the directory tree in each server is shown as a sub-directory in the network directory. Therefore, if "file2" in "ServerA" is moved to "dirA" in "ServerB", the directory path in the network directory will change.

Figure 3: An example of the Network Tree.

2.2 Access History Recording

Another important issue is efficient video data distribution. For instance, a distributed video server consists of servers with an equal performance and storage capacity, works most efficiently when clients access all the servers by the equal frequency. To realize this condition, popular video titles are equally distributed to all the servers. If many popular titles are stored in one of the servers, its performance would be the performance bottleneck in the whole system.

Another approach for a cost-effective system is a hierarchical distributed video system. In this approach, popular titles are stored in high performance servers based on hard disks, and other titles are stored in servers that do not have so high performance, but has a large storage capacity, such as servers with optical jukeboxes.

For both the approaches, we should know the access frequency of each video title. However, it is not easy to get it in the NFS-based video server because clients do not send open/close or start/stop requests to servers explicitly. We have designed an access history recording mechanism by monitoring all NFS read requests to VFS.

3 Implementation}

In this section, we describe the implementation of VFM.

3.1 Software Structure

We have implemented the proposed VFM on a UNIX workstation. Figure 4 describes the software structure of VFM. VFM mainly consists of the following three modules:

Figure 4: Software structure.

1. VFM Redirector

It sits between the network device driver and the IP protocol module, and steals NFS read request packets and forwards them to video servers that stores the requested data. It also manages the redirector cache described below to realize the high speed packet forwarding and to collect access history records.

2. VFM Daemon

It manages the Virtual Network Tree database. It holds the real location of each files in the Virtual Network Tree, where the real data is stored. It holds the access history record of each file as well.

3. Redirector Cache

It caches a part of the real location of files in the Virtual Network Tree. The VFM Redirector forwards read requests to the video server without communicating with the VFM daemon when it finds the real location in the Redirector cache. It holds the first accessed time and the latest accessed time to the file as well.

3.2 Detail of Virtual Network Tree

We explain how the modules above work to provide the Virtual Network Tree service.

Before describing the implementation of the Virtual Network Tree service, we explain a data read sequence by the NFS protocol. When a client retrieves data from a NFS-based server, the client and the server work as follows:

  1. A client requests a file location identifier, File Handle (FH), to a server.
  2. The server returns the FH to the client.
  3. The client sends an NFS read request consists of the FH, an offset from the beginning of the file and a data size to the server.
  4. The server sends the requested data to the client.
  5. The client and the server repeat the steps 3 and 4.
We make a new identifier, Virtual File Handle (VFH) to provide the Virtual Network Tree service. A VFH is a location identifier in the Virtual Network Tree, and is translated into a Real FH (RFH) in the real NFS-based server by the VFM daemon. The clients can access files in the Virtual Network Tree by the same way as they access to NFS-based servers because VFH has the same structure as the structure of NFS FH. Users need not change client applications at all.

A client retrieves video data as follows:

  1. A client requests a FH to VFS.
  2. VFS returns a VFH to the client.
  3. The client sends an NFS read request consists of the VFH, an offset and a size to VFS.
  4. The VFM redirector steals the read request and passes it to the VFM daemon.
  5. The VFM daemon find the IP address of the VS and the RFH corresponding to the VFH, and return them to the VFM redirector.
  6. The VFM redirector replaces the VFH in the read request with the RFH, then forwards it to the VS.
  7. The VS sends the requested data to the client directly.
The above implementation of VFM enables clients to retrieve video data without knowing where the real data is stored. However, it is not fast enough to playback video smoothly if the VFM redirector gets the corresponding IP address and RFH from the VFM daemon every time it forwards read request. We have solved this problem by introducing the redirector cache.

Figure 5 illustrates the structure of the redirector cache entry. When a client sends the first read request, the VFM redirector gets the IP address and the RFH from the VFM daemon and store them in the cache entry with the VFH. The client sends the second read request consists of the same VFH, the incremented offset and a data size. This time, the VFM redirector finds the IP address and RFH corresponding to the VFH in the redirector cache and forward the read request immediately.

Figure 5: Redirector cache entry.

3.3 Detail of Access History Record

Another feature of VFM is the capability of recording the access history of each file in the Virtual Network Tree. We have implemented it using the redirector cache described above.
  1. When a client sends the first read request, the VFM redirector stores the current time in the start time field and the last time field in the cache entry.
  2. While the client is sending read requests, the VFM redirector updates the last time field with the current time.
  3. When a certain amount of time, for example, 10 seconds, has past after the client stop sending read requests, the VFM redirector considers that the file has been closed. It reports the start time and the last time in the cache entry to the VFM daemon, then clear the entry.
  4. The VFM daemon records the times in the Virtual Network Tree database.
Users can store video data efficiently by processing the access history records.

4 Evaluation

This section reports the evaluation results. We have evaluated the VFM overhead by the two points, (1) video delivery throughput and (2) response time. In other words, (1) how many video streams VFM can deliver without any breaks and (2) how long does it take a client receives the first video data after sending the first read request.

We did the evaluation using the following two NFS-based video servers, a VFS, a real client and a client simulator:

NFS-based video server 1
Hardware:SPARCstation20 Throughput:40 X 1.5[Mbps] video streams
NFS-based video server 2
Hardware:SPARC Ultra1 Throughput:50 X 1.5[Mbps] video streams
VFS
Hardware: PC(Pentium 200MHz, 32MB Memory)
Real Client
Hardware: UNIX WS(Panasonic P3100) Function: check breaks in the video streams
Client simulator
Hardware: UNIX WS(SPARC Ultra2) Function: retrieve specified number of video streams

We observed that there was no break in the video streams, and the CPU load average was 32 percents when we made the client simulator retrieve 90 X 1.5[Mpbs] video streams stored in the two real servers via VFS. We also made several tests as changing the number of video streams. As the results of these tests, we observed that a CPU load average increases in proportion to increase of the number of video streams, and there is no other bottle neck in VFS. Therefore, we expect that the maximum throughput of VFS is over 150 X 1.5[Mbps] video streams.

We measured two response times, (1) a response time when a client retrieves video data via VFS, and (2) a response time when a client directly retrieves video data from a video server. We observed that the response time increase 0.6[sec] when we use VFS.

In this configuration, VFS causes no throughput decrease and seems to handle more video streams. Users observe 0.6[sec] more delay when they start video playback, but we do not think it causes a significant problem in the man-machine interaction. Therefore, we consider that the overhead of VFM is small enough to use.

5 Conclusion

We have proposed the new distributed server management mechanism, VFM and have described its implementation. VFM allows users to access distributed video data stored in several servers without knowing its physical location. It also provides the access history record. Users may also improve the total performance of their VOD system by storing video data using it. We also proved the overhead of VFM is quite small to use in real systems.

References

[1] R. Sandberg, D. Goldberg, S. Kleiman, D. Walsh, B. Lyon, Design and Implementation of the Sun Network Filesystem. USENIX Summer 1985 Conference Proceedings, pp.119-130, 1985.

[2] M. Nakanishi, H. Oka, T. Ohmura, A Multimedia Server Based on NFS Protocol. ISDL 1995, pp.275-276, 1995.

[3] ISO/IEC DIS 13818-6, generic coding of moving pictures and associated audio information -- Part 6: Extensions for DSM-CC.