SDC(PowerFlex scini Driver)가 메모리 할당 오류(blkIO_HandleChecksumOnIoStart)를 보고합니다.
Summary: syslog에서 scini 드라이버(SDC 드라이버)에 의해 메모리 할당 오류가 보고됩니다.
Symptoms
시나리오
Linux
에 설치된 SDC SDC에 매핑된 볼륨은 체크섬을 사용하도록 구성된 스토리지 풀에서 할당됩니다.
시스템에 메모리 부족 또는 메모리 조각화가 발생합니다.
조짐
일반적으로 syslog에는 다음과 유사한 메시지가 표시됩니다. /var/log/messages
Dec 12 15:36:09 server002 kernel: kworker/16:2H: page allocation failure: order:8, mode:0x104020 Dec 12 15:36:09 server002 kernel: CPU: 16 PID: 11460 Comm: kworker/16:2H Tainted: P OE ------------ 3.10.0-514.21.1.el7.x86_64 #1 Dec 12 15:36:09 server002 kernel: Hardware name: HP ProLiant DL560 Gen9/ProLiant DL560 Gen9, BIOS P85 01/04/2016 Dec 12 15:36:09 server002 kernel: Workqueue: kblockd blk_delay_work Dec 12 15:36:09 server002 kernel: 0000000000104020 0000000054aac964 ffff886aecfd37c0 ffffffff81686e13 Dec 12 15:36:09 server002 kernel: ffff886aecfd3850 ffffffff81187090 ffff88607ffda000 0000000000000010 Dec 12 15:36:09 server002 kernel: ffffffffffffff00 0010402000000000 0022522000000000 0000000054aac964 Dec 12 15:36:09 server002 kernel: Call Trace: Dec 12 15:36:09 server002 kernel: [<ffffffff81686e13>] dump_stack+0x19/0x1b Dec 12 15:36:09 server002 kernel: [<ffffffff81187090>] warn_alloc_failed+0x110/0x180 Dec 12 15:36:09 server002 kernel: [<ffffffff816829a7>] __alloc_pages_slowpath+0x6b7/0x725 Dec 12 15:36:09 server002 kernel: [<ffffffff8118b645>] __alloc_pages_nodemask+0x405/0x420 Dec 12 15:36:09 server002 kernel: [<ffffffff811cf7fa>] alloc_pages_current+0xaa/0x170 Dec 12 15:36:09 server002 kernel: [<ffffffff81185f6e>] __get_free_pages+0xe/0x50 Dec 12 15:36:09 server002 kernel: [<ffffffff811db09e>] kmalloc_order_trace+0x2e/0xa0 Dec 12 15:36:09 server002 kernel: [<ffffffff811dd871>] __kmalloc+0x221/0x240 Dec 12 15:36:09 server002 kernel: [<ffffffff811de7c3>] ? kmem_cache_alloc+0x193/0x1e0 Dec 12 15:36:09 server002 kernel: [<ffffffffa07b697a>] blkIO_OnChecksumIoStart+0x5a/0x550 [scini] Dec 12 15:36:09 server002 kernel: [<ffffffffa07ed587>] ? mosMCAllocator_Alloc+0x57/0xa0 [scini] Dec 12 15:36:09 server002 kernel: [<ffffffffa07b3ac1>] blkIO_HandleChecksumOnIoStart+0xc1/0x220 [scini] Dec 12 15:36:09 server002 kernel: [<ffffffffa07b7ea8>] mapVolIO_Do_CK+0x398/0x1e80 [scini] Dec 12 15:36:09 server002 kernel: [<ffffffffa07b4306>] blkIO_Do_CK+0x266/0xa00 [scini] Dec 12 15:36:09 server002 kernel: [<ffffffffa07e9838>] mosMit_EntryWrapper+0x128/0x1b0 [scini] Dec 12 15:36:09 server002 kernel: [<ffffffffa07e9a2c>] mosMit_StartNow+0x7c/0x90 [scini] Dec 12 15:36:09 server002 kernel: [<ffffffffa07b4ea6>] blkIO_Request+0x356/0x730 [scini] Dec 12 15:36:09 server002 kernel: [<ffffffff810cf27e>] ? dequeue_task_fair+0x41e/0x660 Dec 12 15:36:09 server002 kernel: [<ffffffff812eb7e3>] __blk_run_queue+0x33/0x40 Dec 12 15:36:09 server002 kernel: [<ffffffff812ed915>] blk_delay_work+0x25/0x60 Dec 12 15:36:09 server002 kernel: [<ffffffff810a845b>] process_one_work+0x17b/0x470 Dec 12 15:36:09 server002 kernel: [<ffffffff810a9296>] worker_thread+0x126/0x410 Dec 12 15:36:09 server002 kernel: [<ffffffff810a9170>] ? rescuer_thread+0x460/0x460 Dec 12 15:36:09 server002 kernel: [<ffffffff810b0a4f>] kthread+0xcf/0xe0 Dec 12 15:36:09 server002 kernel: [<ffffffff810b0980>] ? kthread_create_on_node+0x140/0x140 Dec 12 15:36:09 server002 kernel: [<ffffffff81697418>] ret_from_fork+0x58/0x90 Dec 12 15:36:09 server002 kernel: [<ffffffff810b0980>] ? kthread_create_on_node+0x140/0x140
메시지는 다음과 같이 시작됩니다. page allocation failure
스택 추적에는 다음이 포함됩니다. blkIO_HandleChecksumOnIoStart
영향
ScaleIO 내부 체크섬 메커니즘이 일부 I/O 작업을 확인하지 못할 수 있습니다.
Cause
스토리지 풀에서 체크섬 기능을 활성화하면 스토리지 풀에서 할당된 볼륨의 I/O 작업에 SDC와 SDS 간의 네트워크 메시지에 체크섬이 포함됩니다.
이러한 체크섬 값을 계산하기 위해 SDC는 메모리를 동적으로 할당합니다.
호스트에 메모리 부족 또는 메모리 조각화가 있는 경우 체크섬 작업에 필요한 메모리 할당이 실패할 수 있습니다.
메모리 할당에 실패하면 SDC는 체크섬을 계산할 수 없으며 체크섬을 네트워크 메시지에 연결하지 않습니다.
SDS가 SDC로부터 체크섬이 포함되지 않은 메시지를 수신하면 SDS 측에서 메시지 내용을 확인하지 않고 I/O 작업을 수행합니다.
결론적으로 메모리 할당 장애는 애플리케이션의 I/O 작업이나 ScaleIO 성능에 영향을 미치지 않습니다.
Resolution
가능하면 호스트에 조각화되지 않은 여유 메모리가 충분한지 확인하십시오.
영향을 받는 버전
모든 ScaleIO 버전 - 설계된 대로 작동
수정된 버전
해당 사항 없음