Settings of Quorum Components on Network Storage

The implementation of a quorum component across geographically separated network storages automates the configuration of quorum volumes, addressing the challenge of data loss and recovery in distributed networks, ensuring efficient data replication and reducing service outages.

JP7702577B2Active Publication Date: 2025-07-03HITACHI VANTARA LLC
View PDF 6 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

Existing data storage solutions fail to provide a high probability of zero data loss and efficient recovery from disasters, especially in geographically distributed networks, leading to potential permanent data loss and long-term service outages.

Method used

Implementing a quorum component across geographically separated network storages using a virtual machine image and executable instructions to automate the configuration of quorum volumes, minimizing user input and reducing errors, and ensuring data integrity through asynchronous or synchronous replication.

Benefits of technology

The solution significantly reduces the risk of data loss and minimizes user errors during configuration, ensuring rapid deployment and efficient data replication with minimal resource waste, thus enhancing data integrity and reducing the likelihood of service outages.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007702577000001
    Figure 0007702577000001
  • Figure 0007702577000002
    Figure 0007702577000002
  • Figure 0007702577000003
    Figure 0007702577000003
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 technical field of data storage.

Background Art

[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 its data and access to the data, and as a result, may lose its ability to function. Historically, storage solutions have focused on reducing the time required to recover data lost from a failed system. However, currently, organizations are 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 is becoming more difficult to implement typical business procedures for manually recovering data lost after a disaster. In many organizations, these risks are no longer acceptable. As a result, reducing the possibility of permanent data loss and / or long-term service outages has become a business priority.

Summary of the Invention

Means for Solving the Problems

[0003] In some implementations, a computing device of a first network storage receives a virtual machine image and executable instructions for creating a quorum component of a second network storage and a third network storage that replicates 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 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 for the virtual machine to receive quorum information is established between the virtual machine and the second network storage and the third network storage. The virtual machine stores the quorum information in at least one target volume.

Brief Description of the Drawings

[0004] The detailed description is set forth with reference to the accompanying drawings. In the drawings, the leftmost digit of a reference number indicates the drawing in which the reference number first appears. The use of the same reference number in different drawings indicates similar or identical items or features.

[0005]

Figure 1

[0006]

Figure 2

[0007]

Figure 3

[0008]

Figure 4

[0009]

Figure 5

[0010]

Figure 6

[0011]

Figure 7

[0012]

Figure 8

DETAILED DESCRIPTION OF THE INVENTION

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

[0014] In some examples, one or more service computing devices utilize virtual storage that includes a plurality of network storages having underlying physical storage systems that perform asynchronous or synchronous data replication between the network storages. For example, a first network storage may include a first physical storage system located at a first site in a first geographic location. A 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 in a different city, state, country, etc., such that a disaster affecting the first network storage in the first geographic location has no potential to affect the second network storage in the second geographic location, and vice versa. The first network storage and the second network storage may replicate data with each other to protect the data from data loss.

[0015] Additionally, the quorum component may be installed in a third network storage including a third physical storage system located at a third geographical 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 to help maintain a synchronously replicated copy 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 check 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 or failures of any of the network storages. In some examples, the quorum component may reside on a virtual machine configured using a virtual machine image that may include an operating system (OS) and a quorum setting and change program. The quorum component herein may provide an alternative means that is geographically remote in place of an on-premises quorum component, thereby avoiding a single point of failure.

[0016] The implementations herein can remotely configure quorum components at geographically separated sites using a minimal number of commands and in a rationalized manner, while significantly reducing the possibility of user errors during the configuration of the quorum components. Additionally, the techniques herein can shorten the time required to deploy and configure a quorum volume to function as a quorum component, and can reduce the overall effort and cost for setting up and operating a data replication solution. Further, the implementations herein can ensure that a user sets an appropriate volume size for the quorum component, ensures that the correct IP address is used in the configuration process, ensures that a qualified Internet Small Computer Systems Interface (iSCSI) name is used, and can ensure that an appropriate partition is created when partitioning a volume to function as a quorum volume. 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 a TCP / IP network. The iSCSI protocol allows a client (also known as an "initiator") to send SCSI commands over a network to a storage device (a target) on a remote computing device.

[0017] For purposes of discussion, some exemplary implementations are described in an environment where one or more service computing devices communicate with multiple network storage that enables data replication, maintains data integrity, and communicates with a quorum component to detect failures. However, the 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 consideration of the disclosure herein.

[0018] FIG. 1 shows an example architecture of a system 100 that can store data in multiple network storage that utilizes a quorum component according to some implementations. System 100 includes one or more service computing devices 102 that can communicate with or be connected to multiple network storage 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 storage 104(1)-104(3) may include one or more computing devices (not shown in FIG. 1) that manage a plurality of designated storage devices separately from each of the other network storage 104(1)-104(3). For example, the network storage 104 may include commercially available cloud storage available from various service providers such as AMAZON WEB SERVICES (registered trademark), MICROSOFT AZURE (registered trademark), GOOGLE CLOUD (registered trademark). Alternatively, in some examples, one or more of the network storage 104 may include a private storage system. Details of examples of the network storage 104 will be described later with respect to FIGS. 5 and 6.

[0019] Furthermore, as described above, the first network storage 104(1) may be physically disposed at the first site 105(1) at the first geographical location, and the second network storage 104(2) may be physically disposed at the second site at the second geographical location remote from the first geographical location. For example, the second geographical location may be sufficiently remote from the first geographical location such that a disaster affecting the first network storage 104(1) at the first site 105(1) has no possibility of affecting 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 disposed at the third site 105(3) at the third geographical 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 via the network 106. For example, the service computing device 102 may be an access node, a server node, a management node, and / or another type of service node that provides a storage service to the client device 108 to enable the client device 108 to store data and to perform other management and control functions, as will be 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 via 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 device 108 and the management device 110 may be any of various types of computing devices, as will be described further below.

[0022] The network 106 or networks above 1 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 short-range wireless communication such as BLUETOOTH (registered trademark), a fiber channel, an optical fiber, an Ethernet, or any other such wired network, a direct wired connection, or any combination thereof. Thus, the network 106 or networks above 1 may include both wired communication technologies and / or wireless communication technologies. Components used for such communication may depend at least in part on the type of network, the selected environment, or both. Since protocols for communication via such networks are well known, they are not described in detail herein. As an example, the network 106 may include a private network such as a LAN, a storage area network (SAN), a fiber channel network, etc. Additionally, the network 106 may include a public network that may include the Internet, or a combination of a public network and a private network. 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 to the client user 112 via the client device 108, respectively. As some non-limiting examples, the client user 112 may include users who perform functions for companies, enterprises, organizations, government agencies, academic institutions, etc., and the functions may, in some examples, include storing a very large amount of data. However, implementations herein are not limited to any particular usage or application of the system 100, as well as other systems and configurations described herein. For example, in some examples, the client device 108 may not be included, or may be a completely different type of client device.

[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 user 112 may be associated with client device 108 through each user account, user login authentication information, etc. Further, client device 108 may be configured to communicate with service computing device 102 via one or more networks 106, via a separate network, or via any other suitable type of communication connection. Many other variations should be apparent to those skilled in the art using the disclosure herein.

[0025] In some implementations, each client device 108 may include an instance of a client application 114 that can be executed on the client device 108, for example, to communicate with a client web application 116 executable on the service computing device 102, such as to send user data for storage on network storage 104 and / or to receive stored data from network storage 104 through data commands such as write operations, read operations, delete operations, etc. In some cases, application 114 may include a browser or may operate via a browser, but in other cases, application 114 may include any other type of application having a communication function that enables communication with client web application 116 or other applications on service computing device 102 via one or more networks 106. Accordingly, service computing device 102 may provide storage to each client device 108.

[0026] In addition, 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 via a network. The administrator 120 may be associated with the management device 110 through respective administrator accounts, administrator login authentication information, etc. Further, the management device 110 may be communicable with the network storage 104 and the service computing device 102 via one or more networks 106, via a separate network, or via any other suitable type of communication connection.

[0027] Furthermore, the management device 110 may include respective instances of the administrator application 122 executable on the management device 110, such as an application for sending management commands for managing the network storage 104, and instances for communicating with respective management web applications 124(1), 124(2), and 124(3) on the network storage 104(1), 104(2), and 104(3). The management commands may include sending a quorum setting command 125 for setting a quorum component 126 on the third network storage 104(3), as well as for setting a replication between the first network storage 104(1) and the second network storage 104(2) and other storage functions on the network storages 104(1) and 104(2). Further, although the web application is described as one type of application that provides a remote management function to the management device 110, as will be apparent to those skilled in the art using the disclosure herein, any number of other types of software configurations may be employed to perform these functions.

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

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

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

[0031] In addition, storage programs 140(1) and 140(2) each include, execute, access, or otherwise coexist with data replication programs 142(1) and 142(2) 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 storages 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 each include quorum communication programs 146(1) and 146(2) for communicating with quorum component 126 on third network storage 104(3) via one or more networks 106. In some cases, first network storage 104(1) and second network storage 104(2) may communicate with quorum component 126 via a virtual private network (VPN) or the like, such as for sending and / or receiving quorum information 148.

[0032] As described above, in a case where the quorum component 126 is set on the third network storage 104(3), for example, the management device 110 may transmit a quorum setting command 125 for setting and configuring a virtual machine 150 on the third network storage 104(3) to host the quorum component 126 to the third network storage 104(3). When the virtual machine 150 is implemented on the third network storage 104(3), a quorum program 152 for configuring one or more quorum volumes 154 may be executed on the virtual machine. In this example, the quorum component 126 includes one or more quorum volumes 154 and a 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 set at least one quorum volume 154 that can receive quorum information 148 from the first network storage 104(1) and the second network storage 104(2). BASH is a shell and command language of UNIX (registered trademark). As a result, the management user 120 does not need to manually input configuration information in the management device 110, and as a result, incorrect settings of the quorum volume 154 can be prevented, thereby preventing unnecessary use of extra storage space by the quorum volume 154 or other inappropriate settings of the quorum volume 154.

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

[0034] As will be described further below, the quorum program 152 also includes instructions for generating and presenting a user interface that enables the administrative user 120 to manage the quorum component 126. For example, the quorum program 152 may provide the user interface with functions that enable operations such as adding a quorum volume, deleting a quorum volume, adding an IQN (iSCSI qualified name) node, deleting an IQN node, refreshing the current portal, enabling Challenge Handshake Authentication Protocol (CHAP) authentication, and displaying the current settings. Further details of the user interface and the functions performed thereby will be described below with respect to, for example, FIGS. 3 and 4.

[0035] Figures 2 and 3 are flow diagrams showing an exemplary process 200 for optimizing and controlling traffic distribution according to some implementations. The process is shown as a set of blocks in a logical flow diagram representing a sequence of operations, and some or all of the operations may be implemented in hardware, software, or a combination thereof. In a software context, a block may represent computer-executable instructions stored in one or more computer-readable media that, when executed by one or more processors, program the processors 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 limiting. Any number of the described blocks can be combined in any order and / or in parallel to implement the process or an alternative process, and not all of the blocks need to be executed. For discussion purposes, the process is described with reference to the environment, framework, and system in the examples herein, but the process may be implemented in many other diverse environments, frameworks, and systems.

[0036] Figure 2 is a flow diagram showing an exemplary process 200 that may be executed to set up a quorum component on network storage according to some implementations. In some cases, process 200 may be executed at least in part by network storage 104(3), for example, by a computing device of network storage 104(3) setting up virtual machine 150 and executing quorum program 152. As an example, virtual machine 150 may be set up on a 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 a virtual machine image and a 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 the 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 (registered trademark) server, but the implementation forms herein are not limited to any specific operating system or type of virtual machine. Further, the virtual machine image may include preset specifications for the virtual machine, such as the amount of memory to be allocated, the processor specifications, and the capacity of the storage to be allocated.

[0038] At 204, following the startup of the virtual machine, the computing device may initiate the configuration of the quorum component by reading the array IQN (iSCSI qualified name) of the iSCSI ports of the user data of the first network storage and the second network storage. For example, after the user inputs the IQN information into the user data box, the virtual machine may download the necessary packages, enable targetcli, and execute a BASH script that executes commands to configure the virtual machine to function as part of the quorum component. For example, the quorum program 152 may receive user input or other user data for obtaining the IQN of the iSCSI ports on the storage array, i.e., on the first network storage 104(1) and the second network storage 104(2).

[0039] In 206, after the IQN information is received, the computing device may determine whether the quorum component has already been configured. If it has already been executed, the process proceeds to 208. If it has not yet been executed, the process proceeds to 210.

[0040] In 208, if the quorum component has already been configured, the computing device may stop and end the execution of the configuration process.

[0041] In 210, if the quorum component has not yet been configured, the computing device may identify a disk for creating a quorum volume.

[0042] In 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] In 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] In 216, the computing device may create a file system for the quorum volume, create a mount point for the file system, and mount the file system.

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

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

