Skip to content

浅谈RAID写惩罚(Write Penalty)与IOPS计算

通常在讨论不同RAID保护类型的性能的时候,结论都会是RAID-1提供比较好的读写性能,RAID-5读性能不错,但是写入性能就不如RAID-1,RAID-6保护级别更高,但写性能相对更加差,RAID10是提供最好的性能和数据保护,不过成本最高等等。其实决定这些性能考虑的因素很简单,它就是RAID Write Penalty(写惩罚)。
存储方案规划的过程中,最基本的考虑因素有两个,性能和容量。性能上的计算看可以分为IOPS和带宽需求。计算IOPS,抛开存储阵列的缓存和前端口不谈。计算后端物理磁盘的IOPS不能简单的把物理磁盘的最大IOPS相加而获得。原因是,对于不同的RAID级别,为了保证当有物理磁盘损坏的情况下可以恢复数据,数据写入的过程中都需要有一些特别的计算。比如对于RAID-5,条带上的任意磁盘上的数据改变,都会重新计算校验位。一个7+1的RAID-5的条带中,七个磁盘存储数据,最后一个磁盘存储校验位。

对于一个数据的写入,假设在第五个磁盘上写入的数据为1111,如下所示。那么整个RAID-5需要完成写入的过程分为以下几步:

1.读取原数据0110,然后与新的数据1111做XOR操作: 0110 XOR 1111 = 1001
2.读取原有的校验位0010
3.用第一步算出的数值与原校验位再做一次XOR操作: 0010 XOR 1001 = 1011
4.然后将1111新数据写入到数据磁盘,将第三步计算出来的新的校验位写入校验盘。
由上述几个步骤可见,对于任何一次写入,在存储端,需要分别进行两次读+两次写,所以说RAID-5的Write Penalty的值是4。

不同RAID级别的Write Penalty:
RAID-0:直接的条带,数据每次写入对应物理磁盘上的一次写入
RAID-1和10:RAID-1 和RAID-10的写惩罚很简单理解,因为数据的镜像存在的,所以一次写入会有两次。
RAID-5:RAID-5由于要计算校验位的机制存在,需要读数据、读校验位、写数据、写校验位四个步骤,所以RAID-5的写惩罚值是4。
RAID-6:RAID-6由于有两个校验位的存在,与RAID-5相比,需要读取两次校验位和写入两次校验位,所以RAID-6的写惩罚值是6。
计算IOPS:
根据上文的描述,在实际存储方案设计的过程中,计算实际可用IOPS的过程中必须纳入RAID的写惩罚计算。计算的公式如下:
物理磁盘总的IOPS = 物理磁盘的IOPS × 磁盘数目
可用的IOPS = (物理磁盘总的IOPS × 写百分比 ÷ RAID写惩罚) + (物理磁盘总的IOPS × 读百分比)
假设组成RAID-5的物理磁盘总共可以提供500 IOPS,使用该存储的应用程序读写比例是50%/50%,那么对于前端主机而言,实际可用的IOPS是:
(500 ×50% ÷ 4)+ ( 500 * 50%) = 312.5 IOPS

