Configuring Quorum Components on Network Storage

By deploying quorum components across geographically dispersed network storages using virtual machines, the solution addresses the challenge of zero data loss and rapid recovery, enhancing data storage resilience.

JP2025502231AActive Publication Date: 2025-01-24HITACHI VANTARA LLC
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2024541886
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2022-02-04
Publication Date
2025-01-24
Estimated Expiration
2042-02-04

AI Technical Summary

Technical Problem

Existing data storage solutions struggle to achieve zero data loss and minimize extended service outages during disasters, especially as businesses increasingly rely on automated systems for data recovery.

Method used

Implementing a quorum component across geographically dispersed network storages, using virtual machines to replicate data and manage quorum information, thereby reducing the risk of data loss and facilitating rapid recovery.

Benefits of technology

This approach significantly reduces the likelihood of data loss and service outages by automating the configuration of quorum components, minimizing user errors, and ensuring efficient data replication across remote storage systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025502231000001_ABST
    Figure 2025502231000001_ABST
Patent Text Reader

Abstract

In some examples, a computing device of the first network storage receives a virtual machine image and executable instructions for creating quorum components of the second and third network storages that replicate data. The computing device implements the virtual machine on the computing device. Further, the computing device executes the executable instructions based on implementing the virtual machine to create a logical volume on the storage device and create a target volume in the logical volume for receiving quorum information from the second and / or third network storage. A connection is established between the virtual machine and the second and third network storages for the virtual machine to receive the quorum information. The virtual machine stores the quorum information in at least one target volume.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to the field of data storage. [Background technology]

[0002] Organizations and other entities may require storage capabilities that minimize the risk of data loss. For example, in the event of a disaster, an organization may lose both data and access to the data, and thus the ability to function. Historically, storage solutions have focused on reducing the time required to recover lost data from failed systems. However, organizations are now under considerable pressure to implement recovery solutions that have a very high probability of zero data loss. Furthermore, as business transactions are increasingly being conducted entirely by computer, it becomes more difficult to implement typical business procedures to manually recover lost data after a disaster. For many organizations, these risks are no longer acceptable. As a result, reducing the likelihood of permanent data loss and / or extended service outages has become a business priority. Summary of the Invention [Means for solving the problem]

[0003] In some implementations, the computing device of the first network storage receives a virtual machine image and executable instructions for creating quorum components of the second network storage and the third network storage that replicate data. The computing device implements a virtual machine on the computing device based on the virtual machine image. Further, based on implementing the virtual machine, the computing device executes the executable instructions to create a logical volume on a storage device associated with the computing device, and to create at least one target volume in the logical volume for receiving quorum information from the second network storage and / or the third network storage. A connection is established between the virtual machine and the second network storage and the third network storage for the virtual machine to receive the quorum information. The virtual machine stores the quorum information in the at least one target volume. [Brief description of the drawings]

[0004] The detailed description will be described with reference to the accompanying drawings, in which the left-most digit of a reference number identifies the drawing in which the reference number first appears. Use of the same reference number in different drawings indicates similar or identical items or features.

[0005] [Figure 1] FIG. 1 illustrates an example architecture of a system capable of storing data across multiple network storages utilizing a quorum component according to some implementations.

[0006] [Diagram 2] FIG. 2 is a flow diagram illustrating an example process that may be performed to configure a quorum component on a network storage according to some implementations.

[0007] [Diagram 3]FIG. 3 is a flow diagram illustrating an example process involving interaction with a quorum component according to some implementations.

[0008] [Figure 4] FIG. 4 illustrates an example user interface that may be used to configure the quorum component according to some implementations.

[0009] [Diagram 5] FIG. 5 illustrates selected components of an example network storage configuration with a quorum component according to some implementations.

[0010] [Figure 6] FIG. 6 illustrates selected components of an example network storage configuration that performs replication according to some implementations.

[0011] [Figure 7] FIG. 7 illustrates example selected components of one or more service computing devices that may be used to implement some of the functionality of the systems described herein.

[0012] [Figure 8] FIG. 8 illustrates selected example components of a management device according to some implementations. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0013] Some implementations herein are directed to techniques and configurations for deploying virtual machines on remote network storage and automatically configuring the virtual machines to provide a quorum component for use in data replication. For example, the techniques herein provide a fast and efficient process that can significantly reduce or eliminate user errors in remotely deploying and configuring quorum components. Additionally, some examples provide a user interface that a user can utilize to create and delete quorum components, as well as to perform various other operations related to quorum components.

[0014] In some examples, the one or more service computing devices utilize virtual storage including multiple network storages with underlying physical storage systems performing asynchronous or synchronous data replication between the network storages. For example, the first network storage may include a first physical storage system located at a first site in a first geographic location. The second physical storage system may include a second network storage located at a second site in a second geographic location that may be remote from the first geographic location. In some examples, the second geographic location may be sufficiently remote from the first geographic location, such as another city, another state, another country, etc., such that a disaster affecting the first network storage at the first geographic location is unlikely to affect the second network storage at the second geographic location, and vice versa. The first network storage and the second network storage may replicate data with each other to protect against data loss.

[0015] Additionally, the quorum component may be located in a third network storage including a third physical storage system located at a third site at a third geographic location that is geographically remote from the first site and the second site. For example, the quorum component may include at least one quorum volume that may store information that aids in maintaining synchronously replicated copies of data volumes on the first network storage and the second network storage. As an example, each of the first network storage and the second network storage may access the quorum component to verify each other's status. The quorum component may be used to detect replication failures between the first network storage and the second network storage, such as path failures, failures of any of the network storages. In some examples, the quorum component may reside on a virtual machine that is configured using a virtual machine image that may include an operating system (OS) and quorum configuration and modification programs. The quorum component herein may provide a geographically remote alternative to an on-premise quorum component, thereby avoiding a single point of failure.

