In computers and computer networks, a configuration often refers to the specific hardware and software details, related to devices that are attached thereto, the capacity or capability of the system, and exactly of what the system is composed. In installing hardware and software, configuration can entail the methodical process of defining options that are provided. In particular, hardware configuration involves defining options related to hardware details and system resource settings allotted for a specific device.
In conventional practice, technicians can be employed to perform configurations. The technicians can be provided with passwords that are used for configuration purposes. However, conventional configuration processes can be undesirable as such processes can present significant risks.
Risks involved can include, the loss of passwords and the access to passwords by systems or personnel (rack and stack people) in the installation process who are different from the people involved in sales or on-going administration. Moreover, passwords don't lend themselves to simple re-installation and re-configuration. For example, in conventional configuration processes, re-installation and re-configuration typically require people who are different from those involved in the initial installment and configuration to re-issue passwords and/or re-initialize the system to stem states.
It is in this context in which the present embodiments arise.
Conventional configuration processes can present significant risks such as a loss of the initial passwords and the access to the passwords by undesired systems or people. A method for storage array self-configuration is disclosed that addresses the aforementioned shortcomings of conventional technologies. However, the claimed embodiments are not limited to implementations that address any or all of the aforementioned shortcomings. The method includes accessing an authenticated token that comprises encrypted configuration data for a storage array, decrypting the configuration data, and based on the configuration data, executing with configuration executing components of the storage array a configuration of the storage array. The configuration is executed responsive to an authentication of the token. The method enables an avoidance of the significant risks that are posed by events such as a loss of a password, and, circumstances such as the accessibility to passwords by systems or people not desired to have such access.
Other aspects and advantages of the embodiments will become apparent from the following detailed description taken in conjunction with the accompanying drawings which illustrate, by way of example, the principles of the described embodiments.
The described embodiments and the advantages thereof may best be understood by reference to the following description taken in conjunction with the accompanying drawings. These drawings in no way limit any changes in form and detail that may be made to the described embodiments by one skilled in the art without departing from the spirit and scope of the described embodiments.
In the following detailed description, numerous specific details such as specific method orders, structures, elements, and connections have been set forth. It is to be understood however that these and other specific details need not be utilized to practice embodiments of the present invention. In other circumstances, well-known structures, elements, or connections have been omitted, or have not been described in particular detail in order to avoid unnecessarily obscuring this description.
Some portions of the detailed descriptions, which follow, are presented in terms of procedures, steps, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, computer executed step, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals of a computer readable storage medium and are capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
References within the specification to “one embodiment” or “an embodiment” are intended to indicate that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. The appearance of the phrase “in one embodiment” in various places within the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “accessing” or “decrypting” or “executing” or the like, refer to the action and processes of a computer system, or similar electronic computing device that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories and other computer readable media into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Still referring to
An automated self-configuration of storage array 103 can be initiated by technician 113. As noted above the embodiments may be extended to a re-start of the storage array after a power loss or other type of failure, as well as an initial configuration. An application that facilitates the initiation of such an automated self-configuration of storage array 103 can be accessed (e.g., downloaded onto electronic device 111) by technician 113 from remote host 117. In one embodiment, the application can be accessed from a website or a cloud assistance service. An identifier of the array that is to be configured can be selected by technician 113 after login to remote host 117 in some embodiments. Configuration data corresponding to the selected array can then be obtained and when the array has been racked and stacked, technician 113 can establish a connection between storage array 103 and electronic device 111. An inventory of storage array 103 can be obtained with the option to upload configuration data. In one embodiment, when the configuration data is uploaded and executed by storage array 103, the storage array can report a pass/fail condition through an application executing on electronic device 111. The connection to storage array 103 may be through an audio jack connection of the storage array and the electronic device 111, however, alternative connections that are wired or wireless may be integrated with the embodiments. In some embodiments the electronic device is a cellular phone, however, electronic device 111 may be any portable electronic device, such as a tablet, laptop, etc. It should be appreciated that the mobile electronic device substitutes for a “crash cart” and eliminated the need to directly connect a monitor and keyboard of the “crash cart” directly to the server or device being configured. It should be further appreciated that audio jack 109 is being utilized as a data bus and not a peripheral bus. Thus, utilization of audio jack 109 in this manner enables system configuration via the audio jack, secure identification through the audio jack, utilizing an audio tunnel in multi-factor identification, separate control and data channels over an audio connection, e.g., use of the four conductor TRRS connector, network tunnel configuration over an audio tunnel, among other applications.
Electronic device 111 is used to access configuration data from remote host 117 (or from another source such as a website or cloud assistance service of the provider of the storage array or rack mounted appliance as discussed above) and to transmit the configuration data via a token, to system 101. As mentioned above, electronic device 111 can include any devices suitable for receiving and transmitting data. The token may be authenticated through any known authentication process. For example, the authentication of the token may be a single factor or a multiple factor authentication process in some embodiments. In some embodiments the token may be encrypted and after the token has been decrypted, the configuration data that is carried by the token can be used to configure storage array 103. The configuration data can be encrypted locally (on electronic device 111) or the configuration data can be encrypted before being accessed by electronic device 111. System 101 accesses the authenticated token that includes the configuration data for storage array 103 and executes a configuration of storage array 103 utilizing configuration executing components of system 101. System 101 can decrypt the configuration data through decryption logic contained on storage array 103. In one embodiment, the execution of the configuration of storage array 103 can be automatically initiated in response to the authentication of the token.
The authenticated token includes encrypted data that determines a level of access to the storage array (e.g., role based access to the storage array). That is, after the token is authenticated, role based authorization occurs in some embodiments. For example, various levels of access such as an administrator having full access to a very limited type of access are able to be provided through the embodiments. The level of access for a user may be referred to as defining a role for a user. In some embodiments, a role may contain privileges that define a set of actions that can be performed within an organization, i.e., the privileges can define the access level for the role. For example, a salesperson role is assigned a set of privileges that are relevant to the performance of the tasks defined for that role. Similarly, a human resources role or Information Technology role may be assigned certain privileges. It should be appreciated that in some embodiments a user may be assigned to one or more roles. In one embodiment, the configuration data and the data that determines the level of access to the storage array are decryptable together or separately. The accessing of the token from a portable token acquiring and delivery system (e.g., a portable electronic device) may be triggered by detecting when the token is within a predetermined range of the storage array 103. In one embodiment, the accessing includes receiving the authenticated token via an audio jack 109. Thus, the embodiments may utilize the audio jack 109 to transmit the encrypted configuration data that determines a level of access for a technician performing the configuration. In one embodiment, the token is a temporal token and expires after a predetermined period of time. The configuration process may be updatable based on information included in the configuration data is some embodiments. For example, the configuration process may determine if revisions to the configuration have been applied and whether additional updates to the configuration are necessary by checking with the remote host or through the cloud assistant service. If a later revision or update is available, the configuration could be updated as part of the configuration process. Referring again to
Still referring to
Access determining component 205, which is optional, determines the level of access that is granted to the data storage array. In one embodiment, the level of access to the data storage array can be based on encrypted data associated with the token that indicates a level of access that should be granted for a particular user or technician. The level of access that is granted can range from limited access, e.g., a rack and stack employee, to unlimited access, e.g., an administrator. In one embodiment, the level of access can be role based (the role that an individual has determines his/her level of access as mentioned above). It should be appreciated that the aforementioned components of system 101 can be implemented in hardware or software or in a combination of both, e.g., as firmware. In one embodiment, components and operations of system 101 can be encompassed by components and operations of one or more computer components (e.g., data storage array 103). In another embodiment, components and operations of system 101 can be separate from the aforementioned one or more computer components but can operate cooperatively with components and operations thereof.
It should be appreciated that the methods described herein may be performed with a digital processing system, such as a conventional, general-purpose computer system. Special purpose computers, which are designed or programmed to perform only one function may be used in the alternative.
Display 411 is in communication with CPU 401, memory 403, and mass storage device 407, through bus 405. Display 411 is configured to display any visualization tools or reports associated with the system described herein. Input/output device 409 is coupled to bus 405 in order to communicate information in command selections to CPU 401. It should be appreciated that data to and from external devices may be communicated through the input/output device 409. CPU 401 can be defined to execute the functionality described herein to enable the functionality described with reference to
Detailed illustrative embodiments are disclosed herein. However, specific functional details disclosed herein are merely representative for purposes of describing embodiments. Embodiments may, however, be embodied in many alternate forms and should not be construed as limited to only the embodiments set forth herein. It should be appreciated that while the embodiments are described with regard to a storage array, the embodiments may be extended to any device having to be configured for installation or reconfigured and is not limited to a storage array.
It should be understood that although the terms first, second, etc. may be used herein to describe various steps or calculations, these steps or calculations should not be limited by these terms. These terms are only used to distinguish one step or calculation from another. For example, a first calculation could be termed a second calculation, and, similarly, a second step could be termed a first step, without departing from the scope of this disclosure. As used herein, the term “and/or” and the “/” symbol includes any and all combinations of one or more of the associated listed items.
As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises”, “comprising”, “includes”, and/or “including”, when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. Therefore, the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting.
It should also be noted that in some alternative implementations, the functions/acts noted may occur out of the order noted in the figures. For example, two figures shown in succession may in fact be executed substantially concurrently or may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
Although the method operations were described in a specific order, it should be understood that other operations may be performed in between described operations, described operations may be adjusted so that they occur at slightly different times or the described operations may be distributed in a system which allows the occurrence of the processing operations at various intervals associated with the processing.
Various units, circuits, or other components may be described or claimed as “configured to” perform a task or tasks. In such contexts, the phrase “configured to” is used to connote structure by indicating that the units/circuits/components include structure (e.g., circuitry) that performs the task or tasks during operation. As such, the unit/circuit/component can be said to be configured to perform the task even when the specified unit/circuit/component is not currently operational (e.g., is not on). The units/circuits/components used with the “configured to” language include hardware—for example, circuits, memory storing program instructions executable to implement the operation, etc. Reciting that a unit/circuit/component is “configured to” perform one or more tasks is expressly intended not to invoke 35 U.S.C. 112, sixth paragraph, for that unit/circuit/component. Additionally, “configured to” can include generic structure (e.g., generic circuitry) that is manipulated by software and/or firmware (e.g., an FPGA or a general-purpose processor executing software) to operate in manner that is capable of performing the task(s) at issue. “Configured to” may also include adapting a manufacturing process (e.g., a semiconductor fabrication facility) to fabricate devices (e.g., integrated circuits) that are adapted to implement or perform one or more tasks.
The foregoing description, for the purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the embodiments and its practical applications, to thereby enable others skilled in the art to best utilize the embodiments and various modifications as may be suited to the particular use contemplated. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.