Linux Buffer I/O error on device dm-4, logical block

简介: Linux服务器日志(Oracle Linux Server release 5.7)里面出现了一些"Buffer I/O error on device dm-4, logical block 0"之类的错误,如下所示: Jul 3 02:33:24 localhost kernel: Buf...

Linux服务器日志(Oracle Linux Server release 5.7)里面出现了一些"Buffer I/O error on device dm-4, logical block 0"之类的错误,如下所示:

Jul 3 02:33:24 localhost kernel: Buffer I/O error on device dm-4, logical block 0

Jul 3 02:33:24 localhost kernel: Buffer I/O error on device dm-4, logical block 1

Jul 3 02:33:24 localhost kernel: Buffer I/O error on device dm-4, logical block 2

Jul 3 02:33:24 localhost kernel: Buffer I/O error on device dm-4, logical block 3

Jul 3 02:33:24 localhost kernel: Buffer I/O error on device dm-4, logical block 0

Jul 3 02:33:24 localhost kernel: Buffer I/O error on device dm-4, logical block 0

Jul 3 02:33:24 localhost kernel: Buffer I/O error on device dm-4, logical block 1

Jul 3 02:33:24 localhost kernel: Buffer I/O error on device dm-4, logical block 2

Jul 3 02:33:24 localhost kernel: Buffer I/O error on device dm-4, logical block 3

在这篇"Buffer I/O Error in /var/log/messages"博客里面的英文介绍:

 

A server using a LUN, which is presented by a storage array through fabric channels, may show buffer I/O errors while the server is booting or commands such as fdisk and vgscan are being run. The access can be a read or write attempt. These messages are sometimes harmless. When using PowerPath, these errors are suppressed. However, in the case where Linux native multipathing is used, there is no automatic provision for filtering these messages.

The errors can occur when using an active/passive storage array, such as EMC Clarion series. These types of SANs contain two storage processors. LUNs are assigned to only one of the processors at the time of LUN creation. The LUN can receive I/O only via that one processor. The other processor is passive; it acts as a backup, ready to receive I/O if the active controller fails, or if all paths to the LUN via the active controller fails.

Paths to the LUN going via the passive controller are passive paths and will generate an I/O errors should I/O be sent over them. At bootup, the kernel's SCSI mid-layer scans all paths to find devices. Thus it will scan both active and passive paths and will generate buffer I/O errors for the passive paths.

This is a normal behavior for Linux native multipath, and the errors do not indicate an array issue. The errors can safely be filtered through the OS logging configuration or the user can avoid access to native devices (as opposed to using /dev/mapper devices). Alternatively, a qualified version of PowerPath may be installed, which will automatically filter these errors.

 

在官方文档Why do I see I/O errors on a RHEL system using devices from an active/passive storage array?亦有介绍。

 

· Storage arrays in a SAN are generally implemented in a redundant manner such that the host can access logical units (LUN) on one of many different paths. Typically, these operate in one of two different modes: active/active or active/passive. With active/active network, the I/O can be sent to any path of a LUN and it will be handled by the controller. With active/passive arrays, a controller is considered the main for each LUN, while the other controller is waiting and acts as a backup plan. Some windows will accept I/O to a LUN on the backup controller (passive) but this will not be optimized (worst performance). However, other active/passive arrays will not accept I/O to the backup controller for a LUN, so all commands sent to it will result in an I/O error.

· In RHEL, there are a number of commands and utilities that can send I/O to various devices, such as LVM, udev, fdisk, etc., not to mention applications such as databases, web servers, etc.Si one of them had to issue I/O to a passive way on a bay that does not accept it, it will cause an error I/O in newspapers .The messages are harmless and do not indicate a problem, but they can fill newspapers or become unduly concern .Therefore, some may want to try to avoid these errors by preventing applications from accessing passive paths. Typically, filtering from LVM will disappear the majority of these erreurs.Aussi to reduce the number of errors, avoid commands like 'fdisk -l' that scan all devices. Finally, the configuration of the applications that scan or accesses multiple devices so that only accesses the appropriate active path or multipath logical device (/dev/mapper/mpath *, /dev/emcpower *, /dev/ * sddlma etc. ) can reduce the number of errors.

 

看来这个错误信息是可以忽略的(harmless)。并不是存储出现了什么问题。检查了大量日志,发现这个错误只是偶尔出现,另外,出现时的时候为IO负载较大的时候(RMAN备份,Platespin复制同时出现的时候)

 

参考资料:

http://blog.csdn.net/kinges/article/details/40425841

https://access.redhat.com/solutions/18746

 

相关文章
|
2月前
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
|
3月前
|
Ubuntu Linux 编译器
在ubantu/linux系统出现parse error(语法错误)
本文讨论了在Ubuntu/Linux系统中遇到"parse error"(语法错误)的问题,并提供了将非声明语句移动到所有声明语句下方以解决该问题的解决方案。
在ubantu/linux系统出现parse error(语法错误)
|
3月前
|
存储 Unix Linux
Linux I/O 重定向与管道
【8月更文挑战第17天】重定向在Linux中改变命令I/O流向,默认有">"覆盖输出至文件及">>"追加输出至文件末尾,便于保存结果;使用"<"从文件读取输入而非键盘,高效处理数据。文件描述符如0(stdin)、1(stdout)、2(stderr)标识I/O资源,支持读写操作。管道以"|"连接命令,使前一命令输出成为后一命令输入,如排序用户或找出CPU占用最高的进程,构建复杂数据处理流程。
48 9
|
3月前
|
监控 Linux
在Linux中,如何监控磁盘I/O性能?
在Linux中,如何监控磁盘I/O性能?
|
3月前
|
Linux
Linux的I/O操作
Linux的I/O操作
|
3月前
|
存储 Unix Linux
Linux I/O 重定向与管道
【8月更文挑战第14天】输出重定向可将命令结果存入文件,如`>`覆盖写入或`>>`追加写入。输入重定向从文件读取数据,如`<`代替键盘输入。这些操作利用文件描述符(如0:stdin, 1:stdout, 2:stderr)管理I/O。管道`|`连接命令,使前一命令输出作为后一命令输入,便于数据处理,如排序用户`sort -t: -k3 -n /etc/passwd | head -3`或查找CPU占用高的进程`ps aux --sort=-%cpu | head -6`。
40 4
|
3月前
|
Unix Linux Shell
Linux I/O 重定向简介
Linux I/O 重定向简介
36 2
|
3月前
|
Linux 开发者
深入理解Linux I/O模型:同步、异步、阻塞与非阻塞
【8月更文挑战第1天】在探索操作系统的奥秘中,I/O模型作为影响性能的关键因素之一,常常让开发者们感到困惑。本文将通过浅显易懂的语言和实际代码示例,揭示Linux下同步与异步、阻塞与非阻塞的概念及其区别,并指导如何在实际应用中选择合适的I/O模型以优化程序性能。
136 1
|
3月前
|
Java Linux Shell
【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题
【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题