RHEL6: dm-multipath issues separate flush request, leading to incorrect /proc/diskstats and iostat output for writes with open("DSYNC") flag

Solution Unverified - Updated -

Issue

  • Single write to raw device using 'dd' with 'oflag=dsync' results in multiple block requests
  • iostat output shows incorrect avgrq-sz for direct writes
  • RHEL5 does not exhibit this behavior

Environment

  • Red Hat Enterprise Linux 6
    • 2.6.32-131.4.1.el6.x86_64
    • device-mapper-multipath-0.4.9-41.el6.x86_64
  • Storage configuration

    • Single raw device -> dm-mp -> 2 paths to iSCSI LUN

      # raw -qa
      /dev/raw/raw1:     bound to major 253, minor 2
      # dmsetup ls --tree | grep -A 3 '253:2'
      mpathj (253:2)
       ├─ (8:16)
       └─ (8:0)
      # multipath -ll | grep -A 4 'dm-2'
      mpathj (360a980006e424b626d3464766a784f65) dm-2 NETAPP,LUN
      size=1.0G features='1 queue_if_no_path' hwhandler='0' wp=rw
      `-+- policy='round-robin 0' prio=2 status=active
        |- 2:0:0:0 sda 8:0    active ready running
        `- 3:0:0:0 sdb 8:16   active ready running
      

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content