VFTPD
Virtual FTP Daemon is an FTP server written in Perl designed to control any physical media changer adhering to the SCSI2 SMC standard. In other words: A Jukebox FTP server.During startup, VFTPD will query the changer unit to determine the number of storage slots, transfer elements (drives), media transfer elements (elevators, robotic arms, conveyors or whatever mechanism is used for transporting media) and the presence of a mail slot (used for media import/export). The FTP server will then manage these resources as efficiently as possible.
Virtual file system
To minimize media changes, a complete list of files and directories is kept in an SQL database for fast and efficient access. This means the physical medium need only be accessed when a user actually wants to download a file. In addition, this virtualization makes it possible for the FTP administrator to rename, delete and even move files and directories around on the server!Consider the following physical layout:
Medium 1 Project A Project D Project E Medium 2 Project B Project CA user should not have to worry about physical media. The FTP administrator need only ren "Medium *" "Projects" and we get a much nicer file layout:
Projects Project A Project B Project C Project D Project EThe physical location of each file and directory remains unchanged, the SQL database contains both the virtual and physical information allowing VFTPD to present the virtual data structure and access the physical one.
To illustrate further, and perhaps give you some ideas, here is the current root directory on ftp://jukebox.atc.no:
Apps Docs Drivers Games Movies MP3In december 2008 this server contained 448250 files, 26055 directories and 406 physical media. Not at all impressive if you compare with a modern hard drive, but there are two huge advantages: Power consumption and reliability. These files are distributed across media that will theoretically last 100 years, without power. Even if that's not true, even if 75% of the media fail and the jukebox itself falls apart, the remaining 25% of the media can still be retrieved without any difficulties as long as you can get your hands on a working CD-ROM player.
Media import/export
All server management, including media import and export, is done via FTP commands. Building on the example above, here's how we would add another medium containing project data:
|
||||||||||||||||||||||||||||
User authentication
VFTPD is designed to be used in an existing server environment and currently uses POP3 authentication to verify username/password pairs. Changing this to use, say PAM authentication, would be fairly simple.
Live demo
Our internal jukebox FTP server can be accessed here: ftp://jukebox.atc.noWe are using a Pioneer DRM5004X jukebox with 500 slots and two CD-ROM drives.
Prerequisites
VFTPD requires Perl 5 and the Device::SCSI module from CPAN.License / Availability
This software was developed for internal use by Ano-Tech Computers and is not yet released to the public. If, however, you are interested in testing it then please contact me via email: floyd@atc.no.
Not yet released... is this project dead?
The first working version was put together in the summer of 2005. It's now december 2008 and I still keep tweaking the code and adding features since I use this server on a regular basis for archiving old games, programs, drivers, documentation, MP3 music, family photos etc. You know, stuff that I really don't want to store on a hard drive since they all crash eventually.Those CDs are just sitting there, neatly stored, patiently waiting to be accessed. Every single one is indexed and organized so any single file can be retrieved in about 30 seconds. Can you honestly say the same thing about yours? :-)