IP Library Granted Patent US 10,073,987
Granted Patent B2
US 10,073,987 · App. 14/061,592 · Granted Sep 11, 2018

Methods and systems for privileged execution support for file system commands on a storage device

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,073,987
App. No.
14/061,592
Granted
Sep 11, 2018
Kind
B2
Abstract

The present invention relates to a storage device that is able to execute higher level commands, such as network-level, file-system commands, with privileged access to various resources, such as the storage media, hardware, memory, firmware, etc. In one embodiment, the storage device is configured to receive and execute network-level file-system commands, such as Server-Message-Block protocol commands. In particular, the storage device comprises a drive having a storage media and a communications interface, such as a network interface, and a controller. The controller is configured to interpret and execute network-level, file-system commands received from the communications interface on data stored on the storage media. Accordingly, the storage device can service the network-level, file-system commands more efficiently and without the need for user-space applications.

Claims (63)

1. A storage drive configured to execute network-level file-system commands directly without needing an external computing resource to execute and translate the network-level file-system commands into block-level commands, the storage drive comprising:

at least one physical storage medium;

a hardware controller configured to control the at least one physical storage medium;

a memory, coupled to the hardware controller, configured to store:

at least a portion of a file system for files stored on the at least one physical storage medium; and

a mapping of the files to locations on the at least one physical storage medium;

a communications interface configured to communicate with a network and receive network-level file-system commands; and

a processor coupled to the communications interface, the processor configured to:

execute the received network-level file-system commands relating to the files stored on the at least one physical storage medium, wherein:

the processor has privileged access to the hardware controller and the at least one physical storage medium; and

the processor is configured to execute the network-level file-system commands in kernel space; and

translate the network-level file-system commands into block-level commands;

wherein the hardware controller is further configured to:

determine, using the mapping, one or more locations on the at least one physical storage medium of the files related to the network-level file-system commands; and

execute the block-level commands for the one or more locations on the at least one physical storage medium.

2. The storage drive of claim 1 , wherein the at least one physical storage medium comprises a hard disk.

3. The storage drive of claim 1 , wherein the at least one physical storage medium comprises a solid-state medium.

4. The storage drive of claim 1 , wherein the communications interface comprises an Ethernet-protocol network communications interface.

5. The storage drive of claim 1 , wherein the network-level file-system commands comprise server message block (SMB) commands.

6. The storage drive of claim 1 , wherein the hardware controller is further configured to execute an embedded operating system.

7. The storage drive of claim 1 , wherein the processor comprises firmware implementing program code to execute the network-level file-system commands.

8. A storage drive configured to execute commands with privileged access to storage media of the storage drive, the storage drive comprising:

at least one physical storage medium;

a hardware controller configured to control the at least one physical storage medium;

a memory, coupled to the hardware controller, configured to store:

at least a portion of a file system related to files stored on the at least one physical storage medium; and

a mapping of the files to locations on the at least one physical storage medium;

a network interface configured to interface with a network; and

a processor coupled to the network interface, the processor configured to execute an operating system and execute network-level file-system commands relating to the files stored on the at least one physical storage medium, wherein:

the processor has privileged access to the hardware controller and the at least one physical storage medium; and

the processor is further configured to execute the network-level file-system commands in kernel space directly without needing an external computing resource to execute and translate the network-level file-system commands into block-level commands;

the processor is further configured to translate the network-level file-system commands into block-level commands; and

the processor is further configured to, responsive to file changes caused by the network-level file-system commands, maintain the mapping.

9. The storage drive of claim 8 , wherein the at least one physical storage medium comprises at least one hard disk.

10. The storage drive of claim 8 , wherein the hardware controller is further configured to execute an embedded LINUX operating system.

11. The storage drive of claim 8 , wherein the hardware controller is further configured to execute an embedded Windows operating system.

12. The storage drive of claim 8 , wherein the processor comprises firmware implementing program code for executing network-level file-system commands.

13. The storage drive of claim 8 , wherein the network-level file-system commands comprise server message block (SMB) commands that are executed on the files stored on the at least one physical storage medium based on privileged access to the at least one physical storage medium.

14. A method of processing network-level file-system commands by a storage drive, wherein the storage drive comprises physical storage media, a hardware controller for controlling the physical storage media, a memory, coupled to the hardware controller, storing at least a portion of a file system related to files stored on the physical storage media and a mapping of the files to locations on the physical storage media, a network communications interface for communications with a network, and a processor executing program code based on privileged access to the hardware controller and the physical storage media of the storage drive, said method comprising:

receiving, via the network communications interface, at least one network-level file-system command;

forwarding, from the network communications interface to the processor, the received at least one network-level file-system command; and

executing, by the processor, the at least one network-level file-system command based on the privileged access of the processor to the hardware controller and the physical storage media, wherein the processor executes the at least one network-level file-system command in kernel space;

translating the at least one network-level file-system command into at least one block-level command;

determining, using the mapping, one or more locations on the physical storage media corresponding to files associated with the at least one network-level file-system command without needing an external computing resource to execute and translate the at least one network-level file-system command into block-level commands; and

executing the at least one block-level command for the one or more locations on the physical storage media.

15. The method of claim 14 , wherein executing the at least one network-level file-system command comprises executing, in firmware within the processor, the at least one network-level file-system command.

16. The method of claim 14 , wherein the at least one network-level file-system command comprises at least one server message block (SMB) command.

17. A network attached storage drive configured to execute network-level file-system commands directly without needing an external computing resource to execute and translate the network-level file-system commands into block-level commands, said storage drive comprising:

physical storage media;

a hardware controller configured to control the physical storage media;

a memory storing:

at least a portion of a file system for files stored on the physical storage media; and

a mapping of the files to locations on the physical storage media;

a network interface configured to interface with a network and receive network-level file-system commands; and

a processor coupled to the network interface, the processor configured to execute network-level file-system commands related to the files stored on the physical storage media, wherein:

the processor has privileged access to the hardware controller and the physical storage media;

the processor is further configured to execute the network-level file-system commands in kernel space; and

the processor is further configured to translate the network-level file-system commands into block-level commands;

wherein the hardware controller is configured to determine one or more locations on the physical storage media of the files associated with the network-level file-system commands using the mapping.

18. The network attached storage drive of claim 17 , wherein the physical storage media comprise at least one hard drive.

19. The network attached storage drive of claim 17 , wherein the hardware controller is further configured to execute an embedded LINUX operating system.

20. The network attached storage drive of claim 17 , wherein the hardware controller is further configured to execute a Windows operating system.

21. The network attached storage drive of claim 17 , wherein the processor is further configured to execute program code with privileged access to the hardware controller and the physical storage media.

Assignments (13)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2013
From: SADRY, NAUZAD
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 031464/0641 →