-
Notifications
You must be signed in to change notification settings - Fork 238
Add FIO tests to check the data integrity #1893
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 15 commits
Commits
Show all changes
18 commits
Select commit
Hold shift + click to select a range
ffbb411
Add fio tests
syeleti-msft b0a3d50
add test yml file
syeleti-msft 9949244
reverse the order
syeleti-msft e0f19f3
increase file cache size
syeleti-msft fde128f
make the stage not run by default
syeleti-msft 79c1455
Update azure-pipeline-templates/fio-data-integrity.yml
syeleti-msft faf44ac
Update test/fio/seq-read-1f-10th.fio
syeleti-msft 7c63cbc
modify names
syeleti-msft ca44515
spellcheck
syeleti-msft 7aa828c
change file size in display name
syeleti-msft 3b96f4d
remove seq-read multiple threads workload
syeleti-msft e6adf21
address review comments
syeleti-msft 3d54070
Merge branch 'main' into syeleti/fio-tests
vibhansa-msft 236b614
Merge branch 'main' into syeleti/fio-tests
syeleti-msft ffd748e
Merge branch 'main' into syeleti/fio-tests
vibhansa-msft 466c3a3
Merge branch 'main' into syeleti/fio-tests
syeleti-msft c914058
Merge branch 'main' into syeleti/fio-tests
vibhansa-msft bcc4c83
Merge branch 'main' into syeleti/fio-tests
vibhansa-msft File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,119 @@ | ||
| # This File emulates various workloads using fio utility | ||
| # to check the data integrity. If you are adding any tests make sure | ||
| # to add integrity validation step in fio job file/command. | ||
| # | ||
| parameters: | ||
| - name: config_file | ||
| type: string | ||
| - name: cache_mode | ||
| type: string | ||
| - name: account_name | ||
| type: string | ||
| - name: account_key | ||
| type: string | ||
| - name: account_type | ||
| type: string | ||
| - name: verbose_log | ||
| type: boolean | ||
| default: false | ||
|
|
||
| steps: | ||
| # Generate config file for file cache | ||
| - ${{ if eq(parameters.cache_mode, 'file_cache') }}: | ||
| - script: | | ||
| $(WORK_DIR)/blobfuse2 gen-test-config --config-file=$(WORK_DIR)/testdata/config/azure_key.yaml --container-name=$(containerName) --temp-path=$(TEMP_DIR) --output-file=${{ parameters.config_file }} | ||
| cat ${{ parameters.config_file }} | ||
| displayName: 'Create Config File for File Cache' | ||
| env: | ||
| STO_ACC_NAME: ${{ parameters.account_name }} | ||
| STO_ACC_KEY: ${{ parameters.account_key }} | ||
| STO_ACC_TYPE: ${{ parameters.account_type }} | ||
| VERBOSE_LOG: ${{ parameters.verbose_log }} | ||
| continueOnError: false | ||
| # Generate Config file for block cache | ||
| - ${{ if eq(parameters.cache_mode, 'block_cache') }}: | ||
| - script: | | ||
| $(WORK_DIR)/blobfuse2 gen-test-config --config-file=$(WORK_DIR)/testdata/config/azure_key_bc.yaml --container-name=$(containerName) --temp-path=$(TEMP_DIR) --output-file=${{ parameters.config_file }} | ||
| cat ${{ parameters.config_file }} | ||
| displayName: 'Create Config File for Block Cache' | ||
| env: | ||
| STO_ACC_NAME: ${{ parameters.account_name }} | ||
| STO_ACC_KEY: ${{ parameters.account_key }} | ||
| STO_ACC_TYPE: ${{ parameters.account_type }} | ||
| VERBOSE_LOG: ${{ parameters.verbose_log }} | ||
| - template: 'mount.yml' | ||
| parameters: | ||
| prefix: ${{ parameters.cache_mode }} | ||
| mountStep: | ||
| script: | | ||
| $(WORK_DIR)/blobfuse2 mount $(MOUNT_DIR) --config-file=${{ parameters.config_file }} --default-working-dir=$(WORK_DIR) --file-cache-timeout=3200 | ||
| - script: | ||
| sudo apt-get install fio -y | ||
| displayName: 'Install Utils' | ||
|
|
||
| # Run fio on 1 file 10G size SEQ read,write | ||
| - script: | | ||
| ls -lrt | ||
| rm -rf ./* | ||
syeleti-msft marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| echo "******FIO JOB STARTING******" | ||
| fio --rw=readwrite --bs=1M --size=10g --numjobs=1 $(WORK_DIR)/test/fio/rw.fio | ||
| displayName: 'SEQ-[RW]-10G-1F-1T' | ||
vibhansa-msft marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| workingDirectory: $(MOUNT_DIR) | ||
| # Run fio on 10 files 1G size SEQ read, write | ||
| - script: | | ||
| ls -lrt | ||
| rm -rf ./* | ||
| echo "******FIO JOB STARTING*******" | ||
| fio --rw=readwrite --bs=1M --size=1g --numjobs=10 $(WORK_DIR)/test/fio/rw.fio | ||
| displayName: 'SEQ-[RW]-1G-10F-10T' | ||
| workingDirectory: $(MOUNT_DIR) | ||
| # Run fio on 1 file 10GB size RAND read, write | ||
syeleti-msft marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| - script: | | ||
| ls -lrt | ||
| rm -rf ./* | ||
| echo "******FIO JOB STARTING*******" | ||
| fio --rw=randwrite --bs=1M --size=10g --numjobs=1 $(WORK_DIR)/test/fio/rw.fio | ||
| displayName: 'RAND-[RW]-10G-1F-1T' | ||
| workingDirectory: $(MOUNT_DIR) | ||
| # Run fio on 10 files 1000M size RAND read, write | ||
| - script: | | ||
| ls -lrt | ||
| rm -rf ./* | ||
| echo "******FIO JOB STARTING*******" | ||
| fio --rw=randwrite --bs=1M --size=1g --numjobs=10 $(WORK_DIR)/test/fio/rw.fio | ||
| displayName: 'RAND-[RW]-1G-10F-10T' | ||
| workingDirectory: $(MOUNT_DIR) | ||
| # Run fio on 1 file 10G size SEQ write, with 10 threads from different offsets(1, 1G, 2G,..) | ||
| - script: | | ||
| ls -lrt | ||
| rm -rf ./* | ||
| echo "******FIO JOB STARTING*******" | ||
| fio $(WORK_DIR)/test/fio/seq-write-1f-10th.fio | ||
| displayName: 'SEQ-[W]-10G-1F-10T' | ||
| workingDirectory: $(MOUNT_DIR) | ||
| # Run fio on file having hole inside blocks.(hole can be at middle/at the edges) | ||
| - script: | | ||
| ls -lrt | ||
| rm -rf ./* | ||
| echo "******FIO JOB STARTING*******" | ||
| fio $(WORK_DIR)/test/fio/hole_inside_blocks.fio | ||
| displayName: 'SEQ-HOLE3M-10G-1F-1T' | ||
| workingDirectory: $(MOUNT_DIR) | ||
| # Run fio on file having hole over blocks.(whole blocks can be of holes) | ||
| - script: | | ||
| ls -lrt | ||
| rm -rf ./* | ||
| echo "******FIO JOB STARTING*******" | ||
| fio $(WORK_DIR)/test/fio/hole_over_blocks.fio | ||
| displayName: 'SEQ-HOLE16M-10G-1F-1T' | ||
| workingDirectory: $(MOUNT_DIR) | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| [global] | ||
| name=blobfuse_file_integrity | ||
| bs=1M | ||
| filename=hole_inside_blocks_fio.data | ||
| verify=crc32c | ||
| verify_fatal=1 | ||
| verify_dump=1 | ||
| group_reporting | ||
|
|
||
| [hole] | ||
| size=10G | ||
| # Create 3M Hole after each write call. | ||
| # This will create the holes inside the blocks(assuming block size of 8M) | ||
| rw=write:3M | ||
| number_ios=2560 | ||
| ioengine=sync | ||
| fallocate=none | ||
| unlink=1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| [global] | ||
| name=blobfuse_file_integrity | ||
| bs=1M | ||
| filename=hole_over_blocks_fio.data | ||
| verify=crc32c | ||
| verify_fatal=1 | ||
| group_reporting | ||
|
|
||
| [hole] | ||
| size=10G | ||
| # Create 16M Hole/2 blocks after each write call. | ||
| # This will create the holes over the blocks(assuming block size of 8M), where some blocks will be | ||
| # skipped and other blocks to have some null data at the end of the block. | ||
| rw=write:15M | ||
| number_ios=640 | ||
| ioengine=sync | ||
| fallocate=none | ||
| unlink=1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| [writers] | ||
| bs=1M | ||
| ioengine=sync | ||
jainakanksha-msft marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| verify=crc32c | ||
| verify_fatal=1 | ||
| group_reporting | ||
| unlink=1 | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,78 @@ | ||
| [global] | ||
| name=blobfuse_file_integrity | ||
| bs=1M | ||
| size=10G | ||
| filename=stripe_write_fio.data | ||
syeleti-msft marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| verify=crc32c | ||
| verify_fatal=1 | ||
| ioengine=sync | ||
| group_reporting | ||
|
|
||
| [job1] | ||
| offset=0 | ||
| size=1G | ||
| rw=write | ||
| fallocate=none | ||
|
|
||
|
|
||
| [job2] | ||
| offset=1G | ||
| size=1G | ||
| rw=write | ||
| fallocate=none | ||
|
|
||
|
|
||
| [job3] | ||
| offset=2G | ||
| size=1G | ||
| rw=write | ||
| fallocate=none | ||
|
|
||
|
|
||
| [job4] | ||
| offset=3G | ||
| size=1G | ||
| rw=write | ||
| fallocate=none | ||
|
|
||
|
|
||
| [job5] | ||
| offset=4G | ||
| size=1G | ||
| rw=write | ||
| fallocate=none | ||
|
|
||
|
|
||
| [job6] | ||
| offset=5G | ||
| size=1G | ||
| rw=write | ||
| fallocate=none | ||
|
|
||
|
|
||
| [job7] | ||
| offset=6G | ||
| size=1G | ||
| rw=write | ||
| fallocate=none | ||
|
|
||
|
|
||
| [job8] | ||
| offset=7G | ||
| size=1G | ||
| rw=write | ||
| fallocate=none | ||
|
|
||
|
|
||
| [job9] | ||
| offset=8G | ||
| size=1G | ||
| rw=write | ||
| fallocate=none | ||
|
|
||
|
|
||
| [job10] | ||
| offset=9G | ||
| size=1G | ||
| rw=write | ||
| fallocate=none | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.