This application claims the benefit under 35 U.S.C. §119 of the following co-pending and commonly assigned foreign patent application, which application is incorporated by reference herein:
United Kingdom Application No. 03 29 604.3 entitled, “DATA PROCESSING”, by Eric Theriault and Le Huan Tran, filed on Dec. 20, 2003.
This application is related to the following issued and commonly-assigned patent, which patent is incorporated by reference herein:
U.S. Pat. No. 6,118,931, filed Apr. 11, 1997 and issued on Sep. 12, 200, by Raju C. Bopardikar, entitled “Video Data Storage”, attorneys' docket number 30566.207-US-U1.
1. Field of the Invention
The invention relates to a data processing environment in which switchable storage is provided.
2. Description of the Related Art
Devices for the real time storage of image frames, derived from video signals or derived from the scanning of cinematographic film, are disclosed in the present applicant's U.S. Pat. No. 6,118,931 which patent is incorporated by reference herein. In the aforesaid patent, systems are shown in which image frames are stored at display rate by accessing a plurality of storage devices in parallel under a process known as striping.
Recently, there has been a trend towards networking a plurality of computers of this type. An advantage of connecting computers of this type in the network is that relatively low powered machines may be deployed for relatively simple tasks, such as the transfer of image frames from external media, thereby allowing the more sophisticated equipment to be used for the more processor-intensive tasks such as editing and compositing etc. However, a problem then exists in that data may have been captured to a first file storage system having a direct connection to a first processing system but, for subsequent manipulation, access to the stored data is required by a second processing system.
The solution of switchable storage, wherein each host computer and each storage device is connected to a switch and the switch is used to provide a connection between any host and any storage device requires that certain information be known on each host about the hardware capabilities of all the other hosts and the storage devices on the network. Currently this information must be entered manually which is error-prone.
According to a first aspect of the present invention there is provided data processing apparatus, comprising a plurality of host computers, a plurality of storage devices and a switch; wherein each host computer and each storage device is connected to said switch such that each host computer is provided with switchable storage; each host computer has internal storage on which is stored first data that is necessary for said communication between itself and the storage devices to which it is connected, and second data that relates to at least one of said host computers and storage devices; and each host computer is configured to identify each of said host computers that is missing from said second data; and request said first data from each of said identified host computers in order to construct said second data.
Also in the data processing environment are four framestores 111, 112, 113 and 114. These are also connected to the patch panel 107 by a fiber channel connection; for example framestore 111 is connected by connection 115. Each framestore 111-114 is made up of a number of storage devices.
In this example the data processing environment is provided in order to process image data. The host computers are used to manipulate images, usually film or video but also stills, to provide “special effects” and to edit together clips of images. The framestores 111-114 are used to store the images. A typical digitized television-quality frame has a size of approximately one megabyte, and so with thirty frames per second, a clip of only one minute requires nearly two gigabytes of storage. High definition film or television images require much more. For this reason image data is not stored permanently in the data processing environment. Images to be manipulated are captured and stored on the framestores 111-114 before editing, and rendered and archived to tape or film once the editing is finished.
In this example, host 101 is used to capture and archive material for use by the other hosts. This is a time-consuming but non-creative process.
Host 102 is an expensive, high-resolution effects machine. It can manipulate very large images in real-time and is used by artists to create the more difficult effects.
Host 103 is an editing machine. It is used to edit together clips of images, some of which may have had effects applied to them, in order to produce a finished project, which could be a scene from a film, an advertisement, a music video and so on.
In this example, hosts 101 to 103, together with framestores 111 to 113, have been in the switchable storage environment for some time. However, host 102 is very much in demand and so a new machine is now being added to the network. Host 104 is a lower-cost, lower-resolution machine. It will be used to create preliminary effects that do not require the high-resolution capacity of host 102.
In a switchable storage environment each host 101-104 and each framestore 111-114 is connected to patch panel 107, which in this example is a fiber channel arbitrated loop patch panel that creates physical connections between the ports that the hosts and framestores are connected to. Thus, for example, framestore 111 might be connected, via patch panel 107, to host 101, which captures images to it from a video cassette player. Host 101 then performs a framestore swap with host 102, which for example might be connected to host 112, by instructing patch panel 107 to connect its ports to those of framestore 112 and to connect the ports of host 102 to those of framestore 111.
After the framestore swap, host 101 is connected to framestore 112 and host 102 is connected to framestore 111. The images are still on framestore 111, and so the user of host 102 adds effects to them. Then, host 103, which is connected to framestore 113, swaps with host 102, which means that host 102 controls framestore 113 and host 103 controls framestore 111. The user of host 103 edits the images to produce the finished project. Hosts 101 and 103 then swap framestores, resulting in host 101 controlling framestore 111 again and host 103 controlling framestore 112. Host 101 can then render the images onto tape, thus freeing up framestore 111 for new material.
Thus, switchable storage enables “virtual transfer” of data—from the user's point of view the images he requires are available instantly without waiting for them to be transferred over one of the networks. However, if a user requires only a few images from a framestore to which he is not connected he can request a copy of them via Ethernet 105, rather than swapping framestores.
NAS 106 stores the metadata for the images that are stored on framestores 111 to 114. When an artist creates effects or edits images together, the images themselves, as stored on the framestores, are not actually changed. Instead, metadata indicating a series of transformations is stored on the NAS and these transformations are applied to the images whenever they are viewed or rendered. Thus, although it appears to the user that the images have changed, in fact they have not. This allows the undoing of any effects or editing that have been applied and ensures that over-manipulation of the images does not degrade their quality. Thus, in order to discover what images are stored on the framestores each host has only to access the metadata stored on NAS 106.
Although in this example the data processing environment is used to manipulate images, the environment is applicable to any situation in which large amounts of data need to be transferred between host computers.
In a switchable storage environment, any host can be connected to any framestore, but for ease of description, host 101 will be considered to be connected to framestore 111, host 102 to framestore 112, host 103 to framestore 113 and host 104 to framestore 114. The terminology used is that a host is connected to its respective framestore and that a framestore is connected to its controlling host.
A high-resolution effects machine, such as host 102, is illustrated in
A user is provided with a visual display unit 203 and a high quality broadcast quality monitor 204. Input commands are generated via a stylus 205 applied to a graphics tablet 206 and may also be generated via a keyboard 207.
Computer 201 is connected to the Ethernet 105 by network connection 208, to the HiPPI network 109 by network connection 209 and to the patch panel 107 by fiber channel connection 110.
Hosts 101, 103 and 104 are similar, except that host 101 is provided with apparatus for capturing and archiving images and host 104 is based around a smaller computer such as an O2®.
The computer 201 shown in
The memory controller 321 further facilitates connectivity between the aforementioned components of the computer 201 and a high bandwidth non-blocking crossbar switch 323. The switch 323 makes it possible to provide a direct high capacity connection between any of several attached circuits, including a graphics card 324. The graphics card 324 generally receives instructions from the processors 301 and 302 to perform various types of graphical image rendering processes, resulting in frames, clips and scenes being rendered in real time.
A SCSI bridge 325 facilitates connection between the crossbar switch 323 and a DVD/CDROM drive 326. The DVD drive 326 provides a convenient way of receiving large quantities of instructions and data, and is typically used to install instructions for the processing system 201 onto a hard disk drive 327. Once installed, instructions located on the hard disk drive 327 may be transferred into main memory 322 and then executed by the processors 301 and 302. An input output (I/O) bridge 328 provides an interface for the graphics tablet 206 and the keyboard 207, through which the user is able to provide instructions to the computer 201.
A second SCSI bridge 329 facilitates connection between the crossbar switch 323 and network communication interfaces. Ethernet interface 330 is connected to the Ethernet network 105 and medium bandwidth interface 334 is connected to HiPPI network 108.
An XIO bus 331 facilitates connection between cross bar switch 323 and two fiber channel arbitrated loop (FC-AL) adapters 332 and 333. These are connected to patch panel 107.
As similar data locations are being addressed within each stripe, the resulting data read from the stripes is XORed together by process 517, resulting in redundant parity data being written to the sixth drive 515. Thus, as is well known in the art, if any of disk drives 510 to 514 should fail it is possible to reconstitute the missing data by performing a XOR operation upon the remaining data. Thus, in the configuration shown in
Frames of different resolutions may be striped across different numbers of disks, or across the same number of disks with different size stripes. In addition, a framestore may be configured to accept only frames of a particular resolution, hard-partitioned to accept more than one resolution but in fixed amounts, dynamically soft-partitioned to accept more than one resolution in varying amounts or set up in any other way. In this embodiment striping is controlled by software within the editing system but it may also be controlled by hardware within each RAID.
These RAIDs and, collectively, framestores, are examples of storage devices. In other embodiments (not shown) the storage devices may be any other system which allows storage of a large amount of image data and real-time access of that data by a connected host computer.
As shown by the connection between host 101 and framestore 111, when a host and a framestore have the same number of adapters and therefore the same number of ports, a two-port zone is created between corresponding ports. Thus, for example, a two-port zone 601 is created between port 602, connected to host 101, and port 603, connected to framestore 111. This means that the output from port 602 is the input to port 603 and vice versa.
When a two-adapter host is connected to a four-adapter framestore, as is the case with host 104 and framestore 114, two three-port zones are created. Thus, for example, a three-port zone 604 is created between port 605, connected to host 104, and ports 606 and 607, connected to framestore 114. This means that the output from port 605 is the input to port 606, the output from port 606 is the input to port 607 and the output from port 607 is the input to port 605.
In other embodiments it is possible that a framestore could require only two ports. In this case, if it were connected to a two-adapter host, two two-port zones would be created. If it were connected to a four-adapter host, two two-port zones would also be created and the remaining two ports on the host size would be looped back on themselves to create two one-port zones.
At step 703, application instructions are loaded from CD-ROM 704 if necessary and at step 705, the application is initialized. In this example, the application is a high-resolution effects system. However, host 101 runs a media management system suitable for capturing and archiving material, host 103 runs an editing system and host 104 runs a lower-resolution effects program. Nevertheless, each runs the same operating system, part of which is a storage management system such that each host 101-104 is capable of basic project management, image transfer over the networks, initiating framestore swaps and so on.
At step 706, images are loaded into memory 322 from framestore 112 in order to be manipulated at step 707. At step 708, a question is asked as to whether more editing is to be carried out. If this question is answered in the affirmative, then control is returned to step 706 and more images are loaded. If it is answered in the negative, then at step 709 the application is closed. At step 710, the operating system is terminated and at step 711 the computer is powered down.
Application data 805 includes data loaded by default for the application and other data that the application will process, display and or modify, specifically including image data 806, if loaded, and a copy 814 of network configuration data 812, which may or may not be current. This will be explained further with reference to
Since the operating system includes a storage management process the memory also includes storage management data 807. This includes host data 808 and framestore data 809, which contain certain properties of host 102 and its respective framestore, storage data 810 which contains the same properties of all the hosts and all the framestores, local connections data 811 which contains the interfaces of host 102 and network connections data 812 which contains the interfaces of all the hosts. System data 813 includes data used by the operating system 801.
The contents of the memories of editing systems 101, 103 and 104 are substantially similar. Each may be running a different editing application most suited to its needs but the application data on each includes data similar to that shown at 808 to 812.
The information given for each adapter first includes an identification within the computer for the adapter. This information is necessary because a host also contains SCSI adapters. Also, the gigabit setting is given, which is necessary because a 1 gigabit adapter cannot access 2 gigabit hardware. Lastly, the port to which the adapter is connected is given. This is necessary to control the patch panel 107.
Only host object 1301 is shown in detail. It includes the name of the host and details of its adapters, and is in fact substantially identical to the host data stored on host 101.
Lines 1602 and 1603 give information about the interfaces of host 102 and the protocols that are used for communication over the respective networks. As shown in
If host 102 swaps framestores with another editing system then it receives a message containing the ID of the framestore it now controls, as will be described with reference to
Similarly to local configuration data 811, all the interfaces are given after that. Lines 1705, 1706 and 1707 are identical to the corresponding lines in data 811, and for example line 1708 marks the beginning of the interfaces for host 104. Even though host 104 is new on the network and has not yet had its hardware detected, the network configuration daemon 804 has discovered it. This can serve as an indication to the user that a new host needs detecting.
At step 1801, the daemon is started, during the operating system initialization step of 702, and at step 1802, a local configuration file is loaded into memory. This local configuration file resides on the hard disk and is the data stored as local configuration data 811 at the point when the host shuts down. Similarly, at step 1803, the host data 808, framestore data 809, and storage data 810 is loaded into memory. At step 1804, network configuration data 812 is created.
At step 1805, the daemon waits for an interrupt, and when received, a question is asked at step 1806 as to whether it is an instruction to terminate. If this question is answered in the negative, then the interrupt is processed at step 1807, and control is returned to step 1805 to wait for another interrupt. If the question asked at step 1806 is answered in the affirmative, then at step 1808 an “offline multicast” is sent before the daemon terminates at step 1809. An offline multicast is an announcement on the Ethernet 105 that the host is going offline and so the instruction to terminate only comes when the operating system itself is terminating at step 710.
At step 1903, local configuration data 811 is copied to become network configuration data 812, and at step 1904 a question is asked as to whether any responses were received at step 1902. If this question is answered in the affirmative, then the first response is added to the network configuration data 812. Another question is then asked at step 1906, as to whether there is another response. If this question is answered in the affirmative, then control is returned to step 1905 and the next response is added to network configuration data 812. If it is answered in the negative, or if the question asked at step 1904 is answered in the negative, then step 1804 is concluded and network configuration data 812 is complete.
Thus, the construction of network configuration data 812 is dependent upon the hosts that are online on the network and not on any information in host data 808, framestore data 809 or storage data 810, and so hosts are discovered whose hardware has not yet been detected.
If the question asked at step 2001 is answered in the negative, to the effect that the interrupt is not a date, then at step 2005 a question is asked as to whether the interrupt is an online multicast from another host on the network. If this question is answered in the affirmative, then at step 2006 network configuration data 812 is updated with the new information contained in the multicast.
If it is answered in the negative, then at step 2007 a further question is asked as to whether the interrupt is an offline multicast from another host on the network. If this question is answered in the affirmative, then at step 2008 the host's details are deleted from network configuration data 812.
If the question asked at step 2007 is answered in the negative, then the interrupt is some other interrupt which is processed at step 2009. At this point, and following any of steps 2003, 2004, 2006 or 2008, step 1807 is concluded.
At step 2101, the daemon is started during the initialization of the operating system at step 702, and at step 2102, the daemon waits for an interrupt. On receipt, a question is asked at step 2103 as to whether it is an instruction to terminate, as sent by operating system 801 during its termination at step 710. If this question is answered in the negative, then the interrupt is processed at step 2104 and control is returned to step 2102 to wait for another interrupt. If the question is answered in the affirmative, then at step 2105, the daemon saves a copy of the local configuration data 811 to the hard drive as a local configuration file and terminates at step 2106.
If the question asked at step 2201 is answered in the negative, then at step 2203, a question is asked as to whether the interrupt is a notification that host 102 has swapped framestores with another host. If this question is answered in the affirmative, then at step 2204 the local configuration file is updated by changing the filesystem ID contained in it. At step 2205, local configuration data 811 and network configuration data 812 are updated, in just the same way as at step 2202. At step 2206, the framestore data 809 is updated by changing the filesystem ID and the RAID IDs and information (all of which is obtained from RAIDs data 1103 and filesystems data 1104 by referencing the new filesystem ID).
If the question asked at step 2203 is answered in the negative, then the interrupt is some other interrupt which is processed at step 2207. At this point, and following steps 2202 or 2206, step 2104 is concluded.
At step 2401, the framestores connected to the patch panel 107 are displayed to the user, and at step 2402, a question is asked as to whether there is an un-configured host on the network. This is a host that has been discovered by network configuration daemon 811 but for whom no information is found in storage data 809, such as host 104. If this question is answered in the affirmative, then at step 2403 the switchable storage is configured.
Following this, or if the question asked at step 2402 is answered in the negative, at step 2404 the user selects a framestore, and information relating to the contents of that framestore is retrieved from NAS 106 at step 2405 and displayed at step 2406.
At step 2407, a question is asked as to whether the user has requested a framestore swap. If this question is answered in the affirmative, then at step 2408 a swap is performed, and control is returned to step 2401 to display available framestores.
If the question asked at step 2407 is answered in the negative, then at step 2409, a selected clip is loaded into memory 322. At step 2410, a question is asked as to whether the user wishes to load another clip from the selected framestore. If this question is answered in the affirmative, then control is returned to step 2409, and another clip is selected and loaded. If it is answered in the negative, then another question is asked at step 2411 as to whether the user wishes to view another framestore. If this question is answered in the affirmative, then control is returned to step 2404, and the user selects another framestore. If it is answered in the negative, then step 706 is complete and all the presently required images have been loaded ready for manipulation at step 707.
At step 2502, the first framestore in data 814 is selected and at step 2503, its name is displayed on VDU 203. At step 2504, a question is asked as to whether this framestore name relates to any of the filesystem objects 1104 stored in storage data 810. If this question is answered in the negative, then the displayed name is marked as un-configured in some way. Following this, and if the question asked at step 2504 is answered in the affirmative, another question is asked at step 2506 as to whether there is another framestore name in data 814. If this question is answered in the affirmative, then control is returned to step 2502 and the next framestore is selected. If it is answered in the negative, then step 2401 is completed and all the online framestores are displayed.
However, before this happens the user notes that the framestore with the filesystem ID 53 is marked as un-configured by icon 2606. It is therefore known that this is a new framestore, and that its hardware and that of the new host (that must also be on the network), has not been detected. The user may therefore select “CONFIGURE STORAGE” button 2605 to start the storage configuration step 2403.
Thus, GUI 2801 includes a patch panel component 2802 corresponding to patch panel object 1201, which refers to patch panel 107. GUI 2801 also includes three host components 2803, 2804 and 2805 corresponding to host objects 1301, 1302 and 1303 respectively which contain data relating to hosts 101, 102 and 103 respectively. These hosts are shown connected to the patch panel according to the number of adapters in the host object and the ports given there.
Also included are twelve RAID objects corresponding to the RAID objects in RAIDs data 1103, for example RAID component 2806 corresponds to RAID object 1401, which as shown in
Finally, included are three filesystem components 2807, 2808 and 2809 which correspond to the three filesystem objects 1501, 1502 and 1503 respectively, which contain data relating to framestores 111, 112 and 113 respectively. These are shown connected to the RAIDs which comprise them.
Thus, the display in GUI 2801 is a representation of the network as contained in storage data 810. The functions available to the user to configure the storage are accessible via the buttons. Button 2810 facilitates the addition of a patch panel component and button 2811 facilitates the addition of a host component. Button 2812 displays, for a selected component, the object that it represents so that the user can view the data therein and button 2813 detects, for a selected host object, the hardware for it and its connected framestore. Button 2814 facilitates the making of connections between components and button 2815 exits the GUI and terminates step 2403.
At step 3202, a question is asked as to whether there is any RAID information in the framestore data that has been received. If this question is answered in the affirmative, then at step 3203 a new RAID object is created in RAIDs data 1103 and the necessary information from the framestore data, such as the RAID ID, the filesystem ID, the number of drives, the size of the drives, its gigabit setting and the port it is connected to, is added to the object at step 3204. At step 3205, another question is asked as to whether there is another line of RAID data and if this question is answered in the affirmative, then control is returned to step 3203 and a new RAID object is created.
If it is answered in the negative, then at step 3206, a new filesystem object is created. A filesystem object must exist if there are new RAIDs. At step 3207, the necessary information from the framestore data, such as the filesystem ID and the IDs of the RAIDs that make it up, are added to the object.
At this point, and if the question asked at step 3202 is answered in the negative, step 3105 is concluded and the host object has been configured.
These steps have been described with reference to host 102, which sees a new host come onto the network and needs to configure it, and similar steps are carried out by hosts 101 and 103. Host 104, as the new host, must also carry out this process but must first add a patch panel object and then add all four hosts, including itself, using this method. Once all four hosts have carried out this configuration task the switchable storage is fully operational.
At step 3302, the Ethernet addresses of the hosts currently connected to the framestores are identified from network configuration data 812 and at step 3303, a check is performed on storage data 810 that the hosts are able to swap, for example that the gigabit settings of the hosts and their prospective framestores are not incompatible.
At step 3304, instructions are sent to patch panel 107 over Ethernet 105 to connect certain ports together and at step 3304, a message is received back from patch panel 107 confirming the connections. At step 3306, a question is asked as to whether this message indicates any errors. If this question is answered in the affirmative, then the errors are displayed to the user on VDU 203 at step 3307, but if it is answered in the negative, then each host is sent, by a unicast over ethernet 105, the filesystem ID of the framestore that it now controls at step 3308. On each host the local configuration daemon receives this message and updates the local configuration data and framestore data in its own memory.
At step 3405, zones are calculated for the framestore swap. As discussed with reference to
Number | Date | Country | Kind |
---|---|---|---|
03 29 604.3 | Dec 2003 | GB | national |