[0016] The implementations herein enable remote configuration of quorum components at geographically separated sites with minimal commands and in a streamlined manner, while significantly reducing the likelihood of user error during configuration of the quorum components. In addition, the techniques herein can reduce the time required to deploy and configure quorum volumes to function as quorum components, and can reduce the overall effort and cost to configure and operate a data replication solution. Furthermore, the implementations herein can ensure that users configure appropriate volume sizes for quorum components, ensure that correct IP addresses are used in the configuration process, ensure that qualified Internet Small Computer Systems Interface (iSCSI) names are used, and ensure that appropriate partitions are created when partitioning volumes to function as quorum volumes. For example, as described in RFC 7143 IETF Trust, April 2014 by Chadalapaka et al., iSCSI is an Internet Protocol (IP)-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over TCP / IP networks. The iSCSI protocol allows clients (also known as "initiators") to send SCSI commands over a network to storage devices (targets) on remote computing devices.

[0017] For purposes of discussion, some example implementations are described in an environment in which one or more service computing devices communicate with multiple networked storage that communicate with a quorum component to enable data replication, maintain data integrity, and detect failures. However, implementations herein are not limited to the specific examples provided, and may be extended to other types of computing system architectures, other types of storage environments, other types of client configurations, other types of data, etc., as will be apparent to those skilled in the art upon review of the disclosure herein.

[0018] FIG. 1 illustrates an example architecture of a system 100 that can store data in multiple network storages utilizing a quorum component according to some implementations. The system 100 includes one or more service computing devices 102 that can communicate with or are connected to multiple network storages 104, such as a first network storage 104(1) and a second network storage 104(2), via one or more networks 106. At least the first network storage 104(1) and the second network storage 104(2) can further communicate with a third network storage 104(3) via one or more networks 106. Each of the network storages 104(1)-104(3) may include one or more computing devices (not shown in FIG. 1) that manage the multiple designated storage devices separately from each of the other network storages 104(1)-104(3). For example, the network storages 104 may be managed by one or more service computing devices (not shown in FIG. 1) that manage the multiple designated storage devices separately from each of the other network storages 104(1)-104(3). For example, the network storages 104 may be managed by one or more service computing devices (not shown in FIG. 1) that manage the multiple designated storage devices separately from each of the other network storages 104(1)-104(3). The network storage 104 may include commercially available cloud storage available from various service providers, such as CLOUD®. Alternatively, in some examples, one or more of the network storage 104 may include a proprietary storage system. More details on examples of the network storage 104 are provided below with respect to FIGS. 5 and 6.

[0019] Further, as discussed above, the first network storage 104(1) may be physically located at a first site 105(1) at a first geographic location, and the second network storage 104(2) may be physically located at a second site at a second geographic location that is remote from the first geographic location. For example, the second geographic location may be sufficiently remote from the first geographic location, such as another city, another state, another country, etc., such that a disaster affecting the first network storage 104(1) at the first site 105(1) is not likely to affect the second network storage 104(2) at the second site 105(2) and vice versa. Similarly, the third network storage 104(3) may be physically located at a third site 105(3) at a third geographic location that is also geographically remote from the first site 105(1) and the second site 105(2).

[0020] In some examples, the service computing device 102 can communicate with one or more client devices 108 over the network 106. For example, the service computing device 102 may be an access node, a server node, a management node, and / or other type of service node that provides storage services to the client devices 108 to enable them to store data, as well as to perform other management and control functions, as described further below.

[0021] The network storage 104 and the service computing device 102 may also be able to communicate with at least one management device 110 over the network 106. For example, the management device 110 may be used to configure the network storage 104 and / or the service computing device 102. The client devices 108 and the management device 110 may be any of a variety of types of computing devices, as described further below.

[0022] The one or more networks 106 may include any suitable network, including a wide area network such as the Internet, a local area network (LAN) such as an intranet, a wireless network such as a cellular network, a local wireless network such as Wi-Fi, and / or a wired network including short-range wireless communication such as BLUETOOTH, Fibre Channel, optical fiber, Ethernet, or any other such network, a direct wired connection, or any combination thereof. Thus, the one or more networks 106 may include both wired and / or wireless communication technologies. The components used for such communication may depend at least in part on the type of network, the selected environment, or both. Protocols for communication over such networks are well known and will not be described in detail herein. By way of example, the network 106 may include a private network such as a LAN, a storage area network (SAN), a Fibre Channel network, etc. Additionally, the network 106 may include a public network, which may include the Internet, or a combination of public and private networks. Implementations herein are not limited to any particular type of network as the network 106.

[0023] In some examples, the service computing device 102 may be configured to provide storage and data management services, respectively, to client users 112 via client devices 108. As some non-limiting examples, the client users 112 may include users performing functions for a company, enterprise, organization, government agency, academic institution, etc., which may in some examples include the storage of very large amounts of data. However, implementations herein are not limited to any particular use or application of the system 100, as well as other systems and configurations described herein. For example, in some examples, the client devices 108 may not be included or may be entirely different types of client devices.

[0024] Each client device 108 may be any suitable type of computing device, such as a desktop, laptop, tablet computing device, mobile device, smartphone, wearable device, terminal, and / or any other type of computing device capable of transmitting data over a network. Client users 112 may be associated with client devices 108 through respective user accounts, user login credentials, and / or the like. Further, client devices 108 may be configured to communicate with service computing device 102 over one or more networks 106, over a separate network, or over any other suitable type of communications connection. Many other variations will be apparent to those of skill in the art given the disclosure herein.

[0025] In some implementations, each client device 108 may include a respective instance of a client application 114 that may execute on the client device 108, such as to communicate with a client web application 116 executable on the service computing device 102, such as to send user data for storage on the network storage 104 and / or to receive stored data from the network storage 104 through data instructions such as write operations, read operations, delete operations, etc. In some cases, the application 114 may include or operate via a browser, while in other cases, the application 114 may include any other type of application having communication capabilities that enable communication with the client web application 116 or other applications on the service computing device 102 over one or more networks 106. Thus, the service computing device 102 may provide storage to each client device 108.

[0026] Additionally, the management device 110 may be any suitable type of computing device, such as a desktop, laptop, tablet computing device, mobile device, smartphone, wearable device, terminal, and / or any other type of computing device capable of transmitting data over a network. An administrator 120 may be associated with the management device 110 through a respective administrator account, administrator login credentials, etc. Furthermore, the management device 110 may be able to communicate with the network storage 104 and the service computing device 102 over one or more networks 106, over a separate network, or over any other suitable type of communication connection.

