Commit Graph

48 Commits

Author SHA1 Message Date
Hui Liu f84cedd361 Fix computeRestoreEndVersion bug when outLogs is null 2023-06-13 17:03:57 -07:00
Josh Slocum 377dd0d754
Fixing path for non-backup (blob granule) blob url use cases to not prepend /data to path (#10011) 2023-04-19 14:18:08 -05:00
A.J. Beamon 64b6a5d257 Allow boolean parameters to be nested inside of namespaces or classes 2023-03-30 15:09:59 -07:00
Ata E Husain Bohra 2db1da26d9
EaR: Update ApiWorkload to validate encryption at-rest guarantees (#9466)
* EaR: Update ApiWorkload to validate encryption at-rest guarantees

Description

FDB encryption data at-rest guarantees if cluster is configured with feature
enabled, all data written to persistent disks shall be "encrypted". Given FDB
maintains multiple persistent storages during lifecycle of the data, the patch
proposes a scheme to validate the invariant via "simulation testing"

Patch proposes updating ApiCorrectness workload to do the following:
1. Client supplied params and/randomly enable the validation feature.
2. Validation when enabled, allows injecting a known "marker string"
to workload generated Key and Value data patterns.
3. On shutdown, if the validation is enabled, all test files are
scanned for the known "marker" pattern.

Simulation tests are already capable of doing the following:
1. Randomly select TenantMode (disabled/optional/required)
2. Randomly select EncryptionAtRestMode (cluster_aware/domain_aware)

Hence, the updates test all possible combinations are validated. Also,
'defaultTenant' is present to cover 'domain_aware' encryption use cases.

Testing
devRunCorrectness
devRetryCorrectness - ApiCorrectness & EncryptedBackupCorrectness
2023-02-27 21:40:46 -08:00
Zhe Wu ffa3467098 Explicitly using min and max restorable version from backup description in query command in stead of going throw snapshots 2023-02-26 12:17:07 -08:00
Zhe Wu a94dd3a430 Fix fdbbackup query returning earliest version 2023-02-25 16:44:45 -08:00
Nim Wijetunga 86f3665514
Handle EKP Tenant Not Found Errors (#9261)
handle EKP tenant not found errors
2023-02-01 19:15:38 -08:00
Nim Wijetunga 05a8a90830
Snapshot Backup Tenant Deletion Support (#9145)
Tenant deletion support for snapshot backups
2023-01-26 17:46:14 -08:00
Josh Slocum baa35fbc8f
Blob single part upload (#8703)
* Exposing writeEntireFile up through BackupContainerFileSystem, and using it in blob worker

* Adding blob worker latency metrics

* avoid writeEntireFile if object is too large

* gracefully falling back to multi-part upload if the file is too big
2022-11-08 17:30:01 -06:00
Nim Wijetunga 232e23c87e
Snapshot Backup Encryption (#8095)
* inital commit

* add encryption support

* refactor passing encryption keys

* disable encryption codepath

* pass enable encryption cli arg for fdbbackup

* change encryption key passing

* only enable encryption for backup if tenant mode is required

* revert server knobs

* ignore json trace files

* --amend

* integrate ekp

* add comments

* comments

* comments

* revert knobs

* fix bug

* modify encrypted backup logic

* use common prefix

* check boundaries between begin and end key

* return system encrypt domain

* modify

* add tenant entry cache to backup

* slight revert

* format

* Trigger Build

* format

* use tenant name to fetch keys

* Trigger Build

* Trigger Build

* merge

* fix getting ekp

* fix bug

* address pr comments

* Trigger Build

* Trigger Build

* remove faulty check
2022-09-29 14:45:47 -07:00
A.J. Beamon 4fd64630e8 Convert literal string ref instances to use _sr suffix 2022-09-19 11:35:58 -07:00
Chaoguang Lin a27d27c5ee
Add traces for snapshot related updates (#7862)
* Add logging; fix typos in comments;

* format files
2022-08-13 03:10:20 -04:00
Chaoguang Lin 15523ff2e6
Extend url support for azure blob backup (#7776)
* Change to old url format azure://<endpoint>/<account>/<container>/

* Remove unnecessary dependency

* Add cmake_minimum_required  for azure backup cmake file

* Add the comments for new supported urls

* Add the host name resolution logic

* format files

* refactor part of the code

* Add documentation about Azure backup testing

* Add more comments, update the doc
2022-08-09 01:37:24 -07:00
Markus Pilman 8af056e7b0 fdbclient now compiling 2022-06-23 18:05:36 -06:00
sfc-gh-tclinkenbeard 475d66084d Remove ENCRYPTION_ENABLED macro 2022-05-02 22:26:31 -07:00
Renxuan Wang 0a332ee1c1 Add proxy option to backup and restore params. 2022-03-28 17:10:49 -07:00
sfc-gh-tclinkenbeard a71099471b Update copyright header dates 2022-03-21 13:36:23 -07:00
A.J. Beamon 250a88e682 Enforce that trace event suppression calls happen first when using trace event call chaining. Fix various instances where we weren't following this requirement. 2022-02-24 12:25:52 -08:00
Ata E Husain Bohra 591ef57857
Upgrade AES 128 GCM -> AES 256, StreamCipher code refactor (#6314)
* Upgrade AES 128 GCM -> AES 256, StreamCipher code refactor

Major changes proposed are:
1. Refactor StreamCipher code to enable instantiation of
   multiple encryption keys. However, code still retains
   a globalEncryption key semantics used in Backup file
   encryption usecase.
2. Enhance StreamCipher to provide HMAC signature digest
   generation. Further, the class implements HMAC encryption
   key derivation function.
3. Upgrade StreamCipher to use AES 256 GCM mode from currently
   supported AES 128 GCM mode.
   Note: The code changes the encryption key size, however, the
         feature is NOT currently in use, hence, should be OK.
3. Add EncryptionOps validation and benchmark toml supported
   workload, it does the following:
   a. Allow user to configure encrypt-decrypt of a fixed size
      buffer or variable size buffer [100, 512K]
   b. Allow user to configure number of interactions of the runs,
      in each iteration: generate random data, derive an encryption
      key using HMAC SHA256 method, encrypt data and
      then decrypt data. It collects following metrics:
    i) time taken to derive encryption key.
    ii) time taken to encrypt the buffer.
    iii) time taken to decrypt the buffer.
    iv) total bytes encrypted and/or decrypted
   c. Along with stats it basic basic validations on the encrypted
      and decrypted buffer
   d. On completion for test, records the above mentioned metrics
      in trace files.
2022-01-31 19:52:44 -06:00
sfc-gh-tclinkenbeard ec64890ac1 Remove some usages of PRId64 by using fmt library 2021-11-30 23:35:36 -08:00
Suraj Gupta 8d0594a69d Cleanup TODOs for backup, blob code refactor. 2021-10-18 17:37:19 -04:00
Josh Slocum 5259af787d Switched blob implementation to use backup container 2021-08-24 13:47:47 -05:00
Steve Atherton 256e9ba487 Fixed warnings in IDE, applied clang-format. 2021-07-31 11:35:02 -07:00
Markus Pilman 89fa7d0558 remove unnecessary compile guards 2021-07-20 18:27:16 -06:00
Markus Pilman 01bad1f84d Merge remote-tracking branch 'origin/master' into bugfixes/macos-literal-string 2021-07-20 16:24:52 -06:00
Markus Pilman 8f6b048e22 fix macOS build 2021-07-20 11:52:57 -06:00
sfc-gh-tclinkenbeard 41b4ace19a Added ENCRYPTION_ENABLED macro 2021-07-09 21:20:40 -07:00
sfc-gh-tclinkenbeard ad03a4787a Fix non-TLS build 2021-07-09 21:06:15 -07:00
sfc-gh-tclinkenbeard cbdf5bf6b7 Fix failing BackupCorrectness test with encryption 2021-06-26 17:38:57 -07:00
sfc-gh-tclinkenbeard 27e44c1bb9 Add support for encryption testing in BackupCorrectness workload 2021-06-26 11:15:12 -07:00
sfc-gh-tclinkenbeard c5b612510d Added invalid_encryption_key_file error 2021-06-26 11:14:23 -07:00
sfc-gh-tclinkenbeard 3d6515bd14 Support encryption for blob store backups (not yet tested) 2021-06-26 00:07:27 -07:00
sfc-gh-tclinkenbeard 1afae7623b Added /backup/containers/localdir/encrypted unit test 2021-06-25 22:33:26 -07:00
Jingyu Zhou 2b4744ad8a Reword comments. 2021-03-29 13:43:43 -07:00
Jingyu Zhou 55ef40864f Add comments for touched functions 2021-03-29 10:09:07 -07:00
Jingyu Zhou 1a0ef39e5d Fix keyRangesFilter with logsOnly flag
Remove the Sev 40 trace event.
2021-03-27 21:48:27 -07:00
Jingyu Zhou a9d8806828 Use the restored range in the actual restore 2021-03-25 10:07:25 -07:00
A.J. Beamon a892eec57d Manually apply changes made to BackupContainer.actor.cpp on release-6.3 to the new files where that code is located. 2021-03-15 16:41:22 -07:00
FDB Formatster df90cc89de apply clang-format to *.c, *.cpp, *.h, *.hpp files 2021-03-10 10:18:07 -08:00
sfc-gh-tclinkenbeard 5b2e88b187 Use structured bindings in for loops 2020-12-27 01:46:20 -04:00
sfc-gh-tclinkenbeard 195873e1cc Cleaned up unnecessary backup container includes 2020-10-24 16:48:05 -07:00
sfc-gh-tclinkenbeard dc3738b97f Improve encapsulation for BackupContainerFileSystem 2020-10-24 16:48:03 -07:00
sfc-gh-tclinkenbeard 6a27619544 Remove unnecessary copies in BackupContainer code 2020-10-24 16:48:03 -07:00
sfc-gh-tclinkenbeard ae91cf1d44 Make BackupContainerFileSystem.h a non-actor file 2020-10-24 16:48:02 -07:00
sfc-gh-tclinkenbeard e1d58d3c66 Moved BackupContainerS3BlobStore into its own files 2020-10-24 16:48:02 -07:00
sfc-gh-tclinkenbeard 961aeaecac Moved BackupContainerAzureBlobStore into its own files 2020-10-24 16:48:01 -07:00
sfc-gh-tclinkenbeard e5338d213b Moved BackupContainerLocalDirectory into its own files 2020-10-24 16:48:01 -07:00
sfc-gh-tclinkenbeard 3c6de425a1 Moved BackupContainerFileSystem implementation to cpp file 2020-10-24 16:48:01 -07:00