IP Library Granted Patent US 9,696,985
Granted Patent B1
US 9,696,985 · App. 14/989,089 · Granted Jul 4, 2017

Patching of virtual machines within sequential time windows

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 9,696,985
App. No.
14/989,089
Granted
Jul 4, 2017
Kind
B1
Abstract

A method and associated system for patching virtual machines in L redundancy groups in accordance with a patching schedule. The patching schedule is generated by scheduling, in W sequential time windows, P patches applicable to the virtual machines. Each redundancy group includes virtual machines and independently belongs to a respective software application x of X software applications, wherein P≧1, L≧1, R m ≧1, and X≧1. The L redundancy groups collectively comprise at least 2 virtual machines. The scheduling determines x wmk for T tuples (w, m, k) defined by (w=1, . . . , W) and (m=1, . . . , L) and (k=1, . . . , R m ), by maximizing an objective function subject to constraints. Determining x wmk includes setting x wmk =1 if virtual machine k in redundancy group m is to be patched in time window w or setting x wmk =0 otherwise.

Claims (168)

1. A method for patching virtual machines in L redundancy groups in accordance with a patching schedule, said method comprising:

generating, by a processor of a computer system, the patching schedule applicable for patching the virtual machines in the L redundancy groups,

wherein said generating the patching schedule comprises scheduling, in W sequential time windows, P patches applicable to one or more virtual machines in the L redundancy groups, each redundancy group m (m=1, . . . , L) comprising R m virtual machines, each redundancy group m (m=1, . . . , L) independently belonging to a respective software application x of X software applications, wherein P≧1, L≧1, R m ≧1, and X≧1, wherein the L redundancy groups collectively comprise at least 2 virtual machines,

wherein said scheduling comprises determining, by the processor, x wmk for T tuples (w, m, k) defined by (w=1, . . . , W) and (m=1, . . . , L) and (k=1, . . . , R m ), by maximizing an objective function (F) subject to one or more constraints, wherein said determining x wmk comprises setting x wmk =1 if virtual machine k in redundancy group m is to be patched in time window w or setting x wmk =0 otherwise,

wherein the objective function F is a linear combination of N objective function components F n (n=1, . . . , N) expressed as F=Σ n=1 N α n F n subject to N≧1,

wherein α n (n=1, . . . , N) are specified weights satisfying α 1 >0 and α n >0 if n>1,

wherein F 1 =Σ x=1 X B x min w (Π m=1 L A(x, m, n wm )−Π m=1 L A(x, m, 0)),

wherein B x denotes a business criticality of software application x,

wherein n wm is a total number of virtual machines in redundancy group m assigned to time window w,

wherein n wm =Σ k=1 R m x wmk , and

wherein A(x, m, n wm ) denotes a residual availability of redundancy group m belonging to software application x when the n wm virtual machines in redundancy group m are not available in time window w; and

patching, by the processor, the virtual machines in the L redundancy groups according to the patching schedule.

2. The method of claim 1 , said method further comprising:

storing, by the processor, the determined x wmk , for said T tuples, in a data store of the computer system.

3. The method of claim 1 ,

wherein A(x, m, n wm )=(1−S xm Σ i=AR m R m -n wm ( i R m )f i (1−f) R m -i ),

wherein S xm =1 or 0 if redundancy group m belongs, or does not belong, to software application x, respectively,

wherein AR m is a minimum number of virtual machines to be available in redundancy group m for redundancy group m to be available, and

wherein f is a probability of failure of a virtual machine.

4. The method of claim 1 ,

wherein N≧2,

wherein F 2 =Σ w=1 W (1−I w ),

wherein I w =Σ m=1 L Σ k=1 R m x wmk λ wmk /Σ w=1 W Σ m=1 L Σ k=1 R m λ wmk , and

wherein λ wmk is a predicted rate of arrival of patching requests in time window w directed to virtual machine k in redundancy group m.

5. The method of claim 1 ,

wherein N≧2,

wherein

F

2

=

1

-

x

B

x

p

,

w

,

m

,

k

S

x

m

A

p

m

k

x

w

m

k

R

p

(

w

)

x

B

x

p

,

m

,

k

S

x

m

A

p

m

k

x

W

m

k

R

p

(

W

)

,

wherein S xm =1 or 0 if redundancy group m belongs, or does not belong, to software application x, respectively,

wherein R p (w) is risk, between 0 and 1 inclusive, of applying patch p in the time window w, and

wherein A pmk =1 or 0 if the patch p is, or is not, applicable to virtual machine k in redundancy group m, respectively.

6. The method of claim 1 , wherein the one or more constraints comprise a freeze time constraint of setting x wmk =0 for t tuples of the T tuples, subject to t<T.

7. The method of claim 1 , wherein the one or more constraints comprise setting an upper limit of C w on a number of virtual machines that can be patched in time window w (w=1, . . . , W).

8. The method of claim 1 , wherein the one or more constraints comprise a minimum objective function constraint of requiring the objective function F to be equal to or greater than a specified or predetermined minimum F threshold (F th ).

9. The method of claim 1 , wherein the one or more constraints comprise a computing time constraint of a total computer time, for determining x wmk that maximizes the objective function, that exceeds a specified or predetermined maximum computer time threshold t max-th .

10. A computer program product, comprising a computer readable storage device having computer readable program code stored therein, said program code containing instructions executable by a processor of a computer system to implement a method for patching virtual machines in L redundancy groups in accordance with a patching schedule, said method comprising:

