天道酬勤

Oracle and My Life

Archive for the ‘IBM日记’ Category

AIX multipath for DS[345]K

one comment

Multipath options with DS3000/DS4000/DS5000:

DS Subsystem Support multipath driver

Default driver on AIX

AIX5.2 AIX5.3 AIX6.1
DS3000 native MPIO only MPIO
DS4000 RDAC, native MPIO, MPIO w/SDDPCM RDAC RDAC MPIO
DS5000 native MPIO, MPIO w/SDDPCM

MPIO

AIX MPIO is supported on AIX starting from AIX 5.2 TL10, AIX 5.3 TL6 and AIX 6.1 SP2 though various PTFs and fixes may be required (see interoperability matrix and AIX MPIO documentation below). It is supported with DS4000 firmware 6.60.xx.xx and higher on DS4800, DS4700, DS4200, DS4500 and DS4300. MPIO is the strategic driver for all current DS4000 platforms in AIX 6.1 and up – except for DS4400 which is RDAC only. RDAC is the default driver on all levels of AIX 5.2 and 5.3.

In AIX Version 6.1, the DS4K products are configured as Multipath I/O (MPIO) devices by default. A DS4K product using the FCPARRAY (RDAC) driver may be migrated to the MPIO driver by using the instructions found in the documents below, or all DS4K devices may be migrated by uninstalling the devices.fcp.disk.array.rte package and then running the cfgmgr command or rebooting.

Default driver on AIX6.1:

# oslevel -r
6100-03
# lsdev -Cc disk
hdisk0 Available 08-08-00-5,0 16 Bit LVD SCSI Disk Drive
hdisk1 Available 08-08-00-8,0 16 Bit LVD SCSI Disk Drive
hdisk2 Available 05-08-01     MPIO Other DS4K Array Disk
hdisk3 Available 05-08-01     MPIO Other DS4K Array Disk
# lspath
Enabled hdisk0 scsi0
Enabled hdisk1 scsi0
Enabled hdisk2 fscsi0
Enabled hdisk3 fscsi0
Enabled hdisk2 fscsi1
Enabled hdisk3 fscsi1
# mpio_get_config -Av
Frame id 0:
    Storage Subsystem worldwide name: 60ab80011f0e000004d6f113e
    Controller count: 2
    Partition count: 1
    Partition 0:
    Storage Subsystem Name = 'DS4800'
        hdisk      LUN #   Ownership          User Label
        hdisk2         0   B (preferred)      1
        hdisk3         1   A (preferred)      EBS

Default driver on AIX5.3:
BTW:当前主机连接一台DS4800存储

# oslevel -r
5300-10
# manage_disk_drivers  
1: DS4100: currently RDAC; supported: RDAC/fcparray, MPIO
2: DS4300: currently RDAC; supported: RDAC/fcparray, MPIO
3: DS4500: currently RDAC; supported: RDAC/fcparray, MPIO
4: DS4700/DS4200: currently RDAC; supported: RDAC/fcparray, MPIO
5: DS4800: currently RDAC; supported: RDAC/fcparray, MPIO

Change default drive to MPIO from RDAC:

# manage_disk_drivers -c 5
DS4800 currently RDAC/fcparray
Change to alternate driver? [Y/N] Y
DS4800 now managed by MPIO
 
It is necessary to perform a bosboot before rebooting the system in
order to incorporate this change into the boot image.
In order to change to the new driver, either a reboot or a full
unconfigure and reconfigure of all devices of the type changed
must be performed.
# bosboot -a
bosboot: Boot image is 40130 512 byte blocks.
# shutdown -Fr
 
# manage_disk_drivers
1: DS4100: currently RDAC; supported: RDAC/fcparray, MPIO
2: DS4300: currently RDAC; supported: RDAC/fcparray, MPIO
3: DS4500: currently RDAC; supported: RDAC/fcparray, MPIO
4: DS4700/DS4200: currently RDAC; supported: RDAC/fcparray, MPIO
5: DS4800: currently MPIO; supported: RDAC/fcparray, MPIO
# lsdev -Cc disk
hdisk0 Available 08-08-00-5,0 16 Bit LVD SCSI Disk Drive
hdisk1 Available 08-08-00-8,0 16 Bit LVD SCSI Disk Drive
hdisk2 Available 05-08-01     MPIO Other DS4K Array Disk
# lspath
Enabled hdisk0 scsi0
Enabled hdisk1 scsi0
Enabled hdisk2 fscsi0
Enabled hdisk2 fscsi1
#  mpio_get_config -Av
Frame id 0:
    Storage Subsystem worldwide name: 60ab80011f0e000004d6f113e
    Controller count: 2
    Partition count: 1
    Partition 0:
    Storage Subsystem Name = 'DS4800'
        hdisk      LUN #   Ownership          User Label
        hdisk2         0   A (preferred)      1

