IP Library › Granted Patent US 10,789,138
Granted Patent B2
US 10,789,138 · App. 15/948,499 · Granted Sep 29, 2020

SMB service fault processing method and storage device

Inventors: Zhengjiang Wang (Chengdu, CN); Xianqiang Luo (Chengdu, CN); Yi He (Chengdu, CN); Keji Huang (Chengdu, CN); Jian Wu (Chengdu, CN); Mingqian Zhang (Chengdu, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F11/2056G06F3/067G06F11/1448G06F11/1458G06F11/1471G06F11/2089G06F11/2094H04L41/0668H04L67/1097H04L69/40
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,789,138
App. No.
15/948,499
Filed
Apr 9, 2018
Granted
Sep 29, 2020
Kind
B2
Art Unit
2113
USPC
714/48
Abstract

In a method for processing a server message block (SMB) service fault, a first storage device generates a file handle according to a first file open instruction from a host, and sends the file handle to a second storage device. The second storage device stores the file handle as a backup handle. The second storage device activates an Internet Protocol (IP) address of the first storage device according to fault information from the first storage device, and establishes a communication connection to the host. After the second storage device determines a file handle matches the handle identifier, the second storage device opens a file. Hence, when a storage device that processes an SMB service is faulty, the SMB service may be taken over by a secondary storage device such that the SMB service is executed without interruption.

Claims (92)

1. A method for processing server message block (SMB) service fault,

wherein the method is applied to a service processing system comprising a host and at least two storage devices, and wherein the method comprises:

receiving, by a first storage device, a first file open instruction from the host;

generating, by the first storage device, a file handle according to the first file open instruction;

receiving, by the first storage device, a lock instruction from the host;

sending, by the first storage device, a file lock request to a first distributed lock server according to the lock instruction;

setting, by the first distributed lock server according to the file lock request, a file lock for the file corresponding to the file handle;

sending, by the first storage device, the file lock to a second storage device;

storing, by the second storage device, the file lock as a back up file lock;

sending, by the first storage device, the file handle to the second storage device to instruct the second storage device to store the file handle as a backup handle;

sending, by the first storage device, a handle identifier of the file handle to the host;

receiving, by the second storage device, fault information indicating that the first storage device is faulty;

activating, by the second storage device, an Internet Protocol (IP) address of the first storage device on the second storage device in response to receiving the fault information;

establishing, by the second storage device, a communication connection with the host using the IP address of the first storage device;

receiving, by the second storage device, a second file open instruction from the host, wherein the second file open instruction comprises the handle identifier;

determining, by the second storage device, whether the file handle matches the handle identifier;

opening, by the second storage device, a file according to the file handle when the file handle matches the handle identifier; and

sending, by the second storage device, an operation result to the host.

2. The method of claim 1 , wherein the first file open instruction comprises a persistent handle obtaining subcommand, wherein generating the file handle comprises generating, by the first storage device, the file handle according to the persistent handle obtaining subcommand, and wherein the method further comprises:

determining, by the first storage device, whether the file handle comprises a persistent handle; and

sending, by the first storage device, the file handle to the second storage device when the file handle comprises the persistent handle.

3. The method of claim 1 , wherein the second file open instruction comprises a handle restoration subcommand, and wherein the handle identifier is comprised in the handle restoration subcommand.

4. The method of claim 1 , wherein the first storage device, the second storage device, and the first distributed lock server belong to a same storage array.

5. The method of claim 4 , wherein after storing the file handle as the backup handle, the method further comprises:

sending, by the second storage device, a silence request to the first distributed lock server, wherein file information comprised in the silence request corresponds to the backup handle; and

silently setting, by the first distributed lock server, a file corresponding to the backup handle in the second storage device according to the file information.

6. The method of claim 5 , wherein after determining the file handle matching the handle identifier, the method further comprises:

determining, by the second storage device, the backup file lock corresponding to the file handle;

sending, by the second storage device, information about the backup file lock to the first distributed lock server; and

locking, by the first distributed lock server, the file according to the information about the backup file lock.

7. The method of claim 1 , wherein

the first storage device and the first distributed lock server belong to a same storage array, and wherein the first storage device and the second storage device belong to different storage arrays.

8. The method of claim 7 , wherein after storing the file handle as the backup handle, the method further comprises:

sending, by the second storage device, a silence request to a second distributed lock server, wherein file information comprised in the silence request corresponds to the backup handle; and

silently setting, by the second distributed lock server according to the file information, a file corresponding to the backup handle in the second storage device, wherein the second distributed lock server and the second storage device belong to a same storage array.

9. The method of claim 8 , wherein after determining whether the file handle matches the handle identifier, the method further comprises:

determining, by the second storage device, the backup file lock corresponding to the file handle;

sending, by the second storage device, information about the backup file lock to the second distributed lock server when the file handle matches the handle identifier; and

locking, by the second distributed lock server, the file according to the information about the backup file lock.

10. The method of claim 1 , further comprising:

starting, by the second storage device, a timer in response to receiving the fault information; and

updating, by the second storage device, the backup handle when a timing duration reaches a preset duration, wherein updating the backup handle comprises either deleting the backup handle or setting the backup handle is invalid.

11. A storage system, comprising:

a first storage device configured to:

receive a first file open instruction from a host;

generate a file handle according to the first file open instruction;

receive a lock instruction from the host;

send a file lock request to a first distributed lock server according to the lock instruction;

send the file handle to a second storage device to instruct the second storage device to store the file handle as a backup handle; and

send a handle identifier of the file handle to the host;

the second storage device coupled to the first storage device and configured to:

receive fault information indicating that the first storage device is faulty;

activate an Internet Protocol (IP) address of the first storage device on the second storage device in response to receiving the fault information;

establish a communication connection with the host using the IP address of the first storage device;

receive a second file open instruction from the host, wherein the second file open instruction comprises a handle identifier;

determine whether the file handle matches the handle identifier; and

open a file according to the file handle and send an operation result to the host when the file handle matches the handle identifier; and

the first distributed lock server configured to:

set, according to the file lock request, a file lock for the file corresponding to the file handle;

wherein the first storage device is further configured to send the file lock to the second storage device, and

wherein the second storage device is further configured to store the file lock as a backup file lock.

12. The storage system of claim 11 , wherein the first file open instruction comprises a persistent handle obtaining subcommand, and wherein the first storage device is further configured to:

generate the file handle according to the persistent handle obtaining subcommand;

determine whether the file handle comprises a persistent handle; and

send the file handle to the second storage device when the file handle comprises the persistent handle.

13. The storage system of claim 11 , wherein the second file open instruction comprises a handle restoration subcommand, and wherein the handle identifier is comprised in the handle restoration subcommand.

14. The storage system of claim 11 ,

wherein the first storage device, the second storage device, and the first distributed lock server belong to a same storage array.

15. The storage system of claim 14 , wherein the second storage device is further configured to send a silence request to the first distributed lock server after storing the file handle as the backup handle, wherein file information comprised in the silence request corresponds to the backup handle, and wherein the first distributed lock server is further configured to silently set, according to the file information, a file corresponding to the backup handle in the second storage device.

16. The storage system of claim 14 , wherein the second storage device is further configured to:

determine the backup file lock corresponding to the file handle; and

send information about the backup file lock to the first distributed lock server, and

wherein the first distributed lock server is further configured to lock the file according to the information about the backup file lock.

17. The storage system of claim 11 , wherein the first storage device and the first distributed lock server belong to a same storage array, and wherein the first storage device and the second storage device belong to different storage arrays.

18. The storage system of claim 17 , wherein the storage system further comprises a second distributed lock server, wherein the second distributed lock server and the second storage device belong to a same storage array, wherein the second storage device is further configured to send a silence request to the second distributed lock server after the second storage device stores the file handle as the backup handle, wherein file information comprised in the silence request corresponds to the backup handle, and wherein the second distributed lock server is configured to silently set, according to the file information, a file corresponding to the backup handle in the second storage device.

19. The storage system of claim 11 , wherein the second storage device is further configured to:

start a timer in response to receiving the fault information; and

either delete the backup handle or set the backup handle as invalid when a timing duration reaches a preset duration.

20. A method for processing server message block (SMB) service fault, wherein the method is applied to a service processing system comprising a host and at least two storage devices, and wherein the method comprises:

receiving, by a first storage device, a first file open instruction from the host;

generating, by the first storage device, a file handle according to the first file open instruction;

sending, by the first storage device, the file handle to the second storage device to instruct the second storage device to store the file handle as a backup handle;

sending, by the first storage device, a handle identifier of the file handle to the host;

receiving, by the second storage device, fault information indicating that the first storage device is faulty;

starting, by the second storage device, a timer in response to receiving the fault information;

updating, by the second storage device, the backup handle when a timing duration reaches a preset duration, wherein updating the backup handle comprises either deleting the backup handle or setting the backup handle is invalid;

activating, by the second storage device, an Internet Protocol (IP) address of the first storage device on the second storage device in response to receiving the fault information;

establishing, by the second storage device, a communication connection with the host using the IP address of the first storage device;

receiving, by the second storage device, a second file open instruction from the host, wherein the second file open instruction comprises the handle identifier;

determining, by the second storage device, whether the file handle matches the handle identifier;

opening, by the second storage device, a file according to the file handle when the file handle matches the handle identifier; and

sending, by the second storage device, an operation result to the host.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2018
From: WANG, ZHENGJIANG; LUO, XIANQIANG; HE, YI; HUANG, KEJI; WU, JIAN; ZHANG, MINGQIAN
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 045482/0030 →
Continuity (2)
Continuation PCTCN2016107237 · Nov 25, 2016
Related Publication 20180225183A1 · Aug 9, 2018
Cited By (5)
US 12,307,238 US 12,400,015 US 12,461,832 US 12,541,431 US 12,699,560