[0027] Additionally, the managed device 110 may include respective instances of administrator applications 122 that may be executed on the managed device 110, such as instances for communicating with management web applications 124(1), 124(2), and 124(3) on the network storages 104(1), 104(2), and 104(3), respectively, such as an application for sending management instructions for managing the network storages 104. The management instructions may include sending quorum configuration instructions 125 for configuring a quorum component 126 on the third network storage 104(3), as well as for configuring replication between the first network storage 104(1) and the second network storage 104(2) and for configuring other storage functions on the network storages 104(1) and 104(2). Additionally, although a web application is described as one type of application that provides remote management capabilities to the managed device 110, any of numerous other types of software configurations may be employed to perform these functions, as would be apparent to one of ordinary skill in the art having the benefit of the disclosure herein.

[0028] In addition, the service computing device 102 may also include an administration web application 127 or other applications to enable the management device 110 to configure operations performed by the service computing device 102. In some cases, the administrator application 122 may include or operate via a browser, while in other cases, the administrator application 122 may include the administration web applications 124, 127, or any other type of application having communication capabilities that enable communication with the network storage 104 or other applications on the service computing device 102 over one or more networks 106.

[0029] The service computing device 102 may execute a storage management program 128 that may provide access to the network storage 104(1) and 104(2), such as to transmit data 130 to be stored on the network storage 104(1) and / or 104(2) and to retrieve requested data 130 from the network storage 104(1) and / or 104(2). Additionally, the storage management program 128 may present a virtual storage 131 to the client device 108. For example, the virtual storage 131 may be based on physical storage actually provided by the network storage 104(1) and 104(2), or the virtual storage 131 may be virtual in the sense that it is presented as being locally available to the service computing device 102. Additionally, the storage management program 128 may manage the data 130 stored by the system 100, such as to manage data retention periods, data protection levels, data replication, and the like.

[0030] The network storages 104(1) and 104(2) may each execute an instance of a storage program 140(1) and 140(2) to manage the storage of data 130(1) and 130(2) on the network storages 104(1) and 104(2), respectively. For example, the storage program 140 may receive data 130 from a storage management program 128 on the service computing device 102, store the data 130 on one or more storage devices on the network storages 104, and retrieve and send requested data to the storage management program 128 in response to a client read request or the like. The storage program 140 may also provide the storage management program 128 and / or the administrator application 122 with information, such as performance information, capacity usage information, etc., regarding each storage device managed by a particular storage program 140 on a particular one of the network storages 104.

[0031] In addition, storage programs 140(1) and 140(2) may include, execute, access, or otherwise coexist with data replication programs 142(1) and 142(2), respectively, configured to perform data replication 144 between first network storage 104(1) and second network storage 104(2). For example, data replication programs 142(1) and 142(2) may configure network storage 104(1) and 104(2) to perform asynchronous or synchronous data replication between first network storage 104(1) and second network storage 104(2). In addition, first network storage 104(1) and second network storage 104(2) may include quorum communication programs 146(1) and 146(2), respectively, for communicating with quorum component 126 on third network storage 104(3) via one or more networks 106. In some cases, the first network storage 104(1) and the second network storage 104(2) may communicate with the quorum component 126, such as via a virtual private network (VPN), to send and / or receive quorum information 148, etc.

[0032] As described above, such as when configuring the quorum component 126 on the third network storage 104(3), the management device 110 may send a quorum configuration command 125 to the third network storage 104(3) to configure and configure the virtual machine 150 on the third network storage 104(3) to host the quorum component 126. When the virtual machine 150 is implemented on the third network storage 104(3), a quorum program 152 may be executed on the virtual machine to configure one or more quorum volumes 154. In this example, the quorum component 126 includes one or more quorum volumes 154 and the virtual machine 150 configured as an iSCSI target of the network storages 104(1) and 104(2). For example, the quorum program 152 may include a BASH script that is executed at the start of the virtual machine 150 to configure at least one quorum volume 154 that may receive the quorum information 148 from the first network storage 104(1) and the second network storage 104(2). BASH is a UNIX shell and command language, which avoids the need for administrative user 120 to manually enter configuration information at management device 110, thereby preventing misconfiguration of quorum volume 154, which may prevent unnecessary use of excess storage space by quorum volume 154 or other improper configuration of quorum volume 154.

[0033] Additionally, virtual machine 150 may be configured as an iSCSI target to communicate with first network storage 104(1) and second network storage 104(2). As one non-limiting example, virtual machine 150 may be implemented using a version of the LINUX operating system and configured as a LINUX SCSI target. As an example, software such as targetcli may be employed by quorum program 152 to configure virtual machine 150 as an iSCSI target. For example, targetcli is a single-node LINUX IO administration shell developed by Datera, Inc. of Santa Clara, Calif., USA.

[0034] As described further below, quorum program 152 also includes instructions for generating and presenting a user interface that allows administrative user 120 to manage quorum component 126. For example, quorum program 152 may provide functionality in the user interface to enable operations such as adding a quorum volume, deleting a quorum volume, adding an iSCSI Qualified Name (IQN) node, deleting an IQN node, refreshing the current portal, enabling Challenge Handshake Authentication Protocol (CHAP) authentication, viewing current settings, etc. Further details of the user interface and the functions performed thereby are described below, e.g., with respect to Figures 3 and 4.

[0035] 2 and 3 are flow diagrams illustrating an example process 200 for optimizing and controlling traffic allocation according to some implementations. The process is illustrated as a collection of blocks in a logical flow diagram that represents a sequence of operations, some or all of which may be implemented in hardware, software, or a combination thereof. In the context of software, the blocks may represent computer-executable instructions stored on one or more computer-readable media that, when executed by one or more processors, programs the processor to perform the described operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform a particular function or implement a particular data type. The order in which the blocks are described should not be construed as a limitation. Any number of the described blocks may be combined in any order and / or in parallel to perform a process or alternative processes, and not all of the blocks need be executed. For discussion purposes, the process is described with reference to example environments, frameworks, and systems herein, but the process may be implemented in a wide variety of other environments, frameworks, and systems.

