-
Notifications
You must be signed in to change notification settings - Fork 304
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Split the erasurecode/multiple_failure.py into two separate tests to reduce the possibility of a large number of ERR messages in the server log file from preventing other test variants from failing dure to out of space errors. Signed-off-by: Phil Henderson <[email protected]>
- Loading branch information
Showing
4 changed files
with
129 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
''' | ||
(C) Copyright 2021-2024 Intel Corporation. | ||
SPDX-License-Identifier: BSD-2-Clause-Patent | ||
''' | ||
from ec_utils import ErasureCodeIor | ||
|
||
|
||
class EcodOnlineMultiRankFail(ErasureCodeIor): | ||
# pylint: disable=too-many-ancestors | ||
""" | ||
Test Class Description: To validate Erasure code object data after killing multiple rank,targets | ||
while IOR Write in progress. | ||
:avocado: recursive | ||
""" | ||
|
||
def __init__(self, *args, **kwargs): | ||
"""Initialize a EcOnlineRebuild object.""" | ||
super().__init__(*args, **kwargs) | ||
self.set_online_rebuild = True | ||
|
||
def test_ec_multiple_rank_failure(self): | ||
"""Jira ID: DAOS-7344. | ||
Test Description: Test Erasure code object with IOR with multiple rank failure | ||
Use Case: Create the pool, run IOR with supported EC object type class, kill multiple | ||
server ranks, while IOR Write phase is in progress, verify all IOR write | ||
finish.Read and verify data. | ||
:avocado: tags=all,full_regression | ||
:avocado: tags=hw,large | ||
:avocado: tags=ec,ec_online_rebuild,rebuild,ec_fault,ec_multiple_failure | ||
:avocado: tags=EcodOnlineMultiRankFail,test_ec_multiple_rank_failure | ||
""" | ||
# Kill Two server ranks | ||
self.rank_to_kill = [self.server_count - 1, self.server_count - 3] | ||
|
||
# Write IOR data set with different EC object. kill rank, targets or mix of both while IOR | ||
# Write phase is in progress. | ||
self.log_step( | ||
f"Write datasets using IOR and kill rank {self.rank_to_kill} while IOR is running") | ||
self.ior_write_dataset() | ||
|
||
# Disabled Online rebuild | ||
self.set_online_rebuild = False | ||
|
||
# Read IOR data and verify for EC object again | ||
# EC data was written with +2 parity so after killing ranks of targets data should be | ||
# intact and no data corruption observed. | ||
self.log_step(f"Read datasets using IOR after killing rank {self.rank_to_kill}") | ||
self.ior_read_dataset(parity=2) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
hosts: | ||
test_servers: 6 | ||
test_clients: 2 | ||
|
||
timeout: 2000 | ||
|
||
setup: | ||
start_agents_once: false | ||
start_servers_once: false | ||
|
||
server_config: | ||
name: daos_server | ||
engines_per_host: 2 | ||
engines: | ||
0: | ||
pinned_numa_node: 0 | ||
nr_xs_helpers: 1 | ||
fabric_iface: ib0 | ||
fabric_iface_port: 31317 | ||
log_file: daos_server0.log | ||
storage: auto | ||
1: | ||
pinned_numa_node: 1 | ||
nr_xs_helpers: 1 | ||
fabric_iface: ib1 | ||
fabric_iface_port: 31417 | ||
log_file: daos_server1.log | ||
storage: auto | ||
|
||
pool: | ||
size: 93% | ||
set_logmasks: False | ||
|
||
container: | ||
type: POSIX | ||
control_method: daos | ||
properties: cksum:crc16,cksum_size:16384,srv_cksum:on | ||
|
||
ior: | ||
api: "DFS" | ||
client_processes: | ||
np: 32 | ||
dfs_destroy: false | ||
iorflags: | ||
flags: "-w -W -F -k -G 1 -vv" | ||
read_flags: "-r -R -F -k -G 1 -vv" | ||
test_file: /testFile | ||
repetitions: 1 | ||
sizes: !mux | ||
Full_Striped: | ||
chunk_block_transfer_sizes: | ||
- [32M, 8G, 8M] | ||
Partial_Striped: | ||
chunk_block_transfer_sizes: | ||
- [32M, 512M, 2K] | ||
objectclass: !mux | ||
EC_2P2GX: | ||
dfs_oclass_list: | ||
- ["EC_2P2GX", 6] | ||
EC_4P2GX: | ||
dfs_oclass_list: | ||
- ["EC_4P2GX", 8] | ||
EC_8P2GX: | ||
dfs_oclass_list: | ||
- ["EC_8P2GX", 10] |