Repository navigation
DAOS-4988 control: Provide client with same class network device - #2894
Conversation
daos_server now examines the network device class that the
daos_io_server is using and shares that with the
daos_agent via GetAttachInfo.
daos_agent now filters the network devices available for
automatic assignment to clients to avoid assigning clients
to networks that may not be compatible with the
daos_io_server.
In practice, this means that if the daos_io_server is using
a network device ib0, an Infiniband device, the agent will
assign an Infiniband device. If the daos_io_server is
using an Ethernet device, the agent will assign an Ethernet
device.
Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com> Conflicts: src/control/common/proto/mgmt/mgmt.pb.go src/control/common/proto/mgmt/pool.pb.go
Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
src/control/common/proto/ctl/network_scan.pb.go Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
mjmac
left a comment
There was a problem hiding this comment.
The "meat" of the change is overall OK, some small adjustments needed. It appears that you need to fix your versions of protobuf and friends, though.
For future reference, the fact that there are so many changes to generated protobuf files that have nothing to do with your changes is a strong indicator that something is amiss and that you probably need to fix something before committing/pushing.
Sanity checks all of the IO servers to make sure they have the same network device class. Made strconv edits. Updated error messages in netdetect to remove references for tools using the library. Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
|
I forgot to run through gofmt. I'll fix that and update. |
|
Yeah, so I was too trigger happy. I broke unit tests with the latest changes and merrily forgot all about them. I'll fix that and then push again. Sorry for the spam. |
|
Test stage run_test.sh completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-2894/2/execution/node/391/log |
mjmac
left a comment
There was a problem hiding this comment.
Have you also verified that your version of protoc-gen-go is correct?
Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
Updated srv.pb.go as a result Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
Rebuilt srv.pb.go Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
automatically grab the correct version of protoc-gen-go based on the value in go.mod Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
plugin is now updated automatically Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
|
Test stage run_test.sh completed with status FAILURE. https://build.hpdd.intel.com/job/daos-stack/job/daos/job/PR-2894/6/display/redirect |
We shouldn't land it if you do not like it. So let's discuss adding in an appropriate amount of automated test coverage. These are the highlights that are occurring in this PR. 1) detecting the network device class, 2) sharing that with the agent via the GetAttachInfo gRPC, 3) having the agent filter the devices added to the attach info cache based on the network device class provided, and 4) validating that each IO server instance is configured with, and starts with the same device class. Do you have concerns with all 4 areas, or something in particular that would benefit from some unit testing? |
|
Test stage Functional completed with status FAILURE. https://build.hpdd.intel.com/job/daos-stack/job/daos/job/PR-2894/7/display/redirect |
It's not that I don't like it. It's that I would be happier about landing it if there were a lot more tests demonstrating that it works now and will continue to work after future refactoring and other changes. Tests are also a good way to programmatically express requirements and explore possibilities before they're encountered in the real world.
For 4), you could add a test to |
kjacque
left a comment
There was a problem hiding this comment.
In general, I agree with Mike's testing comments. If you don't want to address it now, I think it should be done as a follow-on.
Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com> Conflicts: src/proto/Makefile
for single server case. Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
IO server config. Instead, the value is computed at validation time. Updated unit tests Moved GetDeviceClassStub out of netdetect Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
Fixed a typo in a comment Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
|
Test stage Functional_Hardware_Large completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-2894/10/execution/node/805/log |
kjacque
left a comment
There was a problem hiding this comment.
Thanks for adding the testing, Joel. Overall it looks good, I still have a few comments about naming but they are minor, and could be addressed in a follow-on PR.
instead of locally defined constants in the test code. Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
|
Test stage Functional completed with status UNSTABLE. https://build.hpdd.intel.com/job/daos-stack/job/daos//view/change-requests/job/PR-2894/11/testReport/(root)/ |
|
Test stage Functional_Hardware_Large completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-2894/11/execution/node/805/log |
|
The two failures are https://jira.hpdd.intel.com/browse/CART-900 and https://jira.hpdd.intel.com/browse/DAOS-5186 |
daos_server now examines the network device class that the daos_io_server is using and shares that with the daos_agent via GetAttachInfo. daos_agent now filters the network devices available for automatic assignment to clients to avoid assigning clients to networks that may not be compatible with the daos_io_server. In practice, this means that if the daos_io_server is using network device ib0, an Infiniband device, the agent will assign an Infiniband device. If the daos_io_server is using eth0, an Ethernet device, the agent will assign an Ethernet device. Signed-off-by: Joel Rosenzweig <joel.b.rosenzweig@intel.com>
Uh oh!
There was an error while loading. Please reload this page.