[0036] 2 is a flow diagram illustrating an example process 200 that may be performed to configure a quorum component on a network storage according to some implementations. In some cases, process 200 may be performed at least in part by network storage 104(3), such as by a computing device of network storage 104(3) configuring virtual machine 150 and executing quorum program 152. As an example, virtual machine 150 may be configured on the computing device and then quorum program 152 may be executed.

[0037] At 202, the computing device of the target network storage 104(3) may use the virtual machine image and the quorum program package to deploy a virtual machine on the computing device. For example, the virtual machine image and the quorum program package may be obtained from a repository associated with the network storage 104(3), such as a cloud marketplace or other repository. For example, the management device 110 may interact with a management web application 124(3) on the computing device of the third network storage 104(3) to initiate the deployment of a virtual machine, such as that described above with respect to FIG. 1. Alternatively, in other examples, the virtual machine image and the quorum program package may be uploaded from the management device 110. In some examples, the virtual machine may be implemented as a LINUX server, although implementations herein are not limited to any particular operating system or type of virtual machine. Additionally, the virtual machine image may include preset specifications for the virtual machine, such as the amount of memory to allocate, processor specifications, capacity of storage to allocate, etc.

[0038] At 204, following the launch of the virtual machine, the computing device may begin configuring the quorum component by reading the array IQNs (iSCSI qualified names) of the iSCSI ports of the user data of the first network storage and the second network storage. For example, after a user enters the IQN information in the user data box, the virtual machine may execute a BASH script that executes commands to download necessary packages, enable targetcli, and configure the virtual machine to function as part of the quorum component. For example, quorum program 152 may receive user input or other user data to obtain the IQNs of the iSCSI ports on the storage arrays, i.e., first network storage 104(1) and second network storage 104(2).

[0039] After the IQN information is received, the computing device may determine whether configuration of the quorum components has already been performed at 206. If so, the process proceeds to 208. If not, the process proceeds to 210.

[0040] At 208, if the configuration of the quorum components has already been performed, the computing device may stop execution of the configuration process and terminate.

[0041] At 210, if configuration of the quorum component has not yet been performed, the computing device may identify a disk for creating a quorum volume.

[0042] At 212, the computing device may partition the identified disk to create a new partition of at least a threshold size and create a volume group on the new partition.

[0043] At 214, the computing device may create a logical volume as a quorum volume that uses the capacity of the volume group. For example, the logical volume may span 100 percent of the capacity of the volume group.

[0044] At 216, the computing device may create a file system for the quorum volume, may create a mount point for the file system, and may mount the file system.

[0045] At 218, the computing device may enable targetcli and may create at least one iSCSI target volume of the specified size within the quorum volume. As some non-limiting examples, the iSCSI target volume size may be 10GB, 13GB, 15GB, etc. in some applications.

[0046] At 220, the computing device may identify the quorum virtual machine IQN and the IP address of the virtual machine.

[0047] The computing device may add a targetcli entry for the array IQN at 222. For example, the first network storage 104(1) and the second network storage 104(2) may each have their own array IQN.

[0048] At 224, the computing device may determine whether there is another array IQN to add. If there is another array IQN to add, the process returns to 222. If there is not another array IQN to add, the process proceeds to 226. For example, if there are two network storages 104(1) and 104(2) that use quorum volumes, two array IQNs are entered.

[0049] At 226, the computing device may map the iSCSI target volumes to their respective LUNs.

[0050] At 228, an iSCSI path may be established as a quorum connection between the virtual machine 150 and the first and second network storage 104(1) and 104(2), such as via respective VPNs.

[0051] The above-described process 200 greatly simplifies the process of configuring quorum components on cloud storage or other network storage 104 by directly deploying a virtual machine image with preset specifications (e.g., memory, CPU, storage size) from a service provider marketplace or other repository and remotely running a quorum configuration program with the virtual machine on a specified computing device. The process minimizes user input and avoids command lines during configuration, and the user performing the configuration does not have to learn a new interface to perform the initial configuration of the quorum components. For example, the process may use user data to determine the IQN, and the user does not have to enter commands because the configuration process is automated, such as by a BASH script that runs as part of the quorum program 152 when the virtual machine image is launched.

[0052] 3 is a flow diagram illustrating an example process 300 including interactions with a quorum component according to some implementations. In some examples, process 300 may be performed by the computing device of networked storage 104(3), such as by execution of a quorum program on a virtual machine deployed on the computing device of networked storage 104(3).

[0053] At 302, the computing device may receive user input in response to presenting menu options in a user interface. For example, the computing device may cause a user interface to be presented on the management device 110 to receive such input to the user interface.

[0054] At 304 , if the input is a command to add a quorum volume, the process proceeds to 306 .

[0055] At 306, the computing device may find free space in the storage for the new quorum volume.

[0056] At 308, the computing device may determine whether the maximum number of volumes has been reached. If the maximum number of volumes has been reached, the process returns to 302. If the maximum number of volumes has not been reached, the process proceeds to 310.

[0057] At 310, the computing device associates a volume and corresponding LUN with the free space to provide a new quorum volume. In some examples, the new quorum volume may be created as described above with respect to FIG.

[0058] At 312 , if the input is a command to delete a quorum volume, the process proceeds to 314 .

[0059] At 314, the computing device determines whether there is a quorum volume. If there is a quorum volume, the process proceeds to 316. If there is no quorum volume, the process returns to 302.

[0060] At 316, if there is an existing quorum volume, the computing device prompts the user for the ID of the quorum volume to delete.

[0061] At 318, in response to receiving the ID of the quorum volume, the computing device removes the quorum volume and the corresponding LUN.

[0062] At 320 , if the input is a command to add an IQN, the process proceeds to 322 .

[0063] At 322, the computing device prompts the user for an IQN to add.

[0064] At 324, the computing device creates an iSCSI initiator ID in an active control list (ACL) directory, for example, the initiator ID allows the computing device to send data to an external iSCSI storage array, such as over a Transmission Control Protocol (TCP)-based Internet Protocol (IP) network.

