NetApp E2600 High Performance Tier 测试

浪潮 AS500H (NetApp E2600,MD3600也一样),双控制器,每控制器 4GB 带电池保护缓存,Write caching with mirroring, High Performance Tier。IO节点与存储双控通过MiniSAS冗余连接

测试命令:iozone -i 0 -i 1 -r 128K -s 128G

Basic High Performance Tier (MB/s)
write rewrite read reread write rewrite read reread
900GByte 2.5-inch 10Krpm 6Gb/s SAS
2个盘做一组RAID1
171 172 177 175 173 171 176 175
900GByte 2.5-inch 10Krpm 6Gb/s SAS
每5个盘做一组RAID5,4组RAID5
689 688 1892 1971 1447 1539 2440 2531
3TByte 3.5-inch 7.2Krpm 6Gb/s NL-SAS
每6个盘做一组RAID6,2组RAID6
629 617 832 867 839 801 819 856

 

Platform LSF ELIM

LSF可以让用户自定义一些资源,其中动态资源可以通过ELIM向LSF汇报,下面以本地磁盘(一个机械盘一个SSD)负载为例:

在$LSF_ENVDIR/lsf.shared的Begin Resource中增加

diskut   Numeric    60    Y    (Percentage of CPU time during which I/O requests were issued to local disk)
ssdut   Numeric    60    Y    (Percentage of CPU time during which I/O requests were issued to local SSD disk)

在$LSF_ENVDIR/lsf.cluster.的Begin ResourceMap中增加一行

diskut              [default]
ssdut               [default]

在$LSF_SERVERDIR/下新建一个文件elim.disk内容如下并且chmod +x elim.disk

#!/bin/sh

declare -a util
while true; do
	util=(`sar -d 60 1|grep Average|grep dev8|awk '{print $10}'`)
	case "${#util[@]}" in
		1)
			echo 1 diskut ${util[0]}
			;;
		2)
			echo 2 diskut ${util[0]} ssdut ${util[1]}
			;;
	esac
done

所有节点需要lsadmin limrestart,然后用lsload -l就可以看到多出来两列了

bsub时可以使用这些参数
-R “order[diskut]” 优先选择disk负载最轻的
-R “select[diskut < 10]” 要求disk负载小于10%
-R “rusage[diskut=10]” 为这个任务预留10%的disk负载。rusage不影响lsload的显示,但是会叠加到lsload显示的实际值上面从而影响order select的结果,除非lsf确定预留的资源被这个job所使用了(比如mem)。

Platform LSF Compute Units 调度策略

Compute Units(CU)可以对一个队列中的机器在调度时进行分组,可以控制作业在这些组中的分配。

假设有三个cu,每个cu空闲的job slots如下:

cu name free job slots
cu1 4
cu2 6
cu3 8

 

cu[pref=minavail]:把cu按照空闲的job slots从小到大排序,按顺序填充分配使用cu。例:-n 4则使用cu1的4个;-n 6则使用cu1的4个和cu2的2个。

cu[pref=maxavail]:把cu按照空闲的job slots从大到小排序,按顺序填充分配使用cu。例:-n 6则使用cu3的6个;-n 10则使用cu3的8个和cu2的2个。
上面的情况下,如果cu中空闲的job slots数量一样,则按照其在lsb.hosts中Begin ComputeUnitvs中的顺序使用

cu[balance]:按照在lsb.hosts中Begin ComputeUnitvs中的顺序,在尽量少的cu中分配使用且每个cu中使用的job slots尽量平衡。例:-n 6则使用cu2的6个;-n 8则使用cu3的8个;-n 10则使用cu2和cu3的各使用5个;-n 12则cu2和cu3个使用6个;-n 14则cu1使用4个、cu2和cu3各使用5个。
cu[balance:pref=minavail]和cu[balance:pref=maxavail]:把cu按照空闲的job slots排序,在尽量少的cu中分配使用且每个cu中使用的job slots尽量平衡。例:-n 4 -R “cu[balance:pref=minavail]”使用cu1,-n 4 -R “cu[balance:pref=maxavail]”使用cu3。

