Re: What's the typical RAID10 setup?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <roberto@xxxxxxxxxxxxx>:
> 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 <robin@xxxxxxxxxxxxxxx>:
>> On Tue Feb 01, 2011 at 09:12:11PM -0200, Roberto Spadim wrote:
>>
>>> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux