Tag Archives: sas

SAS磁盘和SSD磁盘的测试

目录

  • 1 测试目的
  • 2 测试环境
  • 3 测试工具
  • 4 测试方案
  • 5 测试脚本
  • 6 测试结果
  • 7 结论分析

1. 测试目的

测试由SAS磁盘组成的RAID5和SSD组成RAID5的性能,并进行对比。最后分析结果。

2. 测试环境

2.1 测试对象

测试对象是两个RAID5。 * 第一个RAID5由7块SAS硬盘组成。 * 第二个RAID5由9块SSD硬盘组成。

2.2 硬件配置

2.2.1 服务器

CPU是 Intel(R) Xeon(R) CPU E5620 @ 2.40GHz

内存 48GB

2.2.2 RAID卡

是HP服务器上集成的RAID卡,型号是Dell PowerEdge RAID Controller H700 Integrated,序列号是1BQ03ZY。

2.2.3 SAS的RAID5信息

RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3
Size                : 1.633 TB
Parity Size         : 278.875 GB
State               : Optimal
Strip Size          : 64 KB
Number Of Drives    : 7
Span Depth          : 1
Default Cache Policy: WriteBack, ReadAdaptive, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAdaptive, Direct, No Write Cache if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Disk's Default

2.2.4 SSD的RAID5信息

RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3
Size                : 1.160 TB
Parity Size         : 148.5 GB
State               : Optimal
Strip Size          : 64 KB
Number Of Drives    : 9
Span Depth          : 1
Default Cache Policy: WriteBack, ReadAdaptive, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAdaptive, Direct, No Write Cache if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Disk's Default

2.2.5 硬盘

2.2.5.1 SAS硬盘

PD Type: SAS
Raw Size: 279.396 GB [0x22ecb25c Sectors]
Non Coerced Size: 278.896 GB [0x22dcb25c Sectors]
Coerced Size: 278.875 GB [0x22dc0000 Sectors]
Firmware state: Online, Spun Up
Device Firmware Level: ES64
Shield Counter: 0
Successful diagnostics completion on :  N/A
SAS Address(0): 0x5000c50043e6d731
SAS Address(1): 0x0
Connected Port Number: 0(path0) 
Inquiry Data: SEAGATE ST3300657SS     ES646SJ3TLCJ            
FDE Enable: Disable
Secured: Unsecured
Locked: Unlocked
Needs EKM Attention: No
Foreign State: None 
Device Speed: 6.0Gb/s 
Link Speed: 6.0Gb/s 
Media Type: Hard Disk Device
Drive Temperature :45C (113.00 F)
PI Eligibility:  No 
Drive is formatted for PI information:  No
PI: No PI
Drive's write cache : Disabled
Port-0 :
Port status: Active
Port's Linkspeed: 6.0Gb/s 
Port-1 :
Port status: Active
Port's Linkspeed: Unknown 
Drive has flagged a S.M.A.R.T alert : No

2.2.5.2 SSD硬盘

PD Type: SATA
Raw Size: 149.049 GB [0x12a19eb0 Sectors]
Non Coerced Size: 148.549 GB [0x12919eb0 Sectors]
Coerced Size: 148.5 GB [0x12900000 Sectors]
Firmware state: Online, Spun Up
Device Firmware Level: 0362
Shield Counter: 0
Successful diagnostics completion on :  N/A
SAS Address(0): 0x500065b36789abe8
Connected Port Number: 0(path0) 
Inquiry Data: BTPR1455017J160DGN  INTEL SSDSA2CW160G3                     4PC10362
FDE Enable: Disable
Secured: Unsecured
Locked: Unlocked
Needs EKM Attention: No
Foreign State: None 
Device Speed: 3.0Gb/s 
Link Speed: 3.0Gb/s 
Media Type: Solid State Device
Drive:  Not Certified
Drive Temperature : N/A
PI Eligibility:  No 
Drive is formatted for PI information:  No
PI: No PI
Drive's write cache : Disabled
Drive's NCQ setting : Disabled
Port-0 :
Port status: Active
Port's Linkspeed: 3.0Gb/s 
Drive has flagged a S.M.A.R.T alert : No

2.3 软件配置

由于被测试的的RAID5已经被正在使用,因此不能直接测试裸设备。

RAID5上创建有ext4文件系统。

3 测试工具

一般的测试工具有iometer、fio、bonnie++、iozone、orion。

最后选择fio

fio的《HOWTO》文档在 http://www.bluestop.org/fio/HOWTO.txt

使用fio的例子有 http://marcitland.blogspot.com/2011/06/scst-ssd-arrays.html

4 测试方案

主要测试的是IOPS。

SAS和SSD都有的测试项目:

  • 顺序读
  • 顺序写
  • CFQ随机读
  • CFQ随机写

SSD中还要测试deadline,noop的影响,SSD还要单独加的测试项目有:

  • deadline随机读
  • deadline随机写
  • noop随机读
  • noop随机写

