[Disksim-users] Requests stripped at I/O driver for RAID-0

Greg Ganger ganger at ece.cmu.edu
Sun Feb 26 23:46:39 EST 2012


You understand it correctly.  You can thinking of it like a striping
device driver (as provided in most OSs), or you can also think of the
driver and the controller together as the controller (with 0 for the
appropriate delays, the behavior would be the same).

As for why there aren't logical organizations in the controllers...
was on the to-do list, but never at the top of it.

Best luck,

Greg


On Sun, 26 Feb 2012, Yipkei Kwok wrote:

> Hi,
>
> On real hardware, requests are supposed to be stripped in the RAID
> controller for a RAID-0 configuration. However, it is not the case in
> DiskSim 4.0. When a request arrives the I/O driver, iodriver_request()
> calls logorg_maprequest() to divide the request into stripes. Then,
> iodriver_request() calls handle_new_request() to schedule each stripe
> to the corresponding I/O-driver queue. The number of I/O driver queues
> equals the number of disks and each stripe is sent to the queue
> corresponding to the disk that is going to service the stripe.
>
> 1. Is it a problem with my parameter file? I copied below the
> parameters of the I/O driver, controller, topology, and logical
> organization below. I am attaching the entire parameter file in this
> email but I am not sure if the mailing list server allows attachments.
>
> 2. If it is not because of a mistake in my parameter file, is there
> any reason when DiskSim is designed this way?
>
> Please help. Thank you.
>
>
>
>
> disksim_iodriver DRIVER0 {
> type = 1,
> Constant access time = 0.0,
>   Scheduler = disksim_ioqueue {
>      Scheduling policy = 1,
>      Cylinder mapping strategy = 1,
>      Write initiation delay = 0.0,
>      Read initiation delay = 0.0,
>      Sequential stream scheme = 0,
>      Maximum concat size = 0,
>      Overlapping request scheme = 0,
>      Sequential stream diff maximum = 0,
>      Scheduling timeout scheme = 0,
>      Timeout time/weight = 30,
>      Timeout scheduling = 3,
>      Scheduling priority scheme = 0,
>      Priority scheduling = 3
>   }, # end of Scheduler
>   Use queueing in subsystem = 1
> } # end of DRV0 spec
>
> disksim_ctlr CTLR0 {
> type = 3,
> Scale for delays = 0.0,
> Bulk sector transfer time = 0.0,
> Maximum queue length = 2147483646,
> Print stats =  1,
> Scheduler = disksim_ioqueue {
>     Scheduling policy = 1,
>     Cylinder mapping strategy = 0,
>     Write initiation delay = 0.0,
>     Read initiation delay = 0.0,
>     Sequential stream scheme = 0,
>     Maximum concat size = 0,
>     Overlapping request scheme = 0,
>     Sequential stream diff maximum = 0,
>     Scheduling timeout scheme = 0,
>     Timeout time/weight = 6,
>     Timeout scheduling = 4,
>     Scheduling priority scheme = 0,
>     Priority scheduling = 4
> },  # end of ioqueue spec
> Cache = disksim_cachemem {
>     Cache size = 0,
>     SLRU segments = [ 1.0 ],
>     Line size = 64,
>     Bit granularity = 1,
>     Lock granularity = 64,
>     Shared read locks = 1,
>     Max request size = 512,
>     Replacement policy = 2,
>     Allocation policy = 0,
>     Write scheme = 3,
>     Flush policy = 0,
>     Flush period = 0.0,
>     Flush idle delay = -1.0,
>     Flush max line cluster = 8,
>     Read prefetch type  = 0,
>     Write prefetch type = 0,
>     Line-by-line fetches = 0,
>     Max gather = 7
> },  # end of cachemem spec
> Max per-disk pending count = 16
> } # end of CTLR0 spec
>
> # system topology
> topology disksim_iodriver driver0 [
>     disksim_bus bus0 [
>          disksim_ctlr ctlr0 [
>               disksim_bus bus1 [
>                    disksim_disk disk0 [],
>                    disksim_disk disk1 []
>               ] # end of bus1
>          ] # end of ctlr0
>     ] # end of bus0
> ] # end of system topology
>
> disksim_logorg org0 {
>   Addressing mode = Array,
>   Distribution scheme = Striped,
>   Redundancy scheme = Noredun,
>   devices = [ disk0 .. disk1 ],
>   Stripe unit  =  1,
>   Synch writes for safety =  0,
>   Number of copies =  2,
>   Copy choice on read =  6,
>   RMW vs. reconstruct =  0.5,
>   Parity stripe unit =  64,
>   Parity rotation type =  1,
>   Time stamp interval =  0.000000,
>   Time stamp start time =  60000.000000,
>   Time stamp stop time =  10000000000.000000,
>   Time stamp file name =  stamps
> } # end of logorg org0 spec
>



More information about the Disksim-users mailing list