Skip to content

ZBDBench

ZBDBench #46

Workflow file for this run

# Workflow for triggering internal test suite
on:
workflow_dispatch:
schedule:
- cron: '0 22 * * sat'
name: ZBDBench
jobs:
zbdbench:
runs-on: nvme-zns
timeout-minutes: 1440
steps:
- name: Clean
run: rm -rf ${GITHUB_WORKSPACE}/*
- name: Checkout zbdbench
uses: actions/checkout@v4
with:
repository: westerndigitalcorporation/zbdbench
ref: v0.1.1
path: zbdbench
- name: Checkout rocksdb
uses: actions/checkout@v4
with:
repository: facebook/rocksdb
ref: v7.0.2
path: rocksdb
- name: Checkout zenfs
uses: actions/checkout@v4
with:
fetch-depth: 0
path: rocksdb/plugin/zenfs
- name: Build RocksDB docker image
run: |
podman build --jobs=$(nproc) --cgroup-manager cgroupfs \
-t rocksdb-zenfs \
-f rocksdb/plugin/zenfs/.github/workflows/containerfiles/Dockerfile.rocksdb-zenfs \
--build-arg LIBZBD_GIT_CHECKOUT=v2.0.2 \
--build-arg ROCKSDB_DEBUG_LEVEL=0 \
.
- name: Set mq-deadline scheduler for the ZBD
run: |
echo deadline > /sys/block/${ZBD0}/queue/scheduler
- name: Run ZBDBench
run: |
podman run --rm -i --device /dev/${ZBD0} \
--volume ./zbdbench:/rocks/dest/zbdbench:Z \
--security-opt unmask=/sys/dev/block \
rocksdb-zenfs \
python3 /rocks/dest/zbdbench/run.py -c system \
-b rocksdb_fillprep rocksdb_overwrite rocksdb_readwhilewriting \
-d /dev/${ZBD0}
- name: Archive ZBDBench test results
uses: actions/upload-artifact@v3
with:
name: zbdbench-rocksdb
path: ./zbdbench/zbdbench_results
if: always()
- name: Remove images
run: podman rmi --force --all
if: always()