Title: File-level host-based virtualization
1File-level host-based virtualization
Pune Institute of Computer Technology Calsoft Pvt
Limited
2Motivation
- Aggregating information stored in disparate
formats - Naming System should reflect rather than mold
structure - Ordering and Grouping
- Support for Extensible File Attributes.
- Leverage Database Search Power to a file system.
- Produce a Unique Solution as a File system which
aggregates files based on file attributes. - Multiple Views
- Platform rather than application utility
- Organizational view change frequently than
physical
3Typical user interaction
What organization today?
Mkdir Search Copy Paste
ORION to the rescue
4Database Schema
5Architecture Overview
Linux 2.4 Virtual File System (VFS) Interface
Object Store
Updating Thread
Underlying Filesystem
6Overall Working
lt?xml version"1.0" encoding"ISO-8859-1"?gt ltdir
name"/" SQL"" gt / ltdir nameDIRNAME
SQLQueriygt Dirname lt/dirgt lt/dirgt lt?DOVMAGIC Dir
name Sql Dirname2 Sql lt?DRIVER_INFO_COMPLETE?gt lt?D
OV_File_Created_By_Program_Dont_Edit_Manually?gt lt?
DOV Header?gt
mount t ORION none /mnt/ofs o
ltObjectStorePathgt ltXML-DOV file namegt
ofs_read_super(struct superblock sb,void data)
1. Extract the super block reference from
objectstore path Embed it in our super
block refererce 2. Read the DOV file create
the virtual dentries 3. Attach root on the
root inodes private area
return Summary Initialize Each View its
superblock with its Private data. After this
Point each view has its identity stored in Its
sb
INODE ALLOCATION BITMAP 11111111111111111111111111
0000000000000000000000000000000000
7Content Based Directory Listing
2.2
2.3
create_query
DB Exec Query
Cache Hit Return pointer to record set
Cache Fault Handler
Root ls CFiles
2.1
2. 1 Communicate with user Space Fault Handler.
User Mode
S Q L P I D
R S P I D
Kernel Mode
Execute Thread
VFS getdents()
2.2 Create SQL Query
ORION Core
2.3 Execute Query
ofs_readdir()
ofs_lookup()
ResolveDuplicates
3
2.4 Populate RS cache
I N O D E S
2.4
2
1
Wake up Process waiting for Recordset
3.1
3.2
3.1 Extract Inodes From Object Store iget(sb
objStore)
3.2 Populate Dentry Cache With names attached
d_add()
Get SQL Query run on database
6
Pipe down
Get inode from object store
8Logging Activities On the Object Store
Make Vnodes compatible with lower filesystem
root touch ./view/newFile.xyz
Update Database
2.2 Update database to reflect changes on object
Store activities. viz Create Delete
Set attr Rename
User Mode
Kernel Mode
VFS create(dentry,inode)
ORION Core
3.1 Create the File With the Given Name
1
ofs_create()
2
ORION Store Filter Pre Calls Create() Post
Calls Create()
4.1 Rename The file with String representation of
Ino
3
newFile.xyz
00200399
4
9Other Comparable Solutions
- WinFS
- File System to be shipped with Windows Longhorn
10ORIONThank You !Happy File Hunting