THE NATION MULTIROTTUK
`
`US009811662B2
`
`( 12 ) United States Patent
`Sharpe et al .
`
`( 10 ) Patent No . :
`( 45 ) Date of Patent :
`
`US 9 , 811 , 662 B2
`* Nov . 7 , 2017
`
`( 54 ) PERFORMING ANTI - VIRUS CHECKS FOR A
`DISTRIBUTED FILESYSTEM
`( 71 ) Applicant : Panzura , Inc . , Campbell , CA ( US )
`( 72 ) Inventors : Richard Sharpe , Mountain View , CA
`( US ) ; Randy Yen - pang Chou , San
`Jose , CA ( US )
`( 73 ) Assignee : PANZURA , INC . , Campbell , CA ( US )
`Subject to any disclaimer , the term of this
`( * ) Notice :
`patent is extended or adjusted under 35
`U . S . C . 154 ( b ) by 384 days .
`This patent is subject to a terminal dis -
`claimer .
`( 21 ) Appl . No . : 14 / 019 , 212
`( 22 ) Filed :
`Sep . 5 , 2013
`Prior Publication Data
`( 65 )
`US 2014 / 0007239 A1 Jan . 2 , 2014
`
`Related U . S . Application Data
`( 63 ) Continuation - in - part of application No . 13 / 971 , 621 ,
`filed
`on Aug .
`20 ,
`2013 ,
`which
`is
`a
`continuation - in - part of application No . 12 / 772 , 806 ,
`filed on May 3 , 2010 , now Pat . No . 8 , 719 , 444 , and a
`continuation - in - part of application No . 13 / 782 , 729 ,
`filed on Mar . 1 , 2013 , which is a continuation - in - part
`of application No . 13 / 769 , 185 , filed on Feb . 15 , 2013 ,
`which is a continuation - in - part of application No .
`13 / 725 , 738 , filed on Dec . 21 , 2012 , now Pat . No .
`8 , 799 , 413 , which is
`a
`continuation - in - part of
`application No . 12 / 772 , 927 , filed on May 3 , 2010 ,
`now Pat . No . 8 , 341 , 363 , and a continuation - in - part of
`application No . 13 / 225 , 194 , filed on Sep . 2 , 2011 ,
`( Continued )
`
`( 52 )
`
`( 58 )
`
`( 56 )
`
`( 51 ) Int . Cl .
`( 2006 . 01 )
`G06F 15 / 16
`( 2013 . 01 )
`G06F 21 / 56
`GO6F 1730
`( 2006 . 01 )
`U . S . CI .
`CPC . . . . . G06F 21 / 561 ( 2013 . 01 ) ; G06F 17 / 30097
`( 2013 . 01 ) ; G06F 17 / 30159 ( 2013 . 01 ) ; G06F
`17730203 ( 2013 . 01 )
`Field of Classification Search
`CPC . . . . . . . . . . . . . H04L 67 / 2842 ; H04L 67 / 1097 ; H04L
`67 / 2847 ; HO4L 29 / 06918 ; HO4L 63 / 145 ;
`GO6F 17 / 30902 ; G06F 17 / 30203
`USPC . . . . . . . . . . . .
`. . . . . . . . 709 / 217
`See application file for complete search history .
`References Cited
`U . S . PATENT DOCUMENTS
`6 , 466 , 978 B1 10 / 2002 Mukherjee et al .
`6 , 697 , 846 B1
`2 / 2004 Soltis
`( Continued )
`Primary Examiner — SM Rahman
`( 74 ) Attorney , Agent , or Firm — Park , Vaughan , Fleming
`& Dowler LLP ; Mark Spiller
`( 57 )
`ABSTRACT
`The disclosed embodiments disclose techniques that facili
`tate the process of performing anti - virus checks for a dis
`tributed filesystem . Two or more cloud controllers collec
`tively manage distributed filesystem data that is stored in
`one or more cloud storage systems ; the cloud controllers
`ensure data consistency for the stored data , and each cloud
`controller caches portions of the distributed filesystem .
`During operation , a cloud controller receives a write request
`from a client system that seeks to store a target file in the
`distributed system . A scan is then performed for this target
`file . For instance , the scan may be an anti - virus scan that
`ensures that viruses are not spread to the distributed file
`system or the clients of the distributed filesystem .
`20 Claims , 60 Drawing Sheets
`
`SITE # 1
`
`CLIENT
`
`CLIENT
`4200
`
`CONTROLLER
`
`CLOUD
`CONTROLLER
`4202
`
`CLOUD STORAGE PROVIDER ENVIRONMENT
`4210
`
`CLOUD COMPUTE SERVICES 4212
`
`CLOUD
`STORAGE
`SYSTEM
`302
`
`CLOUD
`CONTROLLER
`( VM )
`4208
`
`ANTI
`VIRUS
`( VM )
`4214
`
`CLOUD
`CONTROLLER
`4204
`
`CLOUD
`CONTROLLER
`4296
`
`Page 1 of 116
`
`Netskope Exhibit 1006
`
`