[0047] At 222, the computing device may add a targetcli entry for the array IQN. 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 be added. If there is another array IQN to be added, the process returns to 222. If there is no other array IQN to be added, the process proceeds to 226. For example, if there are two network storages 104(1) and 104(2) using the quorum volume, two array IQNs are input.

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

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

[0051] The above 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 executing a quorum configuration program using the virtual machine on a specified computing device. This process minimizes user input, avoids the command line during configuration, and the user executing the configuration does not need to learn a new interface to perform the initial configuration of the quorum components. For example, this process may use user data to determine the IQN, and the configuration process is automated by, for example, a BASH script executed as part of the quorum program 152 when the virtual machine image is launched, so the user does not need to enter commands.

[0052] Figure 3 is a flowchart showing an exemplary process 300 that includes interaction with quorum components according to some implementations. In some examples, process 300 may be executed by a computing device of network storage 104(3), such as by executing a quorum program on a virtual machine deployed on the computing device of network storage 104(3).

[0053] At 302, the computing device may receive user input in response to presenting menu options to a user interface. For example, the computing device may cause the user interface to be presented on the management device 110 to receive the above 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 a 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 provides a new quorum volume by associating a volume and the corresponding LUN with the free space. In some examples, the new quorum volume may be generated as described above with respect to Figure 2.

