Patent Publication Number: US-2015067407-A1

Title: Electronic device and method for testing storage system

Description:
BACKGROUND 
     1. Technical Field 
     The embodiments of the present disclosure relate to an electronic device and a method for testing a storage system. 
     2. Description of Related Art 
     Before servers are shipped to customers, storage systems of the servers need to be tested. Usually, a storage system of a server having a storage capacity of 16GB may take twenty-five minutes to be tested. If a factory produces thousands of the servers, testing of such thousands of servers will take a lot of time. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of one embodiment of an electronic device including a storage test system. 
         FIG. 2  is a block diagram of one embodiment of function modules of the storage test system in  FIG. 1 . 
         FIG. 3  is a flowchart of one embodiment of a method for testing a storage system. 
         FIG. 4  is a diagram of one embodiment of adding each disk of the storage system into a binary tree. 
     
    
    
     DETAILED DESCRIPTION 
     The present disclosure, including the accompanying drawings, is illustrated by way of examples and not by way of limitation. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean “at least one.” 
     In general, the word “module,” as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions, written in a programming language. In one embodiment, the program language may be Java, C, or assembly. One or more software instructions in the modules may be embedded in firmware, such as in an EPROM. The modules described herein may be implemented as either software and/or hardware modules and may be stored in any type of non-transitory computer-readable medium or other storage device. Some non-limiting examples of non-transitory computer-readable medium include CDs, DVDs, flash memory, and hard disk drives. 
       FIG. 1  is a block diagram of one embodiment of an electronic device  1  including a storage test system  10 , a storage device  12 , at least one processor  14 . The electronic device  1  may be a desk computer, a notebook, a server, or other computer device. The storage device testing system  10  is used to automatically test a storage system  2  connected to the electronic device  1 . 
     In one embodiment, the storage device  12  (a non-transitory storage device) may be an internal storage system, such as a random access memory (RAM) for the temporary storage of information, and/or a read only memory (ROM) for the permanent storage of information. In some embodiments, the storage device  12  may be an external storage system, such as an external hard disk, a storage card, or a data storage medium. 
     The at least one processor  14  may include a processor unit, a microprocessor, an application-specific integrated circuit, and a field programmable gate array, for example. 
     In one embodiment, the storage test system  10  includes a plurality of function modules which include computerized codes or instructions that can be stored in the storage device  12  and executed by the at least one processor  14  to provide a method for testing a storage system. 
       FIG. 2  is a block diagram of one embodiment of function modules of the storage test system  10  in  FIG. 1 . In the embodiment, the storage test system  10  includes a numbering module  100 , a selection module  102 , a computing module  104 , a building module  106 , a test module  108 , and a determination module  110 . The modules may comprise computerized codes in the form of one or more programs that are stored in the storage device  12  and executed by the at least one processor  14  to provide functions for implementing the storage test system  10 . The functions of the function modules are illustrated in  FIG. 3  and described below. 
       FIG. 3  is a flowchart illustrating one embodiment of a method for testing the storage system  2 . Depending on the embodiment, additional steps may be added, others removed, and the ordering of the steps may be changed. 
     In step S 10 , the numbering module  100  numbers each disk of the storage system  2  in an order of memory addresses of the disks. In the embodiment, the storage system  2  includes a plurality of disks for storing computerized data. 
     In step S 11 , the selection module  102  randomly selects a disk of a number as a root node of a binary tree, defines the disks of the other numbers as child nodes of the binary tree, and adds each disk into the binary tree as the node of the binary tree according to the order of the numbers of the disks. As shown in  FIG. 4 , the disk of number  4  is defined as the root node of the binary tree. The disk of number  2  and the disk of number  6  are child nodes of the disk of number  4 , and the disk of number  5  and  7  are child nodes of the disk of number  6 . 
     In step S 12 , a computing module  104  computes a probability that nodes of each layer of the binary tree are completely added into the binary tree according to a predefined algorithm, where the predefined algorithm is used to reduce the probability of completely adding the nodes of each layer into the binary tree when a depth of the binary tree grows. In the embodiment, the predefined algorithm may be predefined as: the probability of completely adding the nodes of each level of the binary tree into the binary tree=1−0.04* a current depth of the binary tree. For example, the probability that the nodes of the first level of the binary tree are completely added into the binary tree=1−0.04*0=100%, the probability that the nodes of the second level of the binary tree are completely added into the binary tree=1−0.04*1=96%, and the probability that the nodes of the third level of the binary tree are completely added into the binary tree=1−0.04*2=92%. 
     In step S 13 , the building module  106  adds each disk into the binary tree as the node of each level of the binary tree according to the probability that the nodes of each level are completely added into the binary tree. For example, the probability that the nodes of the first level of the binary tree are completely added into the binary tree is 100%, the disk of number 4 is added into the first level of the binary tree. The probability that the nodes of the second level of the binary tree are completely added into the binary tree is 96%, the disk of number 2 and 6 are added into the second level of the binary tree. The probability that the nodes of the third level of the binary tree are completely added into the binary tree is 92%, the disk of number 5 and 6 are added into the third level of the binary tree, but the disk of number 1 and 3 in the third level are not built into the binary tree. In the above example, it is assumed that the probability of completely adding the second level of the binary tree is greater than that of the third level of the binary tree, and the nodes of the third level of the binary tree are not completely added into the binary tree. 
     In step S 14 , the test module  108  tests each disk when the disk is added into the binary tree. In the embodiment, each disk is tested by a traditional way manufacturers usually test their manufactured disk for compliance with requirements of customers. In the embodiment, a speed, temperature, or any other parameters of each disk are tested. 
     In step S 15 , the determination module  110  determines if the test of the disk currently added into the binary tree is successful. 
     In step S 16 , the test module  108  stops adding each disk into the binary tree if the test of the disk currently built into the binary tree is unsuccessful. 
     In step S 17 , the test module  108  continues adding each disk into the binary tree as the node of the binary tree, and tests each disk added into the binary tree when the disk is added into the binary tree, if the test of the each disk added into the binary tree is successful. 
     Although certain disclosed embodiments of the present disclosure have been specifically described, the present disclosure is not to be construed as being limited thereto. Various changes or modifications may be made to the present disclosure without departing from the scope and spirit of the present disclosure.