最近拥有一款戴尔PowerVault MD3600i,我正在经历一些奇怪的结果。
我有一个专用的24x10GbE开关(PowerConnect 8024),设置为巨型帧9K。
MD3600有两个RAID控制器,每个控制器有2x10GbE以太网网卡。交换机上没有别的东西;一个用于SAN流量的VLAN。
这是我的multipath.conf
defaults {
udev_dir /dev
polling_interval 5
selector "round-robin 0"
path_grouping_policy multibus
getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
prio_callout none
path_checker readsector0
rr_min_io 100
max_fds 8192
rr_weight priorities
failback immediate
no_path_retry fail
user_friendly_names yes
# prio rdac
}
blacklist {
device {
vendor "*"
product "Universal Xport"
}
# devnode "^sd[a-z]"
}
devices {
device {
vendor "DELL"
product "MD36xxi"
path_grouping_policy group_by_prio
prio rdac
# polling_interval 5
path_checker rdac
path_selector "round-robin 0"
hardware_handler "1 rdac"
failback immediate
features "2 pg_init_retries 50"
no_path_retry 30
rr_min_io 100
prio_callout "/sbin/mpath_prio_rdac /dev/%n"
}
}
和iscsid.conf:
node.startup = automatic
node.session.timeo.replacement_timeout = 15
node.conn[0].timeo.login_timeout = 15
node.conn[0].timeo.logout_timeout = 15
node.conn[0].timeo.noop_out_interval = 5
node.conn[0].timeo.noop_out_timeout = 10
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
node.session.iscsi.FirstBurstLength = 262144
node.session.iscsi.MaxBurstLength = 16776192
node.conn[0].iscsi.MaxRecvDataSegmentLength = 262144
考试后,我几乎不能达到200 Mb/s的读写能力。
我还应该期待更多吗?如果它有双10 GbE,我的想法,在400 Mb/s的周围。
有什么想法吗?指导方针?故障排除提示?
编辑:
该数组是作为单个逻辑卷设置的,5.7TB磁盘都是1TB7.2k SAS6GB (ST1000NM0001) RAID是RAID10
Swith配置的一些行:
interface Te1/0/23
storm-control broadcast
storm-control multicast
spanning-tree portfast
mtu 9000
switchport access vlan 40
exit
...
iscsi cos vpt 5
management access-list "default"
permit service ssh priority 1
permit service http priority 2
permit service https priority 3
和多路径输出:
[root@xnode4 ~]# multipath -ll -v2
multipath.conf line 30, invalid keyword: prio
mpath1 (36d4ae520009bd7cc0000030e4fe8230b) dm-2 DELL,MD36xxi
[size=5.5T][features=3 queue_if_no_path pg_init_retries 50][hwhandler=1 rdac][rw]
\_ round-robin 0 [prio=400][active]
\_ 7:0:0:0 sdc 8:32 [active][ready]
\_ 9:0:0:0 sde 8:64 [active][ready]
\_ 11:0:0:0 sdi 8:128 [active][ready]
\_ 13:0:0:0 sdn 8:208 [active][ready]
\_ round-robin 0 [prio=0][enabled]
\_ 10:0:0:0 sdj 8:144 [active][ghost]
\_ 12:0:0:0 sdh 8:112 [active][ghost]
\_ 8:0:0:0 sdd 8:48 [active][ghost]
\_ 6:0:0:0 sdb 8:16 [active][ghost]
发布于 2012-06-29 18:01:18
从您的评论和编辑判断,您的瓶颈可能是存储。首先,假设您启用了写缓存,那么在缓存已满之前,您的所有写入都应该以行速度完成。您可以通过计算出您有多少缓存,并使用较少的数据执行100%的写基准测试来比较容易地度量这一点。其次,一旦缓存开始将数据引导到磁盘,RAID-10 (假设控制器没有引入瓶颈)上的写入性能将是读取性能的一半。这是因为每次写入两个磁盘,但读取只能从一个磁盘完成。RAID-10的一个好处是不需要计算奇偶,因此控制器的处理器不太可能完全无法跟上。
接下来,如果您的基准测试是读写的混合,那么从存储控制器获得的性能将取决于IO的类型。如果是连续的,你会得到更多的MB/s,但是IO/s的数量会更少。如果是随机的小块,你会得到较低的MB/1996,但是磁盘能提供的IO/硬盘数量是最多的。当您正在阅读时,每个7200 RPM磁盘将提供一定数量的IO/s,因此,在您的raid次数中,每个驱动器的IO/s的数量将是您的理论性能上限。
最后,如果将所有存储集中在一个大容量中,则命令队列可能已饱和。普通操作系统有一个可配置的命令队列深度(它们将排队等待存储的未完成IOs的数量),并且每个卷/LUN都有自己的队列。在相同的LUN中拥有所有存储的另一个问题是,通常,IO被发送到该LUN的单个控制器。即使在active/active存储系统上(我不确定您的系统是这样),它们也可以与一个控制器而不是另一个控制器有关联。目标是创建一组卷,并在控制器之间平均分配它们。
发布于 2012-07-03 22:49:55
用单个磁盘对其进行基准测试,并在raid 0中对所有磁盘进行再次测试。
Raid 0不会有任何raid10或raid 5开销。
还请查看MD上的缓存。默认情况下是4k块,但最多可以达到32k块。在这两个值之间,我的速度相差了30%。不过,还是要测试它的工作负载。
在可以使用更多线程的地方使用类似SQLIO的内容。当我更加努力的时候,我的数字终于开始看起来不错了。
并验证MD配置为10G。该选项是10G或1G的端口,它不自动协商。
发布于 2013-03-24 00:56:55
也许您希望将数组上的缓存块大小从4k增加到16k或32k (特别是如果您正在寻找连续的工作负载)。
https://serverfault.com/questions/402733
复制相似问题