IP Library Patent Application 13857008
Patent Application
App. No. 13/857,008

SLICE SERVER REBALANCING

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 None
App. No.
13/857,008
Abstract

Disclosed are systems, computer-readable mediums, and methods for determining a load value for each of a plurality of volume servers in a storage system. The storage system stores data from a plurality of clients. Each volume server comprises a plurality of slices, each of which contains data associated with a client. A first volume server is determined to be overloaded based upon the load value for the first volume server being above a predetermined threshold. A slice located on the first volume server is selected to relocate. A second volume server is determined to relocate the slice to based on the load value of the second volume server.

Claims (41)

1 . A method comprising:

determining, using a processor, a load value for each of a plurality of volume servers in a storage system, wherein the storage system stores data from a plurality of clients, wherein each volume server comprises a plurality of slices, and wherein a slice contains data associated with a client;

determining a first volume server is overloaded based upon the load value for the first volume server being above a predetermined threshold;

selecting a slice located on the first volume server to relocate; and

determining a second volume server to relocate the slice to based on the load value of the second volume server.

2 . The method of claim 1 , further comprising moving the slice from the first volume server to the second volume server.

3 . The method of claim 1 , further comprising:

identifying a first set of clients that have slices on the first volume server;

determining a client load value for each of the first set of clients, wherein selecting the slice is based on the client load values.

4 . The method of claim 3 , further comprising:

determining a client is contributing to the first volume server being overloaded based upon the client load value of the client, and wherein the slice contains data of the client.

5 . The method of claim 4 , wherein the determining the second volume server to relocate the slice to based on the load value of the second volume server comprises determining the second volume server has capacity to support the slice based upon the client load and the load value of the second volume server.

6 . The method of claim 1 , wherein the load value for each of the plurality of volume servers is based on a write-cache capacity.

7 . The method of claim 1 , further comprising prior to determining the first volume server is overloaded, selecting the first volume server to store the slice based upon quality of service parameters of clients that have slices on the first volume server.

8 . The method of claim 1 , further comprising prior to determining the first volume server is overloaded, selecting the first volume server to store the slice based upon a storage capacity of the first volume server.

9 . A non-transitory computer-readable medium having instructions stored thereon, that when executed by a computing device cause the computing device to perform operations comprising:

determining a load value for each of a plurality of volume servers in a storage system, wherein the storage system stores data from a plurality of clients, wherein each volume server comprises a plurality of slices, and wherein a slice contains data associated with a client;

determining a first volume server is overloaded based upon the load value for the first volume server being above a predetermined threshold;

selecting a slice located on the first volume server to relocate; and

determining a second volume server to relocate the slice to based on the load value of the second volume server.

10 . The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise moving the slice from the first volume server to the second volume server.

11 . The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise:

identifying a first set of clients that have slices on the first volume server;

determining a client load value for each of the first set of clients, wherein selecting the slice is based on the client load values.

12 . The non-transitory computer-readable medium of claim 11 , wherein the operations further comprise:

determining a client is contributing to the first volume server being overloaded based upon the client load value of the client, and wherein the slice contains data of the client.

13 . The non-transitory computer-readable medium of claim 12 , wherein the determining the second volume server to relocate the slice to based on the load value of the second volume server comprises determining the second volume server has capacity to support the slice based upon the client load and the load value of the second volume server.

14 . The non-transitory computer-readable medium of claim 9 , wherein the load value for each of the plurality of volume servers is based on a write-cache capacity.

15 . The non-transitory computer-readable medium of claim 9 , wherein the operations further comprise prior to determining the first volume server is overloaded, selecting the first volume server to store the slice based upon quality of service parameters of clients that have slices on the first volume server.

16 . The non-transitory computer-readable medium of claim 9 , further comprising prior to determining the first volume server is overloaded, selecting the first volume server to store the slice based upon a storage capacity of the first volume server.

17 . A system comprising:

one or more processors configured to:

determine a load value for each of a plurality of volume servers in a storage system, wherein the storage system stores data from a plurality of clients, wherein each volume server comprises a plurality of slices, and wherein a slice contains data associated with a client;

determine a first volume server is overloaded based upon the load value for the first volume server being above a predetermined threshold;

select a slice located on the first volume server to relocate; and

determine a second volume server to relocate the slice to based on the load value of the second volume server.

18 . The system claim 17 , wherein the one or more processors are further configured to move the slice from the first volume server to the second volume server.

19 . The system claim 17 , wherein the one or more processors are further configured to:

identify a first set of clients that have slices on the first volume server;

determine a client load value for each of the first set of clients, wherein selecting the slice is based on the client load values.

20 . The system claim 19 , wherein the one or more processors are further configured to determine a client is contributing to the first volume server being overloaded based upon the client load value of the client, and wherein the slice contains data of the client.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2016
From: SOLIDFIRE, INC.
To: NETAPP, INC.
Reel/Frame 037923/0268 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2013
From: WRIGHT, DAVID D.; XU, MICHAEL
To: SOLIDFIRE, INC.
Reel/Frame 030158/0466 →