FG 메타데이터 캐시를 활성화한 후 PowerFlex SDS가 충돌하기 시작함

Summary: FG(Fine Granularity) 메타데이터 캐시를 활성화한 후 PowerFlex SDS가 충돌하기 시작합니다.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

시나리오

특정 보호 도메인에서 FG 메타데이터 캐시를 활성화한 후 일부 SDS가 충돌하고 재시작됩니다. 

증상

 - 보호 도메인에서 FG 메타데이터 캐시가 활성화되었습니다(MDM 이벤트에서).

 2023-09-27 02:19:51.115000:4614824:CLI_COMMAND_SUCCEEDED            INFO     Command set_default_fgl_metadata_cache_size succeeded
2023-09-27 02:20:27.996000:4614851:MDM_CLI_CONF_COMMAND_RECEIVED    INFO     Command enable_fgl_metadata_cache received, User: 'admin'. Protection Domain: pd1

 - 메시지 파일에서 oom-killer 프로세스가 서비스를 중지하기 때문에 SDS 서비스가 다시 시작되고 있음을 알 수 있습니다.

 Sep 27 02:20:28 sds60 kernel: sds-3.6.700.103 invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0
Sep 27 02:20:28 sds60 kernel: sds-3.6.700.103 cpuset=/ mems_allowed=0-1
Sep 27 02:20:28 sds60 kernel: CPU: 1 PID: 9615 Comm: sds-3.6.700.103 Kdump: loaded Tainted: G           OE  ------------   3.10.0-1160.80.1.el7.x86_64 #1
Sep 27 02:20:28 sds60 kernel: Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 11/12/2020
Sep 27 02:20:28 sds60 kernel: Call Trace:
Sep 27 02:20:28 sds60 kernel: [] dump_stack+0x19/0x1f
Sep 27 02:20:28 sds60 kernel: [] dump_header+0x90/0x22d
Sep 27 02:20:28 sds60 kernel: [] ? ktime_get_ts64+0x52/0xf0
Sep 27 02:20:28 sds60 kernel: [] ? delayacct_end+0x8f/0xc0
Sep 27 02:20:28 sds60 kernel: [] oom_kill_process+0x2d5/0x4a0
Sep 27 02:20:28 sds60 kernel: [] ? oom_unkillable_task+0x93/0x120
Sep 27 02:20:28 sds60 kernel: [] out_of_memory+0x31a/0x500
Sep 27 02:20:28 sds60 kernel: [] __alloc_pages_nodemask+0xae4/0xbf0
Sep 27 02:20:28 sds60 kernel: [] alloc_pages_current+0x98/0x110
Sep 27 02:20:28 sds60 kernel: [] __page_cache_alloc+0x97/0xb0
Sep 27 02:20:28 sds60 kernel: [] filemap_fault+0x270/0x420
Sep 27 02:20:28 sds60 kernel: [] __xfs_filemap_fault+0x7e/0x1d0 [xfs]
Sep 27 02:20:28 sds60 kernel: [] xfs_filemap_fault+0x2c/0x40 [xfs]
Sep 27 02:20:28 sds60 kernel: [] __do_fault.isra.61+0x8a/0x100
Sep 27 02:20:28 sds60 kernel: [] do_read_fault.isra.63+0x4c/0x1b0
Sep 27 02:20:28 sds60 kernel: [] handle_mm_fault+0xa20/0xfb0
Sep 27 02:20:28 sds60 kernel: [] ? ep_scan_ready_list.isra.7+0x1b9/0x1f0
Sep 27 02:20:28 sds60 kernel: [] __do_page_fault+0x213/0x510
Sep 27 02:20:28 sds60 kernel: [] do_page_fault+0x35/0x90
Sep 27 02:20:28 sds60 kernel: [] page_fault+0x28/0x30
 Sep 27 02:20:28 sds60 kernel: Out of memory: Kill process 1262 (sds-3.6.700.103) score 240 or sacrifice child