`

`US 9 , 811 , 662 B2
`Page 2
`
`( 56 )
`
`Related U . S . Application Data
`now Pat . No . 8 , 356 , 016 , and a continuation - in - part of
`application No . 13 / 295 , 844 , filed on Nov . 14 , 2011 ,
`now Pat . No . 8 , 788 , 628 .
`References Cited
`U . S . PATENT DOCUMENTS
`7 , 069 , 307 B1
`6 / 2006 Lee et al .
`7 , 610 , 285 B1
`10 / 2009 Zoellner et al .
`7 , 624 , 134 B2 11 / 2009 Stakutis et al .
`7 , 657 , 550 B2
`2 / 2010 Prahlad et al .
`7 , 844 , 582 B1 11 / 2010 Arbilla et al .
`7 , 865 , 873 B1
`/ 2011 Zoellner et al .
`1
`2004 / 0028068 A1 *
`2 / 2004 Kizhepat . . . . . . . . . . . . . . . G06F 3 / 0626
`370 / 420
`2004 / 0243644 Al 12 / 2004 Steere et al .
`6 / 2006 Armstrong . . . . . . . . . . . G06F 21 / 53
`2006 / 0136720 A1 *
`713 / 164
`2008 / 0140724 A1 *
`6 / 2008 Flynn . .
`G06F 1 / 183
`2010 / 0100698 A1 4 / 2010 Yang et al .
`2010 / 0114832 A1
`5 / 2010 Lillbridge et al .
`2010 / 0306488 A1 *
`12 / 2010 Stroberger . . . . . . . . . . G06F 11 / 2064
`711 / 162
`2010 / 0325377 Al 12 / 2010 Lango et al .
`2010 / 0333116 AL 12 / 2010 Prahlad et al .
`2011 / 0029730 A1 *
`2 / 2011 Durocher . . . . . . . . . . . . GO6F 12 / 0866
`711 / 114
`2011 / 0276713 AL 11 / 2011 Brand
`2012 / 0011176 AL
`1 / 2012 Aizman
`2012 / 0089781 A1 4 / 2012 Ranade et al .
`2013 / 0204849 AL
`8 / 2013 Chacko
`* cited by examiner
`
`Page 2 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 1 of 60
`
`US 9 , 811 , 662 B2
`
`CLIENT
`100
`
`CLIENT
`102
`
`CLIENTI
`
`A
`
`NAS DEVICE
`110
`
`NAS DEVICE
`112
`
`NAS DEVICE
`114
`
`NAS
`: Y NAS DEVICE
`NAS DEVICE
`FIG . 1A
`
`CLIENT
`100
`
`CLIENT
`102
`
`NAS DEVICE
`110
`
`NAS DEVICE
`112
`
`LOAD
`BALANCER
`120
`
`NAS DEVICE
`114
`
`FIG . 1B
`
`CLIENT En BLOCK
`
`COMPUTING
`DEVICE
`200
`
`SANI
`ISCSI
`LINK
`
`FILESYSTEM
`202
`FIG . 2
`
`STORAGE
`DEVICE
`204
`
`Page 3 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 2 of 60
`
`US 9 , 811 , 662 B2
`
`CLOUD FILES 318
`
`
`BLOCK IN CLOUD FILE 320
`DATA
`
`CLOUD STORAGE SYSTEM 302
`
`FIG . 3
`
`CLOUD CONTROLLER 300
`
`REQUEST SERVER 304
`
`CLIENT 306
`
`
`
`
`
`TRANSACTIONAL FILESYSTEM 308
`
`ROOT
`
`FILESYSTEM METADATA 310
`STORAGE 312
`
`CVA & OFFSET
`
`FILEX [ B ] [ B ] [ BX ] BLOCK PTR
`BLOCK RECORD 314
`
`DISK BLOCKS 316
`
`Page 4 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 3 of 60
`
`US 9 , 811 , 662 B2
`
`-
`
`-
`
`-
`
`CLOUD FILES 318
`
`CLOUD STORAGE SYSTEM 302
`
`FIG . 4A FIG . 4A
`
`CLOUD CONTROLLER 300
`Here
`
`REQUEST SERVER 304
`
`CLIENT 306
`
`MODIFIED METADATA 400
`
`B1 182 . . . B BLOCK PTR
`
`
`FILEX
`
`CVA & OFFSET
`
`BLOCK RECORD 314
`
`ROOT
`
`
`
`TRANSACTIONAL FILESYSTEM 308
`
`FILESYSTEM METADATA 310
`STORAGE 312
`
`DISK BLOCKS 316
`
`Page 5 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 4 of 60
`
`US 9 , 811 , 662 B2
`
`ROOT
`
`MODIFIED METADATA 400
`
`BE2 . . . BX
`
`DOW !
`
`FILEX
`
`CLOUD STORAGE SYSTEM 302
`
`VIRTUAL CLOUD FILE 412
`
`BLOCK ADDR
`
`
`BLOCK ADDR
`
`BLOCK ADDR BLOCK ADDR
`
`DISK BLOCKS 316
`
`FIG . 4B
`
`FILESYSTEM METADATA 310
`
`STORAGE 312
`
`GET OVERLAY METADATA 410
`
`
`
`
`
`TRANSACTIONAL FILESYSTEM 308
`
`Page 6 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 5 of 60
`
`US 9 , 811 , 662 B2
`
`. .
`
`40 .
`
`B12 . . . ex
`
`
`
`UPDATE META - DATA
`
`FLEX
`
`ROOT
`
`
`
`TRANSACTIONAL FILESYSTEM
`
`FILESYSTEM METADATA
`STORAGE
`
`CLOUD CONTROLLER 420
`
`CLOUD CONTROLLER
`
`300
`
`.
`
`SNAPSHOT
`
`TRANSACTIONAL FILESYSTEM 308
`
`FILET SNAPSHOTS
`5
`CLOUD
`
`NOTIFICATION
`FILESYSTEM METADATA 310
`STORAGE 312
`
`
`
`
`
`FIG . 4C
`
`CLOUD STORAGE SYSTEM 302
`
`Page 7 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 6 of 60
`
`US 9 , 811 , 662 B2
`
`CLOUD FILES 318
`
`CLOUD STORAGE SYSTEM 302
`
`FIG . 4D
`
`CLOUD CONTROLLER 420
`
`FILESYSTEM METADATA 424
`
`TRANSACTIONAL FILESYSTEM
`REQUEST
`a rtet SERVER
`STORAGE 426
`
`ROOT
`
`. ' FLEX
`
`CVA & OFFSET
`
`[ B ] [ B ] [ B ] BLOCKPERS
`BLOCK RECORD
`
`CLIENT 421 I am the st
`
`DISK BLOCKS 428
`
`Page 8 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 7 of 60
`
`US 9 , 811 , 662 B2
`
`DATA BLOCKS 432
`HHH
`
`. .
`
`olton
`LOOKUP
`
`L2
`
`L1 HASH TABLE
`
`ROOT
`
`H
`
`OU
`LOOKUP OPERATION
`
`FILEX
`
`Ex ] - - - 62 ] D1
`
`BLOCK PTR
`
`CVA & OFFSETY
`
`BLOCK RECORD 436
`
`FIG . 4E Gen
`
`CLOUD STORAGE SYSTEM 302
`
`PRC 430
`
`LOOKUP STRUCTURE 434
`FILESYSTEM METADATA 424
`
`
`
`TRANSACTIONAL FILESYSTEM
`
`CLOUD CONTROLLER 420
`
`Page 9 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 8 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`RECEIVE IN A CLOUD CONTROLLER A REQUEST TO
`ACCESS A DATA BLOCK FOR A FILE
`500
`
`TRAVERSE THE METADATA TO IDENTIFY A METADATA
`ENTRY THAT IS ASSOCIATED WITH THE DATA BLOCK
`510
`
`USE METADATA ENTRY TO DOWNLOAD A CLOUD FILE
`CONTAINING THE DATA BLOCK FROM A CLOUD
`STORAGE SYSTEM
`520
`
`DETERMINE THAT AN ADDITONAL CLOUD FILE IN THE
`CLOUD STORAGE SYSTEM INCLUDES DATA THAT IS
`LIKELY TO BE ACCESSED IN CONJUNCTION WITH THE
`DATA BLOCK
`530
`
`PRE - FETCH THE ADDITIONAL CLOUD FILE FROM THE
`CLOUD STORAGE SYSTEM
`540
`
`CEND END
`
`FIG . 5
`
`Page 10 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 9 of 60
`
`US 9 , 811 , 662 B2
`
`
`
`CLOUD STORAGE SYSTEM 302
`
`FIG . 6A
`
`COMPUTING DEVICE 600
`
`.
`
`.
`
`.
`
`. .
`
`FILESYSTEM DEVICE
`DRIVER 616
`
`REQUEST SERVER 608
`
`
`
`
`
`NAS FILESYSTEM 642
`
`STORAGE 644
`
`NAS
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`. .
`
`.
`
`.
`
`.
`
`.
`
`-
`
`. *
`
`-
`
`.
`
`-
`
`.
`
`-
`
`.
`
`-
`
`.
`
`. -
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`DEVICE 640 mage
`COMPUTING DEVICE 630
`
`. .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`

