Patent Publication Number: US-9842029-B2

Title: Electronic device, method and storage medium

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims the benefit of U.S. Provisional Application No. 62/138,252, filed Mar. 25, 2015, the entire contents of which are incorporated herein by reference. 
    
    
     FIELD 
     Embodiments described herein relate generally to an electronic device, a method and a storage medium. 
     BACKGROUND 
     In recent years, personal computers (PCs) which employees use for business have been monitored and managed through a network in many companies. One of the items by which the PCs are monitored and managed is to back up data in case of failure of, for example, hard disk drives (HDDs) mounted in the PCs. 
     If a large number of PCs to be monitored and managed exist, a large-capacity storage server is required. On the other hand, if PCs each communicate with other PCs voluntarily and data is mutually backed up between the PCs to dispense with a storage server, traffic volume on a network increases. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       A general architecture that implements the various features of the embodiments will now be described with reference to the drawings. The drawings and the associated descriptions are provided to illustrate the embodiments and not to limit the scope of the invention. 
         FIG. 1  is an exemplary first illustration for explaining a backup service provided by an electronic device of a first embodiment. 
         FIG. 2  is an exemplary second illustration for explaining the backup service provided by the electronic device of the first embodiment. 
         FIG. 3  is an exemplary third illustration for explaining the backup service provided by the electronic device of the first embodiment. 
         FIG. 4  is an exemplary fourth illustration for explaining the backup service provided by the electronic device of the first embodiment. 
         FIG. 5  is an exemplary illustration showing a structure example of the electronic device of the first embodiment. 
         FIG. 6  is an exemplary illustration showing an example of a functional block of a backup service program operating on the electronic device of the first embodiment. 
         FIG. 7  is an exemplary first flowchart showing an example of an operating procedure related to the backup service of the electronic device of the first embodiment. 
         FIG. 8  is an exemplary second flowchart showing an example of the operating procedure related to the backup service of the electronic device of the first embodiment. 
         FIG. 9  is an exemplary third flowchart showing an example of the operating procedure related to the backup service of the electronic device of the first embodiment. 
         FIG. 10  is an exemplary first illustration for explaining an outline of a backup service provided by an electronic device of a second embodiment. 
         FIG. 11  is an exemplary second illustration for explaining the outline of the backup service provided by the electronic device of the second embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     Various embodiments will be described hereinafter with reference to the accompanying drawings. 
     In general, according to one embodiment, an electronic device includes a receiver and a processing circuit. The receiver is configured to receive first data related to operating statuses of storage from external devices connected through a network. The processing circuit is configured to control the external devices to save data stored in a first area in the storage of a first external device on the storage of each of two or more second external devices based on the first data received by the receiver. 
     First Embodiment 
     A first embodiment will first be described. 
     An electronic device of the present embodiment is implemented as, for example, a server device which provides a backup service of data in PCs which employees use for business in a company, etc. An outline of the backup service provided by the electronic device of the present embodiment will first be described with reference to  FIG. 1 ,  FIG. 2 ,  FIG. 3  and  FIG. 4 . Here, the electronic device of the present embodiment is referred to as a server device  1 , and PCs whose data is backed up by the backup service provided by the electronic device of the present embodiment are referred to as client devices  2 . It should be noted that the client devices  2  are plural, and thus may be referred to as a client device  2   a , a client device  2   b , etc., to be distinguishable from each other. In other words, the client devices  2  are a generic name of the client device  2   a , the client device  2   b , etc. 
     As shown in  FIG. 1 , the server device  1  (which is the electronic device of the present embodiment) is connected to the client devices  2  through a network A. The network A may be the Internet or a local area network (LAN). In addition, the network A may be a combination of the Internet and a LAN. 
     In the client devices  2 , HDDs are contained, and further, client software (programs) is installed. The client software has a function of collecting data (status data) on operating statuses of the HDDs and periodically transmitting the data to the server device  1 . The status data includes, for example, the number of accesses, the number of times an error occurs, and the number of times a magnetic head retracts with the detection of a shock. Although not described herein, the client software can collect various items of data on, not only the HDDs, but various components in the client devices  2 . 
     On the other hand, in the server device  1 , a backup service program which will be described later is installed. Firstly, the backup service program analyzes status data transmitted from the client devices  2 , and detects a symptom of failure of the client devices  2 . As the algorithm for detecting a symptom of failure, various algorithms, for example, an algorithm in which the incidence of errors (the number of times an error occurs/the number of accesses) in the last certain period exceeds a reference value, can be applied. 
     Secondly, if a symptom of failure of an HDD of a certain client device  2  is detected, the backup service program controls the client device  2  whose data is to be backed up and two or more other client devices  2  to be backup destinations respectively to back up data in an area predesignated as a backup target (backup target area) in the HDD to HDDs of the two or more other client devices  2  in a distributed manner. 
     Here, let us assume the case where the server device  1  (backup service program) detects a symptom of failure of an HDD of the client device  2   a . The server device  1  assigns an identification number to each of the client devices  2  for which the backup service is provided. For example, “1” is assigned to the client device  2   a  as an identification number. In addition, a number incremented by one is assigned to each of the client device  2   b  and the other client devices  2  as an identification number. The server device  1  logically connects the client devices  2  in order of identification number and logically connects the client device  2  of the largest identification number and the client device  2  of the smallest identification number, regarding the client devices  2  as nodes on a ring. 
     If a symptom of failure of the HDD of the client device  2   a  is detected, the server device  1  first divides a backup target area in the HDD into a predetermined number of partial areas. The server device  1  manages which area in the HDD of each of the client devices  2  is designated as a backup target area. In addition, it is herein assumed that data in the backup target area is backed up to other three client devices  2  in a distributed manner. That is, the server device  1  divides a backup target area of an HDD for which a symptom of failure is detected into three partial areas. 
     The server device  1  then determines client devices  2  to be respective backup destinations of data in the three partial areas. For example, the server device  1  searches the ring in order of identification number from the client device  2   a  (for which a symptom of failure of the HDD is detected), and finds other three client devices  2  for which a symptom of failure of HDDs is not detected. It is herein assumed that the client devices  2   b ,  2   c , and  2   d  are determined as the backup destinations as shown in  FIG. 1 . Then, the server device  1  requests the client device  2   a  to transmit data to the client devices  2   b ,  2   c , and  2   d  while requesting the client device  2   b ,  2   c , and  2   d  to receive and save data transmitted from the client device  2   a . Requests to the client device  2   a  include an instruction on which area&#39;s data in the HDD should be transmitted. It is therefore unnecessary for the client devices  2  to be aware of which area in the HDD is designated as a backup target area. The designation of a backup target area, for example, may be carried out in each of the client devices  2  through a user interface provided by the client software and be notified to the server device  1 , or may be collectively carried out in the server device  1  through a user interface provided by the backup service program. The server device  1  manages a backup status of data between the client devices  2 . That is, the server device  1  performs management so that data in the backup target area in the HDD of the client device  2   a  is saved on the HDDs of the client devices  2   b ,  2   c , and  2   d  in a distributed manner. Needless to say, it is also possible to transfer data between the client devices  2  with the server device  1  interposed therebetween instead of directly transmitting and receiving data between the client devices  2 . 
     Next, with reference to  FIG. 2 , let us assume the case where the server device  1  detects a symptom of failure of the HDD of the client device  2   b  to which data of the client device  2   a  is backed up. 
     As in the case where a symptom of failure of the HDD of the client device  2   a  is detected, if a symptom of failure of the HDD of the client device  2   b  is detected, the server device  1  divides a backup target area in the HDD for which a symptom of failure is detected into three partial areas, determines client devices  2  to be respective backup destinations of data in the three partial areas, and backs up the data in the backup target area in a distributed manner. At the same time, the server device  1  also divides data which is backed up (which is herein data of the HDD of the client device  2   a  and will be hereinafter referred to as backup data) into three, and transfers the divided backup data to the other client devices  2 . It should be noted that  FIG. 2  shows only the destinations of the backup data of the HDD of the client device  2   a.    
     Next, with reference to  FIG. 3 , let us assume the case where the server device  1  detects that the client device  2   b  (for which a symptom of failure of the HDD is not detected) to which the data of the client device  2   a  is backed up is separated from the network A for a certain period or more. 
     The server device  1 , for example, may search the ring to circularly monitor whether or not the client devices  2  are connected to the network A, or may determine that a client device  2  which ceases to transmit status data is separated from the network A. As described above, the server device  1  manages the backup status of data between the client devices  2 , and thus can recognize that data of the client device  2   a  has been backed up to the client device  2   b  which is detected being separated from the network A. Then, the server device  1  determines a new backup destination of the data which has been backed up, and causes the client devices  2  to transmit and receive the data to and from each other. At this time, it suffices that the server device  1  regards one of the three partial areas into which the backup target area in the HDD is divided when a symptom of failure of the HDD of the client device  2   a  is detected, more specifically, a partial area whose data is backed up to the client device  2   b , as a backup target area at this time. 
     In this manner, the server device  1  achieves backing up data of a client device  2  in a distributed manner to two or more other client devices  2  without the need for a large-capacity storage server by a simple algorithm of dividing a backup target area, searching the ring in order of identification number to find backup destinations, and backing up data in the backup target area in a distributed manner. This can be achieved because the server device  1  manages the backup status of data between the client devices  2 . 
     If data in a backup target area in an HDD of a client device  2  is restored to the HDD of the client device  2 , it suffices that the server device  1  collects and combines respective items of backup data from other client devices  2  which are backup destinations, and transmits them to the client device  2 . 
     In addition, since a backup process is carried out upon detection of a symptom of failure of an HDD and data is transmitted and received between the client devices  2 , traffic volume on the network A does not increase. 
     Next, with reference to  FIG. 4 , let us assume the case where the server device  1  detects that a new client device  2  is added to the network A, or detects that a client device  2  which has been separated from the network A returns to the network A. The server device  1 , for example, can detect the addition and the return of a client device  2  by a connection request from the client device  2  transmitted through the network A. 
     Here, the case where that the client device  2   b  which has been separated from the network A returns to the network A is assumed. It is assumed that a symptom of failure of the HDD of the client device  2   a  in  FIG. 4  is not detected. 
     Upon detecting the return of the client device  2   b  to the network A, the server device  1  examines whether or not backup data is saved on, for example, a client device  2  (the client device  2   a  herein) one before the client device  2   b  on the ring, of client devices  2  for which a symptom of failure of HDDs are not detected. If the backup data is saved, the server device  1  moves, for example, half the backup data to the client device  2   b . More specifically, the server device  1  causes the client devices  2  to transmit and receive data to and from each other. 
     In this manner, the server device  1  also achieves leveling out a load of backup between the client devices  2  by a simple algorithm based on an identification number of an added or a returning client device  2 . This also can be achieved because the server device  1  manages the backup status of data between the client devices  2 . 
       FIG. 5  shows a structure example of the server device  1 . 
     As shown in  FIG. 5 , the server device  1  comprises a CPU  11 , a main memory  12 , a nonvolatile memory  13 , and a communication device  14 . 
     The CPU  11  is a device for causing the server device  1  to operate variously by loading various programs stored in the nonvolatile memory  13  to the main memory  12  and executing them. One of the various programs executed by the CPU  11  is a backup service program  100 . The backup service program  100  is a program for causing the server device  1  to perform a process related to the provision of the above-described backup service. The communication device  14  is a device for communicating with the client devices  2  through the network A. 
       FIG. 6  shows an example of a functional block of the backup service program  100  (operating on the server device  1 ). 
     As shown in  FIG. 6 , the backup service program  100  comprises a data collector  101 , an analyzer  102 , a backup manager  103 , a client controller  104 , and a database (DB)  105 . 
     The data collector  101  is a module which receives status data transmitted from the client devices  2  and stores it in the DB  105 . The analyzer  102  is a module which analyzes status data stored in the DB  105  and detects a symptom of failure of the HDDs of the client devices  2 . The backup manager  103  is a module which determines data transfer between the client devices  2  that should be carried out to back up data in a backup target area in an HDD to other client devices  2  in a distributed manner, if a symptom of failure of the HDD of any of the client devices  2  is detected by the analyzer  102 . The client controller  104  is a module which controls the client devices  2  to cause them to carry out data transfer determined by the backup manager  103 . The DB  105  is an area in the nonvolatile memory  13  which the backup service program  100  secures for data storage, and stores, for example, data for managing the backup status of data between the client devices  2  as well as status data transmitted from the client devices  2 . 
     In addition, the client controller  104  detects the separation from the network A and the addition (or return) to the network A of the client devices  2 . If the client controller  104  detects the separation of any of the client devices  2 , the backup manager  103  determines data transfer between the client devices  2  that should be carried out to back up backup data stored in an HDD of the client device  2  to other client devices  2  in a distributed manner. In addition, if the client controller  104  detects the addition (or return) of a client device  2 , the backup manager  103  determines data transfer between the client devices  2  that should be carried out to level out a load of backup between the client devices  2 . Further, the client controller  104  controls the client devices  2  to cause them to carry out data transfer determined by the backup manager  103 . 
       FIG. 7 ,  FIG. 8  and  FIG. 9  are exemplary flowcharts showing examples of an operating procedure related to the backup service of the server device  1  (backup service program  100 ). 
     The server device  1  collects status data transmitted from the client devices  2  (block A 1  of  FIG. 7 ), and analyzes the collected status data (block A 2  of  FIG. 7 ). If a symptom of failure of an HDD of any of the client devices  2  is detected through the analysis (Yes in block A 3  of  FIG. 7 ), the server device  1  performs a process for backing up data in a backup target area in the HDD of the client device  2  to HDDs of two or more other client devices  2  in a distributed manner (block A 4  of  FIG. 7 ). It should be noted that the backup target area at this time can include an area where data (backup data) in backup target areas in the HDDs of the other client devices  2  is saved. 
     In addition, if a client device  2  which is separated from the network A for a certain period or more is detected (Yes in block B 1  of  FIG. 8 ), the server device  1  examines whether or not data (backup data) in a backup target area in an HDD of another client device  2  is saved on an HDD of the client device  2  (block B 2  of  FIG. 8 ). If the data is saved (Yes in block B 2  of  FIG. 8 ), the server device  1  performs a process for backing up the data to HDDs of other client devices  2  in a distributed manner from the HDD of the client device  2  from which the data is backed up (block B 3  of  FIG. 8 ). 
     In addition, if the addition or return to the network A of a client device  2  is detected (Yes in block C 1  of  FIG. 9 ), the server device  1  examines whether or not data (backup data) in a backup target area in an HDD of another client device  2  is saved on, for example, a client device  2  one before the client device  2  on the ring (block C 2  of  FIG. 9 ). If the data is saved (Yes in block C 2  of  FIG. 9 ), the server device  1  performs a process for moving, for example, half the data to the client device  2  (block C 3  of  FIG. 9 ). 
     As described above, the electronic device of the present embodiment achieves backing up data in case of failure of HDDs, etc., mounted in a large number of PCs to be monitored and managed without the need for a storage server and without increasing traffic volume on the network. 
     Second Embodiment 
     A second embodiment will be next described. 
     As in the first embodiment, an electronic device of the present embodiment is also is implemented as, for example, a server device which provides a backup service of data in PCs which employees use for business in a company, etc. Because the structure of the electronic device (server device) of the present embodiment is the same as that of the server device  1  of the first embodiment, an explanation thereof will be omitted. In addition, also in the electronic device (server device) of the present embodiment, a backup service is provided by a backup service program. Because a functional block thereof is the same as that of the backup service program  100  of the first embodiment, an explanation thereof will be omitted. In the following description, the same components, etc., as those of the first embodiment will be given the same numbers as those of the first embodiment. An outline of the backup service provided by the electronic device of the present embodiment will be described with reference to  FIG. 10  and  FIG. 11 . 
     It is now assumed that a server device  1  (backup service program) detects a symptom of failure of an HDD of a client device  2   a . At this time, the server device  1  divides a predesignated area (backup target area) in the HDD into a predetermined number of partial areas. Further, the server device  1  backs up data items in the respective areas in a distributed manner, such that they exist redundantly in HDDs of a predefined number of client devices  2 . 
     For example, if it is assumed that a backup target area is divided into three and each partial area is backed up to two places, the server device  1  searches a ring in order of identification number from the client device  2   a  (for which a symptom of failure of the HDD is detected), and first backs up data in a partial area [1] to a client device  2   b , data in a partial area [2] to a client device  2   c , and data in a partial area [3] to a client device  2   d . In addition, the server device  1  then backs up data in the partial area [1] to a client device  2   e , data in the partial area [2] to the client device  2   b , and data in the partial area [3] to the client device  2   c . It should be noted that if data in the same partial area is to be backed up to one client device  2  in a process of searching the ring and backing up data in partial areas, the server device  1  skips the client device  2 , and backs up data in the partial area to the next client device  2 . 
     Next, with reference to  FIG. 11 , let us assume that the case where the server device  1  detects a symptom of failure of an HDD of the client device  2   b  to which data of the client device  2   a  is backed up or detects that the client device  2   b  is separated from a network A for a certain period or more. 
     The server device  1  of the present embodiment also manages a backup status of data between the client devices  2 . That is, the server device  1  can recognize that data of the client device  2   a  is backed up to the client device  2   b . Thus, the server device  1  backs up data in the backup target area in the HDD of the client device  2   a  again, excluding the client device  2   b  from the ring. In other words, backup data is relocated. If a symptom of failure of the HDD of the client device  2   b  is detected, the server device  1  also backs up data in a backup target area in the HDD of the client device  2   b  to client devices  2   c ,  2   d , and  2   e  (excluding the client devices  2   a  and  2   b  from the ring) redundantly and in a distributed manner. 
     In addition, for example, if the client device  2   b  returns to the network A, the server device  1  examines whether or not backup data of another client device  2  is saved on, for example, a client device  2  (the client device  2   e  herein) one before the client device  2   b  on the ring, of client devices  2  for which a symptom of failure of HDDs is not detected. The server device  1 , which manages the backup status of data between the client devices  2 , can recognize that data of the client device  2   a  is backed up to the client device  2   e . Thus, the server device  1  backs up data in the backup target area of the HDD of the client device  2   a  again, adding the client device  2   b  to the ring. In other words, backup data is relocated. This example thereby returns to the state of  FIG. 10 . 
     In this manner, in the present embodiment, the server device  1  achieves backing up data of a client device  2  to two or more other client devices  2  in a distributed manner and further with redundancy by a simple algorithm of dividing a backup target area, searching the ring in order of identification number, and backing up data items in respective partial areas. In addition, backup data is relocated on the occurrence of various events such as the detection of a symptom of failure of an HDD on which backup data of another client device  2  is saved, the detection of the separation from the network A of a client device  2  equipped with an HDD on which data of another client device  2  is saved, and the addition of a new client device  2  to the network  2 . Accordingly, the complication of an algorithm related to handling of backup data (accompanying backing up data redundantly) is avoided, and a load of backup is leveled out between the client devices  2  at the same time. 
     In addition, also in the present embodiment, since data is transmitted and received between the client devices  2  only on the occurrence of various events including the detection of a symptom of failure of an HDD, traffic volume on the network A does not increase. 
     As described above, the electronic device of the present embodiment achieves backing up data with redundancy in case of failure of HDDs, etc., mounted in a large number of PCs to be monitored and managed without the need for a storage server and without increasing traffic volume on the network. 
     Various functions disclosed in the embodiments may be each implemented by a processing circuit. Examples of the processing circuit include a programmed processor such as a central processing unit (CPU). The processor executes each of the disclosed functions by executing a program stored in a memory. The processor may be a microprocessor including an electric circuit. The examples of the processing circuit also include a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a microcontroller, a controller, and other electric circuit components. 
     Because various processes of the embodiments can be implemented by a computer program, the same advantages as those of the embodiments can be easily achieved by installing the computer program in a normal computer through a computer-readable storage medium storing the computer program and executing the computer program. 
     The various modules of the systems described herein can be implemented as software applications, hardware and/or software modules, or components on one or more computers, such as servers. While the various modules are illustrated separately, they may share some or all of the same underlying logic or code. 
     While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.