Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Writing to array during parity check, safe?

Featured Replies

Stupid question:

 

My server crashed last night. After reboot the usual parity check starts. While parity check is running I can write to the array. So far so good ;-)

 

1. What I see is, that the parity check uses all disks at aprox. 35 MB/s. Fine with that during parallel writes.

 

2. But for the writes to one data disk I see that only the parity disks and the array disk, I'm writing to, are being used. Isn't that dangerous? The writes seem to consider parity disks are ok. But they are checked currently. So shouldn't writes during a parity check use "Reconstruct write"? Read/Write/Modify is IMHO wrong during a running parity check.

 

In the image below you can see what I mean. 34 MB/s is the parity check. 90 MB/s is the write to disk21 (not shown) and the parity disks.

 

2F9981D9-53DA-42E7-89AB-2A20E8A4D911.thumb.png.dacd853dcead2fd96d3dabf8c4a8a673.png

 

Edited by hawihoney

Solved by itimpi

  • Community Expert
42 minutes ago, hawihoney said:

So shouldn't writes during a parity check use "Reconstruct write"? Read/Write/Modify is IMHO wrong during a running parity check.

Either the check already passed at the location being written and would have detected the error already if there was one, or it will do so later. I.e. doing a write with RMW doesn't change anything.

 

Doing reconstruct write would actually unintentionally correct any error even if the check is non-correcting, which would be inconsistent.

Edited by Kilrah

  • Author
13 minutes ago, Kilrah said:

Doing reconstruct write would actually unintentionally correct any error even if the check is non-correcting,

 

It's the parity check after a server crash and reboot. AFAIK, that one is always correctional - for a reason. This one SHOULD correct sync errors always.

 

All drives are spun-up during that correctional check, so reconstruct write for array writes wouldn't hurt IMHO.

 

I get your point with before is corrected, after will be corrected. And I know the technical ideas behind parity checks (data disk is always correct). But during that parity check writes may use wrong values and now consider a crash during that writes ... IMHO that would make things worst.

 

I vote for recosntruct writes during a correctional parity check.

 

  • Community Expert

Reconstruct writes anyway only happen when there is no concurrent array usage - i.e. if you read something while writing to the array it will use RMW, and since a parity check is a constant read...

Edited by Kilrah

  • Community Expert
  • Solution
1 hour ago, hawihoney said:

But during that parity check writes may use wrong values and now consider a crash during that writes ... IMHO that would make things worst.

 

No it will not.    

 

If the point for a sector has already been passed in the parity check then it is doing a normal update.   If the point for a sector has not been passed then it will update the data disk and parity disk assuming the data disk is correct, and later if they do not match flag up an error.  

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.