Sep 27 02:20:28 sds60 kernel: Killed process 1262 (sds-3.6.700.103), UID 0, total-vm:75663912kB, anon-rss:9100672kB, file-rss:3944kB, shmem-rss:10796856kB
Sep 27 02:20:29 sds60 systemd: sds.service: main process exited, code=killed, status=9/KILL
Sep 27 02:20:29 sds60 systemd: Unit sds.service entered failed state.
Sep 27 02:20:29 sds60 systemd: sds.service failed.

 - SDS 충돌에는 2개의 NUMA 노드(Non-Uniform Memory Access)가 있습니다. 이것은 "numactl --hardware"에서 볼 수 있습니다.

 available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 6
node 0 size: 20923 MB
node 0 free: 1014 MB
node 1 cpus: 7 8 9 10 11 12 13
node 1 size: 21166 MB
node 1 free: 19481 MB

 - 동일한 스토리지 보호 도메인의 다른 SDS가 충돌하지 않으며 NUMA 노드가 하나만 있습니다.

 available: 1 nodes (0)
node 0 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
node 0 size: 42089 MB
node 0 free: 19881 MB

 

영향

이로 인해 데이터 성능이 저하되어 재구축이 이루어지고, 많은 수의 SDS가 동시에 충돌하는 경우 데이터 가용성 손실이 발생합니다. 

Cause

FG 메타데이터 캐시를 사용하면 FG 기반 볼륨이 읽기를 캐싱하여 성능을 향상시킬 수 있습니다. 또한 읽기를 캐시하려면 OS에서 더 많은 메모리가 필요하므로 OS에서 메모리를 사용할 수 있어야 합니다. 이 메모리를 사용할 수 없는 경우 OS는 oom-killer(메모리 부족)를 사용하여 SDS 서비스일 가능성이 높은 가장 큰 메모리 사용자를 중지합니다. 

이 경우 충돌이 발생하고 충돌이 발생하지 않은 SDS는 SVM입니다. 그들 모두는 각각의 ESXi 호스트에서 할당 된 40 + GB의 RAM과 14 개의 vCPU를 가지고있었습니다. 기본적으로 SDS는 NUMA 노드 0에서만 메모리를 끌어올 수 있습니다. NUMA 노드가 여러 개 있는 경우 SDS는 FG 메타데이터 캐시를 활성화할 때 메모리 요구 사항을 충족하기 위해 NUMA 노드 1에서 끌어올 수 없습니다.

하나 또는 두 개의 NUMA 노드가 있는 SVM 구성에서 차이가 발생하는 것은 기본 하드웨어에 기인할 수 있습니다. 이 경우 하나의 NUMA 노드가 있는 SVM에는 소켓당 18개의 코어가 있으므로 14개의 vCPU가 모두 하나의 CPU 소켓에 맞을 수 있습니다. 두 개의 NUMA 노드가 있는 SVM에는 소켓당 12개의 코어만 있었기 때문에 하나의 CPU 소켓에 vCPU를 모두 수용할 수 없었고 두 소켓 모두에 분산해야 했습니다. 이를 위해서는 두 개의 NUMA 노드가 필요합니다.  

Resolution

해결 방법

SVM 또는 OS에 새 메모리 요구 사항을 충족하기에 충분한 메모리가 있는지 확인합니다. 

몇 가지 해결 방법이 있습니다. 다음 하나만 사용해야 합니다.

2개의 NUMA 노드가 있는 노드의 SDS conf.txt에 아래 줄을 추가하고 SDS 프로세스를 재시작합니다(모든 정기 유지 보수 절차 준수).

numa_memory_affinity=0 

conf.txt의 이 줄은 SDS가 두 NUMA 노드의 메모리를 사용하도록 허용합니다. 
이 설정이 필요한 이유에 대한 추가 설명서는 여기에서 찾을 수 있습니다.
 
기본 하드웨어와 일치하도록 vCPU 수를 줄입니다. 이 경우 SVM에 12개의 vCPU가 있으면 단일 NUMA 노드에서 모든 메모리를 사용할 수 있습니다. 

영향을 받는 버전

PowerFlex 3.5.xPowerFlex
3.6.xPowerFlex
4.x

수정된 버전

이는 정상적인 작동입니다.

Affected Products

PowerFlex rack, ScaleIO
Article Properties
Article Number: 000223657
Article Type: Solution
Last Modified: 03 Feb 2025
Version:  2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.