You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
rgw/cloud-restore: Support restoration of objects transitioned to Glacier/Tape endpoint
Restoration of objects from certain cloud services (like Glacier/Tape) could
take significant amount of time (even days). Hence store the state of such restore requests
and periodically process them.
Brief summary of changes
* Refactored existing restore code to consolidate and move all restore processing into rgw_restore* file/class
* RGWRestore class is defined to manage the restoration of objects.
* Lastly, for SAL_RADOS, FIFO is used to store and read restore entries.
Currently, this PR handles storing state of restore requests sent to cloud-glacier tier-type which need async processing.
The changes are tested with AWS Glacier Flexible Retrieval with tier_type Expedited and Standard.
Reviewed-by: Matt Benjamin <[email protected]>
Reviewed-by: Adam Emerson <[email protected]>
Reviewed-by: Jiffin Tony Thottan <[email protected]>
Reviewed-by: Daniel Gryniewicz <[email protected]>
Signed-off-by: Soumya Koduri <[email protected]>
Copy file name to clipboardExpand all lines: src/common/options/rgw.yaml.in
+57Lines changed: 57 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -230,6 +230,7 @@ options:
230
230
see_also:
231
231
- rgw_enable_gc_threads
232
232
- rgw_enable_lc_threads
233
+
- rgw_enable_restore_threads
233
234
with_legacy: true
234
235
- name: rgw_enable_gc_threads
235
236
type: bool
@@ -246,6 +247,7 @@ options:
246
247
see_also:
247
248
- rgw_enable_quota_threads
248
249
- rgw_enable_lc_threads
250
+
- rgw_enable_restore_threads
249
251
with_legacy: true
250
252
- name: rgw_enable_lc_threads
251
253
type: bool
@@ -263,6 +265,24 @@ options:
263
265
see_also:
264
266
- rgw_enable_gc_threads
265
267
- rgw_enable_quota_threads
268
+
- rgw_enable_restore_threads
269
+
with_legacy: true
270
+
- name: rgw_enable_restore_threads
271
+
type: bool
272
+
level: advanced
273
+
desc: Enables the objects' restore maintenance thread.
274
+
long_desc: The objects restore maintenance thread is responsible for all the objects
275
+
restoration related maintenance work. The thread itself can be disabled, but in order
276
+
for the restore from the cloud to work correctly, at least one RGW in each zone needs
277
+
to have this thread running. Having the thread enabled on multiple RGW processes within
278
+
the same zone can spread some of the maintenance work between them.
279
+
default: true
280
+
services:
281
+
- rgw
282
+
see_also:
283
+
- rgw_enable_gc_threads
284
+
- rgw_enable_quota_threads
285
+
- rgw_enable_lc_threads
266
286
with_legacy: true
267
287
- name: rgw_data
268
288
type: str
@@ -475,6 +495,35 @@ options:
475
495
services:
476
496
- rgw
477
497
with_legacy: true
498
+
- name: rgw_restore_max_objs
499
+
type: int
500
+
level: advanced
501
+
desc: Number of shards for restore processing
502
+
long_desc: Number of RADOS objects to use for storing restore entries which are in progress. This affects concurrency of restore maintenance, as shards can be processed in parallel.
503
+
default: 32
504
+
services:
505
+
- rgw
506
+
with_legacy: true
507
+
- name: rgw_restore_lock_max_time
508
+
type: int
509
+
level: dev
510
+
default: 90
511
+
services:
512
+
- rgw
513
+
see_also:
514
+
with_legacy: true
515
+
- name: rgw_restore_processor_period
516
+
type: int
517
+
level: advanced
518
+
desc: Restore cycle run time
519
+
long_desc: The amount of time between the start of consecutive runs of the restore
520
+
processing threads. If the thread runs takes more than this period, it will
521
+
not wait before running again.
522
+
fmt_desc: The cycle time for restore state processing.
523
+
default: 15_min
524
+
services:
525
+
- rgw
526
+
with_legacy: true
478
527
- name: rgw_mp_lock_max_time
479
528
type: int
480
529
level: advanced
@@ -1270,6 +1319,14 @@ options:
1270
1319
services:
1271
1320
- rgw
1272
1321
with_legacy: true
1322
+
- name: rgw_nfs_run_restore_threads
1323
+
type: bool
1324
+
level: advanced
1325
+
desc: run objects' restore threads in librgw (default off)
0 commit comments