DISTRIBUTED MIRRORING OF DATA VOLUMES IN NETWORKED SYSTEMS

Abstract: A mirroring system (14) for a network (9) operates to backup work product from workstations (13, 15, 17) on the network to one or more file servers (19), and also performs updates of changes in master copies of work environment to workstations (13, 15, 17) from the one or more file servers (19). In some embodiments the mirroring system (14) checks for network traffic level, and only initiates data transmission if traffic is at or below a preset level. As backups and updates occur, a status list (29) is maintained to track the update and backup revision levels at each workstations (13, 15, 17) on the network. In some embodiments, workstations (13, 15, 17) failing to backup or update are listed and reported.

Description: Distributed Mirroring of Data Volumes in Networked Systems Field of the Invention The present invention is in the field of computer networks and pertains in particular apparatus and methods for leveling traffic on computer networks. Background of the Invention One of the most cost-effective tools for managing and controlling the output of multiple computer users in a group setting, is computer networking. A computer network comprises a system of workstations, which may be personal computers (PCs), linked together by typically a serial data link. One or more file servers on the network provide storage for generated data, as well as a source for application software needed by the users to perform their functions. Networking allows multiple users to share data storage hardware, software resources, and peripherals such as printers and facsimile equipment. As networks have evolved, there has been a tendency to rely more and more on server functions and to minimize the hardware and software resident at each workstation. This concept greatly reduces cost factors related to individual workstations, and at the same time, allows managers greater control over work output.. Companies such as SUN, Oracle, Microsoft and Intel have introduced such workstations termed Net PCs in the art. In practice, users can be stationed at generically identical work stations, with their applications and specific tools related to job function stored on a server. At the same time, storage space may be provided on a server on the network to archive data files and to provide temporary storage for workstations on the network. There are many types of network systems available, as well as different types of topologies and technologies used. Networks are typically created and customized for the appropriate situations where they will be utilized. Although systems may differ, their function is fairly generic, that is, to provide an environment whereby data can be generated, stored, backed up, updated and the like, in a cost effective and efficient manner. One of the inherent limitations that must be dealt with when operating a computer network relates to the capacity of the network data link to transmit data back and forth between servers, peripherals, and workstations on the network. This capacity or capability is known in the art as bandwidth. Information in transit on an active network line is typically known in the art as network traffic. A large amount of traffic can be generated, for example, when the number of users sending or receiving data at the same time is large. In a typical network environment there are peak-use periods, and periods when traffic is light . For example the period near the end of a workshift, say 5:00 P.M., might well be a peak traffic period because a number of users are closing applications, storing data on a server from temporary storage at the workstation, and performing functions (printing, faxing and the like) using peripherals. Other periods, such as lunch times, break times, and late night or early morning hours may well be light-traffic periods. System and worker efficiency suffers during peak periods partly because of the amount of data that has to be identified and processed. If the amount of data to be transferred in a given period is beyond the bandwidth capability of the network, functions must be delayed. There are improvements that have been made in system technology that can partially address the problems of network burden. For example, burst technology is used to speed the delivery of information packets by cutting the number of processes such as identification, or by simplifying protocols. Higher bandwidth systems are developed and introduced, such as fiber optic systems and the like. Using multiple servers that are strategically placed, or mirrored, is also employed as a way to minimize network traffic. Yet another method, is to increase the memory storage at individual work stations, typically, with cache memory, reducing the user's need to access the network servers as often. While known system improvements, as described above, can reduce network traffic, some of them can also introduce new problems. For example, while providing cache memory to individual work stations can aid in reducing network traffic, in the event of an administered boot- sector revision, cache-capable workstations may not receive the new revision if their cache is full of data at the time of the revision. What is clearly needed is an apparatus and method that enables transparent backup of a user's files as he or she works, whether or not a cache is used, incorporating an ability to recognize and utilize light- traffic periods for backups, and at the same time to automatically synchronize and implement updated revisions to applications and boot information. Summary of the Invention In a preferred embodiment of the present invention a data mirroring system for a network including one or more workstations and a file server is provided, comprising a backup component adapted for backing up work product data from the workstations to the file server as stored work product data at the one or more workstations changes; and an update component adapted for mirroring work environment from the file server to the one or more workstations as master copies of work environment are changed. In some embodiments one or both of the backup component and the update component are adapted to check network traffic level, and to execute only if traffic is at or below a pre- stored level. The system can be provided to execute on the file server, one or more of the workstations, or both. In some embodiments the system is further adapted for maintaining a status list of backup and update status of all workstations on the network. In other embodiments the system is further adapted for tracking backup and update failure, and for presenting a notice of stations not served during a backup or update procedure. In some embodiments of the invention only a backup facility is provided, and in others only an update facility is provided. In another aspect a method for mirroring workspace and work environment data between a file server and workstations on a network, comprising steps of (a) monitoring the file server for changes made in master work environment; (b) initiating update routines mirroring work environment from the file server to workstations upon sensing a change made in the master work environment; (c) monitoring workstations for changes made on workspace storage; and (d) initiating backups data transfer from the workstations to the file server upon sensing a change made in workspace storage. In various embodiments the system of the present invention provides new and enhanced functionality for data maintenance tools for networks, allowing data transmission in many cases to be restricted to times of low network activity. Brief Description of the Drawing Figures Fig. 1 is a simplified overview of a company network in a preferred embodiment of the present invention. Fig. 2 is a pseudo-code example of a method for practicing the present invention. Fig. 3 is another pseudo-code example of a method in practice of the present invention. Description of the Preferred Embodiments Fig. 1 is an overview diagram of a network system 9 according to the present invention, comprising individual workstations 13,15 and 17 linked to a file server 19 via a network data link 11. It will be apparent to one with skill in the art that there could be a different or greater number of workstations, peripheral devices, and servers of different types comprising network system 9, However, in this embodiment, three workstations and one server are shown and deemed sufficient to adequately illustrate the present invention. Workstations 13, 15, and 17 are shown in Fig. 1 with the same symbols. It is to be understood, however, that there may be several different types of workstations. A workstation dedicated to making engineering drawings may, for example, have a large, high resolution monitor, and other hardware dedicated to graphic rendition. A workstation dedicated to secretarial work may not need the high-end monitor used for a graphics workstation, and so on. Each workstation 13, 15 and 17 has a non- volatile memory (disk in this example) for storage. Station 13 has disk 20, station 15 has disk 21, and station 17 has disk 22. The disk at each workstation stores work environment and workspace for the associated workstation. In Fig. 1 , disk 20 has a section (a) providing workspace and a section (b) dedicated to work environment. Workstation 15 similarly has a section (c) providing workspace and a section (d) dedicated to work environment. Disk 22 at workstation 17 has a section (e) providing workspace, and a section (f) dedicated to work environment. Workspace is memory space for storing, at least temporarily, files and other data generated by a user during working sessions. Work environment is memory space dedicated to working copies of applications, utilities, and the like to be executed at a workstation in for performance of work. As an example, part of the work environment at a graphics art workstation will typically be a powerful graphics generation program, and the workstation will have certain hardware to enhance performance for the intended use (graphics). It will be apparent to those with skill in the art that the nonvolatile storage capacity at each workstation may vary widely according to the intended use of the workstation and other factors, with the requirement that the capacity be sufficient for the workspace and work environment. File server 19 has a non- volatile memory 23 associated with it that can be a single physical hard disk, or may a logical volume spread over a group of devices, as in a RAID array. There are many types of memory-storage methods and apparatus, including but not limited to such as using hard disks, that might be used for memory 23. In a typical network installation, the storage capacity of disks 20- 22 might range from several dozen megabytes to a few gigabits, whereas storage capacity of memory 23 at file server 19 could range into terabytes. Disk 23 is divided in this embodiment into two regions 25 and 27. Region 25 comprises in this example three sections a, c, and e, which are master workspace sections for data stored temporarily in workspace sections a, c and e of disk drives 20, 21, and 22 at workstations 13, 15, and 17 respectively. Region 27 in this example comprises sections b, d, and f corresponding to sections b, d, and f of disks 20, 21, and 22 at workstations 13, 15, and 17. This correspondence assumes that workstations 13, 15, and 17 are not identical in hardware and assigned function. That is, it is assumed in this example that the workstations are considerably different, such as one workstation for computer graphics, another for secretarial work, and another for accounting functions. In this example the work environment for each of the three workstations will be considerably different, and the master environment for each will be different in disk 23. If workstations 13, 15, and 17 were identical in function they could all be served by a master copy of a single work environment in disk 23. Disk 23 may well have other information and general purpose data accessible by all workstations. It is to the corresponding workspace and work environment sections, however, that the present invention pertains. In a networked system of the sort depicted in overview in Fig. 1 , it is, as described above, the ability to share space and functions that is of particular importance. The workstations are not independent, but draw their work environment regularly from file server 19, from data and applications stored in memory 23. Similarly, master storage and archiving of work product at each of the workstations is stored through file server 19 in memory 23. This ability to share allows the overall computer plant to be minimized relative to overall functionality. It is necessary, however, as previously described, that sufficient bandwidth be provided in the data link of the network to allow all workstation access to work environment and all data backup from workstations to the file servers to be accomplished without causing undue delay or difficulty anywhere in the network. File server 19 has access to a list 29 containing information about all of the workstations in network 9. List 29 in this example is a database. List 29 in this embodiment stores a configuration map for each workstation, identifying, for example, work function (i.e. graphical or word processing), which applications used, and boot information, among other information. Similarly, list 29 stores association of logical workspace and work environment sections in workstations with corresponding master sections in memory 23. For example, section d at memory 23 is the master copy in this example of the work environment for workstation 15 (and for other workstations on the network, if any, identical in function to workstation 15). When, in the course of events, a change is made in the work environment in section d in memory 23, such as, for example, an upgrade in a drawing program used by workstation 15, it is important that the new version be propagated at earliest convenience to workstation 15 and like stations on the network. Similarly, as operators at various workstations create copy and files (work product) it is important that this work product be backed up to master sections of memory 23 corresponding to each workstation. There is therefore considerable two-way traffic on the typical network, and, unfortunately, the traffic is not well distributed over time. It is to this distribution of traffic over time that the present invention is addressed in some aspects. It will be apparent to those with skill in the art that list 29 may be maintained in a number of different ways and may be stored in a number of different places. This list may be stored and maintained, for example, in memory 23, or in any other memory accessible to file server 19. In an embodiment of the present invention, backup of generated work product and updating of work environment are accomplished throughout both work and idle times by utilizing opportunistic periods when network traffic is at or below a predetermined threshold. This unique mirroring activity is accomplished by mirroring routines 14 according to embodiments of the present invention (Fig. 1). These mirroring routines are indicated by the abbreviation MR in Fig. 1. In one embodiment for example, when network traffic falls to 40 percent of maximum, a procedure is initiated for workstations to begin or to continue previous interrupted backup of work product and other data. In Fig. 1 mirroring routines 14 are shown accessible and executable by each of workstations 13, 15,and 17, and also by file server 19. In various embodiments, mirroring routines 14 may be executed just on the file server, only on one or more workstations, or on all workstations and file servers as shown, with functionality distributed among the various mirroring routines. The mirroring routines according to embodiments of the present invention accomplish one of two general purposes. One is backup of workspace and the other is mirroring updates in master work environment. In each function, activity is typically triggered by a change in data. For example, there is no need to back up workspace if there have been no changes in workspace content at any workstation. However, when the content of workspace at any workstation, such as section a at workstation 20, for example, changes, then it is necessary that the new workspace content be mirrored to section a at memory 23 associated with file server 19. In one embodiment there may be an instance of mirroring routines 14 running on workstation 13. When workspace activity is detected, then the mirroring routine running on that workstation checks network traffic level, and if the traffic level is below the preset threshold, mirroring begins. When traffic exceeds the threshold, backup stops until activity falls below the threshold again. In this manner backups may be fragmented and distributed over relatively long periods, with a portion done now and portion later, and so on. This distributed activity is a principle object of the present invention in some aspects, providing for even distribution of the mirroring traffic. Because backup may be sporadic, as required by using only low- traffic periods, it is needed to keep running track of the state of backup of each workstation, and this function is fulfilled by list 29. Backup revisions are tracked, and the backup state of each workstation is maintained in database 29. [Dκi]In an alternative architecture, the mirroring routine might execute on file server 19, and be triggered whenever network activity is below the threshold. At all low activity periods in this embodiment the mirroring routine begins checking each workstation in order and initiates backup for those wherein data content of the workspace has changed since the last activity period of the workspace mirroring routine. It will be apparent to those with skill in the art that there are a number of ways that backup might be implemented with the twin requirements that backup be required and network traffic be below the preset threshold. In the case of work environment updates, the mirroring activity is triggered by a change in master work environment. Typically a system administrator will make such upgrades using special hardware and/or software tools. In a preferred embodiment of the present invention the fact of a change in a master copy of work environment starts a procedure whereby workstations requiring updating associated with the change are updated. Data transfer direction in this case is from the file server to the workstations. Work environment updating may be scheduled in various ways in different embodiments of the present invention. For example, the administrator doing the update may assign a priority, depending on the reason for the update. A very high priority means that workstations will be immediately updated regardless of network traffic, forcing (perhaps) other traffic to be delayed. Lower priority may be assigned allowing the updates to be made at times of reduced network traffic. The administrator may also have access to update scheduling routines wherein updates may be forced to specific times-of-day (which includes times-of-night). Again, because in some embodiments network traffic level will vary, and because the mirroring routines according to some embodiments of the present invention operate only during low traffic periods, mirroring of updates may be somewhat sporadic, and it may be needed to keep accurate track of update versions, which again is done in list 29. List 29 is therefore, in most embodiments of the invention, updated after each update of work environment to workstations, to record which workstations have which revision of update. In one embodiment of the invention, compression and decompression tools are installed with the software and automated at the server and at each workstation on network 9, so that only compressed data is being transmitted over network line 11. It will be apparent to one with skill in the art that any other feature designed to facilitate lower network traffic, and that is known in the art, could be employed in network 9 such as burst technology, fiber-optic lines, server-mirroring techniques and so on.[DK2] Because of the dynamic nature of networks, there may at times be workstations that cannot be accessed by the file server for environment update or workspace backup, or both. If a workstation can not be updated or backed up because it was perhaps off-line or failed during data transfer, that information is recorded in list 29 allowing the system to re-try the installation at that particular workstation at a later time, or notify the system manager of the problem. Fig. 2 is a pseudo code listing illustrating one example of a procedure according to an embodiment of the preset invention to update work environment. In this embodiment updates to individual work environments are performed when an update is done to the master copy or copies of work environments in file server 19. Generally, the system manager would have an access tool or workstation for the purpose of accessing file sever 19 and initiating changes. Referring to Fig. 2, the system (through execution of MR 14) checks for a change in a master in step 200. If a new revision is needed, then a revision counter is set and incremented in step 201. The system then retrieves information in list 29 in step 202, and determines the particular workstations that must targeted for the revision made in the master. Step 203 sets up an entry point for repetition of mirroring activity to be done until all workstations needing the update are successfully updated, or added to a list of not-accessible workstations. In step 204, targeted workstations are contacted. A first workstation is contacted the first time through the repetitive process, and a next workstation in order of ID no., and so forth. The new revision is sent in step 205. When the revision is completed at a particular workstation, the workstation replies, in step 206, that the revision was successful. List 29 is then updated to reflect the new revision in step 207. This process is repeated between steps 204 through 208 until all targeted workstations have been updated. List 29 containing all of the new updates is then saved and stored in step 209. After the process is complete, it may be that one or more workstations did not get updated. These workstations may be malfunctioning or off-line for repair, and so forth. Step 210 assesses the location and confirms the identifying information of such workstations, and alerts the system manager to the situation in step 211. The explicit example illustrated by Fig. 2 does not have a step for checking network traffic. In some embodiments, however, such a step is included, with a traffic level below a pre-programmed threshold as a condition to continue with update. There are also no steps shown for an administrator to set priority, or to set specific times for updates to be done. Such steps are included, however, in some embodiments, as described above. The code shown in Fig. 2 is pseudo code indicating functionality in a specific embodiment, and is meant for illustrative purposes only. It will be apparent to one with skill in the art that many specific programming languages could be used to implement the mirroring routines. It will also be apparent to one with skill in the art that there are many variations of configuration and steps that could be used to adapt the software to a particular network environment. For example, in one embodiment, manual steps could be integrated with automated steps where system manager interface might be desired. In another embodiment, the functions of the software could be wholly automated with events scheduled over a period of several days, etc. Fig. 3 is a pseudo code listing steps for backing up data generated at workstations. In step 300, a network traffic-detection feature of the software checks network traffic, and alerts the system when network traffic falls below a predetermined level, as previously described. In step 301 a new backup order is initiated. List 29 is accessed in step 302 and workstations are located and contacted. Backup repetition is initiated at step 303. In step 304 contact is made with a first or next workstation to start backing up it's workspace. This process, as mentioned above with reference to Fig. 1 is transparent to the user, meaning he or she can continue working and remain oblivious to the process. In one embodiment, a pop-up icon can signify to the user that backup is taking place, however, it is not required. At step 305 all marked files at the workstation contacted are accessed. At step 306 the files are stored in the appropriate associated section of memory 23 (Fig. 1). At step 307 list 29 is updated for the workstation in contact to index the backup rev. for that station. At step 308 control is sent back to step 303, unless all stations have been accessed, or did not respond. Generally whole files will be backed up in this process and stored in the server, however partial files may also be backed up to current status while a user is still working in them. This is an automated and ongoing process until network traffic should rise above a predetermined level at which time the backup procedure may halt, or finish just the work in progress. In step 309, list 29 is saved. As in the update procedure described with reference to Fig. 2, there may be one or more workstations that did not backup it's files successfully because they may have been off-line or under repair, etc. The system will confirm the location and identify information of those particular workstations in step 310, and alert the system manager in step 311. It is emphasized again here that the listing of Fig. 3 is just one example of how the backup system may work in embodiments of the invention. It will be apparent to one with skill in the art that there are many ways that the software of the present invention may be written and configured to adapt to a network environment without departing from the spirit and scope of the present invention. For example, the software could be implemented on a wide scale between two or more company networks that are in different locations but are connected to each other, such as in a cooperative company Intranet. This and other embodiments, that have already been described above, are possible. The invention in its several aspects is limited only by the scope of the claims which follow.