`
`I
`
`
`
`STORAGE MANAGEMENT SYSTEM 632
`
`CLIENT 610
`
`CLIENT 612
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`
`
`
`
`LOCAL COMPUTING ENVIRONMENT 614
`
`. .
`
`.
`
`.
`
`.
`
`. .
`
`.
`
`-
`
`-
`
`- -
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`- -
`
`-
`
`-
`
`- -
`
`-
`
`-
`
`Page 11 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 10 of 60
`
`US 9 , 811 , 662 B2
`
`CLOUD STORAGE SYSTEM 302
`
`FIG . 6B
`
`COMPUTING DEVICE 600
`
`FILESYSTEM DEVICE
`DRIVER 616
`
`REQUEST SERVER 608
`
`
`
`STORAGE MANAGEMENT SYSTEM 632
`
`
`
`
`
`NAS FILESYSTEM 642
`
`STORAGE 644
`
`CLIENT 610
`
`CLIENT 612
`
`CLOUD CONTROLLER 601
`
`
`
`LOCAL COMPUTING ENVIRONMENT 614
`
`
`
`
`
`Page 12 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 11 of 60
`
`US 9 , 811 , 662 B2
`
`CLOUD STORAGE SYSTEM 302
`
`FIG . 6C
`
`FILESYSTEM DEVICE
`DRIVER 616
`
`
`
`STORAGE MANAGEMENT SYSTEM 618
`
`STORAGE 620
`
`REQUEST SERVER 608
`
`querer
`CLIENT 612
`
`CLIENT 610
`
`
`
`
`
`OPERATING SYSTEM 606 HOST OPERATING SYSTEM 604 GUEST
`
`
`
`
`
`CLOUD CONTROLLER 602
`
`
`
`
`
`LOCAL COMPUTING ENVIRONMENT 614
`
`Page 13 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 12 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`RECEIVE A REQUEST TO PERFORMAFILE
`OPERATION FROM A CLIENT COMPUTING DEVICE
`700
`
`ISSUE ONE OR MORE FILESYSTEM OPERATIONS FOR
`THE REQUEST
`710
`
`USE FILESYSTEM DEVICE DRIVER TO EXTRACT
`FILESYSTEM - LEVEL INFORMATION FROM THE ONE
`OR MORE FILESYSTEM OPERATIONS
`720
`
`FORWARD THE EXTRACTED FILESYSTEM - LEVEL
`INFORMATION TO A STORAGE MANAGEMENT
`SYSTEM
`730
`
`END
`
`FIG . 7A
`
`Page 14 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 13 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`EXECUTE A GUEST OPERATING SYSTEM ON A
`VIRTUAL MACHINE
`740
`
`RECEIVE IN THE GUEST OPERATING SYSTEMA
`REQUEST TO PERFORM A FILE OPERATION FROM A
`CLIENT COMPUTING DEVICE
`750
`
`USE FILESYSTEM DEVICE DRIVER FOR THE GUEST
`OPERATING SYSTEM TO FORWARD INFORMATION
`ASSOCIATED WITH THE REQUEST TO THE HOST
`OPERATING SYSTEM
`760
`
`USE THE FORWARDED INFORMATION IN THE HOST
`OPERATING SYSTEM TO MANAGE A FILE
`ASSOCIATED WITH THE REQUEST IN THE CLOUD
`CONTROLLER AND IN A CLOUD STORAGE SYSTEM
`770
`
`CEND END
`
`FIG . 7B
`
`Page 15 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`N ov . 7 , 2017
`
`Sheet 14 of 60
`
`US 9 , 811 , 662 B2
`
`FIG . 8
`
`CLOUD CONTROLLER 800
`
`CLOUD STORAGE SYSTEM 302
`
`MIRROR STORAGE SYSTEM 804
`
`?? CLOUD CONTROLLER 892
`
`meinbienvenieur
`
`31
`
`CLIENT
`
`CLIENT
`
`?
`
`Page 16 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 15 of 60
`
`US 9 , 811 , 662 B2
`
`COMPUTING ENVIRONMENT 900
`
`. .
`
`.
`
`.
`
`.
`
`SERVER
`930
`
`DATABASE
`970
`
`SERVER
`950
`
`VUUUUUU
`
`SERVER
`940
`
`NETWORK
`960
`
`
`
`??????? ????????
`
`.
`
`. v
`
`v .
`
`.
`
`v
`
`. .
`
`. vv
`
`. . . vv
`
`v
`
`.
`
`vv .
`
`vv . . .
`
`CLIENT
`910
`
`920
`
`CBS CB USER
`
`USER
`921
`
`M
`CLIENT
`911
`
`CLIENT
`912
`
`A
`
`W
`
`ow
`
`!
`
`APPLIANCE
`990
`
`CLOUD - BASED
`STORAGE SYSTEM
`995
`
`DEVICES
`980
`
`FIG . 9
`
`Page 17 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 16 of 60
`
`US 9 , 811 , 662 B2
`
`COMPUTING DEVICE 1000
`
`PROCESSOR
`1002
`
`STORAGE
`MECHANISM
`1004
`
`RECEIVING MECHANISM
`1006
`
`STORAGE MANAGEMENT
`MECHANISM
`1008
`
`FIG . 10
`
`Page 18 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 17 of 60
`
`US 9 , 811 , 662 B2
`
`… … … …
`
`?
`
`NEW METADATA / DATA SNAPSHOTS AND
`CLOUD FILES TO CLOUD STORAGE SYSTEM
`NEW METADATA AND DATA BEING
`DOWNLOADED TO CLOUD CONTROLLERS
`CLIENT TO CLOUD CONTROLLER
`CONNECTION
`
`1
`
`BACKUP
`CLOUD
`CONTROLLER
`100
`
`CLIENT
`1130
`
`CLOUD
`CONTROLLER
`1112
`
`?? CLIENT
`
`1114
`
`CLIENT
`1116
`
`CLOUD
`CONTROLLER
`102
`
`CLOUD
`STORAGE
`SYSTEM
`302
`
`art
`? |
`| ?? …
`
`CLOUD
`CONTROLLER
`139
`
`CLIENT
`1128
`
`CLOUD
`CONTROLLER
`1108
`
`CLIENT
`1126
`
`CLIENT
`1124
`
`CLOUD
`CONTROLLER
`1104
`
`| |
`… ??
`
`CLOUD
`CONTROLLER
`1106
`
`CLIENT
`1118
`
`CLIENT
`1122
`
`CLIENT
`1120
`
`FIG . 1A
`
`Page 19 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 18 of 60
`
`US 9 , 811 , 662 B2
`
`11 NEW METADATA / DATA SNAPSHOTS AND
`- CLOUD FILES TO CLOUD STORAGE SYSTEM
`NEW METADATA AND DATA BEING
`* DOWNLOADED TO CLOUD CONTROLLERS
`CLIENT TO CLOUD CONTROLLER
`seres sorties were 11
`CONNECTION
`
`CLIENT
`1130
`
`CLOUD
`CONTROLLER
`1112
`
`CLOUD
`CONTROLLER
`1110
`
`BACKUP
`CLOUD
`CONTROLLER
`1100
`
`In 11 -
`
`meer
`
`CLOUD
`STORAGE
`SYSTEM
`302
`
`CLIENT
`1114
`onder
`
`manier was
`
`weten
`
`CLIENT
`1116
`
`1102 X
`
`NOU
`CONTEXOLLER
`
`CLOUD
`CONTROLLER
`1104
`
`CLIENT
`1128
`
`CLIENT
`1126
`
`CLOUD
`CONTROLLER
`1108
`
`CLIENT
`
`1124 SON - -
`
`CLIENT
`1118
`
`CLIENT
`1120
`
`CLOUD
`CONTROLLER
`1106
`
`- CLIENT
`
`1122
`
`FIG . 11B
`
`Page 20 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 19 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`USE TWO OR MORE CLOUD CONTROLLERS TO
`COLLECTIVELY MANAGE THE DATA OF A
`DISTRIBUTED FILESYSTEM
`1200
`
`RECEIVE METADATA SNAPSHOTS DISTRIBUTED BY
`THE TWO OR MORE CLOUD CONTROLLERS ATA
`BACKUP CLOUD CONTROLLER
`1210
`
`UPON DETERMINING THE FAILURE OF A CLOUD
`CONTROLLER , RECEIVE DATA REQUESTS FROM
`CLIENTS ASSOCIATED WITH THE CLOUD
`CONTROLLER AT THE BACKUP CLOUD CONTROLLER
`1220
`
`CEND END
`
`FIG . 12
`
`Page 21 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 20 of 60
`
`US 9 , 811 , 662 B2
`
`para
`
`CLIENT
`
`CLOUD
`CONTROLLER
`1300
`
`pengeluaran
`
`CLIENT
`
`CLIENT
`
`CLOUD
`CONTROLLER
`1302
`
`CLOUD
`STORAGE
`SYSTEM
`1304
`
`CLOUD
`STORAGE
`SYSTEM
`1306
`
`FIG . 13A
`
`COB 0
`at the time to
`+ com
`
`CCID
`
`CVA FORMAT
`1310
`FILEID
`S SID
`FIG . 13B
`
`FSID
`
`OFFSET
`
`Page 22 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 21 of 60
`
`US 9 , 811 , 662 B2
`
`CLIENT
`
`CLOUD
`CONTROLLER
`
`1406 det
`
`CLOUD
`STORAGE
`SYSTEM
`1402
`
`CLIENT
`
`CLIENT
`
`CLOUD
`CONTROLLER
`
`-
`
`SCO
`
`CLOUD
`STORAGE
`SYSTEM
`1404
`
`)
`
`CLOUD F?LE
`1400
`
`FIG . 14
`
`Page 23 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 22 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`USE TWO OR MORE CLOUD CONTROLLERS TO
`COLLECTIVELY MANAGE THE DATA OF A
`DISTRIBUTED FILESYSTEM
`1500
`
`DISTRIBUTE DATA FOR THE DISTRIBUTED
`FILESYSTEM ACROSS TWO OR MORE CLOUD
`STORAGE SYSTEMS TO OPTIMIZE
`PERFORMANCE AND / OR COST
`1510
`
`END
`
`FIG . 15
`
`Page 24 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 23 of 60
`
`US 9 , 811 , 662 B2
`
`PAST YEARS : RECENT MONTHS : RECENT WEEKS :
`DAILY
`WEEKLY
`MONTHLY
`SNAPSHOTS
`SNAPSHOTS
`SNAPSHOTS
`
`naman
`
`RECENT DAYS :
`HOURLY
`SNAPSHOTS
`
`munt TIME
`
`SNAPSHOT
`1600
`
`SNAPSHOT
`1602
`
`DATA CREATED AND
`DELETED IN THIS
`INTERVAL
`1604
`FIG . 16A
`
`CLOUD
`CONTROLLER
`1606
`
`CLOUD
`STORAGE
`SYSTEM
`1610
`
`ARCHIVAL
`CLOUD
`STORAGE
`SYSTEM
`1612
`
`CLOUD FILE
`1608
`
`FIG . 16B
`
`Page 25 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 24 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`USE TWO OR MORE CLOUD CONTROLLERS TO
`COLLECTIVELY MANAGE THE DATA OF A
`DISTRIBUTED FILESYSTEM
`1700
`
`DETERMINE THAT A DATA SNAPSHOT PREVIOUSLY
`STORED IN A CLOUD STORAGE SYSTEM IS NO
`LONGER BEING ACTIVELY REFERENCED IN THE
`DISTRIBUTED FILESYSTEM
`1710
`
`TRANSFER THE DATA SNAPSHOT FROM THE CLOUD
`STORAGE SYSTEM TO AN ARCHIVAL CLOUD
`STORAGE SYSTEM
`1720
`
`END END
`
`FIG . 17
`
`Page 26 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 25 of 60
`
`US 9 , 811 , 662 B2
`
`. . . . . . . .
`
`NEW METADATA / DATA SNAPSHOTS AND
`- CLOUD FILES TO CLOUD STORAGE SYSTEM
`NEW METADATA AND DATA BEING
`DOWNLOADED TO CLOUD CONTROLLERS
`CLIENT TO CLOUD CONTROLLER
`CONNECTION
`
`CLIENT
`
`CLOUD
`CONTROLLER
`
`CLOUD
`CONTROLLER
`
`. - .
`. -
`. -
`( OPTIONAL )
`BACKUP
`CLOUD
`CONTROLLER
`1806
`
`CLOUD
`STORAGE
`SYSTEM
`302
`
`- -
`
`- -
`
`CLIENT
`1802
`
`CLIENT
`
`CLOUD
`CONTROLLER
`1800
`
`CLOUD
`CONTROLLER
`1804
`
`CLIENT
`
`CLIENT
`
`CLOUD
`CONTROLLER
`
`O .
`
`CLIENT
`
`CLIENT
`
`CLOUD
`CONTROLLER
`
`CLIENT È CLIENT
`
`FIG . 18
`
`Page 27 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 26 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`USE TWO OR MORE CLOUD CONTROLLERS TO
`COLLECTIVELY MANAGE THE DATA OF A
`DISTRIBUTED FILESYSTEM
`1900
`
`RECEIVE IN A CLOUD CONTROLLER A REQUEST
`FROM A CLIENT FOR A DATA BLOCK OF A FILE
`STORED IN THE DISTRIBUTED FILESYSTEM
`1910
`
`DETERMINE THAT THE REQUESTED DATA
`BLOCK IS NOT CURRENTLY CACHED
`IN THE CLOUD CONTROLLER
`1920
`
`SEND A PEER CACHE REQUEST FOR THE
`REQUESTED DATA BLOCK TO A PEER CLOUD
`CONTROLLER IN THE DISTRIBUTED FILESYSTEM
`1930
`
`C
`
`END END
`
`FIG . 19
`
`Page 28 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 27 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`A CLOUD CONTROLLER A METADATA
`MAINTAIN IN
`HIERARCHY THAT REFLECTS THE CURRENT STATE
`OF A DISTRIBUTED FILESYSTEM
`2000
`
`STORE IN THE CLOUD CONTROLLER A SET OF NEW
`DATA FOR THE DISTRIBUTED FILESYSTEM THAT WAS
`RECEIVED FROM A CLIENT
`2010
`
`CREATE A METADATA ENTRY FOR THE NEW DATA IN
`THE METADATA HIERARCHY
`2020
`
`UPDATE THE OVERLAY METADATA TO POINT TO THE
`METADATA ENTRY AND THE NEW DATA STORED IN
`THE CLOUD CONTROLLER
`2030
`
`USE THE OVERLAY METADATA TO GENERATE AN
`INCREMENTAL SNAPSHOT FOR THE NEW DATA
`2040
`
`END
`
`FIG . 20
`
`Page 29 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 28 of 60
`
`US 9 , 811 , 662 B2
`
`CLOUD
`CONTROLLER
`2100
`
`STORAGE DRIVE 2102
`
`DATA AND / OR
`EMPTY
`BLOCKS
`
`METADATA
`BLOCKS
`2104
`
`DISK
`PLATTERS
`
`FIG . 21A
`
`* * *
`
`* * * * * * *
`
`* * * * * * * * * * * * * * * * *
`
`*
`
`METADATA
`STORAGE
`REGIONS
`2112
`
`DISK
`PLATTER
`2110
`
`DATA
`STORAGE
`REGIONS
`2114
`
`FIG . 21B
`
`Page 30 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 29 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`MAINTAIN IN THE LOCAL STORAGE DEVICE OF A
`CLOUD CONTROLLER : ( 1 ) ONE OR MORE METADATA
`REGIONS CONTAINING A METADATA HIERARCHY
`THAT REFLECTS THE CURRENT STATE OF A
`DISTRIBUTED FILESYSTEM ; AND ( 2 ) CACHED DATA
`FOR THE DISTRIBUTED FILESYSTEM
`2200
`
`RECEIVE AN INCREMENTAL METADATA SNAPSHOT
`THAT REFERENCES NEW DATA WRITTEN TO THE
`DISTRIBUTED FILESYSTEM
`2210
`
`STORE UPDATED METADATA FROM THE
`INCREMENTAL METADATA SNAPSHOT IN A METADATA
`REGION ON THE LOCAL STORAGE DEVICE
`2220
`
`CEND END
`
`FIG . 22
`
`Page 31 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 30 of 60
`
`US 9 , 811 , 662 B2
`
`CLOUD STORAGE SYSTEM 302
`
`ISO
`
`0
`
`OSVO
`
`0
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`FIG . 23
`
`CLOUD FILE 2304
`
`2000 :
`
`: RELATED DATA BLOCKS 2310
`
`OOOOOO
`
`
`
`CLOUD CONTROLLER 2300
`
`CLIENT 2302
`
`DATA BLOCKS
`
`
`
`TRANSPORT TERMINATION POINT 2312
`TARGET DATA BLOCK 2306
`BLOCK METADATA 2308
`
`Page 32 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 31 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`USE TWO OR MORE CLOUD CONTROLLERS TO
`COLLECTIVELY MANAGE THE DATA OF A
`DISTRIBUTED FILESYSTEM
`2400
`
`RECEIVE IN A CLOUD CONTROLLERA REQUEST
`FROM A CLIENT FOR A DATA BLOCK OF A TARGET
`FILE THAT IS STORED IN THE DISTRIBUTED
`FILESYSTEM BUT NOT CURRENTLY CACHED IN THE
`CLOUD CONTROLLER
`2410
`
`INITIATE A REQUEST TO A CLOUD STORAGE SYSTEM
`FOR A CLOUD FILE CONTAINING THE REQUESTED
`DATA BLOCK
`2420
`
`USE BLOCK METADATA IN A PORTION OF THE CLOUD
`FILE THAT HAS ALREADY BEEN RECEIVED TO
`DETERMINE THE PORTIONS OF THE CLOUD FILE
`THAT SHOULD BE DOWNLOADED TO AND CACHED IN
`THE CLOUD CONTROLLER
`2430
`
`END
`
`FIG . 24
`
`Page 33 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 32 of 60
`
`US 9 , 811 , 662 B2
`
`
`
`
`
`CLOUD CONTROLLER 2506
`
`* - - -
`
`
`
`
`
`CLOUD CONTROLLER 2500
`
`CLIENT
`CLIENT
`
`CLIENT
`
`SITE LOCALITY POLICY 2516
`GLOBAL LOCALITY POLICY 2510
`
`-
`
`LOCAL LOCALITY POLICY 2512
`GLOBAL LOCALITY POLICY 2510
`
`
`
`
`
`CLOUD CONTROLLER 2508
`
`SITE LOCALITY POLICY 2516
`GLOBAL LOCALITY POLICY 2510
`
`CLIENT
`
`-
`
`- -
`
`-
`
`-
`
`CO - LOCATED CLOUD CONTROLLERS
`
`-
`
`-
`
`CLOUD STORAGE SYSTEM 302
`
`
`
`
`
`CLOUD CONTROLLER 2504
`
`PARTIAL FILESYSTEM LOCALITY POLICY 2514
`GLOBAL LOCALITY POLICY 2510
`
`.
`CLIENT
`CLIENT
`
`
`
`
`
`CLOUD CONTROLLER 2502
`
`GLOBAL LOCALITY POLICY 2510
`
`CLIENT
`
`FIG . 25
`
`Page 34 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 33 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`USE TWO OR MORE CLOUD CONTROLLERS TO
`COLLECTIVELY MANAGE THE DATA OF A
`DISTRIBUTED FILESYSTEM
`2600
`
`RECEIVE IN A CLOUD CONTROLLER A LOCALITY
`POLICY THAT SPECIFIES ONE OR MORE
`MANAGEMENT POLICIES FOR THE CLOUD
`CONTROLLER
`2610
`
`MANAGE DATA THAT IS CREATED , CACHED , AND / OR
`MANAGED BY THE CLOUD CONTROLLER BASED ON
`THE LOCALITY POLICY
`2620
`
`(
`
`END END
`
`FIG . 26
`
`Page 35 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 34 of 60
`
`US 9 , 811 , 662 B2
`
`CLIENT 2710
`
`FIG . 27A
`
`CLOUD STORAGE SYSTEM 302
`
`SNAPSHOT HIERARCHY 2702
`
`ACTIVE FILESYSTEM METADATA 2704
`OVERLAY METADATA 2706
`
`
`
`TRANSACTIONAL FILESYSTEM
`
`DEDUPLICATION TABLES 2716
`
`[ B ] [ B2 ] - [ BX | | •••
`FILE XI
`
`ROOT
`
`FILEY . . . O
`
`. . •
`
`2 AT
`
`AB
`
`CACHED DATA BLOCKS 2708
`
`
`
`
`
`CLOUD CONTROLLER 2700
`
`Page 36 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 35 of 60
`
`US 9 , 811 , 662 B2
`
`FIG . 27B
`
`* CLIENT 2710
`DELETE REQUEST 2712
`
`SNAPSHOT HIERARCHY 2702
`
`ACTIVE FILESYSTEM METADATA 2704
`OVERLAY METADATA 2706
`
`
`
`TRANSACTIONAL FILESYSTEM
`
`
`
`
`
`CLOUD CONTROLLER 2700
`
`CLOUD STORAGE SYSTEM 302
`
`DEDUPLICATION TABLES 2716
`
`. .
`
`. . .
`
`FILEX [ B ] [ B2 - [ BX
`
`I
`
`ROOT
`
`JELEY . O
`A1
`
`A
`
`CACHED DATA BLOCKS 2708
`
`Page 37 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 36 of 60
`
`US 9 , 811 , 662 B2
`
`CLIENT 2710
`
`FIG . 270
`
`CLOUD STORAGE SYSTEM 302
`
`DEDUPLICATION UPDATES 2714
`
`DEDUPLICATION TABLES 2716
`
`Quy LIST OF CLOUD FILES TO DELETE 2718
`
`SNAPSHOT HIERARCHY 2702
`
`ACTIVE FILESYSTEM METADATA 2704
`OVERLAY METADATA 2706
`
`
`
`TRANSACTIONAL FILESYSTEM
`
`BX ]
`
`* * . . .
`
`FILA
`
`ROOT
`
`D
`. . .
`
`FILEY . . !
`FILEY *
`) AT
`
`13
`
`CACHED DATA BLOCKS 2708
`
`
`
`
`
`CLOUD CONTROLLER 2700
`
`Page 38 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 37 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`USE TWO OR MORE CLOUD CONTROLLERS TO
`COLLECTIVELY MANAGE THE DATA OF A
`DISTRIBUTED FILESYSTEM
`2800
`
`RECEIVE IN A CLOUD CONTROLLER A REQUEST
`FROM A CLIENT TO DELETE A FILE IN THE
`DISTRIBUTED FILESYSTEM
`2810
`
`UPDATE A USER VIEW OF THE DISTRIBUTED
`FILESYSTEM TO PRESENT THE APPEARANCE OF THE
`TARGET FILE BEING DELETED TO THE CLIENT
`2820
`
`INITIATE A BACKGROUND DELETION OPERATION TO
`DELETE THE TARGET FILE WITHOUT NEGATIVELY
`AFFECTING THE PERFORMANCE OF THE OTHER
`USERS OF THE DISTRIBUTED FILESYSTEM
`2830
`
`END
`
`FIG . 28
`
`Page 39 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 38 of 60
`
`US 9 , 811 , 662 B2
`
`FIG . 29A
`
`DATA TO BE
`WRITTEN
`
`DATA BLOCK
`2904
`
`DATA BLOCK
`2902
`
`DATA BLOCK
`2900
`
`HASH KEYS
`2908
`
`HASH
`FUNCTION
`2906
`
`HASH TABLE
`2910
`
`?
`
`BLOCK ENTRY
`2914
`
`?
`
`?
`
`BLOCK ENTRY
`2912
`
`BLOCK ENTRY
`2916
`
`Page 40 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 39 of 60
`
`US 9 , 811 , 662 B2
`
`FIG . 29B
`
`DATA BLOCK
`2904
`DATA BLOCK
`2902
`DATA BLOCK
`2900
`
`HASH
`FUNCTION
`2906
`
`HASH KEYS
`2908
`
`HASH TABLE
`2920
`
`BLOCK
`ENTRY
`2912
`
`BLOCK
`ENTRY BLOCK
`2914
`ENTRY
`2916
`
`STRUCTURES
`2926
`
`TEMPORAL
`DEDUPLICATION
`STRUCTURE
`2922
`
`- 1 - - mo4 LOOKUP
`HINDI
`
`BLOCK
`ENTRY
`POINTERS
`2928
`
`TEMPORAL
`DEDUPLICATION
`STRUCTURE
`2924
`
`Page 41 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 40 of 60
`
`US 9 , 811 , 662 B2
`
`NEW DATA
`
`2952 = = CLIENT
`
`2954
`
`CLOUD
`CONTROLLER
`2950
`
`DEDUPLICATION
`TABLE
`2956
`
`INCREMENTAL
`DATA SNAPSHOT
`2960
`
`2958 3
`
`INCREMENTAL
`METADATA
`SNAPSHOT
`
`CLOUD
`STORAGE
`SYSTEM
`302
`
`CLOUD CONTROLLER
`2962
`
`DEDUPLICATION
`TABLE
`2964
`
`FIG . 29C
`
`Page 42 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 41 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`USE TWO OR MORE CLOUD CONTROLLERS TO
`COLLECTIVELY MANAGE THE DATA OF A
`DISTRIBUTED FILESYSTEM
`3000
`
`RECEIVE IN A CLOUD CONTROLLER AN
`INCREMENTAL METADATA SNAPSHOT THAT
`REFERENCES NEW DATA THAT WAS ADDED TO THE
`DISTRIBUTED FILESYSTEM BYA
`REMOTE CLOUD CONTROLLER
`3010
`
`EXTRACT A SET OF DEDUPLICATION INFORMATION
`FROM THE INCREMENTAL METADATA SNAPSHOT
`3020
`
`RECEIVE A CLIENT WRITE REQUEST AT THE CLOUD
`CONTROLLER
`3030
`
`USE THE EXTRACTED DEDUPLICATION INFORMATION
`TO DETERMINE THAT ONE OR MORE DATA BLOCKS IN
`THE CLIENT WRITE REQUEST HAVE ALREADY BEEN
`WRITTEN TO THE DISTRIBUTED FILESYSTEM
`3040
`
`(
`
`END END
`
`FIG . 30
`
`Page 43 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 42 of 60
`
`US 9 , 811 , 662 B2
`
`CLIENT
`3114
`
`VM 3120
`
`APPLICATION
`( AND / OR SERVICE )
`3122
`
`EXPORTED
`MOUNT POINT
`FOR DFS
`3110
`
`SERVER
`3100
`
`LOCAL
`STORAGE
`3106
`
`CLOUD
`CONTROLLER
`INSTANCE
`3102
`
`CACHED
`DATA
`BLOCKS
`FOR DFS
`3112
`
`VM 3104
`
`STORAGE POOL 3108
`
`CLOUD
`STORAGE
`SYSTEM
`302
`
`FIG . 31
`
`Page 44 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 43 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`USEOLLEGISTRIE
`
`USE TWO OR MORE CLOUD CONTROLLERS TO
`COLLECTIVELY MANAGE THE DATA OF A
`DISTRIBUTED FILESYSTEM
`3200
`
`EXECUTE PROGRAM INSTRUCTIONS FOR AN
`APPLICATION IN A VIRTUAL MACHINE
`3210
`
`HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
`
`STORE DATA ASSOCIATED WITH THE APPLICATION
`AND THE VIRTUAL MACHINE IN THE DISTRIBUTED
`FILESYSTEM
`3220
`
`UPON DETECTING A FAILURE , USE THE DATA
`STORED IN THE DISTRIBUTED FILESYSTEM FOR THE
`APPLICATION AND THE VIRTUAL MACHINE TO
`RECOVER AND RESUME THE EXECUTION OF THE
`VIRTUAL MACHINE AND THE APPLICATION
`3230
`
`END END
`
`FIG . 32
`
`Page 45 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 44 of 60
`
`US 9 , 811 , 662 B2
`
`STORAGE
`SYSTEM
`CLOUD
`
`302
`
`
`
`CLOUD FILE
`
`CONTAINING
`
`ADDT ' L BLOCKS
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`-
`
`FIG . 33A
`
`CONTROLLER
`CLOUD
`
`3302
`
`
`
`CACHED BLOCK # 1
`
`CACHED BLOCK # 2
`
`NOT CACHED ,
`
`REQ . CLOUD FILE
`
`
`PROCESS CLOUD
`CACHED BLOCK # 3
`
`BLOCK # 3
`FILE TO ACCESS
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`
`
`REMOTE SITE
`
`CLIENT
`
`3300
`
`
`
`REQUEST BLOCK # 1
`
`REQUEST BLOCK # 3
`
`REQUEST BLOCK # 2
`
`
`
`
`REQUESTED BLOCK
`
`
`CLIENT DELAY FOR
`
`3304
`
`IME
`
`Page 46 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 45 of 60
`
`US 9 , 811 , 662 B2
`
`CLOUD
`
`FILE CONTAINING ADDT ' L BLOCKS
`
`
`
`BLOCK # 3 RECEIVED AND CACHED
`
`FIG . 33B
`
`CLOUD STORAGE SYSTEM 302
`
`CLOUD CONTROLLER 3302
`
`
`
`REMOTE SITE
`
`CLIENT 3300
`
`-
`
`*
`
`-
`
`W
`
`* W
`
`-
`
`*
`
`-
`
`*
`
`-
`
`*
`
`-
`
`W
`
`* W
`
`-
`
`*
`
`-
`
`*
`
`-
`
`*
`
`-
`
`W
`
`* W
`
`-
`
`*
`
`-
`
`*
`
`-
`
`*
`
`-
`
`WWW
`
`
`
`
`
`BLOCK # 1 CACHED ; DELAY RESPONSE + REQ . CLOUD FILES WITH
`
`AWAITING CLOUD FILE ( S ) CACHED
`
`BLOCK # 1 BLOCK # 2 CACHED ; DELAY RESPONSE WHILE
`CACHED
`ADDT ' L BLOCKS
`
`
`BLOCK # 3
`
`BLOCK # 2 BLOCK # 3 CACHED ; ADJUST RESPONSE DELAY ( OPTIONAL ) CACHED
`
`
`
`REQUEST BLOCK # 1 -
`
`
`
`DELAY INTERVAL 3304
`
`REQUEST
`
`
`
`BLOCK # 2 - DELAY INTERVAL 3306
`
`
`
`REQUEST BLOCK # 4 -
`
`REQUEST
`
`BLOCK # 3 - ADJUSTED DELAY
`INTERVAL 3308
`
`TIME
`
`Page 47 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 46 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`USE TWO OR MORE CLOUD CONTROLLERS TO
`COLLECTIVELY MANAGE THE DATA OF A
`DISTRIBUTED FILESYSTEM
`3400
`
`RECEIVE IN A CLOUD CONTROLLER A REQUEST
`FROM A CLIENT SYSTEM FOR A DATA BLOCK IN A
`TARGET FILE THAT IS STORED IN THE DISTRIBUTED
`FILESYSTEM
`3410
`
`DELAY THE TRANSMISSION OF THE CACHED DATA
`BLOCK FROM THE CLOUD CONTROLLER TO THE
`CLIENT SYSTEM FOR A DELAY INTERVAL
`3420
`
`CEND END
`
`FIG . 34
`
`Page 48 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 47 of 60
`
`US 9 , 811 , 662 B2
`
`CLOUD STORAGE SYSTEM 302
`
`CLOUD
`
`FILE ( S ) CONTAINING NEEDED
`DATA BLOCKS
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`CLOUD CONTROLLER 3502
`
`DETERMINE CACHE STATUS FOR
`
`
`
`DATA BLOCKS OF FILEX , REQUEST UNCACHED BLOCKS
`
`
`WRITES , UPDATE DFS METADATA : SNAPSHOT
`DEDUPLICATION OPERATIONS
`DETECT THE DUPLICATE
`METADATA TO REFLECT
`FILE Y
`
`
`
`
`TRANSFER CACHED DATA
`
`BLOCKS FOR FILE X
`
`FIG . 35A
`
`
`
`REMOTE SITE
`
`CLIENT 3500
`
`
`
`RECEIVE USER REQUEST TO COPY FILEX TO FILE Y
`
`
`
`
`REQUEST ALL DATA BLOCKS FOR FILEX
`
`
`
`
`
`WRITE DATA BLOCKS FOR
`FILE X TO FILEY
`
`TIME
`
`Page 49 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 48 of 60
`
`US 9 , 811 , 662 B2
`
`CLOUD STORAGE SYSTEM 302
`
`99 . 64999
`
`499 .
`
`0 .
`
`09 . 2009 +
`
`499
`
`
`
`REMOTE SITE + 0000 29 . . 099 .
`
`CLOUD CONTROLLER 3502
`
`CLIENT 3500
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`CLOUD
`( OPTIONAL )
`
`FILE ( S ) CONTAINING PRE - FETCHED
`DATA BLOCKS
`
`FIG . 35B
`
`( OPTIONAL ) PRE - FETCH AND CACHE ONE OR MORE BLOCKS OF FILEX
`
`METADATASNAPSHOT
`
`FILE Y
`
`
`
`GENERATE METADATA FOR
`
`
`
`RECEIVE USER REQUEST TO COPY FILE X TO FILE Y .
`
`
`
`ISSUE CLOUD COMMAND TO COPY - FILE X TO FILE Y
`
`TIME
`
`Page 50 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 49 of 60
`
`US 9 , 811 , 662 B2
`
`SNAPSHOT
`
`X . VER 1 . X . VER N - -
`
`FILE X ) . . . O
`
`FILEY [ FILEY )
`
`FIG . 36
`
`D } R2
`
`CLOUD STORAGE SYSTEM 302
`
`CLOUD CONTROLLER 3600
`
`FILESYSTEM VIEW
`PRESENTED TO CLIENT 3604
`
`DIRDIRI
`CLOUDFS
`CLOUDCMD @ Clouds
`ROOT
`CLOUDCMD
`
`DDCP )
`
`
`
`| DDCP - HISTORY CAR RESTORE
`
`. . . DDCP
`
`CLIENT 3602
`
`SNAP VM COPY DB SYNC
`
`Page 51 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 50 of 60
`
`US 9 , 811 , 662 B2
`
`START
`
`USE TWO OR MORE CLOUD CONTROLLERS TO
`COLLECTIVELY MANAGE THE DATA OF A
`DISTRIBUTED FILESYSTEM
`3700
`
`PRESENT A DISTRIBUTED - FILESYSTEM - SPECIFIC
`CAPABILITY TO A CLIENT SYSTEM AS A FILE IN THE
`DISTRIBUTED FILESYSTEM USING A FILE
`ABSTRACTION
`3710
`
`RECEIVE ATA CLOUD CONTROLLER A REQUEST
`FROM THE CLIENT SYSTEM TO ACCESS THE FILE
`3720
`
`EXECUTE A DISTRIBUTED - FILESYSTEM - SPECIFIC
`ACTION IN RESPONSE TO THE FILE ACCESS
`3730
`
`END END
`FIG . 37
`
`Page 52 of 116
`
`Netskope Exhibit 1006
`
`