参考: EMC中文技术社区(https://community.emc.com/go/chinese)

11.2.0.4 Oraagent.bin 进程内存溢出耗用全部主机内存资源

grid  8323186        1  10 08:55:22      -  3:05 $ORACLE_HOME/bin/oraagent.bin

以上的这个文件进程耗用了主机内存36G,整个f服务器内存100%耗用,SWAP利用持续增加,系统变得异常缓慢。

同时检测grid的此进程运行日志oraagent.log,发现错误如下:

CRS-0210: Could not find resource 'ora.LISTENER.lsnr

由此推断监听可能没能启动,检测发现如下

grid@zjyw ~ > $crsctl stat res -t

NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------

ora.OCR_VOTE.dg
               ONLINE  ONLINE       zjywapp
ora.asm
               ONLINE  ONLINE       zjywapp            Started
ora.ons
               OFFLINE OFFLINE      zjywapp

ora.cssd
      1        ONLINE  ONLINE       zjywapp
ora.diskmon
      1        OFFLINE OFFLINE
ora.evmd
      1        ONLINE  ONLINE       zjywapp

监听进程不存在,尝试启动监听报错,

srvctl add listener -l LISZJYW -p 1521
PRCN-2065 : Port(s) 1521 are not available on the nodes given
PRCN-2067 : Port 1521 is not available across node(s) "zjywapp.mydomain.com"

基本可以判断是因为1521端口不可用导致监听没发创建,而oraagent.bin在检测GRID进程资源的时候因为linstenr的问题正好触发了这个bug,当然这个bug应该是最新的,补丁应该还没出。临时解决方案就是创建一个其他端口的listener,并重启gi,或者检查1521是被谁占用,释放了1521端口重新增加监听资源后重启gi此问题应该可以避免。

关于AIX双网卡的负载均衡与HA冗余

在AIX上一般在开始设计的一套数据库后台系统时候,在Power AIX层面都会考虑到硬件的冗余,比如交换机,网卡,Host DISK,FC卡,FC线等,今日一个朋友提出疑问,在AIX层面做EtherChannel时候是否存在流量的负载均衡以及互备模式,AIX的EtherChannel模式如下,

1.Standard: 在这种模式下EtherChannel使用目标主机的IP地址来决定用哪一块网卡来发送数据。EtherChannel用目标IP的末字节除以成员网卡的个数的余数(模)来决定由哪一块网卡发送数据。比如目标IP是10.10.10.1, EtherChannel中有两块成员网卡, (1 % 2) = 1, 所以第二块网卡被用来发送数据 (网卡编号从0开始)。 网卡编号按照它们在smit界面中列出的顺序排列。对于非IP流量(如ARP), 目标MAC地址的末字节被用来进行计算。 这是默认的运行模式。

2.Round Robin: 在这种模式下各个成员网卡被轮流使用,每轮每个网卡发送一个数据包。

3.Network Interface Backup: 这种模式是用于AIX 5.1和AIX 4.3.3的网卡后备模式。在这种模式下,EtherChannel在任何时刻都只将一块网卡用于负担网络流量。主要用于网卡连接到不同的交换机上,并且通过任何的交换机都可以到达同样的网络的情况下。当检测到某个网卡-交换机连接出现问题时(通过网线检测或选择ping某个IP地址, EtherChannel将停止当前的成员网卡并启动下一个成员网卡。只有这种模式会用到Internet Address to Ping, Number of Retries和Retry Timeout选项。

4.Backup Adapter: 可选项。用于AIX 5.2的EtherChannel后备模式。指定您想要用来后备整个EtherChannel的网卡。

6.Internet Address to Ping: 仅用于网卡后备模式。EtherChannel会ping您在这里指定的IP地址。如果回应超时达到指定的数目,EtherChannel会切换网卡。 Number of Retries: 允许的回应超时的次数,默认是3。

7.Retry Timeout: 回应超时的时限。默认是1秒。

答案已经很明显,Round Robin模式具备此功能,只是这种模式采用轮询的方式,不够智能,所以建议流量负载均衡方面还是需要在网络层去规划。

WebLogic Server Patch Set Updates (PSUs)

12.1.2 Patch Set Updates

PSU Description Patch Download Patch Availability Document Bugs fixed in this PSU
12.1.2.0.1 12.1.2.0.1 Patch Set Update (PSU) for WebLogic Server 12.1.2.0 Patch 17572728 My Oracle Support
Note 1618213.1
My Oracle Support
Note 1645833.1

12.1.1 Patch Set Updates

PSU Description Patch Download Patch Availability Document Smart Update Patch ID Bugs fixed in this PSU
12.1.1.0.7 12.1.1.0.7 Patch Set Update (PSU) for WebLogic Server 12.1.1.0 Patch 18269889 My Oracle Support
Note 1618213.1
1G5W My Oracle Support
Note 1645830.1
12.1.1.0.6 12.1.1.0.6 Patch Set Update (PSU) for WebLogic Server 12.1.1.0 Patch 17071664 My Oracle Support
Note 1571391.1
HYQC My Oracle Support
Note 1589783.1
12.1.1.0.5 12.1.1.0.5 Patch Set Update (PSU) for WebLogic Server 12.1.1.0 Patch 16619895 My Oracle Support
Note 1548709.1
LNQI My Oracle Support
Note 1567744.1
12.1.1.0.4 12.1.1.0.4 Patch Set Update (PSU) for WebLogic Server 12.1.1.0 Patch 16083652 My Oracle Support
Note 1525152.1
YJCB My Oracle Support
Note 1544310.1
12.1.1.0.3 12.1.1.0.3 Patch Set Update (PSU) for WebLogic Server 12.1.1.0 Patch 14736141 My Oracle Support
Note 1502461.1
ZFHT My Oracle Support
Note 1519594.1
12.1.1.0.2 12.1.1.0.2 Patch Set Update (PSU) for WebLogic Server 12.1.1.0 Patch 14331523 My Oracle Support
Note 1477727.1
SELV My Oracle Support
Note 1496318.1
12.1.1.0.1 12.1.1.0.1 Patch Set Update (PSU) for WebLogic Server 12.1.1.0 Patch 14142554 My Oracle Support
Note 1455387.1
N9JH My Oracle Support
Note 1466024.1

10.3.6 Patch Set Updates

PSU Description Patch Download Patch Availability Document Smart Update Patch ID Bugs fixed in this PSU
10.3.6.0.8 10.3.6.0.8 Patch Set Update (PSU) for WebLogic Server 10.3.6.0 Patch 18040640 My Oracle Support
Note 1618213.1
T5F1 My Oracle Support
Note 1645823.1
10.3.6.0.7 10.3.6.0.7 Patch Set Update (PSU) for WebLogic Server 10.3.6.0 Patch 17572726 My Oracle Support
Note 1594621.1
FCX7 My Oracle Support
Note 1613601.1
10.3.6.0.6 10.3.6.0.6 Patch Set Update (PSU) for WebLogic Server 10.3.6.0 Patch 17071663 My Oracle Support
Note 1571391.1
BYJ1 My Oracle Support
Note 1589769.1
10.3.6.0.5 10.3.6.0.5 Patch Set Update (PSU) for WebLogic Server 10.3.6.0 Patch 16619891 My Oracle Support
Note 1548709.1
L51R My Oracle Support
Note 1567735.1
10.3.6.0.4 10.3.6.0.4 Patch Set Update (PSU) for WebLogic Server 10.3.6.0 Patch 16083651 My Oracle Support
Note 1525152.1
D33T My Oracle Support
Note 1544308.1
10.3.6.0.3 10.3.6.0.3 Patch Set Update (PSU) for WebLogic Server 10.3.6.0 Patch 14736139 My Oracle Support
Note 1502461.1
HYKC My Oracle Support
Note 1519561.1
10.3.6.0.2 10.3.6.0.2 Patch Set Update (PSU) for WebLogic Server 10.3.6.0 Patch 14331527 My Oracle Support
Note 1477727.1
MYFD My Oracle Support
Note 1496334.1
10.3.6.0.1 10.3.6.0.1 Patch Set Update (PSU) for WebLogic Server 10.3.6.0 Patch 14142550 My Oracle Support
Note 1455387.1
JSES My Oracle Support
Note 1466022.1

10.3.5 Patch Set Updates

PSU Description Patch Download Patch Availability Document Smart Update Patch ID Bugs fixed in this PSU
10.3.5.0.7 10.3.5.0.7 Patch Set Update (PSU) for WebLogic Server 10.3.5.0 Patch 16088411 My Oracle Support
Note 1525152.1
L5TD My Oracle Support
Note 1544306.1
10.3.5.0.6 10.3.5.0.6 Patch Set Update (PSU) for WebLogic Server 10.3.5.0 Patch 14736140 My Oracle Support
Note 1502461.1
SYJ2 My Oracle Support
Note 1519558.1
10.3.5.0.5 10.3.5.0.5 Patch Set Update (PSU) for WebLogic Server 10.3.5.0 Patch 14331529 My Oracle Support
Note 1477727.1
Z6MQ My Oracle Support
Note 1496336.1
10.3.5.0.4 10.3.5.0.4 Patch Set Update (PSU) for WebLogic Server 10.3.5.0 Patch 14142291 My Oracle Support
Note 1455387.1
4D2C My Oracle Support
Note 1466020.1
10.3.5.0.3 10.3.5.0.3 Patch Set Update (PSU) for WebLogic Server 10.3.5.0 Patch 13568070 My Oracle Support
Note 1406574.1
N5G9 My Oracle Support
Note 1435773.1
10.3.5.0.2 10.3.5.0.2 Patch Set Update (PSU) for WebLogic Server 10.3.5.0 Patch 13108890 My Oracle Support
Note 1374524.1
USGW My Oracle Support
Note 1377996.1
10.3.5.0.1 10.3.5.0.1 Patch Set Update (PSU) for WebLogic Server 10.3.5.0 Patch 12617751 My Oracle Support
Note 1346104.1
V9XT My Oracle Support
Note 1348978.1

10.3.4 Patch Set Updates

PSU Description Patch Download Patch Availability Document Smart Update Patch ID Bugs fixed in this PSU
10.3.4.0.5 10.3.4.0.5 Patch Set Update (PSU) for WebLogic Server 10.3.4.0 Patch 13568073 My Oracle Support
Note 1406574.1
PQ4Y My Oracle Support
Note 1435222.1
10.3.4.0.4 10.3.4.0.4 Patch Set Update (PSU) for WebLogic Server 10.3.4.0 Patch 13108901 My Oracle Support
Note 1374524.1
XZNF My Oracle Support
Note 1377995.1
10.3.4.0.3 10.3.4.0.3 Patch Set Update (PSU) for WebLogic Server 10.3.4.0 Patch 12770299 My Oracle Support
Note 1346104.1
GJYS My Oracle Support
Note 1348977.1
10.3.4.0.2 10.3.4.0.2 Patch Set Update (PSU) for WebLogic Server 10.3.4.0 Patch 12357891 My Oracle Support
Note 1323616.1
H94Y My Oracle Support
Note 1328645.1
10.3.4.0.1 10.3.4.0.1 Patch Set Update (PSU) for WebLogic Server 10.3.4.0 Patch 11677325 My Oracle Support
Note 1291877.1
Q8SV My Oracle Support
Note 1296462.1