AIX 6.1 TL4的命令与之前的版本有所不同:

#manage_disk_drivers
    Usage :
    manage_disk_drivers [-l]
    manage_disk_drivers -d device -o driver_option
    manage_disk_drivers -h
    Meaning of the Flags:
    -l: Display the Devices, Present Drivers, and Driver Options
    -d: The Device to change the Driver
    -o: Selects the new Driver
    -h: should be help but is interpreted as an illegal option
#manage_disk_drivers -l 查看当前使用的是哪种多路径模式
Device  Present Driver Driver Options
DS4100  AIX_APPCM  AIX_APPCM,AIX_fcparray
DS4300  AIX_APPCM  AIX_APPCM,AIX_fcparray
DS4500  AIX_APPCM  AIX_APPCM,AIX_fcparray
DS4700  AIX_APPCM  AIX_APPCM,AIX_fcparray
DS4800  AIX_APPCM  AIX_APPCM,AIX_fcparray
DS5020  AIX_APPCM  AIX_APPCM
DS5100/DS5300  AIX_APPCM  AIX_APPCM AIX_APPCM
#manage_disk_drivers -d DS4800 -o AIX_fcparray
将DS4800由AIX_APPCM(MPIO)改成AIX_fcparray(RDAC)
#bosboot -a

-The End-

Written by ochef

May 25th, 2011 at 4:18 pm

Posted in IBM日记,Operating System

Tagged with

学习:NFS网络文件系统优化(二)

leave a comment

1.NFS的发展:

NFS最初由Sun在1984年发布,客户端通过网络访问远程服务器上的各种文件,感觉就像这些文件就存储在客户端上的磁盘一样。简单点说就是把一台机器上的某个文件系统mount到另外一台机器上使用。NFS前后一共有四个版本:V2,只能通过 UDP 进行操作;V3,添加了对 TCP 的支持;由 Internet Engineering Task Force发布了V4。AIX 5.3支持V2、3、4,缺省是V3,RHEL对NFS缺省版本是V4。

NFS 同时支持 TCP 和 UDP。UDP适合对于局域网中的应用,而对于要求可靠性高的环境来说,TCP 则更加可靠,并且还可以在 WAN 中提供更好的性能,因为它可以进行流量控制以帮助最大限度地减少网络延迟。有一点,NFS与平台和操作系统无关,它通过使用远程过程调用 (RPC) 来实现这项功能。

2.NFS的访问流程:

客户端计算机通过挂载文件系统,请求访问导出的数据。然后,当客户端线程尝试处理 NFS 挂载的文件系统中的数据时,将这些数据重定向到 biod,后者会通过 LAN 将数据传递到 NFS 服务器及其 nfsd 守护进程。服务器使用 nfds 来导出可供其客户端使用的目录。biod 类似cache功能,执行预读入和延迟写请求都需要这个守护进程,既可以清空缓冲区缓存,也可以填满缓冲区缓存。

3.NFS的监控:

系统提供的有nmon、topas、nfsstat、nfs、nfs4cl 和 netpmon命令都能获得NFS的信息。

nmon 和 topas

nmon或者topas之类的工具,因为它提供了一个很好的全面视图,其中说明了系统中正在进行的工作。请记住,NFS 性能问题可能与NFS 子系统根本没有任何关系。nmon 更适合于长期趋势研究和分析,配合”nmon analyser”可以生成免费的性能报告。例如:

# nmon -f -t -r test1 -s 60 -c 180

注意-f 按标准格式输出文件:<hostname>_YYYYMMDD_HHMM.nmon

# sort -A systemnfs_yymmdd.nmon > systemnfs_yymmdd.csv

nmon 监控3 个小时,每 60 秒进行一次快照。然后对所创建的输出文件进行排序最后由nmon analyser分析。

nmon工具获取使用,nmon analyser分析工具获取

nfsstat

nfsstat 工具是最重要的工具,这个命令可以显示有关 NFS 和 RPC 调用的所有类型的信息。

# nfsstat -cr

-c客户端

-r提供 RPC 信息

#nfsstat -cn

nfs4cl

如果是NFS V4,可以显示 NFS 版本 4 的统计信息和属性。

# nfs4cl showfs

netpmon

可以使用 netpmon 命令帮助对 NFS 瓶颈进行故障排除。除了监视许多其他类型的网络统计信息之外,netpmon 还可以监视客户端:包括读取和写入子例程、以及 NFS RPC 请求。对于服务器,netpmon 可以监视读取和写入请求。netpmon 将启动跟踪并在后台运行,直到停止它为止。

# netpmon -T 1800 -o  /tmp/netpmon.out

