Re: What's the typical RAID10 setup?
From: Roberto Spadim <hidden>
Date: 2011-02-02 16:13:52
ssd time to make head positioning (latency): <0.1ms hd max time to make head positioning (latency): 10ms ssd rate of read: 270MB/s random/sequential read (excluding latency) check that ssd is BLOCK (4kb mostly) oriented hd rate of read? 130MB/s sequential read? check that hd is BIT oriented write rate? random/sequencial? with these answers we can make a simple 'time' model of read/write, per device (use of raid0 (/dev/md0) is a device!, raid1 too (/dev/md1), raid5 (/dev/md2) ,raid6 (/dev/md3)) any device have this variables... just make a model and use the model to optimize minimal time to execute write/read 2011/2/2 Roberto Spadim [off-list ref]:
pros against closest head: since we can use raid1 with identical disks (buyed at same time, with near serial numbers) we can have disks with same time to fail using closest head, the more used disk, will fail first failing first we have time to change it (while the second isn't as used as first device) but, think about it... it's like a write-mostly not? 2011/2/2 Roberto Spadim [off-list ref]:quoted
check that, read balance is: time based closest head round robin algorithms plus.... failed device problem and write-mostly with time based we can drop write-mosty.... just make the time of that device very high 2011/2/2 Roberto Spadim [off-list ref]:quoted
it's cpu/mem consuming if use a complex model, and less cpu/mem consuming if use a single model another idea.... many algorithm.... first execute time based it selected a bug (failed) device execute closest head if selected a bug (failed) device execute round robin if selected a bug (failed) device select first usable non write-mostly if selected a bug (failed) device select first usable write-mostly if end of devices, stop md raid to make this, today... we need a read_algorithm at /sys/block/md0/xxxxxx, to select what algorith to use, write algorithm is based on raid being used.. raid0 make linear and stripe, raid1 make mirror, there's no algorithm to use here... we need some files at /sys/block/md0/xxx to manage 'devices' time model (parameters) we need a adaptive algorithm to update parameters and make it closest possible to real model of 'devices' a raid0 have global parameters, inside raid0 devices have per device parameters a raid1 over raid0, should use raid0 parameters raid0 over devices, should use devices parameters 2011/2/2 Roberto Spadim [off-list ref]:quoted
time based: is the time to: HD:head positioning , SSD: time to send command to ROM chip HD:read/write time (disk speed - rpm), SSD: time to write/read (time to ssd rom chip receive bytes) that's time based what is fast por read? consider that time based must know that disk is doing a I/O and that you have a time to end, this time to end is another time in algorithm for example: NBD (network block device) time to send read message + time to send command to rom or head positioning read/write time: time to nbd server return the read/write bytes what algorithm should do? calculate all time or all mirrors, including time to end current request (if only one request could be processed, or if allow more than 1 request, the time spent to start our command) after all time calculated, select the minimal value/device that's time based it's not based on round robin it's not based on closest head it's based on device speed to: *(1)position head/send rom command *(2)read/write time (per total of bytes read/write) *(3)time to start out request command (if don't allow more than 1 request per time, don't have a device queue) the total time per device will tell us the best device to read if we mix, nbd + ssd + hdd (5000rpm) + hdd(7500rpm) + hdd(10000rpm) + hdd(15000rpm) we can get the best read time using this algorithm the problem? we must run a constante benchmark to get this values *(1) *(2) *(3) and calculate good values of time spent on each process resuming... whe need a model of each device (simple-constants or very complex-neural network?), and calculate time spent per device nice? 2011/2/2 Robin Hill [off-list ref]:quoted
On Tue Feb 01, 2011 at 09:12:11PM -0200, Roberto Spadim wrote:quoted
but the best algorithm is time based (minimize time to access data)And what do you think takes the time accessing the data? In a rotating disk, it's moving the heads - that's why the current strategy is nearest head. In an SSD there's no head movement, so access time should be the same for accessing any data, making it pretty much irrelevant which strategy is used. Cheers, Robin-- Roberto Spadim Spadim Technology / SPAEmpresarial-- Roberto Spadim Spadim Technology / SPAEmpresarial-- Roberto Spadim Spadim Technology / SPAEmpresarial-- Roberto Spadim Spadim Technology / SPAEmpresarial
-- Roberto Spadim Spadim Technology / SPAEmpresarial -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html