Commit Graph

11 Commits

Author SHA1 Message Date
Vallari Agrawal
82118e19c4
qa/tasks/nvmeof.py: Improve thrasher and rbd image creation
Create rbd images in one command using ";" to queue them,
instead of running "cephadm shell -- rbd create" again
and again for each image.

Improve the method to select to-be-thrashed daemons.
Use randint() and sample(), instead of weights/skip.

Signed-off-by: Vallari Agrawal <vallari.agrawal@ibm.com>
2024-11-26 13:41:01 +05:30
Vallari Agrawal
c0ca0eb6f0
qa/suites/nvmeof/thrash: Add "is unavailable" to log-ignorelist
This commit also:
- Remove --rbd_iostat from thrasher fio
- Log iteration details before printing stats in nvmeof_tharsher

Signed-off-by: Vallari Agrawal <vallari.agrawal@ibm.com>
2024-11-26 13:41:01 +05:30
Vallari Agrawal
51743e6701
qa/suite/nvmeof/thrash: increase number of thrashing
- Run fio for 15 mins (instead of 10min).
- nvmeof.py: change daemon_max_thrash_times default from 3 to 5
- nvmeof.py: run nvme list in do_checks()

Signed-off-by: Vallari Agrawal <vallari.agrawal@ibm.com>
2024-11-26 13:41:01 +05:30
Vallari Agrawal
fdc93ad15e
qa/suites/nvmeof: add mtls test
Add qa/workunits/nvmeof/mtls_test.sh which enables
mtls config and redeploy, then verify and disables
mtls config.

Signed-off-by: Vallari Agrawal <vallari.agrawal@ibm.com>
2024-10-21 10:00:25 +05:30
Vallari Agrawal
4d97b1aa6b
qa/suites/nvmeof: increase hosts in cluster setup
In "nvmeof" task, change "client" config to "installer"
which allows to take inputs like "host.a".

nvmeof/basic: change 2-gateway-2-initiator to
	       4-gateway-2-inititator cluster
nvmeof/thrash: change 3-gateway-1-initiator to
	        4-gateway-1-inititaor cluster

Signed-off-by: Vallari Agrawal <val.agl002@gmail.com>
2024-09-02 19:42:12 +05:30
Vallari Agrawal
e5a9cda326
qa/suites/nvmeof/basic: add nvmeof_scalability test
Add test to upscale/downscale nvmeof
gateways.

Signed-off-by: Vallari Agrawal <val.agl002@gmail.com>
2024-08-28 18:12:29 +05:30
Vallari Agrawal
58d8be9fd8
qa: Expand nvmeof thrasher and add nvmeof_namespaces.yaml job
1. qa/tasks/nvmeof.py: add other methods to stop nvmeof daemons
2. add qa/workunits/rbd/nvmeof_namespace_test.sh which adds and
   deletes new namespaces. It is run in nvmeof_namespaces.yaml
   job where fio happens to other namespaces in background.

Signed-off-by: Vallari Agrawal <val.agl002@gmail.com>
2024-08-28 18:12:28 +05:30
Vallari Agrawal
c9a6fedbfa
qa/tasks/nvmeof.py: add nvmeof gw-group to deployment
Groups was made a required parameter to be
`ceph orch apply nvmeof <pool> <group>` in
https://github.com/ceph/ceph/pull/58860.
That broke the `nvmeof` suite so this PR fixes that.

Right now, all gateway are deployed in a single group.
Later, this would be changed to have multi groups for a better test.

Signed-off-by: Vallari Agrawal <val.agl002@gmail.com>
2024-08-26 15:15:10 +05:30
Vallari Agrawal
d0c4182bf5 qa/suites/rbd/nvmeof: add multi-subsystem setup and thrash test
1. qa/tasks/nvmeof.py:
    1.1. create multiple rbd images for all subsystems
    1.2. add NvmeofThrasher and ThrashTest
2. qa/tasks/mon_thrash.py: add 'switch_thrashers' option
3. nvmeof_setup_subsystem.sh: create multiple subsystems and enable HA
4. Restructure qa/suites/rbd/nvmeof: Create two sub-suites
   - "basic" (nvmeof_initiator job)
   - "thrash" (new: nvmeof_mon_thrash and nvmeof_thrash jobs)

Signed-off-by: Vallari Agrawal <val.agl002@gmail.com>
2024-07-31 08:52:05 +00:00
Vallari Agrawal
00651cfac2
qa/suite/rbd/nvmeof: Deploy multiple gateways and namespaces
1. Deploy 2 gateways on different nodes, then check for multi-path.
    To add another gateway, only "roles" need to be changed in job yaml.
2. Create "n" nvmeof namespaces, configured by 'namespaces_count'
3. Rename qa/suites/rbd/nvmeof/cluster/fixed-3.yaml to fixed-4.yaml
    which contains 2 gateways and 2 initiators.

Signed-off-by: Vallari Agrawal <val.agl002@gmail.com>
2024-03-19 20:48:26 +05:30
Vallari Agrawal
1713c4852c
qa: add qa/tasks/nvmeof.py and rbd/nvmeof_basic_task and fio workunits
This is v2 of the rbd/nvmeof test: It deploys 1 gateway and 1 initiator.
Then does basic verification on nvme commands and runs fio.

This commit creates:
1. qa/tasks/nvmeof.py: adds a new 'Nvmeof' task which deploys
    the gateway and shares config with the initiator hosts.
    Sharing config was previously done by 'nvmeof_gateway_cfg' task
    in qa/tasks/cephadm.py (that task is removed in this commit).
2. qa/workunits/rbd/nvmeof_basic_tests.sh:
    Runs nvme commands (discovery, connect, connect-all, disconnect-all,
    and list-subsys) and does basic verification of the output.
3. qa/workunits/rbd/nvmeof_fio_test.sh:
    Runs fio command. Also runs iostat in parallel if IOSTAT_INTERVAL
    variable is set. This variable configures the delay between each iostat
    print.

nvmeof-cli upgrade from v0.0.6 to v0.0.7 introduced major changes
to all nvmeof commands. This commit changes v0.0.6 commands to
v0.0.7 in qa/workunits/rbd/nvmeof_initiator.sh

Signed-off-by: Vallari Agrawal <val.agl002@gmail.com>
2024-02-12 13:00:09 +05:30