netpmon必须由trcstop来停止跟踪,

# trcstop

注意: netpmon 是一个很有用的跟踪实用工具,但是性能开销有时甚至会超过其作用;使用这个实用工具时请小心。

4.NFS的优化

优化必须是对Client和Server同时进行。

nfsmo 设置并显示 nsfstat 优化参数。mount 优化基于 NFS 服务器的资源,前提是挂载了 NFS 文件系统之后才能生效。

Client端

biod 守护进程在连接性方面起到了很重要的作用。当 biod 自我优化线程数量(该守护进程根据需要创建和删除线程)时,可以根据整体负载,对 biod 线程的最大数目进行优化。注意,仅增大线程的数目并不能减轻由 CPU、I/O 或者内存瓶颈所引起的性能问题。

虚拟内存管理器 (VMM) 的参数 minperm 和 maxperm。与优化数据库服务器有所不同,对于 NFS 来说,希望允许 VMM 使用尽可能多的 RAM 来进行 NFS 数据缓存。大多数 NFS 客户端对于工作段页面的需求很少。为了确保所有的内存都用于文件缓存,可以将 maxperm 和 maxclient 设置为 100%。

# vmo -a|grep maxperm%

maxperm% = 20

# vmo -a|grep maxclient%

maxclient% = 20

# vmo -o maxperm%=100

如果使用了数据库,并且它可以使用自己的文件数据缓存,那么在这种情况下, maxperm 和 maxclient 设置不应为 100%,应将这些数值设置得较低,并且使用 NFS 中的并行 I/O 模式挂载文件系统。另外还请注意,NFS 在每个客户端系统中维护缓存,其中包含最近访问的文件和目录的属性。mount 命令可以控制在缓存中保存这些条目的时间长度。对于 mount 命令的参数,可以更改下面几项:actimeo、acregmin、acregmax、acdirmin、acdirmax

例如,acregmin 参数可以指定在实际更新之后,文件条目将要保留的最短时间。在更新文件的时候,将根据这个参数的具体值,将其从缓存中删除。使用 mount 命令,还可以指定希望进行的是硬装入还是软装入。使用软装入,如果出现了错误,那么将立即对请求的程序进行报告;而对于硬装入,NFS 将不断地进行重试。这些重试本身可能会导致性能问题。从可靠性的角度而言,推荐使用硬装入读取和写入目录,以防止可能对数据造成的破坏。

mount 参数 rsize 和 wsize 分别定义读取和写入目录的 RPC 包的最大值。缺省值是 32768 个字节。对于 NFS 版本 3 和 4,如果在高速网络中挂载的 NFS 卷,那么应该将这个值增大到 65536。另一方面,如果网络速度非常缓慢,那么可能会为了通过发送较短的包来减少包碎片的数量,而考虑减少这个缺省值。然而,如果减少这个缺省值,那么将需要发送更多的包,这可能会增加整体网络的使用率。

Server

NFS 既可以使用 TCP,也可以使用 UDP,tcp_sendspace 和 tcp_recvspace 值设置得高于缺省值,因为这可能会通过增加网络性能而对服务器产生影响。不能使用 nfso 对这些内容进行优化,而是使用 no。

# no -a|grep space

tcp_recvspace = 16384

tcp_sendspace = 16384

udp_recvspace = 42080

udp_sendspace = 9216

如果运行 NFS 的是版本 4,要允许 TCP 窗口的大小大于 64KB,需要启用nfs_rfc1323,同样在客户端中进行设置。

# no -o rfc1323=1

Setting rfc1323 to 1

或者

# nfso -o nfs_rfc1323=1

如果服务器是专门的 NFS 服务器,参数是 nfs_max_read_size将设置读取应答 RPC 的最大大小

#nfso -L nfs_max_read_size

NAME                       CUR    DEF    BOOT   MIN    MAX    UNIT           TYPE

DEPENDENCIES

—————————————————————————————–

nfs_max_read_size      32K    32K    32K    512    64K    Bytes             D

—————————————————————————————–

将 nfs_max_read_size 增大到 64K

#nfso -o nfs_max_read_size=65536

若要重新启动系统之后继续生效,可以将其放入到 /etc/tunables/nextboot 文件中。

#nfso -L

-a 或者 -L 标志可得到更详细的信息。

Reference:

AIX文档库

-The End-

Written by ochef

November 8th, 2010 at 4:35 pm

Posted in IBM日记

Tagged with ,

学习:AIX 5L网络性能优化(一)

one comment

当系统网络发生了争用的时候,诊断使用的第一条命令就是:netstat。netstat是获得网络配置情况的快速方法,但在不加参数的情况下不会获得详细信息。

