ios per second and raid 10 - Storage

This is a discussion on ios per second and raid 10 - Storage ; First post on storage so be gentle. Generally, do iops scale in a linier fashion when adding disks to a Raid 10 set. I will be configuring a new server for our main SQL Server database. I will have 12 ...

+ Reply to Thread
Results 1 to 3 of 3

Thread: ios per second and raid 10

  1. ios per second and raid 10

    First post on storage so be gentle.

    Generally, do iops scale in a linier fashion when adding disks to a Raid 10
    set.

    I will be configuring a new server for our main SQL Server database. I will
    have 12 SAS disks available for the main database (logs on another set of
    disks).
    Most of the usage pattern will be random read with some random write (OLTP).
    We do very few index/table scans. The database is too complex to spend the
    time required to analyse each database table/index to optimise placement on
    spindles. With over 600 concurrent users I wish to get the best possible ios
    per second from my disks.

    I could assign all 12 disks to one RAID 10. I have done this in the past and
    this has maximised MB/sec.
    Alternatively, I could create 3 RAID 10 sets and a database file on each
    (belonging to a single Sql Server filegroup). SQL Server will then round
    robin the data. Could this give better iops if the access is truly random?

    Is this true? If an I/O request is sent to a RAID 10 set, then all the heads
    will move to retrieve the stripped data. The next request will queue up
    behind (I realise that scatter/gather/NCQ kicks in). Whereas If there are
    three sets of RAID 10's, each could be processing an I/O request at the same
    time. A four disk RAID 10 will give us the MB/Sec we need but will having
    three of them reduce latency compared to one RAID 10 of 12 disks?

    Any input appreciated.

    Regards
    Paul








  2. RE: ios per second and raid 10

    If you goal is to maximize IO throughput at minimum latency then the larger
    RAID10 set is the best way to achieve your goal. If data integrity and
    recoverability in worst case scenarios then the smaller RAID groups may be
    the best bet.

    Consider your IO throughput per spindle to be approximately 180 IOP/sec to
    achieve latency below 20ms (assuming 15K drives and effective write cache
    capability)
    12 disk RAID10 sets will sustain ~2160 IOPS/sec.
    4 disk RAID10 sets your sustain ~720 IOPS/sec.

    If you have DB’s on a 4 disk RAID10 set and you have sustained peak IO
    requirements greater than 720IOP/sec you may hit latency issues impacting
    performance. Having the same DB’s on the 10 disk RAID10 set you can achieve
    better IO balance for peaks assuming you don’t overload total IO beyond ~2160
    IOPS. Pooling storage to support a common IO workload, in this case small
    block random is typically a good practice, ensure you isolate you logs onto
    separate physical disks.

    Using multiple 4 disk RAID10 sets can minimize data loss if you are unlucky
    enough to compromise the structural integrity due to multiple drive failures
    or volume corruption. This may be a better way to deploy if you know
    performance can be met by using smaller RAID sets.

    Regards
    Dave Lalor (Microsoft)


    "Paul Cahill" wrote:

    > First post on storage so be gentle.
    >
    > Generally, do iops scale in a linier fashion when adding disks to a Raid 10
    > set.
    >
    > I will be configuring a new server for our main SQL Server database. I will
    > have 12 SAS disks available for the main database (logs on another set of
    > disks).
    > Most of the usage pattern will be random read with some random write (OLTP).
    > We do very few index/table scans. The database is too complex to spend the
    > time required to analyse each database table/index to optimise placement on
    > spindles. With over 600 concurrent users I wish to get the best possible ios
    > per second from my disks.
    >
    > I could assign all 12 disks to one RAID 10. I have done this in the past and
    > this has maximised MB/sec.
    > Alternatively, I could create 3 RAID 10 sets and a database file on each
    > (belonging to a single Sql Server filegroup). SQL Server will then round
    > robin the data. Could this give better iops if the access is truly random?
    >
    > Is this true? If an I/O request is sent to a RAID 10 set, then all the heads
    > will move to retrieve the stripped data. The next request will queue up
    > behind (I realise that scatter/gather/NCQ kicks in). Whereas If there are
    > three sets of RAID 10's, each could be processing an I/O request at the same
    > time. A four disk RAID 10 will give us the MB/Sec we need but will having
    > three of them reduce latency compared to one RAID 10 of 12 disks?
    >
    > Any input appreciated.
    >
    > Regards
    > Paul
    >
    >
    >
    >
    >
    >
    >


  3. Re: ios per second and raid 10

    Dear Dave

    Thanks for the reply and the figures. Much appreciated.

    Paul


    "Dave" wrote in message
    news:C1E8D051-06C7-404C-B835-6D17CB4B586A@microsoft.com...
    > If you goal is to maximize IO throughput at minimum latency then the
    > larger
    > RAID10 set is the best way to achieve your goal. If data integrity and
    > recoverability in worst case scenarios then the smaller RAID groups may be
    > the best bet.
    >
    > Consider your IO throughput per spindle to be approximately 180 IOP/sec to
    > achieve latency below 20ms (assuming 15K drives and effective write cache
    > capability)
    > 12 disk RAID10 sets will sustain ~2160 IOPS/sec.
    > 4 disk RAID10 sets your sustain ~720 IOPS/sec.
    >
    > If you have DB’s on a 4 disk RAID10 set and you have sustained peak IO
    > requirements greater than 720IOP/sec you may hit latency issues impacting
    > performance. Having the same DB’s on the 10 disk RAID10 set you can
    > achieve
    > better IO balance for peaks assuming you don’t overload total IO beyond
    > ~2160
    > IOPS. Pooling storage to support a common IO workload, in this case small
    > block random is typically a good practice, ensure you isolate you logs
    > onto
    > separate physical disks.
    >
    > Using multiple 4 disk RAID10 sets can minimize data loss if you are
    > unlucky
    > enough to compromise the structural integrity due to multiple drive
    > failures
    > or volume corruption. This may be a better way to deploy if you know
    > performance can be met by using smaller RAID sets.
    >
    > Regards
    > Dave Lalor (Microsoft)
    >
    >
    > "Paul Cahill" wrote:
    >
    >> First post on storage so be gentle.
    >>
    >> Generally, do iops scale in a linier fashion when adding disks to a Raid
    >> 10
    >> set.
    >>
    >> I will be configuring a new server for our main SQL Server database. I
    >> will
    >> have 12 SAS disks available for the main database (logs on another set of
    >> disks).
    >> Most of the usage pattern will be random read with some random write
    >> (OLTP).
    >> We do very few index/table scans. The database is too complex to spend
    >> the
    >> time required to analyse each database table/index to optimise placement
    >> on
    >> spindles. With over 600 concurrent users I wish to get the best possible
    >> ios
    >> per second from my disks.
    >>
    >> I could assign all 12 disks to one RAID 10. I have done this in the past
    >> and
    >> this has maximised MB/sec.
    >> Alternatively, I could create 3 RAID 10 sets and a database file on each
    >> (belonging to a single Sql Server filegroup). SQL Server will then round
    >> robin the data. Could this give better iops if the access is truly
    >> random?
    >>
    >> Is this true? If an I/O request is sent to a RAID 10 set, then all the
    >> heads
    >> will move to retrieve the stripped data. The next request will queue up
    >> behind (I realise that scatter/gather/NCQ kicks in). Whereas If there are
    >> three sets of RAID 10's, each could be processing an I/O request at the
    >> same
    >> time. A four disk RAID 10 will give us the MB/Sec we need but will having
    >> three of them reduce latency compared to one RAID 10 of 12 disks?
    >>
    >> Any input appreciated.
    >>
    >> Regards
    >> Paul
    >>
    >>
    >>
    >>
    >>
    >>
    >>


+ Reply to Thread