[0065] At 326, if the input is a command to delete an IQN, the process proceeds to 328.

[0066] At 328, the computing device prompts the user for the IQN to delete.

[0067] At 330, the computing device deletes the IQNs requested to be deleted by the user.

[0068] At 332 , if the input is a command to refresh the portal, the process proceeds to 334 .

[0069] At 334, the computing device deletes the current portal.

[0070] At 336, the computing device obtains the user's current IP address. For example, the computing device may use a getUserIP command to obtain the user's IP address.

[0071] At 338, the computing device creates a portal using the IP address obtained through the getUserIP command.

[0072] At 340, if the input is a command to enable Challenge Handshake Authentication Protocol (CHAP), the process proceeds to 342. For example, CHAP authenticates administrative users to an authentication entity, such as a service provider of the network storage 104(3) in which the quorum component is located. CHAP may provide protection against certain types of hacking attacks and may provide greater security than plain password authentication protocols.

[0073] At 342, the computing device may validate the existing ACL settings.

[0074] At 344, the computing device may prompt the user for authentication details.

[0075] At 346, the computing device may apply CHAP security to the IQN selected by the user. For example, a virtual machine may automate the process of enabling CHAP authentication by allowing a user to apply a set of authentication keys to all quorum or specific quorum volumes.

[0076] At 348 , if the input is a command to display the current settings of the quorum components, the process proceeds to 350 .

[0077] At 350, the computing device may send information to the requesting device to cause the current settings to be presented on a display of the requesting device. For example, the computing device may perform analysis to obtain information about the settings to streamline the process of making changes to the settings. The virtual machine may automate any changes by allowing the user to select options from a menu and having a bash script execute commands that a user would normally have to execute manually.

[0078] The example processes described herein are merely example processes provided for discussion purposes. Numerous other variations will be apparent to those of skill in the art upon reviewing the disclosure herein. Additionally, the disclosure herein describes several examples of suitable frameworks, architectures, and environments for carrying out the processes, but the implementations herein are not limited to the specific examples shown and discussed. Furthermore, the disclosure provides various exemplary implementations, as described and illustrated in the drawings. However, the disclosure is not limited to the implementations described and illustrated herein, but may extend to other implementations known or to become known to those of skill in the art.

[0079] 4 illustrates an exemplary user interface 400 that may be used to configure the quorum component according to some implementations. As an example, the user interface 400 may be presented on a display of the management device 110 based on information received from a quorum program executing on the computing device of the network storage 104(3). In this example, the user interface is a command line interface, although in other examples, the user interface may be a graphical user interface, a touch screen user interface, or the like.

[0080] User interface 400 includes a number of commands 1-9 that may be selected by user input at cursor prompt 404. Commands [1]-[7] correspond to commands 304, 312, 320, 326, 332, 340, and 348, respectively, described above with respect to FIG. 3. For example, if a user enters "1" at command prompt 404, blocks 306-310 of FIG. 3 may be executed. Similarly, if a user enters "2" at command prompt 404, blocks 314-318 of FIG. 3 may be executed, and so on. Thus, implementations herein provide a user interface 400 that includes a number of options for automated post-deployment configuration of quorum components through the use of menus to select desired configuration options.

[0081] Additionally, user interface 400 includes a help command corresponding to command number [8] that may be entered at command prompt 404 to access a help menu. Additionally, user interface 400 includes an exit command [9] that may be entered at command prompt 404 to exit user interface 400. Additionally, while an exemplary user interface has been described with respect to FIGURE 4, numerous variations will be apparent to one of ordinary skill in the art given the disclosure herein.

[0082] FIG. 5 illustrates selected components of an exemplary configuration of a network storage 104(3) having a quorum component 126 according to some implementations. In this example, the network storage 104(3) may include one or more storage computing devices 502, which may include one or more servers or other types of computing devices that may be embodied in any number of ways. For example, in the case of a server, the programs, other functional components, and data may be implemented in a single server, a cluster of servers, a server farm or data center, a cloud-hosted computing service, etc., although other computer architectures may additionally or alternatively be used. Multiple storage computing devices 502 may be collocated or separately arranged, for example, organized as virtual servers, server banks, and / or server farms. The described functionality may be provided by a server of a single entity or enterprise, or by servers and / or services of multiple different entities or enterprises. Each storage computing device 502 may include one or more processors 504, one or more computer-readable media 506, and one or more communication interfaces 508. The storage computing device 502 may be in communication with storage 510, as described further below.

[0083] Each processor 504 may be a single processing unit or multiple processing units and may include a single or multiple computing units or multiple processing cores. The processor 504 may be implemented as one or more central processing units, microprocessors, microcomputers, microcontrollers, digital signal processors, state machines, logic circuits, and / or any device that manipulates signals based on operational instructions. By way of example, the processor 504 may comprise one or more hardware processors and / or logic circuits of any suitable type that are specifically programmed or configured to execute the algorithms and processes described herein. The processor 504 may be configured to fetch and execute computer readable instructions stored on the computer readable medium 506, which may program the processor 504 to perform the functions described herein.

[0084] The computer readable medium 506 may include volatile and non-volatile memory and / or removable and non-removable media implemented in any type of technology for storing information such as computer readable instructions, data structures, program modules, or other data. For example, the computer readable medium 506 may include, but is not limited to, RAM, ROM, EEPROM, flash memory, or other memory technology, optical storage, solid-state storage, magnetic disk storage, or any other medium that may be used to store the desired information and that may be accessed by a computing device. Depending on the configuration of the storage computing device 502, the computer readable medium 506 may be a tangible non-transitory medium insofar as non-transitory computer readable media, when referred to, excludes media such as energy, carrier signals, electromagnetic waves, and / or signals themselves. In some cases, the computer readable medium 506 may include a portion of the storage of the storage 510 described below.

