Abstract:
A storage object such as a virtual disk drive or a raw logical volume is contained in a UNIX compatible file so that the file containing the storage object can be exported using the NFS or CIFS protocol and shared among UNIX and MS Windows clients or servers. The storage object can be replicated and backed up using conventional file replication and backup facilities without disruption of client access to the storage object. For client access to data of the storage object, a software driver accesses the file containing the storage object. For example, a software driver called a virtual SCSI termination is used to access a file containing a virtual SCSI disk drive. Standard storage services use the iSCSI protocol to access the virtual SCSI termination. An IP replication or snapshot copy facility may access the file containing the virtual SCSI disk drive using a higher-level protocol.
Abstract:
An airborne obstacle collision avoidance apparatus which includes an object sensor for sensing objects within a field of view of the aircraft and an aircraft navigation system for navigating the aircraft through space. The apparatus also includes a signal processor for receiving data from both the object sensor and the aircraft navigation system, for generating map data of the objects within the field of view of the aircraft, for dynamically changing the map data as the aircraft moves through space and for determining the probability that the aircraft is on a collision course with respect to each sensed object. The apparatus further includes an alarm which is activated when the signal processor determines that there is a high probability that the current aircraft flight direction is on a collision course with respect to a sensed object.
Abstract:
A data processing system includes host data processors, a data storage system including data storage shared among the host data processors, and a data switch coupling the host data processors to the data storage system. The data storage system has host adapter ports coupled to the data switch. The data switch is programmed for distributing block I/O requests from the host data processors over the operable host adapter ports for load balancing of the block I/O requests among the operable host adapter ports. The shared data storage can be a file system striped across RAID sets of disk drives for load balancing upon disk director ports of the data storage system. The data processing system can be expanded by adding more data storage systems, switches for the additional data storage systems, and switches for routing block I/O requests from the host processors to the data storage systems.
Abstract:
An application is included in a virtual machine sent to a cloud computing server. The cloud computing server has a remote access layer that fetches data blocks of the private dataset of the application from private data storage as the data blocks are requested by the application, so that the application in the public cloud begins execution without waiting for the entire application dataset to be transferred to the public cloud, and the data blocks are transferred from the private dataset to the public cloud only when the data blocks are accessed by the application. The application's private data is kept in the public cloud only when it is currently being used. If there are security concerns, the application's private data is transferred over the public network in an encrypted form and stored in the public cloud in an encrypted form.
Abstract:
Three contiguous segments of video data are kept in video cache memory for streaming video data to a host application from a video file in data storage. For example, three buffers are allocated in the cache memory for each video stream, and at any given time during sequential access, a particular one of the three buffers is a middle buffer from which pre-fetched data is streamed to the host application. For forward or backward streaming, the buffers also include a backward buffer as well as a forward buffer on opposite sides of the middle buffer. In order to simplify the assembling of the buffers, a shift or rotation of the roles of the buffers and an asynchronous pre-fetch for continuance of a stream or for a switched direction of a stream is triggered by the cache state of the offset requested by the video application.
Abstract:
In a data processing system, a first processor pre-allocates data blocks for use in a file system at a later time when a second processor needs data blocks for extending the file system. The second processor selectively maps the logical addresses of the pre-allocated blocks so that when the pre-allocated blocks are used in the file system, the layout of the file system on disk is improved to avoid block scatter and enhance I/O performance. The selected mapping can be done at a program layer between a conventional file system manager and a conventional logical volume layer so that there is no need to modify the data block mapping mechanism of the file system manager or the logical volume layer. The data blocks can be pre-allocated adaptively in accordance with the allocation history of the file system.
Abstract:
An access control agent is advantageously deployed at a host device to prevent malicious use of a storage system by unauthorized hosts and users. In one embodiment the access control agent is disposed in a processing path between the application and the storage device. An application is mounted as an image file by a loop device to provide a virtual file system. The virtual file system is populated with access control information for each block of the file. Application I/O requests are mapped to physical blocks of the storage by the loop device, and the access control information is used to filter the access requests to preclude unauthorized requests from being forwarded to the storage client (and consequently the storage devices). With such an arrangement, access rights can be determined at I/O accesses, file and block granularity for each user.
Abstract:
Read-only and read-write snapshot copies of a production file in a Unix-based file system are organized as a version set of file inodes and shared file blocks. Version pointers and branch pointers link the inodes. Initially the production file can have all its blocks preallocated or it can be a sparse file having only an inode and its last data block. A protocol is provided for creating read-only and read-write snapshots, deleting snapshots, restoring the production file with a specified snapshot, refreshing a specified snapshot, and naming the snapshots. Block pointers are marked with a flag indicating whether or not the pointed-to block is owned by the parent inode. A non-owner marking is inherited by all of the block's descendants. The block ownership controls the copying of indirect blocks when writing to the production file, and also controls deallocation and passing of blocks when deleting a read-only snapshot.
Abstract:
To permit multiple unsynchronized processors to update the file-modification time attribute of a file during concurrent asynchronous writes to the file, a primary processor having a clock manages access to metadata of the file. A number of secondary processors service client request for access to the file. Each secondary processor has a timer. When the primary processor grants a range lock upon the file to a secondary, it returns its clock time (m). Upon receipt, the secondary starts a local timer (t). When the secondary modifies the file data, it determines a file-modification time that is a function of the clock time and the timer interval, such as a sum (m+t). When the secondary receives an updated file-modification time (mp) from the primary, if mp>m+t, then the secondary updates the clock time (m) to (mp) and resets its local timer.
Abstract:
In a data processing system, a first processor pre-allocates data blocks for use in a file system at a later time when a second processor needs data blocks for extending the file system. The second processor selectively maps the logical addresses of the pre-allocated blocks so that when the pre-allocated blocks are used in the file system, the layout of the file system on disk is improved to avoid block scatter and enhance I/O performance. The selected mapping can be done at a program layer between a conventional file system manager and a conventional logical volume layer so that there is no need to modify the data block mapping mechanism of the file system manager or the logical volume layer. The data blocks can be pre-allocated adaptively in accordance with the allocation history of the file system.