1 / 10

File-level host-based virtualization

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

shiela
Download Presentation

File-level host-based virtualization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. File-level host-based virtualization Orion Filesystem Pune Institute of Computer Technology Calsoft Pvt Limited

  2. 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

  3. Typical user interaction What organization today? Mkdir Search Copy Paste ORION to the rescue

  4. Database Schema inode num inode no name type attr_type_text/ num/ date/ bool attr_type Attribute Record attr_name value

  5. Architecture Overview MySql Database ORION FS scheme <DIR nam=mp3 sql=“ext=mp3> <DIR nam=prj sql=“prj=OFS”> XML DOV files Database Update Daemon Cache Fault Handler mount syscall User Space Database ORION view core UK Interaction IPC mechanism Recordset Cache Linux 2.4 Virtual File System (VFS) Interface Updating Thread Object Store Underlying Filesystem

  6. Overall Working /mnt/objStore 0024500 0024501 0024502 0024503 0024504 0024505 0024506 0024545 0024511 0024512 0024513 00245614 00245615 00245616 0024517 Sb->s_root->d_inode->ugeneric_ip- / view root Name Query Is-Sticky Ino Name Query IsReceptor Ino Dir 1 Qn 1 Shared Resources Recordset Cache Rs Ino Name Ino Name Dir 3 Qn 3 Dir Q Qn n Dirname Query Ino Dir 2 Qn 2 <?xml version="1.0" encoding="ISO-8859-1"?> <dir name="/" SQL="" > / <dir name=DIRNAME SQL=Queriy> Dirname </dir> </dir> <?DOVMAGIC Dirname Sql Dirname2 Sql <?DRIVER_INFO_COMPLETE?> <?DOV_File_Created_By_Program_Dont_Edit_Manually?> <?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 Embed it in our super block refererce 2. Read the DOV file create the virtual dentries 3. Attach root on the root inode’s 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 111111111111111111111111110000000000000000000000000000000000

  7. Content Based Directory Listing 1 Ask Cache For record set 2 Cache Miss CFiles AND Text Type like C Dentry Cache /mnt/objStore getrecordset(iNo) Recorset Cache 0024500 0024501 0024505 0024506 3 Populating the Dentry Cache 0024513 00245614 2.3 2.2 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_lookup() ofs_readdir() * ResolveDuplicates 3 2.4 Populate RS cache I N O D E S 1 2 2.4 * 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

  8. Logging Activities On the Object Store 4 3 2 1 Trap post call of create ORION create Underlying Filesystem ORION Filter /mnt/objStore 0024500 0024501 0024500 0024505 0024506 0024505 00245614 0024513 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 FilterPre Calls Create() Post Calls Create() 4.1 Rename The file with String representation of Ino 3 newFile.xyz 00200399 4

  9. Other Comparable Solutions • WinFS • File System to be shipped with Windows Longhorn

  10. ORIONThank You !Happy File Hunting

More Related