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 o so remove any extra servers
- VMD stage has one client for now so remove other clientsReplace the bdevsingle 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"]
Code Block |
---|
|
--- 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
+ - client-A
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 samirravbranch 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
Code Block |
---|
|
--- 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 test 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 nvme_health <Use <Use the test tag which needs to run with VMD small cluster>
- Create the PR and that should run the selected TAG in Ci
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 :
Code Block |
---|
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
Code Block |
---|
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
Code Block |
---|
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