Драйвер SCINI (SDC) PowerFlex сообщает об ошибках выделения памяти (blkIO_HandleChecksumOnIoStart)
Summary: Драйвер scini (драйвер SDC) сообщает в syslog об ошибках выделения памяти.
Symptoms
Сценарий
SDC, установленный в Linux
Тома, сопоставленные с SDC, выделяются из пула хранения данных, в котором настроено использование контрольной суммы.
В системе наблюдается нехватка или фрагментация памяти.
Симптомы
Как правило, в системном журнале появляются сообщения, подобные следующим: /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 может не проверять некоторые операции ввода-вывода.
Cause
Если в пуле хранения данных включена функция контрольной суммы, контрольная сумма операций ввода-вывода для томов, выделенных в пуле хранения данных, включается в сетевые сообщения между SDC и SDS.
Для вычисления этих значений контрольной суммы SDC динамически выделяет память.
Если на хосте наблюдается нехватка памяти или фрагментация памяти, выделение памяти, необходимое для операции расчета контрольной суммы, может завершиться сбоем.
Если выделение памяти завершается сбоем, SDC не может рассчитать контрольную сумму и не прикрепляет ее к сетевому сообщению.
Когда SDS получает сообщение от SDC, которое не содержит контрольную сумму, он выполняет операцию ввода-вывода, не проверяя содержимое сообщения на своей стороне.
В заключение, сбои выделения памяти не влияют на операции ввода-вывода приложений или производительность ScaleIO.
Resolution
По возможности убедитесь, что на хосте достаточно свободной нефрагментированной памяти.
Затронутые версии
Все версии ScaleIO — работают как задумано
Исправлено в версии
Н/Д