Purpose
The purpose of this document is to provide the description of the design verification procedure necessary to verify Lustre operation with IPv6 feature. The procedure is not isolated to testing specific Lustre modules but rather Lustre as a complete system.
Scope
This document covers design verification procedures for an IPv6-only system and a mixed IPv6-IPv4 system with the focus on IPv6 functionality. Testing of IPv4-only system is considered to be regression testing with regard to the IPv6 feature and is not covered by this document.
Requirements
The requirements for executing this test plan are same as for a regular Lustre system testing with the exception that every node involved in this testing is expected to be able to work with IPv6.
HW Requirements
A pool of server nodes and a pool of client nodes is expected to be available. Exact numbers are TBD
Network Requirements
Each node is expected to have at least two interfaces available for the purpose of LNet configuration. The connection between the nodes should be such that both IPv4 and IPv6 can be supported on every link.
While majority of the testing is projected to use TCP/Ethernet networking, IPv6 with o2ib shall also be tested.
SW Requirements
Exact Lustre SW version to be used is TBD. Linux kernel versions to be used are TBD.
Testing Procedure
Test Case Structure
The test is defined as the combination of the following:
Identifier
Label which uniquely identifies the testcase.
Objective
Description of what the test case is verifying. Ideally refers to a specific requirement from a system design document which is being verified.
Procedure
Describes the test setup and procedure. Level of detail should be sufficient for a test engineer to follow (should not rely on information available to developers only).
Expected Behaviour
Describes how the system is expected to behave when test procedure is executed.
Actual Results
Describes actual results observed when the test case is executed.
Test Cases
ID | Objective | Procedure | Expected Behaviour | Actual Results | Notes |
---|
IPv6_only.Config.SR.Client.1 | Configure Lustre Client using only IPv6. (SR, same subnet) | - Select an IPv6-enabled machine
- Install lustre client
- Configure the client to use a connected interface which has only IPv6 address configured
- Bring up lustre
- Execute "lnetctl net show"
- Execute "lnetctl ping" of own NID
| - "lnetctl net show" output should indicate an active NID featuring IPv6 address of the interface configured for use with LNet.
- "lnetctl ping" of own NID should be successful
|
|
|
IPv6_only.Config.SR.Client.2 | Configure second Lustre Client using only IPv6 and test connectivity between the two clients. (SR, same subnet) | - Select an IPv6-enabled machine
- Install lustre client
- Configure the client to use a connected interface which has only IPv6 address configured.
- Execute "ping" to the IPv6 of the other client
- Bring up lustre
- Execute "lnetctl net show"
- Execute "lnetctl ping" of own NID
- Execute "lnetctl ping" of the other client's NID
| - "ping" of the other client's IPv6 address should succeed
- "lnetctl net show" output should indicate an active NID featuring IPv6 address of the interface configured for use with LNet.
- "lnetctl ping" of own NID should be successful
- "lnetctl ping" of the other client's NID should be successful
|
| Assumes that Client.1 and Client.2 are on the same subnet and are able to reach each other over IPv6 network. |
IPv6_only.Config.SR.Server.1 | Configure Lustre Server using only IPv6 (SR, same subnet) | - Select an IPv6-enabled machine
- Install lustre server (ok to collocate MDS and OSS)
- Configure the server to use a connected interface which has only IPv6 address configured.
- Execute "ping" to the IPv6 of a client
- Bring up lustre
- Execute "lnetctl net show"
- Execute "lnetctl ping" of own NID
- Execute "lnetctl ping" of the client's NID
| - "ping" of the client's IPv6 address should succeed
- "lnetctl net show" output should indicate an active NID featuring IPv6 address of the interface configured for use with LNet.
- "lnetctl ping" of own NID should be successful
- "lnetctl ping" of the client NID should be successful
|
| Assumes that servers and clients are on the same subnet and are able to reach each other over IPv6 network. |
IPv6_only.Basic.LNet.SR.1 | Test basic connectivity between Lustre Server and Client on LNet level. (SR, same subnet) | Use the lustre server and clients setup in previous tests and - Load "lnet_selftest" on each node
- Configure and run "lnet_selftest" between the nodes
| - "lnet_selftest" should run without errors.
- Throughput reported by "lnet_selftest" should be adequate (verify against link speed).
|
|
|
IPv6_only.Basic.Lustre.SR.1 | Test Lustre FS performance with the Client and Server setup to use IPv6. (SR, same subnet) | Use the lustre server and clients setup in previous tests and - Mount lustre FS on the client(s)
- Run FIO
| - Lustre FS mount should succeed
- FIO should run without errors. Throughput reported by FIO should be adequate (verify against link speed and "lnet_selftest" results).
|
|
|
IPv6_only.Config.MR.Client.1 | Configure Lustre Client using only IPv6. (MR, same subnet) | - Select an IPv6-enabled machine
- Install lustre client
- Configure the client to use 2 connected interfaces with only IPv6 address configured on each
- Bring up lustre
- Execute "lnetctl net show"
- Execute "lnetctl ping" of own NIDs
| - "lnetctl net show" output should indicate 2 active NIDs featuring IPv6 addresses of the interfaces configured for use with LNet.
- "lnetctl ping" of own NIDs should be successful
|
|
|
IPv6_only.Config.MR.Client.2 | Configure second Lustre Client using only IPv6 and test connectivity between the two clients. (MR, same subnet) | - Select an IPv6-enabled machine
- Install lustre client
- Configure the client to use 2 connected interfaces with only IPv6 address configured on each
- Execute "ping" to the IPv6 addresses of the other client
- Bring up lustre
- Execute "lnetctl net show"
- Execute "lnetctl ping" of own NIDs
- Execute "lnetctl ping" of the other client's NIDs
| - "ping" of the other client's IPv6 addresses should succeed
- "lnetctl net show" output should indicate 2 active NIDs featuring IPv6 addresses of the interfaces configured for use with LNet.
- "lnetctl ping" of own NIDs should be successful
- "lnetctl ping" of the other client's NIDs should be successful
|
| Assumes that Client.1 and Client.2 are on the same subnet and are able to reach each other over IPv6 network. |
IPv6_only.Config.MR.Server.1 | Configure Lustre Server using only IPv6 (MR, same subnet) | - Select an IPv6-enabled machine
- Install lustre server (ok to collocate MDS and OSS)
- Configure the LNet on the server to use 2 IPv6-only interfaces.
- Execute "ping" to the IPv6 addresses of the client
- Bring up lustre
- Execute "lnetctl net show"
- Execute "lnetctl ping" of own NIDs
- Execute "lnetctl ping" of the client's NIDs
| - "ping" of the client's IPv6 addresses should succeed
- "lnetctl net show" output should indicate 2 active NIDs featuring IPv6 address of the interface configured for use with LNet.
- "lnetctl ping" of own NIDs should be successful
- "lnetctl ping" of the client NIDs should be successful
|
| Assumes that servers and clients are on the same subnet and are able to reach each other over IPv6 network. |
IPv6_only.Basic.LNet.MR.1 | Test basic connectivity between Lustre Server and Client on LNet level. (MR, same subnet) | Use the lustre server and clients setup in previous tests and - Load "lnet_selftest" on each node
- Make sure that nodes have "discovered" each other
- Configure and run "lnet_selftest" between the nodes, make sure to use the "primary NIDs" of each node
- Capture "lnetctl net show -v 4" and "netstat -i" outputs before and after the "lnet_selftest"
| - "lnet_selftest" should run without errors.
- Throughput reported by "lnet_selftest" should be adequate (verify against link speed).
- Compare "lnetctl net show -v 4" outputs captured before and after the "lnet_selftest" run. Verify that test traffic is distributed evenly across NIDs.
- Compare "netstat -i" outputs captured before and after the "lnet_selftest"run. Verify that test traffic is evenly distributed across interfaces used by LNet.
|
|
|
IPv6_only.Basic.Lustre.MR.1 | Test Lustre FS performance with the Client and Server setup to use IPv6. (MR, same subnet) | Use the lustre server and clients setup in previous tests and - Mount lustre FS on the client(s)
- Run FIO
| - Lustre FS mount should succeed
- FIO should run without errors. Throughput reported by FIO should be adequate (verify against link speed and "lnet_selftest" results).
|
|
|