User, Group and Tree Quotas
Platform/Tools/Technologies: C/C++, Proprietary Embedded Real-Time OS, Linux, GCC, GDB
Architected, Designed, Developed and maintained the whole Quotas functionality in the File System of Proprietary Embedded Real-Time OS, the core of NAS Product. The functionality aims at monitoring and imposing limits on disk space being used by users of the file system. The users can be regular users, groups of users or even directories (trees). Owned complete responsibility right from inception with several innovative feature additions, with several patent applications generated during the association. Approx duration of the project was about 7 years Developed User, Group, Tree Quotas and subsequently added User and Group quotas with Quota Trees.
Salient features include:
» Various usage computing policies, blocks and filesize» Support for W2K quotas with changes in Proprietary OS CIFS layer, Changes to support NFSv4 quota info query requests
» Support for quotas added to the ILM/HSM (Information Lifecycle Management/Hierarchical Storage) component in the File System
» Tools: quota check, database consistency checker, for editing, reporting usage, limits, grace periods, tree list and other configuration info,
» Innovative use of file handles to store Tree-ID (Patent Pending) to circumvent certain limitations of the file system
» The project also involved maintenance and QA to support the primary development efforts. A high quality team of developers was built and maintained for a long duration to ensure success of the feature.
» Performance improvements: hashing, caching, innovative search algorithms
File Level Retention (WORM)
Platform/Tools/Technologies: C/C++, Proprietary Embedded Real-Time OS, GCC, GDBDesigned, Developed and maintained major functionality of WORM (Write Once Read Many) in the File System layer of a Proprietary Embedded Real-Time OS, the core of NAS Product. The functionality allows retaining files on a file system for a specified period of time. The files can not be modified or deleted until the retention period expires. Owned complete responsibility right from inception with several innovative feature additions.
Developed the feature by making changes in to the File System. The changes included modifying the inode format, making changes in the superblock to store worm information, support for default retention period, support for innovative ways to set the retention period and to lock the file.
The project also involved subsequent enhancement activities and maintenance post completion of the feature addition.
Network Attached File Server Appliance Product
Platform/Tools/Technologies: C, Perl, HTML, JavaScript, LinuxDesigned, Developed and Maintained a Network Attached File Server (NAS). This is a NAS system management product for an Appliance based on Linux Operating System. The project involved design, development, QA, maintenance of a software to manage a NAS appliance over web. The entire development was done on Linux platform using various scripting languages (perl, javascript, etc.)
The management features developed include:
» Physical and Logical Volume Management, Software and Hardware RAID, snapshots with scheduling
» File System management, with resize functionality
» Multi-protocol Share management for NFS, SAMBA, HTTP, FTP, AppleTalk
» Backup support of the file system data
» File as well as Block level Replication
» iSCSI Target and Initiator for Block Level data
» FC support, External USB Disk Support, etc.
File Systems Development
Platform/Tools/Technologies: C/C++, Proprietary Embedded Real-Time OS, GCC, GDB
Designed, Developed and maintained various functionality of a File System in Proprietary Embedded Real-Time OS. The File System development has been ongoing activity and the development goes hand in hand with the onsite team of the product. The efforts included various enhancements, ongoing maintenance, Research and Development of new/future functionality, exploration of new features, etc. Efforts have resulted in to several patent applications being generated during the association.
Major features/tasks include: » Deep understanding on the File System (Proprietary FS with several high end functionality like journaling, directory caching, snapshots, quotas, HSM, etc.)
» File System Re-Architecture - activity involving a lot of Research and Development tasks to come up with a new version of the file system
» Deep understanding of Virtual File Systems layer, along with several derived file systems for specific purposes like mounting snapshots, migration file systems, HSM, etc.
» Exposure to NTFS for exploring certain feature feasibility
» R & D for File based Volumes and File Systems (Patent Pending), Thin Provisioning, Extended Attribute Support, Inode Files, etc.
» Various serviceability tools like meta-data collector, fs debugger, block mapper
» A framework allowing a very easy way to develop special purpose file system maintenance tasks including fs version upgrades, quota checks, etc.
System Management of World #1 NAS Product
Platform/Tools/Technologies: Eiffel, Java, C, LinuxThis was one of the major development teams and had several sub-teams handling various system management modules. The responsibilities were related to architecture, design, development, and maintenance and testing of various configuration and management tools which are hosted on the 'Control Station' which is a separate OS that manages the Core NAS OS and all of it's instances as well as the backend storage.
The major teams were: » Middleware (the Interface Layer to various top level tools and UI)
» Core (the core of the admin/mgmt engine handling databases and logic)
» SMI-S/XMP-API (SNIA's SMI-S providers for the NAS product and an XML based API)
» Java based User Interface to World #1 NAS product
iSCSI Target Appliance Project
Platform/Tools/Technologies: C, block devices, LinuxDesigned, Developed and Maintained several functionality of a iSCSI Target appliance product based on Linux.
Some of the functionality developed include:
» 6 to 8 years of related experience in data storage domain:
» iSCSI Target module development, maintenance on Linux and Windows: various SCSI command support
» Larger than 2TB Target Support, increase in block size
» Mode Sense Pages Support
» Testing the Target from various iSCSI initiators
» File Target Support
» Hardware Provider and Volume Shadow Copy support on Windows for supporting the iSCSI based Appliance
» Initiator Management Tool: Developed on Linux to manage external, third party Windows, Linux, VMware initiators
Windows based Backup Product for an Appliance
Platform/Tools/Technologies: C, C++, Visual Studio, Windows, VSSWorked as part of customer team and responsible for development, maintenance of several functionality of backup product on windows platform. The data is backed up to an appliance with removable hard-disks.
Some of the functionality developed includes:
» VSS based requester on XP
» Persistent Snap shot on Windows for backup
» Internal database for storing backup configuration, schedules, jobs, etc.
» SATA 3.0 support in the product
Continuous Data Product (CDP) Appliance
Platform/Tools/Technologies: C, Python, HTML, over LinuxArchitected, Design, Develop a CDP appliance product. The CDP is done at a block level in Volume Manager and thus works for any kind of application sitting in above layers. This works seamlessly with File Systems as well as iSCSI Targets and works with file systems, databases based on servers as well as clients.
This allows a time-line view for any-point-in-time restore of the data and allows setting up bookmarks for easy to identify restore points.
NFS Server on Windows
Platform/Tools/Technologies: C/C++, VC++The project involved developing support for NFS v2 and NFS v3 server on Windows platform. This was a very specific need of the customer. The team developed the functionality, added the support for required NFS requests, and developed configuration/management tools. The team also developed Installable for the software developed.
QA of World #1 NAS Product
Platform/Tools/Technologies: Shell Scripts, Perl, Manual Testing, Test Harness developmentThe QA teams were responsible for owning testing of various different modules of NAS product.
The modules include: » Volume Manager, Volume Snapshot, Read-Only Snapshots, Logical Volume Overlap, Snapshot recovery
» Remote Replication
» File System Quotas
» iSCSI
The QA activities were done by following various approaches including following roles/responsibilities:
» Feature Integration Testing
» Release Integration Testing
» Stress Testing
» Manual Testing
» Development of Automated test scripts
» Tests using Automated tests
The team used to draw a test strategy depending on the modules/functionality to be tested. It included being involved right from Functional Specification Stage of the features and also at the stages of Design Specs along with interaction with developers to understand the functionality, which most of the times is cutting edge and complex. Based on the initial study, decision was made to develop automated tests, manual test, etc. Test Plans were developed as per the client procedures. Subsequently Test cases were development post approval of the Test Plan document.
A Issue Tracking system based in AR System was used for reporting and tracking of bugs found.
QA of Unified NAS/SAN Product
Platform/Tools/Technologies: Shell Scripts, Perl, Manual Testing, Test Harness development, iMacro for Browser based TestingThe QA teams were responsible for owning testing of various different modules of a Unified NAS/SAN Storage Management Product. The testing was conducted using standard test and QA practices and included Functional Testing using manual as well as automated test scripts. Regression testing is done after every significant release and as per release plans. Stress tests are conducted as per the requirements and new features added from time to time.
iSCSI Target/Initiator Testing
Platform/Tools/Technologies: Manual, MS HCT testsThe project involved testing the iSCSI functionality of the NAS Product using various initiators. It also involved executing the Microsoft HCT tests and validating the functionality as well as reporting issues and fixing as required.