[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 asks the user for the ID of the quorum volume to be deleted.

[0061] At 318, in response to receiving the ID of the quorum volume, the computing device deletes 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 asks the user for the IQN to be added.

[0064] At 324, instead of an Active Control List (ACL) directory, the computing device creates an iSCSI initiator ID. For example, the initiator ID enables the computing device to send data to an external iSCSI storage array through, for example, 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 asks the user for the IQN to delete.

[0067] At 330, the computing device deletes the IQN requested by the user to delete.

[0068] At 332, if the input is a command to refresh a 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 the 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 the Challenge Handshake Authentication Protocol (CHAP), the process proceeds to 342. For example, CHAP authenticates an administrative user to an authentication entity such as a service provider of network storage 104(3) where the quorum component is located. CHAP may provide protection against certain types of hacking attacks and may provide better security than plain password authentication protocols.

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

[0074] At 344, the computing device may ask 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 the user to apply a set of authentication keys to all quorums or specific quorum volumes.

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

[0077] At 350, the computing device may send information to the requesting device to present the current settings on the display of the requesting device. For example, the computing device may perform an analysis to obtain information about the settings to streamline the process of making changes to the settings. A virtual machine may automate any changes by enabling the user to select options from a menu and execute commands that a normal user would otherwise have to execute manually in a bash script.

[0078] The process examples described in this specification are merely examples of processes provided for discussion purposes. Many other variations should be apparent to those skilled in the art upon considering the disclosure herein. Additionally, while the disclosure herein describes some examples of suitable frameworks, architectures, and environments for executing a process, the implementations herein are not limited to the specific examples shown and discussed. Further, the present disclosure provides various exemplary implementations as described and as shown in the drawings. However, the present disclosure is not limited to the implementations described and illustrated herein and may be extended to other implementations known or to become known to those skilled in the art.

[0079] Figure 4 shows an exemplary user interface 400 that may be used to configure quorum components 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 executed on a computing device of the network storage 104(3). In this example, the user interface is a command-line interface, but in other examples, the user interface may be a graphical user interface, a touch-screen user interface, etc.

[0080] The user interface 400 includes a plurality of commands 1-9 that may be selected by user input at the cursor prompt 404. Commands [1]-[7] respectively correspond to the commands 304, 312, 320, 326, 332, 340, and 348 described above with respect to FIG. 3. For example, if the user enters "1" at the command prompt 404, blocks 306-310 in FIG. 3 may be executed. Similarly, if the user enters "2" at the command prompt 404, blocks 314-318 in FIG. 3 may be executed, and so on. Accordingly, the implementation form in this specification provides a user interface 400 that includes a plurality of options for post-deployment settings of the quorum component to be automated through the use of a menu for selecting desired configuration options.

[0081] In addition, the user interface 400 includes a help command corresponding to the command number [8] that may be entered at the command prompt 404 to access the help menu. Further, the user interface 400 includes an end command [9] that may be entered at the command prompt 404 to end the user interface 400. Further, although an example of the user interface has been described with respect to FIG. 4, a number of variations should be apparent to those skilled in the art using the disclosure in this specification.

[0082] FIG. 5 shows selected components of an exemplary configuration of a network storage 104(3) having a quorum component 126 according to some implementations. In this example, network storage 104(3) may comprise one or more storage computing devices 502, and storage computing device 502 may comprise 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, 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 be additionally or alternatively used. The plurality of storage computing devices 502 may be co-located or separately located, and may be organized, for example, as virtual servers, server banks, and / or server farms. The functions described may be provided by a single entity or enterprise's servers, or by multiple different entity or enterprise's servers and / or services. 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. Storage computing device 502 may also communicate with storage 510, as will be 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 operates on signals based on operational instructions. As an example, the processor 504 may include 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 in the computer-readable medium 506, and these instructions may program the processor 504 to perform the functions described herein.

[0084] The computer-readable medium 506 may include volatile memory and non-volatile memory implemented by any type of technology for storing information such as computer-readable instructions, data structures, program modules, or other data, and / or removable and non-removable media. For example, the computer-readable medium 506 may include, but is not limited to, RAM, ROM, EEPROM, flash memory, or other memory technologies, optical storage, solid-state storage, magnetic disk storage, or any other medium that may be used to store desired information and may also be accessed by a computing device. Depending on the settings 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 exclude media such as energy, carrier signals, electromagnetic waves, and / or signals themselves when mentioned. 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 are executable by the processor 504 and, when executed, include instructions or programs that specifically program the processor 504 to perform operations that are herein considered to belong to the storage computing device 502. The functional components stored on the computer-readable medium 506 may include the management web application 124(3), the virtual machine image and quorum program package 509, a virtual machine 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. Further, although these programs are shown together in this example, in use, some or all of these programs may be executed on separate storage computing devices 502.

[0086] As an example, the virtual machine image and quorum program package 509 may be obtained by the administrative user 120 from a repository associated with the third network storage 104(3). For example, the third network storage 104(3) may include a virtual machine image and a quorum program package 509 such as a virtual marketplace or other repository 511 that enables a user to access program packages for use in the third network storage 104(3). In some cases, the repository 511 may be located at the same site 105(3) as the network storage 104(3) and may be associated with a service provider that also provides network storage as a service. In other cases, the repository 511 may be located remotely from the network storage 104(3) and site 105(3) and may be associated with a different service provider. In any 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 and install the virtual machine 150 and quorum program 152 on a 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 from, for example, 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. Further, the virtual machine 150 may host the quorum program 152 and may enable the quorum program 152 to execute to automatically configure a quorum volume 154 on the storage 510.

[0087] In addition, the storage computing device 502 may also include other functional components and data, such as programs, drivers, etc., as well as data used or generated by the functional components, or may maintain these. Further, the storage computing device 502 may include many other logical components, program components, and physical components, and those described above among these are merely examples relevant to the discussion in this specification.

[0088] One or more communication interfaces 508 may include one or more software and hardware components for enabling communication with various other devices via one or more networks 106, etc. For example, the communication interface 508 may enable communication via one or more of LAN, Internet, cable network, cellular network, wireless network (e.g., Wi-Fi) and wired network (e.g., fiber channel, optical fiber, Ethernet), direct connection, as well as short-range communication such as BLUETOOTH (registered trademark), as further enumerated elsewhere in this specification.

[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 set array 514 in a configuration such as an erasure code protection configuration, or any of various other configurations such as a RAID configuration, JBOD configuration, etc., and / or present storage extents, logical units, etc. based on storage device 516, and control array 514 for managing data stored on 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] FIG. 6 shows selected components of a configuration example of network storages 104(1) and 104(2) that perform replication according to some implementations. Network storages 104(1) and 104(2) may have a hardware configuration similar to that described above with respect to network storage 104(3) of FIG. 5, but may include different functional components and data. For example, as shown, the functional components stored in computer-readable media 506 of network storages 104(1) and 104(2) may include a management web application 124 and a storage program 140, and the management web application 124 and the storage program 140 may include a data replication program 142 and a quorum communication program 146, each of which may include one or more computer programs, applications, executable code, executable scripts, or portions thereof. Further, although these programs are shown together in this example, in use, some or all of these programs may be executed on separate storage computing devices 502.

[0091] For example, the storage program 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, the controller 152 may set the array 514 in a configuration such as an erase code protection configuration, or any of various other configurations such as a RAID configuration, a JBOD configuration, etc., present the storage extent, logical unit, etc. to the storage program 140, and control the array 514 to manage the data stored on the underlying physical storage device 516, etc. The storage device 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 shows an example of selected components of one or more service computing devices 102 that may be used to implement a portion 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 be additionally or alternatively used. The plurality of service computing devices 102 may be arranged together or separately, and may be organized, for example, as virtual servers, server banks, and / or server farms. The functionality described may be provided by a single entity or enterprise's server, or by a plurality of different entities or enterprises' servers and / or services.

[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 multiple processing units, and may include a 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 operates signals based on operation instructions. As an example, the processor 702 may include one or more hardware processors and / or any suitable type of logic circuit 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 in the computer-readable media 704, and these instructions may program the processor 702 to perform the functions described herein.

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

[0095] Depending on the settings of the service computing device 102, the computer-readable medium 704 may be a tangible non-transitory medium in cases where non-transitory computer-readable media are mentioned as excluding media such as energy, carrier signals, electromagnetic waves, and / or signals themselves. In some cases, the computer-readable medium 704 may be in the same location as the service computing device 102, but in other cases, the computer-readable medium 704 may be partially remote from the service computing device 102.

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

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

[0098] The communication interface 706 or more may include one or more software and hardware components to enable communication with various other devices via one or more networks 106 or more. For example, the communication interface 706 may enable communication via one or more of LAN, Internet, cable network, cellular network, wireless network (e.g., Wi-Fi), and wired network (e.g., fiber channel, optical fiber, Ethernet), direct connection, and short-range communication such as BLUETOOTH (registered trademark), as further enumerated elsewhere in this specification.

[0099] FIG. 8 shows an example of selected components of the management device 110 according to some implementations. The management device 110 may include any one of several different types of computing devices, such as a desktop, laptop, tablet computing device, mobile device, smartphone, wearable device, terminal, workstation, server, and / or any other type of computing device capable of transmitting data via 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 include one or more processors or processing cores. For example, 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 operates signals based on operational instructions. In some cases, processor 802 may be one or more hardware processors and / or any suitable type of logic circuit that is specifically programmed or configured to execute the algorithms and processes described herein. Processor 802 may be configured to fetch and execute computer-readable processor-executable instructions stored in computer-readable media 804.

[0101] Depending on the settings 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 implemented in any type of technology for storing information such as computer-readable processor-executable instructions, data structures, program modules, or other data, and / or removable and non-removable media. 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. Further, 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 media that can be used to store information and can 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 capable of storing instructions, modules, or components executable by the processor 802. Further, when referring to non-transitory computer-readable media, non-transitory computer-readable media exclude 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 may include instructions or programs that are executable by the processor 802 and, when executed, implement the operational logic for performing the operations and services attributed to the management device 110 above. The functional components of the management device 110 stored on the computer-readable medium 804 may include, as described above, a management application 122 that may enable the management device 110 to interact with the network storage 104 and the service computing device 102.

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

[0104] Communication interface 806 may include one or more interfaces and hardware components to enable communication with various other devices, either via network 106 or directly. For example, communication interface 806 may enable communication via one or more of the Internet, cable network, cellular network, wireless network (e.g., Wi-Fi), and wired network, as well as short-range communication such as BLUETOOTH (R), BLUETOOTH (R) low energy, as further enumerated elsewhere in this specification.

[0105] The management device 110 may further include one or more I / O devices 808. The I / O device 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 device 108 may further include a speaker, a microphone, a camera, and various user control devices (e.g., buttons, joysticks, keyboards, keypads, touch pads, mice, etc.), a tactile output device, and the like. Additionally, the management device 110 may include various other components not shown, examples of which include removable storage, a battery, and a power source such as a power control unit. Further, the client computing device 108 may include a hardware structure and components similar to those described for the management device 110, but having one or more different functional components.

[0106] The 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. Generally, the terms program and application may be used synonymously and may include instructions, routines, scripts, modules, objects, components, data structures, executable code, etc. for performing a particular task or implementing a particular data type. These programs, applications, etc. may be executed as native code or downloaded and executed in a virtual machine or other just-in-time compilation execution environment. Generally, the functions 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 a computer storage medium or transmitted via some form of communication medium.

[0107] The subject matter is described in terms of expressions specialized to structural features and / or methodological acts, but it should 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 exemplary 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 via a network of 1 or more, wherein data includes a first network storage replicated between the second network storage and the third network storage, the computing device, 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, at least based on implementing the virtual machine, by the computing device, for creating a logical volume on a storage device associated with the computing device, and in the logical volume, for creating at least one target volume for receiving quorum information from at least one of the second network storage or the third network storage, the quorum information indicating operating conditions of at least one of the second network storage or the third network storage, executing the executable instructions for creating the target volume, 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 operations are receiving, from a repository associated with a service provider associated with the first network storage, the virtual machine image and the executable instructions for creating the quorum component The system according to claim 1, further comprising.

3. The operation is performed by the computing device, before creating the logical volume, to identify a storage device to be used for creating the logical volume, partition the storage device to create partitions, and create the logical volume on the partition The system according to claim 1, further comprising executing the executable instructions for doing so. **Claim 4** The operation is performed by the computing device, create a file system for the logical volume, create a mount point for the file system, and mount the file system The system according to claim 1, further comprising executing the executable instructions for doing so. **Claim 5** The target volume is an Internet Small Computer Systems Interface (iSCSI) target volume, the system according to claim 1. **Claim 6** The operation is performed by the computing device, and further comprises executing the executable instructions for mapping the iSCSI target volume onto a logical unit number, the system according to claim 5. **Claim 7** 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, the system according to claim 1. **Claim 8** The operation is performed by the computing device, determine an iSCSI qualified name (IQN) associated with the second network storage, and further comprises executing the executable instructions for establishing the iSCSI path based at least on the IQN associated with the second network storage, the system according to claim 7. **Claim 9** The operation is performed by the computing device to send to a user computing device information for presenting a user interface to the user computing device, and performed by the computing device to receive, via the user interface, an instruction to add a quorum volume. Based on the instruction of the command to add the quorum volume, determine free storage space for the new volume, and associate the new volume and the logical unit number with the free storage space The system according to claim 1, further comprising.

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

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

12. Receiving, by a computing device of a first network storage, a virtual machine image and executable instructions for creating quorum components of a second network storage and a third network storage, wherein 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; at least based on implementing the virtual machine, by the computing device, for creating a logical volume on a storage device associated with the computing device In the logical volume, to create at least one target volume for receiving quorum information from at least one of the second network storage or the third network storage, wherein the quorum information indicates an operating condition of at least one of the second network storage or the third network storage, and executing the executable instructions for creating the target volume. 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 the above.

13. Receiving, from a repository associated with a service provider associated with the first network storage, the virtual machine image and the executable instructions for creating the quorum component. The method according to claim 12, further comprising the above.

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, wherein the operations include: The operations include: Receiving, by the computing device, a virtual machine image and executable instructions for creating quorum components of a second network storage and a third network storage, and 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. Based at least on implementing the virtual machine, by the computing device, For creating a logical volume on a storage device associated with the computing device. In the logical volume, to create at least one target volume for receiving quorum information from at least one of the second network storage or the third network storage, the quorum information indicating operating conditions of at least one of the second network storage or the third network storage, and executing the executable instructions for creating the target volume. A first connection is established between the virtual machine and the second network storage to receive first quorum information from the second network storage, and a second connection is established between the virtual machine and the third network storage to receive second quorum information from the third network storage. The virtual machine stores at least one of the first quorum information or the second quorum information in the at least one target volume. One or more non-transitory computer-readable media configured to cause the computing device to perform operations including the above.

15. The operations include receiving, from a repository associated with a service provider associated with the first network storage, the virtual machine image and the executable instructions for creating the quorum component. The non-transitory computer-readable medium according to claim 14, further comprising the above.

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