US10459891B2 - Replicating data across data storage devices of a logical volume - Google Patents
Replicating data across data storage devices of a logical volume Download PDFInfo
- Publication number
- US10459891B2 US10459891B2 US14/870,943 US201514870943A US10459891B2 US 10459891 B2 US10459891 B2 US 10459891B2 US 201514870943 A US201514870943 A US 201514870943A US 10459891 B2 US10459891 B2 US 10459891B2
- Authority
- US
- United States
- Prior art keywords
- data storage
- files
- logical volume
- storage devices
- storage device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 357
- 230000003362 replicative effect Effects 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 71
- 238000003860 storage Methods 0.000 claims description 168
- 238000012545 processing Methods 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 16
- 230000003862 health status Effects 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 2
- 230000004931 aggregating effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 55
- 230000015654 memory Effects 0.000 description 39
- 238000010586 diagram Methods 0.000 description 18
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 9
- 239000007787 solid Substances 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 4
- 238000012005 ligant binding assay Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Definitions
- DAS direct-attached storage
- NAS network-attached storage
- NAS devices may provide access to data over computer networks (e.g., via a wired and/or wireless network).
- FIG. 1 is a diagram of a data storage system, according to an embodiment.
- FIG. 2 is a diagram of a data storage system, according to an embodiment.
- FIG. 3 is a diagram of a data storage system, according to an embodiment.
- FIG. 4 is a diagram of an example file list, according to an embodiment.
- FIG. 5 is a flow diagram illustrating a process for replicating data across a logical volume, according to an embodiment.
- FIG. 6 is a flow diagram illustrating a process for adding a data storage device to a logical volume, according to an embodiment.
- FIG. 7 is a flow diagram illustrating a process for removing a data storage device from a logical volume, according to an embodiment.
- FIG. 8 is a flow diagram illustrating a process for temporarily removing a data storage device from a logical volume, according to an embodiment.
- FIG. 9 is a diagram of a computing device, according to an embodiment.
- Data storage devices/systems may provide one or more computing devices with file-level data storage.
- a data storage device/system may be a DAS device.
- the DAS device may be coupled to a computing device (e.g., a laptop computer, a desktop computer, etc.) via a connection cable (e.g., a Thunderbolt cable, an external serial advanced technology attachment (eSATA) cable, a universal serial bus (USB) cable, etc.) coupled to a DAS interface (e.g., a communication interface such as USB 2.X, USB 3.X, Thunderbolt, eSATA, etc.) of the DAS device.
- a connection cable e.g., a Thunderbolt cable, an external serial advanced technology attachment (eSATA) cable, a universal serial bus (USB) cable, etc.
- a DAS interface e.g., a communication interface such as USB 2.X, USB 3.X, Thunderbolt, eSATA, etc.
- a DAS device may provide a convenient mechanism for transferring data between computing devices, increasing the storage capacity (e.g., increase the storage space) of a computing device, and/or providing increased data security through data redundancy.
- a data storage device/system may be a NAS device.
- a NAS device may be coupled to a network via a NAS interface (e.g., a network interface or a communication interface such as Ethernet, 802.11 (Wi-Fi), etc.).
- a NAS device may provide file-level data storage over a network (e.g., a computer network), wherein access to the stored data is accessible to a group of clients.
- a NAS device may include hardware, software, or a combination of such elements, configured such that the NAS device operates as a file server.
- NAS devices/systems can provide a convenient mechanism for sharing data among multiple computers and/or remotely accessing data stored on the NAS devices/systems.
- benefits of NAS devices/systems may include the ability to access data from various locations (e.g., remote locations), faster data access, easier administration, and/or simpler configuration.
- Certain embodiments disclosed herein provide the ability for multiple data storage devices (e.g., external standalone data storage devices such as portable hard drives, NAS devices/devices, etc.) to be grouped into a logical volume.
- the files stored on the multiple data storage devices may be replicated across the logical volume (e.g., copied onto other data storage devices in the logical volume). This may allow a user to leverage existing data storage devices to backup files and/or other data (to safeguard against data loss) more cheaply, more easily, more efficiently, and more quickly.
- FIG. 1 is a diagram of a data storage system 100 , according to an embodiment.
- a data storage device 120 may be communicatively coupled to one or more client devices (e.g., computing devices) in order to provide file-based data storage services to the one or more client devices (e.g., one or more computing devices).
- client devices e.g., computing devices
- Types of client devices that may have access to the data storage device 120 may include, but are not limited to, phones 137 (e.g., smart phones, cellular phones, etc.), cable set-top boxes 136 , smart TV's 135 , video game consoles 134 , laptop computers 133 , tablet computers 132 , desktop computers 131 , wearable computers and/or other types of computing devices.
- the data storage device 120 may be an external standalone data storage device.
- the data storage device 120 may be a data storage device that is not located within a computing device (e.g., not within a case or housing of a computing device).
- the data storage device 120 may be a data storage device that may provide access to data without being directly coupled to a computing device (e.g., may be a NAS device).
- the data storage device 120 device may provide various client devices (e.g., phones 137 , cable set-top boxes 136 , smart TV's 135 , video game consoles 134 , laptop computers 133 , tablet computers 132 , desktop computers 131 ) with access to various types of user data stored on the data storage device 120 .
- the data storage device 120 may also allow users to store various types of user data on the data storage device 120 .
- the data storage device 120 may comprise magnetic media, hard disk media, and/or solid-state media.
- solid state memory may comprise one or more of various types of solid state non-volatile memory devices such as flash integrated circuits, Chalcogenide RAM (C-RAM), Phase Change Memory (PC-RAM or PRAM), Programmable Metallization Cell RAM (PMC-RAM or PMCm), Ovonic Unified Memory (OUM), Resistance RAM (RRAM), NAND memory (e.g., single-level cell (SLC) memory, multi-level cell (MLC) memory, or any combination thereof), NOR memory, EEPROM, Ferroelectric Memory (FeRAM), Magnetoresistive RAM (MRAM), other discrete NVM (non-volatile memory) chips, or any combination thereof.
- flash integrated circuits e.g., Intel® 845555B Intel® 845555B Intel® 845555B Intel® 845555B Intel® 845555B Intel® 845555B Intel® 845555B Intel® 845555B Intel® 845555B Intel® 845555B Intel® 845555B Intel® 845555B Intel® 845555B Intel
- the data storage device 120 may include a controller (not shown in FIG. 1 ) configured to receive data commands and to execute such commands in one or more non-volatile memory components of the data storage device 120 .
- Such commands may include data read/write commands, and the like.
- the controller may be configured to receive data commands from a communication interface (e.g., a NAS interface and/or a DAS interface) residing on a computing device.
- Data commands may specify a block address in the data storage device 120 and data may be accessed/transferred based on such commands.
- the data commands may also be referred to as data access requests.
- the data storage device 120 may be configured to store data in one or more magnetic recording disks and/or the solid state memory devices/arrays.
- the data storage device 120 may comprise a cable box, a backup disk drive, a media storage unit, a streaming media device, a digital camera, or any other electronic device which may store data that may need to be accessed directly or wirelessly.
- the data storage device 120 may store data received from a client device such that the data storage device 120 acts as data storage for the client device.
- the data storage device 120 may implement a logical interface.
- the logical interface can present to the client device memory as a set of logical addresses (e.g., sequential/contiguous addresses) where data may be stored.
- the controller may map logical addresses to various physical memory addresses in the non-volatile memory of the data storage device 120 . Mapping data indicating the mapping of logical addresses to physical memory addresses may be maintained in the data storage device 120 .
- the data storage device 120 may be a DAS device.
- the DAS device may be directly coupled to client device (e.g., a desktop computer 131 ) via a connection cable 121 .
- the connection cable 121 may be coupled to a communication interface (e.g., a USB 2.X interface, a USB 3.X interface, a Thunderbolt interface, etc.) of the DAS device (e.g., data storage device 120 ).
- the data storage device 120 may also be a NAS device.
- the NAS device may also be coupled to the client devices (e.g., computing devices) 131 - 137 via a network 105 .
- the NAS device may be coupled to the network 105 via a network interface (e.g., an Ethernet interface, an 802.11 (Wi-Fi) interface, etc.).
- a network interface e.g., an Ethernet interface, an 802.11 (Wi-Fi) interface, etc.
- Each of the client devices 131 - 137 may also be coupled to the network 105 via a network interface.
- network 105 may include a public network (e.g., the Internet), a private network (e.g., a local area network (LAN)), a wide area network (WAN) such as the Internet, a wired network (e.g., Ethernet network), a wireless network (e.g., an 802.11 network or a Wi-Fi network), a cellular network (e.g., a Long Term Evolution (LTE) network), routers, hubs, switches, server computers, other types of computer networks, and/or a combination thereof.
- a public network e.g., the Internet
- a private network e.g., a local area network (LAN)
- WAN wide area network
- wired network e.g., Ethernet network
- a wireless network e.g., an 802.11 network or a Wi-Fi network
- a cellular network e.g., a Long Term Evolution (LTE) network
- the data storage device 120 may receive data access requests from the client devices 131 - 137 via the communication interface (e.g., a DAS interface such as USB 2.X, USB 3.X, Thunderbolt) and/or via the network interface (e.g., Ethernet, 802.11, etc.).
- the data access requests may be messages, commands, and/or requests to access data on the data storage device.
- a data access request may indicate that a computing device wants to read data from the data storage device 120 .
- a data access request may indicate that a computing device wants to write data to the data storage device 120 .
- data storage devices/drives/systems may provide various benefits, as described above, in certain configurations, such systems may be associated with various issues and/or drawbacks.
- Users may purchase different data storage devices (e.g., different external standalone data storage devices such as NAS devices, portable external hard drives, etc.) which may have different storage capacities, may have different storage media (e.g., magnetic media, solid state media, etc.), and may be manufactured by different companies/vendors.
- the user may store different data on each of the data storage devices (e.g., one portable external hard drive may store family photos, another portable external hard drive may store work-related documents, etc.). The user may not remember which files are stored on which data storage device.
- RAID systems may automatically backup files (and other data), RAID systems are often expensive which may discourage users from purchasing and/or using RAID systems.
- RAID systems may rebuild the failed data storage device which may be a time-consuming process (e.g., may take hours, or even days).
- RAID systems may not be able to use data storage devices with different storage capacities (e.g., with different storage sizes) and/or different media.
- the system may create a logical volume by grouping the multiple data storage devices together.
- the data storage system may also replicate data (e.g., automatically replicate/copy files) across the logical volume (as discussed in more detail below).
- the data storage system may provide RAID-like functionality without the costs associated with a RAID system.
- the data storage system may also allow additional storage space (e.g., add an additional external standalone data storage device such as a portable external hard drive) to be added more cheaply.
- the data storage system may also maintain the replication of the data when a data storage device is removed from the logical volume without rebuilding a drive (like a RAID system).
- FIG. 2 is a diagram of a data storage system 200 according to an embodiment.
- the data storage system 200 includes a computing device 211 , a computing device 213 , a connection cable 250 , and a data storage device 220 .
- Each of the computing devices 211 and 213 may be a laptop computer, a desktop computer, a server computer, a tablet computer, a smart phone, a set-top box, a smart TV, a video game console, etc.
- the data storage device 220 may include a controller 230 , a DAS interface 241 (e.g., USB 2.X, USB 3.X, Thunderbolt, eSATA, etc.), a NAS interface 243 (e.g., Ethernet, Wi-Fi, etc.), and non-volatile storage components 245 .
- the non-volatile storage components 245 may include non-volatile magnetic media, and/or solid-state memory, such as NAND flash.
- the controller 230 may provide overall control for the data storage device 220 .
- the data storage device 220 may be a hard disk drive.
- the non-volatile storage components 245 may include one or more disks and the data storage device 220 may further include one or more heads (not shown) actuated radially over the disk(s), and a spindle motor for rotating the disk(s).
- the data storage device 220 may be, for example, a hybrid hard drive including both magnetic media and solid-state media (e.g., the non-volatile storage components 245 may include both magnetic disks and solid state media/memory).
- the non-volatile storage components 245 may be coupled to the controller via one or more serial bus connectors.
- serial bus connectors include, but are not limited to, serial ATA (SATA) connectors, peripheral component interconnect express (PCIe) connectors, and SATA Express connectors.
- the data storage device 220 may be external standalone data storage devices (e.g., NAS devices/drives, portable external hard drives, etc.).
- the controller 230 may receive data access requests (e.g., data and storage access commands) from a DAS interface 212 (e.g., a USB interface, a Thunderbolt interface) of the computing device 211 .
- Data access requests communicated by the DAS interface 212 may include write and read commands issued by the computing device 211 .
- the data access requests may specify a LBA, or range of LBAs, in the data storage device 220 , and the controller 230 may execute the received data access requests in the non-volatile storage components 245 .
- the controller 230 may also receive data access request from a NAS interface 214 (e.g., a communication interface such as an Ethernet interface, a Wi-Fi interface, etc.) of the computing device 213 .
- a NAS interface 214 e.g., a communication interface such as an Ethernet interface, a Wi-Fi interface, etc.
- the controller may determine an LBA and/or a range of LBAs in the data storage device 220 based on the data access requests and may execute the received data access requests in the non-volatile storage components 245 .
- data may be stored in a magnetic media storage component as well as non-volatile solid-state memory.
- the data storage device 220 may store data received from the computing devices 211 and 213 , such that the data storage device 220 acts as memory for the computing devices 211 and 213 .
- the controller 230 may implement a logical interface.
- the logical interface may present to the computing devices 211 and 213 the memory of the data storage device 220 as a set of logical addresses (e.g., contiguous address) where data can be stored.
- the controller 230 may map logical addresses to various physical memory addresses in the non-volatile storage components 245 and/or other memory module(s).
- the data storage device 220 may be configured to implement data redundancy, wherein user data stored in the non-volatile storage components 245 is maintained in one or more internal and/or external drives.
- the controller 230 may include a data redundancy management module (not shown in FIG. 2 ) configured to implement redundancy functionality.
- the data redundancy management module may implement redundant array of independent disks (RAID) technology, wherein the non-volatile storage components 245 includes a plurality of internal drives, disks, or other data storage partitions combined into a logical unit for the purposes of data redundancy and performance improvement.
- RAID redundant array of independent disks
- the data redundancy management module may be configured to implement RAID using one or more internal memory modules in combination with one or more external memory devices, as discussed in greater detail below.
- the non-volatile storage components 245 may include an array of one or more storage devices, such as hard disks or other memory modules that are configured to store user data.
- such internal memory modules/disks may be each directly coupled to the controller 230 to provide a high bandwidth interface for reading and writing user data.
- the non-volatile storage components 245 may include one or more additional memory modules configured to store parity information.
- the controller 230 may be configured to divide and replicate user data among the physical RAID memory modules, providing storage virtualization; the array may be accessed by the computing devices 211 and 213 as a single drive. Data may be distributed across the RAID memory modules/drives according to any desirable or practical RAID level, depending on the level of redundancy and/or performance desired.
- the data storage device 220 may be configured to implement RAID 0, RAID 1, RAID 5, RAID 6, RAID 10, other RAID technology, or other erasure coding technology, depending on data reliability, availability, performance and/or capacity considerations or requirements.
- the computing device 211 may be coupled to the data storage device 220 via connection cable 250 .
- the connection cable 250 may directly connect the computing device 211 and the data storage device 220 .
- the connection cable 250 may use one or more communication interfaces (such as a bus interface) and/or protocols that may allow the computing device 211 to communicate with the data storage device 220 .
- the DAS interface 212 and 241 may be USB interfaces, Thunderbolt interfaces, serial attached SCSI (SAS), eSATA interface, etc.
- connection cable 250 may include one or more data lines (e.g., one or more wires, pins, etc.) that allow the computing device 211 to communicate data with the data storage device 220 .
- the connection cable 250 may include data lines (not shown in FIG. 2 ) that the computing device 211 may use to read data from and/or write data to the data storage device 220 .
- the computing device 211 may communicate data to and from the data storage device using the DAS interface 212 (e.g., via the DAS interface 212 ).
- the computing device 211 may provide an input voltage to the data storage device 220 and the data storage device 220 may use the input voltage to operate one or more components of the data storage device 220 (e.g., the controller 230 , the non-volatile storage components 245 , a motor, etc.).
- the connection cable 250 may include one or more voltage lines (e.g., wires, pins, etc.) that may receive the input voltage from the computing device 211 via the DAS interface 212 .
- the one or more voltage lines may provide the input voltage (received from the computing device 211 ) to the data storage device 220 via the communication interface 240 .
- the data storage device 220 may be coupled to a separate power source (e.g., may be coupled to a battery, to an AC adaptor, to a wall outlet, etc.).
- connection cable 250 may include a bridge unit (not shown in FIG. 2 ).
- the connection cable 250 may include a USB bridge, a Thunderbolt bridge, or other type of bridge.
- the bridge unit may translate between two different types of communication interfaces and/or protocols. For example, if a connected storage device communicates in a first protocol, but not a second protocol, the bridge unit may translate the second protocol to the first protocol, or vice versa.
- the computing device 213 may be communicatively coupled to the data storage device 220 via a network 205 (e.g., one or more of a Wi-Fi network, a LAN, a cellular network, etc.).
- the computing device 213 may send data (e.g., files, images, movies, etc.) and/or data access requests to the data storage device 220 via the NAS interface 214 (e.g., a communication interface an Ethernet interface, a Wi-Fi interface, etc.) and the network 205 .
- the data storage device 220 may receive the data and/or data access requests from the computing device 213 via the NAS interface 243 .
- a data storage system may use multiple data storage devices (e.g., multiple data storage devices 220 ) to create a logical volume by grouping the multiple data storage devices together, as discussed in more detail below.
- the data storage system may also replicate data across the logical volume to provide RAID-like functionality without the costs associated with a RAID system, as discussed in more detail below.
- FIG. 3 is a diagram of a data storage system 300 according to an embodiment.
- the data storage system 300 includes a computing device 310 , a network 305 , a connector hub 306 , and a logical volume 330 .
- the network 305 may include a public network (e.g., the Internet), a private network (e.g., a local area network (LAN)), a wide area network (WAN) such as the Internet, a wired network (e.g., Ethernet network), a wireless network (e.g., an 802.11 network or a Wi-Fi network), a cellular network (e.g., a Long Term Evolution (LTE) network), routers, hubs, switches, server computers, other types of computer networks, and/or a combination thereof.
- a public network e.g., the Internet
- a private network e.g., a local area network (LAN)
- WAN wide area network
- wired network e.g., Ethernet network
- the connector hub 306 may include multiple DAS interfaces (e.g., multiple connectors) that allow the connector hub 306 to be coupled to multiple data storage devices 320 and the computing device 310 .
- the connector hub 306 may be a USB hub that includes multiple USB ports/interfaces.
- the connector hub 306 is illustrated in FIG. 3 as being separate from the computing device 310 , it shall be understood that in other embodiments, the connector hub 306 may be part of the computing device 310 .
- the computing device 310 may be a NAS device.
- the logical volume 330 includes multiple data storage devices 320 .
- the logical volume 330 may be a logical grouping or a set of data storage devices.
- the logical volume 330 may also be referred to as a set of data storage devices.
- the data storage devices 320 may be each be a NAS device and/or a DAS device.
- the data storage devices 320 may include different types of media.
- the data storage devices 320 may include magnetic media, hard disk media, and/or solid-state media.
- the data storage devices 320 may be external standalone data storage devices.
- the data storage devices 320 may be external standalone NAS devices, or external DAS devices (e.g., portable external hard drives).
- the computing device 310 includes a DAS interface 312 (e.g., a communication interface such as USB 2.X, USB 3.X, Thunderbolt, eSATA, etc.) and a NAS interface 314 (e.g., a network/communication interface such as Ethernet, 802.11 (Wi-Fi), etc.).
- the DAS interface 312 is coupled to the connector hub 306 which allows the computing device 310 to communicate (e.g., transmit and/or receive data) with the data storages devices 320 coupled to the connector hub 306 .
- the NAS interface 314 is coupled to the network 305 which allows the computing device 310 to communicate (e.g., transmit and/or receive data) with the data storage device 320 coupled to the network 305 .
- the computing device 310 also includes a storage module 311 .
- the storage module 311 may create the logical volume 330 .
- the storage module 311 may receive input (e.g., user input received from a graphical user interface (GUI) presented/provided by the storage module 311 , parameters from a configuration file, etc.) that identifies the data storage devices 320 that are to be included in the logical volume 330 .
- the storage module 311 may group and/or aggregate the data storage devices 320 into a set of data storage devices (e.g., may associate the data storage devices 320 with the logical volume 330 or may include the data storage devices 320 in the logical volume 330 ).
- Files stored on the data storage devices 320 may be replicated (e.g., copied) onto one or more other data storage devices 320 in the logical volume 330 , as discussed in more detail below.
- the storage module 311 may receive input (e.g., user input from a GUI presented/provided by the storage module 311 , parameters from a configuration file, etc.) that indicate how much storage space on each of the data storage devices 320 should be allocated for replicating files.
- the storage module 311 may allocate the indicated amount of storage space on each of the data storage devices 320 for replicating files (as discussed in more detail below). For example, the storage module 311 may allocate one gigabyte of storage space on each data storage device 320 for replicating files.
- the storage module 311 may identify a set of files (e.g., one or more files) stored on a data storage device 320 that are to be replicated across the logical volume 330 (e.g., that are to be copied onto one or more other data storage devices 320 of the logical volume).
- the storage module 311 may identify the set of files based on file types. For example, the storage module 311 may identify image files (e.g., files that include digital images), video files (e.g., files that include digital videos), word processing files/documents, etc.
- the storage module 311 may also identify the set of files based on file sizes.
- the storage module 311 may identify files that are greater than a threshold size (e.g., greater than one megabyte), less than a threshold size (e.g., less than one hundred megabytes), and/or between a range of sizes (e.g., between five and fifty megabytes).
- the storage module 311 may also identify the set of files based on the number of times the files have been accessed. For example, the storage module 311 may identify files that have been accessed more than a threshold number of times or less than a threshold number of times.
- the storage module 311 may also identify the set of files based on the extensions (e.g., file extensions) of the set of files.
- the storage module 311 may identify files that have a “.jpg” extension (e.g., Joint Photographic Experts Group (JPEG) files). In another example, the storage module 311 may identify files that have a “.mpg” extension (e.g., Motion Picture Experts Group (MPEG) files).
- the storage module 311 may also identify the set of files based on input received from a user. For example, a user may select one or more files via a GUI (presented/provided by the storage module 311 ) to identify the set of files. In another example, a user may select a folder via the GUI and the storage module 311 may identify the files in the folder and subfolders of the folder.
- the storage module 311 may determine a protection level for the set of files.
- the set of files may be replicated across the logical volume 330 based on the protection level, as discussed in more detail below.
- the protection level may be data/information indicative of a priority or an importance of the set of files. For example, a higher protection level may indicate that the set of files has a higher importance (or higher priority) and a lower protection level may indicate that the set of files has a lower importance (or lower priority). It shall be understood that in some embodiments, different numbers of protection levels may be used (e.g., two protection levels, five protection levels, etc.).
- the storage module 311 may create more copies of a set of files more when the protection level is higher and may create fewer copies of the set of files less when the protection level is lower. For example, the storage module 311 may copy the set of files onto more data storage devices 320 (e.g., four data storage devices 320 ) when the protection level is higher and may copy the set of files onto fewer data storage devices 320 (e.g., two data storage devices 320 ) when the protection level is lower.
- the protection level may be data/information indicative of a how many copies of the set of files should exist across the logical volume 330 .
- the protection level may indicate the number of data storage devices 320 that the set of files should be replicated on (e.g., copied on) and/or may indicate the number of copies of the set of files. For example, a protection level of “3” may indicate that the set of files should be copied onto three different data storage devices 320 (e.g., there should be three copies of the set of files across the logical volume 330 ).
- the storage module 311 may maintain a minimum number of copies of a file exists across the logical volume based on the protection level. For example, the storage module 311 may maintain at least two copies or at least three copies of a file on different data storage devices 320 of the logical volume 330 .
- the protection level may be applied across the logical volume 330 .
- the protection level may indicate the minimum number of copies of a file (or set of files) that the storage module 311 should maintain across all of the data storage devices 320 of the logical volume 330 .
- a user may update the protection level for a file or a set of files.
- the user may provider user input (via a GUI provided/present by the storage module 311 ) to indicate that the protection level for a file should be increased or decreased.
- the storage module 311 may create additional copies of the file and/or remove copies of a file based on the updated protection level.
- the storage module 311 may update the file list to indicate that copies of the filed have been created or removed.
- the storage module 311 may also update the file list to indicate that the protection level for a file or set of files has been updated.
- different sets of files may be associated with different protection levels.
- a user may indicate that image files (e.g., family pictures) should have a high protection level and may indicate that music files (e.g., digital music files such as MPEG-2 Audio Layer III (MP3) files) should have a lower protection level.
- the storage module 311 may receive data indicative of the protection levels via a GUI (which may be provided/presented by the storage module 311 ).
- the storage module 311 may replicate one or more sets of files across the logical volume 330 .
- a first file stored on a first data storage device 320 (of the logical volume 330 ) may be replicated (e.g., copied) onto one or more additional data storage devices 320 (of the logical volume 330 ) based on the protection level.
- the store module 311 may identify the one or more additional data storage devices 320 to replicate the set of files on, based on one or more storage parameters.
- Examples of storage parameters may include, but are not limited to, a type of the first file (e.g., image file, video file, word processing document/file, etc.), a size of the first file, one or more health statuses of the one or more additional data storage devices 320 , and a number of times the first file has been accessed.
- the set of files stored on a data storage device may be unique across the logical volume 330 prior to replicating the set of files.
- a first file may be originally stored on only a first data storage device 320 (e.g., an original data storage device) prior to replicating the first file. After the first file is replicated/copied onto other data storage devices, the first file may no longer be unique across the logical volume because other data storage devices may have a copy of the first file.
- the storage module 311 may replicate certain types of files onto different data storage devices 320 .
- the storage module 311 may identify data storage devices that have magnetic media and solid state media (e.g., flash memory). Image files may be replicated (copied) onto data storage devices 320 with magnetic media and word processing documents may be copied onto data storage devices with solid state media (e.g., flash memory).
- the storage module 311 may replicate files with different files sizes onto different data storage devices 320 . For example, files with sizes greater than a threshold size may be copied onto a first data storage device 320 and files with sizes less than a threshold size may be copied onto a second data storage device 320 .
- the storage module 311 may identify health statutes of the data storage devices 320 (of the logical volume 330 ). For example, the storage module 311 may determine obtain operating information about a data storage device 320 . The storage module 311 may obtain the operating information using various methods, such as Self-Monitoring, Analysis and Reporting Technology (SMART) diagnostics. The operating information may include data/information such as how long a data storage device 320 has been in operation, how many read operations and/or write operations have been performed on a data storage device 320 , a number of errors (e.g., read/write errors) that have occurred on the data storage device 320 , an estimated time to failure for the data storage device 320 , etc.
- SMART Self-Monitoring, Analysis and Reporting Technology
- the storage module 311 may determine a health status for the data storage device 320 based on the operating information. For example, the storage module 311 may determine (e.g., generate/calculate) metric or value (or a set of metrics/values) to indicate the health of a data storage device 320 . The storage module 311 may identify data storage devices 320 that have a health statuses above (e.g., greater than) or value or set of values.
- the storage module 311 may create and/or update a file list to indicate the one or more data storage devices 320 where a set of files has been copied. For example, a file may be replicated on (e.g., copied to) three data storage devices 320 (of the logical volume 330 ). The storage module 311 may update the file list to indicate that the file has been replicated on the three data storage devices.
- the file list is discussed in more detail below.
- the storage module 311 may monitor one or more files (e.g., a set of files across the logical volume). For example, the storage module 311 may monitor files stored on a data storage device and the copies of the files that are replicated on one or more additional data storage devices 320 . The storage module 311 may determine that one or more copies of a first file has been modified based on the analysis of the one or more copies of the first file.
- files e.g., a set of files across the logical volume.
- the storage module 311 may monitor files stored on a data storage device and the copies of the files that are replicated on one or more additional data storage devices 320 .
- the storage module 311 may determine that one or more copies of a first file has been modified based on the analysis of the one or more copies of the first file.
- the storage module 311 may using a hash function/algorithm (such as MD5) to determine whether any copies of the first file have been modified. For example, the storage module 311 may create hashes of the one or more copies of the first file (e.g., apply the hash function/algorithm to the one or more copies of the first file). The storage module 311 may compare the hashes of the one or more copies to determine if any copies of the first file have been modified (e.g., have been updated). For example, if a first hash of one copy of the first file does not match a second hash of another copy of the first file, the storage module 311 may determine that one or more copies of the first file have been modified.
- a hash function/algorithm such as MD5
- the storage module 311 may compare timestamps and/or file sizes of copies of the first file to determine whether any copies of the first file have been modified. For example, the storage module 311 may determine that a first timestamp and/or a first file size of one copy of the first file is different from a second timestamp and/or a second file size of another copy of the first file.
- the storage module 311 may update one or more files that have been modified.
- the storage module 311 may update the one or more files (that have been modified) across the logical volume 330 (e.g., across all data storage devices 320 that include the one or more files). For example, the storage module 311 may determine that one or more copies of a first file has been modified (based on hashes, timestamps, and/or file sizes, as discussed above). The storage module 311 may update the first file across the logical volume 330 .
- the storage module 311 may identify the latest copy of the first file and may copy the latest copy of the first file to all the data storage devices 320 that include the first file (e.g., may copy the latest copy of the first file to all data storage devices 320 on which the first file is replicated or stored).
- the storage module 311 may receive a request to add an additional data storage device (e.g., a standalone DAS device such as a portable external hard drive, a standalone NAS device, etc.) to the logical volume 330 .
- an additional data storage device e.g., a standalone DAS device such as a portable external hard drive, a standalone NAS device, etc.
- a user may connect or couple the additional data storage device to the connector hub 306 and may provide user input via a GUI (which may be provided and/or presented by the storage module 311 ) and/or a configuration file to indicate that the additional data storage device is to be added to the logical volume 330 .
- the storage module 311 may also receive user input (e.g., via a GUI or configuration file) indicating an amount of storage space on the additional data storage device that may be used to replicate files.
- the storage module 311 may receive user input indicating that two gigabytes of storage space on the additional data storage device may be used to replicate files. In another example, the storage module 311 may receive user input indicate that fifty percent of the total storage space/capacity of the additional data storage device may be used to replicate files.
- the storage module 311 may add the additional data storage device to the logical volume 330 based on the request. For example, the storage module 311 may update the file list to indicate that the additional storage device has been added to the logical volume 330 . In one embodiment, the storage module 311 may identify files on the additional data storage device that are unique across the logical volume 330 after the additional data storage device has been added to the logical volume 330 . For example, the storage module 311 may identify files that have not been replicated on (e.g., copied to) other data storage devices 320 in the logical volume 330 . In another example, a user may provide user input identifying one or more files that have not be replicated to other data storage devices 320 .
- the storage module 311 may replicate one or more of the files (that have not been replicated) based on a protection level (as discussed above). In another embodiment, the storage module 311 may replicate (e.g., copy) files from other data storage device 320 onto the additional data storage device after the additional data storage device has been added to the logical volume 330 .
- the storage module 311 may receive a request to remove a first data storage device 320 from the logical volume 330 .
- a user may disconnect/uncouple the first data storage device from the connector hub 306 and may provide user input via a GUI (which may be provided and/or presented by the storage module 311 ) and/or a configuration file to indicate that the first data storage device 320 is to be removed from the logical volume 330 .
- the storage module 311 may identify a set of files (e.g., one or more files) that are replicated on the first data storage device 320 .
- the storage module 311 may identify a set of files that were copied onto the first data storage device 320 (e.g., replicated on the first data storage device 320 ) from other data storage devices 320 in the logical volume 330 .
- the storage module 311 may copy the set of files (that are replicated on the first data storage device 320 ) to one or more other data storage devices 320 in the logical volume 330 .
- the storage module 311 may identify one or more other data storage devices 320 based on storage parameters (as discussed above) and may copy the set of files to the one or more other data storage devices 320 . This may allow the storage module 311 to replicate the set of files across the logical volume 330 based on the one or more protection levels for the set of files.
- the storage module 311 may copy a first file from the set of files to another data storage device 320 to maintain a minimum number of copies of the first file on different data storage devices 320 , based on the protection level for the first file.
- the storage module 311 may remove the first data storage device 320 from the logical volume 330 based on the request. For example, the storage module 311 may disassociate the first data storage device 320 from the logical volume 330 and/or may update a file list to indicate that the first data storage device is no longer part of the logical volume 330 .
- the storage module 311 may also remove the set of files from the first data storage device 320 (e.g., may delete the set of files that are replicated on the first data storage device 320 ).
- the storage module 311 may determine that a first data storage device 320 from logical volume 330 is inoperable (e.g., has failed, is no longer operating, etc.). For example, the storage module 311 may periodically communicate (e.g., send/receive messages, frames, data, etc.) with the first data storage device 320 . The storage module 311 may determine that the first data storage devices is inoperable when the storage module 311 is no longer able to periodically communicate with the first data storage device 320 . In another example, the storage module 311 may receive data from the first data storage device 320 (e.g., error messages) indicating that the first data storage device 320 is inoperable.
- data from the first data storage device 320 e.g., error messages
- the storage module 311 may identify a set of files that were copied onto the first data storage device 320 (e.g., replicated on the first data storage device 320 ) from other data storage devices 320 in the logical volume 330 .
- the storage module 311 may replicate (e.g., copy) the set of files onto other data storage devices 320 to maintain a minimum number of copies of the set of files across the logical volume 330 .
- the storage module 311 may determine that a first data storage device 320 of the logical volume 330 is to be temporarily removed from the logical volume 330 (e.g., temporarily unplugged or uncoupled from the connector hub 306 or the network 305 ). For example, a user may provide user input via a GUI (which may be provided and/or presented by the storage module 311 ) and/or a configuration file to indicate that the first data storage device 320 is to temporarily be removed from the logical volume 330 (e.g., indicate that the first data storage device 320 will be removed from the logical volume 330 and will be re-inserted into the logical volume 330 at a later time).
- a GUI which may be provided and/or presented by the storage module 311
- a configuration file to indicate that the first data storage device 320 is to temporarily be removed from the logical volume 330 (e.g., indicate that the first data storage device 320 will be removed from the logical volume 330 and will be re-inserted into the logical volume 330 at
- the storage module may identify a set of files (e.g., one or more files) that are replicated on the first data storage device 320 and may copy the set of files (that are replicated on the first data storage device 320 ) to one or more other data storage devices 320 in the logical volume 330 , as discussed above. This may allow the storage module 311 to replicate the set of files across the logical volume 330 based on the one or more protection levels for the set of files (e.g., to maintain a minimum number of copies of the set of files), as discussed above.
- a set of files e.g., one or more files
- the storage module 311 may determine that the first data storage device 320 (that was temporarily removed from the logical volume 330 ) has been re-inserted into the logical volume 330 . For example, a user may re-connect or re-couple the data storage device 320 to the network 305 or the connector hub 306 or the user input via a GUI (which may be provided and/or presented by the storage module 311 ) and/or a configuration file to indicate that the first data storage device 320 has been re-inserted into the logical volume. The storage module 311 may remove the set of files that were replicated on the first data storage device 320 because the set of files was replicated (e.g. copied) onto other data storage devices 320 of the logical volume 330 when the first data storage device 320 was temporarily removed from the logical volume 330 .
- a GUI which may be provided and/or presented by the storage module 311
- the storage module 311 may cause files that are stored and/or replicated on the data storage devices 320 of the logical volume 330 to be encrypted.
- the storage module 311 may include an encryption module (e.g., software, hardware, firmware or a combination thereof) that may encrypt the files.
- the data storage devices 320 may include encryption modules and the storage module 311 may send messages, instructions, data, etc., to the encryption modules indicating the files that are stored and/or replicated on the data storage devices 320 are to be encrypted.
- the storage module 311 may monitor the health statuses of the data storage devices 320 .
- the storage module 311 may identify one or more data storage devices 320 with health statuses that are below or less than a set of values. For example, the storage module 311 may identify data storage devices 320 with an estimated life that is below a certain value. In another example, the storage module 311 may identify a data storage device 320 where errors that have occurred on the data storage device 320 (e.g., errors have occurred while reading/writing data on the data storage device 320 ).
- the storage module 311 may copy the files on the one or more data storage devices 320 (e.g., files that were originally stored on the one or more data storage devices 320 and files that were replicated on the one or more data storage devices 320 ) to other data storage devices 320 in the logical volume when the health statuses of the one or more drives are below the set of values.
- FIG. 4 is a diagram of an example file list 400 , according to an embodiment.
- the file list 400 illustrated in FIG. 4 is shown in the form of a table, it shall be understood that in other embodiments, the data/information illustrated in the file list 400 may be represented using various other formats.
- the file list 400 includes multiple rows. In one embodiment, each row may represent a file that is stored and/or replicated on one or more data storage devices of a logical volume.
- the file list 400 includes a “File Name” column, a “Metadata” column, an “Original Drive” column, and a “Copy Drives” column.
- the File Name column may indicate the path (which may be optional) and the name of a file represented by a row. For example, the file list 400 indicates that the file represented by the first row has a path/file name of “(path1)/file1.”
- the Metadata column may indicate metadata associated with a file identified in the File Name column. For example, the file list 400 indicates that the file “filet” may have a timestamp, a file size, a hash (e.g., hash value generated using a hash function/algorithm), etc. It shall be understood that the metadata illustrated in FIG. 4 are merely examples and that other metadata (e.g., an owner/author of a file, security attributes such as read only, etc.) may be included in the Metadata column.
- the Original Drive column may indicate where a file was originally stored before the file was replicated across the logical volume 330 (e.g., before the file was copied onto one or more other data storage devices in the logical volume 330 ).
- the file list 400 indicates that the file “file1” was originally stored on a data storage device identified as “Drive 2.”
- the Original Drive column may include a name, a serial number, a model number, and/or other data that may be used to identify data storage devices.
- the Copy Drive column may indicate which data storage devices a file has been replicated on.
- the file list 400 indicates that the file “file1” has been replicated onto (e.g., copied onto) data storage devices identified as “Drive 1” and “Drive 3.”
- the file list 400 may also include a list of all of the data storage devices that are in the logical volume.
- the file list 400 may include names, serial numbers, model numbers, and/or other data that may be used to identify the data storage devices that are in the logical volume.
- the file list 400 may be created and/or updated by a storage module, as discussed above.
- the storage module may update the file list 400 when data storage devices are added to and/or removed from the logical volume (as discussed above).
- the storage module may also update the file table when one or more protection levels for one or more files are updated (as discussed above).
- FIG. 5 is a flow diagram illustrating a process 500 for replicating data across a logical volume, according to an embodiment.
- the process 500 may be performed by a controller and/or a storage module, as illustrated and discussed above in conjunction with FIGS. 1-3 .
- the controller and the storage module may each be processing logic that includes hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions run on a processor to perform hardware simulation), firmware, or a combination thereof.
- the process 500 begins at block 505 where the process 500 creates a logical volume.
- the process 500 may receive input identifying data storage devices that are to be included in the logical volume and may group/aggregate the data storage devices 320 (e.g., may associate the data storage devices 320 with the logical volume 330 or may include the data storage devices 320 in the logical volume 330 ), as discussed above.
- the process 500 may identify a set of files to be replicated across the logical volume.
- the process 500 may receive user input (via a GUI) identifying one or more files that are to be replicate across the logical volume, as discussed above.
- the process 500 determines the protection level for the set of files. For example, the process 500 may receive user input indicating one or more protection levels for the set of files, as discussed above.
- the process 500 may replicate the set of files across the logical volume. For example, the process 500 may copy the set of files onto one or more additional data storage devices of the logical volume based on the one or more protection levels.
- the process 500 may monitor the set of files. For example, the process 500 may analyze hashes of the set of files and/or timestamps of the set of files. The process 500 may determine that one or more copies of a file (or multiple files) has been modified.
- the process 500 may determine that hashes of the copies of file are different or the timestamps of the copies of the file are different, as discussed above.
- the process 500 may update the file across the logical volume at block 535 .
- the process 500 may replicate a latest copy of the file onto other data storage devices that include a copy of the file, as discussed above.
- FIG. 6 is a flow diagram illustrating a process 600 for adding a data storage device to a logical volume, according to an embodiment.
- the process 600 may be performed by a controller and/or a storage module, as illustrated and discussed above in conjunction with FIGS. 1-3 .
- the controller and the storage module may each be processing logic that includes hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions run on a processor to perform hardware simulation), firmware, or a combination thereof.
- the process 600 begins at block 605 where the process 600 receive a request to add a data storage device to the logical volume.
- the process 600 may receive user input via a GUI and/or may detect that a data storage device has been coupled to a connector hub or network, as discussed above.
- the process 600 may add the data storage device to the logical volume.
- the process 600 may update a file table to indicate that the data storage device is part of the logical volume, as discussed above.
- FIG. 7 is a flow diagram illustrating a process 700 for removing a data storage device from a logical volume, according to an embodiment.
- the process 700 may be performed by a controller and/or a storage module, as illustrated and discussed above in conjunction with FIGS. 1-3 .
- the controller and the storage module may each be processing logic that includes hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions run on a processor to perform hardware simulation), firmware, or a combination thereof.
- the process 700 begins at block 705 where the process 700 determines that a data storage device is no longer operable or where the process 700 receives a request to remove the data storage device from the logical volume. For example, the process 700 may receive one or more error messages from the data storage device, as discussed above. In another example the process 700 may receive user input indicating that a user wants to remove the data storage device from the logical volume.
- the process 700 may identify a set of files that are replicated on the data storage device, as discussed above.
- the process 700 may copy the set of files to one or more other data storage devices in the logical volume (e.g., to maintain a minimum number of copies of the set of files across the logical volume) based on the protection level.
- the process 700 may identify one or more other data storage devices based on health statuses of the one or more data storage devices and may copy the set of files the one or more other data storage devices, as discussed above.
- the process 700 may remove the data storage device from the logical volume.
- the process 700 may update a file list to indicate that the data storage device is no longer part of the logical volume, as discussed above.
- FIG. 8 is a flow diagram illustrating a process 800 for temporarily removing a data storage device from a logical volume, according to an embodiment.
- the process 800 may be performed by a controller and/or a storage module, as illustrated and discussed above in conjunction with FIGS. 1-3 .
- the controller and the storage module may each be processing logic that includes hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions run on a processor to perform hardware simulation), firmware, or a combination thereof.
- the process 800 begins at block 805 where the process 800 determines that a data storage device is to be temporarily removed from the logical volume. For example, the process 800 may receive user input (via a GUI) identifying the data storage device that is to be temporarily removed from the logical volume. At block 810 , the process 800 may identify a set of files that are replicated on the data storage device, as discussed above. At block 815 , the process 800 may copy the set of files to one or more other data storage devices in the logical volume (e.g., to maintain a minimum number of copies of the set of files across the logical volume) based on the protection level.
- the process 800 may receive user input (via a GUI) identifying the data storage device that is to be temporarily removed from the logical volume.
- the process 800 may identify a set of files that are replicated on the data storage device, as discussed above.
- the process 800 may copy the set of files to one or more other data storage devices in the logical volume (e.g., to maintain a minimum number of copies of the
- the process 800 may identify one or more other data storage devices based on health statuses of the one or more data storage devices and may copy the set of files to the one or more other data storage devices, as discussed above.
- the process 800 may determine that the data storage device has been re-inserted into the logical volume. For example, the process 800 determine that the data storage devices has been reconnected to a connector hub or network, as discussed above.
- the process 800 may remove the set of files (e.g., delete the set of files) that were replicated on the data storage device. For example, the process 800 may remove the set of files because the set of files were copied onto one or more other data storage devices at block 815 .
- FIG. 9 is a diagram of a computing device 900 , according to an embodiment.
- the computing device 900 may execute instructions that may cause the computing device 900 to perform any one or more of the methodologies (e.g., operations, methods, functions, etc.) discussed herein, may be executed.
- the computing device 900 may be a mobile phone, a smart phone, a netbook computer, a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer etc., within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed.
- the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, or the Internet.
- the machine may operate in the capacity of a server machine in client-server network environment.
- the machine may be a personal computer (PC), a set-top box (STB), a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
- PC personal computer
- STB set-top box
- server a server
- network router switch or bridge
- any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
- the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
- the example computing device 900 includes a processing device (e.g., a processor, a controller, a central processing unit (CPU), etc.) 902 , a main memory 904 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM)), a network-access interface 908 , a direct-access interface 909 , an output device, 910 , an input device 912 , and a data storage device 918 , which communicate with each other via a bus 930 .
- a processing device e.g., a processor, a controller, a central processing unit (CPU), etc.
- main memory 904 e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM)
- DRAM dynamic random access memory
- SDRAM synchronous DRAM
- Processing device 902 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device 902 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets.
- the processing device 902 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like.
- the processing device 902 is configured to execute storage module 311 for performing the operations and steps discussed herein.
- the computing device 900 may include a network-access interface 908 (e.g., a network interface card, a Wi-Fi interface, etc.) which may communicate with a network (e.g., network 105 illustrated in FIG. 1 ).
- the computing device may also include a direct access interface 909 (e.g., a USB interface, an eSATA interface, a Thunderbolt interface, etc.).
- the computing device 900 also may include an output device 910 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), and an input device 912 (e.g., a mouse, a keyboard, etc.).
- the output device 910 and the input device 912 may be combined into a single component or device (e.g., an LCD touch screen).
- the data storage device 918 may include a computer-readable storage medium 928 on which is stored one or more sets of instructions (e.g., storage module 311 ) embodying any one or more of the methodologies or functions described herein.
- the storage module 311 may also reside, completely or at least partially, within the main memory 904 and/or within the processing device 902 during execution thereof by the computing device 900 .
- the main memory 904 and the processing device 902 may also constitute computer-readable media.
- the instructions may further be transmitted or received over via the network-access interface 908 and/or direct-access interface 909 .
- While the computer-readable storage medium 928 is shown in an example embodiment to be a single medium, the term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database and/or associated caches and servers) that store the one or more sets of instructions.
- the term “computer-readable storage medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure.
- the term “computer-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media and magnetic media.
- example or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example” or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion.
- the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X includes A or B” is intended to mean any of the natural inclusive permutations.
- All of the processes described above may be embodied in, and fully automated via, software code modules executed by one or more general purpose or special purpose computers or processors.
- the code modules may be stored on any type of computer-readable medium or other computer storage device or collection of storage devices. Some or all of the methods may alternatively be embodied in specialized computer hardware.
Abstract
Description
Claims (20)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/870,943 US10459891B2 (en) | 2015-09-30 | 2015-09-30 | Replicating data across data storage devices of a logical volume |
CN201680036709.4A CN107710144B (en) | 2015-09-30 | 2016-09-27 | Data storage device replication across logical volumes |
PCT/US2016/054008 WO2017058820A1 (en) | 2015-09-30 | 2016-09-27 | Replicating data across data storage devices of a logical volume |
DE112016004457.7T DE112016004457T5 (en) | 2015-09-30 | 2016-09-27 | Duplicating data in data storage devices of a linked volume |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/870,943 US10459891B2 (en) | 2015-09-30 | 2015-09-30 | Replicating data across data storage devices of a logical volume |
Publications (2)
Publication Number | Publication Date |
---|---|
US20170091222A1 US20170091222A1 (en) | 2017-03-30 |
US10459891B2 true US10459891B2 (en) | 2019-10-29 |
Family
ID=58409601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/870,943 Active 2037-06-05 US10459891B2 (en) | 2015-09-30 | 2015-09-30 | Replicating data across data storage devices of a logical volume |
Country Status (4)
Country | Link |
---|---|
US (1) | US10459891B2 (en) |
CN (1) | CN107710144B (en) |
DE (1) | DE112016004457T5 (en) |
WO (1) | WO2017058820A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241015B (en) * | 2018-07-24 | 2021-07-16 | 北京百度网讯科技有限公司 | Method for writing data in a distributed storage system |
US20210311650A1 (en) * | 2020-04-03 | 2021-10-07 | N.F. Smith & Associates, LP | System and Method for Performing and Verifying Data Erasure |
US11755229B2 (en) * | 2020-06-25 | 2023-09-12 | EMC IP Holding Company LLC | Archival task processing in a data storage system |
Citations (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5897661A (en) * | 1997-02-25 | 1999-04-27 | International Business Machines Corporation | Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information |
US6499054B1 (en) | 1999-12-02 | 2002-12-24 | Senvid, Inc. | Control and observation of physical devices, equipment and processes by multiple users over computer networks |
US20050144195A1 (en) | 1999-12-02 | 2005-06-30 | Lambertus Hesselink | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US20050144200A1 (en) | 1999-12-02 | 2005-06-30 | Lambertus Hesselink | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US20060123062A1 (en) | 2001-12-19 | 2006-06-08 | Emc Corporation | Virtual file system |
US7120692B2 (en) | 1999-12-02 | 2006-10-10 | Senvid, Inc. | Access and control system for network-enabled devices |
US7454443B2 (en) | 2003-08-26 | 2008-11-18 | Tamir Ram | Method, system, and program for personal data management using content-based replication |
US7483958B1 (en) | 2001-03-26 | 2009-01-27 | Microsoft Corporation | Methods and apparatuses for sharing media content, libraries and playlists |
US7546353B2 (en) | 1999-12-02 | 2009-06-09 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7587467B2 (en) | 1999-12-02 | 2009-09-08 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US20100070466A1 (en) * | 2008-09-15 | 2010-03-18 | Anand Prahlad | Data transfer techniques within data storage devices, such as network attached storage performing data migration |
US7844775B2 (en) | 2005-09-23 | 2010-11-30 | Avid Technology, Inc. | Distribution of data in a distributed shared storage system |
US7917628B2 (en) | 1999-12-02 | 2011-03-29 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7934251B2 (en) | 1999-12-02 | 2011-04-26 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7949564B1 (en) | 2000-05-31 | 2011-05-24 | Western Digital Technologies, Inc. | System and method of receiving advertisement content from advertisers and distributing the advertising content to a network of personal computers |
US8004791B2 (en) | 2008-02-22 | 2011-08-23 | Western Digital Technologies, Inc. | Information storage device with a bridge controller and a plurality of electrically coupled conductive shields |
US20120036041A1 (en) | 2010-08-09 | 2012-02-09 | Western Digital Technologies, Inc. | Methods and systems for a personal multimedia content archive |
US8140794B2 (en) * | 2002-10-07 | 2012-03-20 | Commvault Systems, Inc. | Snapshot storage and management system with indexing and user interface |
US20120079424A1 (en) | 2010-09-24 | 2012-03-29 | Hitachi Data Systems Corporation | System and method for optimizing protection levels when replicating data in an object storage system |
US8255661B2 (en) | 2009-11-13 | 2012-08-28 | Western Digital Technologies, Inc. | Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device |
US8285965B2 (en) | 2009-11-20 | 2012-10-09 | Western Digital Technologies, Inc. | Aligning data storage device partition to boundary of physical data sector |
US20120266011A1 (en) * | 2011-04-13 | 2012-10-18 | Netapp, Inc. | Reliability based data allocation and recovery in a storage system |
US8352567B2 (en) | 1999-12-02 | 2013-01-08 | Western Digital Technologies, Inc. | VCR webification |
US8484356B1 (en) | 2011-06-08 | 2013-07-09 | Emc Corporation | System and method for allocating a storage unit for backup in a storage system with load balancing |
US20130212401A1 (en) | 2012-02-14 | 2013-08-15 | Western Digital Technologies, Inc. | Methods and devices for authentication and data encryption |
US8526798B2 (en) | 2009-12-23 | 2013-09-03 | Western Digital Technologies, Inc. | Portable content container displaying A/V files in response to a command received from a consumer device |
US20130268749A1 (en) | 2012-04-10 | 2013-10-10 | Western Digital Technologies, Inc. | Digital rights management system and methods for provisioning content to an intelligent storage |
US20130268759A1 (en) | 2012-04-10 | 2013-10-10 | Western Digital Technologies, Inc. | Digital rights management system transfer of content and distribution |
US20130304872A1 (en) * | 2006-12-06 | 2013-11-14 | Fusion-Io, Inc. | Apparatus, system, and method for a storage area network |
US8631284B2 (en) | 2010-04-30 | 2014-01-14 | Western Digital Technologies, Inc. | Method for providing asynchronous event notification in systems |
US8646054B1 (en) | 2012-03-23 | 2014-02-04 | Western Digital Technologies, Inc. | Mechanism to manage access to user data area with bridged direct-attached storage devices |
US8688797B2 (en) | 1999-12-02 | 2014-04-01 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US20140095439A1 (en) | 2012-10-01 | 2014-04-03 | Western Digital Technologies, Inc. | Optimizing data block size for deduplication |
US20140108615A1 (en) | 2012-10-16 | 2014-04-17 | Norifumi Takaya | Method and apparatus for managing a catalog of media content |
US8706755B2 (en) | 2001-08-03 | 2014-04-22 | Emc Corporation | Distributed file system for intelligently managing the storing and retrieval of data |
US8706777B2 (en) | 2006-12-18 | 2014-04-22 | Microsoft Corporation | Media content catalogs |
US8713265B1 (en) | 2010-09-21 | 2014-04-29 | Western Digital Technologies, Inc. | Visual indicator of online backup |
US20140169921A1 (en) | 2012-12-19 | 2014-06-19 | Mark Carey | Cargo carrier |
US20140173215A1 (en) | 2012-12-13 | 2014-06-19 | Western Digital Technologies, Inc. | Methods and systems for provisioning a bootable image on to an external drive |
US8762682B1 (en) | 2010-07-02 | 2014-06-24 | Western Digital Technologies, Inc. | Data storage apparatus providing host full duplex operations using half duplex storage devices |
US8780004B1 (en) | 2012-01-31 | 2014-07-15 | Western Digital Technologies, Inc. | Dual configuration enclosure with optional shielding |
US8868666B1 (en) | 2012-01-26 | 2014-10-21 | Western Digital Technologies, Inc. | Methods, devices and systems for content discovery, aggregation and presentment over a network |
US20140351463A1 (en) * | 2013-05-23 | 2014-11-27 | Western Digital Technologies, Inc. | Methods and devices for booting a network attached storage with two logical units |
US9020151B1 (en) | 2013-03-04 | 2015-04-28 | Trend Micro Incorporated | Secure real-time data replication with disk encryption and key management system |
US9122712B1 (en) * | 2013-06-28 | 2015-09-01 | Emc Corporation | Compressing container files |
US20160004721A1 (en) * | 2014-07-01 | 2016-01-07 | Commvault Systems, Inc. | Replicating local file systems as respective luns in a storage array, using block-level data transfers and enhanced storage managers, data agents, and media agents in an information management system |
US20160026672A1 (en) * | 2014-07-23 | 2016-01-28 | Netapp. Inc. | Data and metadata consistency in object storage systems |
US9442806B1 (en) * | 2010-11-30 | 2016-09-13 | Veritas Technologies Llc | Block-level deduplication |
US9529950B1 (en) * | 2015-03-18 | 2016-12-27 | Altera Corporation | Systems and methods for performing profile-based circuit optimization using high-level system modeling |
US9569455B1 (en) * | 2013-06-28 | 2017-02-14 | EMC IP Holding Company LLC | Deduplicating container files |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7330931B2 (en) * | 2003-06-26 | 2008-02-12 | Copan Systems, Inc. | Method and system for accessing auxiliary data in power-efficient high-capacity scalable storage system |
CN103617096A (en) * | 2013-11-04 | 2014-03-05 | 华为技术有限公司 | Storage data copying method, equipment and system |
-
2015
- 2015-09-30 US US14/870,943 patent/US10459891B2/en active Active
-
2016
- 2016-09-27 CN CN201680036709.4A patent/CN107710144B/en active Active
- 2016-09-27 DE DE112016004457.7T patent/DE112016004457T5/en active Pending
- 2016-09-27 WO PCT/US2016/054008 patent/WO2017058820A1/en active Application Filing
Patent Citations (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5897661A (en) * | 1997-02-25 | 1999-04-27 | International Business Machines Corporation | Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information |
US7917628B2 (en) | 1999-12-02 | 2011-03-29 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US6499054B1 (en) | 1999-12-02 | 2002-12-24 | Senvid, Inc. | Control and observation of physical devices, equipment and processes by multiple users over computer networks |
US20050144195A1 (en) | 1999-12-02 | 2005-06-30 | Lambertus Hesselink | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US20050144200A1 (en) | 1999-12-02 | 2005-06-30 | Lambertus Hesselink | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7934251B2 (en) | 1999-12-02 | 2011-04-26 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7120692B2 (en) | 1999-12-02 | 2006-10-10 | Senvid, Inc. | Access and control system for network-enabled devices |
US8341275B1 (en) | 1999-12-02 | 2012-12-25 | Western Digital Technologies, Inc. | Access and control system for network-enabled devices |
US6732158B1 (en) | 1999-12-02 | 2004-05-04 | Senvid, Inc. | VCR webification |
US8688797B2 (en) | 1999-12-02 | 2014-04-01 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US8661507B1 (en) | 1999-12-02 | 2014-02-25 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7587467B2 (en) | 1999-12-02 | 2009-09-08 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7600036B2 (en) | 1999-12-02 | 2009-10-06 | Western Digital Technologies, Inc. | Access and control system for network-enabled devices |
US8793374B2 (en) | 1999-12-02 | 2014-07-29 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7788404B2 (en) | 1999-12-02 | 2010-08-31 | Western Digital Technologies, Inc. | Access and control system for network-enabled devices |
US8352567B2 (en) | 1999-12-02 | 2013-01-08 | Western Digital Technologies, Inc. | VCR webification |
US7546353B2 (en) | 1999-12-02 | 2009-06-09 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7467187B2 (en) | 1999-12-02 | 2008-12-16 | Western Digital Technologies, Inc. | Control and observation of physical devices, equipment and processes by multiple users over computer networks |
US7949564B1 (en) | 2000-05-31 | 2011-05-24 | Western Digital Technologies, Inc. | System and method of receiving advertisement content from advertisers and distributing the advertising content to a network of personal computers |
US7483958B1 (en) | 2001-03-26 | 2009-01-27 | Microsoft Corporation | Methods and apparatuses for sharing media content, libraries and playlists |
US8706755B2 (en) | 2001-08-03 | 2014-04-22 | Emc Corporation | Distributed file system for intelligently managing the storing and retrieval of data |
US20060123062A1 (en) | 2001-12-19 | 2006-06-08 | Emc Corporation | Virtual file system |
US8140794B2 (en) * | 2002-10-07 | 2012-03-20 | Commvault Systems, Inc. | Snapshot storage and management system with indexing and user interface |
US20130238872A1 (en) * | 2002-10-07 | 2013-09-12 | Commvault Systems, Inc. | Snapshot storage and management system with indexing and user interface |
US20120179886A1 (en) * | 2002-10-07 | 2012-07-12 | Commvault Systems, Inc. | Snapshot storage and management system with indexing and user interface |
US7454443B2 (en) | 2003-08-26 | 2008-11-18 | Tamir Ram | Method, system, and program for personal data management using content-based replication |
US8341117B2 (en) | 2003-08-26 | 2012-12-25 | Arkeia Software, Inc. | Method, system, and program for personal data management using content-based replication |
US7844775B2 (en) | 2005-09-23 | 2010-11-30 | Avid Technology, Inc. | Distribution of data in a distributed shared storage system |
US20130304872A1 (en) * | 2006-12-06 | 2013-11-14 | Fusion-Io, Inc. | Apparatus, system, and method for a storage area network |
US8706777B2 (en) | 2006-12-18 | 2014-04-22 | Microsoft Corporation | Media content catalogs |
US8004791B2 (en) | 2008-02-22 | 2011-08-23 | Western Digital Technologies, Inc. | Information storage device with a bridge controller and a plurality of electrically coupled conductive shields |
US20160100007A1 (en) * | 2008-09-15 | 2016-04-07 | Commvault Systems, Inc. | Data transfer techniques within data storage devices, such as network attached storage performing data migration |
US20100070466A1 (en) * | 2008-09-15 | 2010-03-18 | Anand Prahlad | Data transfer techniques within data storage devices, such as network attached storage performing data migration |
US8255661B2 (en) | 2009-11-13 | 2012-08-28 | Western Digital Technologies, Inc. | Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device |
US8285965B2 (en) | 2009-11-20 | 2012-10-09 | Western Digital Technologies, Inc. | Aligning data storage device partition to boundary of physical data sector |
US8526798B2 (en) | 2009-12-23 | 2013-09-03 | Western Digital Technologies, Inc. | Portable content container displaying A/V files in response to a command received from a consumer device |
US8631284B2 (en) | 2010-04-30 | 2014-01-14 | Western Digital Technologies, Inc. | Method for providing asynchronous event notification in systems |
US8762682B1 (en) | 2010-07-02 | 2014-06-24 | Western Digital Technologies, Inc. | Data storage apparatus providing host full duplex operations using half duplex storage devices |
US20120036041A1 (en) | 2010-08-09 | 2012-02-09 | Western Digital Technologies, Inc. | Methods and systems for a personal multimedia content archive |
US8713265B1 (en) | 2010-09-21 | 2014-04-29 | Western Digital Technologies, Inc. | Visual indicator of online backup |
US20120079424A1 (en) | 2010-09-24 | 2012-03-29 | Hitachi Data Systems Corporation | System and method for optimizing protection levels when replicating data in an object storage system |
US9442806B1 (en) * | 2010-11-30 | 2016-09-13 | Veritas Technologies Llc | Block-level deduplication |
US20120266011A1 (en) * | 2011-04-13 | 2012-10-18 | Netapp, Inc. | Reliability based data allocation and recovery in a storage system |
US8484356B1 (en) | 2011-06-08 | 2013-07-09 | Emc Corporation | System and method for allocating a storage unit for backup in a storage system with load balancing |
US8868666B1 (en) | 2012-01-26 | 2014-10-21 | Western Digital Technologies, Inc. | Methods, devices and systems for content discovery, aggregation and presentment over a network |
US8780004B1 (en) | 2012-01-31 | 2014-07-15 | Western Digital Technologies, Inc. | Dual configuration enclosure with optional shielding |
US20130212401A1 (en) | 2012-02-14 | 2013-08-15 | Western Digital Technologies, Inc. | Methods and devices for authentication and data encryption |
US8819443B2 (en) | 2012-02-14 | 2014-08-26 | Western Digital Technologies, Inc. | Methods and devices for authentication and data encryption |
US8646054B1 (en) | 2012-03-23 | 2014-02-04 | Western Digital Technologies, Inc. | Mechanism to manage access to user data area with bridged direct-attached storage devices |
US20130268759A1 (en) | 2012-04-10 | 2013-10-10 | Western Digital Technologies, Inc. | Digital rights management system transfer of content and distribution |
US20130268749A1 (en) | 2012-04-10 | 2013-10-10 | Western Digital Technologies, Inc. | Digital rights management system and methods for provisioning content to an intelligent storage |
US20130266137A1 (en) | 2012-04-10 | 2013-10-10 | Western Digital Technologies, Inc. | Digital rights managment system, devices, and methods for binding content to an intelligent storage device |
US20130268771A1 (en) | 2012-04-10 | 2013-10-10 | Western Digital Technologies, Inc. | Digital rights management system and methods for accessing content from an intelligent storag |
US20140095439A1 (en) | 2012-10-01 | 2014-04-03 | Western Digital Technologies, Inc. | Optimizing data block size for deduplication |
US20140108615A1 (en) | 2012-10-16 | 2014-04-17 | Norifumi Takaya | Method and apparatus for managing a catalog of media content |
US20140173215A1 (en) | 2012-12-13 | 2014-06-19 | Western Digital Technologies, Inc. | Methods and systems for provisioning a bootable image on to an external drive |
US20140169921A1 (en) | 2012-12-19 | 2014-06-19 | Mark Carey | Cargo carrier |
US9020151B1 (en) | 2013-03-04 | 2015-04-28 | Trend Micro Incorporated | Secure real-time data replication with disk encryption and key management system |
US20140351463A1 (en) * | 2013-05-23 | 2014-11-27 | Western Digital Technologies, Inc. | Methods and devices for booting a network attached storage with two logical units |
US9122712B1 (en) * | 2013-06-28 | 2015-09-01 | Emc Corporation | Compressing container files |
US9569455B1 (en) * | 2013-06-28 | 2017-02-14 | EMC IP Holding Company LLC | Deduplicating container files |
US20160004721A1 (en) * | 2014-07-01 | 2016-01-07 | Commvault Systems, Inc. | Replicating local file systems as respective luns in a storage array, using block-level data transfers and enhanced storage managers, data agents, and media agents in an information management system |
US20160026672A1 (en) * | 2014-07-23 | 2016-01-28 | Netapp. Inc. | Data and metadata consistency in object storage systems |
US9529950B1 (en) * | 2015-03-18 | 2016-12-27 | Altera Corporation | Systems and methods for performing profile-based circuit optimization using high-level system modeling |
Non-Patent Citations (1)
Title |
---|
International Search Report and Written Opinion for PCT/US2016/054008, dated Jan. 11, 2017. |
Also Published As
Publication number | Publication date |
---|---|
WO2017058820A1 (en) | 2017-04-06 |
CN107710144A (en) | 2018-02-16 |
US20170091222A1 (en) | 2017-03-30 |
DE112016004457T5 (en) | 2018-06-28 |
CN107710144B (en) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11687423B2 (en) | Prioritizing highly performant storage systems for servicing a synchronously replicated dataset | |
US11112989B2 (en) | Utilizing a decentralized storage network for data storage | |
US11307894B1 (en) | Executing a big data analytics pipeline using shared storage resources | |
US20230013314A1 (en) | Unlocking Data Stored In A Group Of Storage Systems | |
US11636031B2 (en) | Optimized inline deduplication | |
US11966841B2 (en) | Search acceleration for artificial intelligence | |
US20220217049A1 (en) | Path Management For Container Clusters That Access Persistent Storage | |
US10067685B2 (en) | Identifying disk drives and processing data access requests | |
US10521151B1 (en) | Determining effective space utilization in a storage system | |
US11947968B2 (en) | Efficient use of zone in a storage device | |
CN107710144B (en) | Data storage device replication across logical volumes | |
CN106464716B (en) | Distributed remote data storage access | |
US11144638B1 (en) | Method for storage system detection and alerting on potential malicious action | |
US10097636B1 (en) | Data storage device docking station | |
US20220405200A1 (en) | Compressed data management in zones |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: WESTERN DIGITAL TECHNOLOGIES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NEUMANN, CHARLES A.;REEL/FRAME:036772/0542 Effective date: 20151008 |
|
AS | Assignment |
Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CALIFORNIA Free format text: SECURITY AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:038744/0281 Effective date: 20160512 Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, ILLINOIS Free format text: SECURITY AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:038722/0229 Effective date: 20160512 Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, ILLINOIS Free format text: SECURITY AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:038744/0481 Effective date: 20160512 Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL Free format text: SECURITY AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:038722/0229 Effective date: 20160512 Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGEN Free format text: SECURITY AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:038744/0281 Effective date: 20160512 Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL Free format text: SECURITY AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:038744/0481 Effective date: 20160512 |
|
AS | Assignment |
Owner name: WESTERN DIGITAL TECHNOLOGIES, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT;REEL/FRAME:045501/0714 Effective date: 20180227 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: WESTERN DIGITAL TECHNOLOGIES, INC., CALIFORNIA Free format text: RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481;ASSIGNOR:JPMORGAN CHASE BANK, N.A.;REEL/FRAME:058982/0556 Effective date: 20220203 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., ILLINOIS Free format text: PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:064715/0001 Effective date: 20230818 Owner name: JPMORGAN CHASE BANK, N.A., ILLINOIS Free format text: PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:067045/0156 Effective date: 20230818 |