generating, by the processor, the patching schedule applicable for patching the virtual machines in the L redundancy groups,

wherein said generating the patching schedule comprises scheduling, in W sequential time windows, P patches applicable to one or more virtual machines in the L redundancy groups, each redundancy group m (m=1, . . . , L) comprising R m virtual machines, each redundancy group m (m=1, . . . , L) independently belonging to a respective software application x of X software applications, wherein P≧1, L≧1, R m ≧1, and X≧1, wherein the L redundancy groups collectively comprise at least 2 virtual machines,

wherein said scheduling comprises determining, by the processor, x wmk for T tuples (w, m, k) defined by (w=1, . . . , W) and (m=1, . . . , L) and (k=1, . . . , R m ), by maximizing an objective function (F) subject to one or more constraints, wherein said determining x wmk comprises setting x wmk =1 if virtual machine k in redundancy group m is to be patched in time window w or setting x wmk =0 otherwise,

wherein the objective function F is a linear combination of N objective function components F n (n=1, . . . , N) expressed as F=Σ n=1 N α n F n subject to N≧1,

wherein α n (n=1, . . . , N) are specified weights satisfying α 1 >0 and α n ≧0 if n>1,

wherein F 1 =Σ x=1 X B x min w (Π m=1 L A(x, m, n wm )−Π m=1 L A(x, m, 0)),

wherein B x denotes a business criticality of software application x,

wherein n wm is a total number of virtual machines in redundancy group m assigned to time window w,

wherein n wm =Σ k=1 R m x wmk , and

wherein A(x, m, n wm ) denotes a residual availability of redundancy group m belonging to software application x when the n wm virtual machines in redundancy group m are not available in time window w; and

patching, by the processor, the virtual machines in the L redundancy groups according to the patching schedule.

11. The computer program product of claim 10 , said method further comprising:

storing, by the processor, the determined x wmk , for said T tuples, in a data store of the computer system.

12. The computer program product of claim 10 ,

wherein A(x, m, n wm )=(1−S xm Σ i=AR m R m -n wm ( i R m )f i (1−f) R m -i ),

wherein S xm =1 or 0 if redundancy group m belongs, or does not belong, to software application x, respectively,

wherein AR m is a minimum number of virtual machines to be available in redundancy group m for redundancy group m to be available, and

wherein f is a probability of failure of a virtual machine.

13. The computer program product of claim 10 , wherein the one or more constraints comprise a freeze time constraint of setting x wmk =0 for t tuples of the T tuples, subject to t<T.

14. A computer system, comprising a processor, a memory coupled to the processor, and a computer readable storage device coupled to the processor, said storage device containing program code executable by the processor via the memory to implement a method for patching virtual machines in L redundancy groups in accordance with a patching schedule, said method comprising:

generating, by the processor, the patching schedule applicable for patching the virtual machines in the L redundancy groups,

wherein said generating the patching schedule comprises scheduling, in W sequential time windows, P patches applicable to one or more virtual machines in the L redundancy groups, each redundancy group m (m=1, . . . , L) comprising R m virtual machines, each redundancy group m (m=1, . . . , L) independently belonging to a respective software application x of X software applications, wherein P≧1, L≧1, R m ≧1, and X≧1, wherein the L redundancy groups collectively comprise at least 2 virtual machines,

wherein said scheduling comprises determining, by the processor, x wmk for T tuples (w, m, k) defined by (w=1, . . . , W) and (m=1, . . . , L) and (k=1, . . . , R m ), by maximizing an objective function (F) subject to one or more constraints, wherein said determining x wmk comprises setting x wmk =1 if virtual machine k in redundancy group m is to be patched in time window w or setting x wmk =0 otherwise,

wherein the objective function F is a linear combination of N objective function components F n (n=1, . . . , N) expressed as F=Σ n=1 N α n F n subject to N≧1,

wherein α n (n=1, . . . , N) are specified weights satisfying α 1 >0 and α n ≧0 if n>1,

wherein F 1 =Σ x=1 X B x min w (Π m=1 L A(x, m, n wm )−Π m=1 L A(x, m, 0)),

wherein B x denotes a business criticality of software application x,

wherein n wm is a total number of virtual machines in redundancy group m assigned to time window w,

wherein n wm =Σ k=1 R m x wmk , and

wherein A(x, m, n wm ) denotes a residual availability of redundancy group m belonging to software application x when the n wm virtual machines in redundancy group m are not available in time window w; and

patching, by the processor, the virtual machines in the L redundancy groups according to the patching schedule.

15. The computer system of claim 14 , said method further comprising:

storing, by the processor, the determined x wmk , for said T tuples, in a data store of the computer system.

16. The computer system of claim 14 ,

wherein A(x,m, n wm )=(1−S xm Σ i=AR m R m -n wm ( i R m )f i (1−f) R m -i ),

wherein S xm =1 or 0 if redundancy group m belongs, or does not belong, to software application x, respectively,

wherein AR m is a minimum number of virtual machines to be available in redundancy group m for redundancy group m to be available, and

wherein f is a probability of failure of a virtual machine.

17. The computer system of claim 14 , wherein the one or more constraints comprise a freeze time constraint of setting x wmk =0 for t tuples of the T tuples, subject to t<T.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2016
From: GUPTA, MANISH; PURI, RAJEEV
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037420/0092 →