AIX中的 TCP/IP 各层:
net
MTU(Maximum Transfer Unit):定义为可以通过网络进行传输的最大的数据包。其大小取决于网络的类型。例如,16 位令牌环网的缺省 MTU 大小为 17914,而光纤分布式数据接口(Fiber Distributed Data Interface,FDDI)的缺省 MTU 大小为 4352。以太网的缺省 MTU 大小为 1500(在启用了巨型帧 (jumbo frames) 的情况下为 9000)。数据包越大,所需要传输的数据包就越少,从而提高系统的带宽使用率。要更改为使用巨型帧,可以使用如下的方法:

[root@p550:/]#smit devices

Communication->Ethernet Adapter->Adapter->Change / Show Characteristics of an Ethernet Adapter->选择网卡

Transmit jumbo frames     [no] ->  将no更为yes

注:如果系统中仅使用了虚拟 I/O 以太网,刚无法进行这项更改。

Media speed:适配器将根据此项配置情况与其他设备进行通信。保持硬件固件级别的最新状态,可以修复许多网络问题。下面命令可以查看固件级别:

[root@p550:/]#lscfg -vp | grep -p ROM

ROM Level.(alterable)…….DV0210

监控网络状态的常用命令

netstat -in 可以显示整体网络统计信息。

-m 选项,允许查看内核 malloc 统计信息,其中包括每个 CPU 的 mbuf 内存请求(包括各个缓冲区的大小)、正在使用的和失败的数量。

enstat 命令显示设备驱动器统计信息:

[root@p550:/]#entstat -d en0

netpmon 可以从网络的角度提供有关 CPU 使用的信息,它还包括网络设备驱动器 I/O、Internet 套接字调用,以及其他各种统计信息的数据。该命令将启动跟踪工作并在后台运行,直到您使用 trcstop 命令中止它。下面使用一个大小为 2M 字节来跟踪缓冲区:

[root@p550:/]# netpmon  -T 2000000  -o /tmp/net.out

spray 命令

spray命令将发送单向的数据包流从本地主机到远程主机,能显示数据包的数量以及数据包的传输速率。但在使用 spray 之前,确保 sprayd守护进程已启用,默认是关闭的。使用smit inetd开启和刷新。

[root@p630/]#which spray
/usr/sbin/spray

[root@p630/]#ls -l /usr/etc/spray
lrwxrwxrwx   1 root     system           15 Oct 27 2009  /usr/etc/spray -> /usr/sbin/spray

[root@p630/]#/usr/etc/spray p550 -c 2000 -l 1400 -d 1
sending 2000 packets of length 1402 to
p550 …
no packets dropped by p550
758 packets/second, 1062769 bytes/second

上面示例中,向主机 p550发送了 2000 个数据包,数据包之间的时间延迟为一微秒,每个数据包的长度为 1400 个字节。

Reference:

AIX文档库

-The End-

Written by ochef

November 1st, 2010 at 4:16 pm

Posted in IBM日记

Tagged with

IBM日记(1)

leave a comment

今天星期五,按照公司惯例下午3点所有员工都去羽毛球馆打球,打了差不多一个小时,李工(我老大)的电话响了,客户的。我继续打,看到他已经把本本拿出来,估计客户那边机器出问题了,差不多二十分钟过去了,电话还在继续,问题应该不轻,不然会在星期一处理。

打了这么久的球体力也耗得差不多了下场休息,李工走过来跟我说:现在我跟去客户那看看,去洗手间换衣服出门打车。差不多半小时赶到客户机房,原来是二台P570异常掉电之后HMC无法控制分区,起不来了。二台570做了二个分区,一台P670和P690也做了二个分区,上面跑的Oracle 10g RAC,570是它的DG。了解情况之后,试着连接,HMC里就是一个分区也没有,没办法,拿本本直接连,在570前面板上检查一下IP地址,T1端口IP:192.168.2.147可以ping能,ASMI也可以登录,(T2端口的IP:192.168.3.147这二个IP是出厂时的默认值),login HMC,看到192.168.2.147这个的state是failed authentication,这是ASMI的口令与HMC的不一致导致的,这说明异常掉电之后,ASMI与HMC信息同步没有完成,重新设置ASMI中HMC的口令后,HMC能看到二个分区了,这时注意state成为noet connected,登出再次登录HMC,二个分区的state变成为inactive,在tasks菜单里将其都激活,启oracle(由于客户比较紧张,连oracle都不会起了^-^)和应用,检查没有问题。至此,问题解决回家。

今天开始,以后将遇到的解决的所有IBM方面的问题,不管大小简单与否,就当见证自己学习IBM技术的一个成长过程记下来好了,见笑了!

-The End-

Written by ochef

July 24th, 2009 at 11:35 pm

Posted in IBM日记

Tagged with

无觅相关文章插件,快速提升流量