对于HPC来说,​其实更想要一种类似于minavail但是又尽量分布到最少cu上的策略,如果必须跨cu则应尽量不等分减少跨cu通讯。

Plextor M5p 256GB vs Intel SSD 530 240GB

Dell R620, 2*E5-2643, 32GB RAM, RHELS 5.3, Iozone 3.414,SSD分区4K对齐, ext4打开trim

./iozone -a -i 0 -i 1 -i 2 -y 4k -q 1m -s 64g -Rb ./test.xls 

结果就是Intel SSD 530全面大幅超越Plextor M5p,具体结果如下:

Plextor M5p 256GB:

record size 4 8 16 32 64 128 256 512 1024
Writer Report 73495 49706 53834 55819 51266 51434 52833 51928 52610
Re-writer Report 82056 80580 81662 71514 71218 70992 70998 71210 73930
Reader Report 437508 437398 437296 436977 437826 437586 437788 436948 437527
Re-reader Report 437118 437650 437002 436111 437281 437213 442700 437818 437569
Random Read Report 36441 64764 91808 129377 190359 231620 309157 278560 273607
Random Write Report 53990 53750 52256 52058 52626 51981 51429 52504 52852

Intel SSD 530 240GB:

record size 4 8 16 32 64 128 256 512 1024
Writer Report 498716 523831 500965 527952 524793 525040 528580 529695 529030
Re-writer Report 523820 524679 527672 528101 525403 528344 526986 526756 527916
Reader Report 399111 405611 403717 401873 404561 401628 401842 401729 403944
Re-reader Report 399121 402200 399726 399718 408133 401520 401671 401337 401857
Random Read Report 26518 51309 81293 126808 209616 265063 336988 382371 409023
Random Write Report 270073 370813 443589 489812 511003 520004 521321 521664 524645

 

NetApp E2600 DDP测试

存储为浪潮AS500H(NetApp E2600),24个900GB 2.5-inch 10Krpm SAS。IO节点为两台浪潮NF5270M3,每台2*E5-2620v2 64GB内存 双端口MiniSAS卡。每台IO节点均和存储的两个控制器通过MiniSAS直接连接。24个盘做成一个DDP,保留盘1个或2个,划分两个卷,每个控制器一个,每个IO节点一个,持续写入约220MB,持续读取约610MB。可以说结果一塌糊涂!

RHEL6 正确关闭IPv6的方法

正确的方法是:

sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
sed -i '/net.ipv6.conf.all.disable_ipv6=/d' /etc/sysctl.conf
echo "net.ipv6.conf.all.disable_ipv6=1" >> /etc/sysctl.conf
sed -i '/net.ipv6.conf.default.disable_ipv6=/d' /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6=1" >> /etc/sysctl.conf

/etc/ssh/sshd_conf中的AddressFamily any改为AddressFamily inet,否则sshd会有问题

/etc/modprobe.d/ 目录下新建一个文件,内容为install ipv6 /bin/true,的确能关闭IPv6但是会导致网卡bonding失败等各种问题

/etc/sysconfig/network 里面添加NETWORKING_IPV6=no 或者 IPV6INIT=no 都是没有用的

IBM GPFS 仲裁机制

为维护数据一致性,防止集群出现“脑裂”的情况,GPFS设计了GPFS系统的仲裁机制:

节点仲裁:
将集群中的一些节点定义为仲裁节点(quorum nodes),每个节点如能和一半以上的仲裁节点成功通讯则GPFS可用,否则GPFS不可用。一半以上仲裁节点的意义是,1个要求1个、2个要求2个、3个要求2个、4个要求3个、5个要求3个,这样保证如果由于某些原因(如网络故障)导致集群分割,只有一个子集群GPFS可用。

