summaryrefslogtreecommitdiffstats
path: root/qa/suites/fs
diff options
context:
space:
mode:
Diffstat (limited to '')
l---------qa/suites/fs/.qa1
-rw-r--r--qa/suites/fs/32bits/%0
l---------qa/suites/fs/32bits/.qa1
l---------qa/suites/fs/32bits/begin.yaml1
l---------qa/suites/fs/32bits/clusters/.qa1
l---------qa/suites/fs/32bits/clusters/fixed-2-ucephfs.yaml1
l---------qa/suites/fs/32bits/conf1
l---------qa/suites/fs/32bits/distro1
l---------qa/suites/fs/32bits/mount/.qa1
l---------qa/suites/fs/32bits/mount/fuse.yaml1
l---------qa/suites/fs/32bits/objectstore-ec1
-rw-r--r--qa/suites/fs/32bits/overrides/+0
l---------qa/suites/fs/32bits/overrides/.qa1
-rw-r--r--qa/suites/fs/32bits/overrides/faked-ino.yaml5
l---------qa/suites/fs/32bits/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/32bits/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/32bits/tasks/.qa1
l---------qa/suites/fs/32bits/tasks/cfuse_workunit_suites_fsstress.yaml1
-rw-r--r--qa/suites/fs/32bits/tasks/cfuse_workunit_suites_pjd.yaml11
l---------qa/suites/fs/bugs/.qa1
-rw-r--r--qa/suites/fs/bugs/client_trim_caps/%0
l---------qa/suites/fs/bugs/client_trim_caps/.qa1
l---------qa/suites/fs/bugs/client_trim_caps/begin.yaml1
l---------qa/suites/fs/bugs/client_trim_caps/centos_latest.yaml1
l---------qa/suites/fs/bugs/client_trim_caps/clusters/.qa1
-rw-r--r--qa/suites/fs/bugs/client_trim_caps/clusters/small-cluster.yaml11
l---------qa/suites/fs/bugs/client_trim_caps/conf1
l---------qa/suites/fs/bugs/client_trim_caps/objectstore/.qa1
l---------qa/suites/fs/bugs/client_trim_caps/objectstore/bluestore-bitmap.yaml1
-rw-r--r--qa/suites/fs/bugs/client_trim_caps/overrides/+0
l---------qa/suites/fs/bugs/client_trim_caps/overrides/.qa1
l---------qa/suites/fs/bugs/client_trim_caps/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/bugs/client_trim_caps/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/bugs/client_trim_caps/overrides/no_client_pidfile.yaml1
l---------qa/suites/fs/bugs/client_trim_caps/tasks/.qa1
-rw-r--r--qa/suites/fs/bugs/client_trim_caps/tasks/trim-i24137.yaml14
l---------qa/suites/fs/cephadm/.qa1
-rw-r--r--qa/suites/fs/cephadm/multivolume/%0
l---------qa/suites/fs/cephadm/multivolume/.qa1
-rw-r--r--qa/suites/fs/cephadm/multivolume/0-start.yaml39
-rw-r--r--qa/suites/fs/cephadm/multivolume/1-mount.yaml7
l---------qa/suites/fs/cephadm/multivolume/2-workload/.qa1
l---------qa/suites/fs/cephadm/multivolume/2-workload/dbench.yaml1
l---------qa/suites/fs/cephadm/multivolume/distro/.qa1
l---------qa/suites/fs/cephadm/multivolume/distro/centos_latest.yaml1
-rw-r--r--qa/suites/fs/full/%0
l---------qa/suites/fs/full/.qa1
l---------qa/suites/fs/full/begin.yaml1
l---------qa/suites/fs/full/clusters/.qa1
l---------qa/suites/fs/full/clusters/1-node-1-mds-1-osd.yaml1
l---------qa/suites/fs/full/conf1
l---------qa/suites/fs/full/distro1
-rw-r--r--qa/suites/fs/full/mount/fuse.yaml2
l---------qa/suites/fs/full/objectstore/.qa1
l---------qa/suites/fs/full/objectstore/bluestore-bitmap.yaml1
-rw-r--r--qa/suites/fs/full/overrides.yaml19
-rw-r--r--qa/suites/fs/full/overrides/+0
l---------qa/suites/fs/full/overrides/.qa1
l---------qa/suites/fs/full/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/full/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/full/overrides/no_client_pidfile.yaml1
l---------qa/suites/fs/full/tasks/.qa1
-rw-r--r--qa/suites/fs/full/tasks/mgr-osd-full.yaml31
-rw-r--r--qa/suites/fs/functional/%0
l---------qa/suites/fs/functional/.qa1
l---------qa/suites/fs/functional/begin.yaml1
l---------qa/suites/fs/functional/clusters/.qa1
l---------qa/suites/fs/functional/clusters/1a3s-mds-4c-client.yaml1
l---------qa/suites/fs/functional/conf1
l---------qa/suites/fs/functional/distro1
l---------qa/suites/fs/functional/mount1
l---------qa/suites/fs/functional/objectstore/.qa1
l---------qa/suites/fs/functional/objectstore/bluestore-bitmap.yaml1
l---------qa/suites/fs/functional/objectstore/bluestore-ec-root.yaml1
-rw-r--r--qa/suites/fs/functional/overrides/+0
l---------qa/suites/fs/functional/overrides/.qa1
l---------qa/suites/fs/functional/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/functional/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/functional/overrides/no_client_pidfile.yaml1
l---------qa/suites/fs/functional/tasks/.qa1
-rw-r--r--qa/suites/fs/functional/tasks/acls.yaml5
-rw-r--r--qa/suites/fs/functional/tasks/admin.yaml12
-rw-r--r--qa/suites/fs/functional/tasks/alternate-pool.yaml20
-rw-r--r--qa/suites/fs/functional/tasks/asok_dump_tree.yaml4
-rw-r--r--qa/suites/fs/functional/tasks/auto-repair.yaml11
-rw-r--r--qa/suites/fs/functional/tasks/backtrace.yaml4
-rw-r--r--qa/suites/fs/functional/tasks/cap-flush.yaml8
-rw-r--r--qa/suites/fs/functional/tasks/client-limits.yaml18
-rw-r--r--qa/suites/fs/functional/tasks/client-readahead.yaml5
-rw-r--r--qa/suites/fs/functional/tasks/client-recovery.yaml15
-rw-r--r--qa/suites/fs/functional/tasks/damage.yaml25
-rw-r--r--qa/suites/fs/functional/tasks/data-scan.yaml18
-rw-r--r--qa/suites/fs/functional/tasks/exports.yaml9
-rw-r--r--qa/suites/fs/functional/tasks/forward-scrub.yaml12
-rw-r--r--qa/suites/fs/functional/tasks/fragment.yaml5
-rw-r--r--qa/suites/fs/functional/tasks/journal-repair.yaml13
-rw-r--r--qa/suites/fs/functional/tasks/mds-flush.yaml4
-rw-r--r--qa/suites/fs/functional/tasks/mds-full.yaml38
-rw-r--r--qa/suites/fs/functional/tasks/mds_creation_retry.yaml6
-rw-r--r--qa/suites/fs/functional/tasks/metrics.yaml5
-rw-r--r--qa/suites/fs/functional/tasks/multimds_misc.yaml9
-rw-r--r--qa/suites/fs/functional/tasks/openfiletable.yaml4
-rw-r--r--qa/suites/fs/functional/tasks/pool-perm.yaml4
-rw-r--r--qa/suites/fs/functional/tasks/quota.yaml4
-rw-r--r--qa/suites/fs/functional/tasks/recovery-fs.yaml4
-rw-r--r--qa/suites/fs/functional/tasks/scrub.yaml19
-rw-r--r--qa/suites/fs/functional/tasks/sessionmap.yaml9
-rw-r--r--qa/suites/fs/functional/tasks/snap-schedule.yaml22
-rw-r--r--qa/suites/fs/functional/tasks/snapshots.yaml16
-rw-r--r--qa/suites/fs/functional/tasks/strays.yaml4
-rw-r--r--qa/suites/fs/functional/tasks/test_journal_migration.yaml4
-rw-r--r--qa/suites/fs/functional/tasks/truncate_delay.yaml14
-rw-r--r--qa/suites/fs/functional/tasks/workunit/dir-max-entries.yaml5
-rw-r--r--qa/suites/fs/functional/tasks/workunit/quota.yaml5
-rw-r--r--qa/suites/fs/libcephfs/%0
l---------qa/suites/fs/libcephfs/.qa1
l---------qa/suites/fs/libcephfs/begin.yaml1
l---------qa/suites/fs/libcephfs/clusters/.qa1
l---------qa/suites/fs/libcephfs/clusters/1-mds-1-client-coloc.yaml1
l---------qa/suites/fs/libcephfs/conf1
l---------qa/suites/fs/libcephfs/distro1
l---------qa/suites/fs/libcephfs/objectstore/.qa1
l---------qa/suites/fs/libcephfs/objectstore/bluestore-bitmap.yaml1
-rw-r--r--qa/suites/fs/libcephfs/overrides/+0
l---------qa/suites/fs/libcephfs/overrides/.qa1
l---------qa/suites/fs/libcephfs/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/libcephfs/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/libcephfs/overrides/no_client_pidfile.yaml1
l---------qa/suites/fs/libcephfs/tasks/.qa1
-rw-r--r--qa/suites/fs/libcephfs/tasks/client.yaml14
-rw-r--r--qa/suites/fs/libcephfs/tasks/ino_release_cb.yaml19
-rw-r--r--qa/suites/fs/libcephfs/tasks/libcephfs/+0
l---------qa/suites/fs/libcephfs/tasks/libcephfs/.qa1
l---------qa/suites/fs/libcephfs/tasks/libcephfs/frag.yaml1
-rw-r--r--qa/suites/fs/libcephfs/tasks/libcephfs/test.yaml18
-rw-r--r--qa/suites/fs/libcephfs/tasks/libcephfs_python.yaml10
-rw-r--r--qa/suites/fs/mirror-ha/%0
l---------qa/suites/fs/mirror-ha/.qa1
l---------qa/suites/fs/mirror-ha/begin.yaml1
-rw-r--r--qa/suites/fs/mirror-ha/cephfs-mirror/three-per-cluster.yaml12
-rw-r--r--qa/suites/fs/mirror-ha/clients/+0
l---------qa/suites/fs/mirror-ha/clients/.qa1
-rw-r--r--qa/suites/fs/mirror-ha/clients/mirror.yaml32
-rw-r--r--qa/suites/fs/mirror-ha/cluster/+0
-rw-r--r--qa/suites/fs/mirror-ha/cluster/1-node.yaml20
l---------qa/suites/fs/mirror-ha/objectstore/.qa1
l---------qa/suites/fs/mirror-ha/objectstore/bluestore-bitmap.yaml1
-rw-r--r--qa/suites/fs/mirror-ha/overrides/+0
l---------qa/suites/fs/mirror-ha/overrides/.qa1
-rw-r--r--qa/suites/fs/mirror-ha/overrides/whitelist_health.yaml14
l---------qa/suites/fs/mirror-ha/supported-random-distro$1
l---------qa/suites/fs/mirror-ha/workloads/.qa1
-rw-r--r--qa/suites/fs/mirror-ha/workloads/cephfs-mirror-ha-workunit.yaml37
-rw-r--r--qa/suites/fs/mirror/%0
l---------qa/suites/fs/mirror/.qa1
l---------qa/suites/fs/mirror/begin.yaml1
-rw-r--r--qa/suites/fs/mirror/cephfs-mirror/one-per-cluster.yaml5
-rw-r--r--qa/suites/fs/mirror/clients/+0
l---------qa/suites/fs/mirror/clients/.qa1
-rw-r--r--qa/suites/fs/mirror/clients/mirror.yaml18
-rw-r--r--qa/suites/fs/mirror/cluster/+0
-rw-r--r--qa/suites/fs/mirror/cluster/1-node.yaml17
l---------qa/suites/fs/mirror/mount/.qa1
-rw-r--r--qa/suites/fs/mirror/mount/fuse.yaml2
l---------qa/suites/fs/mirror/objectstore/.qa1
l---------qa/suites/fs/mirror/objectstore/bluestore-bitmap.yaml1
-rw-r--r--qa/suites/fs/mirror/overrides/+0
l---------qa/suites/fs/mirror/overrides/.qa1
-rw-r--r--qa/suites/fs/mirror/overrides/whitelist_health.yaml14
l---------qa/suites/fs/mirror/supported-random-distros$1
l---------qa/suites/fs/mirror/tasks/.qa1
-rw-r--r--qa/suites/fs/mirror/tasks/mirror.yaml10
-rw-r--r--qa/suites/fs/mixed-clients/%0
l---------qa/suites/fs/mixed-clients/.qa1
l---------qa/suites/fs/mixed-clients/begin.yaml1
l---------qa/suites/fs/mixed-clients/clusters/.qa1
l---------qa/suites/fs/mixed-clients/clusters/1a3s-mds-2c-client.yaml1
l---------qa/suites/fs/mixed-clients/conf1
l---------qa/suites/fs/mixed-clients/kclient-overrides1
l---------qa/suites/fs/mixed-clients/objectstore-ec1
-rw-r--r--qa/suites/fs/mixed-clients/overrides/+0
l---------qa/suites/fs/mixed-clients/overrides/.qa1
l---------qa/suites/fs/mixed-clients/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/mixed-clients/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/mixed-clients/overrides/osd-asserts.yaml1
l---------qa/suites/fs/mixed-clients/tasks/.qa1
-rw-r--r--qa/suites/fs/mixed-clients/tasks/kernel_cfuse_workunits_dbench_iozone.yaml18
-rw-r--r--qa/suites/fs/mixed-clients/tasks/kernel_cfuse_workunits_untarbuild_blogbench.yaml18
-rw-r--r--qa/suites/fs/multiclient/%0
l---------qa/suites/fs/multiclient/.qa1
l---------qa/suites/fs/multiclient/begin.yaml1
l---------qa/suites/fs/multiclient/clusters/.qa1
l---------qa/suites/fs/multiclient/clusters/1-mds-2-client.yaml1
l---------qa/suites/fs/multiclient/clusters/1-mds-3-client.yaml1
l---------qa/suites/fs/multiclient/conf1
l---------qa/suites/fs/multiclient/distros/.qa1
l---------qa/suites/fs/multiclient/distros/ubuntu_latest.yaml1
l---------qa/suites/fs/multiclient/mount/.qa1
l---------qa/suites/fs/multiclient/mount/fuse.yaml1
-rw-r--r--qa/suites/fs/multiclient/mount/kclient.yaml.disabled7
l---------qa/suites/fs/multiclient/objectstore-ec1
-rw-r--r--qa/suites/fs/multiclient/overrides/+0
l---------qa/suites/fs/multiclient/overrides/.qa1
l---------qa/suites/fs/multiclient/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/multiclient/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/multiclient/tasks/.qa1
-rw-r--r--qa/suites/fs/multiclient/tasks/cephfs_misc_tests.yaml13
-rw-r--r--qa/suites/fs/multiclient/tasks/fsx-mpi.yaml.disabled17
-rw-r--r--qa/suites/fs/multiclient/tasks/ior-shared-file.yaml23
-rw-r--r--qa/suites/fs/multiclient/tasks/mdtest.yaml20
-rw-r--r--qa/suites/fs/multifs/%0
l---------qa/suites/fs/multifs/.qa1
l---------qa/suites/fs/multifs/begin.yaml1
l---------qa/suites/fs/multifs/clusters/.qa1
l---------qa/suites/fs/multifs/clusters/1a3s-mds-2c-client.yaml1
l---------qa/suites/fs/multifs/conf1
l---------qa/suites/fs/multifs/distro1
l---------qa/suites/fs/multifs/mount1
l---------qa/suites/fs/multifs/objectstore-ec1
-rw-r--r--qa/suites/fs/multifs/overrides/+0
l---------qa/suites/fs/multifs/overrides/.qa1
l---------qa/suites/fs/multifs/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/multifs/overrides/ignorelist_wrongly_marked_down.yaml1
-rw-r--r--qa/suites/fs/multifs/overrides/mon-debug.yaml5
l---------qa/suites/fs/multifs/tasks/.qa1
-rw-r--r--qa/suites/fs/multifs/tasks/failover.yaml20
-rw-r--r--qa/suites/fs/multifs/tasks/multifs-auth.yaml5
-rw-r--r--qa/suites/fs/permission/%0
l---------qa/suites/fs/permission/.qa1
l---------qa/suites/fs/permission/begin.yaml1
l---------qa/suites/fs/permission/clusters/.qa1
l---------qa/suites/fs/permission/clusters/fixed-2-ucephfs.yaml1
l---------qa/suites/fs/permission/conf1
l---------qa/suites/fs/permission/distro1
l---------qa/suites/fs/permission/mount/.qa1
l---------qa/suites/fs/permission/mount/fuse.yaml1
l---------qa/suites/fs/permission/objectstore-ec1
-rw-r--r--qa/suites/fs/permission/overrides/+0
l---------qa/suites/fs/permission/overrides/.qa1
l---------qa/suites/fs/permission/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/permission/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/permission/tasks/.qa1
-rw-r--r--qa/suites/fs/permission/tasks/cfuse_workunit_misc.yaml12
-rw-r--r--qa/suites/fs/permission/tasks/cfuse_workunit_suites_pjd.yaml12
-rw-r--r--qa/suites/fs/shell/%0
l---------qa/suites/fs/shell/.qa1
l---------qa/suites/fs/shell/begin.yaml1
l---------qa/suites/fs/shell/clusters/.qa1
l---------qa/suites/fs/shell/clusters/1-mds-1-client-coloc.yaml1
l---------qa/suites/fs/shell/conf1
l---------qa/suites/fs/shell/distro1
l---------qa/suites/fs/shell/mount/.qa1
l---------qa/suites/fs/shell/mount/fuse.yaml1
l---------qa/suites/fs/shell/objectstore/.qa1
l---------qa/suites/fs/shell/objectstore/bluestore-bitmap.yaml1
-rw-r--r--qa/suites/fs/shell/overrides/+0
l---------qa/suites/fs/shell/overrides/.qa1
l---------qa/suites/fs/shell/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/shell/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/shell/overrides/no_client_pidfile.yaml1
l---------qa/suites/fs/shell/tasks/.qa1
-rw-r--r--qa/suites/fs/shell/tasks/cephfs-shell.yaml8
-rw-r--r--qa/suites/fs/snaps/%0
l---------qa/suites/fs/snaps/.qa1
l---------qa/suites/fs/snaps/begin.yaml1
l---------qa/suites/fs/snaps/clusters/.qa1
l---------qa/suites/fs/snaps/clusters/1a3s-mds-1c-client.yaml1
l---------qa/suites/fs/snaps/conf1
l---------qa/suites/fs/snaps/distro1
l---------qa/suites/fs/snaps/mount1
l---------qa/suites/fs/snaps/objectstore-ec1
-rw-r--r--qa/suites/fs/snaps/overrides/+0
l---------qa/suites/fs/snaps/overrides/.qa1
l---------qa/suites/fs/snaps/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/snaps/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/snaps/tasks/.qa1
-rw-r--r--qa/suites/fs/snaps/tasks/workunit/snaps.yaml5
l---------qa/suites/fs/thrash/.qa1
-rw-r--r--qa/suites/fs/thrash/multifs/%0
l---------qa/suites/fs/thrash/multifs/.qa1
l---------qa/suites/fs/thrash/multifs/begin.yaml1
l---------qa/suites/fs/thrash/multifs/clusters/.qa1
l---------qa/suites/fs/thrash/multifs/clusters/1a3s-mds-2c-client.yaml1
l---------qa/suites/fs/thrash/multifs/conf1
l---------qa/suites/fs/thrash/multifs/distro1
l---------qa/suites/fs/thrash/multifs/mount1
l---------qa/suites/fs/thrash/multifs/msgr-failures/.qa1
-rw-r--r--qa/suites/fs/thrash/multifs/msgr-failures/none.yaml0
-rw-r--r--qa/suites/fs/thrash/multifs/msgr-failures/osd-mds-delay.yaml17
l---------qa/suites/fs/thrash/multifs/objectstore/.qa1
l---------qa/suites/fs/thrash/multifs/objectstore/bluestore-bitmap.yaml1
-rw-r--r--qa/suites/fs/thrash/multifs/overrides/+0
l---------qa/suites/fs/thrash/multifs/overrides/.qa1
l---------qa/suites/fs/thrash/multifs/overrides/frag.yaml1
l---------qa/suites/fs/thrash/multifs/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/thrash/multifs/overrides/ignorelist_wrongly_marked_down.yaml1
-rw-r--r--qa/suites/fs/thrash/multifs/overrides/multifs.yaml16
l---------qa/suites/fs/thrash/multifs/overrides/session_timeout.yaml1
l---------qa/suites/fs/thrash/multifs/overrides/thrashosds-health.yaml1
-rw-r--r--qa/suites/fs/thrash/multifs/tasks/%0
l---------qa/suites/fs/thrash/multifs/tasks/.qa1
l---------qa/suites/fs/thrash/multifs/tasks/1-thrash/.qa1
-rw-r--r--qa/suites/fs/thrash/multifs/tasks/1-thrash/mds.yaml7
-rw-r--r--qa/suites/fs/thrash/multifs/tasks/1-thrash/mon.yaml10
l---------qa/suites/fs/thrash/multifs/tasks/2-workunit/.qa1
-rw-r--r--qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_snaptests.yaml5
l---------qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_suites_fsstress.yaml1
-rw-r--r--qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_suites_pjd.yaml11
l---------qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_trivial_sync.yaml1
-rw-r--r--qa/suites/fs/thrash/multifs/tasks/2-workunit/ffsb.yaml13
-rw-r--r--qa/suites/fs/thrash/multifs/tasks/2-workunit/iozone.yaml5
-rw-r--r--qa/suites/fs/thrash/workloads/%0
l---------qa/suites/fs/thrash/workloads/.qa1
l---------qa/suites/fs/thrash/workloads/begin.yaml1
l---------qa/suites/fs/thrash/workloads/clusters/.qa1
l---------qa/suites/fs/thrash/workloads/clusters/1a5s-mds-1c-client.yaml1
l---------qa/suites/fs/thrash/workloads/conf1
l---------qa/suites/fs/thrash/workloads/distro1
l---------qa/suites/fs/thrash/workloads/mount1
l---------qa/suites/fs/thrash/workloads/msgr-failures/.qa1
-rw-r--r--qa/suites/fs/thrash/workloads/msgr-failures/none.yaml0
-rw-r--r--qa/suites/fs/thrash/workloads/msgr-failures/osd-mds-delay.yaml17
l---------qa/suites/fs/thrash/workloads/objectstore-ec1
-rw-r--r--qa/suites/fs/thrash/workloads/overrides/%0
l---------qa/suites/fs/thrash/workloads/overrides/.qa1
l---------qa/suites/fs/thrash/workloads/overrides/frag.yaml1
l---------qa/suites/fs/thrash/workloads/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/thrash/workloads/overrides/ignorelist_wrongly_marked_down.yaml1
-rw-r--r--qa/suites/fs/thrash/workloads/overrides/prefetch_dirfrags/no.yaml5
-rw-r--r--qa/suites/fs/thrash/workloads/overrides/prefetch_dirfrags/yes.yaml5
-rw-r--r--qa/suites/fs/thrash/workloads/overrides/races.yaml5
l---------qa/suites/fs/thrash/workloads/overrides/session_timeout.yaml1
l---------qa/suites/fs/thrash/workloads/overrides/thrashosds-health.yaml1
l---------qa/suites/fs/thrash/workloads/ranks/.qa1
-rw-r--r--qa/suites/fs/thrash/workloads/ranks/1.yaml0
-rw-r--r--qa/suites/fs/thrash/workloads/ranks/3.yaml9
-rw-r--r--qa/suites/fs/thrash/workloads/ranks/5.yaml9
-rw-r--r--qa/suites/fs/thrash/workloads/tasks/%0
l---------qa/suites/fs/thrash/workloads/tasks/.qa1
l---------qa/suites/fs/thrash/workloads/tasks/1-thrash/.qa1
-rw-r--r--qa/suites/fs/thrash/workloads/tasks/1-thrash/mds.yaml7
-rw-r--r--qa/suites/fs/thrash/workloads/tasks/1-thrash/mon.yaml10
-rw-r--r--qa/suites/fs/thrash/workloads/tasks/1-thrash/osd.yaml8
l---------qa/suites/fs/thrash/workloads/tasks/2-workunit/.qa1
l---------qa/suites/fs/thrash/workloads/tasks/2-workunit/fs/.qa1
-rw-r--r--qa/suites/fs/thrash/workloads/tasks/2-workunit/fs/snaps.yaml5
l---------qa/suites/fs/thrash/workloads/tasks/2-workunit/fs/trivial_sync.yaml1
l---------qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/.qa1
-rw-r--r--qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/ffsb.yaml13
-rw-r--r--qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/fsstress.yaml6
-rw-r--r--qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/iozone.yaml5
-rw-r--r--qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/pjd.yaml11
-rw-r--r--qa/suites/fs/top/%0
l---------qa/suites/fs/top/.qa1
l---------qa/suites/fs/top/begin.yaml1
-rw-r--r--qa/suites/fs/top/cluster/+0
-rw-r--r--qa/suites/fs/top/cluster/1-node.yaml10
l---------qa/suites/fs/top/mount/.qa1
l---------qa/suites/fs/top/mount/fuse.yaml1
l---------qa/suites/fs/top/objectstore/.qa1
l---------qa/suites/fs/top/objectstore/bluestore-bitmap.yaml1
l---------qa/suites/fs/top/overrides/.qa1
l---------qa/suites/fs/top/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/top/supported-random-distros$1
l---------qa/suites/fs/top/tasks/.qa1
-rw-r--r--qa/suites/fs/top/tasks/fstop.yaml4
-rw-r--r--qa/suites/fs/traceless/%0
l---------qa/suites/fs/traceless/.qa1
l---------qa/suites/fs/traceless/begin.yaml1
l---------qa/suites/fs/traceless/clusters/.qa1
l---------qa/suites/fs/traceless/clusters/fixed-2-ucephfs.yaml1
l---------qa/suites/fs/traceless/conf1
l---------qa/suites/fs/traceless/distro1
l---------qa/suites/fs/traceless/mount/.qa1
l---------qa/suites/fs/traceless/mount/fuse.yaml1
l---------qa/suites/fs/traceless/objectstore-ec1
-rw-r--r--qa/suites/fs/traceless/overrides/+0
l---------qa/suites/fs/traceless/overrides/.qa1
l---------qa/suites/fs/traceless/overrides/frag.yaml1
l---------qa/suites/fs/traceless/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/traceless/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/traceless/tasks/.qa1
l---------qa/suites/fs/traceless/tasks/cfuse_workunit_suites_blogbench.yaml1
l---------qa/suites/fs/traceless/tasks/cfuse_workunit_suites_dbench.yaml1
l---------qa/suites/fs/traceless/tasks/cfuse_workunit_suites_ffsb.yaml1
l---------qa/suites/fs/traceless/tasks/cfuse_workunit_suites_fsstress.yaml1
l---------qa/suites/fs/traceless/traceless/.qa1
-rw-r--r--qa/suites/fs/traceless/traceless/50pc.yaml5
l---------qa/suites/fs/upgrade/.qa1
l---------qa/suites/fs/upgrade/featureful_client/.qa1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/%0
l---------qa/suites/fs/upgrade/featureful_client/old_client/.qa1
l---------qa/suites/fs/upgrade/featureful_client/old_client/bluestore-bitmap.yaml1
l---------qa/suites/fs/upgrade/featureful_client/old_client/centos_latest.yaml1
l---------qa/suites/fs/upgrade/featureful_client/old_client/clusters/.qa1
l---------qa/suites/fs/upgrade/featureful_client/old_client/clusters/1-mds-2-client-micro.yaml1
l---------qa/suites/fs/upgrade/featureful_client/old_client/conf1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/overrides/%0
l---------qa/suites/fs/upgrade/featureful_client/old_client/overrides/.qa1
l---------qa/suites/fs/upgrade/featureful_client/old_client/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/upgrade/featureful_client/old_client/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/.qa1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/no.yaml4
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/yes.yaml4
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/overrides/pg-warn.yaml5
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/tasks/%0
l---------qa/suites/fs/upgrade/featureful_client/old_client/tasks/.qa1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/tasks/0-nautilus.yaml43
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/tasks/1-client.yaml8
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/tasks/2-upgrade.yaml48
l---------qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/.qa1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/no.yaml6
-rw-r--r--qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/pacific.yaml12
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/%0
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/.qa1
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/bluestore-bitmap.yaml1
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/centos_latest.yaml1
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/.qa1
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/1-mds-2-client-micro.yaml1
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/conf1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/%0
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/.qa1
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/.qa1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/no.yaml4
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/yes.yaml4
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/pg-warn.yaml5
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/%0
l---------qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/.qa1
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/0-nautilus.yaml43
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/1-client.yaml11
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/2-upgrade.yaml48
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/3-client-upgrade.yaml14
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/4-compat_client.yaml15
-rw-r--r--qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/5-client-sanity.yaml6
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/%0
l---------qa/suites/fs/upgrade/mds_upgrade_sequence/.qa1
l---------qa/suites/fs/upgrade/mds_upgrade_sequence/bluestore-bitmap.yaml1
l---------qa/suites/fs/upgrade/mds_upgrade_sequence/centos_8.stream_container_tools.yaml1
l---------qa/suites/fs/upgrade/mds_upgrade_sequence/conf1
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/%0
l---------qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/.qa1
l---------qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/ignorelist_wrongly_marked_down.yaml1
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/pg-warn.yaml5
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/roles.yaml11
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/%0
l---------qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/.qa1
l---------qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/0-from/.qa1
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/0-from/v16.2.4.yaml30
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/%0
l---------qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/.qa1
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/0-create.yaml5
l---------qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/1-ranks/.qa1
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/1-ranks/1.yaml4
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/1-ranks/2.yaml4
l---------qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/.qa1
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/no.yaml4
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/yes.yaml4
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/3-inline/no.yaml4
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/3-inline/yes.yaml4
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/4-verify.yaml7
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/2-client.yaml3
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/3-upgrade-with-workload.yaml33
-rw-r--r--qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/4-verify.yaml5
-rw-r--r--qa/suites/fs/upgrade/nofs/%0
l---------qa/suites/fs/upgrade/nofs/.qa1
-rw-r--r--qa/suites/fs/upgrade/nofs/README3
l---------qa/suites/fs/upgrade/nofs/bluestore-bitmap.yaml1
l---------qa/suites/fs/upgrade/nofs/centos_latest.yaml1
l---------qa/suites/fs/upgrade/nofs/conf1
-rw-r--r--qa/suites/fs/upgrade/nofs/no-mds-cluster.yaml6
-rw-r--r--qa/suites/fs/upgrade/nofs/overrides/%0
l---------qa/suites/fs/upgrade/nofs/overrides/.qa1
l---------qa/suites/fs/upgrade/nofs/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/upgrade/nofs/overrides/ignorelist_wrongly_marked_down.yaml1
-rw-r--r--qa/suites/fs/upgrade/nofs/overrides/pg-warn.yaml5
-rw-r--r--qa/suites/fs/upgrade/nofs/tasks/%0
l---------qa/suites/fs/upgrade/nofs/tasks/.qa1
-rw-r--r--qa/suites/fs/upgrade/nofs/tasks/0-octopus.yaml38
-rw-r--r--qa/suites/fs/upgrade/nofs/tasks/1-upgrade.yaml45
l---------qa/suites/fs/upgrade/upgraded_client/.qa1
-rw-r--r--qa/suites/fs/upgrade/upgraded_client/from_nautilus/%0
l---------qa/suites/fs/upgrade/upgraded_client/from_nautilus/.qa1
l---------qa/suites/fs/upgrade/upgraded_client/from_nautilus/bluestore-bitmap.yaml1
l---------qa/suites/fs/upgrade/upgraded_client/from_nautilus/centos_latest.yaml1
-rw-r--r--qa/suites/fs/upgrade/upgraded_client/from_nautilus/clusters/%0
l---------qa/suites/fs/upgrade/upgraded_client/from_nautilus/clusters/.qa1
l---------qa/suites/fs/upgrade/upgraded_client/from_nautilus/clusters/1-mds-1-client-micro.yaml1
l---------qa/suites/fs/upgrade/upgraded_client/from_nautilus/conf1
-rw-r--r--qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/%0
l---------qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/.qa1
l---------qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/ignorelist_wrongly_marked_down.yaml1
-rw-r--r--qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/pg-warn.yaml5
-rw-r--r--qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/%0
l---------qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/.qa1
-rw-r--r--qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/0-nautilus.yaml44
-rw-r--r--qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/1-client-upgrade.yaml7
-rw-r--r--qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/2-client-sanity.yaml4
l---------qa/suites/fs/upgrade/volumes/.qa1
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/%0
l---------qa/suites/fs/upgrade/volumes/import-legacy/.qa1
l---------qa/suites/fs/upgrade/volumes/import-legacy/bluestore-bitmap.yaml1
l---------qa/suites/fs/upgrade/volumes/import-legacy/clusters/.qa1
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/clusters/1-mds-2-client-micro.yaml7
l---------qa/suites/fs/upgrade/volumes/import-legacy/conf1
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/overrides/+0
l---------qa/suites/fs/upgrade/volumes/import-legacy/overrides/.qa1
l---------qa/suites/fs/upgrade/volumes/import-legacy/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/upgrade/volumes/import-legacy/overrides/ignorelist_wrongly_marked_down.yaml1
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/overrides/pg-warn.yaml5
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/tasks/%0
l---------qa/suites/fs/upgrade/volumes/import-legacy/tasks/.qa1
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/tasks/0-nautilus.yaml45
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/tasks/1-client.yaml33
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/tasks/2-upgrade.yaml47
-rw-r--r--qa/suites/fs/upgrade/volumes/import-legacy/tasks/3-verify.yaml25
l---------qa/suites/fs/upgrade/volumes/import-legacy/ubuntu_18.04.yaml1
-rw-r--r--qa/suites/fs/valgrind/%0
l---------qa/suites/fs/valgrind/.qa1
l---------qa/suites/fs/valgrind/begin.yaml1
l---------qa/suites/fs/valgrind/centos_latest.yaml1
-rw-r--r--qa/suites/fs/valgrind/debug.yaml4
-rw-r--r--qa/suites/fs/valgrind/mirror/%0
l---------qa/suites/fs/valgrind/mirror/.qa1
-rw-r--r--qa/suites/fs/valgrind/mirror/cephfs-mirror/one-per-cluster.yaml7
-rw-r--r--qa/suites/fs/valgrind/mirror/clients/mirror.yaml18
-rw-r--r--qa/suites/fs/valgrind/mirror/cluster/1-node.yaml17
-rw-r--r--qa/suites/fs/valgrind/mirror/mount/fuse.yaml2
l---------qa/suites/fs/valgrind/mirror/overrides/.qa1
-rw-r--r--qa/suites/fs/valgrind/mirror/overrides/whitelist_health.yaml14
-rw-r--r--qa/suites/fs/valgrind/mirror/tasks/mirror.yaml10
-rw-r--r--qa/suites/fs/verify/%0
l---------qa/suites/fs/verify/.qa1
l---------qa/suites/fs/verify/begin.yaml1
l---------qa/suites/fs/verify/clusters/.qa1
l---------qa/suites/fs/verify/clusters/1a5s-mds-1c-client.yaml1
l---------qa/suites/fs/verify/conf1
-rw-r--r--qa/suites/fs/verify/distro/$0
l---------qa/suites/fs/verify/distro/.qa1
l---------qa/suites/fs/verify/distro/centos_8.yaml1
l---------qa/suites/fs/verify/distro/rhel_8.yaml1
-rw-r--r--qa/suites/fs/verify/distro/ubuntu/+0
l---------qa/suites/fs/verify/distro/ubuntu/.qa1
l---------qa/suites/fs/verify/distro/ubuntu/latest.yaml1
-rw-r--r--qa/suites/fs/verify/distro/ubuntu/overrides.yaml4
l---------qa/suites/fs/verify/mount/.qa1
l---------qa/suites/fs/verify/mount/fuse.yaml1
-rw-r--r--qa/suites/fs/verify/mount/kclient/+0
l---------qa/suites/fs/verify/mount/kclient/.qa1
l---------qa/suites/fs/verify/mount/kclient/k-testing.yaml1
l---------qa/suites/fs/verify/mount/kclient/mount.yaml1
l---------qa/suites/fs/verify/mount/kclient/ms-die-on-skipped.yaml1
l---------qa/suites/fs/verify/objectstore-ec1
-rw-r--r--qa/suites/fs/verify/overrides/+0
l---------qa/suites/fs/verify/overrides/.qa1
l---------qa/suites/fs/verify/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/verify/overrides/ignorelist_wrongly_marked_down.yaml1
-rw-r--r--qa/suites/fs/verify/overrides/mon-debug.yaml6
l---------qa/suites/fs/verify/overrides/session_timeout.yaml1
l---------qa/suites/fs/verify/ranks/.qa1
-rw-r--r--qa/suites/fs/verify/ranks/1.yaml0
-rw-r--r--qa/suites/fs/verify/ranks/3.yaml9
-rw-r--r--qa/suites/fs/verify/ranks/5.yaml9
l---------qa/suites/fs/verify/tasks/.qa1
l---------qa/suites/fs/verify/tasks/dbench.yaml1
l---------qa/suites/fs/verify/tasks/fsstress.yaml1
l---------qa/suites/fs/verify/validater/.qa1
-rw-r--r--qa/suites/fs/verify/validater/lockdep.yaml5
-rw-r--r--qa/suites/fs/verify/validater/valgrind.yaml29
-rw-r--r--qa/suites/fs/volumes/%0
l---------qa/suites/fs/volumes/.qa1
l---------qa/suites/fs/volumes/begin.yaml1
l---------qa/suites/fs/volumes/clusters/.qa1
l---------qa/suites/fs/volumes/clusters/1a3s-mds-4c-client.yaml1
l---------qa/suites/fs/volumes/conf1
l---------qa/suites/fs/volumes/distro1
l---------qa/suites/fs/volumes/mount1
l---------qa/suites/fs/volumes/objectstore/.qa1
l---------qa/suites/fs/volumes/objectstore/bluestore-bitmap.yaml1
-rw-r--r--qa/suites/fs/volumes/overrides/+0
l---------qa/suites/fs/volumes/overrides/.qa1
l---------qa/suites/fs/volumes/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/volumes/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/volumes/overrides/no_client_pidfile.yaml1
l---------qa/suites/fs/volumes/tasks/.qa1
-rw-r--r--qa/suites/fs/volumes/tasks/volume-client.yaml9
-rw-r--r--qa/suites/fs/volumes/tasks/volumes/%0
-rw-r--r--qa/suites/fs/volumes/tasks/volumes/overrides.yaml17
-rw-r--r--qa/suites/fs/volumes/tasks/volumes/test/basic.yaml7
-rw-r--r--qa/suites/fs/volumes/tasks/volumes/test/clone.yaml5
-rw-r--r--qa/suites/fs/volumes/tasks/volumes/test/misc.yaml5
-rw-r--r--qa/suites/fs/volumes/tasks/volumes/test/snapshot.yaml6
-rw-r--r--qa/suites/fs/workload/%0
l---------qa/suites/fs/workload/.qa1
l---------qa/suites/fs/workload/begin.yaml1
l---------qa/suites/fs/workload/clusters/.qa1
l---------qa/suites/fs/workload/clusters/1a11s-mds-1c-client-3node.yaml1
l---------qa/suites/fs/workload/conf1
l---------qa/suites/fs/workload/distro1
l---------qa/suites/fs/workload/mount1
l---------qa/suites/fs/workload/objectstore-ec1
l---------qa/suites/fs/workload/omap_limit/.qa1
-rw-r--r--qa/suites/fs/workload/omap_limit/10.yaml5
-rw-r--r--qa/suites/fs/workload/omap_limit/10000.yaml5
-rw-r--r--qa/suites/fs/workload/overrides/+0
l---------qa/suites/fs/workload/overrides/.qa1
l---------qa/suites/fs/workload/overrides/frag.yaml1
l---------qa/suites/fs/workload/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/workload/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/workload/overrides/osd-asserts.yaml1
l---------qa/suites/fs/workload/overrides/session_timeout.yaml1
-rw-r--r--qa/suites/fs/workload/ranks/1.yaml0
-rw-r--r--qa/suites/fs/workload/ranks/3.yaml9
-rw-r--r--qa/suites/fs/workload/ranks/5.yaml9
-rw-r--r--qa/suites/fs/workload/scrub/no.yaml0
-rw-r--r--qa/suites/fs/workload/scrub/yes.yaml10
-rw-r--r--qa/suites/fs/workload/standby-replay.yaml4
-rw-r--r--qa/suites/fs/workload/tasks/%0
l---------qa/suites/fs/workload/tasks/.qa1
-rw-r--r--qa/suites/fs/workload/tasks/0-check-counter.yaml2
l---------qa/suites/fs/workload/tasks/workunit/.qa1
-rw-r--r--qa/suites/fs/workload/tasks/workunit/direct_io.yaml9
-rw-r--r--qa/suites/fs/workload/tasks/workunit/fs/misc.yaml10
-rw-r--r--qa/suites/fs/workload/tasks/workunit/fs/norstats.yaml17
-rw-r--r--qa/suites/fs/workload/tasks/workunit/fs/test_o_trunc.yaml8
-rw-r--r--qa/suites/fs/workload/tasks/workunit/kernel_untar_build.yaml10
l---------qa/suites/fs/workload/tasks/workunit/suites/.qa1
-rw-r--r--qa/suites/fs/workload/tasks/workunit/suites/blogbench.yaml10
-rw-r--r--qa/suites/fs/workload/tasks/workunit/suites/dbench.yaml5
-rw-r--r--qa/suites/fs/workload/tasks/workunit/suites/ffsb.yaml18
-rw-r--r--qa/suites/fs/workload/tasks/workunit/suites/fsstress.yaml6
-rw-r--r--qa/suites/fs/workload/tasks/workunit/suites/fsx.yaml10
-rw-r--r--qa/suites/fs/workload/tasks/workunit/suites/fsync-tester.yaml8
-rw-r--r--qa/suites/fs/workload/tasks/workunit/suites/iogen.yaml5
-rw-r--r--qa/suites/fs/workload/tasks/workunit/suites/iozone.yaml8
-rw-r--r--qa/suites/fs/workload/tasks/workunit/suites/pjd.yaml12
-rw-r--r--qa/suites/fs/workload/wsync/$0
-rw-r--r--qa/suites/fs/workload/wsync/no.yaml3
-rw-r--r--qa/suites/fs/workload/wsync/yes.yaml3
642 files changed, 2608 insertions, 0 deletions
diff --git a/qa/suites/fs/.qa b/qa/suites/fs/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/32bits/% b/qa/suites/fs/32bits/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/32bits/%
diff --git a/qa/suites/fs/32bits/.qa b/qa/suites/fs/32bits/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/32bits/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/32bits/begin.yaml b/qa/suites/fs/32bits/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/32bits/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/32bits/clusters/.qa b/qa/suites/fs/32bits/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/32bits/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/32bits/clusters/fixed-2-ucephfs.yaml b/qa/suites/fs/32bits/clusters/fixed-2-ucephfs.yaml
new file mode 120000
index 000000000..b0c41a89a
--- /dev/null
+++ b/qa/suites/fs/32bits/clusters/fixed-2-ucephfs.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/fixed-2-ucephfs.yaml \ No newline at end of file
diff --git a/qa/suites/fs/32bits/conf b/qa/suites/fs/32bits/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/32bits/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/32bits/distro b/qa/suites/fs/32bits/distro
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/32bits/distro
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/32bits/mount/.qa b/qa/suites/fs/32bits/mount/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/32bits/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/32bits/mount/fuse.yaml b/qa/suites/fs/32bits/mount/fuse.yaml
new file mode 120000
index 000000000..0e55da9fb
--- /dev/null
+++ b/qa/suites/fs/32bits/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/32bits/objectstore-ec b/qa/suites/fs/32bits/objectstore-ec
new file mode 120000
index 000000000..affe29493
--- /dev/null
+++ b/qa/suites/fs/32bits/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/32bits/overrides/+ b/qa/suites/fs/32bits/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/32bits/overrides/+
diff --git a/qa/suites/fs/32bits/overrides/.qa b/qa/suites/fs/32bits/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/32bits/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/32bits/overrides/faked-ino.yaml b/qa/suites/fs/32bits/overrides/faked-ino.yaml
new file mode 100644
index 000000000..102df684d
--- /dev/null
+++ b/qa/suites/fs/32bits/overrides/faked-ino.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ client use faked inos: true
diff --git a/qa/suites/fs/32bits/overrides/ignorelist_health.yaml b/qa/suites/fs/32bits/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/32bits/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/32bits/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/32bits/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/32bits/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/32bits/tasks/.qa b/qa/suites/fs/32bits/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/32bits/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/32bits/tasks/cfuse_workunit_suites_fsstress.yaml b/qa/suites/fs/32bits/tasks/cfuse_workunit_suites_fsstress.yaml
new file mode 120000
index 000000000..c2e859fff
--- /dev/null
+++ b/qa/suites/fs/32bits/tasks/cfuse_workunit_suites_fsstress.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_fsstress.yaml \ No newline at end of file
diff --git a/qa/suites/fs/32bits/tasks/cfuse_workunit_suites_pjd.yaml b/qa/suites/fs/32bits/tasks/cfuse_workunit_suites_pjd.yaml
new file mode 100644
index 000000000..f7784383b
--- /dev/null
+++ b/qa/suites/fs/32bits/tasks/cfuse_workunit_suites_pjd.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse set user groups: true
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/fs/bugs/.qa b/qa/suites/fs/bugs/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/bugs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/% b/qa/suites/fs/bugs/client_trim_caps/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/%
diff --git a/qa/suites/fs/bugs/client_trim_caps/.qa b/qa/suites/fs/bugs/client_trim_caps/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/begin.yaml b/qa/suites/fs/bugs/client_trim_caps/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/centos_latest.yaml b/qa/suites/fs/bugs/client_trim_caps/centos_latest.yaml
new file mode 120000
index 000000000..bd9854e70
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/clusters/.qa b/qa/suites/fs/bugs/client_trim_caps/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/clusters/small-cluster.yaml b/qa/suites/fs/bugs/client_trim_caps/clusters/small-cluster.yaml
new file mode 100644
index 000000000..5cd97a3ae
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/clusters/small-cluster.yaml
@@ -0,0 +1,11 @@
+roles:
+- [mon.a, mgr.x, osd.0, osd.1, osd.2, mds.a, mds.b, client.0]
+openstack:
+- volumes: # attached to each instance
+ count: 2
+ size: 10 # GB
+- machine:
+ disk: 100 # GB
+log-rotate:
+ ceph-mds: 10G
+ ceph-osd: 10G
diff --git a/qa/suites/fs/bugs/client_trim_caps/conf b/qa/suites/fs/bugs/client_trim_caps/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/objectstore/.qa b/qa/suites/fs/bugs/client_trim_caps/objectstore/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/objectstore/bluestore-bitmap.yaml b/qa/suites/fs/bugs/client_trim_caps/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 000000000..a59cf5175
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/overrides/+ b/qa/suites/fs/bugs/client_trim_caps/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/overrides/+
diff --git a/qa/suites/fs/bugs/client_trim_caps/overrides/.qa b/qa/suites/fs/bugs/client_trim_caps/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/overrides/ignorelist_health.yaml b/qa/suites/fs/bugs/client_trim_caps/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/bugs/client_trim_caps/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/overrides/no_client_pidfile.yaml b/qa/suites/fs/bugs/client_trim_caps/overrides/no_client_pidfile.yaml
new file mode 120000
index 000000000..8888f3327
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/overrides/no_client_pidfile.yaml
@@ -0,0 +1 @@
+.qa/overrides/no_client_pidfile.yaml \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/tasks/.qa b/qa/suites/fs/bugs/client_trim_caps/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/bugs/client_trim_caps/tasks/trim-i24137.yaml b/qa/suites/fs/bugs/client_trim_caps/tasks/trim-i24137.yaml
new file mode 100644
index 000000000..098f7d053
--- /dev/null
+++ b/qa/suites/fs/bugs/client_trim_caps/tasks/trim-i24137.yaml
@@ -0,0 +1,14 @@
+# Note this test is unlikely to exercise the code as expected in the future:
+# "It's too tricky to arrange inodes in session->caps. we don't know if it
+# still works in the future." -Zheng
+
+tasks:
+- exec:
+ mon.a:
+ - ceph config set mds mds_min_caps_per_client 1
+- background_exec:
+ mon.a:
+ - "sleep 30 && ceph config set mds mds_max_caps_per_client 1"
+- exec:
+ client.0:
+ - ceph_test_trim_caps
diff --git a/qa/suites/fs/cephadm/.qa b/qa/suites/fs/cephadm/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/cephadm/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/cephadm/multivolume/% b/qa/suites/fs/cephadm/multivolume/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/cephadm/multivolume/%
diff --git a/qa/suites/fs/cephadm/multivolume/.qa b/qa/suites/fs/cephadm/multivolume/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/cephadm/multivolume/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/cephadm/multivolume/0-start.yaml b/qa/suites/fs/cephadm/multivolume/0-start.yaml
new file mode 100644
index 000000000..13dc863d2
--- /dev/null
+++ b/qa/suites/fs/cephadm/multivolume/0-start.yaml
@@ -0,0 +1,39 @@
+roles:
+- - host.a
+ - osd.0
+ - osd.1
+ - osd.2
+ - osd.3
+ - client.0
+- - host.b
+ - osd.4
+ - osd.5
+ - osd.6
+ - osd.7
+ - client.1
+openstack:
+- volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd shutdown pgref assert: true
+tasks:
+- install:
+- cephadm:
+ roleless: true
+- cephadm.shell:
+ host.a:
+ - ceph orch status
+ - ceph orch ps
+ - ceph orch ls
+ - ceph orch host ls
+ - ceph orch device ls
+- cephadm.shell:
+ host.a:
+ - ceph fs volume create foo
+ - ceph fs volume create bar
+- fs.ready:
+ timeout: 300
diff --git a/qa/suites/fs/cephadm/multivolume/1-mount.yaml b/qa/suites/fs/cephadm/multivolume/1-mount.yaml
new file mode 100644
index 000000000..713621972
--- /dev/null
+++ b/qa/suites/fs/cephadm/multivolume/1-mount.yaml
@@ -0,0 +1,7 @@
+tasks:
+ - ceph-fuse:
+ client.0:
+ cephfs_name: foo
+ - ceph-fuse:
+ client.1:
+ cephfs_name: bar
diff --git a/qa/suites/fs/cephadm/multivolume/2-workload/.qa b/qa/suites/fs/cephadm/multivolume/2-workload/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/cephadm/multivolume/2-workload/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/cephadm/multivolume/2-workload/dbench.yaml b/qa/suites/fs/cephadm/multivolume/2-workload/dbench.yaml
new file mode 120000
index 000000000..f03efad81
--- /dev/null
+++ b/qa/suites/fs/cephadm/multivolume/2-workload/dbench.yaml
@@ -0,0 +1 @@
+../../../workload/tasks/workunit/suites/dbench.yaml \ No newline at end of file
diff --git a/qa/suites/fs/cephadm/multivolume/distro/.qa b/qa/suites/fs/cephadm/multivolume/distro/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/cephadm/multivolume/distro/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/cephadm/multivolume/distro/centos_latest.yaml b/qa/suites/fs/cephadm/multivolume/distro/centos_latest.yaml
new file mode 120000
index 000000000..bd9854e70
--- /dev/null
+++ b/qa/suites/fs/cephadm/multivolume/distro/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/fs/full/% b/qa/suites/fs/full/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/full/%
diff --git a/qa/suites/fs/full/.qa b/qa/suites/fs/full/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/full/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/full/begin.yaml b/qa/suites/fs/full/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/full/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/full/clusters/.qa b/qa/suites/fs/full/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/full/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/full/clusters/1-node-1-mds-1-osd.yaml b/qa/suites/fs/full/clusters/1-node-1-mds-1-osd.yaml
new file mode 120000
index 000000000..517b76547
--- /dev/null
+++ b/qa/suites/fs/full/clusters/1-node-1-mds-1-osd.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-node-1-mds-1-osd.yaml \ No newline at end of file
diff --git a/qa/suites/fs/full/conf b/qa/suites/fs/full/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/full/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/full/distro b/qa/suites/fs/full/distro
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/full/distro
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/full/mount/fuse.yaml b/qa/suites/fs/full/mount/fuse.yaml
new file mode 100644
index 000000000..8338cc493
--- /dev/null
+++ b/qa/suites/fs/full/mount/fuse.yaml
@@ -0,0 +1,2 @@
+tasks:
+ - ceph-fuse:
diff --git a/qa/suites/fs/full/objectstore/.qa b/qa/suites/fs/full/objectstore/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/full/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/full/objectstore/bluestore-bitmap.yaml b/qa/suites/fs/full/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 000000000..a59cf5175
--- /dev/null
+++ b/qa/suites/fs/full/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/full/overrides.yaml b/qa/suites/fs/full/overrides.yaml
new file mode 100644
index 000000000..921528d66
--- /dev/null
+++ b/qa/suites/fs/full/overrides.yaml
@@ -0,0 +1,19 @@
+overrides:
+ ceph:
+ conf:
+ mgr:
+ debug client: 20
+ log-ignorelist:
+ - OSD full dropping all updates
+ - OSD near full
+ - pausewr flag
+ - failsafe engaged, dropping updates
+ - failsafe disengaged, no longer dropping
+ - is full \(reached quota
+ - POOL_FULL
+ - POOL_NEARFULL
+ - POOL_BACKFILLFULL
+ - PG_DEGRADED
+ - OSD_OUT_OF_ORDER_FULL
+ - OSD_NEARFULL
+ - OSD_FULL
diff --git a/qa/suites/fs/full/overrides/+ b/qa/suites/fs/full/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/full/overrides/+
diff --git a/qa/suites/fs/full/overrides/.qa b/qa/suites/fs/full/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/full/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/full/overrides/ignorelist_health.yaml b/qa/suites/fs/full/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/full/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/full/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/full/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/full/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/full/overrides/no_client_pidfile.yaml b/qa/suites/fs/full/overrides/no_client_pidfile.yaml
new file mode 120000
index 000000000..8888f3327
--- /dev/null
+++ b/qa/suites/fs/full/overrides/no_client_pidfile.yaml
@@ -0,0 +1 @@
+.qa/overrides/no_client_pidfile.yaml \ No newline at end of file
diff --git a/qa/suites/fs/full/tasks/.qa b/qa/suites/fs/full/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/full/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/full/tasks/mgr-osd-full.yaml b/qa/suites/fs/full/tasks/mgr-osd-full.yaml
new file mode 100644
index 000000000..b4f673e39
--- /dev/null
+++ b/qa/suites/fs/full/tasks/mgr-osd-full.yaml
@@ -0,0 +1,31 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ osd_pool_default_size: 1
+ osd_pool_default_min_size: 1
+ client:
+ debug ms: 1
+ debug client: 20
+ mds:
+ debug ms: 1
+ debug mds: 20
+ osd: # force bluestore since it's required for ec overwrites
+ osd objectstore: bluestore
+ bluestore block size: 1073741824
+tasks:
+- workunit:
+ cleanup: true
+ clients:
+ client.0:
+ - fs/full/subvolume_rm.sh
+- workunit:
+ cleanup: true
+ clients:
+ client.0:
+ - fs/full/subvolume_clone.sh
+- workunit:
+ cleanup: true
+ clients:
+ client.0:
+ - fs/full/subvolume_snapshot_rm.sh
diff --git a/qa/suites/fs/functional/% b/qa/suites/fs/functional/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/functional/%
diff --git a/qa/suites/fs/functional/.qa b/qa/suites/fs/functional/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/functional/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/functional/begin.yaml b/qa/suites/fs/functional/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/functional/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/functional/clusters/.qa b/qa/suites/fs/functional/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/functional/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/functional/clusters/1a3s-mds-4c-client.yaml b/qa/suites/fs/functional/clusters/1a3s-mds-4c-client.yaml
new file mode 120000
index 000000000..5c722a30b
--- /dev/null
+++ b/qa/suites/fs/functional/clusters/1a3s-mds-4c-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1a3s-mds-4c-client.yaml \ No newline at end of file
diff --git a/qa/suites/fs/functional/conf b/qa/suites/fs/functional/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/functional/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/functional/distro b/qa/suites/fs/functional/distro
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/functional/distro
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/functional/mount b/qa/suites/fs/functional/mount
new file mode 120000
index 000000000..e3600f453
--- /dev/null
+++ b/qa/suites/fs/functional/mount
@@ -0,0 +1 @@
+.qa/cephfs/mount/ \ No newline at end of file
diff --git a/qa/suites/fs/functional/objectstore/.qa b/qa/suites/fs/functional/objectstore/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/functional/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/functional/objectstore/bluestore-bitmap.yaml b/qa/suites/fs/functional/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 000000000..a59cf5175
--- /dev/null
+++ b/qa/suites/fs/functional/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/functional/objectstore/bluestore-ec-root.yaml b/qa/suites/fs/functional/objectstore/bluestore-ec-root.yaml
new file mode 120000
index 000000000..4edebd682
--- /dev/null
+++ b/qa/suites/fs/functional/objectstore/bluestore-ec-root.yaml
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec/bluestore-ec-root.yaml \ No newline at end of file
diff --git a/qa/suites/fs/functional/overrides/+ b/qa/suites/fs/functional/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/functional/overrides/+
diff --git a/qa/suites/fs/functional/overrides/.qa b/qa/suites/fs/functional/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/functional/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/functional/overrides/ignorelist_health.yaml b/qa/suites/fs/functional/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/functional/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/functional/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/functional/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/functional/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/functional/overrides/no_client_pidfile.yaml b/qa/suites/fs/functional/overrides/no_client_pidfile.yaml
new file mode 120000
index 000000000..8888f3327
--- /dev/null
+++ b/qa/suites/fs/functional/overrides/no_client_pidfile.yaml
@@ -0,0 +1 @@
+.qa/overrides/no_client_pidfile.yaml \ No newline at end of file
diff --git a/qa/suites/fs/functional/tasks/.qa b/qa/suites/fs/functional/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/functional/tasks/acls.yaml b/qa/suites/fs/functional/tasks/acls.yaml
new file mode 100644
index 000000000..5b38d351b
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/acls.yaml
@@ -0,0 +1,5 @@
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_acls
diff --git a/qa/suites/fs/functional/tasks/admin.yaml b/qa/suites/fs/functional/tasks/admin.yaml
new file mode 100644
index 000000000..97ecc4cf4
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/admin.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ lockdep: true
+ log-ignorelist:
+ - missing required features
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_admin
diff --git a/qa/suites/fs/functional/tasks/alternate-pool.yaml b/qa/suites/fs/functional/tasks/alternate-pool.yaml
new file mode 100644
index 000000000..3bff0ffe9
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/alternate-pool.yaml
@@ -0,0 +1,20 @@
+
+overrides:
+ ceph:
+ log-ignorelist:
+ - bad backtrace
+ - object missing on disk
+ - error reading table object
+ - error reading sessionmap
+ - unmatched fragstat
+ - unmatched rstat
+ - was unreadable, recreating it now
+ - Scrub error on inode
+ - Metadata damage detected
+ - MDS_FAILED
+ - MDS_DAMAGE
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_recovery_pool
diff --git a/qa/suites/fs/functional/tasks/asok_dump_tree.yaml b/qa/suites/fs/functional/tasks/asok_dump_tree.yaml
new file mode 100644
index 000000000..7fa561470
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/asok_dump_tree.yaml
@@ -0,0 +1,4 @@
+tasks:
+- cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_dump_tree
diff --git a/qa/suites/fs/functional/tasks/auto-repair.yaml b/qa/suites/fs/functional/tasks/auto-repair.yaml
new file mode 100644
index 000000000..1a3ff3efb
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/auto-repair.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - force file system read-only
+ - bad backtrace
+ - MDS in read-only mode
+ - \(MDS_READ_ONLY\)
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_auto_repair
diff --git a/qa/suites/fs/functional/tasks/backtrace.yaml b/qa/suites/fs/functional/tasks/backtrace.yaml
new file mode 100644
index 000000000..6d80c32cc
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/backtrace.yaml
@@ -0,0 +1,4 @@
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_backtrace
diff --git a/qa/suites/fs/functional/tasks/cap-flush.yaml b/qa/suites/fs/functional/tasks/cap-flush.yaml
new file mode 100644
index 000000000..f063654a9
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/cap-flush.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - Replacing daemon mds.a
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_cap_flush
diff --git a/qa/suites/fs/functional/tasks/client-limits.yaml b/qa/suites/fs/functional/tasks/client-limits.yaml
new file mode 100644
index 000000000..b6b3c9858
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/client-limits.yaml
@@ -0,0 +1,18 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - responding to mclientcaps\(revoke\)
+ - not advance its oldest_client_tid
+ - failing to advance its oldest client/flush tid
+ - Too many inodes in cache
+ - failing to respond to cache pressure
+ - slow requests are blocked
+ - failing to respond to capability release
+ - MDS cache is too large
+ - \(MDS_CLIENT_OLDEST_TID\)
+ - \(MDS_CACHE_OVERSIZED\)
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_client_limits
diff --git a/qa/suites/fs/functional/tasks/client-readahead.yaml b/qa/suites/fs/functional/tasks/client-readahead.yaml
new file mode 100644
index 000000000..7c5c850e6
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/client-readahead.yaml
@@ -0,0 +1,5 @@
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_readahead
diff --git a/qa/suites/fs/functional/tasks/client-recovery.yaml b/qa/suites/fs/functional/tasks/client-recovery.yaml
new file mode 100644
index 000000000..d927fd11b
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/client-recovery.yaml
@@ -0,0 +1,15 @@
+# The task interferes with the network, so we need
+# to permit OSDs to complain about that.
+overrides:
+ ceph:
+ log-ignorelist:
+ - evicting unresponsive client
+ - but it is still running
+ - slow request
+ - MDS_CLIENT_LATE_RELEASE
+ - t responding to mclientcaps
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_client_recovery
diff --git a/qa/suites/fs/functional/tasks/damage.yaml b/qa/suites/fs/functional/tasks/damage.yaml
new file mode 100644
index 000000000..917c4b1a3
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/damage.yaml
@@ -0,0 +1,25 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - bad backtrace
+ - object missing on disk
+ - error reading table object
+ - error reading sessionmap
+ - Error loading MDS rank
+ - missing journal object
+ - Error recovering journal
+ - error decoding table object
+ - failed to read JournalPointer
+ - Corrupt directory entry
+ - Corrupt fnode header
+ - corrupt sessionmap header
+ - Corrupt dentry
+ - Scrub error on inode
+ - Metadata damage detected
+ - MDS_READ_ONLY
+ - force file system read-only
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_damage
+
diff --git a/qa/suites/fs/functional/tasks/data-scan.yaml b/qa/suites/fs/functional/tasks/data-scan.yaml
new file mode 100644
index 000000000..b704a0036
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/data-scan.yaml
@@ -0,0 +1,18 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - bad backtrace
+ - object missing on disk
+ - error reading table object
+ - error reading sessionmap
+ - unmatched fragstat
+ - unmatched rstat
+ - was unreadable, recreating it now
+ - Scrub error on inode
+ - Metadata damage detected
+ - inconsistent rstat on inode
+ - Error recovering journal
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_data_scan
diff --git a/qa/suites/fs/functional/tasks/exports.yaml b/qa/suites/fs/functional/tasks/exports.yaml
new file mode 100644
index 000000000..76819fee9
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/exports.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - Replacing daemon mds
+tasks:
+- cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_exports
diff --git a/qa/suites/fs/functional/tasks/forward-scrub.yaml b/qa/suites/fs/functional/tasks/forward-scrub.yaml
new file mode 100644
index 000000000..f444455f1
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/forward-scrub.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - inode wrongly marked free
+ - bad backtrace on inode
+ - inode table repaired for inode
+ - Scrub error on inode
+ - Metadata damage detected
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_forward_scrub
diff --git a/qa/suites/fs/functional/tasks/fragment.yaml b/qa/suites/fs/functional/tasks/fragment.yaml
new file mode 100644
index 000000000..482caad85
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/fragment.yaml
@@ -0,0 +1,5 @@
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_fragment
diff --git a/qa/suites/fs/functional/tasks/journal-repair.yaml b/qa/suites/fs/functional/tasks/journal-repair.yaml
new file mode 100644
index 000000000..0dae6143c
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/journal-repair.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - bad backtrace on directory inode
+ - error reading table object
+ - Metadata damage detected
+ - slow requests are blocked
+ - Behind on trimming
+ - error reading sessionmap
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_journal_repair
diff --git a/qa/suites/fs/functional/tasks/mds-flush.yaml b/qa/suites/fs/functional/tasks/mds-flush.yaml
new file mode 100644
index 000000000..be8c4bee6
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/mds-flush.yaml
@@ -0,0 +1,4 @@
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_flush
diff --git a/qa/suites/fs/functional/tasks/mds-full.yaml b/qa/suites/fs/functional/tasks/mds-full.yaml
new file mode 100644
index 000000000..9399890c4
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/mds-full.yaml
@@ -0,0 +1,38 @@
+overrides:
+ ceph:
+ cephfs:
+ ec_profile:
+ - disabled
+ log-ignorelist:
+ - OSD full dropping all updates
+ - OSD near full
+ - pausewr flag
+ - failsafe engaged, dropping updates
+ - failsafe disengaged, no longer dropping
+ - is full \(reached quota
+ - POOL_FULL
+ - POOL_BACKFILLFULL
+ - PG_RECOVERY_FULL
+ - PG_DEGRADED
+ conf:
+ mon:
+ mon osd nearfull ratio: 0.6
+ mon osd backfillfull ratio: 0.6
+ mon osd full ratio: 0.7
+ osd:
+ osd mon report interval: 5
+ osd objectstore: memstore
+ osd failsafe full ratio: 1.0
+ memstore device bytes: 200000000
+ client.0:
+ debug client: 20
+ debug objecter: 20
+ debug objectcacher: 20
+ client.1:
+ debug client: 20
+ debug objecter: 20
+ debug objectcacher: 20
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_full
diff --git a/qa/suites/fs/functional/tasks/mds_creation_retry.yaml b/qa/suites/fs/functional/tasks/mds_creation_retry.yaml
new file mode 100644
index 000000000..fd23aa8ba
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/mds_creation_retry.yaml
@@ -0,0 +1,6 @@
+tasks:
+-mds_creation_failure:
+- workunit:
+ clients:
+ all: [fs/misc/trivial_sync.sh]
+
diff --git a/qa/suites/fs/functional/tasks/metrics.yaml b/qa/suites/fs/functional/tasks/metrics.yaml
new file mode 100644
index 000000000..7e5ac4150
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/metrics.yaml
@@ -0,0 +1,5 @@
+tasks:
+- cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_mds_metrics
diff --git a/qa/suites/fs/functional/tasks/multimds_misc.yaml b/qa/suites/fs/functional/tasks/multimds_misc.yaml
new file mode 100644
index 000000000..8cdf90310
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/multimds_misc.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - Scrub error on inode
+
+tasks:
+- cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_multimds_misc
diff --git a/qa/suites/fs/functional/tasks/openfiletable.yaml b/qa/suites/fs/functional/tasks/openfiletable.yaml
new file mode 100644
index 000000000..20cfa4f37
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/openfiletable.yaml
@@ -0,0 +1,4 @@
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_openfiletable
diff --git a/qa/suites/fs/functional/tasks/pool-perm.yaml b/qa/suites/fs/functional/tasks/pool-perm.yaml
new file mode 100644
index 000000000..41392fe51
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/pool-perm.yaml
@@ -0,0 +1,4 @@
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_pool_perm
diff --git a/qa/suites/fs/functional/tasks/quota.yaml b/qa/suites/fs/functional/tasks/quota.yaml
new file mode 100644
index 000000000..d44021e48
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/quota.yaml
@@ -0,0 +1,4 @@
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_quota
diff --git a/qa/suites/fs/functional/tasks/recovery-fs.yaml b/qa/suites/fs/functional/tasks/recovery-fs.yaml
new file mode 100644
index 000000000..d354e9fbe
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/recovery-fs.yaml
@@ -0,0 +1,4 @@
+tasks:
+- cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_recovery_fs
diff --git a/qa/suites/fs/functional/tasks/scrub.yaml b/qa/suites/fs/functional/tasks/scrub.yaml
new file mode 100644
index 000000000..09e666849
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/scrub.yaml
@@ -0,0 +1,19 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - Replacing daemon mds
+ - Scrub error on inode
+ - Behind on trimming
+ - Metadata damage detected
+ - bad backtrace on inode
+ - overall HEALTH_
+ - \(MDS_TRIM\)
+ conf:
+ mds:
+ mds log max segments: 1
+ mds cache max size: 1000
+tasks:
+- cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_scrub_checks
+ - tasks.cephfs.test_scrub
diff --git a/qa/suites/fs/functional/tasks/sessionmap.yaml b/qa/suites/fs/functional/tasks/sessionmap.yaml
new file mode 100644
index 000000000..c12632e77
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/sessionmap.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - client session with non-allowable root
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_sessionmap
diff --git a/qa/suites/fs/functional/tasks/snap-schedule.yaml b/qa/suites/fs/functional/tasks/snap-schedule.yaml
new file mode 100644
index 000000000..f2e62b050
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/snap-schedule.yaml
@@ -0,0 +1,22 @@
+overrides:
+ ceph:
+ conf:
+ mgr:
+ debug mgr: 20
+ debug ms: 1
+ debug finisher: 20
+ debug client: 20
+ log-whitelist:
+ - OSD full dropping all updates
+ - OSD near full
+ - pausewr flag
+ - failsafe engaged, dropping updates
+ - failsafe disengaged, no longer dropping
+ - is full \(reached quota
+ - POOL_FULL
+ - POOL_BACKFILLFULL
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_snap_schedules
diff --git a/qa/suites/fs/functional/tasks/snapshots.yaml b/qa/suites/fs/functional/tasks/snapshots.yaml
new file mode 100644
index 000000000..d5951468b
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/snapshots.yaml
@@ -0,0 +1,16 @@
+overrides:
+ check-counter:
+ dry_run: true
+ ceph:
+ log-ignorelist:
+ - evicting unresponsive client
+ - RECENT_CRASH
+
+tasks:
+- exec:
+ mon.a:
+ - ceph config set mgr mgr/crash/warn_recent_interval 0
+- cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_snapshots
diff --git a/qa/suites/fs/functional/tasks/strays.yaml b/qa/suites/fs/functional/tasks/strays.yaml
new file mode 100644
index 000000000..3866ce510
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/strays.yaml
@@ -0,0 +1,4 @@
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_strays
diff --git a/qa/suites/fs/functional/tasks/test_journal_migration.yaml b/qa/suites/fs/functional/tasks/test_journal_migration.yaml
new file mode 100644
index 000000000..f5c4dbc70
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/test_journal_migration.yaml
@@ -0,0 +1,4 @@
+tasks:
+- cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_journal_migration
diff --git a/qa/suites/fs/functional/tasks/truncate_delay.yaml b/qa/suites/fs/functional/tasks/truncate_delay.yaml
new file mode 100644
index 000000000..acd1a5a04
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/truncate_delay.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ ms_inject_delay_probability: 1
+ ms_inject_delay_type: osd
+ ms_inject_delay_max: 5
+ client_oc_max_dirty_age: 1
+tasks:
+- exec:
+ client.0:
+ - cd $TESTDIR/mnt.0 && dd if=/dev/zero of=./foo count=100
+ - sleep 2
+ - cd $TESTDIR/mnt.0 && truncate --size 0 ./foo
diff --git a/qa/suites/fs/functional/tasks/workunit/dir-max-entries.yaml b/qa/suites/fs/functional/tasks/workunit/dir-max-entries.yaml
new file mode 100644
index 000000000..087dcc3d5
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/workunit/dir-max-entries.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - fs/maxentries
diff --git a/qa/suites/fs/functional/tasks/workunit/quota.yaml b/qa/suites/fs/functional/tasks/workunit/quota.yaml
new file mode 100644
index 000000000..7ac8714c5
--- /dev/null
+++ b/qa/suites/fs/functional/tasks/workunit/quota.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/quota
diff --git a/qa/suites/fs/libcephfs/% b/qa/suites/fs/libcephfs/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/libcephfs/%
diff --git a/qa/suites/fs/libcephfs/.qa b/qa/suites/fs/libcephfs/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/libcephfs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/begin.yaml b/qa/suites/fs/libcephfs/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/libcephfs/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/clusters/.qa b/qa/suites/fs/libcephfs/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/libcephfs/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/clusters/1-mds-1-client-coloc.yaml b/qa/suites/fs/libcephfs/clusters/1-mds-1-client-coloc.yaml
new file mode 120000
index 000000000..d15ecfda0
--- /dev/null
+++ b/qa/suites/fs/libcephfs/clusters/1-mds-1-client-coloc.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-1-client-coloc.yaml \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/conf b/qa/suites/fs/libcephfs/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/libcephfs/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/distro b/qa/suites/fs/libcephfs/distro
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/libcephfs/distro
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/objectstore/.qa b/qa/suites/fs/libcephfs/objectstore/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/libcephfs/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/objectstore/bluestore-bitmap.yaml b/qa/suites/fs/libcephfs/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 000000000..a59cf5175
--- /dev/null
+++ b/qa/suites/fs/libcephfs/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/overrides/+ b/qa/suites/fs/libcephfs/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/libcephfs/overrides/+
diff --git a/qa/suites/fs/libcephfs/overrides/.qa b/qa/suites/fs/libcephfs/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/libcephfs/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/overrides/ignorelist_health.yaml b/qa/suites/fs/libcephfs/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/libcephfs/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/libcephfs/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/libcephfs/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/overrides/no_client_pidfile.yaml b/qa/suites/fs/libcephfs/overrides/no_client_pidfile.yaml
new file mode 120000
index 000000000..8888f3327
--- /dev/null
+++ b/qa/suites/fs/libcephfs/overrides/no_client_pidfile.yaml
@@ -0,0 +1 @@
+.qa/overrides/no_client_pidfile.yaml \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/tasks/.qa b/qa/suites/fs/libcephfs/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/libcephfs/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/tasks/client.yaml b/qa/suites/fs/libcephfs/tasks/client.yaml
new file mode 100644
index 000000000..bfdfee4a8
--- /dev/null
+++ b/qa/suites/fs/libcephfs/tasks/client.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ debug ms: 1
+ debug client: 20
+ mds:
+ debug ms: 1
+ debug mds: 20
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - client/test.sh
diff --git a/qa/suites/fs/libcephfs/tasks/ino_release_cb.yaml b/qa/suites/fs/libcephfs/tasks/ino_release_cb.yaml
new file mode 100644
index 000000000..5b5247489
--- /dev/null
+++ b/qa/suites/fs/libcephfs/tasks/ino_release_cb.yaml
@@ -0,0 +1,19 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ debug ms: 1
+ debug client: 20
+ mds:
+ debug ms: 1
+ debug mds: 20
+tasks:
+- exec:
+ mon.a:
+ - ceph config set mds mds_min_caps_per_client 1
+- background_exec:
+ mon.a:
+ - "sleep 30 && ceph config set mds mds_max_caps_per_client 1"
+- exec:
+ client.0:
+ - ceph_test_ino_release_cb
diff --git a/qa/suites/fs/libcephfs/tasks/libcephfs/+ b/qa/suites/fs/libcephfs/tasks/libcephfs/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/libcephfs/tasks/libcephfs/+
diff --git a/qa/suites/fs/libcephfs/tasks/libcephfs/.qa b/qa/suites/fs/libcephfs/tasks/libcephfs/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/libcephfs/tasks/libcephfs/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/tasks/libcephfs/frag.yaml b/qa/suites/fs/libcephfs/tasks/libcephfs/frag.yaml
new file mode 120000
index 000000000..5e5cdaed8
--- /dev/null
+++ b/qa/suites/fs/libcephfs/tasks/libcephfs/frag.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag.yaml \ No newline at end of file
diff --git a/qa/suites/fs/libcephfs/tasks/libcephfs/test.yaml b/qa/suites/fs/libcephfs/tasks/libcephfs/test.yaml
new file mode 100644
index 000000000..70afa2da3
--- /dev/null
+++ b/qa/suites/fs/libcephfs/tasks/libcephfs/test.yaml
@@ -0,0 +1,18 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ debug ms: 1
+ debug client: 20
+ mds:
+ debug ms: 1
+ debug mds: 20
+tasks:
+- check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+- workunit:
+ clients:
+ client.0:
+ - libcephfs/test.sh
diff --git a/qa/suites/fs/libcephfs/tasks/libcephfs_python.yaml b/qa/suites/fs/libcephfs/tasks/libcephfs_python.yaml
new file mode 100644
index 000000000..e5cbb14ba
--- /dev/null
+++ b/qa/suites/fs/libcephfs/tasks/libcephfs_python.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph-fuse:
+ disabled: true
+ kclient:
+ disabled: true
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - fs/test_python.sh
diff --git a/qa/suites/fs/mirror-ha/% b/qa/suites/fs/mirror-ha/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/%
diff --git a/qa/suites/fs/mirror-ha/.qa b/qa/suites/fs/mirror-ha/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/mirror-ha/begin.yaml b/qa/suites/fs/mirror-ha/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/mirror-ha/cephfs-mirror/three-per-cluster.yaml b/qa/suites/fs/mirror-ha/cephfs-mirror/three-per-cluster.yaml
new file mode 100644
index 000000000..095f0893a
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/cephfs-mirror/three-per-cluster.yaml
@@ -0,0 +1,12 @@
+meta:
+- desc: run one cephfs-mirror daemon on primary cluster
+tasks:
+- cephfs-mirror:
+ client: client.mirror1
+ run_in_foreground: True
+- cephfs-mirror:
+ client: client.mirror2
+ run_in_foreground: True
+- cephfs-mirror:
+ client: client.mirror3
+ run_in_foreground: True
diff --git a/qa/suites/fs/mirror-ha/clients/+ b/qa/suites/fs/mirror-ha/clients/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/clients/+
diff --git a/qa/suites/fs/mirror-ha/clients/.qa b/qa/suites/fs/mirror-ha/clients/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/clients/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/mirror-ha/clients/mirror.yaml b/qa/suites/fs/mirror-ha/clients/mirror.yaml
new file mode 100644
index 000000000..620c821e1
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/clients/mirror.yaml
@@ -0,0 +1,32 @@
+meta:
+- desc: configure the permissions for client.mirror
+overrides:
+ ceph:
+ conf:
+ client:
+ debug cephfs_mirror: 20
+ log to stderr: false
+ # make these predictable
+ client.mirror1:
+ admin socket: /var/run/ceph/cephfs-mirror1.asok
+ pid file: /var/run/ceph/cephfs-mirror1.pid
+ client.mirror2:
+ admin socket: /var/run/ceph/cephfs-mirror2.asok
+ pid file: /var/run/ceph/cephfs-mirror2.pid
+ client.mirror3:
+ admin socket: /var/run/ceph/cephfs-mirror3.asok
+ pid file: /var/run/ceph/cephfs-mirror3.pid
+tasks:
+- exec:
+ client.mirror1:
+ - "sudo ceph auth caps client.mirror1 mon 'profile cephfs-mirror' mds 'allow r' osd 'allow rw tag cephfs metadata=*, allow r tag cephfs data=*' mgr 'allow r'"
+ client.mirror2:
+ - "sudo ceph auth caps client.mirror2 mon 'profile cephfs-mirror' mds 'allow r' osd 'allow rw tag cephfs metadata=*, allow r tag cephfs data=*' mgr 'allow r'"
+ client.mirror3:
+ - "sudo ceph auth caps client.mirror3 mon 'profile cephfs-mirror' mds 'allow r' osd 'allow rw tag cephfs metadata=*, allow r tag cephfs data=*' mgr 'allow r'"
+ client.mirror_remote:
+ - "sudo ceph auth caps client.mirror_remote mon 'allow r' mds 'allow rwps' osd 'allow rw tag cephfs *=*' mgr 'allow r'"
+ client.1:
+ - "sudo ceph auth caps client.0 mon 'allow r' mds 'allow rwps' osd 'allow rw tag cephfs *=*' mgr 'allow r'"
+ client.2:
+ - "sudo ceph auth caps client.1 mon 'allow r' mds 'allow rwps' osd 'allow rw tag cephfs *=*' mgr 'allow r'"
diff --git a/qa/suites/fs/mirror-ha/cluster/+ b/qa/suites/fs/mirror-ha/cluster/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/cluster/+
diff --git a/qa/suites/fs/mirror-ha/cluster/1-node.yaml b/qa/suites/fs/mirror-ha/cluster/1-node.yaml
new file mode 100644
index 000000000..cc70c106d
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/cluster/1-node.yaml
@@ -0,0 +1,20 @@
+meta:
+- desc: 1 ceph cluster with 1 mon, 1 mgr, 3 osds, 5 mdss
+roles:
+- - mon.a
+ - mgr.x
+ - mds.a
+ - mds.b
+ - mds.c
+ - mds.d
+ - mds.e
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+ - client.1
+ - client.2
+ - client.mirror1
+ - client.mirror2
+ - client.mirror3
+ - client.mirror_remote \ No newline at end of file
diff --git a/qa/suites/fs/mirror-ha/objectstore/.qa b/qa/suites/fs/mirror-ha/objectstore/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/objectstore/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/mirror-ha/objectstore/bluestore-bitmap.yaml b/qa/suites/fs/mirror-ha/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 000000000..a59cf5175
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/mirror-ha/overrides/+ b/qa/suites/fs/mirror-ha/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/overrides/+
diff --git a/qa/suites/fs/mirror-ha/overrides/.qa b/qa/suites/fs/mirror-ha/overrides/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/overrides/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/mirror-ha/overrides/whitelist_health.yaml b/qa/suites/fs/mirror-ha/overrides/whitelist_health.yaml
new file mode 100644
index 000000000..d40fa4cb8
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/overrides/whitelist_health.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - overall HEALTH_
+ - \(FS_DEGRADED\)
+ - \(MDS_FAILED\)
+ - \(MDS_DEGRADED\)
+ - \(FS_WITH_FAILED_MDS\)
+ - \(MDS_DAMAGE\)
+ - \(MDS_ALL_DOWN\)
+ - \(MDS_UP_LESS_THAN_MAX\)
+ - \(FS_INLINE_DATA_DEPRECATED\)
+ - Reduced data availability
+ - Degraded data redundancy
diff --git a/qa/suites/fs/mirror-ha/supported-random-distro$ b/qa/suites/fs/mirror-ha/supported-random-distro$
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/mirror-ha/workloads/.qa b/qa/suites/fs/mirror-ha/workloads/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/workloads/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/mirror-ha/workloads/cephfs-mirror-ha-workunit.yaml b/qa/suites/fs/mirror-ha/workloads/cephfs-mirror-ha-workunit.yaml
new file mode 100644
index 000000000..18eb46d78
--- /dev/null
+++ b/qa/suites/fs/mirror-ha/workloads/cephfs-mirror-ha-workunit.yaml
@@ -0,0 +1,37 @@
+meta:
+- desc: run the cephfs_mirror_ha.sh workunit to test cephfs-mirror daemon in HA active/active mode
+
+overrides:
+ ceph:
+ conf:
+ mgr:
+ debug client: 10
+
+tasks:
+ - exec:
+ client.1:
+ - "ceph fs volume create dc"
+ - "ceph fs volume create dc-backup"
+ - ceph-fuse:
+ client.1:
+ cephfs_name: dc
+ client.2:
+ cephfs_name: dc-backup
+ - cephfs_mirror_thrash:
+ randomize: False
+ max_thrash_delay: 10
+ - workunit:
+ subdir: mirror
+ cleanup: False
+ clients:
+ client.1: [fs/cephfs_mirror_ha_gen.sh]
+ timeout: 1h
+ - exec:
+ client.2:
+ - "echo verifying synchronized snapshots..."
+ - workunit:
+ subdir: mirror
+ cleanup: False
+ clients:
+ client.2: [fs/cephfs_mirror_ha_verify.sh]
+ timeout: 3h \ No newline at end of file
diff --git a/qa/suites/fs/mirror/% b/qa/suites/fs/mirror/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/mirror/%
diff --git a/qa/suites/fs/mirror/.qa b/qa/suites/fs/mirror/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/mirror/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/mirror/begin.yaml b/qa/suites/fs/mirror/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/mirror/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/mirror/cephfs-mirror/one-per-cluster.yaml b/qa/suites/fs/mirror/cephfs-mirror/one-per-cluster.yaml
new file mode 100644
index 000000000..c355a9db5
--- /dev/null
+++ b/qa/suites/fs/mirror/cephfs-mirror/one-per-cluster.yaml
@@ -0,0 +1,5 @@
+meta:
+- desc: run one cephfs-mirror daemon on primary cluster
+tasks:
+- cephfs-mirror:
+ client: client.mirror
diff --git a/qa/suites/fs/mirror/clients/+ b/qa/suites/fs/mirror/clients/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/mirror/clients/+
diff --git a/qa/suites/fs/mirror/clients/.qa b/qa/suites/fs/mirror/clients/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/mirror/clients/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/mirror/clients/mirror.yaml b/qa/suites/fs/mirror/clients/mirror.yaml
new file mode 100644
index 000000000..1a68fea8b
--- /dev/null
+++ b/qa/suites/fs/mirror/clients/mirror.yaml
@@ -0,0 +1,18 @@
+meta:
+- desc: configure the permissions for client.mirror
+overrides:
+ ceph:
+ conf:
+ client:
+ debug cephfs_mirror: 20
+ log to stderr: false
+ # make these predictable
+ client.mirror:
+ admin socket: /var/run/ceph/cephfs-mirror.asok
+ pid file: /var/run/ceph/cephfs-mirror.pid
+tasks:
+- exec:
+ client.mirror:
+ - "sudo ceph auth caps client.mirror mon 'profile cephfs-mirror' mds 'allow r' osd 'allow rw tag cephfs metadata=*, allow r tag cephfs data=*' mgr 'allow r'"
+ client.mirror_remote:
+ - "sudo ceph auth caps client.mirror_remote mon 'allow r' mds 'allow rwps' osd 'allow rw tag cephfs *=*' mgr 'allow r'"
diff --git a/qa/suites/fs/mirror/cluster/+ b/qa/suites/fs/mirror/cluster/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/mirror/cluster/+
diff --git a/qa/suites/fs/mirror/cluster/1-node.yaml b/qa/suites/fs/mirror/cluster/1-node.yaml
new file mode 100644
index 000000000..a9748e071
--- /dev/null
+++ b/qa/suites/fs/mirror/cluster/1-node.yaml
@@ -0,0 +1,17 @@
+meta:
+- desc: 1 ceph cluster with 1 mon, 1 mgr, 3 osds, 5 mdss
+roles:
+- - mon.a
+ - mgr.x
+ - mds.a
+ - mds.b
+ - mds.c
+ - mds.d
+ - mds.e
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+ - client.1
+ - client.mirror
+ - client.mirror_remote \ No newline at end of file
diff --git a/qa/suites/fs/mirror/mount/.qa b/qa/suites/fs/mirror/mount/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/mirror/mount/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/mirror/mount/fuse.yaml b/qa/suites/fs/mirror/mount/fuse.yaml
new file mode 100644
index 000000000..1fdf55ab4
--- /dev/null
+++ b/qa/suites/fs/mirror/mount/fuse.yaml
@@ -0,0 +1,2 @@
+tasks:
+ - ceph-fuse: [client.0, client.1]
diff --git a/qa/suites/fs/mirror/objectstore/.qa b/qa/suites/fs/mirror/objectstore/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/mirror/objectstore/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/mirror/objectstore/bluestore-bitmap.yaml b/qa/suites/fs/mirror/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 000000000..a59cf5175
--- /dev/null
+++ b/qa/suites/fs/mirror/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/mirror/overrides/+ b/qa/suites/fs/mirror/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/mirror/overrides/+
diff --git a/qa/suites/fs/mirror/overrides/.qa b/qa/suites/fs/mirror/overrides/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/mirror/overrides/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/mirror/overrides/whitelist_health.yaml b/qa/suites/fs/mirror/overrides/whitelist_health.yaml
new file mode 100644
index 000000000..d40fa4cb8
--- /dev/null
+++ b/qa/suites/fs/mirror/overrides/whitelist_health.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - overall HEALTH_
+ - \(FS_DEGRADED\)
+ - \(MDS_FAILED\)
+ - \(MDS_DEGRADED\)
+ - \(FS_WITH_FAILED_MDS\)
+ - \(MDS_DAMAGE\)
+ - \(MDS_ALL_DOWN\)
+ - \(MDS_UP_LESS_THAN_MAX\)
+ - \(FS_INLINE_DATA_DEPRECATED\)
+ - Reduced data availability
+ - Degraded data redundancy
diff --git a/qa/suites/fs/mirror/supported-random-distros$ b/qa/suites/fs/mirror/supported-random-distros$
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/mirror/supported-random-distros$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/mirror/tasks/.qa b/qa/suites/fs/mirror/tasks/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/mirror/tasks/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/mirror/tasks/mirror.yaml b/qa/suites/fs/mirror/tasks/mirror.yaml
new file mode 100644
index 000000000..07c1e24ef
--- /dev/null
+++ b/qa/suites/fs/mirror/tasks/mirror.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ conf:
+ mgr:
+ debug client: 10
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_mirroring.TestMirroring
diff --git a/qa/suites/fs/mixed-clients/% b/qa/suites/fs/mixed-clients/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/%
diff --git a/qa/suites/fs/mixed-clients/.qa b/qa/suites/fs/mixed-clients/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/mixed-clients/begin.yaml b/qa/suites/fs/mixed-clients/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/mixed-clients/clusters/.qa b/qa/suites/fs/mixed-clients/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/mixed-clients/clusters/1a3s-mds-2c-client.yaml b/qa/suites/fs/mixed-clients/clusters/1a3s-mds-2c-client.yaml
new file mode 120000
index 000000000..c190ea92f
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/clusters/1a3s-mds-2c-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1a3s-mds-2c-client.yaml \ No newline at end of file
diff --git a/qa/suites/fs/mixed-clients/conf b/qa/suites/fs/mixed-clients/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/mixed-clients/kclient-overrides b/qa/suites/fs/mixed-clients/kclient-overrides
new file mode 120000
index 000000000..58b04fb24
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/kclient-overrides
@@ -0,0 +1 @@
+.qa/cephfs/mount/kclient/overrides/ \ No newline at end of file
diff --git a/qa/suites/fs/mixed-clients/objectstore-ec b/qa/suites/fs/mixed-clients/objectstore-ec
new file mode 120000
index 000000000..affe29493
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/mixed-clients/overrides/+ b/qa/suites/fs/mixed-clients/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/overrides/+
diff --git a/qa/suites/fs/mixed-clients/overrides/.qa b/qa/suites/fs/mixed-clients/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/mixed-clients/overrides/ignorelist_health.yaml b/qa/suites/fs/mixed-clients/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/mixed-clients/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/mixed-clients/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/mixed-clients/overrides/osd-asserts.yaml b/qa/suites/fs/mixed-clients/overrides/osd-asserts.yaml
new file mode 120000
index 000000000..f290c749b
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/overrides/osd-asserts.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/osd-asserts.yaml \ No newline at end of file
diff --git a/qa/suites/fs/mixed-clients/tasks/.qa b/qa/suites/fs/mixed-clients/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/mixed-clients/tasks/kernel_cfuse_workunits_dbench_iozone.yaml b/qa/suites/fs/mixed-clients/tasks/kernel_cfuse_workunits_dbench_iozone.yaml
new file mode 100644
index 000000000..78b2d7611
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/tasks/kernel_cfuse_workunits_dbench_iozone.yaml
@@ -0,0 +1,18 @@
+tasks:
+- parallel:
+ - user-workload
+ - kclient-workload
+user-workload:
+ sequential:
+ - ceph-fuse: [client.0]
+ - workunit:
+ clients:
+ client.0:
+ - suites/iozone.sh
+kclient-workload:
+ sequential:
+ - kclient: [client.1]
+ - workunit:
+ clients:
+ client.1:
+ - suites/dbench.sh
diff --git a/qa/suites/fs/mixed-clients/tasks/kernel_cfuse_workunits_untarbuild_blogbench.yaml b/qa/suites/fs/mixed-clients/tasks/kernel_cfuse_workunits_untarbuild_blogbench.yaml
new file mode 100644
index 000000000..d637ff989
--- /dev/null
+++ b/qa/suites/fs/mixed-clients/tasks/kernel_cfuse_workunits_untarbuild_blogbench.yaml
@@ -0,0 +1,18 @@
+tasks:
+- parallel:
+ - user-workload
+ - kclient-workload
+user-workload:
+ sequential:
+ - ceph-fuse: [client.0]
+ - workunit:
+ clients:
+ client.0:
+ - suites/blogbench.sh
+kclient-workload:
+ sequential:
+ - kclient: [client.1]
+ - workunit:
+ clients:
+ client.1:
+ - kernel_untar_build.sh
diff --git a/qa/suites/fs/multiclient/% b/qa/suites/fs/multiclient/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/multiclient/%
diff --git a/qa/suites/fs/multiclient/.qa b/qa/suites/fs/multiclient/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/multiclient/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/begin.yaml b/qa/suites/fs/multiclient/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/multiclient/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/clusters/.qa b/qa/suites/fs/multiclient/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/multiclient/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/clusters/1-mds-2-client.yaml b/qa/suites/fs/multiclient/clusters/1-mds-2-client.yaml
new file mode 120000
index 000000000..9f4f161a3
--- /dev/null
+++ b/qa/suites/fs/multiclient/clusters/1-mds-2-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-2-client.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/clusters/1-mds-3-client.yaml b/qa/suites/fs/multiclient/clusters/1-mds-3-client.yaml
new file mode 120000
index 000000000..6b25e07c4
--- /dev/null
+++ b/qa/suites/fs/multiclient/clusters/1-mds-3-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-3-client.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/conf b/qa/suites/fs/multiclient/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/multiclient/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/distros/.qa b/qa/suites/fs/multiclient/distros/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/multiclient/distros/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/distros/ubuntu_latest.yaml b/qa/suites/fs/multiclient/distros/ubuntu_latest.yaml
new file mode 120000
index 000000000..3a09f9abb
--- /dev/null
+++ b/qa/suites/fs/multiclient/distros/ubuntu_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/ubuntu_latest.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/mount/.qa b/qa/suites/fs/multiclient/mount/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/multiclient/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/mount/fuse.yaml b/qa/suites/fs/multiclient/mount/fuse.yaml
new file mode 120000
index 000000000..0e55da9fb
--- /dev/null
+++ b/qa/suites/fs/multiclient/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/mount/kclient.yaml.disabled b/qa/suites/fs/multiclient/mount/kclient.yaml.disabled
new file mode 100644
index 000000000..f00f16aea
--- /dev/null
+++ b/qa/suites/fs/multiclient/mount/kclient.yaml.disabled
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms die on skipped message: false
+tasks:
+- kclient:
diff --git a/qa/suites/fs/multiclient/objectstore-ec b/qa/suites/fs/multiclient/objectstore-ec
new file mode 120000
index 000000000..affe29493
--- /dev/null
+++ b/qa/suites/fs/multiclient/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/overrides/+ b/qa/suites/fs/multiclient/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/multiclient/overrides/+
diff --git a/qa/suites/fs/multiclient/overrides/.qa b/qa/suites/fs/multiclient/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/multiclient/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/overrides/ignorelist_health.yaml b/qa/suites/fs/multiclient/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/multiclient/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/multiclient/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/multiclient/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/tasks/.qa b/qa/suites/fs/multiclient/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/multiclient/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multiclient/tasks/cephfs_misc_tests.yaml b/qa/suites/fs/multiclient/tasks/cephfs_misc_tests.yaml
new file mode 100644
index 000000000..40d63ba79
--- /dev/null
+++ b/qa/suites/fs/multiclient/tasks/cephfs_misc_tests.yaml
@@ -0,0 +1,13 @@
+tasks:
+- cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_misc
+
+overrides:
+ ceph:
+ log-ignorelist:
+ - evicting unresponsive client
+ - POOL_APP_NOT_ENABLED
+ - has not responded to cap revoke by MDS for over
+ - MDS_CLIENT_LATE_RELEASE
+ - responding to mclientcaps
diff --git a/qa/suites/fs/multiclient/tasks/fsx-mpi.yaml.disabled b/qa/suites/fs/multiclient/tasks/fsx-mpi.yaml.disabled
new file mode 100644
index 000000000..888de867f
--- /dev/null
+++ b/qa/suites/fs/multiclient/tasks/fsx-mpi.yaml.disabled
@@ -0,0 +1,17 @@
+# make sure we get the same MPI version on all hosts
+tasks:
+- pexec:
+ clients:
+ - cd $TESTDIR
+ - wget http://download.ceph.com/qa/fsx-mpi.c
+ - mpicc fsx-mpi.c -o fsx-mpi
+ - rm fsx-mpi.c
+ - ln -s $TESTDIR/mnt.* $TESTDIR/gmnt
+- ssh_keys:
+- mpi:
+ exec: sudo $TESTDIR/fsx-mpi -o 1MB -N 50000 -p 10000 -l 1048576 $TESTDIR/gmnt/test
+ workdir: $TESTDIR/gmnt
+- pexec:
+ clients:
+ - rm $TESTDIR/gmnt
+ - rm $TESTDIR/fsx-mpi
diff --git a/qa/suites/fs/multiclient/tasks/ior-shared-file.yaml b/qa/suites/fs/multiclient/tasks/ior-shared-file.yaml
new file mode 100644
index 000000000..5329fa67f
--- /dev/null
+++ b/qa/suites/fs/multiclient/tasks/ior-shared-file.yaml
@@ -0,0 +1,23 @@
+# make sure we get the same MPI version on all hosts
+tasks:
+- pexec:
+ clients:
+ - cd $TESTDIR
+ - wget http://download.ceph.com/qa/ior.tbz2
+ - tar xvfj ior.tbz2
+ - cd ior
+ - ./configure
+ - make
+ - make install DESTDIR=$TESTDIR/binary/
+ - cd $TESTDIR/
+ - rm ior.tbz2
+ - rm -r ior
+ - ln -s $TESTDIR/mnt.* $TESTDIR/gmnt
+- ssh_keys:
+- mpi:
+ exec: $TESTDIR/binary/usr/local/bin/ior -e -w -r -W -b 10m -a POSIX -o $TESTDIR/gmnt/ior.testfile
+- pexec:
+ clients:
+ - rm -f $TESTDIR/gmnt/ior.testfile
+ - rm -f $TESTDIR/gmnt
+ - rm -rf $TESTDIR/binary
diff --git a/qa/suites/fs/multiclient/tasks/mdtest.yaml b/qa/suites/fs/multiclient/tasks/mdtest.yaml
new file mode 100644
index 000000000..c2bbd2fbe
--- /dev/null
+++ b/qa/suites/fs/multiclient/tasks/mdtest.yaml
@@ -0,0 +1,20 @@
+# make sure we get the same MPI version on all hosts
+tasks:
+- pexec:
+ clients:
+ - cd $TESTDIR
+ - wget http://download.ceph.com/qa/mdtest-1.9.3.tgz
+ - mkdir mdtest-1.9.3
+ - cd mdtest-1.9.3
+ - tar xvfz $TESTDIR/mdtest-1.9.3.tgz
+ - rm $TESTDIR/mdtest-1.9.3.tgz
+ - MPI_CC=mpicc make
+ - ln -s $TESTDIR/mnt.* $TESTDIR/gmnt
+- ssh_keys:
+- mpi:
+ exec: $TESTDIR/mdtest-1.9.3/mdtest -d $TESTDIR/gmnt -I 20 -z 5 -b 2 -R
+- pexec:
+ clients:
+ - rm -f $TESTDIR/gmnt
+ - rm -rf $TESTDIR/mdtest-1.9.3
+ - rm -rf $TESTDIR/._mdtest-1.9.3
diff --git a/qa/suites/fs/multifs/% b/qa/suites/fs/multifs/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/multifs/%
diff --git a/qa/suites/fs/multifs/.qa b/qa/suites/fs/multifs/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/multifs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multifs/begin.yaml b/qa/suites/fs/multifs/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/multifs/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multifs/clusters/.qa b/qa/suites/fs/multifs/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/multifs/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multifs/clusters/1a3s-mds-2c-client.yaml b/qa/suites/fs/multifs/clusters/1a3s-mds-2c-client.yaml
new file mode 120000
index 000000000..c190ea92f
--- /dev/null
+++ b/qa/suites/fs/multifs/clusters/1a3s-mds-2c-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1a3s-mds-2c-client.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multifs/conf b/qa/suites/fs/multifs/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/multifs/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/multifs/distro b/qa/suites/fs/multifs/distro
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/multifs/distro
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/multifs/mount b/qa/suites/fs/multifs/mount
new file mode 120000
index 000000000..e3600f453
--- /dev/null
+++ b/qa/suites/fs/multifs/mount
@@ -0,0 +1 @@
+.qa/cephfs/mount/ \ No newline at end of file
diff --git a/qa/suites/fs/multifs/objectstore-ec b/qa/suites/fs/multifs/objectstore-ec
new file mode 120000
index 000000000..affe29493
--- /dev/null
+++ b/qa/suites/fs/multifs/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/multifs/overrides/+ b/qa/suites/fs/multifs/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/multifs/overrides/+
diff --git a/qa/suites/fs/multifs/overrides/.qa b/qa/suites/fs/multifs/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/multifs/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multifs/overrides/ignorelist_health.yaml b/qa/suites/fs/multifs/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/multifs/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multifs/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/multifs/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/multifs/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/multifs/overrides/mon-debug.yaml b/qa/suites/fs/multifs/overrides/mon-debug.yaml
new file mode 100644
index 000000000..24b454c00
--- /dev/null
+++ b/qa/suites/fs/multifs/overrides/mon-debug.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ mon:
+ debug mon: 20
diff --git a/qa/suites/fs/multifs/tasks/.qa b/qa/suites/fs/multifs/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/multifs/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/multifs/tasks/failover.yaml b/qa/suites/fs/multifs/tasks/failover.yaml
new file mode 100644
index 000000000..9c403c76d
--- /dev/null
+++ b/qa/suites/fs/multifs/tasks/failover.yaml
@@ -0,0 +1,20 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - Replacing daemon mds
+ - \(MDS_INSUFFICIENT_STANDBY\)
+ - \(MDS_ALL_DOWN\)
+ - \(MDS_UP_LESS_THAN_MAX\)
+ - \(MDS_DAMAGE\)
+ - \(FS_DEGRADED\)
+ ceph-fuse:
+ disabled: true
+tasks:
+ - exec:
+ mon.a:
+ - ceph config set mgr mgr/crash/warn_recent_interval 0
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_failover
+
diff --git a/qa/suites/fs/multifs/tasks/multifs-auth.yaml b/qa/suites/fs/multifs/tasks/multifs-auth.yaml
new file mode 100644
index 000000000..ed1bdb475
--- /dev/null
+++ b/qa/suites/fs/multifs/tasks/multifs-auth.yaml
@@ -0,0 +1,5 @@
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_multifs_auth
diff --git a/qa/suites/fs/permission/% b/qa/suites/fs/permission/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/permission/%
diff --git a/qa/suites/fs/permission/.qa b/qa/suites/fs/permission/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/permission/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/permission/begin.yaml b/qa/suites/fs/permission/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/permission/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/permission/clusters/.qa b/qa/suites/fs/permission/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/permission/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/permission/clusters/fixed-2-ucephfs.yaml b/qa/suites/fs/permission/clusters/fixed-2-ucephfs.yaml
new file mode 120000
index 000000000..b0c41a89a
--- /dev/null
+++ b/qa/suites/fs/permission/clusters/fixed-2-ucephfs.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/fixed-2-ucephfs.yaml \ No newline at end of file
diff --git a/qa/suites/fs/permission/conf b/qa/suites/fs/permission/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/permission/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/permission/distro b/qa/suites/fs/permission/distro
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/permission/distro
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/permission/mount/.qa b/qa/suites/fs/permission/mount/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/permission/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/permission/mount/fuse.yaml b/qa/suites/fs/permission/mount/fuse.yaml
new file mode 120000
index 000000000..0e55da9fb
--- /dev/null
+++ b/qa/suites/fs/permission/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/permission/objectstore-ec b/qa/suites/fs/permission/objectstore-ec
new file mode 120000
index 000000000..affe29493
--- /dev/null
+++ b/qa/suites/fs/permission/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/permission/overrides/+ b/qa/suites/fs/permission/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/permission/overrides/+
diff --git a/qa/suites/fs/permission/overrides/.qa b/qa/suites/fs/permission/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/permission/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/permission/overrides/ignorelist_health.yaml b/qa/suites/fs/permission/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/permission/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/permission/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/permission/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/permission/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/permission/tasks/.qa b/qa/suites/fs/permission/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/permission/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/permission/tasks/cfuse_workunit_misc.yaml b/qa/suites/fs/permission/tasks/cfuse_workunit_misc.yaml
new file mode 100644
index 000000000..ca026c45f
--- /dev/null
+++ b/qa/suites/fs/permission/tasks/cfuse_workunit_misc.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ client acl type: posix_acl
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/misc/acl.sh
+ - fs/misc/chmod.sh
+ - fs/misc/dac_override.sh
diff --git a/qa/suites/fs/permission/tasks/cfuse_workunit_suites_pjd.yaml b/qa/suites/fs/permission/tasks/cfuse_workunit_suites_pjd.yaml
new file mode 100644
index 000000000..a81a3b46e
--- /dev/null
+++ b/qa/suites/fs/permission/tasks/cfuse_workunit_suites_pjd.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse set user groups: true
+ client acl type: posix_acl
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/fs/shell/% b/qa/suites/fs/shell/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/shell/%
diff --git a/qa/suites/fs/shell/.qa b/qa/suites/fs/shell/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/shell/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/shell/begin.yaml b/qa/suites/fs/shell/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/shell/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/shell/clusters/.qa b/qa/suites/fs/shell/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/shell/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/shell/clusters/1-mds-1-client-coloc.yaml b/qa/suites/fs/shell/clusters/1-mds-1-client-coloc.yaml
new file mode 120000
index 000000000..d15ecfda0
--- /dev/null
+++ b/qa/suites/fs/shell/clusters/1-mds-1-client-coloc.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-1-client-coloc.yaml \ No newline at end of file
diff --git a/qa/suites/fs/shell/conf b/qa/suites/fs/shell/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/shell/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/shell/distro b/qa/suites/fs/shell/distro
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/shell/distro
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/shell/mount/.qa b/qa/suites/fs/shell/mount/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/shell/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/shell/mount/fuse.yaml b/qa/suites/fs/shell/mount/fuse.yaml
new file mode 120000
index 000000000..0e55da9fb
--- /dev/null
+++ b/qa/suites/fs/shell/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/shell/objectstore/.qa b/qa/suites/fs/shell/objectstore/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/shell/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/shell/objectstore/bluestore-bitmap.yaml b/qa/suites/fs/shell/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 000000000..a59cf5175
--- /dev/null
+++ b/qa/suites/fs/shell/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/shell/overrides/+ b/qa/suites/fs/shell/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/shell/overrides/+
diff --git a/qa/suites/fs/shell/overrides/.qa b/qa/suites/fs/shell/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/shell/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/shell/overrides/ignorelist_health.yaml b/qa/suites/fs/shell/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/shell/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/shell/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/shell/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/shell/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/shell/overrides/no_client_pidfile.yaml b/qa/suites/fs/shell/overrides/no_client_pidfile.yaml
new file mode 120000
index 000000000..8888f3327
--- /dev/null
+++ b/qa/suites/fs/shell/overrides/no_client_pidfile.yaml
@@ -0,0 +1 @@
+.qa/overrides/no_client_pidfile.yaml \ No newline at end of file
diff --git a/qa/suites/fs/shell/tasks/.qa b/qa/suites/fs/shell/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/shell/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/shell/tasks/cephfs-shell.yaml b/qa/suites/fs/shell/tasks/cephfs-shell.yaml
new file mode 100644
index 000000000..9708252e9
--- /dev/null
+++ b/qa/suites/fs/shell/tasks/cephfs-shell.yaml
@@ -0,0 +1,8 @@
+# Right now, cephfs-shell is only available as a package on Ubuntu
+# This overrides the random distribution that's chosen in the other yaml fragments.
+os_type: ubuntu
+os_version: "20.04"
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_cephfs_shell
diff --git a/qa/suites/fs/snaps/% b/qa/suites/fs/snaps/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/snaps/%
diff --git a/qa/suites/fs/snaps/.qa b/qa/suites/fs/snaps/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/snaps/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/snaps/begin.yaml b/qa/suites/fs/snaps/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/snaps/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/snaps/clusters/.qa b/qa/suites/fs/snaps/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/snaps/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/snaps/clusters/1a3s-mds-1c-client.yaml b/qa/suites/fs/snaps/clusters/1a3s-mds-1c-client.yaml
new file mode 120000
index 000000000..4ab7357dc
--- /dev/null
+++ b/qa/suites/fs/snaps/clusters/1a3s-mds-1c-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1a3s-mds-1c-client.yaml \ No newline at end of file
diff --git a/qa/suites/fs/snaps/conf b/qa/suites/fs/snaps/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/snaps/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/snaps/distro b/qa/suites/fs/snaps/distro
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/snaps/distro
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/snaps/mount b/qa/suites/fs/snaps/mount
new file mode 120000
index 000000000..e3600f453
--- /dev/null
+++ b/qa/suites/fs/snaps/mount
@@ -0,0 +1 @@
+.qa/cephfs/mount/ \ No newline at end of file
diff --git a/qa/suites/fs/snaps/objectstore-ec b/qa/suites/fs/snaps/objectstore-ec
new file mode 120000
index 000000000..affe29493
--- /dev/null
+++ b/qa/suites/fs/snaps/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/snaps/overrides/+ b/qa/suites/fs/snaps/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/snaps/overrides/+
diff --git a/qa/suites/fs/snaps/overrides/.qa b/qa/suites/fs/snaps/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/snaps/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/snaps/overrides/ignorelist_health.yaml b/qa/suites/fs/snaps/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/snaps/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/snaps/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/snaps/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/snaps/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/snaps/tasks/.qa b/qa/suites/fs/snaps/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/snaps/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/snaps/tasks/workunit/snaps.yaml b/qa/suites/fs/snaps/tasks/workunit/snaps.yaml
new file mode 100644
index 000000000..790c93c2b
--- /dev/null
+++ b/qa/suites/fs/snaps/tasks/workunit/snaps.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/snaps
diff --git a/qa/suites/fs/thrash/.qa b/qa/suites/fs/thrash/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/% b/qa/suites/fs/thrash/multifs/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/%
diff --git a/qa/suites/fs/thrash/multifs/.qa b/qa/suites/fs/thrash/multifs/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/begin.yaml b/qa/suites/fs/thrash/multifs/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/clusters/.qa b/qa/suites/fs/thrash/multifs/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/clusters/1a3s-mds-2c-client.yaml b/qa/suites/fs/thrash/multifs/clusters/1a3s-mds-2c-client.yaml
new file mode 120000
index 000000000..c190ea92f
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/clusters/1a3s-mds-2c-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1a3s-mds-2c-client.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/conf b/qa/suites/fs/thrash/multifs/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/distro b/qa/suites/fs/thrash/multifs/distro
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/distro
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/mount b/qa/suites/fs/thrash/multifs/mount
new file mode 120000
index 000000000..e3600f453
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/mount
@@ -0,0 +1 @@
+.qa/cephfs/mount/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/msgr-failures/.qa b/qa/suites/fs/thrash/multifs/msgr-failures/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/msgr-failures/none.yaml b/qa/suites/fs/thrash/multifs/msgr-failures/none.yaml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/msgr-failures/none.yaml
diff --git a/qa/suites/fs/thrash/multifs/msgr-failures/osd-mds-delay.yaml b/qa/suites/fs/thrash/multifs/msgr-failures/osd-mds-delay.yaml
new file mode 100644
index 000000000..17cbc5b90
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/msgr-failures/osd-mds-delay.yaml
@@ -0,0 +1,17 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ ms inject socket failures: 2500
+ ms inject delay type: client mds
+ ms inject delay probability: .005
+ ms inject delay max: 1
+ mon client directed command retry: 5
+ mds:
+ ms inject socket failures: 2500
+ ms inject delay type: client mds osd
+ ms inject delay probability: .005
+ ms inject delay max: 1
+ mon client directed command retry: 5
+ log-ignorelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/fs/thrash/multifs/objectstore/.qa b/qa/suites/fs/thrash/multifs/objectstore/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/objectstore/bluestore-bitmap.yaml b/qa/suites/fs/thrash/multifs/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 000000000..a59cf5175
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/overrides/+ b/qa/suites/fs/thrash/multifs/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/overrides/+
diff --git a/qa/suites/fs/thrash/multifs/overrides/.qa b/qa/suites/fs/thrash/multifs/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/overrides/frag.yaml b/qa/suites/fs/thrash/multifs/overrides/frag.yaml
new file mode 120000
index 000000000..5e5cdaed8
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/overrides/frag.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/overrides/ignorelist_health.yaml b/qa/suites/fs/thrash/multifs/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/thrash/multifs/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/overrides/multifs.yaml b/qa/suites/fs/thrash/multifs/overrides/multifs.yaml
new file mode 100644
index 000000000..faf7838c2
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/overrides/multifs.yaml
@@ -0,0 +1,16 @@
+overrides:
+ ceph:
+ cephfs:
+ fs:
+ - name: a
+ - name: b
+ ceph-fuse:
+ client.0:
+ cephfs_name: a
+ client.1:
+ cephfs_name: b
+ kclient:
+ client.0:
+ cephfs_name: a
+ client.1:
+ cephfs_name: b
diff --git a/qa/suites/fs/thrash/multifs/overrides/session_timeout.yaml b/qa/suites/fs/thrash/multifs/overrides/session_timeout.yaml
new file mode 120000
index 000000000..fce0318c5
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/overrides/session_timeout.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/session_timeout.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/overrides/thrashosds-health.yaml b/qa/suites/fs/thrash/multifs/overrides/thrashosds-health.yaml
new file mode 120000
index 000000000..9124eb1aa
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/overrides/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/tasks/% b/qa/suites/fs/thrash/multifs/tasks/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/tasks/%
diff --git a/qa/suites/fs/thrash/multifs/tasks/.qa b/qa/suites/fs/thrash/multifs/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/tasks/1-thrash/.qa b/qa/suites/fs/thrash/multifs/tasks/1-thrash/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/tasks/1-thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/tasks/1-thrash/mds.yaml b/qa/suites/fs/thrash/multifs/tasks/1-thrash/mds.yaml
new file mode 100644
index 000000000..33748cea5
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/tasks/1-thrash/mds.yaml
@@ -0,0 +1,7 @@
+tasks:
+- mds_thrash:
+
+overrides:
+ ceph:
+ log-ignorelist:
+ - Replacing daemon mds
diff --git a/qa/suites/fs/thrash/multifs/tasks/1-thrash/mon.yaml b/qa/suites/fs/thrash/multifs/tasks/1-thrash/mon.yaml
new file mode 100644
index 000000000..fbbe16151
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/tasks/1-thrash/mon.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - overall HEALTH_
+ - \(MON_DOWN\)
+tasks:
+- mon_thrash:
+ check_mds_failover: True
+ revive_delay: 20
+ thrash_delay: 10
diff --git a/qa/suites/fs/thrash/multifs/tasks/2-workunit/.qa b/qa/suites/fs/thrash/multifs/tasks/2-workunit/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/tasks/2-workunit/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_snaptests.yaml b/qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_snaptests.yaml
new file mode 100644
index 000000000..790c93c2b
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_snaptests.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/snaps
diff --git a/qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_suites_fsstress.yaml b/qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_suites_fsstress.yaml
new file mode 120000
index 000000000..c2e859fff
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_suites_fsstress.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_fsstress.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_suites_pjd.yaml b/qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_suites_pjd.yaml
new file mode 100644
index 000000000..f7784383b
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_suites_pjd.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse set user groups: true
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_trivial_sync.yaml b/qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_trivial_sync.yaml
new file mode 120000
index 000000000..a1df03277
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/tasks/2-workunit/cfuse_workunit_trivial_sync.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_trivial_sync.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/multifs/tasks/2-workunit/ffsb.yaml b/qa/suites/fs/thrash/multifs/tasks/2-workunit/ffsb.yaml
new file mode 100644
index 000000000..7e4f711a2
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/tasks/2-workunit/ffsb.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - SLOW_OPS
+ - slow request
+ conf:
+ osd:
+ filestore flush min: 0
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/ffsb.sh
diff --git a/qa/suites/fs/thrash/multifs/tasks/2-workunit/iozone.yaml b/qa/suites/fs/thrash/multifs/tasks/2-workunit/iozone.yaml
new file mode 100644
index 000000000..9270f3c51
--- /dev/null
+++ b/qa/suites/fs/thrash/multifs/tasks/2-workunit/iozone.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/iozone.sh
diff --git a/qa/suites/fs/thrash/workloads/% b/qa/suites/fs/thrash/workloads/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/%
diff --git a/qa/suites/fs/thrash/workloads/.qa b/qa/suites/fs/thrash/workloads/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/begin.yaml b/qa/suites/fs/thrash/workloads/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/clusters/.qa b/qa/suites/fs/thrash/workloads/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/clusters/1a5s-mds-1c-client.yaml b/qa/suites/fs/thrash/workloads/clusters/1a5s-mds-1c-client.yaml
new file mode 120000
index 000000000..2ab33af1c
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/clusters/1a5s-mds-1c-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1a5s-mds-1c-client.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/conf b/qa/suites/fs/thrash/workloads/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/distro b/qa/suites/fs/thrash/workloads/distro
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/distro
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/mount b/qa/suites/fs/thrash/workloads/mount
new file mode 120000
index 000000000..e3600f453
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/mount
@@ -0,0 +1 @@
+.qa/cephfs/mount/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/msgr-failures/.qa b/qa/suites/fs/thrash/workloads/msgr-failures/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/msgr-failures/none.yaml b/qa/suites/fs/thrash/workloads/msgr-failures/none.yaml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/msgr-failures/none.yaml
diff --git a/qa/suites/fs/thrash/workloads/msgr-failures/osd-mds-delay.yaml b/qa/suites/fs/thrash/workloads/msgr-failures/osd-mds-delay.yaml
new file mode 100644
index 000000000..17cbc5b90
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/msgr-failures/osd-mds-delay.yaml
@@ -0,0 +1,17 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ ms inject socket failures: 2500
+ ms inject delay type: client mds
+ ms inject delay probability: .005
+ ms inject delay max: 1
+ mon client directed command retry: 5
+ mds:
+ ms inject socket failures: 2500
+ ms inject delay type: client mds osd
+ ms inject delay probability: .005
+ ms inject delay max: 1
+ mon client directed command retry: 5
+ log-ignorelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/fs/thrash/workloads/objectstore-ec b/qa/suites/fs/thrash/workloads/objectstore-ec
new file mode 120000
index 000000000..affe29493
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/overrides/% b/qa/suites/fs/thrash/workloads/overrides/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/overrides/%
diff --git a/qa/suites/fs/thrash/workloads/overrides/.qa b/qa/suites/fs/thrash/workloads/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/overrides/frag.yaml b/qa/suites/fs/thrash/workloads/overrides/frag.yaml
new file mode 120000
index 000000000..5e5cdaed8
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/overrides/frag.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/overrides/ignorelist_health.yaml b/qa/suites/fs/thrash/workloads/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/thrash/workloads/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/overrides/prefetch_dirfrags/no.yaml b/qa/suites/fs/thrash/workloads/overrides/prefetch_dirfrags/no.yaml
new file mode 100644
index 000000000..91b453679
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/overrides/prefetch_dirfrags/no.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ mds:
+ mds oft prefetch dirfrags: false
diff --git a/qa/suites/fs/thrash/workloads/overrides/prefetch_dirfrags/yes.yaml b/qa/suites/fs/thrash/workloads/overrides/prefetch_dirfrags/yes.yaml
new file mode 100644
index 000000000..bd202f988
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/overrides/prefetch_dirfrags/yes.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ mds:
+ mds oft prefetch dirfrags: true
diff --git a/qa/suites/fs/thrash/workloads/overrides/races.yaml b/qa/suites/fs/thrash/workloads/overrides/races.yaml
new file mode 100644
index 000000000..e7d753896
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/overrides/races.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ mds:
+ mds_sleep_rank_change: 5000000.0
diff --git a/qa/suites/fs/thrash/workloads/overrides/session_timeout.yaml b/qa/suites/fs/thrash/workloads/overrides/session_timeout.yaml
new file mode 120000
index 000000000..fce0318c5
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/overrides/session_timeout.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/session_timeout.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/overrides/thrashosds-health.yaml b/qa/suites/fs/thrash/workloads/overrides/thrashosds-health.yaml
new file mode 120000
index 000000000..9124eb1aa
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/overrides/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/ranks/.qa b/qa/suites/fs/thrash/workloads/ranks/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/ranks/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/ranks/1.yaml b/qa/suites/fs/thrash/workloads/ranks/1.yaml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/ranks/1.yaml
diff --git a/qa/suites/fs/thrash/workloads/ranks/3.yaml b/qa/suites/fs/thrash/workloads/ranks/3.yaml
new file mode 100644
index 000000000..9ed043c14
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/ranks/3.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 3
+ check-counter:
+ counters:
+ mds:
+ - mds.exported
+ - mds.imported
diff --git a/qa/suites/fs/thrash/workloads/ranks/5.yaml b/qa/suites/fs/thrash/workloads/ranks/5.yaml
new file mode 100644
index 000000000..ed89cef3a
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/ranks/5.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 5
+ check-counter:
+ counters:
+ mds:
+ - mds.exported
+ - mds.imported
diff --git a/qa/suites/fs/thrash/workloads/tasks/% b/qa/suites/fs/thrash/workloads/tasks/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/%
diff --git a/qa/suites/fs/thrash/workloads/tasks/.qa b/qa/suites/fs/thrash/workloads/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/tasks/1-thrash/.qa b/qa/suites/fs/thrash/workloads/tasks/1-thrash/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/1-thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/tasks/1-thrash/mds.yaml b/qa/suites/fs/thrash/workloads/tasks/1-thrash/mds.yaml
new file mode 100644
index 000000000..33748cea5
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/1-thrash/mds.yaml
@@ -0,0 +1,7 @@
+tasks:
+- mds_thrash:
+
+overrides:
+ ceph:
+ log-ignorelist:
+ - Replacing daemon mds
diff --git a/qa/suites/fs/thrash/workloads/tasks/1-thrash/mon.yaml b/qa/suites/fs/thrash/workloads/tasks/1-thrash/mon.yaml
new file mode 100644
index 000000000..fbbe16151
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/1-thrash/mon.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - overall HEALTH_
+ - \(MON_DOWN\)
+tasks:
+- mon_thrash:
+ check_mds_failover: True
+ revive_delay: 20
+ thrash_delay: 10
diff --git a/qa/suites/fs/thrash/workloads/tasks/1-thrash/osd.yaml b/qa/suites/fs/thrash/workloads/tasks/1-thrash/osd.yaml
new file mode 100644
index 000000000..62e30ba23
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/1-thrash/osd.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - but it is still running
+ - objects unfound and apparently lost
+ - MDS_SLOW_METADATA_IO
+tasks:
+- thrashosds:
diff --git a/qa/suites/fs/thrash/workloads/tasks/2-workunit/.qa b/qa/suites/fs/thrash/workloads/tasks/2-workunit/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/2-workunit/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/tasks/2-workunit/fs/.qa b/qa/suites/fs/thrash/workloads/tasks/2-workunit/fs/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/2-workunit/fs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/tasks/2-workunit/fs/snaps.yaml b/qa/suites/fs/thrash/workloads/tasks/2-workunit/fs/snaps.yaml
new file mode 100644
index 000000000..790c93c2b
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/2-workunit/fs/snaps.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/snaps
diff --git a/qa/suites/fs/thrash/workloads/tasks/2-workunit/fs/trivial_sync.yaml b/qa/suites/fs/thrash/workloads/tasks/2-workunit/fs/trivial_sync.yaml
new file mode 120000
index 000000000..a1df03277
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/2-workunit/fs/trivial_sync.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_trivial_sync.yaml \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/.qa b/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/ffsb.yaml b/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/ffsb.yaml
new file mode 100644
index 000000000..7e4f711a2
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/ffsb.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - SLOW_OPS
+ - slow request
+ conf:
+ osd:
+ filestore flush min: 0
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/ffsb.sh
diff --git a/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/fsstress.yaml b/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/fsstress.yaml
new file mode 100644
index 000000000..bae220292
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/fsstress.yaml
@@ -0,0 +1,6 @@
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/fsstress.sh
diff --git a/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/iozone.yaml b/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/iozone.yaml
new file mode 100644
index 000000000..9270f3c51
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/iozone.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/iozone.sh
diff --git a/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/pjd.yaml b/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/pjd.yaml
new file mode 100644
index 000000000..f7784383b
--- /dev/null
+++ b/qa/suites/fs/thrash/workloads/tasks/2-workunit/suites/pjd.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse set user groups: true
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/fs/top/% b/qa/suites/fs/top/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/top/%
diff --git a/qa/suites/fs/top/.qa b/qa/suites/fs/top/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/top/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/top/begin.yaml b/qa/suites/fs/top/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/top/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/top/cluster/+ b/qa/suites/fs/top/cluster/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/top/cluster/+
diff --git a/qa/suites/fs/top/cluster/1-node.yaml b/qa/suites/fs/top/cluster/1-node.yaml
new file mode 100644
index 000000000..c5313bb04
--- /dev/null
+++ b/qa/suites/fs/top/cluster/1-node.yaml
@@ -0,0 +1,10 @@
+meta:
+- desc: 1 ceph cluster with 1 mon, 1 mgr, 3 osds, 1 mds
+roles:
+- - mon.a
+ - mgr.x
+ - mds.a
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
diff --git a/qa/suites/fs/top/mount/.qa b/qa/suites/fs/top/mount/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/top/mount/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/top/mount/fuse.yaml b/qa/suites/fs/top/mount/fuse.yaml
new file mode 120000
index 000000000..0e55da9fb
--- /dev/null
+++ b/qa/suites/fs/top/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/top/objectstore/.qa b/qa/suites/fs/top/objectstore/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/top/objectstore/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/top/objectstore/bluestore-bitmap.yaml b/qa/suites/fs/top/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 000000000..a59cf5175
--- /dev/null
+++ b/qa/suites/fs/top/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/top/overrides/.qa b/qa/suites/fs/top/overrides/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/top/overrides/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/top/overrides/ignorelist_health.yaml b/qa/suites/fs/top/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/top/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/top/supported-random-distros$ b/qa/suites/fs/top/supported-random-distros$
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/top/supported-random-distros$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/top/tasks/.qa b/qa/suites/fs/top/tasks/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/top/tasks/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/top/tasks/fstop.yaml b/qa/suites/fs/top/tasks/fstop.yaml
new file mode 100644
index 000000000..406f6804f
--- /dev/null
+++ b/qa/suites/fs/top/tasks/fstop.yaml
@@ -0,0 +1,4 @@
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_fstop
diff --git a/qa/suites/fs/traceless/% b/qa/suites/fs/traceless/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/traceless/%
diff --git a/qa/suites/fs/traceless/.qa b/qa/suites/fs/traceless/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/traceless/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/traceless/begin.yaml b/qa/suites/fs/traceless/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/traceless/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/clusters/.qa b/qa/suites/fs/traceless/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/traceless/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/traceless/clusters/fixed-2-ucephfs.yaml b/qa/suites/fs/traceless/clusters/fixed-2-ucephfs.yaml
new file mode 120000
index 000000000..b0c41a89a
--- /dev/null
+++ b/qa/suites/fs/traceless/clusters/fixed-2-ucephfs.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/fixed-2-ucephfs.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/conf b/qa/suites/fs/traceless/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/traceless/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/traceless/distro b/qa/suites/fs/traceless/distro
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/traceless/distro
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/traceless/mount/.qa b/qa/suites/fs/traceless/mount/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/traceless/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/traceless/mount/fuse.yaml b/qa/suites/fs/traceless/mount/fuse.yaml
new file mode 120000
index 000000000..0e55da9fb
--- /dev/null
+++ b/qa/suites/fs/traceless/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/objectstore-ec b/qa/suites/fs/traceless/objectstore-ec
new file mode 120000
index 000000000..affe29493
--- /dev/null
+++ b/qa/suites/fs/traceless/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/traceless/overrides/+ b/qa/suites/fs/traceless/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/traceless/overrides/+
diff --git a/qa/suites/fs/traceless/overrides/.qa b/qa/suites/fs/traceless/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/traceless/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/traceless/overrides/frag.yaml b/qa/suites/fs/traceless/overrides/frag.yaml
new file mode 120000
index 000000000..5e5cdaed8
--- /dev/null
+++ b/qa/suites/fs/traceless/overrides/frag.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/overrides/ignorelist_health.yaml b/qa/suites/fs/traceless/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/traceless/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/traceless/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/traceless/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/tasks/.qa b/qa/suites/fs/traceless/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/traceless/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_blogbench.yaml b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_blogbench.yaml
new file mode 120000
index 000000000..8702f4f3d
--- /dev/null
+++ b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_blogbench.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_blogbench.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_dbench.yaml b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_dbench.yaml
new file mode 120000
index 000000000..b0f876c3c
--- /dev/null
+++ b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_dbench.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_dbench.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_ffsb.yaml b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_ffsb.yaml
new file mode 120000
index 000000000..01e889b23
--- /dev/null
+++ b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_ffsb.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_ffsb.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_fsstress.yaml b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_fsstress.yaml
new file mode 120000
index 000000000..c2e859fff
--- /dev/null
+++ b/qa/suites/fs/traceless/tasks/cfuse_workunit_suites_fsstress.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_fsstress.yaml \ No newline at end of file
diff --git a/qa/suites/fs/traceless/traceless/.qa b/qa/suites/fs/traceless/traceless/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/traceless/traceless/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/traceless/traceless/50pc.yaml b/qa/suites/fs/traceless/traceless/50pc.yaml
new file mode 100644
index 000000000..e0418bcb2
--- /dev/null
+++ b/qa/suites/fs/traceless/traceless/50pc.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ mds:
+ mds inject traceless reply probability: .5
diff --git a/qa/suites/fs/upgrade/.qa b/qa/suites/fs/upgrade/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/.qa b/qa/suites/fs/upgrade/featureful_client/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/% b/qa/suites/fs/upgrade/featureful_client/old_client/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/%
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/.qa b/qa/suites/fs/upgrade/featureful_client/old_client/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/bluestore-bitmap.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/bluestore-bitmap.yaml
new file mode 120000
index 000000000..17ad98e79
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+../../../../../cephfs/objectstore-ec/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/centos_latest.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/centos_latest.yaml
new file mode 120000
index 000000000..bd9854e70
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/clusters/.qa b/qa/suites/fs/upgrade/featureful_client/old_client/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/clusters/1-mds-2-client-micro.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/clusters/1-mds-2-client-micro.yaml
new file mode 120000
index 000000000..feb68f343
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/clusters/1-mds-2-client-micro.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-2-client-micro.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/conf b/qa/suites/fs/upgrade/featureful_client/old_client/conf
new file mode 120000
index 000000000..6d4712984
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/% b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/%
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/.qa b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/ignorelist_health.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/.qa b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/no.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/no.yaml
new file mode 100644
index 000000000..f9e95daa9
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/no.yaml
@@ -0,0 +1,4 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 1
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/yes.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/yes.yaml
new file mode 100644
index 000000000..b3a9b5d67
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/yes.yaml
@@ -0,0 +1,4 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 2
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/overrides/pg-warn.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/pg-warn.yaml
new file mode 100644
index 000000000..4ae54a40d
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/overrides/pg-warn.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ mon pg warn min per osd: 0
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/% b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/%
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/.qa b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/0-nautilus.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/0-nautilus.yaml
new file mode 100644
index 000000000..6508bc642
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/0-nautilus.yaml
@@ -0,0 +1,43 @@
+meta:
+- desc: |
+ install ceph/nautilus latest
+tasks:
+- install:
+ branch: nautilus
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-rook
+ - ceph-mgr-cephadm
+ - cephadm
+ - ceph-immutable-object-cache
+ - python3-rados
+ - python3-rgw
+ - python3-rbd
+ - python3-cephfs
+ extra_packages: ['librados2']
+- print: "**** done installing nautilus"
+- ceph:
+ log-ignorelist:
+ - overall HEALTH_
+ - \(FS_
+ - \(MDS_
+ - \(OSD_
+ - \(MON_DOWN\)
+ - \(CACHE_POOL_
+ - \(POOL_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(SMALLER_PGP_NUM\)
+ - Monitor daemon marked osd
+ - Behind on trimming
+ - Manager daemon
+ conf:
+ global:
+ mon warn on pool no app: false
+ ms bind msgr2: false
+- exec:
+ osd.0:
+ - ceph osd set-require-min-compat-client nautilus
+- print: "**** done ceph"
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/1-client.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/1-client.yaml
new file mode 100644
index 000000000..50092616f
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/1-client.yaml
@@ -0,0 +1,8 @@
+tasks:
+- ceph-fuse:
+- print: "**** done nautilus client"
+- workunit:
+ clients:
+ all:
+ - suites/fsstress.sh
+- print: "**** done fsstress"
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/2-upgrade.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/2-upgrade.yaml
new file mode 100644
index 000000000..6e5ef0792
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/2-upgrade.yaml
@@ -0,0 +1,48 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - scrub mismatch
+ - ScrubResult
+ - wrongly marked
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(SLOW_OPS\)
+ - overall HEALTH_
+ - \(MON_MSGR2_NOT_ENABLED\)
+ - slow request
+ conf:
+ global:
+ bluestore warn on legacy statfs: false
+ bluestore warn on no per pool omap: false
+ mon:
+ mon warn on osd down out interval zero: false
+
+tasks:
+- mds_pre_upgrade:
+- print: "**** done mds pre-upgrade sequence"
+- install.upgrade:
+ mon.a:
+ mon.b:
+- print: "**** done install.upgrade both hosts"
+- ceph.restart:
+ daemons: [mon.*, mgr.*]
+ mon-health-to-clog: false
+ wait-for-healthy: false
+- ceph.healthy:
+- ceph.restart:
+ daemons: [osd.*]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- ceph.stop: [mds.*]
+- ceph.restart:
+ daemons: [mds.*]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- exec:
+ mon.a:
+ - ceph osd dump -f json-pretty
+ - ceph versions
+ - ceph osd require-osd-release pacific
+ - for f in `ceph osd pool ls` ; do ceph osd pool set $f pg_autoscale_mode off ; done
+ #- ceph osd set-require-min-compat-client nautilus
+- ceph.healthy:
+- print: "**** done ceph.restart"
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/.qa b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/no.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/no.yaml
new file mode 100644
index 000000000..b495eb41b
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/no.yaml
@@ -0,0 +1,6 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/fsstress.sh
+- print: "**** done fsstress"
diff --git a/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/pacific.yaml b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/pacific.yaml
new file mode 100644
index 000000000..138d8f4e2
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/old_client/tasks/3-compat_client/pacific.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - missing required features
+tasks:
+- exec:
+ mon.a:
+ - ceph fs dump --format=json-pretty
+ - ceph fs required_client_features cephfs add metric_collect
+- sleep:
+ duration: 5
+- fs.clients_evicted:
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/% b/qa/suites/fs/upgrade/featureful_client/upgraded_client/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/%
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/.qa b/qa/suites/fs/upgrade/featureful_client/upgraded_client/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/bluestore-bitmap.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/bluestore-bitmap.yaml
new file mode 120000
index 000000000..17ad98e79
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+../../../../../cephfs/objectstore-ec/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/centos_latest.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/centos_latest.yaml
new file mode 120000
index 000000000..bd9854e70
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/.qa b/qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/1-mds-2-client-micro.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/1-mds-2-client-micro.yaml
new file mode 120000
index 000000000..feb68f343
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/clusters/1-mds-2-client-micro.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-2-client-micro.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/conf b/qa/suites/fs/upgrade/featureful_client/upgraded_client/conf
new file mode 120000
index 000000000..6d4712984
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/% b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/%
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/.qa b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/ignorelist_health.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/.qa b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/no.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/no.yaml
new file mode 100644
index 000000000..f9e95daa9
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/no.yaml
@@ -0,0 +1,4 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 1
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/yes.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/yes.yaml
new file mode 100644
index 000000000..b3a9b5d67
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/yes.yaml
@@ -0,0 +1,4 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 2
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/pg-warn.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/pg-warn.yaml
new file mode 100644
index 000000000..4ae54a40d
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/pg-warn.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ mon pg warn min per osd: 0
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/% b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/%
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/.qa b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/0-nautilus.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/0-nautilus.yaml
new file mode 100644
index 000000000..6508bc642
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/0-nautilus.yaml
@@ -0,0 +1,43 @@
+meta:
+- desc: |
+ install ceph/nautilus latest
+tasks:
+- install:
+ branch: nautilus
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-rook
+ - ceph-mgr-cephadm
+ - cephadm
+ - ceph-immutable-object-cache
+ - python3-rados
+ - python3-rgw
+ - python3-rbd
+ - python3-cephfs
+ extra_packages: ['librados2']
+- print: "**** done installing nautilus"
+- ceph:
+ log-ignorelist:
+ - overall HEALTH_
+ - \(FS_
+ - \(MDS_
+ - \(OSD_
+ - \(MON_DOWN\)
+ - \(CACHE_POOL_
+ - \(POOL_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(SMALLER_PGP_NUM\)
+ - Monitor daemon marked osd
+ - Behind on trimming
+ - Manager daemon
+ conf:
+ global:
+ mon warn on pool no app: false
+ ms bind msgr2: false
+- exec:
+ osd.0:
+ - ceph osd set-require-min-compat-client nautilus
+- print: "**** done ceph"
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/1-client.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/1-client.yaml
new file mode 100644
index 000000000..d45fd6aeb
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/1-client.yaml
@@ -0,0 +1,11 @@
+nuke-on-error: false
+overrides:
+ nuke-on-error: false
+tasks:
+- ceph-fuse:
+- print: "**** done nautilus client"
+#- workunit:
+# clients:
+# all:
+# - suites/fsstress.sh
+- print: "**** done fsstress"
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/2-upgrade.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/2-upgrade.yaml
new file mode 100644
index 000000000..9d3f3c9ea
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/2-upgrade.yaml
@@ -0,0 +1,48 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - scrub mismatch
+ - ScrubResult
+ - wrongly marked
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(SLOW_OPS\)
+ - overall HEALTH_
+ - \(MON_MSGR2_NOT_ENABLED\)
+ - slow request
+ conf:
+ global:
+ bluestore warn on legacy statfs: false
+ bluestore warn on no per pool omap: false
+ mon:
+ mon warn on osd down out interval zero: false
+
+tasks:
+- mds_pre_upgrade:
+- print: "**** done mds pre-upgrade sequence"
+- install.upgrade:
+ mon.a:
+ mon.b:
+- print: "**** done install.upgrade both hosts"
+- ceph.restart:
+ daemons: [mon.*, mgr.*]
+ mon-health-to-clog: false
+ wait-for-healthy: false
+- ceph.healthy:
+- ceph.restart:
+ daemons: [osd.*]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- ceph.stop: [mds.*]
+- ceph.restart:
+ daemons: [mds.*]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- exec:
+ mon.a:
+ - ceph versions
+ - ceph osd dump -f json-pretty
+ - ceph osd require-osd-release pacific
+ - for f in `ceph osd pool ls` ; do ceph osd pool set $f pg_autoscale_mode off ; done
+ #- ceph osd set-require-min-compat-client nautilus
+- ceph.healthy:
+- print: "**** done ceph.restart"
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/3-client-upgrade.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/3-client-upgrade.yaml
new file mode 100644
index 000000000..58fdfdbd8
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/3-client-upgrade.yaml
@@ -0,0 +1,14 @@
+tasks:
+- install.upgrade:
+ client.0:
+- print: "**** done install.upgrade on client.0"
+- ceph-fuse:
+ client.0:
+ mounted: false
+ client.1:
+ skip: true
+- ceph-fuse:
+ client.0:
+ client.1:
+ skip: true
+- print: "**** done remount client"
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/4-compat_client.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/4-compat_client.yaml
new file mode 100644
index 000000000..0cbeaffdc
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/4-compat_client.yaml
@@ -0,0 +1,15 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - missing required features
+tasks:
+- exec:
+ mon.a:
+ - ceph fs dump --format=json-pretty
+ - ceph fs required_client_features cephfs add metric_collect
+- sleep:
+ duration: 5
+- fs.clients_evicted:
+ clients:
+ client.0: False
+ client.1: True
diff --git a/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/5-client-sanity.yaml b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/5-client-sanity.yaml
new file mode 100644
index 000000000..e206457e6
--- /dev/null
+++ b/qa/suites/fs/upgrade/featureful_client/upgraded_client/tasks/5-client-sanity.yaml
@@ -0,0 +1,6 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - suites/fsstress.sh
+- print: "**** done fsstress"
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/% b/qa/suites/fs/upgrade/mds_upgrade_sequence/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/%
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/.qa b/qa/suites/fs/upgrade/mds_upgrade_sequence/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/bluestore-bitmap.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/bluestore-bitmap.yaml
new file mode 120000
index 000000000..fb603bc9a
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/centos_8.stream_container_tools.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/centos_8.stream_container_tools.yaml
new file mode 120000
index 000000000..7a86f967f
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/centos_8.stream_container_tools.yaml
@@ -0,0 +1 @@
+.qa/distros/podman/centos_8.stream_container_tools.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/conf b/qa/suites/fs/upgrade/mds_upgrade_sequence/conf
new file mode 120000
index 000000000..6d4712984
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/% b/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/%
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/.qa b/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/ignorelist_health.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/pg-warn.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/pg-warn.yaml
new file mode 100644
index 000000000..4ae54a40d
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/overrides/pg-warn.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ mon pg warn min per osd: 0
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/roles.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/roles.yaml
new file mode 100644
index 000000000..bce4ecd34
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/roles.yaml
@@ -0,0 +1,11 @@
+roles:
+- - host.a
+ - client.0
+ - osd.0
+ - osd.1
+ - osd.2
+- - host.b
+ - client.1
+ - osd.3
+ - osd.4
+ - osd.5
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/% b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/%
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/.qa b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/0-from/.qa b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/0-from/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/0-from/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/0-from/v16.2.4.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/0-from/v16.2.4.yaml
new file mode 100644
index 000000000..47166a9af
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/0-from/v16.2.4.yaml
@@ -0,0 +1,30 @@
+meta:
+- desc: |
+ setup ceph/pacific v16.2.4
+
+tasks:
+# Disable metrics sending by kclient as it may crash (assert) a v16.2.4 MDS
+- pexec:
+ clients:
+ - sudo modprobe -r ceph
+ - sudo modprobe ceph disable_send_metrics=on
+- install:
+ tag: v16.2.4
+ exclude_packages:
+ - ceph-volume
+- print: "**** done install task..."
+- cephadm:
+ roleless: true
+ image: docker.io/ceph/ceph:v16.2.4
+ cephadm_branch: v16.2.4
+ cephadm_git_url: https://github.com/ceph/ceph
+ # needed for v16.2.4 due to --skip-admin-label
+ avoid_pacific_features: true
+- print: "**** done starting v16.2.4"
+- cephadm.shell:
+ host.a:
+ - ceph orch status
+ - ceph orch ps
+ - ceph orch ls
+ - ceph orch host ls
+ - ceph orch device ls
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/% b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/%
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/.qa b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/0-create.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/0-create.yaml
new file mode 100644
index 000000000..5ee0022c6
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/0-create.yaml
@@ -0,0 +1,5 @@
+tasks:
+- cephadm.shell:
+ host.a:
+ - ceph fs volume create cephfs --placement=4
+ - ceph fs dump
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/1-ranks/.qa b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/1-ranks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/1-ranks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/1-ranks/1.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/1-ranks/1.yaml
new file mode 100644
index 000000000..8c1cd2fe0
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/1-ranks/1.yaml
@@ -0,0 +1,4 @@
+tasks:
+- cephadm.shell:
+ host.a:
+ - ceph fs set cephfs max_mds 1
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/1-ranks/2.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/1-ranks/2.yaml
new file mode 100644
index 000000000..fcd3b1ea4
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/1-ranks/2.yaml
@@ -0,0 +1,4 @@
+tasks:
+- cephadm.shell:
+ host.a:
+ - ceph fs set cephfs max_mds 2
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/.qa b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/no.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/no.yaml
new file mode 100644
index 000000000..3dbc81089
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/no.yaml
@@ -0,0 +1,4 @@
+tasks:
+- cephadm.shell:
+ host.a:
+ - ceph fs set cephfs allow_standby_replay false
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/yes.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/yes.yaml
new file mode 100644
index 000000000..fb894425e
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/2-allow_standby_replay/yes.yaml
@@ -0,0 +1,4 @@
+tasks:
+- cephadm.shell:
+ host.a:
+ - ceph fs set cephfs allow_standby_replay true
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/3-inline/no.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/3-inline/no.yaml
new file mode 100644
index 000000000..107f30ecd
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/3-inline/no.yaml
@@ -0,0 +1,4 @@
+tasks:
+- cephadm.shell:
+ host.a:
+ - ceph fs set cephfs inline_data false
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/3-inline/yes.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/3-inline/yes.yaml
new file mode 100644
index 000000000..246ed71b4
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/3-inline/yes.yaml
@@ -0,0 +1,4 @@
+tasks:
+- cephadm.shell:
+ host.a:
+ - ceph fs set cephfs inline_data true --yes-i-really-really-mean-it
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/4-verify.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/4-verify.yaml
new file mode 100644
index 000000000..e71365ad1
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/1-volume/4-verify.yaml
@@ -0,0 +1,7 @@
+tasks:
+- cephadm.shell:
+ host.a:
+ - ceph fs dump
+ - ceph --format=json fs dump | jq -e ".filesystems | length == 1"
+ - while ! ceph --format=json mds versions | jq -e ". | add == 4"; do sleep 1; done
+- fs.pre_upgrade_save:
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/2-client.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/2-client.yaml
new file mode 100644
index 000000000..92b9dda84
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/2-client.yaml
@@ -0,0 +1,3 @@
+tasks:
+- kclient:
+- print: "**** done client"
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/3-upgrade-with-workload.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/3-upgrade-with-workload.yaml
new file mode 100644
index 000000000..457b7e3c7
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/3-upgrade-with-workload.yaml
@@ -0,0 +1,33 @@
+tasks:
+- parallel:
+ - upgrade-tasks
+ - workload-tasks
+
+upgrade-tasks:
+ sequential:
+ - cephadm.shell:
+ env: [sha1]
+ host.a:
+ - ceph config set mon mon_warn_on_insecure_global_id_reclaim false --force
+ - ceph config set mon mon_warn_on_insecure_global_id_reclaim_allowed false --force
+ - ceph config set global log_to_journald false --force
+ - ceph orch upgrade start --image quay.ceph.io/ceph-ci/ceph:$sha1
+ - cephadm.shell:
+ env: [sha1]
+ host.a:
+ - while ceph orch upgrade status | jq '.in_progress' | grep true && ! ceph orch upgrade status | jq '.message' | grep Error ; do ceph orch ps ; ceph versions ; ceph fs dump; ceph orch upgrade status ; sleep 30 ; done
+ - ceph orch ps
+ - ceph versions
+ - echo "wait for servicemap items w/ changing names to refresh"
+ - sleep 60
+ - ceph orch ps
+ - ceph versions
+ - ceph versions | jq -e '.overall | length == 1'
+ - ceph versions | jq -e '.overall | keys' | grep $sha1
+
+workload-tasks:
+ sequential:
+ - workunit:
+ clients:
+ all:
+ - suites/fsstress.sh
diff --git a/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/4-verify.yaml b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/4-verify.yaml
new file mode 100644
index 000000000..c2b657e5a
--- /dev/null
+++ b/qa/suites/fs/upgrade/mds_upgrade_sequence/tasks/4-verify.yaml
@@ -0,0 +1,5 @@
+tasks:
+- cephadm.shell:
+ host.a:
+ - ceph fs dump
+- fs.post_upgrade_checks:
diff --git a/qa/suites/fs/upgrade/nofs/% b/qa/suites/fs/upgrade/nofs/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/%
diff --git a/qa/suites/fs/upgrade/nofs/.qa b/qa/suites/fs/upgrade/nofs/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/nofs/README b/qa/suites/fs/upgrade/nofs/README
new file mode 100644
index 000000000..e7f6960ef
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/README
@@ -0,0 +1,3 @@
+This test just verifies that upgrades work with no file system present. In
+particular, catch that MDSMonitor doesn't blow up somehow with version
+mismatches.
diff --git a/qa/suites/fs/upgrade/nofs/bluestore-bitmap.yaml b/qa/suites/fs/upgrade/nofs/bluestore-bitmap.yaml
new file mode 120000
index 000000000..fb603bc9a
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/nofs/centos_latest.yaml b/qa/suites/fs/upgrade/nofs/centos_latest.yaml
new file mode 120000
index 000000000..bd9854e70
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/nofs/conf b/qa/suites/fs/upgrade/nofs/conf
new file mode 120000
index 000000000..6d4712984
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/nofs/no-mds-cluster.yaml b/qa/suites/fs/upgrade/nofs/no-mds-cluster.yaml
new file mode 100644
index 000000000..33c6fb16b
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/no-mds-cluster.yaml
@@ -0,0 +1,6 @@
+roles:
+- [mon.a, mon.b, mon.c, mgr.x, mgr.y, osd.0, osd.1, osd.2, osd.3]
+openstack:
+- volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
diff --git a/qa/suites/fs/upgrade/nofs/overrides/% b/qa/suites/fs/upgrade/nofs/overrides/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/overrides/%
diff --git a/qa/suites/fs/upgrade/nofs/overrides/.qa b/qa/suites/fs/upgrade/nofs/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/nofs/overrides/ignorelist_health.yaml b/qa/suites/fs/upgrade/nofs/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/nofs/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/upgrade/nofs/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/nofs/overrides/pg-warn.yaml b/qa/suites/fs/upgrade/nofs/overrides/pg-warn.yaml
new file mode 100644
index 000000000..4ae54a40d
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/overrides/pg-warn.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ mon pg warn min per osd: 0
diff --git a/qa/suites/fs/upgrade/nofs/tasks/% b/qa/suites/fs/upgrade/nofs/tasks/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/tasks/%
diff --git a/qa/suites/fs/upgrade/nofs/tasks/.qa b/qa/suites/fs/upgrade/nofs/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/nofs/tasks/0-octopus.yaml b/qa/suites/fs/upgrade/nofs/tasks/0-octopus.yaml
new file mode 100644
index 000000000..40d34753d
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/tasks/0-octopus.yaml
@@ -0,0 +1,38 @@
+meta:
+- desc: |
+ install ceph/octopus latest
+tasks:
+- install:
+ branch: octopus
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-rook
+ - ceph-mgr-cephadm
+ - cephadm
+ extra_packages: ['librados2']
+- print: "**** done installing octopus"
+- ceph:
+ log-ignorelist:
+ - overall HEALTH_
+ - \(FS_
+ - \(MDS_
+ - \(OSD_
+ - \(MON_DOWN\)
+ - \(CACHE_POOL_
+ - \(POOL_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(SMALLER_PGP_NUM\)
+ - Monitor daemon marked osd
+ - Behind on trimming
+ - Manager daemon
+ conf:
+ global:
+ mon warn on pool no app: false
+ ms bind msgr2: false
+- exec:
+ osd.0:
+ - ceph osd set-require-min-compat-client octopus
+- print: "**** done ceph"
diff --git a/qa/suites/fs/upgrade/nofs/tasks/1-upgrade.yaml b/qa/suites/fs/upgrade/nofs/tasks/1-upgrade.yaml
new file mode 100644
index 000000000..c27504ae8
--- /dev/null
+++ b/qa/suites/fs/upgrade/nofs/tasks/1-upgrade.yaml
@@ -0,0 +1,45 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - scrub mismatch
+ - ScrubResult
+ - wrongly marked
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(SLOW_OPS\)
+ - overall HEALTH_
+ - \(MON_MSGR2_NOT_ENABLED\)
+ - slow request
+ conf:
+ global:
+ bluestore warn on legacy statfs: false
+ bluestore warn on no per pool omap: false
+ mon:
+ mon warn on osd down out interval zero: false
+
+tasks:
+- print: "*** upgrading, no cephfs present"
+- exec:
+ mon.a:
+ - ceph fs dump
+- install.upgrade:
+ mon.a:
+- print: "**** done install.upgrade"
+- ceph.restart:
+ daemons: [mon.*, mgr.*]
+ mon-health-to-clog: false
+ wait-for-healthy: false
+- ceph.healthy:
+- ceph.restart:
+ daemons: [osd.*]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- exec:
+ mon.a:
+ - ceph versions
+ - ceph osd dump -f json-pretty
+ - ceph fs dump
+ - ceph osd require-osd-release pacific
+ - for f in `ceph osd pool ls` ; do ceph osd pool set $f pg_autoscale_mode off ; done
+ #- ceph osd set-require-min-compat-client octopus
+- ceph.healthy:
+- print: "**** done ceph.restart"
diff --git a/qa/suites/fs/upgrade/upgraded_client/.qa b/qa/suites/fs/upgrade/upgraded_client/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/% b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/%
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/.qa b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/bluestore-bitmap.yaml b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/bluestore-bitmap.yaml
new file mode 120000
index 000000000..17ad98e79
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+../../../../../cephfs/objectstore-ec/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/centos_latest.yaml b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/centos_latest.yaml
new file mode 120000
index 000000000..bd9854e70
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/clusters/% b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/clusters/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/clusters/%
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/clusters/.qa b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/clusters/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/clusters/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/clusters/1-mds-1-client-micro.yaml b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/clusters/1-mds-1-client-micro.yaml
new file mode 120000
index 000000000..50ffb6d53
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/clusters/1-mds-1-client-micro.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1-mds-1-client-micro.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/conf b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/conf
new file mode 120000
index 000000000..6d4712984
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/% b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/%
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/.qa b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/ignorelist_health.yaml b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/pg-warn.yaml b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/pg-warn.yaml
new file mode 100644
index 000000000..4ae54a40d
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/overrides/pg-warn.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ mon pg warn min per osd: 0
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/% b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/%
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/.qa b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/0-nautilus.yaml b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/0-nautilus.yaml
new file mode 100644
index 000000000..2b6d3753e
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/0-nautilus.yaml
@@ -0,0 +1,44 @@
+meta:
+- desc: |
+ install ceph/nautilus latest
+tasks:
+- install:
+ branch: nautilus
+ exclude_packages:
+ - cephadm
+ - ceph-mgr-cephadm
+ - ceph-immutable-object-cache
+ - python3-rados
+ - python3-rgw
+ - python3-rbd
+ - python3-cephfs
+ - ceph-volume
+ extra_packages:
+ - python-rados
+ - python-rgw
+ - python-rbd
+ - python-cephfs
+- print: "**** done installing nautilus"
+- ceph:
+ log-ignorelist:
+ - overall HEALTH_
+ - \(FS_
+ - \(MDS_
+ - \(OSD_
+ - \(MON_DOWN\)
+ - \(CACHE_POOL_
+ - \(POOL_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(SMALLER_PGP_NUM\)
+ - Monitor daemon marked osd
+ - Behind on trimming
+ - Manager daemon
+ conf:
+ global:
+ mon warn on pool no app: false
+ ms bind msgr2: false
+- exec:
+ osd.0:
+ - ceph osd set-require-min-compat-client nautilus
+- print: "**** done ceph"
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/1-client-upgrade.yaml b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/1-client-upgrade.yaml
new file mode 100644
index 000000000..99b99e642
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/1-client-upgrade.yaml
@@ -0,0 +1,7 @@
+tasks:
+- install.upgrade:
+ client.0:
+- print: "**** done install.upgrade on client.0"
+- ceph-fuse:
+ client.0:
+- print: "**** done remount client"
diff --git a/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/2-client-sanity.yaml b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/2-client-sanity.yaml
new file mode 100644
index 000000000..9508cce65
--- /dev/null
+++ b/qa/suites/fs/upgrade/upgraded_client/from_nautilus/tasks/2-client-sanity.yaml
@@ -0,0 +1,4 @@
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_newops
diff --git a/qa/suites/fs/upgrade/volumes/.qa b/qa/suites/fs/upgrade/volumes/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/% b/qa/suites/fs/upgrade/volumes/import-legacy/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/%
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/.qa b/qa/suites/fs/upgrade/volumes/import-legacy/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/bluestore-bitmap.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/bluestore-bitmap.yaml
new file mode 120000
index 000000000..17ad98e79
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+../../../../../cephfs/objectstore-ec/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/clusters/.qa b/qa/suites/fs/upgrade/volumes/import-legacy/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/clusters/1-mds-2-client-micro.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/clusters/1-mds-2-client-micro.yaml
new file mode 100644
index 000000000..9b443f7d2
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/clusters/1-mds-2-client-micro.yaml
@@ -0,0 +1,7 @@
+roles:
+- [mon.a, mon.b, mon.c, mgr.x, mgr.y, mds.a, mds.b, mds.c, osd.0, osd.1, osd.2, osd.3]
+- [client.0, client.1]
+openstack:
+- volumes: # attached to each instance
+ count: 4
+ size: 10 # GB
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/conf b/qa/suites/fs/upgrade/volumes/import-legacy/conf
new file mode 120000
index 000000000..6d4712984
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/overrides/+ b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/+
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/overrides/.qa b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/overrides/ignorelist_health.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/overrides/pg-warn.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/pg-warn.yaml
new file mode 100644
index 000000000..4ae54a40d
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/overrides/pg-warn.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ mon pg warn min per osd: 0
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/tasks/% b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/%
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/tasks/.qa b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/tasks/0-nautilus.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/0-nautilus.yaml
new file mode 100644
index 000000000..548980309
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/0-nautilus.yaml
@@ -0,0 +1,45 @@
+meta:
+- desc: |
+ install ceph/nautilus latest
+tasks:
+- install:
+ branch: nautilus #tag: v13.2.8
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-rook
+ - ceph-mgr-cephadm
+ - cephadm
+ - ceph-immutable-object-cache
+ extra_packages:
+ - librados2
+ - python3-rados
+ - python3-rgw
+ - python3-rbd
+ - python3-cephfs
+- print: "**** done installing nautilus"
+- ceph:
+ log-ignorelist:
+ - overall HEALTH_
+ - \(FS_
+ - \(MDS_
+ - \(OSD_
+ - \(MON_DOWN\)
+ - \(CACHE_POOL_
+ - \(POOL_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(SMALLER_PGP_NUM\)
+ - Monitor daemon marked osd
+ - Behind on trimming
+ - Manager daemon
+ conf:
+ global:
+ mon warn on pool no app: false
+ ms bind msgr2: false
+- exec:
+ osd.0:
+ - ceph osd require-osd-release nautilus
+ - ceph osd set-require-min-compat-client nautilus
+- print: "**** done ceph"
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/tasks/1-client.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/1-client.yaml
new file mode 100644
index 000000000..82731071f
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/1-client.yaml
@@ -0,0 +1,33 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - fs/upgrade/volume_client
+ env:
+ ACTION: create
+- print: "**** fs/volume_client create"
+- ceph-fuse:
+ client.0:
+ mount_path: /volumes/_nogroup/vol_isolated
+ mountpoint: mnt.0
+ auth_id: vol_data_isolated
+ client.1:
+ mount_path: /volumes/_nogroup/vol_default
+ mountpoint: mnt.1
+ auth_id: vol_default
+- print: "**** ceph-fuse vol_isolated"
+- workunit:
+ clients:
+ client.0:
+ - fs/upgrade/volume_client
+ env:
+ ACTION: populate
+ cleanup: false
+- workunit:
+ clients:
+ client.1:
+ - fs/upgrade/volume_client
+ env:
+ ACTION: populate
+ cleanup: false
+- print: "**** fs/volume_client populate"
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/tasks/2-upgrade.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/2-upgrade.yaml
new file mode 100644
index 000000000..053a4e236
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/2-upgrade.yaml
@@ -0,0 +1,47 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - scrub mismatch
+ - ScrubResult
+ - wrongly marked
+ - \(POOL_APP_NOT_ENABLED\)
+ - \(SLOW_OPS\)
+ - overall HEALTH_
+ - \(MON_MSGR2_NOT_ENABLED\)
+ - slow request
+ conf:
+ global:
+ bluestore warn on legacy statfs: false
+ bluestore warn on no per pool omap: false
+ mon:
+ mon warn on osd down out interval zero: false
+
+tasks:
+- mds_pre_upgrade:
+- print: "**** done mds pre-upgrade sequence"
+- install.upgrade:
+ mon.a:
+- print: "**** done install.upgrade both hosts"
+- ceph.restart:
+ daemons: [mon.*, mgr.*]
+ mon-health-to-clog: false
+ wait-for-healthy: false
+- ceph.healthy:
+- ceph.restart:
+ daemons: [osd.*]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- ceph.stop: [mds.*]
+- ceph.restart:
+ daemons: [mds.*]
+ wait-for-healthy: false
+ wait-for-osds-up: true
+- exec:
+ mon.a:
+ - ceph versions
+ - ceph osd dump -f json-pretty
+ - ceph osd require-osd-release pacific
+ - for f in `ceph osd pool ls` ; do ceph osd pool set $f pg_autoscale_mode off ; done
+ #- ceph osd set-require-min-compat-client nautilus
+- ceph.healthy:
+- print: "**** done ceph.restart"
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/tasks/3-verify.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/3-verify.yaml
new file mode 100644
index 000000000..a9b184b54
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/tasks/3-verify.yaml
@@ -0,0 +1,25 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - missing required features
+tasks:
+- exec:
+ mon.a:
+ - ceph fs dump --format=json-pretty
+ - ceph fs volume ls
+ - ceph fs subvolume ls cephfs
+- workunit:
+ clients:
+ client.0:
+ - fs/upgrade/volume_client
+ env:
+ ACTION: verify
+ cleanup: true
+- workunit:
+ clients:
+ client.1:
+ - fs/upgrade/volume_client
+ env:
+ ACTION: verify
+ cleanup: true
+- print: "**** fs/volume_client verify"
diff --git a/qa/suites/fs/upgrade/volumes/import-legacy/ubuntu_18.04.yaml b/qa/suites/fs/upgrade/volumes/import-legacy/ubuntu_18.04.yaml
new file mode 120000
index 000000000..cfb85f10e
--- /dev/null
+++ b/qa/suites/fs/upgrade/volumes/import-legacy/ubuntu_18.04.yaml
@@ -0,0 +1 @@
+.qa/distros/all/ubuntu_18.04.yaml \ No newline at end of file
diff --git a/qa/suites/fs/valgrind/% b/qa/suites/fs/valgrind/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/valgrind/%
diff --git a/qa/suites/fs/valgrind/.qa b/qa/suites/fs/valgrind/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/valgrind/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/valgrind/begin.yaml b/qa/suites/fs/valgrind/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/valgrind/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/valgrind/centos_latest.yaml b/qa/suites/fs/valgrind/centos_latest.yaml
new file mode 120000
index 000000000..bd9854e70
--- /dev/null
+++ b/qa/suites/fs/valgrind/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/fs/valgrind/debug.yaml b/qa/suites/fs/valgrind/debug.yaml
new file mode 100644
index 000000000..5eed99cbb
--- /dev/null
+++ b/qa/suites/fs/valgrind/debug.yaml
@@ -0,0 +1,4 @@
+overrides:
+ install:
+ ceph:
+ debuginfo: true
diff --git a/qa/suites/fs/valgrind/mirror/% b/qa/suites/fs/valgrind/mirror/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/valgrind/mirror/%
diff --git a/qa/suites/fs/valgrind/mirror/.qa b/qa/suites/fs/valgrind/mirror/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/valgrind/mirror/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/valgrind/mirror/cephfs-mirror/one-per-cluster.yaml b/qa/suites/fs/valgrind/mirror/cephfs-mirror/one-per-cluster.yaml
new file mode 100644
index 000000000..4112a0af0
--- /dev/null
+++ b/qa/suites/fs/valgrind/mirror/cephfs-mirror/one-per-cluster.yaml
@@ -0,0 +1,7 @@
+meta:
+- desc: run one cephfs-mirror daemon on primary cluster
+
+tasks:
+- cephfs-mirror:
+ client: client.mirror
+ valgrind: [--tool=memcheck, --leak-check=full, --show-reachable=yes]
diff --git a/qa/suites/fs/valgrind/mirror/clients/mirror.yaml b/qa/suites/fs/valgrind/mirror/clients/mirror.yaml
new file mode 100644
index 000000000..1a68fea8b
--- /dev/null
+++ b/qa/suites/fs/valgrind/mirror/clients/mirror.yaml
@@ -0,0 +1,18 @@
+meta:
+- desc: configure the permissions for client.mirror
+overrides:
+ ceph:
+ conf:
+ client:
+ debug cephfs_mirror: 20
+ log to stderr: false
+ # make these predictable
+ client.mirror:
+ admin socket: /var/run/ceph/cephfs-mirror.asok
+ pid file: /var/run/ceph/cephfs-mirror.pid
+tasks:
+- exec:
+ client.mirror:
+ - "sudo ceph auth caps client.mirror mon 'profile cephfs-mirror' mds 'allow r' osd 'allow rw tag cephfs metadata=*, allow r tag cephfs data=*' mgr 'allow r'"
+ client.mirror_remote:
+ - "sudo ceph auth caps client.mirror_remote mon 'allow r' mds 'allow rwps' osd 'allow rw tag cephfs *=*' mgr 'allow r'"
diff --git a/qa/suites/fs/valgrind/mirror/cluster/1-node.yaml b/qa/suites/fs/valgrind/mirror/cluster/1-node.yaml
new file mode 100644
index 000000000..cae4aca5e
--- /dev/null
+++ b/qa/suites/fs/valgrind/mirror/cluster/1-node.yaml
@@ -0,0 +1,17 @@
+meta:
+- desc: 1 ceph cluster with 1 mon, 1 mgr, 3 osds, 5 mdss
+roles:
+- - mon.a
+ - mgr.x
+ - mds.a
+ - mds.b
+ - mds.c
+ - mds.d
+ - mds.e
+ - osd.0
+ - osd.1
+ - osd.2
+ - client.0
+ - client.1
+ - client.mirror
+ - client.mirror_remote
diff --git a/qa/suites/fs/valgrind/mirror/mount/fuse.yaml b/qa/suites/fs/valgrind/mirror/mount/fuse.yaml
new file mode 100644
index 000000000..1fdf55ab4
--- /dev/null
+++ b/qa/suites/fs/valgrind/mirror/mount/fuse.yaml
@@ -0,0 +1,2 @@
+tasks:
+ - ceph-fuse: [client.0, client.1]
diff --git a/qa/suites/fs/valgrind/mirror/overrides/.qa b/qa/suites/fs/valgrind/mirror/overrides/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/valgrind/mirror/overrides/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/valgrind/mirror/overrides/whitelist_health.yaml b/qa/suites/fs/valgrind/mirror/overrides/whitelist_health.yaml
new file mode 100644
index 000000000..d40fa4cb8
--- /dev/null
+++ b/qa/suites/fs/valgrind/mirror/overrides/whitelist_health.yaml
@@ -0,0 +1,14 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - overall HEALTH_
+ - \(FS_DEGRADED\)
+ - \(MDS_FAILED\)
+ - \(MDS_DEGRADED\)
+ - \(FS_WITH_FAILED_MDS\)
+ - \(MDS_DAMAGE\)
+ - \(MDS_ALL_DOWN\)
+ - \(MDS_UP_LESS_THAN_MAX\)
+ - \(FS_INLINE_DATA_DEPRECATED\)
+ - Reduced data availability
+ - Degraded data redundancy
diff --git a/qa/suites/fs/valgrind/mirror/tasks/mirror.yaml b/qa/suites/fs/valgrind/mirror/tasks/mirror.yaml
new file mode 100644
index 000000000..07c1e24ef
--- /dev/null
+++ b/qa/suites/fs/valgrind/mirror/tasks/mirror.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ conf:
+ mgr:
+ debug client: 10
+
+tasks:
+ - cephfs_test_runner:
+ modules:
+ - tasks.cephfs.test_mirroring.TestMirroring
diff --git a/qa/suites/fs/verify/% b/qa/suites/fs/verify/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/verify/%
diff --git a/qa/suites/fs/verify/.qa b/qa/suites/fs/verify/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/verify/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/begin.yaml b/qa/suites/fs/verify/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/verify/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/clusters/.qa b/qa/suites/fs/verify/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/verify/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/clusters/1a5s-mds-1c-client.yaml b/qa/suites/fs/verify/clusters/1a5s-mds-1c-client.yaml
new file mode 120000
index 000000000..2ab33af1c
--- /dev/null
+++ b/qa/suites/fs/verify/clusters/1a5s-mds-1c-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1a5s-mds-1c-client.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/conf b/qa/suites/fs/verify/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/verify/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/verify/distro/$ b/qa/suites/fs/verify/distro/$
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/verify/distro/$
diff --git a/qa/suites/fs/verify/distro/.qa b/qa/suites/fs/verify/distro/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/verify/distro/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/distro/centos_8.yaml b/qa/suites/fs/verify/distro/centos_8.yaml
new file mode 120000
index 000000000..380a1443b
--- /dev/null
+++ b/qa/suites/fs/verify/distro/centos_8.yaml
@@ -0,0 +1 @@
+.qa/distros/all/centos_8.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/distro/rhel_8.yaml b/qa/suites/fs/verify/distro/rhel_8.yaml
new file mode 120000
index 000000000..133acf27b
--- /dev/null
+++ b/qa/suites/fs/verify/distro/rhel_8.yaml
@@ -0,0 +1 @@
+.qa/distros/all/rhel_8.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/distro/ubuntu/+ b/qa/suites/fs/verify/distro/ubuntu/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/verify/distro/ubuntu/+
diff --git a/qa/suites/fs/verify/distro/ubuntu/.qa b/qa/suites/fs/verify/distro/ubuntu/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/verify/distro/ubuntu/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/distro/ubuntu/latest.yaml b/qa/suites/fs/verify/distro/ubuntu/latest.yaml
new file mode 120000
index 000000000..162964882
--- /dev/null
+++ b/qa/suites/fs/verify/distro/ubuntu/latest.yaml
@@ -0,0 +1 @@
+.qa/distros/all/ubuntu_20.04.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/distro/ubuntu/overrides.yaml b/qa/suites/fs/verify/distro/ubuntu/overrides.yaml
new file mode 100644
index 000000000..fdd7f5e5a
--- /dev/null
+++ b/qa/suites/fs/verify/distro/ubuntu/overrides.yaml
@@ -0,0 +1,4 @@
+overrides:
+ ceph:
+ valgrind:
+ exit_on_first_error: false
diff --git a/qa/suites/fs/verify/mount/.qa b/qa/suites/fs/verify/mount/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/verify/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/mount/fuse.yaml b/qa/suites/fs/verify/mount/fuse.yaml
new file mode 120000
index 000000000..0e55da9fb
--- /dev/null
+++ b/qa/suites/fs/verify/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/mount/kclient/+ b/qa/suites/fs/verify/mount/kclient/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/verify/mount/kclient/+
diff --git a/qa/suites/fs/verify/mount/kclient/.qa b/qa/suites/fs/verify/mount/kclient/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/verify/mount/kclient/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/mount/kclient/k-testing.yaml b/qa/suites/fs/verify/mount/kclient/k-testing.yaml
new file mode 120000
index 000000000..bec80be29
--- /dev/null
+++ b/qa/suites/fs/verify/mount/kclient/k-testing.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/kclient/overrides/distro/testing/k-testing.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/mount/kclient/mount.yaml b/qa/suites/fs/verify/mount/kclient/mount.yaml
new file mode 120000
index 000000000..9967f23e2
--- /dev/null
+++ b/qa/suites/fs/verify/mount/kclient/mount.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/kclient/mount.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/mount/kclient/ms-die-on-skipped.yaml b/qa/suites/fs/verify/mount/kclient/ms-die-on-skipped.yaml
new file mode 120000
index 000000000..1912a0c91
--- /dev/null
+++ b/qa/suites/fs/verify/mount/kclient/ms-die-on-skipped.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/kclient/overrides/ms-die-on-skipped.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/objectstore-ec b/qa/suites/fs/verify/objectstore-ec
new file mode 120000
index 000000000..affe29493
--- /dev/null
+++ b/qa/suites/fs/verify/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/verify/overrides/+ b/qa/suites/fs/verify/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/verify/overrides/+
diff --git a/qa/suites/fs/verify/overrides/.qa b/qa/suites/fs/verify/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/verify/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/overrides/ignorelist_health.yaml b/qa/suites/fs/verify/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/verify/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/verify/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/verify/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/overrides/mon-debug.yaml b/qa/suites/fs/verify/overrides/mon-debug.yaml
new file mode 100644
index 000000000..6ed3e6d52
--- /dev/null
+++ b/qa/suites/fs/verify/overrides/mon-debug.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ mon:
+ debug ms: 1
+ debug mon: 20
diff --git a/qa/suites/fs/verify/overrides/session_timeout.yaml b/qa/suites/fs/verify/overrides/session_timeout.yaml
new file mode 120000
index 000000000..fce0318c5
--- /dev/null
+++ b/qa/suites/fs/verify/overrides/session_timeout.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/session_timeout.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/ranks/.qa b/qa/suites/fs/verify/ranks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/verify/ranks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/ranks/1.yaml b/qa/suites/fs/verify/ranks/1.yaml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/verify/ranks/1.yaml
diff --git a/qa/suites/fs/verify/ranks/3.yaml b/qa/suites/fs/verify/ranks/3.yaml
new file mode 100644
index 000000000..9ed043c14
--- /dev/null
+++ b/qa/suites/fs/verify/ranks/3.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 3
+ check-counter:
+ counters:
+ mds:
+ - mds.exported
+ - mds.imported
diff --git a/qa/suites/fs/verify/ranks/5.yaml b/qa/suites/fs/verify/ranks/5.yaml
new file mode 100644
index 000000000..ed89cef3a
--- /dev/null
+++ b/qa/suites/fs/verify/ranks/5.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 5
+ check-counter:
+ counters:
+ mds:
+ - mds.exported
+ - mds.imported
diff --git a/qa/suites/fs/verify/tasks/.qa b/qa/suites/fs/verify/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/verify/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/tasks/dbench.yaml b/qa/suites/fs/verify/tasks/dbench.yaml
new file mode 120000
index 000000000..b0f876c3c
--- /dev/null
+++ b/qa/suites/fs/verify/tasks/dbench.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_dbench.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/tasks/fsstress.yaml b/qa/suites/fs/verify/tasks/fsstress.yaml
new file mode 120000
index 000000000..c2e859fff
--- /dev/null
+++ b/qa/suites/fs/verify/tasks/fsstress.yaml
@@ -0,0 +1 @@
+.qa/cephfs/tasks/cfuse_workunit_suites_fsstress.yaml \ No newline at end of file
diff --git a/qa/suites/fs/verify/validater/.qa b/qa/suites/fs/verify/validater/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/verify/validater/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/verify/validater/lockdep.yaml b/qa/suites/fs/verify/validater/lockdep.yaml
new file mode 100644
index 000000000..25f84355c
--- /dev/null
+++ b/qa/suites/fs/verify/validater/lockdep.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ lockdep: true
diff --git a/qa/suites/fs/verify/validater/valgrind.yaml b/qa/suites/fs/verify/validater/valgrind.yaml
new file mode 100644
index 000000000..930872fc7
--- /dev/null
+++ b/qa/suites/fs/verify/validater/valgrind.yaml
@@ -0,0 +1,29 @@
+overrides:
+ install:
+ ceph:
+ debuginfo: true
+ ceph:
+ # Valgrind makes everything slow, so ignore slow requests and extend heartbeat grace
+ log-ignorelist:
+ - slow request
+ - SLOW_OPS
+ - MON_DOWN
+ conf:
+ global:
+ osd heartbeat grace: 60
+ mds heartbeat grace: 60
+ mds beacon grace: 60
+ mds:
+ mds valgrind exit: true
+ mon:
+ mon osd crush smoke test: false
+ osd:
+ osd fast shutdown: false
+ valgrind:
+ mon: [--tool=memcheck, --leak-check=full, --show-reachable=yes]
+ mds: [--tool=memcheck]
+ watchdog:
+ daemon_restart: normal
+ ceph-fuse:
+ client.0:
+ valgrind: [--tool=memcheck, --leak-check=full, --show-reachable=yes]
diff --git a/qa/suites/fs/volumes/% b/qa/suites/fs/volumes/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/volumes/%
diff --git a/qa/suites/fs/volumes/.qa b/qa/suites/fs/volumes/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/volumes/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/volumes/begin.yaml b/qa/suites/fs/volumes/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/volumes/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/volumes/clusters/.qa b/qa/suites/fs/volumes/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/volumes/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/volumes/clusters/1a3s-mds-4c-client.yaml b/qa/suites/fs/volumes/clusters/1a3s-mds-4c-client.yaml
new file mode 120000
index 000000000..5c722a30b
--- /dev/null
+++ b/qa/suites/fs/volumes/clusters/1a3s-mds-4c-client.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1a3s-mds-4c-client.yaml \ No newline at end of file
diff --git a/qa/suites/fs/volumes/conf b/qa/suites/fs/volumes/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/volumes/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/volumes/distro b/qa/suites/fs/volumes/distro
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/volumes/distro
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/volumes/mount b/qa/suites/fs/volumes/mount
new file mode 120000
index 000000000..e3600f453
--- /dev/null
+++ b/qa/suites/fs/volumes/mount
@@ -0,0 +1 @@
+.qa/cephfs/mount/ \ No newline at end of file
diff --git a/qa/suites/fs/volumes/objectstore/.qa b/qa/suites/fs/volumes/objectstore/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/volumes/objectstore/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/volumes/objectstore/bluestore-bitmap.yaml b/qa/suites/fs/volumes/objectstore/bluestore-bitmap.yaml
new file mode 120000
index 000000000..a59cf5175
--- /dev/null
+++ b/qa/suites/fs/volumes/objectstore/bluestore-bitmap.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/fs/volumes/overrides/+ b/qa/suites/fs/volumes/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/volumes/overrides/+
diff --git a/qa/suites/fs/volumes/overrides/.qa b/qa/suites/fs/volumes/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/volumes/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/volumes/overrides/ignorelist_health.yaml b/qa/suites/fs/volumes/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/volumes/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/volumes/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/volumes/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/volumes/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/volumes/overrides/no_client_pidfile.yaml b/qa/suites/fs/volumes/overrides/no_client_pidfile.yaml
new file mode 120000
index 000000000..8888f3327
--- /dev/null
+++ b/qa/suites/fs/volumes/overrides/no_client_pidfile.yaml
@@ -0,0 +1 @@
+.qa/overrides/no_client_pidfile.yaml \ No newline at end of file
diff --git a/qa/suites/fs/volumes/tasks/.qa b/qa/suites/fs/volumes/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/volumes/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/volumes/tasks/volume-client.yaml b/qa/suites/fs/volumes/tasks/volume-client.yaml
new file mode 100644
index 000000000..04ee27657
--- /dev/null
+++ b/qa/suites/fs/volumes/tasks/volume-client.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - MON_DOWN
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_volume_client
diff --git a/qa/suites/fs/volumes/tasks/volumes/% b/qa/suites/fs/volumes/tasks/volumes/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/volumes/tasks/volumes/%
diff --git a/qa/suites/fs/volumes/tasks/volumes/overrides.yaml b/qa/suites/fs/volumes/tasks/volumes/overrides.yaml
new file mode 100644
index 000000000..fb15e5079
--- /dev/null
+++ b/qa/suites/fs/volumes/tasks/volumes/overrides.yaml
@@ -0,0 +1,17 @@
+overrides:
+ ceph:
+ conf:
+ mgr:
+ debug client: 20
+ debug ms: 1
+ debug finisher: 20
+ debug mgr: 20
+ log-ignorelist:
+ - OSD full dropping all updates
+ - OSD near full
+ - pausewr flag
+ - failsafe engaged, dropping updates
+ - failsafe disengaged, no longer dropping
+ - is full \(reached quota
+ - POOL_FULL
+ - POOL_BACKFILLFULL
diff --git a/qa/suites/fs/volumes/tasks/volumes/test/basic.yaml b/qa/suites/fs/volumes/tasks/volumes/test/basic.yaml
new file mode 100644
index 000000000..3e54df2a9
--- /dev/null
+++ b/qa/suites/fs/volumes/tasks/volumes/test/basic.yaml
@@ -0,0 +1,7 @@
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_volumes.TestVolumes
+ - tasks.cephfs.test_volumes.TestSubvolumeGroups
+ - tasks.cephfs.test_volumes.TestSubvolumes
diff --git a/qa/suites/fs/volumes/tasks/volumes/test/clone.yaml b/qa/suites/fs/volumes/tasks/volumes/test/clone.yaml
new file mode 100644
index 000000000..e0c1f0150
--- /dev/null
+++ b/qa/suites/fs/volumes/tasks/volumes/test/clone.yaml
@@ -0,0 +1,5 @@
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_volumes.TestSubvolumeSnapshotClones
diff --git a/qa/suites/fs/volumes/tasks/volumes/test/misc.yaml b/qa/suites/fs/volumes/tasks/volumes/test/misc.yaml
new file mode 100644
index 000000000..1f6fd2b2d
--- /dev/null
+++ b/qa/suites/fs/volumes/tasks/volumes/test/misc.yaml
@@ -0,0 +1,5 @@
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_volumes.TestMisc
diff --git a/qa/suites/fs/volumes/tasks/volumes/test/snapshot.yaml b/qa/suites/fs/volumes/tasks/volumes/test/snapshot.yaml
new file mode 100644
index 000000000..d68201137
--- /dev/null
+++ b/qa/suites/fs/volumes/tasks/volumes/test/snapshot.yaml
@@ -0,0 +1,6 @@
+tasks:
+ - cephfs_test_runner:
+ fail_on_skip: false
+ modules:
+ - tasks.cephfs.test_volumes.TestSubvolumeGroupSnapshots
+ - tasks.cephfs.test_volumes.TestSubvolumeSnapshots
diff --git a/qa/suites/fs/workload/% b/qa/suites/fs/workload/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/%
diff --git a/qa/suites/fs/workload/.qa b/qa/suites/fs/workload/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/begin.yaml b/qa/suites/fs/workload/begin.yaml
new file mode 120000
index 000000000..311d404f7
--- /dev/null
+++ b/qa/suites/fs/workload/begin.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/clusters/.qa b/qa/suites/fs/workload/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/clusters/1a11s-mds-1c-client-3node.yaml b/qa/suites/fs/workload/clusters/1a11s-mds-1c-client-3node.yaml
new file mode 120000
index 000000000..884134573
--- /dev/null
+++ b/qa/suites/fs/workload/clusters/1a11s-mds-1c-client-3node.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1a11s-mds-1c-client-3node.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/conf b/qa/suites/fs/workload/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/workload/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/workload/distro b/qa/suites/fs/workload/distro
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/fs/workload/distro
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/fs/workload/mount b/qa/suites/fs/workload/mount
new file mode 120000
index 000000000..e3600f453
--- /dev/null
+++ b/qa/suites/fs/workload/mount
@@ -0,0 +1 @@
+.qa/cephfs/mount/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/objectstore-ec b/qa/suites/fs/workload/objectstore-ec
new file mode 120000
index 000000000..affe29493
--- /dev/null
+++ b/qa/suites/fs/workload/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/workload/omap_limit/.qa b/qa/suites/fs/workload/omap_limit/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/omap_limit/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/omap_limit/10.yaml b/qa/suites/fs/workload/omap_limit/10.yaml
new file mode 100644
index 000000000..eec30f681
--- /dev/null
+++ b/qa/suites/fs/workload/omap_limit/10.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd_max_omap_entries_per_request: 10
diff --git a/qa/suites/fs/workload/omap_limit/10000.yaml b/qa/suites/fs/workload/omap_limit/10000.yaml
new file mode 100644
index 000000000..c4bea5538
--- /dev/null
+++ b/qa/suites/fs/workload/omap_limit/10000.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd_max_omap_entries_per_request: 10000
diff --git a/qa/suites/fs/workload/overrides/+ b/qa/suites/fs/workload/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/+
diff --git a/qa/suites/fs/workload/overrides/.qa b/qa/suites/fs/workload/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/overrides/frag.yaml b/qa/suites/fs/workload/overrides/frag.yaml
new file mode 120000
index 000000000..5e5cdaed8
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/frag.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/overrides/ignorelist_health.yaml b/qa/suites/fs/workload/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/workload/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/overrides/osd-asserts.yaml b/qa/suites/fs/workload/overrides/osd-asserts.yaml
new file mode 120000
index 000000000..f290c749b
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/osd-asserts.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/osd-asserts.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/overrides/session_timeout.yaml b/qa/suites/fs/workload/overrides/session_timeout.yaml
new file mode 120000
index 000000000..fce0318c5
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/session_timeout.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/session_timeout.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/ranks/1.yaml b/qa/suites/fs/workload/ranks/1.yaml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/ranks/1.yaml
diff --git a/qa/suites/fs/workload/ranks/3.yaml b/qa/suites/fs/workload/ranks/3.yaml
new file mode 100644
index 000000000..9ed043c14
--- /dev/null
+++ b/qa/suites/fs/workload/ranks/3.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 3
+ check-counter:
+ counters:
+ mds:
+ - mds.exported
+ - mds.imported
diff --git a/qa/suites/fs/workload/ranks/5.yaml b/qa/suites/fs/workload/ranks/5.yaml
new file mode 100644
index 000000000..ed89cef3a
--- /dev/null
+++ b/qa/suites/fs/workload/ranks/5.yaml
@@ -0,0 +1,9 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 5
+ check-counter:
+ counters:
+ mds:
+ - mds.exported
+ - mds.imported
diff --git a/qa/suites/fs/workload/scrub/no.yaml b/qa/suites/fs/workload/scrub/no.yaml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/scrub/no.yaml
diff --git a/qa/suites/fs/workload/scrub/yes.yaml b/qa/suites/fs/workload/scrub/yes.yaml
new file mode 100644
index 000000000..52978a2bb
--- /dev/null
+++ b/qa/suites/fs/workload/scrub/yes.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - slow metadata IO
+ - SLOW_OPS
+ - slow request
+tasks:
+- fwd_scrub:
+ scrub_timeout: 900
+ sleep_between_iterations: 1
diff --git a/qa/suites/fs/workload/standby-replay.yaml b/qa/suites/fs/workload/standby-replay.yaml
new file mode 100644
index 000000000..b47d312bf
--- /dev/null
+++ b/qa/suites/fs/workload/standby-replay.yaml
@@ -0,0 +1,4 @@
+overrides:
+ ceph:
+ cephfs:
+ standby_replay: true
diff --git a/qa/suites/fs/workload/tasks/% b/qa/suites/fs/workload/tasks/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/%
diff --git a/qa/suites/fs/workload/tasks/.qa b/qa/suites/fs/workload/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/tasks/0-check-counter.yaml b/qa/suites/fs/workload/tasks/0-check-counter.yaml
new file mode 100644
index 000000000..6339ddb7c
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/0-check-counter.yaml
@@ -0,0 +1,2 @@
+tasks:
+- check-counter: {}
diff --git a/qa/suites/fs/workload/tasks/workunit/.qa b/qa/suites/fs/workload/tasks/workunit/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/workload/tasks/workunit/direct_io.yaml b/qa/suites/fs/workload/tasks/workunit/direct_io.yaml
new file mode 100644
index 000000000..6c6ea1422
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/direct_io.yaml
@@ -0,0 +1,9 @@
+overrides:
+ check-counter:
+ dry_run: true
+tasks:
+- workunit:
+ clients:
+ all:
+ - direct_io
+
diff --git a/qa/suites/fs/workload/tasks/workunit/fs/misc.yaml b/qa/suites/fs/workload/tasks/workunit/fs/misc.yaml
new file mode 100644
index 000000000..4a9d0b4c5
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/fs/misc.yaml
@@ -0,0 +1,10 @@
+overrides:
+ check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/misc
diff --git a/qa/suites/fs/workload/tasks/workunit/fs/norstats.yaml b/qa/suites/fs/workload/tasks/workunit/fs/norstats.yaml
new file mode 100644
index 000000000..d48df5471
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/fs/norstats.yaml
@@ -0,0 +1,17 @@
+overrides:
+ check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/norstats
+overrides:
+ kclient:
+ rbytes: false
+ ceph:
+ conf:
+ client:
+ client dirsize rbytes: false
diff --git a/qa/suites/fs/workload/tasks/workunit/fs/test_o_trunc.yaml b/qa/suites/fs/workload/tasks/workunit/fs/test_o_trunc.yaml
new file mode 100644
index 000000000..7b2b7c536
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/fs/test_o_trunc.yaml
@@ -0,0 +1,8 @@
+overrides:
+ check-counter:
+ dry_run: true
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/test_o_trunc.sh
diff --git a/qa/suites/fs/workload/tasks/workunit/kernel_untar_build.yaml b/qa/suites/fs/workload/tasks/workunit/kernel_untar_build.yaml
new file mode 100644
index 000000000..602d34162
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/kernel_untar_build.yaml
@@ -0,0 +1,10 @@
+overrides:
+ check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+tasks:
+- workunit:
+ clients:
+ all:
+ - kernel_untar_build.sh
diff --git a/qa/suites/fs/workload/tasks/workunit/suites/.qa b/qa/suites/fs/workload/tasks/workunit/suites/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/suites/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/fs/workload/tasks/workunit/suites/blogbench.yaml b/qa/suites/fs/workload/tasks/workunit/suites/blogbench.yaml
new file mode 100644
index 000000000..4c4bf2f9e
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/suites/blogbench.yaml
@@ -0,0 +1,10 @@
+overrides:
+ check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/blogbench.sh
diff --git a/qa/suites/fs/workload/tasks/workunit/suites/dbench.yaml b/qa/suites/fs/workload/tasks/workunit/suites/dbench.yaml
new file mode 100644
index 000000000..41b2bc8ed
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/suites/dbench.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/dbench.sh
diff --git a/qa/suites/fs/workload/tasks/workunit/suites/ffsb.yaml b/qa/suites/fs/workload/tasks/workunit/suites/ffsb.yaml
new file mode 100644
index 000000000..9bc925ab0
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/suites/ffsb.yaml
@@ -0,0 +1,18 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - SLOW_OPS
+ - slow request
+ conf:
+ osd:
+ filestore flush min: 0
+ osd heartbeat grace: 60
+ check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/ffsb.sh
diff --git a/qa/suites/fs/workload/tasks/workunit/suites/fsstress.yaml b/qa/suites/fs/workload/tasks/workunit/suites/fsstress.yaml
new file mode 100644
index 000000000..bae220292
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/suites/fsstress.yaml
@@ -0,0 +1,6 @@
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/fsstress.sh
diff --git a/qa/suites/fs/workload/tasks/workunit/suites/fsx.yaml b/qa/suites/fs/workload/tasks/workunit/suites/fsx.yaml
new file mode 100644
index 000000000..12d456cf4
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/suites/fsx.yaml
@@ -0,0 +1,10 @@
+overrides:
+ check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/fsx.sh
diff --git a/qa/suites/fs/workload/tasks/workunit/suites/fsync-tester.yaml b/qa/suites/fs/workload/tasks/workunit/suites/fsync-tester.yaml
new file mode 100644
index 000000000..9aaf6d0c4
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/suites/fsync-tester.yaml
@@ -0,0 +1,8 @@
+overrides:
+ check-counter:
+ dry_run: true
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/fsync-tester.sh
diff --git a/qa/suites/fs/workload/tasks/workunit/suites/iogen.yaml b/qa/suites/fs/workload/tasks/workunit/suites/iogen.yaml
new file mode 100644
index 000000000..d45d4ea3c
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/suites/iogen.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/iogen.sh
diff --git a/qa/suites/fs/workload/tasks/workunit/suites/iozone.yaml b/qa/suites/fs/workload/tasks/workunit/suites/iozone.yaml
new file mode 100644
index 000000000..bf5fd25b3
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/suites/iozone.yaml
@@ -0,0 +1,8 @@
+overrides:
+ check-counter:
+ dry_run: true
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/iozone.sh
diff --git a/qa/suites/fs/workload/tasks/workunit/suites/pjd.yaml b/qa/suites/fs/workload/tasks/workunit/suites/pjd.yaml
new file mode 100644
index 000000000..37e315f7e
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/workunit/suites/pjd.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse set user groups: true
+ fuse default permissions: false
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/pjd.sh
diff --git a/qa/suites/fs/workload/wsync/$ b/qa/suites/fs/workload/wsync/$
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/wsync/$
diff --git a/qa/suites/fs/workload/wsync/no.yaml b/qa/suites/fs/workload/wsync/no.yaml
new file mode 100644
index 000000000..1ed9e9953
--- /dev/null
+++ b/qa/suites/fs/workload/wsync/no.yaml
@@ -0,0 +1,3 @@
+overrides:
+ kclient:
+ mntopts: ["nowsync"]
diff --git a/qa/suites/fs/workload/wsync/yes.yaml b/qa/suites/fs/workload/wsync/yes.yaml
new file mode 100644
index 000000000..2061bac11
--- /dev/null
+++ b/qa/suites/fs/workload/wsync/yes.yaml
@@ -0,0 +1,3 @@
+overrides:
+ kclient:
+ mntopts: ["wsync"]