`

`atent
`
`Nov . 7 , 2017
`
`Sheet 51 of 60
`
`US 9 , 811 , 662 B2
`
`CLOUD STORAGE SYSTEM 302
`
`FIG . 38A
`
`POLICY
`
`FILET . V1 . . . FLET . VN . . . O
`
`SNAPSHOT
`
`POLICY
`
`DIR3
`FILE 1 FILE 20
`
`FILE 1 FILE 2 DIR3
`
`CLOUD CONTROLLER 3600
`
`FILESYSTEM VIEW
`PRESENTED TO CLIENT 3604
`
`CLIENT 3602
`
`ROOT
`
`CLOUDFS
`CLOUDCMD
`
`Page 53 of 116
`
`Netskope Exhibit 1006
`
`

`

`U . S . Patent
`
`Nov . 7 , 2017
`
`Sheet 52 of 60
`
`US 9 , 811 , 662 B2
`
`} O FINO LATEST TO
`
`FIND & ATTEMPT TO
`ACCESS FILE
`
`DETERMINE THAT
`FILE IS ARCHIVED
`
`> cd / cloudfs / fs / dir
`> Is
`file1 file2 dir3
`
`> cat file1
`cat : file1 : file is archived and cannot be read
`> cd . policy
`> is
`file1 file2 dir3
`> cat file1
`# Archived file - not local
`# Current restore delay : 2 days
`
`> echo " Restore " > file 1
`> cat file1
`# Restoring file :
`# restore will complete in 42 hours
`# file data will be unarchived for 14 days
`
`DETERMINE
`RECOVERY
`OPTIONS
`
`AND CHECK
`RESTORE STATUS
`
`! ! ! ! INITIATE RESTORE
`
`< after 42 hours >
`> cat file1
`# Restored file
`# restore complete
`# file data will remain unarchived for 14 days
`
`> cd . .
`> is
`file 1 file2 dir3
`> cat file1
`< receive file data >
`
`FIG . 38B
`
`CONFIRM RECOVERY
`
`ACCESS RES

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.

We are unable to display this document.

PTO Denying Access

Refresh this Document
Go to the Docket