Problem:
Lots of buffer I/O errors appear in /var/log/messages and /var/log/dmesg, but the filesystems are still working fine.
Solution:
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. While these errors can indicate a problem with the underlying storage, they are sometimes harmless. The errors can occur when using an active/passive storage array, such as EMC Clariion 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 fail.
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.