Got it

Solution to Data Inconsistency Caused by OS Bugs in SUSE 12 and Later Versions

144 0 0 0 0

[Trigger Condition]

1. The host operating system is SUSE 12 or later. (By the completion date of this plan, this problem has been verified in SUSE 12, SUSE 14, and SUSE 15, and this problem does not exist in SUSE 11.)

2. If the I/O of application services on the host is greater than 1 MB, the BIOS layer of the operating system splits the I/O into multiple 1 MB I/Os. (In the lab environment, the sdtester delivers 2 MB write I/Os. It is found that the array receives 1 MB I/Os. This indicates that the BIOS layer of the host OS splits the I/Os into 1 MB for delivery.)

[Root Cause]

1) What is the data inconsistency?

The host reads old data.

2) Why is old data read?

The BIOS layer of the host operating system receives a 2 MB write I/O from the application. The BIOS layer splits the I/O into two 1 MB write I/Os and delivers the I/Os to the storage array. When the disk on the storage array is faulty, the previous 1 MB write I/O is successfully executed. The next 1 MB write I/O fails to be executed. At this time, the BIOS layer on the host side returns the 2 MB write I/O to the application, and the application immediately delivers a read request for verification. It is found that the last 1 MB of the 2 MB read data is old data. The first 1 MB data is correct.

3) Why does the host BIOS process the split two write I/Os as a success and a failure?

This behavior is an operating system behavior. No official explanation is found for this behavior.

Modify the code to simulate that the previous I/O on the disk array returns a success message and the next I/O fails to return a failure message. In this case, data inconsistency occurs.

1

If the previous I/O fails and the next I/O succeeds, the application identifies the I/O error.

1

When the host OS is SUSE 12, the FC and iSCSI frontends are used, the built-in multipathing software is installed, and the multipathing software is not installed.

[Impact]

After this problem occurs, the host application may read the old data.

[Recovery Method]

Install the host operating system on SUSE 11.

[Workaround]

SUSE 12, 14, and 15 are not used.

[Involved Version]

This is not a disk array problem.

[Resolved Version]

This is not a disk array problem.

Note:

[Check Method]

When the host application detects that the old data is read, run the lsb_release –a command to check the SUSE version.

ctup000000357:- # lsb_release -a

LSB Version: n/a

Distributor ID: SUSE

Description: SUSE Linux Enterprise Server 12 SP2

Release: 12.2

Codename: n/a

ctup000000357:- #


Attachment:

1. Related documents: https://patchwork.kernel.org/patch/10220727/


Comment

You need to log in to comment to the post Login | Register

Notice: To protect the legitimate rights and interests of you, the community, and third parties, do not release content that may bring legal risks to all parties, including but are not limited to the following:
  • Politically sensitive content
  • Content concerning pornography, gambling, and drug abuse
  • Content that may disclose or infringe upon others ' commercial secrets, intellectual properties, including trade marks, copyrights, and patents, and personal privacy
Do not share your account and password with others. All operations performed using your account will be regarded as your own actions and all consequences arising therefrom will be borne by you. For details, see " User Agreement."

My Followers

Login and enjoy all the member benefits

Login

Block
Are you sure to block this user?
Users on your blacklist cannot comment on your post,cannot mention you, cannot send you private messages.
Reminder
Please bind your phone number to obtain invitation bonus.