SSD为了和其他测评(http://marcitland.blogspot.com/2011/06/scst-ssd-arrays.html) 进行对比,还需要进行的测试项目有:

  • noop libaio 4k随机读
  • noop libaio 4k随机写

通过改变fio参数配置可以测试出RAID组的IOPS峰值,但是这次是对比测试,所以应该每个测试项目都有规定的参数配置。

5 测试脚本

fio的测试脚本。

5.1 顺序读

[global]
runtime=120
time_based
group_reporting
directory=/var/fio-test
ioscheduler=cfq
refill_buffers
[innodb-data]
filename=test-innodb.dat
bs=16K
ioengine=psync
rw=read
size=10G
direct=1
numjobs=16

顺序写

[global]
runtime=120
time_based
group_reporting
directory=/var/fio-test
ioscheduler=cfq
refill_buffers
[innodb-data]
filename=test-innodb.dat
bs=16K
ioengine=psync
rw=write
size=10G
direct=1
numjobs=1

5.2 CFQ随机读

[global]
runtime=120
time_based
group_reporting
directory=/var/fio-test
ioscheduler=cfq
refill_buffers
[innodb-data]
filename=test-innodb.dat
bs=16K
ioengine=psync
rw=randread
size=1G
direct=1
numjobs=128

5.3 CFQ随机写

[global]
runtime=120
time_based
group_reporting
directory=/var/fio-test
ioscheduler=cfq
refill_buffers
[innodb-data]
filename=test-innodb.dat
bs=16K
ioengine=psync
rw=randwrite
size=10G
direct=1
numjobs=32

5.4 deadline随机读

[global]
runtime=120
time_based
group_reporting
directory=/var/fio-test
ioscheduler=deadline
refill_buffers
[innodb-data]
filename=test-innodb.dat
bs=16K
ioengine=psync
rw=randread
size=10G
direct=1
numjobs=128

5.5 deadline随机写

[global]
runtime=120
time_based
group_reporting
directory=/var/fio-test
ioscheduler=deadline
refill_buffers
[innodb-data]
filename=test-innodb.dat
bs=16K
ioengine=psync
rw=randwrite
size=10G
direct=1
numjobs=32

5.6 noop随机读

[global]
runtime=120
time_based
group_reporting
directory=/var/fio-test
ioscheduler=noop
refill_buffers
[innodb-data]
filename=test-innodb.dat
bs=16K
ioengine=psync
rw=randread
size=10G
direct=1
numjobs=128

5.7 noop随机写

[global]
runtime=120
time_based
group_reporting
directory=/var/fio-test
ioscheduler=noop
refill_buffers
[innodb-data]
filename=test-innodb.dat
bs=16K
ioengine=psync
rw=randwrite
size=10G
direct=1
numjobs=32

5.8 noop libaio 4k随机读

[global]
runtime=120
time_based
group_reporting
directory=/var/fio-test
ioscheduler=noop
refill_buffers
[innodb-data]
filename=test-innodb.dat
bs=4K
ioengine=libaio
rw=randread
size=10G
direct=1
numjobs=1
iodepth=64

5.9 noop libaio 4k随机写

[global]
runtime=120
time_based
group_reporting
directory=/var/fio-test
ioscheduler=noop
refill_buffers
[innodb-data]
filename=test-innodb.dat
bs=4K
ioengine=libaio
rw=randwrite
size=10G
direct=1
numjobs=1
iodepth=64

6 测试结果

6.1 SAS RAID5

6.1.1 顺序读

innodb-data: (groupid=0, jobs=16): err= 0: pid=22420
  read : io=42586MB, bw=363387KB/s, iops=22711 , runt=120003msec
    clat (usec): min=41 , max=632714 , avg=702.41, stdev=11985.50
     lat (usec): min=42 , max=632714 , avg=702.58, stdev=11985.51
    clat percentiles (usec):
     |  1.00th=[   48],  5.00th=[   49], 10.00th=[   50], 20.00th=[   51],
     | 30.00th=[   52], 40.00th=[   53], 50.00th=[   55], 60.00th=[   57],
     | 70.00th=[   62], 80.00th=[   64], 90.00th=[   75], 95.00th=[  107],
     | 99.00th=[  253], 99.50th=[  524], 99.90th=[228352], 99.95th=[259072],
     | 99.99th=[321536]
    bw (KB/s)  : min=   29, max=116274, per=6.34%, avg=23023.26, stdev=13540.79
    lat (usec) : 50=7.63%, 100=86.77%, 250=4.58%, 500=0.51%, 750=0.05%
    lat (usec) : 1000=0.01%
    lat (msec) : 2=0.03%, 4=0.03%, 10=0.06%, 20=0.01%, 50=0.02%
    lat (msec) : 100=0.02%, 250=0.22%, 500=0.06%, 750=0.01%
  cpu          : usr=0.51%, sys=2.40%, ctx=2737544, majf=0, minf=471
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=2725474/w=0/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
   READ: io=42586MB, aggrb=363387KB/s, minb=363387KB/s, maxb=363387KB/s, mint=120003msec, maxt=120003msec

Disk stats (read/write):
  sdb: ios=2722328/233, merge=1552/64, ticks=1637980/90548, in_queue=1728388, util=99.99%

6.1.2 顺序写

innodb-data: (groupid=0, jobs=1): err= 0: pid=22985
  write: io=22942MB, bw=195766KB/s, iops=12235 , runt=120001msec
    clat (usec): min=44 , max=24093 , avg=74.27, stdev=58.43
     lat (usec): min=44 , max=24093 , avg=74.46, stdev=58.43
    clat percentiles (usec):
     |  1.00th=[   52],  5.00th=[   53], 10.00th=[   54], 20.00th=[   55],
     | 30.00th=[   56], 40.00th=[   58], 50.00th=[   67], 60.00th=[   81],
     | 70.00th=[   85], 80.00th=[   89], 90.00th=[  100], 95.00th=[  108],
     | 99.00th=[  139], 99.50th=[  258], 99.90th=[  278], 99.95th=[  282],
     | 99.99th=[  326]
    bw (KB/s)  : min=172320, max=247680, per=99.94%, avg=195645.72, stdev=14009.57
    lat (usec) : 50=0.03%, 100=89.07%, 250=10.39%, 500=0.52%, 750=0.01%
    lat (usec) : 1000=0.01%
    lat (msec) : 10=0.01%, 20=0.01%, 50=0.01%
  cpu          : usr=10.10%, sys=16.97%, ctx=1469742, majf=0, minf=21
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=1468257/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
  WRITE: io=22942MB, aggrb=195765KB/s, minb=195765KB/s, maxb=195765KB/s, mint=120001msec, maxt=120001msec

Disk stats (read/write):
  sdb: ios=0/1468191, merge=0/93, ticks=0/91048, in_queue=90156, util=72.75%

6.1.3 CFQ随机读

innodb-data: (groupid=0, jobs=128): err= 0: pid=24728
  read : io=10040MB, bw=85589KB/s, iops=5349 , runt=120117msec
    clat (usec): min=51 , max=3238.9K, avg=23905.90, stdev=45355.49
     lat (usec): min=51 , max=3238.9K, avg=23906.07, stdev=45355.49
    clat percentiles (usec):
     |  1.00th=[   70],  5.00th=[   89], 10.00th=[ 1816], 20.00th=[ 3376],
     | 30.00th=[ 5088], 40.00th=[ 7776], 50.00th=[11328], 60.00th=[16320],
     | 70.00th=[23680], 80.00th=[35584], 90.00th=[59136], 95.00th=[86528],
     | 99.00th=[164864], 99.50th=[207872], 99.90th=[342016], 99.95th=[464896],
     | 99.99th=[2056192]
    bw (KB/s)  : min=    5, max= 1682, per=0.80%, avg=683.02, stdev=211.68
    lat (usec) : 100=5.28%, 250=1.16%, 500=0.60%, 750=0.26%, 1000=0.12%
    lat (msec) : 2=3.85%, 4=12.44%, 10=23.20%, 20=18.56%, 50=21.67%
    lat (msec) : 100=9.20%, 250=3.38%, 500=0.24%, 750=0.02%, 1000=0.01%
    lat (msec) : 2000=0.01%, >=2000=0.01%
  cpu          : usr=0.03%, sys=0.11%, ctx=667321, majf=0, minf=3773
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=642543/w=0/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
   READ: io=10040MB, aggrb=85588KB/s, minb=85588KB/s, maxb=85588KB/s, mint=120117msec, maxt=120117msec

Disk stats (read/write):
  sdb: ios=642520/46, merge=0/13, ticks=15337688/11268, in_queue=17222388, util=99.95%

6.1.4 CFQ随机写

innodb-data: (g=0): rw=randwrite, bs=16K-16K/16K-16K, ioengine=psync, iodepth=1
fio 2.0.7
Starting 32 processes
Jobs: 32 (f=32): [wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww] [100.0% done] [0K/17235K /s] [0 /1052  iops] [eta 00m:00s]
innodb-data: (groupid=0, jobs=32): err= 0: pid=32245
  write: io=2044.2MB, bw=17406KB/s, iops=1087 , runt=120256msec
    clat (usec): min=50 , max=1439.2K, avg=29404.01, stdev=109807.76
     lat (usec): min=50 , max=1439.2K, avg=29404.22, stdev=109807.77
    clat percentiles (usec):
     |  1.00th=[   61],  5.00th=[   63], 10.00th=[   64], 20.00th=[   68],
     | 30.00th=[   77], 40.00th=[   95], 50.00th=[  126], 60.00th=[  266],
     | 70.00th=[ 4320], 80.00th=[ 6752], 90.00th=[41216], 95.00th=[191488],
     | 99.00th=[610304], 99.50th=[790528], 99.90th=[1044480], 99.95th=[1155072],
     | 99.99th=[1236992]
    bw (KB/s)  : min=   16, max= 6464, per=3.26%, avg=566.74, stdev=575.48
    lat (usec) : 100=42.49%, 250=17.43%, 500=0.18%, 750=0.04%, 1000=0.08%
    lat (msec) : 2=0.28%, 4=7.75%, 10=17.52%, 20=3.39%, 50=1.16%
    lat (msec) : 100=1.91%, 250=3.93%, 500=2.35%, 750=0.93%, 1000=0.40%
    lat (msec) : 2000=0.16%
  cpu          : usr=0.04%, sys=0.12%, ctx=261706, majf=0, minf=769
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=130823/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
  WRITE: io=2044.2MB, aggrb=17405KB/s, minb=17405KB/s, maxb=17405KB/s, mint=120256msec, maxt=120256msec

Disk stats (read/write):
  sdb: ios=1/131084, merge=0/108, ticks=0/195496, in_queue=195580, util=96.76%

6.2 SSD RAID5

6.2.1 顺序读

innodb-data: (groupid=0, jobs=16): err= 0: pid=16054
  read : io=44100MB, bw=376310KB/s, iops=23519 , runt=120004msec
    clat (usec): min=41 , max=560014 , avg=678.19, stdev=11623.99
     lat (usec): min=41 , max=560014 , avg=678.36, stdev=11623.99
    clat percentiles (usec):
     |  1.00th=[   48],  5.00th=[   49], 10.00th=[   50], 20.00th=[   51],
     | 30.00th=[   52], 40.00th=[   53], 50.00th=[   56], 60.00th=[   59],
     | 70.00th=[   62], 80.00th=[   64], 90.00th=[   75], 95.00th=[   87],
     | 99.00th=[  173], 99.50th=[  540], 99.90th=[224256], 99.95th=[259072],
     | 99.99th=[321536]
    bw (KB/s)  : min=   48, max=116305, per=6.35%, avg=23905.54, stdev=15041.24
    lat (usec) : 50=8.34%, 100=88.21%, 250=2.81%, 500=0.11%, 750=0.12%
    lat (usec) : 1000=0.02%
    lat (msec) : 2=0.02%, 4=0.01%, 10=0.01%, 20=0.01%, 50=0.03%
    lat (msec) : 100=0.03%, 250=0.22%, 500=0.06%, 750=0.01%
  cpu          : usr=0.53%, sys=2.38%, ctx=2829040, majf=0, minf=455
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=2822416/w=0/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
   READ: io=44100MB, aggrb=376309KB/s, minb=376309KB/s, maxb=376309KB/s, mint=120004msec, maxt=120004msec

Disk stats (read/write):
  sdb: ios=2816078/158, merge=698/148, ticks=1612092/77104, in_queue=1689012, util=99.98%

6.2.2 顺序写

innodb-data: (groupid=0, jobs=1): err= 0: pid=16469
  write: io=25757MB, bw=219787KB/s, iops=13736 , runt=120001msec
    clat (usec): min=46 , max=12234 , avg=65.28, stdev=37.39
     lat (usec): min=46 , max=12234 , avg=65.52, stdev=37.39
    clat percentiles (usec):
     |  1.00th=[   52],  5.00th=[   53], 10.00th=[   54], 20.00th=[   55],
     | 30.00th=[   55], 40.00th=[   55], 50.00th=[   56], 60.00th=[   57],
     | 70.00th=[   58], 80.00th=[   78], 90.00th=[   88], 95.00th=[  104],
     | 99.00th=[  143], 99.50th=[  237], 99.90th=[  258], 99.95th=[  266],
     | 99.99th=[  286]
    bw (KB/s)  : min=203168, max=251648, per=100.00%, avg=219814.36, stdev=5652.50
    lat (usec) : 50=0.01%, 100=93.74%, 250=5.94%, 500=0.30%, 750=0.01%
    lat (usec) : 1000=0.01%
    lat (msec) : 10=0.01%, 20=0.01%
  cpu          : usr=12.65%, sys=17.75%, ctx=1649968, majf=0, minf=21
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=1648416/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
  WRITE: io=25757MB, aggrb=219786KB/s, minb=219786KB/s, maxb=219786KB/s, mint=120001msec, maxt=120001msec

Disk stats (read/write):
  sdb: ios=0/1648261, merge=0/82, ticks=0/84016, in_queue=83260, util=67.70%

6.2.3 CFQ随机读

innodb-data: (groupid=0, jobs=128): err= 0: pid=16785
  read : io=130409MB, bw=1086.7MB/s, iops=69547 , runt=120007msec
    clat (usec): min=57 , max=9275.1K, avg=1837.55, stdev=13507.19
     lat (usec): min=58 , max=9275.1K, avg=1837.74, stdev=13507.19
    clat percentiles (usec):
     |  1.00th=[  916],  5.00th=[ 1064], 10.00th=[ 1144], 20.00th=[ 1240],
     | 30.00th=[ 1320], 40.00th=[ 1384], 50.00th=[ 1464], 60.00th=[ 1560],
     | 70.00th=[ 1672], 80.00th=[ 1864], 90.00th=[ 2768], 95.00th=[ 4704],
     | 99.00th=[ 6496], 99.50th=[ 7072], 99.90th=[ 8160], 99.95th=[ 8512],
     | 99.99th=[ 9536]
    bw (KB/s)  : min=    3, max=11378, per=0.79%, avg=8793.23, stdev=583.36
    lat (usec) : 100=0.01%, 250=0.01%, 500=0.01%, 750=0.17%, 1000=2.43%
    lat (msec) : 2=81.55%, 4=8.49%, 10=7.33%, 20=0.01%, 50=0.01%
    lat (msec) : 100=0.01%, 250=0.01%, 500=0.01%, 2000=0.01%, >=2000=0.01%
  cpu          : usr=0.25%, sys=3.12%, ctx=10784579, majf=0, minf=3754
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=8346173/w=0/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
   READ: io=130409MB, aggrb=1086.7MB/s, minb=1086.7MB/s, maxb=1086.7MB/s, mint=120007msec, maxt=120007msec

Disk stats (read/write):
  sdb: ios=8346017/46, merge=0/16, ticks=14542576/2012, in_queue=15500384, util=100.00%

6.2.4 CFQ随机写

innodb-data: (groupid=0, jobs=32): err= 0: pid=17598
  write: io=12963MB, bw=110615KB/s, iops=6913 , runt=120006msec
    clat (usec): min=48 , max=255977 , avg=4619.16, stdev=4684.01
     lat (usec): min=49 , max=255977 , avg=4619.37, stdev=4684.00
    clat percentiles (usec):
     |  1.00th=[   58],  5.00th=[   61], 10.00th=[   63], 20.00th=[   85],
     | 30.00th=[  143], 40.00th=[ 2544], 50.00th=[ 5728], 60.00th=[ 6560],
     | 70.00th=[ 7072], 80.00th=[ 7648], 90.00th=[ 9152], 95.00th=[11712],
     | 99.00th=[14784], 99.50th=[15936], 99.90th=[22912], 99.95th=[31616],
     | 99.99th=[152576]
    bw (KB/s)  : min=   79, max=25312, per=3.13%, avg=3464.55, stdev=2690.97
    lat (usec) : 50=0.01%, 100=25.29%, 250=7.81%, 500=5.03%, 750=0.41%
    lat (usec) : 1000=0.01%
    lat (msec) : 2=0.44%, 4=3.58%, 10=49.81%, 20=7.40%, 50=0.19%
    lat (msec) : 100=0.02%, 250=0.01%, 500=0.01%
  cpu          : usr=0.25%, sys=0.74%, ctx=1660025, majf=0, minf=769
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=829652/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
  WRITE: io=12963MB, aggrb=110614KB/s, minb=110614KB/s, maxb=110614KB/s, mint=120006msec, maxt=120006msec

Disk stats (read/write):
  sdb: ios=0/829541, merge=0/94, ticks=0/155936, in_queue=155300, util=81.88%

6.2.5 deadline随机读

innodb-data: (groupid=0, jobs=128): err= 0: pid=18760
  read : io=125926MB, bw=1049.4MB/s, iops=67155 , runt=120008msec
    clat (usec): min=60 , max=20605 , avg=1903.45, stdev=2380.00
     lat (usec): min=60 , max=20605 , avg=1903.61, stdev=2380.01
    clat percentiles (usec):
     |  1.00th=[  620],  5.00th=[  748], 10.00th=[  812], 20.00th=[  892],
     | 30.00th=[  956], 40.00th=[ 1020], 50.00th=[ 1080], 60.00th=[ 1160],
     | 70.00th=[ 1240], 80.00th=[ 1400], 90.00th=[ 7456], 95.00th=[ 8640],
     | 99.00th=[ 9792], 99.50th=[10176], 99.90th=[11072], 99.95th=[11456],
     | 99.99th=[12224]
    bw (KB/s)  : min= 6016, max=15520, per=0.78%, avg=8398.79, stdev=662.66
    lat (usec) : 100=0.01%, 250=0.01%, 500=0.19%, 750=5.15%, 1000=31.47%
    lat (msec) : 2=51.88%, 4=0.30%, 10=10.36%, 20=0.65%, 50=0.01%
  cpu          : usr=0.25%, sys=1.59%, ctx=8843083, majf=0, minf=3719
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=8059256/w=0/d=0, short=r=0/w=0/d=0

6.2.6 deadline随机写

innodb-data: (groupid=1, jobs=32): err= 0: pid=19175
  write: io=13133MB, bw=112058KB/s, iops=7003 , runt=120008msec
    clat (usec): min=47 , max=108446 , avg=4558.95, stdev=5001.98
     lat (usec): min=47 , max=108446 , avg=4559.15, stdev=5001.98
    clat percentiles (usec):
     |  1.00th=[   52],  5.00th=[   54], 10.00th=[   55], 20.00th=[   58],
     | 30.00th=[   87], 40.00th=[  207], 50.00th=[ 2704], 60.00th=[ 6944],
     | 70.00th=[ 7520], 80.00th=[ 8384], 90.00th=[11200], 95.00th=[13248],
     | 99.00th=[15552], 99.50th=[18304], 99.90th=[22912], 99.95th=[33536],
     | 99.99th=[88576]
    bw (KB/s)  : min= 1111, max=12181, per=3.13%, avg=3504.98, stdev=1363.81
    lat (usec) : 50=0.02%, 100=33.82%, 250=7.93%, 500=6.28%, 750=0.51%
    lat (usec) : 1000=0.02%
    lat (msec) : 2=1.21%, 4=0.55%, 10=36.57%, 20=12.76%, 50=0.29%
    lat (msec) : 100=0.03%, 250=0.01%
  cpu          : usr=0.31%, sys=0.67%, ctx=1679679, majf=0, minf=774
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=840492/d=0, short=r=0/w=0/d=0

6.2.7 noop随机读

innodb-data: (groupid=2, jobs=128): err= 0: pid=19393
  read : io=126031MB, bw=1050.2MB/s, iops=67211 , runt=120009msec
    clat (usec): min=64 , max=124904 , avg=1901.92, stdev=2412.64
     lat (usec): min=64 , max=124904 , avg=1902.08, stdev=2412.64
    clat percentiles (usec):
     |  1.00th=[  628],  5.00th=[  748], 10.00th=[  812], 20.00th=[  892],
     | 30.00th=[  956], 40.00th=[ 1020], 50.00th=[ 1080], 60.00th=[ 1160],
     | 70.00th=[ 1256], 80.00th=[ 1400], 90.00th=[ 7328], 95.00th=[ 8640],
     | 99.00th=[ 9664], 99.50th=[10048], 99.90th=[11200], 99.95th=[11712],
     | 99.99th=[40704]
    bw (KB/s)  : min= 1600, max=11273, per=0.78%, avg=8405.59, stdev=790.87
    lat (usec) : 100=0.01%, 250=0.01%, 500=0.18%, 750=5.11%, 1000=31.57%
    lat (msec) : 2=51.73%, 4=0.38%, 10=10.45%, 20=0.56%, 50=0.02%
    lat (msec) : 100=0.01%, 250=0.01%
  cpu          : usr=0.25%, sys=1.51%, ctx=8736875, majf=0, minf=3739
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=8065959/w=0/d=0, short=r=0/w=0/d=0

6.2.8 noop随机写

innodb-data: (groupid=3, jobs=32): err= 0: pid=19835
  write: io=13240MB, bw=112976KB/s, iops=7060 , runt=120007msec
    clat (usec): min=47 , max=46341 , avg=4522.20, stdev=3383.03
     lat (usec): min=47 , max=46341 , avg=4522.39, stdev=3383.02
    clat percentiles (usec):
     |  1.00th=[   53],  5.00th=[   56], 10.00th=[   67], 20.00th=[  149],
     | 30.00th=[ 2288], 40.00th=[ 4080], 50.00th=[ 5472], 60.00th=[ 5920],
     | 70.00th=[ 6368], 80.00th=[ 6880], 90.00th=[ 7712], 95.00th=[ 9280],
     | 99.00th=[14144], 99.50th=[15424], 99.90th=[21632], 99.95th=[23936],
     | 99.99th=[32640]
    bw (KB/s)  : min= 1380, max=15809, per=3.13%, avg=3533.82, stdev=1533.77
    lat (usec) : 50=0.03%, 100=16.84%, 250=5.47%, 500=3.68%, 750=0.34%
    lat (usec) : 1000=0.01%
    lat (msec) : 2=1.29%, 4=11.61%, 10=56.76%, 20=3.81%, 50=0.16%
  cpu          : usr=0.30%, sys=0.65%, ctx=1692756, majf=0, minf=782
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=847367/d=0, short=r=0/w=0/d=0

6.2.9 noop libaio 4k随机读

innodb-data: (groupid=4, jobs=1): err= 0: pid=20116
  read : io=37719MB, bw=321869KB/s, iops=80467 , runt=120001msec
    slat (usec): min=3 , max=368 , avg= 7.66, stdev= 7.50
    clat (usec): min=132 , max=66961 , avg=785.93, stdev=282.30
     lat (usec): min=139 , max=66969 , avg=793.90, stdev=282.86
    clat percentiles (usec):
     |  1.00th=[  446],  5.00th=[  540], 10.00th=[  596], 20.00th=[  668],
     | 30.00th=[  708], 40.00th=[  756], 50.00th=[  796], 60.00th=[  836],
     | 70.00th=[  868], 80.00th=[  900], 90.00th=[  940], 95.00th=[  980],
     | 99.00th=[ 1064], 99.50th=[ 1112], 99.90th=[ 1432], 99.95th=[ 2640],
     | 99.99th=[ 7648]
    bw (KB/s)  : min=56920, max=354384, per=99.99%, avg=321829.72, stdev=29754.04
    lat (usec) : 250=0.01%, 500=2.65%, 750=36.33%, 1000=57.80%
    lat (msec) : 2=3.16%, 4=0.03%, 10=0.02%, 20=0.01%, 50=0.01%
    lat (msec) : 100=0.01%
  cpu          : usr=16.46%, sys=71.03%, ctx=172471, majf=0, minf=85
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
     issued    : total=r=9656157/w=0/d=0, short=r=0/w=0/d=0

6.2.10 noop libaio 4k随机写

innodb-data: (groupid=5, jobs=1): err= 0: pid=20316
  write: io=5512.8MB, bw=47027KB/s, iops=11756 , runt=120022msec
    slat (usec): min=6 , max=2797 , avg=10.12, stdev= 9.33
    clat (usec): min=658 , max=197801 , avg=5429.63, stdev=2532.01
     lat (usec): min=676 , max=197813 , avg=5440.04, stdev=2531.52
    clat percentiles (usec):
     |  1.00th=[ 2640],  5.00th=[ 3536], 10.00th=[ 3920], 20.00th=[ 4320],
     | 30.00th=[ 4704], 40.00th=[ 5024], 50.00th=[ 5280], 60.00th=[ 5472],
     | 70.00th=[ 5792], 80.00th=[ 6240], 90.00th=[ 6624], 95.00th=[ 7136],
     | 99.00th=[11200], 99.50th=[19584], 99.90th=[40704], 99.95th=[46848],
     | 99.99th=[57088]
    bw (KB/s)  : min=33712, max=111048, per=100.00%, avg=47066.41, stdev=4611.08
    lat (usec) : 750=0.01%, 1000=0.04%
    lat (msec) : 2=0.41%, 4=11.59%, 10=86.82%, 20=0.65%, 50=0.45%
    lat (msec) : 100=0.02%, 250=0.01%
  cpu          : usr=5.50%, sys=14.51%, ctx=99258, majf=0, minf=20
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
     issued    : total=r=0/w=1411074/d=0, short=r=0/w=0/d=0

6.3 SAS RAID5 上虚拟机的测试

在146上的虚拟机,型号是2个CPU,4GB内存

6.3.1 CFQ随机读

innodb-data: (groupid=0, jobs=128): err= 0: pid=17176
  read : io=8023.4MB, bw=68406KB/s, iops=4275 , runt=120105msec
    clat (usec): min=168 , max=4424.7K, avg=29913.12, stdev=48315.98
     lat (usec): min=168 , max=4424.7K, avg=29913.52, stdev=48315.98
    clat percentiles (msec):
     |  1.00th=[   15],  5.00th=[   16], 10.00th=[   17], 20.00th=[   19],
     | 30.00th=[   20], 40.00th=[   21], 50.00th=[   23], 60.00th=[   26],
     | 70.00th=[   30], 80.00th=[   37], 90.00th=[   49], 95.00th=[   64],
     | 99.00th=[  103], 99.50th=[  126], 99.90th=[  285], 99.95th=[  461],
     | 99.99th=[ 2933]
    bw (KB/s)  : min=    4, max= 1330, per=0.80%, avg=546.41, stdev=97.04
    lat (usec) : 250=0.01%, 500=0.01%, 750=0.01%
    lat (msec) : 2=0.02%, 4=0.11%, 10=0.40%, 20=35.15%, 50=54.88%
    lat (msec) : 100=8.30%, 250=1.01%, 500=0.07%, 750=0.01%, 1000=0.01%
    lat (msec) : 2000=0.02%, >=2000=0.02%
  cpu          : usr=0.03%, sys=0.15%, ctx=513730, majf=0, minf=3525
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=513495/w=0/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
   READ: io=8023.4MB, aggrb=68406KB/s, minb=68406KB/s, maxb=68406KB/s, mint=120105msec, maxt=120105msec

Disk stats (read/write):
  vdb: ios=513464/2, merge=0/1, ticks=15325456/24, in_queue=15414824, util=99.98%

6.3.2 CFQ随机写

innodb-data: (groupid=0, jobs=32): err= 0: pid=17323
  write: io=2021.2MB, bw=17244KB/s, iops=1077 , runt=120019msec
    clat (usec): min=149 , max=2262.2K, avg=29678.70, stdev=181597.64
     lat (usec): min=150 , max=2262.2K, avg=29679.15, stdev=181597.65
    clat percentiles (usec):
     |  1.00th=[  173],  5.00th=[  209], 10.00th=[  233], 20.00th=[  270],
     | 30.00th=[  294], 40.00th=[  318], 50.00th=[  338], 60.00th=[  362],
     | 70.00th=[  390], 80.00th=[  426], 90.00th=[  482], 95.00th=[  564],
     | 99.00th=[1155072], 99.50th=[1384448], 99.90th=[1679360], 99.95th=[1728512],
     | 99.99th=[1826816]
    bw (KB/s)  : min=    9, max=46880, per=3.37%, avg=581.10, stdev=1012.23
    lat (usec) : 250=14.39%, 500=77.18%, 750=4.59%, 1000=0.16%
    lat (msec) : 2=0.53%, 4=0.01%, 10=0.03%, 20=0.03%, 50=0.09%
    lat (msec) : 100=0.11%, 250=0.14%, 500=0.17%, 750=0.25%, 1000=0.74%
    lat (msec) : 2000=1.57%, >=2000=0.01%
  cpu          : usr=0.05%, sys=0.22%, ctx=262097, majf=0, minf=686
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=129353/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
  WRITE: io=2021.2MB, aggrb=17244KB/s, minb=17244KB/s, maxb=17244KB/s, mint=120019msec, maxt=120019msec

Disk stats (read/write):
  vdb: ios=0/129398, merge=0/23, ticks=0/111788, in_queue=111596, util=92.73%

6.4 SSD RAID5 上虚拟机的测试

在146上的虚拟机,型号是4个CPU,8GB内存

6.4.1 CFQ随机读

innodb-data: (groupid=0, jobs=128): err= 0: pid=7242
  read : io=48849MB, bw=416781KB/s, iops=26048 , runt=120019msec
    clat (usec): min=140 , max=486741 , avg=4904.41, stdev=11260.51
     lat (usec): min=140 , max=486742 , avg=4905.21, stdev=11260.71
    clat percentiles (usec):
     |  1.00th=[  294],  5.00th=[  506], 10.00th=[  604], 20.00th=[  684],
     | 30.00th=[  740], 40.00th=[  788], 50.00th=[  844], 60.00th=[  916],
     | 70.00th=[ 1032], 80.00th=[ 1336], 90.00th=[27776], 95.00th=[32640],
     | 99.00th=[42240], 99.50th=[48896], 99.90th=[74240], 99.95th=[89600],
     | 99.99th=[148480]
    bw (KB/s)  : min=   52, max=10816, per=0.78%, avg=3260.73, stdev=756.35
    lat (usec) : 250=0.35%, 500=4.47%, 750=27.55%, 1000=35.00%
    lat (msec) : 2=17.17%, 4=2.15%, 10=1.00%, 20=0.24%, 50=11.63%
    lat (msec) : 100=0.42%, 250=0.03%, 500=0.01%
  cpu          : usr=0.19%, sys=2.16%, ctx=4239514, majf=1, minf=3374
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=3126350/w=0/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
   READ: io=48849MB, aggrb=416780KB/s, minb=416780KB/s, maxb=416780KB/s, mint=120019msec, maxt=120019msec

Disk stats (read/write):
  vdb: ios=3122143/3, merge=24362/1, ticks=2143164/4192, in_queue=2133152, util=99.02%

6.4.2 CFQ随机写

innodb-data: (groupid=0, jobs=32): err= 0: pid=7528
  write: io=5688.2MB, bw=48539KB/s, iops=3033 , runt=120018msec
    clat (usec): min=146 , max=2238.5K, avg=10537.49, stdev=82186.77
     lat (usec): min=147 , max=2238.5K, avg=10537.93, stdev=82186.77
    clat percentiles (usec):
     |  1.00th=[  169],  5.00th=[  191], 10.00th=[  199], 20.00th=[  219],
     | 30.00th=[  247], 40.00th=[  274], 50.00th=[  294], 60.00th=[  314],
     | 70.00th=[  338], 80.00th=[  370], 90.00th=[  446], 95.00th=[  588],
     | 99.00th=[536576], 99.50th=[602112], 99.90th=[921600], 99.95th=[1138688],
     | 99.99th=[1499136]
    bw (KB/s)  : min=    7, max=47040, per=3.24%, avg=1570.52, stdev=2041.31
    lat (usec) : 250=31.21%, 500=61.62%, 750=3.04%, 1000=0.32%
    lat (msec) : 2=2.11%, 4=0.01%, 10=0.01%, 20=0.01%, 50=0.01%
    lat (msec) : 100=0.01%, 250=0.01%, 500=0.37%, 750=1.06%, 1000=0.16%
    lat (msec) : 2000=0.07%, >=2000=0.01%
  cpu          : usr=0.14%, sys=0.57%, ctx=734000, majf=0, minf=686
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=364095/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
  WRITE: io=5688.2MB, aggrb=48538KB/s, minb=48538KB/s, maxb=48538KB/s, mint=120018msec, maxt=120018msec

Disk stats (read/write):
  vdb: ios=0/364164, merge=0/2826, ticks=0/95912, in_queue=95376, util=79.47%

6.4.3 noop libaio 4k随机读

innodb-data: (groupid=0, jobs=1): err= 0: pid=7794
  read : io=19465MB, bw=166097KB/s, iops=41524 , runt=120001msec
    slat (usec): min=3 , max=4199 , avg=18.33, stdev=13.67
    clat (usec): min=133 , max=4777.5K, avg=1518.98, stdev=2259.09
     lat (usec): min=155 , max=4777.5K, avg=1538.15, stdev=2259.63
    clat percentiles (usec):
     |  1.00th=[  692],  5.00th=[  964], 10.00th=[ 1176], 20.00th=[ 1288],
     | 30.00th=[ 1368], 40.00th=[ 1432], 50.00th=[ 1480], 60.00th=[ 1528],
     | 70.00th=[ 1624], 80.00th=[ 1784], 90.00th=[ 1896], 95.00th=[ 2008],
     | 99.00th=[ 2352], 99.50th=[ 2480], 99.90th=[ 5408], 99.95th=[ 8096],
     | 99.99th=[13248]
    bw (KB/s)  : min=78416, max=232392, per=99.98%, avg=166068.02, stdev=22821.31
    lat (usec) : 250=0.01%, 500=0.05%, 750=1.67%, 1000=3.96%
    lat (msec) : 2=89.18%, 4=5.01%, 10=0.11%, 20=0.02%, 50=0.01%
    lat (msec) : 100=0.01%, 250=0.01%, >=2000=0.01%
  cpu          : usr=18.08%, sys=80.20%, ctx=6881, majf=0, minf=84
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
     issued    : total=r=4982956/w=0/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
   READ: io=19465MB, aggrb=166097KB/s, minb=166097KB/s, maxb=166097KB/s, mint=120001msec, maxt=120001msec

Disk stats (read/write):
  vdb: ios=4973527/3, merge=0/1, ticks=1629596/4, in_queue=1625912, util=99.93%

6.4.4 noop libaio 4k随机写

innodb-data: (g=0): rw=randwrite, bs=4K-4K/4K-4K, ioengine=libaio, iodepth=64
fio 2.0.7
Starting 1 process
Jobs: 1 (f=0): [w] [30.9% done] [0K/27811K /s] [0 /6790  iops] [eta 04m:30s] 
innodb-data: (groupid=0, jobs=1): err= 0: pid=7801
  write: io=3161.1MB, bw=26980KB/s, iops=6744 , runt=120009msec
    slat (usec): min=6 , max=918 , avg=19.99, stdev=10.09
    clat (usec): min=40 , max=447856 , avg=9462.51, stdev=7419.90
     lat (usec): min=106 , max=447867 , avg=9483.31, stdev=7419.14
    clat percentiles (usec):
     |  1.00th=[  124],  5.00th=[  161], 10.00th=[  199], 20.00th=[ 5024],
     | 30.00th=[ 9536], 40.00th=[10176], 50.00th=[11072], 60.00th=[11968],
     | 70.00th=[12480], 80.00th=[12864], 90.00th=[13376], 95.00th=[13760],
     | 99.00th=[14528], 99.50th=[15040], 99.90th=[28288], 99.95th=[47872],
     | 99.99th=[432128]
    bw (KB/s)  : min=  598, max=50496, per=100.00%, avg=26991.69, stdev=3190.70
    lat (usec) : 50=0.01%, 100=0.07%, 250=14.65%, 500=4.41%, 750=0.10%
    lat (usec) : 1000=0.01%
    lat (msec) : 2=0.50%, 4=0.02%, 10=17.03%, 20=63.00%, 50=0.16%
    lat (msec) : 100=0.02%, 250=0.01%, 500=0.02%
  cpu          : usr=5.90%, sys=22.44%, ctx=433454, majf=0, minf=18
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
     issued    : total=r=0/w=809447/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
  WRITE: io=3161.1MB, aggrb=26979KB/s, minb=26979KB/s, maxb=26979KB/s, mint=120009msec, maxt=120009msec

Disk stats (read/write):
  vdb: ios=0/807760, merge=0/20, ticks=0/7612468, in_queue=7612684, util=100.00%

7 结论分析

7.1 测试结果对比

是在SWS平台上的测试结果

7.2 结果分析

通过对比”SSD RAID5 IOPS”和”其他SSD RAID5 IOPS(7块SSD硬盘组成RAID5,RAID卡是LSI MegaRAID 9280-24i4e,地址是 http://marcitland.blogspot.com/2011/06/scst-ssd-arrays.html 的测试结果,IOPS都在一个数量级上,延迟时间也在同一个数量级上,这说明我们的SSD性能正常。但是”SSD RAID5 IOPS”在《libaio 4k随机写》测试中是11,756,而”其他SSD RAID5 IOPS”是19,407。原因如下:

  • 我们的SSD硬盘型号是INTEL SSDSA2CW160G3,大小是160GB,接口是SATAII,接口速率是3Gb/s。而对方的SSD硬盘型号是CTFDDAC256MAG,大小是256GB,接口是SATAIII,接口速率是6Gb/s。我们的SSD硬盘性能比对方的低。
  • 我们使用的是服务器上集成的RAID卡,型号是Dell PowerEdge RAID Controller H700 Integrated。对方使用的是LSI MegaRAID 9280-24i4e,对方使用的RAID卡比我们贵几百美元,我们的RAID卡性能不如对方RAID卡。RAID5的写操作对RAID卡的IO处理器要求很高。假如使用RAID10,性能应该没区别。
  • 我们是在ext4文件系统上测试,而对方是在裸volume上测试。

“SSD RAID5 虚拟机 IOPS”的性能大概是”SSD RAID5 IOPS”性能的一半。而且当测试虚拟机IOPS时,宿主机的硬盘的util已经达到了100%,虚拟机硬盘的util也达到100%,但是性能却是一半,这个问题需要研究。#TODO

“SAS RAID5 虚拟机 IOPS”的性能和”SAS RAID5 IOPS”性能相当。

7.3 SSD的寿命问题

计算SSD的寿命可以看这篇文章 http://ssd.zol.com.cn/283/2838309.html

假设SSD的寿命是3000次P/E(一次P/E相当与写满一次SSD硬盘),假设我们每天写满一次SSD硬盘(几乎不可能),则SSD硬盘的寿命是8年左右。但是估计不到2年,这块SSD硬盘就会被淘汰了(被更大容量,更高速度的SSD硬盘取代)。

硬盘接口的比较

硬盘接口的比较

目录

  • 磁盘阵列与存储接口技术发展回顾
  • 企业级服务器硬盘市场趋势
  • 磁盘阵列内部接口技术比较
  • SAS磁盘和FC磁盘比较
  • IDE (P-ATA) 并行ATA 磁盘
  • SATA (S-ATA)串行ATA 磁盘
  • SCSI 磁盘
  • FC 光纤通道 磁盘
  • SAS 磁盘
  • SAS协议
  • SCSI-3指令集

磁盘阵列与存储接口技术发展回顾

1


企业级服务器硬盘市场趋势

1


磁盘阵列内部接口技术比较

1


SAS磁盘和FC磁盘比较–同样参数,仅端口差异

1

1


IDE (P-ATA) 并行ATA

含义:Integrated Drive Electronics,即电子集成驱动器,它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。把盘体与控制器集成在一起的做法减少硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造起来变得更容易。

40针80芯电缆

优点:技术成熟、价格便宜、性能也不差

应用范围:PC

1
1
1
1


SATA (S-ATA)串行ATA

4针电缆

特点:以连续串行的方式传送资料

优点:SATA的扩展性更强,由于SATA采用点对点的传输协议,所以不存在主从问题,这样每个驱动器不仅能独享带宽,而且使扩展SATA设备更加便利;如今的SATA接口已经可以完全兼容现有的并行ATA设备,SATA只要利用 一个简单的串/并转换器,就能够实现串/并行ATA设备的随意连接。连接方式简洁,有利于散热。

SATA II 是在SATA的基础上发展起来的,其主要特征是外部传输率从SATA的1.5Gbps (150MB/S)进一步提高到 3Gbps(300MB/S),此外还包括NCQ(Native Command Queuing,原生命令队列)。

SATA II的关键技术就是3Gbps的外部传输率和NCQ技术。NCQ技术可以对硬盘的指令执行顺序进行优化,避免像传统硬盘那样机械地按照接受指令的先后顺序 移动磁头读写硬盘的不同位置,与此相反,它会在接受命令后对其进行排序,排序后的磁头将以高效率的顺序进行寻址,从而避免磁头反复移动带来的损耗,延长硬 盘寿命。另外并非所有的SATA硬盘都可以使用NCQ技术,除了硬盘本身要支持NCQ之外,也要求主办芯片组的SATA控制器支持NCQ。此外NCQ技术 不支持FAT文件系统,只支持NTFS文件系统。

1
1
1

类型 接口速率(硬盘缓存到主机传输率)
SATA 1.0 150MB/S
SATA 2.0 300MB/S
SATA 3.0 600MB/S

SCSI

50/68/80针电缆

出现原因:主要是因为原来的IDE接口的硬盘转速太慢,传输速率太低,因此高速的SCSI硬盘出现。

特点:其实SCSI并不是专为硬盘设计的,实际上它是一种总线型接口。由于独立于系统总线工作,所以它的最大优势在于其系统占用率极低。

优点:转速快、传输率高、配置灵活(一块SCSI卡上就可以同时挂接15个设备)、高性能(具有多任务、高带宽、CPU占用率低)、向前兼容

缺点:价格高、安装不变、还需要设置及其安装驱动程序。

应用范围:多用于服务器。

1
1
1

类型 接口速率(硬盘缓存到主机传输率)
SCSI
SCSI-2 10~20MB/S
Wide SCSI -2
Ultra SCSI (SCSI -3) 8位数据通道 20 MB/S
Ultra2 SCSI 8位数据通道 40 MB/S
Wide Ultra2 SCSI 16位数据通道 80 MB/s
Ultra160 SCSI 160MB/S
Ultra320 SCSI 320MB/S

FC 光纤通道

出现原因:光纤通道最初也不是为硬盘设计开发的接口技术,是专门为网络系统设计的,但随着存储系统对速度的需求,才逐渐应用到硬盘系统中。光纤通道硬盘是为提高多硬盘存储系统的速度和灵活性才开发的。

特点:光纤通道的英文拼写是Fibre Channel,和SCIS接口一样光纤通道最初也不是为硬盘设计开发的接口技术,是专门为网络系统设计的

优点:热插拔性、高速带宽、远程连接、连接设备数量大。

缺点:产品价格昂贵、组建复杂。

应用范围:存储子系统。

1
1


SAS

出现原因:SAS(Serial Attached SCSI)即串行连接SCSI,采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间。此接口的设计是为了改善存储系统的效能、可用性和扩展性,并且提供与SATA硬盘的兼容性。

优点:

  • 更好的性能(采用串行传输代替并行传输,全双工模式)、更简便的连接线缆(将不再使用SCSI那种扁平的宽排线)、更广的扩展性(可与SATA兼容)

兼容性:

  • SAS的接口技术可以向下兼容SATA,二者的兼容性主要体现在物理 层和协议层的兼容。在物理层,SAS接口和SATA接口完全兼容,SATA硬盘可以直接使用在SAS的环境中,从接口标准上而言,SATA是SAS的一个 子标准,因此SAS控制器可以直接操控SATA硬盘,但是SAS却不能直接使用在SATA的环境中,因为SATA控制器并不能对SAS硬盘进行控制;在协 议层,SAS由3种类型协议组成,根据连接的不同设备使用相应的协议进行数据传输。其中SCSI协议(SSP)用于传输SCSI命令;SCSI管理协议 SMP用于对连接设备的维护和管理;SATA通道协议(STP)用于SAS和SATA之间数据的传输。因此在这3种协议的配合下,SAS可以和SATA以 及部分SCSI设备无缝结合。
  • SAS系统的背板既可以连接具有双端口、高性能的SAS驱动 器,也可以连接高容量、低成本的SATA驱动器。所以SAS驱动器和SATA驱动器可以同时存在于一个存储系统之中。但是需要注意的是,SATA系统并不 兼容SAS,所以SAS驱动器不能连接到SATA背板上。由于SAS系统的兼容性,是用户能够运用不同接口的硬盘来满足各类应用在容量上或效能上的需求, 因此在扩充存储系统时拥有更多的弹性,让存储设备发挥最大的投资效益。
  • 在系统中,每一个SAS端口可以最多连接16256个外部设备,并且SAS采用直接的点到点的串行传输方式,传输的速率高达3Gbps,估计以后会有6Gbps乃至12Gbps的告诉接口出现。SAS接口依靠SAS扩展器来连接更多的设备。
  • 和传统并行SCSI接口比较起来,SAS不仅在接口速度上得到显著提升(现在主流Ultra 320 SCSI速度为320MB/S,而SAS才刚起步速度就达到300MB/S,未来会达到600MB/S甚至更多),而且由于采用了串行线缆,不仅可以实现更长的连接距离,还能够提高抗干扰能力,并且这种细细的线缆还可以显著改善机箱内部的散热情况。

缺点:

  • 硬盘、控制芯片种类太少。
  • 硬盘价格太高,比起同容量的Ultra 320 SCSI硬盘,SAS硬盘要贵一倍还多。
  • 实际传输速度变化不大:SAS硬盘的接口速度并不代表数据传 输速度,受到硬盘机械结构限制,现在SAS硬盘的机械结构和SCSI硬盘几乎一样。目前数据传输的瓶颈集中在由硬盘内部机械结构和硬盘存储技术、磁盘转速 所决定的一个盘内部传输速度,也就是80MB/S左右,SAS硬盘的性能提升不明显。
  • 用户追求成熟、稳定的产品。

SAS技术以串行机制为基础,同时支持SCSI和SATA的协议栈。

1

上面的这张照片就是SAS外部接口的样子。SAS外部接口和线缆就是借用了InfiniBand线缆的设计。这种端口名叫“四路宽端口”,以目前3Gb的SAS标准,它可以达到12Gb的带宽,也就是
4 x 3Gb SAS通道。SAS技术与光纤通道一样,都采用8位到10位的编码机制,12Gb的物理层带宽换算到应用层就是1.2GB/S,这一根线就比目前主流的64位133MHz PCI-X还要快。

SAS磁盘上的端口也与并行SCSI有很大区别,导师跟SATA磁盘的端口外观非常像。接脚最多的一组是电源接口,接脚较少的一组是SAS磁盘主端口,位置都与SATA磁盘电源和通讯端口完全一致。SAS磁盘与SATA磁盘接口的唯一区别是SAS磁盘还有第二个冗余端口,而SATA磁盘则只有一个端口。

如果将SATA磁盘直接插入SAS背板,那么背板上的冗余端口将会悬空,也就是说SATA磁盘只连接在一个控制器上 。这样虽然阵列控制器或主机可以使用这些SATA磁盘,但从结构上将无法实现冗余。

1

为此,一些提供SAS磁盘阵列的厂商,在兼容SATA磁盘时都在SATA磁盘托架上附加一个个的电路板,我们姑且称之为“端口选择器”。其作用就是将SATA磁盘上的单端口与两路SAS同时连接,从而保证前端控制器或主机故障切换时,SATA磁盘仍然能保持连接。

1

当然物理连接的一致,只是SAS兼容SATA的必要条件。实际上,在整个SAS协议栈中从物理层到应用层,都贯穿着一套用来兼容SATA的协议。这套协议被称为STP(Serial ATA Tunneling Protocol )即“SATA隧道协议”。从这个命名就可以看出SAS兼容SATA的方式其实就是从磁盘端到主机端整条链路上,为SATA磁盘特地开辟出一条隧道。

1
1
1


SAS协议:

SAS协议中重要的三个名词:“设备”(Device)、“端口”(Port)、“phy”。

“设备”就是指SAS连接末端的物理设备,可以是磁盘,也可以是主机里的SAS适配器,但不是Expander设备。

“端口”是半物理半逻辑的概念。一方面,每个端口都对应一条实实在在的物理连接线;另一方面,每个SAS端口都有一个唯一的64位地址。这个地址的格式跟光纤通道里的WWPN(SAS设备对应WWNN)格式完全相同,由24位公司标志和40位厂商自定义字段构成。

“phy”虽然是个逻辑概念,但功能上很像光纤通道中的SFP。它对应的是一组SAS协议收发单元,由一个发送器和一个接收器组成。每 个phy与远端的另外一个phy连接,构成一发一收两条链路。SAS支持全双工,就是说每个phy在以3Gbps发送的同时,还可以接受3Gbps的流 量。

1

每个SAS磁盘可以提供两个SAS端口,每个端口有一个phy,也就是每个SAS磁盘有两个地址,有两个phy。

目前主流的SAS适配器一般支持8个phy,可以动态设定适配器支持的端口地址数。当适配器用来连接外部SAS设备时,需要用外部宽端 口,这时适配器将8个phy划分成两个宽度那口,支持两个端口地址。而当适配器连接内部SAS磁盘时,每个phy各自数以自己的端口,适配器将支持8个端 口地址。

SAS技术的重点部分–Expander及其工作原理,才是熟悉SAS技术的关键。

SAS的连接模式与光纤通道的Fabric交换在很多方面十分相似。每一个SAS Expander就想一台光纤通道交换机,这个交换机构被称为“域”(Domain),其意义跟光纤通道技术中的“域”几乎完全一样。在光纤通道 Fabric交换结构中,每个域有一个主成员,负责维护整个域的路由信息。在SAS域中,起中心交换作用的Expander叫做“扇出Expander” (Fanout Expander)。SAS域中的“扇出Expander”既可以直接连接终端设备,也能连接其他“边缘 Expander”(Edge Expander)。 唯一与光纤通道Fabric不同的是,SAS域中可以没有“扇出Expander”,而光纤通道Fabric域则不能没有主成员。 没有扇出Expander”的SAS域,最多只可以有两个“边缘 Expander”。

1

理论上,每个“边缘 Expander”可以支持128个端口,每个SAS域可以有128个“边缘 Expander”,这样每个SAS域中最多可以有128×128=16384个端口。当然,这并不是说每个SAS域可以连接16384个磁盘和SAS适配器,因为“扇出Expander”与“边缘 Expander”相连接时,会占用一部分端口。对比光纤环路126个设备的上限,SAS支持的端口数仍然是非常可观。

一些接触过SAS存储产品的读者,可能此时会心存疑惑,为什么SAS单域就可以支持如此众多设备,但实际应用中却经常看到多域模式的产品呢?这其实跟目前SAS芯片的制造工艺有关。如果想制造出一个“扇出Expander”来支持128个“边缘 Expander”的连接,而这款“扇出Expander”至少要支持128个phy(每个端口至少一个phy)。而Expander之间的互联一般应采用至少四路宽端口,那就需要中心的“扇出Expander”支持4×128 =512个phy(每个端口4个phy)。而现在的实际情况是LSI公司的首款SAS芯片只能支持12个phy,刚刚好是个零头。虽然SAS技术支持多个Expander芯片组成一个Expander组(Expander set)来模拟一个Expander,但过多的芯片无疑会在制造工艺和成本方面带来麻烦。正是基于目前SAS芯片工艺水平,一些磁盘阵列厂商在设计陈列扩展时,大多采用多域结构。虽然在软件设计上费力多些,但却可以避开单芯片phy数量有限的问题。

所谓的多域模式,在大多数情况下,其实也只不过是两个域而已,即每个阵列控制器各自属于自己的SAS域。因为目前的SAS技术还不支持域之间的路由,所以要想保证每个阵列控制器都能访问到所有磁盘,最多只能引入两个SAS域。

SAS技术借鉴了很多光纤通道技术的工作原理,对比光纤通道技术可以帮助我们更好的了解SAS技术优势。

前面已经提到,SAS端口与光纤通道中的WWN格式几乎完全 一样,但其使用方面还是略有区别。SAS域中,端口地址直接作为交换路由表的内容,没有任何转换过程,而光纤通道的Fabric交换中并不直接采用WWN 地址,而是要经过一个转换过程,由名字服务器对每个设备二次分发路由地址。光纤通道之所以这样设计原因很明显,因为在Fabric交换中要支持环路设备, 所以不得不兼顾各种编址。实际上在光纤通道交换域中,每个设备要经过三层登陆(FLOGI、PLOGI/lOGO、PRLI/PRLO)才能接入域中。这 颇像一个臃肿的官僚机构,虽然体系庞大,却效率低下。而SAS技术舍弃了光纤通道中的仲裁环机制,从而大大简化了交换与地址的关起。在SAS域中,再也不 需要关系那些恼人的繁文缛节了。

由于交换模式的简化,SAS设备与Expander之间不需要通过复杂的磋商,简单的握手之后就开始正常工作了,这就需要双方 事前就很多方面必须达成一致共识。“服务级别”就是共识之一。我们知道光纤通道可以支持5种不同级别的交换服务,分别是Class 1、2、3、4和6。这其中最常用到的是Class 3,即无确认的帧交换。这种模式好比不负责的邮递员,反正有收信人和发信人相互确认,他自己根本不操心包裹是否完好。由于光纤通道技术中没有phy这个层 次的设计,Class 3是效率最高的工作模式。而SAS则不然,借由phy的底层独占式互联机制,SAS中的服务级别更像class 1模式,即虚拟电路全带宽连接。这种模式最能充分保证每一组SAS设备之间的通讯带宽,同时数据的误传输概率也降到最低。

由于光纤通道技术中层次臃肿的通讯机制,主机端光纤适配器很难直接察觉到磁盘端设备状态的变化。就好比一个高高在上的官僚,很 难知道底层普通市民的住址变迁。为此,光纤通道交换设计了“注册状态变更通知”(RSCN)机制。就是让每个普通市民在搬家之后,都要主动向政府汇报新地 址,政府再将地址簿总更新,递交各位领导案头,而官僚们就依据案头的记录信息定位每个市民。遗憾的是,这个RSCN会打断领导们正在进行的沟通,迫使领导 们的工作重新开始,因此严重影响整个政府的办公效率。而在SAS域中,由于没有了复杂的沟通层次,每个领导都可以直接掌握市民的住址信息,办公效率自然就 提高许多。

SAS与光纤通道相比,最明显的技术优势在于连接带宽。简单从数字上看,3Gb的SAS似乎不及4Gb的光纤通道,但是光纤通 道技术中端口已经是最基本的逻辑单元,也就是说,两个物理端口的连接就只可能是4Gb带宽。而SAS则巧妙的在端口中引入phy这个新的逻辑单元,两个 phy之间的互联带宽为3Gb,每个端口可以包含4个或8个phy之多,这样两个SAS端口之间的连接很容易达到12Gb甚至24Gb超高带宽。

总之,SAS在借鉴光纤通道技术特点的同时,一方面大刀阔斧简化交换机制,从而提升力交换效率和可靠性,另一方面增加phy虚拟电路单元,大大增加了性能扩展空间。

SCSI-3指令集

正是SCSI-3指令集的出现,使得SCSI通讯出现了分层结构,并使SCSI指令通过其他物理媒介传输成为可能。事实上,SCSI-3指令自诞生之日就被一批新技术相中,此后出现的光纤通道技术、SSA技术、IEEE1394火线技术等,均受益于这一进步。

以下这些串行技术虽然从名字上看与SCSI豪不相干,单其实它们都支持SCSI-3作为应用层逻辑指令。下面是这些串行技术的简要回顾。

1


SAS磁盘与FC磁盘的比较说明

SAS磁盘与FC磁盘的比较说明

  • 目前同样15K转的SAS磁盘和FC磁盘从本身单个磁盘来讲,性能是一样的。
  • 对于磁盘阵列,采用SAS交换架构的系统与采用FC光纤通道仲裁环架构的系统相比,在配置大量磁盘的情况下,前者的整体性能要优于后者。
  • SAS磁盘拥有更广阔的市场前景,将和SATA磁盘一起将成为企业级磁盘市场的主流,同时适合搞性能以及大容量的存储应用需求。FC磁盘的市场空间将逐步萎缩。

企业级磁盘应用现状

  • 目前应用于企业级存储系统的磁盘类型主要有三种:SAS磁盘、FC磁盘和SATA磁盘。
  • 其中SAS磁盘和FC磁盘都属于高性能磁盘(主流转速15K转/S,主流300GB),主要用于对性能要求苛刻的关键技术应用,例如大型的ERP系统、生产制造系统、邮件应用等。
  • SATA磁盘属于高性价比的磁盘, 单个磁盘容量比SAS和FC磁盘大(目前SATA磁盘最大容量大1TB),转速比SAS和FC磁盘低(SATA磁盘转速为7200转/S),当然价格也比 后者低,因此SATA磁盘主要应用于对容量需求大或者性能要求相对不高的场合,例如视频监控、文件服务、数据备份等应用,或者小型的数据库、应用系统等。
  • 除了性能、容量、价格的差别,这三种企业级磁盘在可靠性差别不大,SAS磁盘和FC磁盘的MTBF(平均无故障时间)达到140万小时,而SATA磁盘的MTBF也达到120万小时。

SAS磁盘和FC磁盘的性能比较

  1. 两种磁盘本身具有相同的内部架构和读写原理。从结构看,两者的唯一区别在于磁盘与外部系统连接的接口,SAS磁盘采用SAS接口,FC磁盘采用FC接口,满足不同的连接接口要求。
  2. 两种磁盘本身具备相同的性能。决定磁盘性能的主要指标包括磁盘转速、缓存容量、内部数据传输率、平均寻道时间、延迟时间等,其中磁盘转速是最关键的指标。主流SAS磁盘和FC磁盘采用相同的内部结构,同时都采用15K转的转速,决定了两者绝大部分指标都相同。

指标的区别主要在于外部传输率,这是由物理接口所决定的,SAS磁盘采用了SAS接口,目前支持300MB带宽,下一 代将支持600MB,FC磁盘采用了FC接口,目前最大支持400MB带宽。而实际上,受内部传输率限制(表中最大为2225Mb/s,即278MB /S),外部传输率不会成为传输带宽瓶颈。

因此从磁盘本身性能看,目前同样15K转的SAS磁盘和FC磁盘具备相同的性能。

disk

SAS磁盘的其他优势

  1. SAS磁盘时从SCSI磁盘基础上发展过来的,技术很成熟。
  2. SAS磁盘的技术发展前景非常明朗。SAS技术目前速度为3Gb/S,在2008年第四季度提升到6Gb/s,到2012年更将达到12Gb/s。因此从技术角度看,采用SAS技术的SAS磁盘也讲拥有更广阔的发展前景。
  3. SAS磁盘的应用领域更广泛。SAS磁盘除了应用于磁盘阵列外,还广泛应用于服务器。而FC磁盘由于FC接口原因,只能应用于磁盘阵列。
  4. SAS接口技术能够兼容SATA磁盘。

存储系统性能问题的补充说明

目前磁盘柜主流的连接方式和架构有两种:

  1. 采用12Gb的SAS宽链路连接存储控制器和磁盘柜,实现基于SAS技术的数据全交换。控制器与磁盘柜之间的连接链路单条即达到12Gb带宽,磁盘采用全交换,每个SAS或SATA磁盘独享3Gb SAS带宽,随着磁盘数量的增加,数据通道不会成为瓶颈,性能不会下降。

  2. 采用2Gb/4Gb FC光纤通道仲裁环连接存储控制器与磁盘柜,任何时刻只访问FC磁盘。目前单个FC链路最大带宽只有4Gb,同时采用环状结构,环上的所有磁盘共享这个环路带宽,仲裁延时长,而且同一时刻只能对一块磁盘进行读写操作。当配置磁盘数量较多时,受到环路架构的限制,存储整体性能呈迅速下降趋势。