Running Avocado with VMD device in Ci
- Once you have your PR ready, Merge samirrav/DAOS-8161 branch to run the test in Ci
- Ci has Two servers wolf-156/157 and a single CN wolf-180 so you can run a test with 4 daos servers and 1 client
- Update the test file yaml file small.yaml,
- VMD stage has Two servers so remove any extra servers
- VMD stage has single head node which will act as a client so remove the client section from yaml,
- Replace the bdev_list with variable disk ID which will be replace by Avocado ["aaaa:aa:aa.a","bbbb:bb:bb.b"]
--- a/src/tests/ftest/ior/small.yaml +++ b/src/tests/ftest/ior/small.yaml @@ -2,19 +2,14 @@ hosts: test_servers: - server-A - server-B - - server-C - - server-D - test_clients: - - client-E - - client-F - - client-G - - client-H timeout: 700 server_config: name: daos_server servers: bdev_class: nvme - bdev_list: ["0000:81:00.0","0000:da:00.0"] + bdev_list: ["aaaa:aa:aa.a","bbbb:bb:bb.b"] scm_class: dcpm scm_list: ["/dev/pmem0"]
- Follow example src/tests/ftest/nvme/health.yaml for running multiple servers from same branch samirrav/DAOS-8161.
Change the Tag in test python file For example small.py test was running with large so for VMD it has been changed to run with small VMD cluster
--- a/src/tests/ftest/ior/small.py +++ b/src/tests/ftest/ior/small.py @@ -33,7 +33,7 @@ class IorSmall(IorTestBase): multiple client processes in two separate nodes. :avocado: tags=all,pr,daily_regression - :avocado: tags=hw,large + :avocado: tags=hw,small :avocado: tags=daosio,checksum,mpich,dfuse,DAOS_5610 :avocado: tags=iorsmall
- Use the following Tag to run the HW small with VMD in Ci and skip most of the other tests and build in CI.
- Quick-Functional: true
- Skip-func-hw-test-medium: true
- Skip-func-hw-test-large: true
- Skip-scan-centos-rpms: True
- Skip-scan-centos-15-rpms: True
- Skip-func-test-vm: true
- Test-tag-hw-small: iorsmall <Use the test tag which needs to run with VMD small cluster>
- Create the PR and that should run the selected TAG in Ci
Running Avocado with VMD device Locally
Server OS CentOS 8.4:
- Right now we can not build and run from source so make sure to run test based on RPM
- Remove the existing daos bin (Remove the path and lib OR delete the local daos/install folder)
- Install daos rpm using the command :
sudo yum install -y daos-client daos-tests daos daos-server daos-debuginfo
- Test code will be under so do cd /usr/lib/daos/TESTING/ftest/
- Change the code in the below file
diff --git a/src/tests/ftest/util/command_utils_base.py b/src/tests/ftest/util/command_utils_base.py index 31e94c1..8b31073 100644 --- a/src/tests/ftest/util/command_utils_base.py +++ b/src/tests/ftest/util/command_utils_base.py @@ -415,7 +415,7 @@ class YamlParameters(ObjectWithParameters): yaml_data = {} for name in self.get_param_names(): value = getattr(self, name).value - if value is not None and value is not False: + if value is not None: yaml_data[name] = value return yaml_data if self.title is None else {self.title: yaml_data} diff --git a/src/tests/ftest/util/server_utils_params.py b/src/tests/ftest/util/server_utils_params.py index 7d68ad1..4bbd033 100644 --- a/src/tests/ftest/util/server_utils_params.py +++ b/src/tests/ftest/util/server_utils_params.py @@ -106,6 +106,7 @@ class DaosServerYamlParameters(YamlParameters): self.provider = BasicParameter(None, default_provider) self.hyperthreads = BasicParameter(None, False) + self.disable_vmd = BasicParameter(None, True) self.socket_dir = BasicParameter(None, "/var/run/daos_server") self.nr_hugepages = BasicParameter(None, 4096) self.control_log_mask = BasicParameter(None, "DEBUG")
- Update the test nvme_health.yaml file
diff --git a/src/tests/ftest/nvme/nvme_health.yaml b/src/tests/ftest/nvme/nvme_health.yaml index 9ad6c67..5ec7dfe 100644 --- a/src/tests/ftest/nvme/nvme_health.yaml +++ b/src/tests/ftest/nvme/nvme_health.yaml @@ -12,24 +12,24 @@ server_config: 0: pinned_numa_node: 0 nr_xs_helpers: 1 - fabric_iface: ib0 + fabric_iface: eth0 fabric_iface_port: 31317 log_file: daos_server0.log bdev_class: nvme - bdev_list: ["0000:81:00.0"] - scm_class: dcpm - scm_list: ["/dev/pmem0"] + bdev_list: ["0000:5d:05.5"] + scm_class: ram + scm_size: 32 scm_mount: /mnt/daos0 1: pinned_numa_node: 1 nr_xs_helpers: 1 - fabric_iface: ib1 + fabric_iface: eth0 fabric_iface_port: 31417 log_file: daos_server1.log bdev_class: nvme - bdev_list: ["0000:da:00.0"] - scm_class: dcpm - scm_list: ["/dev/pmem1"] + bdev_list: ["0000:85:05.5"] + scm_class: ram + scm_size: 32 scm_mount: /mnt/daos1 transport_config: allow_insecure: True
Execute test Avocado launch command and run nvme_health
- ./launch.py -c -tc=wolf-[157] -ts=wolf-[157] nvme_health
Server OS CentOS 8.3:
- Installed the RPM on server and client (use the above yum command)- This is needed so avocado can run systemd
- Build daos on local system
- Setup the daos_admin permission and SPDK setup script
- Apply above patch for both test yaml file and util files
- ./launch.py -c -tc=wolf-[170] -ts=wolf-[157] nvme_health