Claims: What is claimed is: 1. A data mirroring system for a network including one or more workstations and a file server, comprising: a backup component adapted for backing up work product data from the workstations to the file server as stored work product data at the one or more workstations changes; and an update component adapted for mirroring work environment from the file server to the one or more workstations as master copies of work environment are changed. 2. The system of claim 1 wherein one or both of the backup component and the update component are adapted to check network traffic level, and to execute only if traffic is at or below a pre-stored level. 3. The system of claim 1 wherein the backup and update components each execute on the file server. 4. The system of claim 1 wherein the backup component executes on each workstation and the update component executes on the file server. 5. The system of claim 1 wherein both components execute on the one or more workstations. 6. The system of claim 1 further adapted for maintaining a status list of backup and update status of all workstations on the network. 7. The system of claim 6 further adapted for tracking backup and update failure, and for presenting a notice of stations not served during a backup or update procedure. 8. A backup system for a network including one or more workstations and a file server, comprising: a traffic-level component adapted for checking network traffic to be at or below a pre-stored traffic threshold as a condition for initiating backup; and a data transfer component adapted for transmitting data from the one or more workstations to the file server during time periods wherein the traffic-level component determines traffic is at or below the threshold. 9. The backup system of claim 8 wherein the system executes on the file server. 10. The backup system of claim 8 wherein the system executes on each workstation. 11. The backup system of claim 8 further adapted for maintaining a status list of backup and update status of all workstations on the network. 12. The backup system of claim 11 further adapted for tracking backup failure, and for presenting a notice of stations not served during a backup procedure. 13. A work environment update system for a network including one or more workstations and a file server, comprising: a traffic-level component adapted for checking network traffic to be at or below a pre-stored traffic threshold as a condition for initiating updates; and a data transfer component adapted for transmitting data from the file server to the one or more workstations during time periods wherein the traffic-level component determines traffic is at or below the threshold. 14. The update system of claim 13 wherein the system executes on the file server. 15. The update system of claim 13 further adapted for maintaining a status list of update status of all workstations on the network. 16. The update system of claim 15 further adapted for tracking backup failure, and for presenting a notice of stations not served during a backup procedure. 17. A method for mirroring workspace and work environment data between a file server and workstations on a network, comprising steps of: (a) monitoring the file server for changes made in master work environment; (b) initiating update routines mirroring work environment from the file server to workstations upon sensing a change made in the master work environment; (c) monitoring workstations for changes made on workspace storage; and (d) initiating backups data transfer from the workstations to the file server upon sensing a change made in workspace storage. 18. The method of claim 17 further comprising a step for determining network traffic level is below a pre-stored level as a condition for backup or update. 19. The method of claim 17 further comprising steps for maintaining a status list of update and backup status for workstations on the network. 20. A non- volatile memory device characterized in that it contains recorded code for performing the steps of claim 16

Inventors: BIZZARRI MAURICE, BIZZARRI, MAURICE
Applicants: AWARD SOFTWARE INTERNATIONAL I, AWARD SOFTWARE INTERNATIONAL, INC.
Application year: 1998
Main classification: G06F13
IPC codes: G06F9, G06F11, G06F12, G06F13, H04L29