[0085] The computer readable medium 506 may be used to store any number of functional components executable by the processor 504. In many implementations, these functional components include instructions or programs executable by the processor 504 that, when executed, specifically program the processor 504 to perform operations attributed to the storage computing device 502 herein. The functional components stored on the computer readable medium 506 may include the administration web application 124(3), the virtual machine image and quorum program package 509, virtual machines that may be established based on the virtual machine image and quorum program package 509, and the quorum program 152, each of which may include one or more computer programs, applications, executable code, executable scripts, or portions thereof. Furthermore, although these programs are illustrated together in this example, during use, some or all of these programs may be executed on separate storage computing devices 502.

[0086] As an example, virtual machine images and quorum program packages 509 may be obtained by administrative user 120 from a repository associated with third network storage 104(3). For example, third network storage 104(3) may include virtual machine images and quorum program packages 509, such as a virtual marketplace or other repository 511 that allows users to access program packages for use in third network storage 104(3). In some cases, repository 511 may be located at the same site 105(3) as network storage 104(3) or may be associated with a service provider that also offers network storage as a service. In other cases, repository 511 may be associated with a different service provider that may be located remotely from network storage 104(3) and site 105(3). In either situation, the administrative user 120, described above with respect to FIG. 1, may use the repository 511 to access the virtual machine image and quorum program package 509 to install the virtual machine 150 and the quorum program 152 on the specified storage computing device 502 in the network storage 104(3). Alternatively, as another example, the virtual machine image and quorum program package 509 may be uploaded by the administrative user 120, such as from the management device 110. The virtual machine image and quorum program package 509 may include an operating system image for installing the virtual machine 150 on the storage computing device 502. Additionally, the virtual machine 150 may host the quorum program 152 and enable the quorum program 152 to execute to automatically configure the quorum volume 154 on the storage 510.

[0087] In addition, storage computing device 502 may also include or maintain other functional components and data, which may include programs, drivers, and the like, as well as data used or generated by the functional components. Further, storage computing device 502 may include many other logical, programmatic, and physical components, of which the above-mentioned are merely examples relevant to the discussion herein.

[0088] The one or more communications interfaces 508 may include one or more software and hardware components for enabling communication with various other devices, such as over one or more networks 106. For example, the communications interface 508 may enable communication over one or more of a LAN, the Internet, a cable network, a cellular network, a wireless network (e.g., Wi-Fi) and a wired network (e.g., Fibre Channel, Fiber Optic, Ethernet), a direct connection, and short-range communications such as BLUETOOTH, etc., as further enumerated elsewhere herein.

[0089] Storage 510 associated with network storage 104(3) may include one or more controllers 512 associated with storage 150 for storing one or more quorum volumes 154 as one or more quorum components 126 on an array 514 of one or more trays, racks, extent groups, or other types of storage devices 516. For example, controller 152 may control array 514 to configure array 514, such as in an erasure code protection configuration, or any of a variety of other configurations, such as a RAID configuration, a JBOD configuration, and / or to present storage extents, logical units, etc. based on storage device 516, as well as to manage data stored on the underlying physical storage device 516. Storage device 516 may be any type of storage device, such as a hard disk drive, solid state drive, optical drive, magnetic tape, combinations thereof, etc.

[0090] 6 illustrates selected components of an example configuration of network storage 104(1) and 104(2) performing replication according to some implementations. Network storage 104(1) and 104(2) may have a similar hardware configuration as described above with respect to network storage 104(3) of FIG. 5, but may include different functional components and data. For example, as illustrated, functional components stored on computer-readable medium 506 of network storage 104(1) and 104(2) may include administration web application 124 and storage program 140, which may include data replication program 142 and quorum communication program 146, each of which may include one or more computer programs, applications, executable code, executable scripts, or portions thereof. Additionally, although these programs are illustrated together in this example, during use, some or all of these programs may execute on separate storage computing devices 502.

[0091] For example, storage programs 140 may be executed by one or more processors 504 to manage the storage of data 130 on storage 510 associated with each network storage 104(1) or 104(2). For example, controller 152 may control array 514 to configure array 514, such as in an erasure code protected configuration, or in any of a variety of other configurations, such as a RAID configuration, a JBOD configuration, etc., to present storage extents, logical units, etc. to storage programs 140, to manage data stored on underlying physical storage devices 516, etc. Storage devices 516 may be any type of storage device, such as a hard disk drive, a solid state drive, an optical drive, a magnetic tape, a combination thereof, etc.

[0092] FIG. 7 illustrates selected example components of one or more service computing devices 102 that may be used to implement some of the functionality of the system described herein. The service computing device 102 may include one or more servers or other types of computing devices that may be embodied in any number of ways. For example, in the case of a server, the programs, other functional components, and data may be implemented on a single server, a cluster of servers, a server farm or data center, a cloud-hosted computing service, etc., although other computer architectures may additionally or alternatively be used. Multiple service computing devices 102 may be collocated or separately deployed and may be organized, for example, as virtual servers, server banks, and / or server farms. The described functionality may be provided by the servers of a single entity or enterprise, or by the servers and / or services of multiple different entities or enterprises.

[0093] In the illustrated example, the service computing device 102 may include or be associated with one or more processors 702, one or more computer-readable media 704, and one or more communication interfaces 706. Each processor 702 may be a single processing unit or may be multiple processing units, and may include single or multiple computing units, or multiple processing cores. The processor 702 may be implemented as one or more central processing units, microprocessors, microcomputers, microcontrollers, digital signal processors, graphics processing units, state machines, logic circuits, and / or any device that manipulates signals based on operational instructions. By way of example, the processor 702 may include one or more hardware processors and / or any suitable type of logic circuitry specifically programmed or configured to execute the algorithms and processes described herein. The processor 702 may be configured to fetch and execute computer-readable instructions stored on the computer-readable media 704, which may program the processor 702 to perform the functions described herein.

[0094] The computer readable medium 704 may include volatile and non-volatile memory and / or removable and non-removable media implemented in any type of technology for storing information, such as computer readable instructions, data structures, program modules, or other data. For example, the computer readable medium 704 may include, but is not limited to, RAM, ROM, EEPROM, flash memory, or other memory technology, optical storage, solid-state storage, magnetic tape, and magnetic disk storage, or any other medium that can be used to store the desired information and that can be accessed by a computing device. Additionally, in some examples, the computer readable medium 704 includes network storage 104(1) and 104(2), which may include a storage array, network attached storage, storage area network, cloud storage, etc., as described elsewhere herein.

