PowerFlex enable_background_device_scanner, API 및 로그 변경 사항
Summary: 이 문서에서는 v3.0.0.2 HF1에서 "보수적" 모드 기능이 도입된 후 VxFlexOS에서 배경 스캐너를 활성화하기 위한 scli 및 REST API 명령의 변경 사항에 대해 설명합니다. 이를 통해 보고 기능을 보다 효과적으로 제어하고 고객이 활성화하고자 하는 모드를 결정할 수 있습니다. 모든 이전 버전(v3.0.1 포함)에서 배경 스캐너에는 device_only 모드와 comparison_mode(device_only 모드의 모든 기능도 포함)의 두 가지 옵션이 있었습니다. ...
Instructions
ScaleIO v2.5 HF1의 비교 모드에는 비교 오류 수정을 건너뛰고 이에 대해 /opt/emc/scaleio/logs/comparison.0 파일에 보고하는 새로운 옵션이 포함되었습니다. 이로 인해 정상 상태에서 비교 모드의 일부인 device_only 모드의 읽기 복구 및 보고 기능도 비활성화되었습니다.
scli 및 API 변경 사항과 함께 v3.0.0.2 HF에서 백그라운드 스캐너 비교 모드가 활성화된 경우 SDS 노드에 몇 가지 추가 로깅이 추가되었습니다.
변경 로그 변경 사항: /opt/emc/scaleio/sds/logs/comparison.x
19/11 10:50:12.446570 Scanning combs for device be4c66a400000001, loop #1945 ended, #scanned combs=137, #sec combs (skipped)=69, #primary combs skipped=0, #scanned teeth=19418
comparisons.x 파일의 기본 수를 10개에서 더 작은 수로 줄이는 단계:
echo "tgt_comparison_file_history =2" >> /opt/emc/scaleio/sds/cfg/conf.txt ; pkill sds
파일을 줄여야 하는 모든 SDS에서 이 작업을 수행합니다. 기본 및 보조 간의 유효성을 검사하기 위한 새 CRC32 출력 로그 파일(PRI 또는 SEC의 1MB 사용자 데이터에 대한 해시 출력 포함):
/opt/emc/scaleio/sds/logs/{randomID}_compare_combID_offset_[pri/sec].log
예:
/opt/emc/scaleio/sds/logs/1259357004_compare_71f2800001b5_18432_pri.log Trace entry correlating in comparison.x: 13/11 14:03:54.470982 vtreeId a227e28500000000 Comb 71f2800001b5, offset 18432 - compare error - succeeded to fix the secondary by the primary, randId 1259357004.
해당 sds/logs/trc.x 로그:
trc.5:13/11 14:03:54.459658 0x7f598e35ddb8:mgStorageRegion_VerifyDataCRC:02769: primary and secondary checksums are different (pri=1025730551, sec=3956700141). will dump the error. randId 1259357004. combId:71f2800001b5,vTree:0xa227e28500000000,offsetVol:0x12da000,offsetInComb:18432,sizeInLbs:2048,phyToothIdx:2608,srcToothIdx:inv,dstToothIdx:inv New:(0,0) Requested:(3,1) volId:0 trc.5:13/11 14:03:54.470972 0x7f598e35ddb8:raidScan_FixSecondaryByPrimary:00295: comb:71f2800001b5,vTree:0xa227e28500000000,offsetVol:0x12da000,offsetTooth:0x0, Comb 71f2800001b5, offset 18432 - fix the secondary by the primary, randId 1259357004, rc = SUCCESS trc.5:13/11 14:03:54.470988 0x7f598e35ddb8:raidScan_HandleComparisonError:01006: compare error - succeeded to fix the secondary by the primary. randId 1259357004. combId:71f2800001b5,vTree:0xa227e28500000000,offsetVol:0x12da000,offsetInComb:18432,sizeInLbs:2048,phyToothIdx:2608,srcToothIdx:inv,dstToothIdx:inv New:(0,0) Requested:(3,1) volId:0 trc.5:13/11 14:03:54.472246 0x7f598e35ddb8:raidScan_HandleComparisonError:01046: Sent a message to the MDM on compare error (randId 1259357004). combId:71f2800001b5,vTree:0xa227e28500000000,offsetVol:0x12da000,offsetInComb:18432,sizeInLbs:2048,phyToothIdx:2608,srcToothIdx:inv,dstToothIdx:inv New:(0,0) Requested:(3,1) volId:0
두 개의 출력 파일을 확인합니다.
-rw-rw-rw-. 1 root root 4096 Nov 13 14:03 1259357004_compare_71f2800001b5_18432_pri.log -rw-r--r--. 1 root root 4096 Nov 19 11:10 1259357004_compare_71f2800001b5_18432_sec.log diff 1259357004_compare_71f2800001b5_18432_pri.log 1259357004_compare_71f2800001b5_18432_sec.log Binary files 1259357004_compare_71f2800001b5_18432_pri.log and 1259357004_compare_71f2800001b5_18432_sec.log differ [root@localhost logs]# md5sum 1259357004_compare_71f2800001b5_18432_pri.log d11924aadfe72dd1117f260f8b092caf 1259357004_compare_71f2800001b5_18432_pri.log [root@localhost logs]# md5sum 1259357004_compare_71f2800001b5_18432_sec.log 620f0b67a91f7f74151bc5be745b7110 1259357004_compare_71f2800001b5_18432_sec.log
이전 명령
scli --enable_background_device_scanner
Error: Either a valid Storage Pool ID or name must be specified
Usage: scli --enable_background_device_scanner (((--protection_domain_id | --protection_domain_name ) --storage_pool_name ) | --storage_pool_id ) --scanner_mode [--scanner_bandwidth_limit ] [--report_and_fix | --report_only]
Description: Enable background device scanner
Parameters:
--protection_domain_id Protection Domain ID
--protection_domain_name Protection Domain name
--storage_pool_name Storage Pool name
--storage_pool_id Storage Pool ID
--scanner_mode Scanner mode of operation where MODE can be one of the following:
device_only - Perform read operations. Fix from peer on errors
data_comparison - Perform the device_only test and compare the data content with peer. Not supported for fine granularity Storage Pools
--scanner_bandwidth_limit Bandwidth limit in KB per second per device. The given value should be between 10KB and 10MB. The default value is 3MB
--report_and_fix Report errors and automatically fix them (default)
--report_only Report errors without fixing them
|
스캐너 모드 |
동작 |
결과 |
|
device_only |
report_and_fix |
읽기 오류만 감지, 보고 및 수정됩니다. |
|
report_only |
읽기 오류만 감지되고 보고됨(수정되지 않음) |
|
|
지정되지 않음 |
report_and_fix와 동일(옵션 1) |
|
|
data_comparison |
report_and_fix |
읽기 오류와 비교 오류가 모두 감지되고 수정됩니다. |
|
report_only |
읽기 오류와 비교 오류가 모두 감지되고 보고됩니다(수정 안 됨). |
|
|
지정되지 않음 |
report_and_fix와 동일(옵션 3) |
새 명령
Usage: scli --enable_background_device_scanner (((--protection_domain_id | --protection_domain_name ) --storage_pool_name ) | --storage_pool_id ) --read_error_action --compare_error_action [--scanner_bandwidth_limit ]
Description: Enable background device scanner
Parameters:
--protection_domain_id Protection Domain ID
--protection_domain_name Protection Domain name
--storage_pool_name Storage Pool name
--storage_pool_id Storage Pool ID
--read_error_action Read error handling. Can be one of the following:
report_and_fix - Perform read operations and automatically fix from peer on errors
report_only - Perform read operations and report errors without fixing them
--compare_error_action Compare error handling. Can be one of the following:
no_compare - Perform read operations without comparing data content with peer
report_and_fix - Perform read operations, compare data content with peer, and automatically fix
Not supported for fine granularity Storage Pools
report_only - Perform read operations, compare data content with peer, and report mismatches without fixing them
Not supported for fine granularity Storage Pools
--scanner_bandwidth_limit Bandwidth limit in KB per second per device. The given value should be between 10KB and 10MB. The default value is 3MB
|
읽기 오류 모드 |
오차 모드를 비교합니다. |
결과 |
매핑 |
|
|
no_scan |
no_scan |
잘못된 조합 - 이에 대한 비활성화 명령이 있습니다. |
유효하지 않음 1 |
scannerMode = NULL(지원되지 않음) |
|
report_only |
잘못된 조합 - 읽지 않고 비교할 수 없습니다. |
유효하지 않음 2 |
|
|
|
report_and_fix |
잘못된 조합 - 읽지 않고 비교할 수 없습니다. |
유효하지 않음 3 |
|
|
|
report_only |
no_scan |
읽기 오류만 감지되고 보고됨(수정되지 않음) |
2 |
스캐너 모드 = device_only compareErrorAction = NULL readErrorAction = report_only
|
|
report_only |
읽기 오류와 비교 오류가 모두 감지되고 보고됩니다(수정 안 됨). |
4 |
스캐너 모드 = data_comparison compareErrorAction = report_only readErrorAction = report_only
|
|
|
report_and_fix |
읽기 오류와 비교 오류가 모두 감지되고 보고되지만 비교 오류만 수정됩니다. |
신규 1 |
스캐너 모드 = data_comparison compareErrorAction = report_and_fix readErrorAction = report_only
|
|
|
report_and_fix |
no_scan |
읽기 오류만 감지, 보고 및 수정됩니다. |
1 |
스캐너 모드 = device_only compareErrorAction = NULL readErrorAction = report_and_fix
|
|
report_only |
읽기 오류와 비교 오류가 모두 감지되고 보고되지만 읽기 오류만 수정됩니다. |
신규 2 |
스캐너 모드 = data_comparison compareErrorAction = report_only readErrorAction = report_and_fix
|
|
|
report_and_fix |
읽기 오류와 비교 오류가 모두 감지, 보고 및 수정됩니다. |
3 |
스캐너 모드 = data_comparison compareErrorAction = report_and_fix readErrorAction = report_and_fix
|