FlorinB Posted June 19, 2018 Share Posted June 19, 2018 (edited) I am trying to figure how to use the CA Auto Turbo Write Mode. I have read almost everything that I had found here, however it is still unclear for me Turbo write, By RobJ, September 22, 2016 The Turbo write details are quite clear.Into Settings -> Disk Settings, and look for Tunable (md_write_method) - there are 3 options: 1. Auto - auto is not currently (version 6.5.3) implemented, therefore is doing the same as 2. read/modify/write 2. read/modify/write - is calculating the parity based on the Parity checksums, does not require all disks to spin 3. reconstruct write - it does not take into account the old data on Parity disks, it just calculate again the parity by reading data from all data disks. Requires all disk to spin. ------------------------------------------------- [Plugin] CA Auto Turbo Write Mode, By Squid, March 12, 2017 The TurboWrite Plugin, as described, will enable / disable Turbo Write Mode (reconstruct write) based upon the number of hard drives currently spun down. My understanding is that plugin should do what Auto mode is not currently doing. ------------------------------------------------- Please help me to clarify the following questions: 1. With the CA Auto Turbo Write Mode how should be the Settings -> Disk Settings -> Tunable (md_write_method) configured? 2. What is the Disks Allowed To Be Spun Down Before Invoking Turbo Mode doing? As defined into Turbo write details you need all disks to spin to benefit of the reconstruct write. Is Turbo Mode plugin doing a mix between reconstruct write and read/modify/write methods or how should be this option used? 3. The reconstruct write option can lead to have all the time all disks spinning up, therefore into the CA Auto Turbo Write Mode plugin was added the option to define your own schedules for enabling/disabling the TurboMode. I have added the following schedule: then received the following errors into syslog: Quote Jun 19 11:45:23 Tower root: Starting Auto Turbo Jun 19 11:45:23 Tower root: CA Auto Turbo Schedules currently in process Jun 19 11:46:01 Tower root: Executing /usr/local/emhttp/plugins/ca.turbo/scripts/turboSchedule.php enable 60 Jun 19 11:46:01 Tower root: Warning: Overlapping schedules of CA Auto Turbo Mode Detected Jun 19 11:46:01 Tower kernel: mdcmd (87): set md_write_method 1 Jun 19 11:46:01 Tower kernel: Jun 19 11:48:15 Tower root: Starting Auto Turbo Jun 19 11:48:16 Tower root: CA Auto Turbo Schedules currently in process Jun 19 12:00:01 Tower root: Mover schedule disabled Jun 19 12:01:01 Tower root: Warning: Overlapping schedules of CA Auto Turbo Mode Detected Jun 19 12:03:41 Tower root: Starting Auto Turbo Jun 19 12:03:41 Tower root: CA Auto Turbo Schedules currently in process Jun 19 12:04:01 Tower root: Executing /usr/local/emhttp/plugins/ca.turbo/scripts/turboSchedule.php enable 60 Jun 19 12:04:01 Tower root: Warning: Overlapping schedules of CA Auto Turbo Mode Detected Jun 19 12:04:01 Tower kernel: mdcmd (88): set md_write_method 1 Jun 19 12:04:01 Tower kernel: Jun 19 12:17:01 Tower root: Warning: Overlapping schedules of CA Auto Turbo Mode Detected Jun 19 12:26:22 Tower emhttpd: req (13): startArray=yes&spindownDelay=15&spinupGroups=no&defaultFormat=2&defaultFsType=btrfs&shutdownTimeout=90&poll_attributes=1800&queueDepth=auto&nr_r equests=128&md_num_stripes=1280&md_sync_window=384&md_sync_thresh=192&md_write_method=auto&changeDisk=Apply&csrf_token=**************** My best guess, but I could not find this anywhere documented, is that we should use a fixed hour, minute, second time instead of interval. - Is this assumption correct ? 4. When should be Enable or Disable Turbo Write: Enable used and Enable or Disable Turbo Write: Disable be used. Does it make sense to have those 2 options? 5. With TurboWrite enabled sometimes the writing speed is lower that without. I get 18MB/s instead of 25-30MB/s in read/modify/write mode. Why is this happening and is it any possibility to fall back into normal read/modify/write mode when this is happening? Thanks in advance to @Squid or to whom will help to clarify my questions. Edited June 19, 2018 by FlorinB Link to comment
Squid Posted June 19, 2018 Share Posted June 19, 2018 2 hours ago, FlorinB said: 1. With the CA Auto Turbo Write Mode how should be the Settings -> Disk Settings -> Tunable (md_write_method) configured? Doesn't particularly matter, but "read/modify/write" would be how you want it set initially 2 hours ago, FlorinB said: 2. What is the Disks Allowed To Be Spun Down Before Invoking Turbo Mode doing? The number of data disks that are allowed to be spun down before turbo mode is invoked. IE: 0 means all disks have to be spun up for turbo mode to kick in. 1 means that all but one data disk is allowed to be spun up, etc 2 hours ago, FlorinB said: As defined into Turbo write details you need all disks to spin to benefit of the reconstruct write. Is Turbo Mode plugin doing a mix between reconstruct write and read/modify/write methods or how should be this option used? Nope. It just enables / disables the setting according to the parameters you set. Runs Command every minute on hours ... It overlaps. The command to turn on turbo runs every minute, and you've also set it to last for 60 minutes. There's 59 overlaps in every hour. 2 hours ago, FlorinB said: 4. When should be Enable or Disable Turbo Write: Enable used and Enable or Disable Turbo Write: Disable be used. Does it make sense to have those 2 options? Sure. You can force turbo mode on (enabled) or off (disabled) at certain time periods. When the schedule expires, the setting in Disk Settings takes effect. 2 hours ago, FlorinB said: 5. With TurboWrite enabled sometimes the writing speed is lower that without. I get 18MB/s instead of 25-30MB/s in read/modify/write mode. Why is this happening and is it any possibility to fall back into normal read/modify/write mode when this is happening? Depends. For small files, Windows (if you're measuring through it) may calculate it including the time required to spin up the drives. The real advantage in turbo mode is large files and/or many small writes consecutively . Personally, I don't bother with using turbo mode at all. I get around 60-70MB/s over the network writing to any given array only share, and most of the writes to the array happen automatically by various docker clients, so I can't even tell (nor would I care) if a transfer takes 1 minute or 5 minutes. Link to comment
FlorinB Posted June 19, 2018 Author Share Posted June 19, 2018 (edited) Now i understand how it works - actually the CA Auto Turbo Write Mode can be considered/used like a replacement of the Tunable (md_write_method):Auto, but you sould set that parameter initially to read/modify/write. In addition to this you can define how many disks from array (no parity disks, no cache disks, no outside of array disks) may be stopped, so that the reconstruct write will kick in. 11 hours ago, Squid said: The number of data disks that are allowed to be spun down before turbo mode is invoked. This is a kind of negation thinking, as we need always to do some math to calculate how many disks may be stopped, instead of how many disks should be already active that reconstruct write will kick in. Example for the current situation: I have 7 data disks into my array and I would like to have the reconstruct write enabled as soon as 2 disks from array are active. That would be 7-2=x and x=5. I have to set the Disks Allowed To Be Spun Down Before Invoking Turbo Mode: 5 Would not be easier to say I want to kick in the reconstruct write when minimal 2 disks are spun up? Important: Kicking in reconstruct write mode will automatically wake up/spin all disks from array, including the parity disks. I did the following tests to clarify completely how this is working: 1. set all disks to standby mode. This can be done either from the Web GUI -> Main-> Spin Down button or from command line using the command Quote hdparm -y /dev/sd[b-m] #-this will put in standby mode all disks from sdb to sdm Usage: hdparm [options] -y Put drive in standby mode 2. Using the plugin unBALANCE->Gather, I was browsing to a folder with some big files. At this moment the first disk - source - from array started Quote Jun 19 22:42:28 Tower root: #012/dev/sdb:#012 drive state is: standby Jun 19 22:42:28 Tower root: #012/dev/sdc:#012 drive state is: standby Jun 19 22:42:28 Tower root: #012/dev/sde:#012 drive state is: standby Jun 19 22:42:28 Tower root: #012/dev/sdf:#012 drive state is: standby Jun 19 22:42:28 Tower root: #012/dev/sdg:#012 drive state is: standby Jun 19 22:42:28 Tower root: #012/dev/sdm:#012 drive state is: standby Jun 19 22:42:28 Tower root: #012/dev/sdl:#012 drive state is: standby Jun 19 22:42:28 Tower root: Total Spundown: 7 Jun 19 22:42:58 Tower root: #012/dev/sdb:#012 drive state is: standby Jun 19 22:42:58 Tower root: #012/dev/sdc:#012 drive state is: active/idle Jun 19 22:42:58 Tower root: #012/dev/sde:#012 drive state is: standby Jun 19 22:42:58 Tower root: #012/dev/sdf:#012 drive state is: standby Jun 19 22:42:58 Tower root: #012/dev/sdg:#012 drive state is: standby Jun 19 22:42:58 Tower root: #012/dev/sdm:#012 drive state is: standby Jun 19 22:42:58 Tower root: #012/dev/sdl:#012 drive state is: standby Jun 19 22:42:58 Tower root: Total Spundown: 6 3. Select where to move the folder and started the moving process. At this point the second disk - destination - from array started Quote Jun 19 22:43:28 Tower root: #012/dev/sdb:#012 drive state is: standby Jun 19 22:43:28 Tower root: #012/dev/sdc:#012 drive state is: active/idle Jun 19 22:43:28 Tower root: #012/dev/sde:#012 drive state is: standby Jun 19 22:43:28 Tower root: #012/dev/sdf:#012 drive state is: standby Jun 19 22:43:28 Tower root: #012/dev/sdg:#012 drive state is: standby Jun 19 22:43:28 Tower root: #012/dev/sdm:#012 drive state is: standby Jun 19 22:43:28 Tower root: #012/dev/sdl:#012 drive state is: active/idle Jun 19 22:43:28 Tower root: Total Spundown: 5 4. Since the settings of the CA Auto Turbo Write Mode were Disks Allowed To Be Spun Down Before Invoking Turbo Mode: 5, with 2 disks already spinning the reconstruct write mode was activated and activating the reconstruct write leaded to set all disks from array to active. Quote Jun 19 22:43:28 Tower root: Entering Turbo Mode Jun 19 22:43:28 Tower kernel: mdcmd (85): set md_write_method 1 Jun 19 22:43:28 Tower kernel: Jun 19 22:43:58 Tower root: #012/dev/sdb:#012 drive state is: active/idle Jun 19 22:43:58 Tower root: #012/dev/sdc:#012 drive state is: active/idle Jun 19 22:43:58 Tower root: #012/dev/sde:#012 drive state is: active/idle Jun 19 22:43:58 Tower root: #012/dev/sdf:#012 drive state is: active/idle Jun 19 22:43:58 Tower root: #012/dev/sdg:#012 drive state is: active/idle Jun 19 22:43:58 Tower root: #012/dev/sdm:#012 drive state is: active/idle Jun 19 22:43:58 Tower root: #012/dev/sdl:#012 drive state is: active/idle Jun 19 22:43:58 Tower root: Total Spundown: 0 Note: Remeber that I have 7 disks into my array and I want Turbo Mode to kick in when 2 or more disks are spinning (7-2=5). Results without Turbo Mode (reconstruct write) active Quote 10.6GB transferred in 5min 27sec => 10600 / 327=32.41MB/s Results with Turbo Mode (reconstruct write) active Quote 10.6GB transferred in 3min 52sec => 10600 / 232=45.68MB/s With Turbo Mode enabled there is an increase of 30% of the transfer speed, in my case. That would mean If you want to transfer 1TB of data with Turbo Mode enabled it will take 1000000 / 45.68 =21891 sec (6h 4min 51 sec) vs 1000000 / 32.41 = 30854 sec (8h 34min 14 sec) without Turbo Mode enabled. The downside of the reconstruct write enabled is that the power consumption is bigger and also the generated heat. Once more thank you very much Squid for your clarifications and the quick reply. Edited June 20, 2018 by FlorinB Link to comment
arturovf Posted April 8, 2021 Share Posted April 8, 2021 thank you @Squid @FlorinB for explain clearly how it works Link to comment
Recommended Posts