Featured Comment itimpi Posted March 2, 2019 Featured Comment Share Posted March 2, 2019 Parity Check Tuning plugin The Parity Check Tuning plugin is primarily designed to allow you to split a parity check into increments and then specify when those increments should be run. It will be of particular use to those who have large parity drives so that the parity check takes a long time and who leave their Unraid servers powered on 24x7. The idea is that you can specify time slots when the increments should be run and these can be chosen to be at times when the Unraid server is likely to be idle. The plugin also support running other long array operations (e.g. Clear, Rebuild) in increments if the user so desires. However since such operations are much rarer the user has to explicitly enable this in the plugin settings. Note that this plugin does not initiate a new parity check (or other array operation) - it only provides facilities for pausing/resuming/restarting them according to the criteria set in the plugin’s settings. If there is no array operation running during the timeslot specified for an increment then this plugin take no action. As an example on my system I have a 10TB Parity Disk and an uninterrupted Parity Check takes about 30 hours to complete. I have my normal scheduled parity checks set to run monthly. By using this plugin to run using 3 hour increments the elapsed time extends to 10 days (10 x 3 = 30) but I do not notice any impact on my normal use as the increments are run when I am not using the system. Once enough increments are run to complete the scheduled parity check then no further increments will be run until the time for the next scheduled check comes around. The plugin also allows other types of long-running array operations to be Paused or Resumed. These are Parity-Sync/Disk Rebuild and disk Clear operations. However since pausing these is less likely to be something the average user wants these can be individually controlled. For those who have problems with cooling on their Unraid systems it is also possible to set array operations to be Paused if the disks reach defined temperature thresholds and then Resumed when they cool down sufficiently. A much better solution is to have your Unraid system set up so that the cooling is sufficient to never let the disks overheat, but for some people this is not always practical. To avoid conflicts that can reduce overall performance you can set the plugin to automatically pause array operations if it detects that either the mover or the CA Backup processes are running and to then automatically resume the array operation when the process it question completes. The plugin will update the standard parity-check log to accurately reflect the duration and speed of parity checks to take into account that the check was run in increments as well as enhancing the information by also recording the number of increments, the total elapsed time and the type of check run. If you are running Unraid 6.9.0 (or later) array operations can be specified to be restated from the point they had reached at the point the reached when the system was shutdown or rebooted (or the array simply stopped/started) rather than from the beginning. This can be of particular use to those who do not want to keep their Unraid system powered on 24x7 (and power off overnight) as with modern large drives an array operation such as parity check can easily take more than 24 hours. The Settings page is added as an extra section to the Settings->Scheduler page (see the screenshot below) in the Unraid GUI as this seemed the most logical place for it to appear. Debug/Testing logging feature If you enable the option for debug logging then you will see additional entries appearing in the syslog about how this plugin is functioning internally. All these entries will include the word DEBUG so It is clear that they have been activated by turning on the Debug logging. This feature is primarily aimed at giving users a sense of what the plugin is doing under the covers for any users interested in such matters. In addition the logging level can be set to TESTING if trying to track down any suspected bugs in the plugin operation. This is primarily used during plugin development but can also help tracking down any issues that might be reported by users. It can be very verbose so users should not normally leave this option enabled. When this option is set to Testing then you are offered an additional option of Hourly for the frequency at which this plugin should pause/resume parity check increments. This was added primarily to help with testing and to help track down any issues that users might experience in using the plugin. Early feedback has suggested that users new to this plugin can use this feature as a way of getting a feel for how the plugin operates. Server Shutdown A feature has been included that allows users to set a temperature threshold for their array and cache drives that if exceeded will force the server to start its shutdown sequence. The prime Use Case for this is seen as protecting the disk drives in the event of the servers cooling failing for some reason. If activated this check runs even when there is no array or cache operation active. Command Line (CLI) options When this plugin is installed it adds the 'parity.check' command to the system which makes the following capabilities available from the command line: Usage: parity.check <action> where action is one of pause Pause a rumnning parity check resume Resume a paused parity check check Start a parity check (as Settings->Scheduler) correct Start a correcting parity check nocorrect Start a non-correcting parity check status Show the status of a running parity check cancel Cancel a running parity check start Start the array stop Stop the array Built-in Help The settings page for this plugin has very extensive built-in help to describe the meaning of the various settings. You can click on the description text for any particular setting to toggle it on-/off for that particular setting or you can turn it on/off at the page level by using the standard Help toggle in the Unraid GUI. Suggestions for improving the wording or expanding on the provided text are welcomed as it is not intended to produce any separate documentation. Parity Problems Assistant This is an additional option that appears under the Tools menu when the plug-in is installed. it implements Partial parity Checks which can be very helpful when trying to troubleshoot problems with parity after you have encountered errors when running the full parity check. It allows you to run a short check between specified start and end points. The current implementation is quite basic and feedback is welcomed on how it could be improved. Wish List This a holder for "blue sky" ideas that have been expressed for which there is no idea if it is even technically possible. They are kept here as a reminder and for others to perhaps expand on, and even perhaps come up with ideas for implementation.. Auto detect idle periods: The idea is that instead of the user having to specify specific start/stop times for running parity check increments the plugin should automatically detect periods when the system is idle to resume a parity check. This would need the complementary option of automatically detecting the system is no longer idle so that the check can be paused. Stop docker containers during a parity check. The ability to schedule the parity check to stop specified docker containers prior to check running and restart the docker containers after the check is paused or completed. A workaround for this would be to use the User Scripts plugin to do this although an integrated capability would be easier to use. Feedback Feedback from users on the facilities offered by this plugin is welcomed, and is likely to be used to guide the direction of any future enhancements. It will be interesting to hear how useful users find this plugin to be in the normal running of their system. Please feel free to suggest any changes that you think would enhance the experience even if it only rewording of text . Requirements Unraid 6.7.0 or later for the basic capability of running parity checks in increments. Unraid 6.9.0 or later for restarting array operations on next array start, and for using the Parity Problems assistant. Community Applications (CA) plugin. It is expected that this plugin will be installed via the Apps tab (i.e. the Community Applications plugin) and the appropriate template has been prepared to allow CA to handle it tidily. Installation The parity Check tuning plugin is available for installation by using the Community Applications plugin. If you navigate to the Apps tab and search for 'Parity Tuning' this plugin will show up and it can be installed from there. Once the plugin is installed then if you go to Settings->Scheduler in the Unraid GUI you will see an extra section has appeared that allows you to specify the settings you want to be used for this plugin. 5 3 Quote Link to comment
Posted by itimpi,
Basic plugin description
Recommended by itimpi
Go to this post
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.