mdraid raid5 アレイの IO 操作が、高 IO 負荷時にスタックする
Issue
-
mdraid raid5 アレイの IO 操作が、高 IO 負荷時にスタックします。
-
問題が発生すると、mdraid アレイ上に作成されたファイルシステムは使用できなくなり、それらのファイルシステムにアクセスするプロセスがハングします。
kernel: INFO: task kworker/u97:5:311 blocked for more than 120 seconds. kernel: Not tainted 4.18.0-477.15.1.el8_8.x86_64 #1 kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kernel: task:kworker/u97:5 state:D stack: 0 pid: 311 ppid: 2 flags:0x80004000 kernel: Workqueue: writeback wb_workfn (flush-9:126) kernel: Call Trace: kernel: __schedule+0x2d1/0x870 kernel: ? blk_flush_plug_list+0xc2/0x100 kernel: schedule+0x55/0xf0 kernel: raid5_get_active_stripe+0x21e/0x4e0 [raid456] kernel: ? finish_wait+0x80/0x80 kernel: raid5_make_request+0x20c/0xe00 [raid456] kernel: ? do_wait_intr_irq+0xa0/0xa0 kernel: ? finish_wait+0x80/0x80 kernel: md_handle_request+0x128/0x1b0 kernel: md_make_request+0x5b/0xb0 kernel: generic_make_request_no_check+0x202/0x330 kernel: submit_bio+0x3c/0x160 kernel: iomap_submit_ioend.isra.47+0x4a/0x80 kernel: xfs_vm_writepages+0x7e/0xb0 [xfs] kernel: do_writepages+0xc6/0x1d0 kernel: __writeback_single_inode+0x39/0x300 kernel: writeback_sb_inodes+0x1ea/0x450 kernel: __writeback_inodes_wb+0x5f/0xd0 kernel: wb_writeback+0x24c/0x2e0 kernel: wb_workfn+0x34a/0x4d0 kernel: process_one_work+0x1a7/0x360 kernel: worker_thread+0x30/0x390 kernel: ? create_worker+0x1a0/0x1a0 kernel: kthread+0x134/0x150 kernel: ? set_kthread_struct+0x50/0x50 kernel: ret_from_fork+0x35/0x40
-
以前のカーネル (例:
kernel-4.18.0-425.19.2.el8_7.x86_64
) にロールバックすると、問題が解決します。
つまり、RHEL 8.8 カーネルの mdraid raid5 コードでリグレッションが生じているようです。
Environment
- Red Hat Enterprise Linux 8.8 または Red Hat Enterprise Linux 9
kernel-4.18.0-477.10.1.el8_8
以降
- mdraid raid5 アレイ
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.