Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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
themeEmacs
--- 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
    themeEmacs
    --- 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