Vous êtes sur la page 1sur 10

File-level host-based virtualization

Orion
Filesystem
Pune Institute of Computer
Technology
Calsoft Pvt Limited
Motivation
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
Typical user interaction

What
organization
today? Mkdir
Search
ORION to the rescue
Copy
Paste
Database Schema

inode num

inode no
name type

attr_type_text/
Attribute attr_type
num/ date/ bool
Record

attr_name value
Architecture Overview
<DIR nam=mp3
MySql Database ORION FS scheme sql=ext=mp3>
<DIR nam=prj
sql=prj=OFS>

Database Update Daemon Cache Fault Handler XML DOV files

User Space Database mount syscall

Linux 2.4 Virtual File System (VFS) Interface

Object Store ORION view core


UK
Updating Interaction
Thread IPC
Underlying Filesystem Recordset Cache mechanism
Overall Working <?xml version="1.0" encoding="ISO-8859-1"?>
<dir name="/" SQL="" > /
<dir name=DIRNAME SQL=Queriy> Dirname </dir>
</dir>
/mnt/objStore
0024500 0024501 0024502 0024503 0024504
<?DOVMAGIC
Dirname Sql
0024505 0024506 0024545 0024511 0024512
Dirname2 Sql
<?DRIVER_INFO_COMPLETE?>
<?DOV_File_Created_By_Program_Dont_Edit_Manually?>
0024513 00245614 00245615 00245616 0024517
<?DOV Header?>

mount t ORION none /mnt/ofs o <ObjectStorePath> <XML-DOV file name>

ofs_read_super(struct superblock *sb,void *data) {


1. Extract the super block reference from objectstore path Sb->s_root->d_inode->ugeneric_ip -
Embed it in our super block refererce
2. Read the DOV file create the virtual dentries / view root

3. Attach root on the root inodes private area Name Query Is-Sticky Ino
return
Summary: Initialize Each View & its superblock with its
Private data. After this Point each view has its identity stored in Name Query IsReceptor Ino
Its sb
} Dirname Query Ino
Dir 1 Qn 1
Shared Resources
Recordset Cache INODE ALLOCATION
BITMAP Dir 2 Qn 2
Rs
Ino Name 1111111111111111111111 Dir 3 Qn 3
111100000000000000000
Ino Name 00000000000000000 Dir Q Qn n
Content Based Directory Listing
2.2 2.3 DB 1 Ask Cache For record set
CFiles
AND Text Type create_query Exec Query Cache Hit
like C Return pointer to record set
Cache Fault
Handler 2 Cache Miss
2.1
[Root]# ls CFiles 2. 1 Communicate with user
User Mode Space Fault Handler.
Kernel Mode Execute Thread
S R
VFS getdents() Q
S 2.2 Create SQL Query
L
ORION Core + + 2.3 Execute Query
ofs_lookup() ofs_readdir() P P
I * ResolveDuplicates
3 D I
I
D 2.4 Populate RS cache
N
O 1 2 2.4 * Wake up Process waiting
D
E Dentry for Recordset
3.1 S 3.2 Cache
/mnt/objStore
getrecordset(iNo) 3 Populating the Dentry Cache
0024500 0024501
3.1 Extract Inodes From
0024505 0024506 Object Store iget(sb
0024513 00245614
objStore)
Recorset Cache 3.2 Populate Dentry Cache
With names attached d_add()
Logging Activities On the Object Store
1 ORION create
Make Vnodes compatible
with lower filesystem
[root#] touch ./view/newFile.xyz Update Database 2 ORION Filter
2.2 Update database to
reflect changes on object
User Mode Store activities. viz
Create
Kernel Mode Delete
VFS create(dentry,inode) Set attr
Rename
3 Underlying Filesystem
ORION Core
3.1 Create the File With the
ofs_create() 1 Given Name

4 Trap post call of create


2
ORION Store Filter Pre Calls Create() 4.1 Rename The file with
String representation of Ino
/mnt/objStore
0024500 0024501 0024500
3 0024505 0024506 0024505

00245614
newFile.xyz
00200399 0024513

4 Post Calls Create()


Other Comparable Solutions

WinFS
File System to be shipped with Windows
Longhorn
ORION
Thank You !
Happy File Hunting

Vous aimerez peut-être aussi