[0095] Depending on the configuration of the service computing device 102, the computer readable medium 704 may be a tangible non-transitory medium, where non-transitory computer readable medium is referred to as excluding media such as energy, carrier signals, electromagnetic waves, and / or the signals themselves. In some cases, the computer readable medium 704 may be co-located with the service computing device 102, while in other cases, the computer readable medium 704 may be partially remote from the service computing device 102.

[0096] The computer readable medium 704 may be used to store any number of functional components executable by the processor 702. In many implementations, these functional components include instructions or programs executable by the processor 702 that, when executed, specifically program the processor 702 to perform operations attributed to the service computing device 102 herein. The functional components stored on the computer readable medium 704 may include a client web application 116, an administration web application 127, and a storage management program 128, each of which may include one or more computer programs, applications, executable code, or portions thereof. Furthermore, although these programs are illustrated together in this example, during use, some or all of these programs may be executed on separate service computing devices 102.

[0097] In addition, the computer-readable medium 704 may store data, data structures, and other information used to perform the functions and services described herein. For example, the computer-readable medium 704 may store one or more data structures containing metadata or other information for providing virtual storage 131. The service computing device 102 may also include or maintain other functional components and data, which may include programs, drivers, and the like, as well as data used or generated by the functional components. Moreover, the service computing device 102 may include many other logical, programmatic, and physical components, of which the above-mentioned are merely examples relevant to the discussion herein.

[0098] The one or more communications interfaces 706 may comprise one or more software and hardware components for enabling communication with various other devices, such as over one or more networks 106. For example, the communications interface 706 may enable communication over one or more of a LAN, the Internet, a cable network, a cellular network, wireless networks (e.g., Wi-Fi) and wired networks (e.g., Fibre Channel, Fiber Optic, Ethernet), a direct connection, and short-range communications such as BLUETOOTH, etc., as further enumerated elsewhere herein.

[0099] 8 illustrates example selected components of a management device 110 according to some implementations. The management device 110 may include any of several different types of computing devices, such as a desktop, a laptop, a tablet computing device, a mobile device, a smartphone, a wearable device, a terminal, a workstation, a server, and / or any other type of computing device capable of transmitting data over a network.

[0100] In the example of FIG. 8, the management device 110 includes components such as at least one processor 802, one or more computer-readable media 804, one or more communication interfaces 806, and one or more input / output (I / O) devices 808. Each processor 802 may itself comprise one or more processors or processing cores. For example, the processor 802 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, graphics processors, state machines, logic circuits, and / or any device that manipulates signals based on operational instructions. In some cases, the processor 802 may be one or more hardware processors and / or any suitable type of logic circuitry specifically programmed or configured to execute the algorithms and processes described herein. The processor 802 may be configured to fetch and execute computer-readable processor-executable instructions stored on the computer-readable medium 804.

[0101] Depending on the configuration of the management device 110, the computer-readable medium 804 may be an example of a tangible, non-transitory computer storage medium and may include volatile and non-volatile memory and / or removable and non-removable media implemented in any type of technology for storing information such as computer-readable processor-executable instructions, data structures, program modules, or other data. The computer-readable medium 804 may include, but is not limited to, RAM, ROM, EEPROM, flash memory, solid-state storage, magnetic disk storage, optical storage, and / or other computer-readable media technologies. Furthermore, in some cases, the management device 110 may access external storage such as a storage array, network-attached storage, storage area network, cloud storage, or any other medium that may be used to store information and that may be accessed by the processor 802 directly or through another computing device or network. Thus, the computer-readable medium 804 may be a computer storage medium that may store instructions, modules, or components that may be executed by the processor 802. Additionally, when referring to non-transitory computer readable media, non-transitory computer readable media excludes media such as energy, carrier signals, electromagnetic waves, and signals themselves.

[0102] The computer-readable medium 804 may be used to store and maintain any number of functional components executable by the processor 802. In some implementations, these functional components include instructions or programs executable by the processor 802 that, when executed, implement operational logic for performing the operations and services attributed above to the managed device 110. The functional components of the managed device 110 stored on the computer-readable medium 804 may include a management application 122 that may enable the managed device 110 to interact with the network storage 104 and the service computing device 102, as described above.

[0103] In addition, the computer-readable medium 804 may also store data, data structures, etc. used by the functional components. In some examples, the management device 110 may store a copy of the virtual machine image and quorum program package 509, which may be uploaded by the management device 110 to the third network storage 104(3), such as when the program package 509 is not available in the repository of the third network storage 104(3). Depending on the type of management device 110, the computer-readable medium 804 may also optionally include other functional components and data, such as other modules and data 812, which may include applications, programs, drivers, etc., as well as data used or generated by the functional components. Furthermore, the management device 110 may include many other logical, program, and physical components, of which the described ones are merely examples relevant to the discussion herein.

[0104] The communications interface 806 may include one or more interfaces and hardware components for enabling communication with various other devices, such as over the network 106, or directly. For example, the communications interface 806 may enable communication via one or more of the Internet, cable networks, cellular networks, wireless networks (e.g., Wi-Fi) and wired networks, and short-range communications such as BLUETOOTH, BLUETOOTH low energy, etc., as further enumerated elsewhere herein.

[0105] The management device 110 may further include one or more I / O devices 808. The I / O devices 808 may include a display for presenting the user interface 400 to the management user 120. In some examples, the display may include a touch screen as an input device. The I / O devices 108 may further include a speaker, a microphone, a camera, and various user controls (e.g., buttons, joystick, keyboard, keypad, touchpad, mouse, etc.), tactile output devices, etc. Additionally, the management device 110 may include various other components not shown, examples of which include removable storage, a power source such as a battery and a power control unit, etc. Furthermore, the client computing device 108 may include similar hardware structures and components as those described for the management device 110, but have one or more different functional components.

