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 of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In