PowerFlex 3.X. Во время обновления без прерывания работы происходит сбой SDS при выполнении функции mgStorageRegion_CopyFromBuffer
Summary: Сбой SDS при выполнении функции mgStorageRegion_CopyFromBuffer
Symptoms
- Обновление с 3.0 до 3.6
- Выход SDS из режима мгновенного обслуживания (IMM)
- Включена функция Inflight Checksum.
Аварийное завершение работы SDS со следующей критической ошибкой:
2022/12/20 10:22:18.543129 Panic in file /data/build/workspace/ScaleIO-Common-Job/src/tgt/storage/mg_impl/mg_storage_region.c, line 4188, function mgStorageRegion_CopyFromBuffer, PID 13108.Panic Expression !(bufferSizeInBytes != ((sizeInLbs) * (512))) PANIC_ID_tgt_1517847817759. /opt/emc/scaleio/sds/bin/sds-3.6.400.107(mosDbg_PanicPrepare+0x13a) [0x93ab8a] /opt/emc/scaleio/sds/bin/sds-3.6.400.107(mgStorageRegion_CopyFromBuffer+0x1a7) [0x810477] /opt/emc/scaleio/sds/bin/sds-3.6.400.107(mgStorageRegion_CopyFromCachedBuffer+0x33) [0x810873] /opt/emc/scaleio/sds/bin/sds-3.6.400.107(storageRegion_CopyFromCachedBuffer+0xde) [0x4d3f3e] /opt/emc/scaleio/sds/bin/sds-3.6.400.107(mgStorageRegion_ReadFromSyncBuf+0x45) [0x4d4a85] /opt/emc/scaleio/sds/bin/sds-3.6.400.107(raidComb_ReadFromRemoteUntilEntireRegionIsAcquired+0x451) [0x74e021] /opt/emc/scaleio/sds/bin/sds-3.6.400.107(raidComb_ReadVolumeFromRemote+0x3ae) [0x74e8ee] /opt/emc/scaleio/sds/bin/sds-3.6.400.107(raidReverseRebuild_LoopAndCopy+0x140f) [0x75518f] /opt/emc/scaleio/sds/bin/sds-3.6.400.107(raidReverseRebuild_Start+0xb56) [0x7583c6] /opt/emc/scaleio/sds/bin/sds-3.6.400.107(raidSyncPool_StartJob+0x375) [0x5e3145]
Функция «Контрольная сумма выполняемого процесса» активирована в пулах хранения данных:
Storage Pool durpsdsc7p8pool1 (Id: 469b0f6800000007) has 7 volumes and 236.9 TB (242550 GB) free net capacity. 2.5 PB (2524 TB) volume allocation limit. ... Inflight Checksum: Enabled ...
Воздействие
В SDS происходит сбой, и не удается выйти из IMM. В этом случае обновление будет невозможно продолжить.
Cause
Resolution
Отключите контрольную сумму при переносе в пуле хранения данных, в который вносит свой вклад SDS:
1) Запросите все SDS, чтобы получить имя или идентификатор SDS:
[root@nestedsvm2 ~]# scli --query_all_sds Query-all-SDS returned 3 SDS nodes. Protection Domain 8eeacbf900000000 Name: pd1 SDS ID: ab471ceb00000002 Name: svm103 State: Connected, Joined IP: 15.15.15.103 Port: 7072 Version: 3.6.500 SDS ID: ab471cea00000001 Name: svm102 State: Connected, Joined IP: 15.15.15.102 Port: 7072 Version: 3.6.500 SDS ID: ab471ce800000000 Name: svm101 State: Connected, Joined IP: 15.15.15.101 Port: 7072 Version: 3.6.500
2. Запросите SDS по имени/идентификатору и выполните поиск по следующему запросу «Storage Pool: ":
Примечание. Пул(ы) хранения данных, в который передаются устройства; В данном случае имеется только одно имя пула хранения данных «SP1».
[root@nestedsvm2 ~]# scli --query_sds --sds_id ab471ceb00000002 | grep -i 'storage pool:'
1: Storage Pool: sp1 inflight requests factor: 115, inflight bandwidth factor 115
Storage Pool: sp1, Capacity: 198 GB, State: Normal
Storage Pool: sp1, Capacity: 98 GB, State: Normal
Storage Pool: sp1, Capacity: 98 GB, State: Normal
3. Запросите пул хранения данных и найдите «Inflight Checksum: ":
[root@nestedsvm2 ~]# scli --query_storage_pool --storage_pool_name sp1 --protection_domain_name pd1 | grep -i 'Inflight checksum'
Inflight Checksum: Enabled
3.a) Чтобы отключить Inflight Checksum, это можно сделать с помощью scli или на Презентационном Сервере. Чтобы отключить его с помощью scli, выполните следующую команду:
[root@nestedsvm2 ~]# scli --set_checksum_mode --protection_domain_name pd1 --storage_pool_name sp1 --disable_inflight_checksum Checksum mode modified successfully
3.б) На сервере презентаций перейдите в раздел «Пулы > хранения данных», выберите «Изменение пула хранения данных > », «Общие >> », снимите флажок «Включить контрольную сумму на лету» > и «Применить».
Затронутые версии
PowerFlex 3.5.x
PowerFlex 3.6.x