[0106] Various instructions, methods, and techniques described herein may be considered in the general context of computer-executable instructions, such as computer programs and applications, stored on a computer-readable medium and executed by a processor. In general, the terms programs and applications may be used interchangeably and may include instructions, routines, scripts, modules, objects, components, data structures, executable code, and the like, for performing particular tasks or implementing particular data types. These programs, applications, and the like may be executed as native code or may be downloaded and executed, such as in a virtual machine or other just-in-time compilation execution environment. In general, the functionality of the programs and applications may be combined or distributed as desired in various implementations. Implementations of these programs, applications, and techniques may be stored on computer storage media or transmitted over some form of communication medium.

[0107] Although the subject matter has been described in terms of structural features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms for implementing the claims.

Claims

1. a first network storage including a computing device capable of communicating with a second network storage and a third network storage over one or more networks, data being replicated between the second network storage and the third network storage; The computing device comprises: receiving, by the computing device, a virtual machine image and executable instructions for creating a quorum component; implementing, by the computing device, a virtual machine on the computing device based on the virtual machine image; by the computing device based at least in part on implementing the virtual machine, creating a logical volume on a storage device associated with said computing device; Executing the executable instructions for creating at least one target volume in the logical volume for receiving quorum information from at least one of the second network storage or the third network storage, the quorum information indicating an operating condition of at least one of the second network storage or the third network storage; a first connection is established between the virtual machine and the second network storage for receiving first quorum information from the second network storage, and a second connection is established between the virtual machine and the third network storage for receiving second quorum information from the third network storage; storing, by the virtual machine, at least one of the first quorum information or the second quorum information in the at least one target volume; A system configured to perform operations including:

2. The operation includes: receiving the virtual machine image and the executable instructions for creating the quorum component from a repository associated with a service provider associated with the first network storage; The system of claim 1 further comprising:

3. The operation may be performed by the computing device by: prior to creating the logical volume, identifying a storage device to be used to create the logical volume; Partitioning the storage device to create partitions; Create the logical volume on the partition The system of claim 1 , further comprising executing the executable instructions for:

4. The operation may be performed by the computing device by: creating a file system for said logical volume; Creating a mount point for the file system; Mount the file system The system of claim 1 , further comprising executing the executable instructions for:

5. 2. The system of claim 1, wherein the target volume is an Internet Small Computer Systems Interface (iSCSI) target volume.

6. 6. The system of claim 5, wherein the operations further comprise executing, by the computing device, the executable instructions for mapping the iSCSI target volume onto a logical unit number.

7. 2. The system of claim 1, wherein establishing the first connection between the virtual machine and the second network storage to receive first quorum information includes establishing an Internet Small Computer Systems Interface (iSCSI) path between the virtual machine and the second network storage.

8. The operation may be performed by the computing device by: determining an iSCSI Qualified Name (IQN) associated with the second network storage; 8. The system of claim 7, further comprising executing the executable instructions to establish the iSCSI path based at least on the IQN associated with the second network storage.

9. The operation includes: transmitting, by the computing device, information to a user computing device causing the user computing device to present a user interface; receiving, by the computing device via the user interface, an indication of an instruction to add a quorum volume; Based on the indication of the command to add the quorum volume, determining free storage space for a new volume; associating said new volume and logical unit number with said free storage space; The system of claim 1 further comprising:

10. The operation includes: transmitting, by the computing device, information to a user computing device causing the user computing device to present a user interface; receiving, by the computing device via the user interface, an indication of an instruction to delete a quorum volume; sending a request to the user computing device for an identifier of the quorum volume; based on a volume identifier received in a reply from the user computing device, deleting a volume corresponding to the volume identifier; The system of claim 1 further comprising:

11. 2. The system of claim 1, wherein the first network storage site is geographically remote from at least one of the second network storage site or the third network storage site.

12. receiving, by a computing device of a first network storage, a virtual machine image and executable instructions for creating a quorum component of a second network storage and a third network storage, where data is replicated between the second network storage and the third network storage; implementing, by the computing device, a virtual machine on the computing device based on the virtual machine image; by the computing device based at least in part on implementing the virtual machine, creating a logical volume on a storage device associated with said computing device; Executing the executable instructions for creating at least one target volume in the logical volume for receiving quorum information from at least one of the second network storage or the third network storage, the quorum information indicating an operating condition of at least one of the second network storage or the third network storage; a first connection is established between the virtual machine and the second network storage for receiving first quorum information from the second network storage, and a second connection is established between the virtual machine and the third network storage for receiving second quorum information from the third network storage; storing, by the virtual machine, at least one of the first quorum information or the second quorum information in the at least one target volume; A method comprising:

13. receiving the virtual machine image and the executable instructions for creating the quorum component from a repository associated with a service provider associated with the first network storage; The method of claim 12 further comprising:

14. one or more non-transitory computer-readable media storing one or more programs executable by a computing device of a first network storage to configure the computing device to perform operations; The operation includes: receiving, by the computing device, a virtual machine image and executable instructions for creating a quorum component of a second network storage and a third network storage, where data is replicated between the second network storage and the third network storage; implementing, by the computing device, a virtual machine on the computing device based on the virtual machine image; by the computing device based at least in part on implementing the virtual machine, creating a logical volume on a storage device associated with said computing device; Executing the executable instructions for creating at least one target volume in the logical volume for receiving quorum information from at least one of the second network storage or the third network storage, the quorum information indicating an operating condition of at least one of the second network storage or the third network storage; a first connection is established between the virtual machine and the second network storage for receiving first quorum information from the second network storage, and a second connection is established between the virtual machine and the third network storage for receiving second quorum information from the third network storage; storing, by the virtual machine, at least one of the first quorum information or the second quorum information in the at least one target volume; and one or more non-transitory computer-readable media that configure the computing device to perform operations including:

15. The operation includes: receiving the virtual machine image and the executable instructions for creating the quorum component from a repository associated with a service provider associated with the first network storage; 15. The non-transitory computer-readable medium of claim 14, further comprising:

Citation Information

Patent Citations

  • Method and program for collecting information on performance of storage network

    JP2005157933A

  • System, method and program for deploying application

    JP2011060035A

  • Storage system

    JP2015207269A

  • Systems and methods for storage allocation in provisioning of virtual machines

    US20100057913A1

  • Pluggable activation engine extensions via virtual disks

    US20110258622A1