Драйвер PowerFlex scini (SDC) повідомляє про помилки розподілу пам'яті (blkIO_HandleChecksumOnIoStart)
Summary: Про помилки розподілу пам'яті повідомляє в системному журналі драйвер scini (драйвер SDC).
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 - працюють за задумом
Виправлено у версії
Н/Д