Method for operating storage device, method for operating storage system and storage module
By setting up the main storage device between storage devices and exchanging local keys using the P2P solution, the problems of low efficiency and high cost of storage device management in the prior art are solved, and efficient autonomous management and data exchange of storage devices are realized.
Patent Information
- Application Number
- CN202011479676.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-01-03
- Filing Date
- 2020-12-15
- Publication Date
- 2025-01-03
- Estimated Expiration
- 2040-12-15
AI Technical Summary
Existing network-based storage device management methods have problems of inefficiency and high cost, especially in data exchange and management between multiple storage devices, especially in the absence of additional external controllers.
By setting up the main storage device between storage devices and exchanging local keys using the P2P solution, independent configuration and management between storage devices are realized, and dependence on external controllers is avoided.
It realizes efficient management of volume and data exchange of multiple storage devices without increasing costs, and improves the management efficiency and flexibility of storage devices.
Smart Images

Figure CN113076058B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of Korean Patent Application No. 10-2020-0000589 filed on January 3, 2020 in the Korean Intellectual Property Office (KIPO), the contents of which are hereby incorporated by reference in their entirety. Technical Field
[0003] Example embodiments relate generally to semiconductor integrated circuits, and more particularly, to a method of operating a network-based storage device, a method of operating a storage system using the method of operating a network-based storage device, and a storage module executing the method of operating a network-based storage device. Background Art
[0004] Some types of data storage devices include one or more semiconductor memory devices. Examples of such data storage devices include solid-state drives (SSDs). These types of data storage devices may have various design and / or performance advantages over hard disk drives (HDDs). Examples of potential advantages include: the absence of moving mechanical parts, higher data access speeds, stability, durability, and / or low power consumption. Recently, various systems (e.g., laptops, cars, airplanes, drones, etc.) have adopted SSDs for data storage.
[0005] Recently, a network-based storage device and a storage system including the network-based storage device have been studied, in which a storage device and a host device are connected to each other through a network such as Ethernet without physically connecting the storage device to the host device. Summary of the invention
[0006] At least one example embodiment of the present disclosure provides a method of operating a network-based storage device, which can effectively manage the network-based storage device.
[0007] At least one example embodiment of the present disclosure provides a method of operating a storage system using the method of operating a network-based storage device.
[0008] At least one example embodiment of the present disclosure provides a storage module that performs a method of operating a network-based storage device.
[0009] According to an example embodiment, in a method of operating a network-based storage device, a first storage device having a first local key among a plurality of storage devices is set as a first master storage device. The storage devices are connected to each other through a network. The first storage device sets and manages volumes of at least a portion of the plurality of storage devices based on a first control signal received from an external host device. The first storage device receives a second local key from a second storage device having a second local key among the plurality of storage devices. The first storage device sends the first local key and the second local key to the external host device.
[0010] According to an example embodiment, in a method of operating a storage system including a plurality of storage devices and a host device, the storage devices are connected to each other through a first network. The host device is connected to the plurality of storage devices through a second network. A first storage device having a first local key among the plurality of storage devices is set as a first master storage device. The host device sends a first control signal for setting and managing volumes of the plurality of storage devices to the first storage device. The first storage device sets and manages volumes of at least a portion of the plurality of storage devices based on the first control signal. The first storage device receives the second local key from a second storage device having a second local key among the plurality of storage devices. The first storage device sends the first local key and the second local key to the host device. The host device sends a command, an address, and the second local key for accessing the second storage device to the first storage device. The first storage device sends the command, the address, and the second local key to the second storage device. Based on the command, the address, and the second local key, the second host device provides read data to the host device, or the second storage device receives write data from the host device. Based on a peer-to-peer scheme between the first storage device and the second storage device, without passing through the host device, the operation of the first storage device receiving the second local key from the second storage device and the operation of the first storage device sending the command, the address and the second local key to the second storage device are performed.
[0011] According to an example embodiment, a storage module includes an Ethernet switch and a plurality of storage devices, the plurality of storage devices being connected to each other through the Ethernet switch. A first storage device having a first local key among the plurality of storage devices is set as a first master storage device. The first storage device includes a storage manager. The storage manager sets and manages volumes of at least a portion of the plurality of storage devices based on a first control signal received from an external host device, receives a second local key from a second storage device having a second local key among the plurality of storage devices, and sends the first local key and the second local key to the external host device.
[0012] According to an example embodiment, in a method of operating a network-based storage device, a method of operating a storage system, and a storage module, at least one of a plurality of storage devices connected to each other via a network may be set as a primary storage device, and the remaining storage devices other than the primary storage device may be managed by the primary storage device. In addition, the primary storage device may set and manage volumes of a plurality of storage devices, and the primary storage device and the remaining storage devices may exchange data (e.g., local keys) based on a P2P scheme. Therefore, the primary storage device may configure and manage volumes of all storage devices without an additional external controller, and network-based storage devices may be effectively managed without increasing costs. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Illustrative, non-limiting example embodiments will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings.
[0014] Figure 1 is a flow chart illustrating a method of operating a network-based storage device according to an example embodiment.
[0015] Figure 2 is a block diagram illustrating a storage device and a storage system including the storage device according to example embodiments.
[0016] Figure 3 is a block diagram illustrating a storage device according to example embodiments.
[0017] Figure 4A and Figure 4B is a block diagram illustrating an example of a memory controller included in a memory device according to example embodiments.
[0018] Figure 5 is a block diagram illustrating an example of a nonvolatile memory included in a storage device according to example embodiments.
[0019] Fig. 6A , Figure 6B and Figure 6C Is used to describe Figure 1An illustration of a method of operating a network-based storage device.
[0020] Figure 7 It is shown Figure 1 A flowchart of an example of setting up and managing volumes of multiple storage devices in .
[0021] Fig. 8A , Figure 8B and Figure 8C Is used to describe Figure 7 An illustration of operations for setting up and managing volumes of multiple storage devices.
[0022] Fig. 9 is a flow chart illustrating a method of operating a network-based storage device according to an example embodiment.
[0023] Fig.10 It is shown Fig. 9 Flowchart of an example of receiving a command, an address, and a local key, and an example of accessing a target storage device.
[0024] Fig.11A and Fig. 11B Is used to describe Fig.10 Schematic diagram of the operation of .
[0025] Fig.12 It is shown Fig. 9 A flowchart of another example of receiving a command, an address, and a local key, and an example of accessing a target storage device.
[0026] Fig.13A , Fig. 13B and Fig. 13C Is used to describe Fig.12 Schematic diagram of the operation of .
[0027] Fig.14 It is shown Fig. 9 A flowchart of another example of receiving a command, an address, and a local key, and an example of accessing a target storage device.
[0028] Fig.15 Is used to describe Fig.14 Schematic diagram of the operation of .
[0029] Fig.16 is a flow chart illustrating a method of operating a network-based storage device according to an example embodiment.
[0030] Fig.17 is a block diagram illustrating a storage device and a storage system including the storage device according to example embodiments.
[0031] Fig.18 is a flow chart illustrating a method of operating a network-based storage device according to an example embodiment.
[0032] Fig.19 is a flow chart illustrating a method of operating a network-based storage device according to an example embodiment.
[0033] Fig. 20A and Fig. 20B Is used to describe Fig.19 An illustration of a method of operating a network-based storage device.
[0034] Fig.21 is a flow chart illustrating a method of operating a network-based storage device according to an example embodiment.
[0035] Fig.22A , Fig. 22B and Fig. 22C Is used to describe Fig.21 An illustration of a method of operating a network-based storage device.
[0036] Fig.23 is a flow chart illustrating a method of operating a network-based storage device according to an example embodiment.
[0037] Fig.24 Is used to describe Fig.23 An illustration of a method of operating a network-based storage device.
[0038] Fig.25 is a block diagram illustrating a storage server including a storage device according to an example embodiment. DETAILED DESCRIPTION
[0039] Various example embodiments will be described more fully with reference to the accompanying drawings showing the embodiments. However, the present disclosure can be implemented in many different forms and should not be interpreted as being limited to the embodiments set forth herein. Throughout this application, the same reference numerals refer to the same elements.
[0040] Figure 1 is a flow chart illustrating a method of operating a network-based storage device according to an example embodiment.
[0041] Reference Figure 1 , the storage devices are connected to each other through a network such as Ethernet to perform the method of operating a network-based storage device according to an example embodiment. Figure 2 The configuration of a plurality of storage devices and the configuration of a storage system including the plurality of storage devices are described.
[0042] In a method of operating a network-based storage device according to an example embodiment, a first storage device having a first local key among a plurality of storage devices is set as a primary storage device (step S100). The first local key may be used by an external host device to access the first storage device and may be referred to as a first reference key.
[0043] The first storage device sets and manages volumes (or capacities) of the plurality of storage devices based on a first control signal received from an external host device (step S200). For example, the volumes of the plurality of storage devices may be set and managed based on a logical volume implementation (or configuration) scheme or a virtual volume implementation scheme through virtualization. For example, the first storage device may set and manage volumes of all storage devices in the plurality of storage devices or volumes of at least a portion of the storage devices in the plurality of storage devices.
[0044] The first storage device receives a second local key from a second storage device having a second local key among the plurality of storage devices (step S300). For example, the operation of the first storage device receiving the second local key from the second storage device may be performed based on a peer-to-peer (P2P) scheme between the first storage device and the second storage device without passing through the host device.
[0045] The first storage device sends the first local key and the second local key to the external host device (step S400). Fig. 9 As described, the external host device may use the first local key and the second local key to access the first storage device and the second storage device.
[0046] Although for ease of explanation, Figure 1 It is shown that in step S300 the first storage device only receives the second local key, and in step S400 the first storage device only sends the first local key and the second local key, but example embodiments are not limited thereto. For example, step S300 may be described as the first storage device receiving local keys from all storage devices managed by itself, and step S400 may be described as the first storage device sending its own local key and the local key received in step S300 to the external host device.
[0047] In a method of operating a network-based storage device according to an example embodiment, at least one of a plurality of storage devices connected to each other through a network may be set as a master storage device (or a master storage device), and the remaining storage devices (or slave storage devices) other than the master storage device may be managed by the master storage device. In addition, the master storage device may set and manage volumes of a plurality of storage devices, and the master storage device and the remaining storage devices may exchange data (e.g., local keys) based on a P2P scheme. Therefore, the master storage device may configure and manage volumes of all storage devices without an additional external controller, and the network-based storage device may be effectively managed without increasing costs.
[0048] Figure 2 is a block diagram illustrating a storage device and a storage system including the storage device according to example embodiments.
[0049] Reference Figure 2 The storage system 100 includes a host device 200 , a network switch 250 , and a plurality of storage devices 270 a , 270 b , . . . , 270 n . The storage system 100 may further include a first network 210 and a second network 230 .
[0050] The host device 200 controls the overall operation of the storage system 100. Figure 2 , but the host device 200 may include a host processor and a host memory. The host processor may control the operation of the host device 200. For example, the host processor may execute an operating system (OS). The host memory may store instructions and / or data executed and / or processed by the host processor. For example, the operating system executed by the host processor may include a file system for file management and a device driver for controlling peripheral devices including multiple storage devices 270a to 270n at the operating system level.
[0051] The plurality of storage devices 270a to 270n are accessed by the host device 200. The plurality of storage devices 270a to 270n may perform reference Figure 1 The method according to the example embodiment is described. For example, the first storage device 270a among the plurality of storage devices 270a to 270n may be set as a primary storage device, and the first storage device 270a may perform volume setting and management operations, local key receiving operations, and local key sending operations. The first storage device 270a may include a storage manager 272a for performing the above operations. Figure 3 The configuration of each of the plurality of storage devices 270a to 270n is described.
[0052] Although for ease of explanation, Figure 2It is shown that only the first storage device 270a includes the storage manager 272a, but example embodiments are not limited thereto. For example, each of the plurality of storage devices 270a to 270n may include a storage manager, and only the storage manager 272a included in the first storage device 272a set as the primary storage device may be activated.
[0053] The plurality of storage devices 270a to 270n are connected to each other through the first network 210. The plurality of storage devices 270a to 270n may be connected to the host device 200 through the second network 230. The network switch 250 may connect the plurality of storage devices 270a to 270n to each other through the first network 210, and may connect the plurality of storage devices 270a to 270n to the host device 200 through the second network 230.
[0054] The network switch 250 and the plurality of storage devices 270 a to 270 n connected to each other through the network switch 250 may form one storage module.
[0055] In some example embodiments, the first network 210 and the second network 230 may be Ethernet, and the network switch 250 may be an Ethernet switch. However, example embodiments are not limited thereto, and the first network 210 and the second network 230 may be one of various wired / wireless networks such as a local area network (LAN), a wide area network (WAN), Wi-Fi, etc.
[0056] In some example embodiments, all storage devices of the plurality of storage devices 270a to 270n may be set or positioned in a first space (e.g., in the same space). In other example embodiments, some storage devices of the plurality of storage devices 270a to 270n may be set in a first space (e.g., a local space), while other storage devices of the plurality of storage devices 270a to 270n may be set in a second space (e.g., a remote space) separate from the first space. For example, the same space may represent the same office on the same floor in the same building, while different spaces separated from each other may represent offices on different floors in the same building or offices in different buildings. According to an example embodiment, when network-based storage devices that are physically separated from each other are driven, a storage device that can be effectively operated may be selected and implemented as a primary storage device.
[0057] Figure 3 is a block diagram illustrating a storage device according to example embodiments.
[0058] Reference Figure 3, the storage device 300 may include a connector (CN) 302 , a storage controller 310 , a plurality of non-volatile memories (NVMs) 320 a , 320 b , and 320 c , and a buffer memory 330 .
[0059] The storage controller 310 may be based on the host device (e.g., Figure 2 The host device 200 in the memory 300 receives commands, addresses and data to control the operation of the storage device 300 and / or the operation of multiple non-volatile memories 320a, 320b and 320c.
[0060] The storage controller 310 may include a storage manager 312. The storage manager 312 may correspond to Figure 2 The storage manager 272a included in the first storage device 270a may perform a reference Figure 1 However, example embodiments are not limited thereto, and the storage manager 312 may be implemented as a separate component outside the storage controller 310 .
[0061] The plurality of nonvolatile memories 320a, 320b, and 320c may store a plurality of data. For example, the plurality of nonvolatile memories 320a, 320b, and 320c may store metadata, various user data, and the like.
[0062] In some example embodiments, the plurality of nonvolatile memories 320a, 320b, and 320c may each include a NAND flash memory. In other example embodiments, the plurality of nonvolatile memories 320a, 320b, and 320c may each include one of the following: an electrically erasable programmable read-only memory (EEPROM), a phase change random access memory (PRAM), a resistive random access memory (RRAM), a nano-floating gate memory (NFGM), a polymer random access memory (PoRAM), a magnetic random access memory (MRAM), a ferroelectric random access memory (FRAM), etc.
[0063] The buffer memory 330 may store instructions and / or data executed and / or processed by the memory controller 310, and may temporarily store data stored in the plurality of non-volatile memories 320a, 320b, and 320c or data to be stored in the plurality of non-volatile memories 320a, 320b, and 320c. For example, the buffer memory 330 may include at least one of various volatile memories (e.g., dynamic random access memory (DRAM), static random access memory (SRAM), etc.).
[0064] Connector 302 can connect storage device 300 to a network switch (e.g., Figure 2For example, the connector 302 may include a socket into which a wired cable connecting the storage device 300 and the network switch 250 is inserted, or a wireless communication module for connecting the storage device 300 and the network switch 250.
[0065] In some example embodiments, the storage device 300 may be a solid state drive (SSD). For example, the storage device 300 may be an Ethernet-based SSD that exchanges signals and data based on a network (i.e., Ethernet). In other example embodiments, the storage device 300 may be one of the following: a universal flash memory (UFS), a multimedia card (MMC), an embedded multimedia card (eMMC), a secure digital (SD) card, a micro SD card, a memory stick, a chip card, a universal serial bus (USB) card, a smart card, a compact flash (CF) card, etc.
[0066] In some example embodiments, the storage device 300 may be connected to the host device 200 via a block accessible interface, which may include, for example, UFS, eMMC, a serial advanced technology attachment (SATA) bus, a non-volatile memory express (NVMe) bus, a serial attached SCSI (SAS) bus, etc. The storage device 300 may provide a block accessible interface to the host device 200 using a block accessible address space corresponding to an access size of the plurality of non-volatile memories 320a, 320b, and 320c to allow access to data stored in the plurality of non-volatile memories 320a, 320b, and 320c in units of memory blocks.
[0067] In some example embodiments, a storage system (eg, Figure 2 The storage system 100 in the embodiment may be any computing system, such as a personal computer (PC), a server computer, a data center, a workstation, a digital television, a set-top box, a navigation system, etc. In other example embodiments, the storage system 100 may be any mobile system, such as a mobile phone, a smart phone, a tablet computer, a laptop computer, a personal digital assistant (PDA), a portable multimedia player (PMP), a digital camera, a portable game console, a music player, a camcorder, a video player, a navigation device, a wearable device, an Internet of Things (IoT) device, an Internet of Everything (IoE) device, an e-book reader, a virtual reality (VR) device, an augmented reality (AR) device, a robotic device, a drone, etc.
[0068] Figure 4A and Figure 4B is a block diagram illustrating an example of a memory controller included in a memory device according to example embodiments.
[0069] Reference Figure 4A , the storage controller 400 a may include at least one processor 410 , a memory 420 , a volume manager 430 a , a host interface 440 , an error correction code (ECC) block 450 , and a memory interface 460 .
[0070] Processor 410 may respond to a request from a host device (eg, Figure 2 In some example embodiments, the processor 410 may control the operation of the storage controller 400a by using a method for operating a storage device (e.g., Figure 3 The firmware of the storage device 300) in the storage device is used to control the various components.
[0071] The memory 420 may store instructions and data executed and processed by the processor 410. For example, the memory 420 may be implemented with a volatile memory having a relatively small capacity and high speed, such as a static random access memory (SRAM), a cache memory, etc.
[0072] The volume manager 430a may be configured to correspond to Figure 3 In other words, in Figure 4A In the example of FIG. 4 , the storage manager 312 may be implemented in the form of a volume manager 430 a. The volume manager 430 a may be configured and managed based on a logical volume implementation or a virtual volume implementation through virtualization to configure and manage multiple storage devices (eg, Figure 2 In addition, the volume manager 430a may control the transmission of local keys between the plurality of storage devices 270a to 270n based on a P2P scheme.
[0073] The ECC block 450 for error correction may perform coding modulation using Bose-Chaudhuri-Hocquenghem (BCH) code, low-density parity-check (LDPC) code, turbo code, Reed-Solomon code, convolutional code, recursive systematic code (RSC), trellis coded modulation (TCM), block coded modulation (BCM), etc., or may perform ECC encoding and ECC decoding using the above codes or other error correction codes.
[0074] The host interface 440 may provide a physical connection between the host device 200 and the storage device 300. The host interface 440 may provide an interface corresponding to the bus format of the host for communication between the host device 200 and the storage device 300. In some example embodiments, the bus format of the host device 200 may be a small computer system interface (SCSI) or a serial attached SCSI (SAS) interface. In other example embodiments, the bus format of the host device 200 may be a USB, a peripheral component interconnect (PCI) express (PCIe), an advanced technology attachment (ATA), a parallel ATA (PATA), a serial ATA (SATA), a non-volatile memory express (NVM) (NVMe), and the like.
[0075] The memory interface 460 can communicate with a non-volatile memory (eg, Figure 3 The memory interface 460 may be connected to the nonvolatile memories 320a, 320b, and 320c via one channel. In other example embodiments, the memory interface 460 may be connected to the nonvolatile memories 320a, 320b, and 320c via two or more channels.
[0076] Reference Figure 4B , Figure 4B The storage controller 400b can be connected with Figure 4A The storage controller 400a is substantially the same except that Figure 4A The volume manager 430a in Figure 4B The module is changed to be outside the P2P module 430b.
[0077] The P2P module 430b may be configured to correspond to Figure 3 In other words, in Figure 4B In the example of FIG. 4 , the storage manager 312 may be implemented in the form of a P2P module 430 b. The P2P module 430 b may control the transmission of local keys between the plurality of storage devices 270 a to 270 n based on a P2P scheme. In addition, the P2P module 430 b may set and manage Figure 2 Volumes of multiple storage devices 270a to 270n in.
[0078] In some example embodiments, Figure 4B The P2P module 430b and / or Figure 4AAt least a portion of the volume manager 430a in the embodiment may be implemented as hardware. For example, the P2P module 430b and / or at least a portion of the volume manager 430a may be included in a computer-based electronic system. In other example embodiments, Figure 4B The P2P module 430b and / or Figure 4A At least a portion of the volume manager 430a in the system may be implemented as an instruction code or program routine (e.g., a software program). For example, the instruction code or program routine may be executed by a computer-based electronic system and may be stored in any storage device located inside or outside the computer-based electronic system.
[0079] Figure 5 is a block diagram illustrating an example of a nonvolatile memory included in a storage device according to example embodiments.
[0080] Reference Figure 5 , the nonvolatile memory 500 includes a memory cell array 510 , an address decoder 520 , a page buffer circuit 530 , a data input / output (I / O) circuit 540 , a voltage generator 550 , and a control circuit 560 .
[0081] The memory cell array 510 is connected to the address decoder 520 via a plurality of string selection lines SSL, a plurality of word lines WL, and a plurality of ground selection lines GSL. The memory cell array 510 is also connected to the page buffer circuit 530 via a plurality of bit lines BL. The memory cell array 510 may include a plurality of memory cells (e.g., a plurality of nonvolatile memory cells) connected to the plurality of word lines WL and the plurality of bit lines BL. The memory cell array 510 may be divided into a plurality of memory blocks BLK1, BLK2, ..., BLKz each including a memory cell. In addition, the plurality of memory blocks BLK1 to BLKz may each be divided into a plurality of pages.
[0082] In some example embodiments, a plurality of memory cells may be arranged in a two-dimensional (2D) array structure or a three-dimensional (3D) vertical array structure. The three-dimensional vertical array structure may include a vertical cell string oriented vertically such that at least one memory cell is located above another memory cell. At least one memory cell may include a charge trapping layer. The following patent documents (the entire contents of which are incorporated herein by reference) describe suitable configurations of memory cell arrays including a 3D vertical array structure, wherein the three-dimensional memory array is configured into multiple levels with word lines and / or bit lines shared between the levels: U.S. Patent Nos. 7,679,133, 8,553,466, 8,654,587, 8,559,235 and U.S. Patent Publication No. 2011 / 0233648.
[0083] The control circuit 560 receives the signal from the outside (eg, Figure 2 The host device 200 and / or Figure 3 The storage controller 310 in the non-volatile memory 500 receives the command CMD and the address ADDR, and controls the erase, program and read operations of the non-volatile memory 500 based on the command CMD and the address ADDR. The erase operation may include performing a series of erase cycles, and the program operation may include performing a series of program cycles. Each program cycle may include a program operation and a program verification operation. Each erase cycle may include an erase operation and an erase verification operation. The read operation may include a normal read operation and a data recovery read operation.
[0084] For example, the control circuit 560 may generate a control signal CON for controlling the voltage generator 550 based on the command CMD, may generate a control signal PBC for controlling the page buffer circuit 530, and may generate a row address R_ADDR and a column address C_ADDR based on the address ADDR. The control circuit 560 may provide the row address R_ADDR to the address decoder 520, and may provide the column address C_ADDR to the data I / O circuit 540.
[0085] The address decoder 520 may be connected to the memory cell array 510 via a plurality of string selection lines SSL, a plurality of word lines WL, and a plurality of ground selection lines GSL.
[0086] For example, in a data erase / write / read operation, the address decoder 520 can determine at least one word line among the multiple word lines WL as a selected word line based on the row address R_ADDR, and can determine the remaining word lines among the multiple word lines WL except the selected word line as unselected word lines.
[0087] In addition, in data erase / write / read operations, the address decoder 520 can determine at least one string selection line among the multiple string selection lines SSL as a selected string selection line based on the row address R_ADDR, and can determine the remaining or remaining string selection lines among the multiple string selection lines SSL except the selected string selection line as unselected string selection lines.
[0088] In addition, in data erase / write / read operations, the address decoder 520 can determine at least one ground selection line among the multiple ground selection lines GSL as a selected ground selection line based on the row address R_ADDR, and can determine the remaining or remaining ground selection lines among the multiple ground selection lines GSL except the selected ground selection line as unselected ground selection lines.
[0089] The voltage generator 550 may generate a voltage VS required for the operation of the nonvolatile memory 500 based on the received power PWR and the control signal CON. The voltage VS may be applied to a plurality of string selection lines SSL, a plurality of word lines WL, and a plurality of ground selection lines GSL via the address decoder 520. In addition, the voltage generator 550 may generate an erase voltage VERS required for a data erase operation based on the power PWR and the control signal CON. The erase voltage VERS may be applied directly to the memory cell array 510 or to the memory cell array 510 via the bit line BL.
[0090] For example, during an erase operation, the voltage generator 550 may apply an erase voltage VERS to a common source line and / or a bit line BL of a memory block (e.g., a selected memory block), and may apply an erase permission voltage (e.g., a ground voltage) to all or part of the word lines of the memory block via the address decoder 520. In addition, during an erase verification operation, the voltage generator 550 may apply an erase verification voltage to all word lines of the memory block simultaneously, or sequentially to the word lines one by one.
[0091] For example, during a program operation, the voltage generator 550 may apply a program voltage to a selected word line and may apply a program pass voltage to unselected word lines via the address decoder 520. Additionally, during a program verification operation, the voltage generator 550 may apply a program verification voltage to a selected word line and may apply a verification pass voltage to unselected word lines via the address decoder 520.
[0092] In addition, during a normal read operation, the voltage generator 550 may apply a read voltage to a selected word line and may apply a read pass voltage to unselected word lines via the address decoder 520. During a data recovery read operation, the voltage generator 550 may apply a read voltage to word lines adjacent to the selected word line via the address decoder 520 and may apply a recovery read voltage to the selected word line.
[0093] The page buffer circuit 530 may be connected to the memory cell array 510 via a plurality of bit lines BL. The page buffer circuit 530 may include a plurality of page buffers. In some example embodiments, each page buffer may be connected to one bit line. In other example embodiments, each page buffer may be connected to two or more bit lines.
[0094] The page buffer circuit 530 may store data DAT to be programmed into the memory cell array 510 or may read data DAT sensed from the memory cell array 510. In other words, the page buffer circuit 530 may function as a write driver or a sense amplifier according to an operation mode of the nonvolatile memory 500.
[0095] The data I / O circuit 540 may be connected to the page buffer circuit 530 via the data line DL. The data I / O circuit 540 may provide data DAT from the outside of the nonvolatile memory 500 to the memory cell array 510 via the page buffer circuit 530 based on the column address C_ADDR, or may provide data DAT from the memory cell array 510 to the outside of the nonvolatile memory 500.
[0096] Fig. 6A , Figure 6B and Figure 6C Is used to describe Figure 1 A diagram of a method of operating a network-based storage device. Fig. 6A , Figure 6B and Figure 6C In the following figures, for the convenience of description, the example embodiment will be described based on a case where the storage system 100a includes four storage devices 270a, 270b, 270c, and 270d.
[0097] Reference Figure 1 and Fig. 6A , after the first storage device 270a is set as the primary storage device (step S100), the host device 200 may send a first control signal CONT1 to the first storage device 270a. The first control signal CONT1 may be provided to the storage manager 272a of the first storage device 270a through the second network 230, the network switch 250, and the first network 210. The first control signal CONT1 may be a signal for setting, controlling, and managing volumes of the plurality of storage devices 270a to 270d.
[0098] Thereafter, as described with reference to step S200, the storage manager 272a of the first storage device 270a may set and manage volumes of the plurality of storage devices 270a to 270d based on the first control signal CONT1. Figure 7 Step S200 is described in detail.
[0099] Reference Figure 1 and Figure 6B, as described with reference to step S300, the first storage device 270a may receive local keys LK2, LK3, and LK4 from the remaining storage devices 270b to 270d managed by the first storage device 270a. The local keys LK2 to LK4 may be provided to the storage manager 272a of the first storage device 270a through the first network 210 and the network switch 250. As described above, the local keys LK2 to LK4 may be sent based on a P2P scheme, and the local keys LK2 to LK4 may be directly transmitted from the storage devices 270b to 270d to the first storage device 270a through the network switch 250 instead of passing through the host device 200. In addition, the first storage device 270a may also provide its own local key LK1 to the storage manager 272a.
[0100] The local key (or reference key) may be a specific, unique and / or inherent key of the storage device, and may include storage area (or storage area) access information and / or pointer information required for the host device 200 to access the storage device. For example, the local key may be a remote direct memory access (RDMA) key. For example, the RDMA key may be an RDMA over Converged Ethernet v2 (RoCEv2) key based on the User Datagram Protocol (UDP), or an Internet Wide Area RDMA Protocol (iWARP) key based on the Transmission Control Protocol (TCP), but is not limited thereto.
[0101] Reference Figure 1 and Figure 6C As described with reference to step S400, the first storage device 270a may send the local keys LK1 to LK4 to the host device 200. The local keys LK1 to LK4 may be provided to the host device 200 through the first network 210, the network switch 250, and the second network 230.
[0102] Afterwards, if you refer to Fig. 9 As described, the host device 200 may access at least one of the plurality of storage devices 270 a to 270 d using at least one of the local keys LK1 to LK4 .
[0103] Figure 7 It is shown Figure 1 A flowchart of an example of setting up and managing volumes for multiple storage devices. Fig. 8A , Figure 8B and Figure 8C Is used to describe Figure 7 An illustration of operations for setting up and managing volumes of multiple storage devices.
[0104] Reference Figure 1 and Figure 7When setting and managing volumes of multiple storage devices (step S200), the multiple storage devices may be divided into at least two partitions (step S210). For example, the multiple storage devices may be divided into multiple partitions based on a logical volume implementation or a virtual volume implementation through virtualization.
[0105] According to example embodiments, an operation of setting and managing volumes of a plurality of storage devices may be performed at an initial operation time (eg, at boot time), or may be performed by a user request when driving the plurality of storage devices.
[0106] Hereinafter, step S210 will be described in detail based on a case where a plurality of storage devices are divided into two partitions.
[0107] Reference Fig. 8A , the plurality of storage devices 270a to 270d may be divided into a first partition PT11 having a first volume and a second partition PT12 having a second volume. Fig. 8A In the example of, the first partition PT11 and the second partition PT12 can both be set to correspond to all storage devices in the plurality of storage devices 270a to 270d. For example, the first partition PT11 can include a portion of all storage devices in the plurality of storage devices 270a to 270d, and the second partition PT12 can include another portion of all storage devices in the plurality of storage devices 270a to 270d. In addition, the first volume of the first partition PT11 and the second volume of the second partition PT12 can be substantially equal or identical to each other.
[0108] Reference Figure 8B , the plurality of storage devices 270a to 270d may be divided into a first partition PT21 having a first volume and a second partition PT22 having a second volume. Figure 8B In the example of , each of the first partition PT21 and the second partition PT22 may be set to correspond to all storage devices of the plurality of storage devices 270a to 270d. In addition, the first volume of the first partition PT21 and the second volume of the second partition PT22 may be different from each other.
[0109] Reference Figure 8C , the plurality of storage devices 270a to 270d may be divided into a first partition PT31 having a first volume and a second partition PT32 having a second volume. Figure 8CIn the example of FIG. 1 , each of the first partition PT31 and the second partition PT32 may be set to correspond to only some of the plurality of storage devices 270a to 270d. For example, the first partition PT31 may include all of the storage devices 270a and 270b, and the second partition PT32 may include all of the other storage devices 270c and 270d. In addition, the first volume of the first partition PT31 and the second volume of the second partition PT32 may be substantially equal to each other.
[0110] Despite Figure 8C Although not shown in FIG. 1 , when each partition is set to correspond to only some of the plurality of storage devices 270 a to 270 d, the partitions may have different volumes. Fig. 8A , Figure 8B and Figure 8C It is illustrated that a plurality of storage devices are divided into two partitions, but example embodiments are not limited thereto and the number of partitions may be variously changed according to example embodiments.
[0111] Fig. 9 is a flowchart illustrating a method of operating a network-based storage device according to an example embodiment. Figure 1 Duplicate description.
[0112] Reference Fig. 9 , in a method of operating a network-based storage device according to an example embodiment, Fig. 9 Steps S100, S200, S300 and S400 in Figure 1 Steps S100, S200, S300 and S400 in the embodiment are substantially the same.
[0113] The first storage device receives a command, an address, and a local key for accessing a target storage device from an external host device (step S500), and the target storage device is accessed based on the received command, the received address, and the received local key (step S600). For example, the target storage device may be the first storage device, or at least one of the remaining storage devices managed by the first storage device among a plurality of storage devices. The operations of steps S500 and S600 may be changed depending on the target storage device. Fig.10 , Fig.12 and Fig.14 Describe this.
[0114] Fig.10 It is shown Fig. 9 Flowchart of an example of receiving a command, an address, and a local key, and an example of accessing a target storage device. Fig.11A and Fig. 11B Is used to describe Fig.10 Schematic diagram of the operation of .
[0115] Reference Fig. 9 , Fig.10 , Fig.11A and Fig. 11B , when receiving a command, an address, and a local key for accessing a target storage device (step S500), the first storage device 270a may receive a first command CMD1, a first address ADDR1, and a first local key LK1 for accessing the first storage device 270a from the host device 200 (step S510). In other words, Fig.10 , Fig.11A and Fig. 11B An example is shown in which the first storage device 270a is the target storage device.
[0116] When accessing the target storage device (step S600), the first storage device 270a and the host device 200 may directly exchange data based on the first command CMD1, the first address ADDR1, and the first local key LK1 (step S610). For example, when the first command CMD1 is a write command, the first write data WDAT1 to be stored in the first storage device 270a may be directly provided from the host device 200 to the first storage device 270a. When the first command CMD1 is a read command, the first read data RDAT1 stored in the first storage device 270a may be acquired (or retrieved) and provided directly from the first storage device 270a to the host device 200. For example, a storage area in which the first write data WDAT1 is to be stored and / or a storage area in which the first read data RDAT1 is stored may be accessed by a combination of the first address ADDR1 and the first local key LK1.
[0117] Fig.12 It is shown Fig. 9 A flowchart of another example of receiving a command, an address, and a local key, and an example of accessing a target storage device. Fig.13A , Fig. 13B and Fig. 13C Is used to describe Fig.12 The following diagram will be omitted. Fig.10 , Fig.11A and Fig. 11B Duplicate description.
[0118] Reference Fig. 9 , Fig.12 , Fig.13A , Fig. 13B and Fig. 13C, when receiving the command, address, and local key for accessing the target storage device (step S500), the first storage device 270a may receive the second command CMD2, the second address ADDR2, and the second local key LK2 for accessing the second storage device 270b from the host device 200 (step S520). In other words, Fig.12 , Fig.13A , Fig. 13B and Fig. 13C An example is shown in which the second storage device 270b is the target storage device.
[0119] The first storage device 270a may send a second command CMD2, a second address ADDR2, and a second local key LK2 to the second storage device 270b (step S530). Figure 1 and Fig. 9 In step S300, the operation of the second storage device 270b receiving the second command CMD2, the second address ADDR2, and the second local key LK2 from the first storage device 270a may also be performed based on the P2P scheme.
[0120] When accessing the target storage device (step S600), the second storage device 270b and the host device 200 can directly exchange data based on the second command CMD2, the second address ADDR2 and the second local key LK2 without passing through the first storage device 270a (step S620). For example, depending on whether the second command CMD2 is a write command or a read command, the second write data WDAT2 to be stored in the second storage device 270b can be directly provided from the host device 200 to the second storage device 270b, or the second read data RDAT2 stored in the second storage device 270b can be obtained and provided directly from the second storage device 270b to the host device 200.
[0121] exist Fig.12 , Fig.13A , Fig. 13B and Fig. 13C In the example, in addition to the data WDAT2 or RDAT2, the second command CMD2, the second address ADDR2, and the second local key LK2 can be sent to the second storage device 270b based on the P2P scheme after being received by the first storage device 270a as the main storage device, and the data WDAT2 or RDAT2 can be directly exchanged between the second storage device 270b and the host device 200 without passing through the first storage device 270a.
[0122] Fig.14 It is shown Fig. 9 A flowchart of another example of receiving a command, an address, and a local key, and an example of accessing a target storage device. Fig.15Is used to describe Fig.14 The following diagram will be omitted. Fig.10 , Fig.11A , Fig. 11B , Fig.12 , Fig.13A , Fig. 13B and Fig. 13C Duplicate description.
[0123] Reference Fig. 9 , Fig.14 and Fig.15 , when receiving a command, an address and a local key for accessing a target storage device (step S500), Fig.14 Steps S520 and S530 in Fig.12 Steps S520 and S530 in are substantially the same.
[0124] When accessing the target storage device (step S600), the second storage device 270b and the host device 200 may exchange data through the first storage device 270a based on the second command CMD2, the second address ADDR2, and the second local key LK2 (step S630). For example, depending on whether the second command CMD2 is a write command or a read command, the second write data WDAT2 to be stored in the second storage device 270b may be provided from the host device 200 to the second storage device 270b through the first storage device 270a, or the second read data RDAT2 stored in the second storage device 270b may be acquired and provided from the second storage device 270b to the host device 200 through the first storage device 270a.
[0125] exist Fig.14 and Fig.15 In the example of FIG. 2 , in addition to the second command CMD2 , the second address ADDR2 , and the second local key LK2 , data WDAT2 or RDAT2 may also be transmitted and / or exchanged through the first storage device 270 a .
[0126] although Figures 10 to 15 It is illustrated that only one of the plurality of storage devices 270a to 270d is accessed, but example embodiments are not limited thereto, and two or more of the plurality of storage devices 270a to 270d may be accessed substantially simultaneously or simultaneously.
[0127] Fig.16 is a flowchart illustrating a method of operating a network-based storage device according to an example embodiment. Figure 1 Duplicate description.
[0128] Reference Fig.16In the method of operating a network-based storage device according to an example embodiment, a first storage device 270a is set as a first main storage device (step S100a), and the first storage device 270a sets and manages a volume of at least a portion of a plurality of storage devices based on a first control signal (step S200a). Fig.16 Steps S100a and S200a in can be similar to Figure 1 Steps S100 and S200. Fig.16 Steps S300 and S400 in Figure 1 Steps S300 and S400 are substantially the same.
[0129] In addition, a third storage device 270c having a third local key among the plurality of storage devices is set as a second master storage device (step S1100). The third storage device 270c sets and manages a volume of at least another part of the plurality of storage devices based on a second control signal received from the external host device 200 (step S1200). The third storage device 270c receives a fourth local key from a fourth storage device having a fourth local key among the plurality of storage devices (step S1300). The third storage device 270c sends the third local key and the fourth local key to the external host device 200 (step S1400). Fig.16 Steps S1100, S1200, S1300 and S1400 in the embodiment may be respectively similar to Fig.16 Steps S100a, S200a, S300 and S400 in FIG.
[0130] exist Fig.16 In the example of FIG. 1 , the first storage device 270 a may manage all functions of some storage devices among the plurality of storage devices 270 a to 270 d, and the third storage device 270 c may manage all functions of other storage devices among the plurality of storage devices 270 a to 270 d.
[0131] although Fig.16 It is shown that steps S1100, S1200, S1300 and S1400 are performed after steps S100a, S200a, S300 and S400 are performed, but example embodiments are not limited thereto. For example, steps S100a and S1100 may be performed substantially simultaneously, steps S200a and S1200 may be performed substantially simultaneously, steps S300 and S1300 may be performed substantially simultaneously, and steps S400 and S1400 may be performed substantially simultaneously.
[0132] Fig.17 is a block diagram illustrating a storage device and a storage system including the storage device according to an example embodiment. Figure 2 Duplicate description.
[0133] Reference Fig.17 , Fig.17 The storage system 100b can be used with Figure 2 The storage system 100 is substantially the same except that the configuration of the plurality of storage devices 270a, ..., 270n and 271a, ..., 271m is changed.
[0134] The storage device 270a among the plurality of storage devices 270a to 270n and 271a to 271m may be set as a first primary storage device, the storage device 270a may perform volume setup and management operations, local key receiving operations, and local key sending operations of the first group of storage devices 270a to 270n, and the storage device 270a may include a storage manager 272a for performing the above operations. In addition, the storage device 271a among the plurality of storage devices 270a to 270n and 271a to 271m may be set as a second primary storage device, the storage device 271a may perform volume setup and management operations, local key receiving operations, and local key sending operations of the second group of storage devices 271a to 271m, and the storage device 271a may include a storage manager 273a for performing the above operations.
[0135] According to example embodiments, the number of storage devices 270 a through 270 n may be substantially equal to or different from the number of storage devices 271 a through 271 m .
[0136] Fig.18 is a flowchart illustrating a method of operating a network-based storage device according to an example embodiment. Figure 1 and Fig.16 Duplicate description.
[0137] Reference Fig.18 , in a method of operating a network-based storage device according to an example embodiment, Fig.18 Steps S100a and S1100 in Fig.16 Steps S100a and S1100 in are basically the same. Fig.18 Steps S300 and S400 in Fig.16 Steps S300 and S400 are substantially the same.
[0138] The first storage device 270a manages a certain function(s) of the plurality of storage devices 270a to 270d based on the first control signal received from the external host device 200 (step S200b). The third storage device 270c manages another function (or other functions) of the plurality of storage devices 270a to 270d based on the second control signal received from the external host device 200 (step S1500). For example, the other functions may include functions other than volume setting and management among various functions.
[0139] exist Fig.18 In the example, the first storage device 270a can manage a certain function(s) or a first function (e.g., volume setup and management) of all storage devices among the multiple storage devices 270a to 270d, and the third storage device 270c can manage another function(s) or a second function of all the multiple storage devices 270a to 270d.
[0140] When the number of the plurality of storage devices 270a to 270d is relatively large, the efficiency of one main storage device managing all the storage devices may be low. Fig.16 and Fig.18 As described, two storage devices may be set as two main storage devices, each of which may manage only some storage devices or only manage some functions of the plurality of storage devices 270a to 270d, so that the network-based storage devices may be managed more efficiently.
[0141] although Fig.16 and Fig.18 It is illustrated that only two storage devices are set as main storage devices, but example embodiments are not limited thereto, and the number of main storage devices may be variously changed according to example embodiments.
[0142] Fig.19 is a flow chart illustrating a method of operating a network-based storage device according to an example embodiment. Fig. 20A and Fig. 20B Is used to describe Fig.19 The diagram of the method of operating a network-based storage device is omitted. Figure 1 Duplicate description.
[0143] Reference Fig.19 , Fig. 20A and Fig. 20B , in a method of operating a network-based storage device according to an example embodiment, Fig.19 Steps S100, S200, S300 and S400 in Figure 1 Steps S100, S200, S300 and S400 in the embodiment are substantially the same.
[0144] At least one storage device and / or some areas of the plurality of storage devices 270a to 270d may be set as a parity storage space (or a parity disk) (step S2100). For example, the parity storage space may store parity bits generated by erasure coding, RAID (e.g., RAID-5, RAID-6), etc. performed for error recovery. For example, step S2100 may be performed by the first storage device 270a.
[0145] In some example embodiments, Fig. 20A As shown, the entire area of a storage device (eg, storage device 270d) may be set as parity storage space PAR1. In other example embodiments, Fig. 20B As shown, partial areas of all storage devices in the plurality of storage devices 270a to 270d can be set as parity storage space PAR2 to allocate or extend parity bits. However, example embodiments are not limited thereto, and the entire area of two or more storage devices or a partial area of a certain storage device can be set as parity storage space.
[0146] Fig.21 is a flow chart illustrating a method of operating a network-based storage device according to an example embodiment. Fig.22A , Fig. 22B and Fig. 22C Is used to describe Fig.21 The diagram of the method of operating a network-based storage device is omitted. Figure 1 Duplicate description.
[0147] Reference Fig.21 , Fig.22A , Fig. 22B and Fig. 22C , in a method of operating a network-based storage device according to an example embodiment, Fig.21 Steps S100, S200, S300 and S400 in Figure 1 Steps S100, S200, S300 and S400 in the embodiment are substantially the same.
[0148] The first storage device 270a may perform security settings for multiple storage devices 270a to 270d (step S2200). For example, an authentication process as an initial step may be performed using NVMe in-band authentication and / or connection / key exchange, and an authentication process may be performed using Internet Protocol Security (IPSec).
[0149] For example, Fig.22A As shown, the host device 200 may send a control signal CONTS for security setting to the first storage device 270a. Fig. 22BAs shown, the host device 200 and the first storage device 270a may exchange, set, and form a security key SK1 that is different from the local keys LK1 to LK4 and is used as a key for security setting. Fig. 22C As shown, the first storage device 270a may send the security key SK1 to the remaining storage devices 270b to 270d. Therefore, all storage devices of the plurality of storage devices 270a to 270d may use the same security key SK1.
[0150] After the security setting is performed, at least one of the plurality of storage devices 270a to 270d may configure and generate security data (step S2300). For example, the security key SK1 may be used to generate encrypted data, and the encrypted data may be data in which an IPSec header is generated. Thereafter, the operation of exchanging security data between at least one of the plurality of storage devices 270a to 270d and the host device 200 may be similar to the operation of referring to the embodiment of the present invention. Figures 9 to 15 The operations described are essentially the same.
[0151] Fig.23 is a flow chart illustrating a method of operating a network-based storage device according to an example embodiment. Fig.24 Is used to describe Fig.23 The diagram of the method of operating a network-based storage device is omitted. Figure 1 Duplicate description.
[0152] Reference Fig.23 and Fig.24 , in a method of operating a network-based storage device according to an example embodiment, Fig.23 Steps S100, S200, S300 and S400 in Figure 1 Steps S100, S200, S300 and S400 in the embodiment are substantially the same.
[0153] At least one storage device other than the plurality of storage devices 270a to 270d may be added (step S2400). Fig.24 As shown, the plurality of storage devices 270a to 270d may be additionally connected to a fifth storage device 270e in addition to the plurality of storage devices 270a to 270d through the first network 210, and thus the total volume or total capacity of the storage system 100a may be increased.
[0154] In some example embodiments, the primary storage device may be configured based on a media access control (MAC) address, an Internet Protocol (IP) address, or other objects having similar functions, and at least one storage device may be added based on the object of the primary storage device, thereby increasing the total volume. In other example embodiments, if the actual volume is insufficient, a virtual volume may be configured using thin provisioning, etc., and the total volume may be increased based on the object. In other example embodiments, a storage pool of multiple storage devices may be managed.
[0155] Although the reference Figures 1 to 24 A method of operating a network-based storage device according to example embodiments is described, but example embodiments may be described as a method of operating a storage system including a host device and a plurality of storage devices.
[0156] As will be appreciated by those skilled in the art, the present disclosure may be implemented as a system, method, computer program product and / or a computer program product contained in one or more computer-readable media, on which one or more computer-readable media are contained computer-readable program code. The computer-readable program code may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device. The computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium may be any tangible medium that can contain or store a program for use by or in conjunction with an instruction execution system, device, or apparatus. For example, a computer-readable medium may be a non-transitory computer-readable medium.
[0157] Fig.25 is a block diagram illustrating a storage server including a storage device according to an example embodiment.
[0158] Reference Fig.25 , the storage server 1000 may include a host device 1100 , a server 1200 , and a plurality of storage modules 1300 .
[0159] The server 1200 may include a server controller 1210 and a redundant array of independent disks (RAID) controller 1220 that controls a plurality of storage modules 1300 .
[0160] RAID technology is mainly used in data servers, where important data can be replicated in multiple locations on multiple storage devices. The RAID controller 1220 can enable one of multiple RAID levels according to the RAID information, and can interface data between the server 1200 and multiple storage modules 1300.
[0161] Each of the plurality of storage modules 1300 may include a network switch 1310 and a plurality of storage devices 1320 storing data required by the drive server 1200. The host device 1100, the network switch 1310, and the plurality of storage devices 1320 may respectively correspond to the host device 200, the network switch 250, and the plurality of storage devices 270a to 270n included in the storage system 100 according to the example embodiment, and may be referred to as Figures 1 to 24 The described example embodiment operates. A main storage device among the plurality of storage devices 1320 may include a storage manager SM, so that volumes of the plurality of storage modules 1300 may be effectively configured and managed without an additional external controller.
[0162] The present disclosure can be applied to various devices and / or systems including storage devices and storage systems. For example, the present disclosure can be applied to systems such as personal computers (PCs), server computers, data centers, workstations, mobile phones, smart phones, tablet computers, laptop computers, personal digital assistants (PDAs), portable multimedia players (PMPs), digital cameras, portable game consoles, music players, camcorders, video players, navigation devices, wearable devices, Internet of Things (IoT) devices, Internet of Everything (IoE) devices, e-book readers, virtual reality (VR) devices, augmented reality (AR) devices, robotic devices, drones, etc.
[0163] As is conventional in the art, embodiments can be described and illustrated according to blocks that perform one or more functions described. These blocks, which may be referred to herein as units or modules, are physically implemented by analog and / or digital circuits (such as logic gates, integrated circuits, microprocessors, microcontrollers, storage circuits, passive electronic components, active electronic components, optical components, hard-wired circuits, etc.), and may be optionally driven by firmware and / or software. The circuit may be implemented, for example, in one or more semiconductor chips, or on substrates such as printed circuit boards (PCBs). The circuits constituting the blocks may be implemented by dedicated hardware, or by a processor (e.g., one or more programmed microprocessors and associated circuits), or by a combination of dedicated hardware that performs some functions of the block and a processor that performs other functions of the block. Without departing from the scope of the present disclosure, each block of the embodiment may be physically divided into two or more interacting and discrete blocks. Similarly, without departing from the scope of the present disclosure, the blocks of the embodiment may be physically combined into more complex blocks. An aspect of the embodiment may be implemented by instructions stored in a non-transitory storage medium and executed by a processor.
[0164] The foregoing is an illustration of example embodiments and should not be construed as limiting thereof. Although some example embodiments have been described, those skilled in the art will readily appreciate that many modifications may be made in the example embodiments without materially departing from the novel teachings and advantages of the example embodiments. Therefore, all such modifications are intended to be included within the scope of the example embodiments defined in the claims. Therefore, it should be understood that the foregoing is an illustration of various example embodiments and should not be construed as being limited to the specific example embodiments disclosed, and modifications to the disclosed example embodiments as well as other example embodiments are intended to be included within the scope of the appended claims.
Claims
1. A method of operating a network-based storage device, the method comprising: Setting a first storage device having a first local key among a plurality of storage devices as a first primary storage device, the plurality of storage devices being connected to each other via a network; The first storage device sets and manages a volume of at least a portion of the plurality of storage devices based on a first control signal received from an external host device; The first storage device receives the second local key from a second storage device having a second local key among the plurality of storage devices; as well as The first storage device sends the first local key and the second local key to the external host device.
2. The method according to claim 1, wherein: The operation of the first storage device receiving the second local key from the second storage device is performed based on a peer-to-peer scheme.
3. The method according to claim 2, wherein: The plurality of storage devices are connected to each other via an Ethernet switch, and The second local key is sent directly from the second storage device to the first storage device through the Ethernet switch.
4. The method according to claim 1, wherein: The setting and managing the volumes of at least a portion of the plurality of storage devices includes: dividing the plurality of storage devices into a first partition having a first volume and a second partition having a second volume.
5. The method according to claim 4, wherein: The first partition is set to correspond to all storage devices among the plurality of storage devices.
6. The method according to claim 4, wherein: The first partition is set to correspond to only some storage devices among the plurality of storage devices.
7. The method according to claim 4, wherein: The first volume and the second volume are equal to each other.
8. The method according to claim 4, wherein: The first volume and the second volume are different from each other.
9. The method according to claim 1, further comprising: The first storage device receives a command, an address and the second local key for accessing the second storage device from the external host device; as well as The first storage device sends the command, the address, and the second local key to the second storage device.
10. The method according to claim 9, wherein: providing read data obtained from the second storage device based on the command, the address and the second local key directly to the external host device from the second storage device without passing through the first storage device, and Write data to be stored in the second storage device based on the command, the address, and the second local key is provided directly from the external host device to the second storage device without passing through the first storage device.
11. The method according to claim 9, wherein: providing read data obtained from the second storage device based on the command, the address, and the second local key from the second storage device to the external host device through the first storage device, and Write data to be stored in the second storage device based on the command, the address, and the second local key is provided from the external host device to the second storage device through the first storage device.
12. The method according to claim 1, further comprising: A third storage device having a third local key among the plurality of storage devices is set as a second primary storage device.
13. The method according to claim 12, wherein: The first storage device manages some storage devices among the plurality of storage devices, and The third storage device manages other storage devices among the plurality of storage devices.
14. The method according to claim 12, further comprising: The third storage device sets and manages the volume of at least another part of the plurality of storage devices based on a second control signal received from the external host device; The third storage device receives the fourth local key from a fourth storage device having a fourth local key among the plurality of storage devices; as well as The third storage device sends the third local key and the fourth local key to the external host device.
15. The method according to claim 12, wherein: The first storage device manages a first function of all storage devices in the plurality of storage devices, and The third storage device manages second functions of all storage devices among the plurality of storage devices.
16. The method according to claim 1, further comprising: At least one storage device among the plurality of storage devices is configured as a parity storage space.
17. The method according to claim 1, further comprising: The first storage device performs security settings; as well as At least one storage device of the plurality of storage devices generates security data.
18. The method according to claim 1, further comprising: The plurality of storage devices are additionally connected to at least one storage device other than the plurality of storage devices through the network.
19. A method for operating a storage system, the storage system comprising a plurality of storage devices and a host device, the plurality of storage devices being connected to each other via a first network, the host device being connected to the plurality of storage devices via a second network, the method comprising: Setting a first storage device having a first local key among the plurality of storage devices as a first primary storage device; The host device sends a first control signal for setting and managing volumes of the plurality of storage devices to the first storage device; The first storage device sets and manages a volume of at least a portion of the plurality of storage devices based on the first control signal; The first storage device receives the second local key from a second storage device having a second local key among the plurality of storage devices; The first storage device sends the first local key and the second local key to the host device; The host device sends a command, an address and the second local key for accessing the second storage device to the first storage device; The first storage device sends the command, the address and the second local key to the second storage device; as well as Based on the command, the address and the second local key, the second storage device provides read data to the host device, or the second storage device receives write data from the host device, wherein: Based on a peer-to-peer scheme between the first storage device and the second storage device, without passing through the host device, the operation of the first storage device receiving the second local key from the second storage device and the operation of the first storage device sending the command, the address and the second local key to the second storage device are performed.
20. A storage module, comprising: Ethernet switches; as well as a plurality of storage devices, wherein the plurality of storage devices are connected to each other via the Ethernet switch, The first storage device having the first local key among the plurality of storage devices is set as the first main storage device, wherein: The first storage device includes a storage manager, which is configured to: set and manage volumes of at least a portion of the multiple storage devices based on a first control signal received from an external host device, receive the second local key from a second storage device having a second local key among the multiple storage devices, and send the first local key and the second local key to the external host device.