节点仲裁和决胜磁盘(tiebreaker disks):
集群中仲裁节点不超过8个且应该包含集群主次配置服务器(primary and secondary cluster configuration servers),每个仲裁节点连接到所有决胜磁盘,则可以定义1-3个决胜磁盘但最好是奇数,只要有仲裁节点有一半以上的决胜磁盘可用则GPFS可用,否则GPFS不可用。这种模式适合小集群,特别只有两个NSD server和共享存储的情况,这时这两个NSD server还是cluster configuration servers和quorum nodes,共享存储上的某些LUN定义为决胜磁盘,这样两个NSD server坏一个整个GPFS还是可用的。

上面说的仲裁节点选择有一些原则:
一直开机稳定运行的节点
位于不同机架、不同供电来源、连接不同交换机的节点
最好包含这些节点:Primary configuration servers、Secondary configuration servers、Network Shared Disk servers
仲裁节点不是越多越好,最好奇数个且不要超过7,如3、5、7
仲裁节点应该是集群的核心节点,且能够代表集群

前面说的仲裁都是仲裁本地的GPFS是否可用,GPFS还有机制可以将一份数据复写2-3次,相当于做了NSD级别的Raid1,这样在损失一些NSD的情况下文件系统可能仍然可用,这个时候就需要对GPFS中的某个文件系统进行冲裁。

文件系统描述符(File system descriptor)仲裁:
在创建文件系统的时候,GPFS会根据NSD和故障组的情况在某些个NSD上面创建文件系统描述符,运行时根据可用的描述符数量来判断这个文件系统是否可用。
如果有至少5个不同的故障组则创建5个描述符副本,至少3个副本可用;

如果有至少3个NSD则创建3个描述符副本,至少2个副本可用;
如果只有1-2个NSD则每个NSD创建一个描述符副本,一个都不能少。
对于少于5个故障组,特别是只有2个故障组的情况,必定存在某一个故障组失效的情况下这个文件系统会不符合上述要求而被关闭的情况,可以通过创建专门的descOnly NSD来平衡描述符副本的分配,从而防止系统存在单点故障。

LSI MeagRAID CacheCade 测试

Dell R720xd,2*E5-2620,16GB RAM,PERC H720P Mini (LSI SAS2208 ROC)
Red Hat Enterprise Linux Server release 6.3
General Parallel File System (GPFS) 3.5.0.11
SSD: Intel SSD 530 Series (240GB, 2.5in SATA 6Gb/s, 20nm, MLC)
Iozone 3.414,测试命令iozone -i 0 -i 1 -i 2 -r 1m -s 64G,结果单位Kbytes/sec

Raid5:15个2.5" SAS2 10Krpm 900GB,每5个硬盘为一个Raid5共3个,每个Raid5在GPFS里面做成一个NSD,三个NSD做成一个GPFS文件系统

无CacheCade
write: 2157086
rewrite: 2164703
read: 1920239
reread: 2034515
random read: 126223
random write: 927219

有CacheCade
write: 2142893
rewrite: 2142537
read: 963505
reread: 970880
random read: 71778
random write: 862301

pagepool设置1GB或12GB测试了一下,对结果没有显著影响。

虽然结论仍然是当SSD性能落后于被加速的机械硬盘时性能反而下降,但是您肯定想问为啥测试结果和以前的这篇文章差距如此巨大?以前是刚装好就测试的,这次是高负载使用了一段时间以后测试的,还有就是GPFS的小版本有点不同。

LSI MeagRAID CacheCade 的 IO Policy

Dell R720xd,2*E5-2620,16GB RAM,PERC H720P Mini (LSI SAS2208 ROC)
Red Hat Enterprise Linux Server release 6.3
General Parallel File System (GPFS) 3.5.0.11
SSD: Intel SSD 530 Series (240GB, 2.5in SATA 6Gb/s, 20nm, MLC)

配置好CacheCade后,机械盘的IO Policy无论设置为Direct IO还是Cached IO,其结果都是一样的。
也就是说一旦配置好CacheCade后,所有机械盘阵列均能够被CacheCade加速