Archive

Posts Tagged ‘Solaris’

Solaris Notes

August 27th, 2010 ricky.zhu 1 comment

Some notes about Solaris HBA management refer

  • Helpful Commands
  • luxadm probe
    luxadm -e port
    devfsadm

  • More Helpful Commands
  • To show Sun/Qlogic HBA’s
    luxadm qlgc

    To show all vendor HBA’s

    luxadm fcode_download -p

    Found Path to 0 FC100/S Cards
      Complete
     
      Found Path to 5 FC100/P, ISP2200, ISP23xx Devices
     
      Opening Device: /devices/pci@9,600000/SUNW,qlc@2/fp@0,0:devctl
      Detected FCode Version:       ISP2200 FC-AL Host Adapter Driver: 1.14 01/11/20
     
      Opening Device: /devices/pci@8,700000/SUNW,qlc@5,1/fp@0,0:devctl
      Detected FCode Version:       ISP2312 Host Adapter Driver: 1.14.09 03/08/04
     
      Opening Device: /devices/pci@8,700000/SUNW,qlc@3,1/fp@0,0:devctl
      Detected FCode Version:       ISP2312 Host Adapter Driver: 1.14.09 03/08/04
     
      Opening Device: /devices/pci@8,700000/SUNW,qlc@3/fp@0,0:devctl
      Detected FCode Version:       ISP2312 Host Adapter Driver: 1.14.09 03/08/04
     
      Opening Device: /devices/pci@8,700000/SUNW,qlc@5/fp@0,0:devctl
      Detected FCode Version:       ISP2312 Host Adapter Driver: 1.14.09 03/08/04
      Complete
     
      Found Path to 0 JNI1560 Devices.
      Complete

     

    Another Method
    prtpicl -v > filename

    To show link status of card
    luxadm -e port

    To see the WWN’s (using address given to you from previous commands), it is the last one that specifies it is a HBA, so the port WWN here is 210000e08b100d16

    # luxadm -e dump_map /devices/pci@1f,0/pci@1/SUNW,qlc@1/fp@0,0:devctl
    Pos Port_ID Hard_Addr Port WWN Node WWN Type
    0 10600 0 224100015d210900 220000015d210900 0x1f (Unknown Type)
    1 10700 0 210000e08b103417 200000e08b103417 0x1f (Unknown Type)
    2 10800 0 210000e08b100d16 200000e08b100d16 0x1f (Unknown Type,Host Bus Adapter

     

    Configuring storage online

    cfgadm -al

    #
    Ap_Id Type Receptacle Occupant Condition
    c0 scsi-bus connected configured unknown
    c0::dsk/c0t0d0 disk connected configured unknown
    c0::dsk/c0t2d0 CD-ROM connected configured unknown
    c1 fc-fabric connected unconfigured unknown
    c1::210000e08b103417 unknown connected unconfigured unknown
    c1::224100015d210900 unknown connected unconfigured unknown
    c2 fc-fabric connected unconfigured unknown
    c2::210100e08b303417 unknown connected unconfigured unknown
    c2::223100015d210900 unknown connected unconfigured unknown
    So we‘re going to run

    # cfgadm -f -c configure c1 c2
    you can now run devfsadm

    Example cfgadm -al

    c1                             fc-private
    c1::21000020379cb9bb           disk         connected    configured   unknown
    c4                             fc-fabric    connected    unconfigured unknown
    c5                             fc           connected    unconfigured unknown
     
    C1 is a 280r internal controller
    C4 is a HBA attached to a switch with no targets
    C5 is a HBA that has nothing connected

    This Might Help

    1) The command cfgadm -al
    2) look for the fc-fabric

    c2 fc-fabric connected
    c3 fc-fabric connected
    3) and then cfgadm -cconfigure c2 c3

    4) Now you see the LUN

    A Magical File
    /kernel/drv/sd.conf

    Checking IO on Fibre Cards
    iostat -xcn 5

    San Foundation Kit
    You get this from Sun, install it after you install the drivers
    There is no SAN foundation kit for Solaris 10. Installing the SAN foundation kit will do bad things. It’s only for Solaris 8 and Solaris 9.

  • Get the WWN
  • Method 1
    $ luxadm probe
    $ luxadm -e port

    $ luxadm -e dump_map <xyz> where xyz= your connected port.

    Method 2
    bash-2.03# cat /var/adm/messages | grep -i WWN

    Sep 20 18:23:28 alautpnc003 qlc: [ID 657001 kern.info] Qlogic qlc(0) WWPN=210000e08b934ead : WWNN=200000e08b934ead
    Sep 20 18:23:39 alautpnc003 qlc: [ID 657001 kern.info] Qlogic qlc(1) WWPN=210100e08bb34ead : WWNN=200100e08bb34ead

    Method 3
    #modinfo | grep SunFC
    46 10274e94 20010 172 1 fcp (SunFC FCP v20050926-1.86)
    47 10269923 82041 fctl (SunFC Transport v20050926-1.36)
    51 1028b850 15e28 171 1 fp (SunFC Port v20050926-1.53)
    53 10300f09 c5024 175 1 qlc (SunFC Qlogic FCA v20051013-2.08)
     
    This example is SFS 4.4.8 from 2005.
     
    All of above assumes Sun-QLogic (qlc) not QLogic (qla).

    Method 4
    cfgadm -o show_FCP_dev -al

    Method 5
     prtconf -pv | grep -i wwn | grep -i port

    </xyz>

    HTH.

    Categories: 主机 Tags:

    Solaris Swap Space Tips

    May 25th, 2010 ricky.zhu No comments

    最近被问到Solaris上的Space和Memory信息,发现很多信息不一致,比如top看到的swap和memory信息跟vmstat看到的信息不同,如何知道具体服务器用了多少swap,还有多少swap?实际物理内存到底是多少?做了一点功课,总结一下:

    首先Solaris上的Swap跟普通的Linux上的swap机制有一点不同,Solaris上的swap用的是一个Virtual Swap Space概念,原因如下:

    假设系统当前还有可用的内存空间为30M,而只剩下10M的Swap空间了,这时,如果有一个进程开始运行并企图执行Malloc(15*1024*1024)的命令(分配15M空间),这个进程会因为这个命令而失败。

    为了弥补这个缺陷,Sun为Solaris 2 以后的版本设计了虚拟Swap空间。所谓虚拟的Swap空间,概念其实很简单,swap空间再也不是单指硬盘的分区或文件。虚拟Swap空间包含两个部分:部分物理内存和传统上的Swap分区。经过适当的配置,可以使系统需要Swap空间时,先使用内存部分的swap空间,如果内存部分的swap空间不够,再使用磁盘部分的Swap空间。这样,也许你硬盘上的Swap空间很少得到使用了,甚至根本不需要Swap分区。

    但是,还有需要注意的就是,

    并不是所有从物理内存中交换出来的数据都会被放到Swap中(如果这样的话,Swap会不堪重负),有相当一部分的数据直接交换到文件系统。例如,有的程序会打开一些文件,对文件进行读写(其实每个程序都至少打开一个文件,那就是运行程序本身),当这些程序的内存空间需要交换出去时,文件部分的数据就没有必要放到Swap空间中了,如果是读文件操作,那么内存数据直接就释放了,不需要交换出来,因为下次需要时,直接从文件系统就能恢复; 如果是写文件,只需要将变化的数据保存到文件中,以便恢复。但是那些用malloc(3C)和new函数生成的对象的数据则不同,需要Swap空间,因为它们在文件系统中没有相应的“储备”文件,因此被称为“匿名”(Anonymous)的内存数据,这类数据还包括堆栈中的一些状态和变量数据等,所以说, Swap空间是“匿名”数据的交换空间。

    看了一堆的理论解释,有点糊涂,还是用数字来说话吧,在Solaris下,swap命令是用来查看当前系统中的swap信息的。
    之前一直理解的-l 参数和-s参数表达的是同样的意思,其实区别就在这里,一个查看的是物理的swap space,一个是当前系统的virtual swap space,弄清楚这个,前面的就好解释了。

    # swap -l
    查看的是物理交换分区
    #swap -s
    查看的是虚拟交换空间

    虚拟交换空间=物理交换分区+部分物理内存 (这里的部分物理内存,我理解为当前free的physical内存,不知道是否确切?)

    比如我一台机器,有8G物理内存(可以通过prtdiag | grep Mem得到)

    # swap -l
    swapfile dev swaplo blocks free
    /dev/dsk/c2t1d0s0 118,32 16 71127152 71127152
    这里配置了一个swap device, 大小是36G,注意上面的单位是block, 1block=512byte

    # swap -s
    total: 1831680k bytes allocated + 546192k reserved = 2377872k used, 39440480k available
    #
    这里看到的系统当前的可用的virtual swap space是39G,已经使用2G多。从下面的计划可以验证这个

    vmstat可以看到当前的的free memory

    71127152/2 ( swap device ) + free physical memory (8G – 5237240) = 40800816 (virtual swap space)

    从swap -s得到的结果是 2377872k+39440488k =41818360

    两者是基本相等的。进一步验证了这个计算是正确的。

    另外需要说明几点:

    1 另外,Swap分区的数量对性能也有很大的影响。因为Swap交换的操作是磁盘I/O的操作,如果有多个Swap交换区,Swap空间的分配会以轮流的方式操作于所有的Swap,这样会大大均衡I/O的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间位于等待状态,效率很低,用性能监视工具就会发现,此时的CPU并不很忙,而系统却慢,这说明,瓶颈在I/O上,依靠提高CPU的速度是解决不了问题的。

    2 虚拟Swap空间与 /tmp目录有相当大的关系。Sun在实现/tmp目录时,充分考虑了应用程序运行的效率。许多应用程序,特别是数据库服务都会频繁使用/tmp目录作为临时数据保存区,而Solaris将/tmp目录下的文件都放在内存中而不是硬盘里,这样会大大提高应用程序的效率。

    当系统的swap 不够的时候,可以通过两种方式增加:swap device或者swap file,下面就说一下如何通过命令的方式增加swap file:

    # mkdir /files
    # mkfile 24m /files/swapfile
    # swap -a /files/swapfile
    # vi /etc/vfstab
    (An entry is added for the swap file):
    /files/swapfile – – swap – no -
    # swap -l
    swapfile dev swaplo blocks free
    /dev/dsk/c0t2d0s1 32,17 8 205624 192704
    /files/swapfile – 8 40952 40952

    相反的,删除一个swap file的方法在下面。

    # swap -d /files/swapfile
    # (Remove the deleted swap entry from the /etc/vfstab file)
    # rm /files/swapfile
    # swap -l
    swapfile dev swaplo blocks free
    /dev/dsk/c0t2d0s1 32,17 8 205624 192720

    详细的note,也可以参考这里或者Solaris的官方文档

    Categories: 主机 Tags:

    11.2.0.1.0 on Solaris.Sparc64 and Solaris.X64 released

    November 10th, 2009 ricky.zhu No comments

    Oracle Database 11.2.0.1.0 for Solaris已经发布,现在起可以从OTN上下载了。距离Linux版本的发布到现在已经快2个多月的时间了,这次率先发布Solaris.Sparc平台,足以显现Oracle对Solaris这个平台的重视程度了。

    其实上个月OOW2009上Larry宣布的Oracle Database Machine V2也是基于Solaris.Sparc硬件架构的。

    11.2.0.1.0现在可用的平台包括Linux X86,Linux X64 and Solaris.Sparc64。 Solaris.Sparc64的大小在2.3G左右。

    下载地址

    2009-11-26,Oracle Database 11gR2 (11.2.0.1.0) for Solaris.X64 released。这是在11gR1 (11.1.0.6.0) 之后的又一个重要的release,在11gR1中是不支持Solaris.X64平台的,现在11gR2已经率先在AIX, HPI主流平台之前就发布Solaris.X64版本足以显现Oracle对Solaris平台的重视程度。下载地址

    Categories: 数据库 Tags: ,

    Solaris Run States Introduction

    October 27th, 2008 ricky.zhu No comments
    .!.

    divx 007 from russia with love Solaris运行级别表示系统的运行状态,每个level具体运行哪些服务和进程是由/etc/rc#.d目录下面的脚本决定的。举例来说,在有SunCluster的RAC环境下,对Oracle UDLM (ORCLudlm) 进行升级就需要先进入单用户模式,卸载老的ORCLudlm,然后安装新版本。 这个时候就需要boot -s
    默认的服务的运行级别列表如下:

    * 0: The system is at the PROM monitor (ok>) or security monitor (>) prompt. It is safe to shut down the system when it is at this init state.
    * 1, s or S: This state is known as “single-user” or “system administrator” mode. Root is the only user on the system, and only basic kernel functions are enabled. A limited number of filesystems (usually only root and /usr) are mounted. This init state is often used for sensitive functions (such as kernel libc patches) or while troubleshooting a problem that is keeping the system from booting into multiuser mode.
    * 2: Multiple users can log in. Most system services (except for NFS server and printer resource sharing) are enabled.
    * 3: Normal operating state. NFS and printer sharing is enabled, where appropriate.
    * 4: Usually undefined.
    * 5: Associated with the boot -a command. The system is taken to init 0 and an interactive boot is started.
    * 6: Reboot. This state takes the system to init state 0 and then to the default init state (usually 3, but can be redefined in the /etc/inittab file).
    Read more…

    Categories: 主机 Tags:

    Solaris rsh connection refused resolved

    September 22nd, 2008 ricky.zhu No comments

    这个问题困扰了我好几个月,今天终于搞定了。

    一个Solaris10的cluster,四个节点,此处以1,2,3,4代替,所有节点之间ssh和rsh都是通的,但是1-1,2-1,3-1,4-1的rsh不通,这里所说的通就是不用输入密码即可访问其他的节点,比如1-2,即在1节点执行rsh 2 date即可显示2节点的当前时间。

    其实要配置从1-2节点的rsh,有一些必要的步骤,简单罗列如下:
    Read more…

    Categories: 主机 Tags:

    Service Management Facility快速入门

    August 26th, 2008 ricky.zhu No comments

    在解决前面scstat问题的时候,仔细的研读了一下这个sun的官方帮助,加深了对Solaris的服务的理解。在Solaris中,可以利用svcs 和svcadm 命令进行查看和修改、重启服务。下面就转载一下Service Management Facility这篇快速入门

    简介

    过去,UNIX 操作系统包含一组服务:这些服务是与任何交互式用户登录都不关联的软件程序,用于侦听和响应请求以执行特定的任务(如传送电子邮件、响应 ftp 请求,或允许执行远程命令)。这些传统服务通常是一些单独的应用程序,它们作为单个进程执行,在系统引导时启动,并在系统启动和运行时持续执行,可处理接收到的任何请求。

    如今,管理员必须管理一系列服务,这些服务的作用已经超出了此原始模型的作用范围。Sun 推出了 Service Management Facility(SMF,服务管理工具),以简化这些系统服务的管理。SMF 是 Solaris 操作系统的一项新功能,为每个 Solaris 系统上的服务和服务管理创建支持的、统一的模型。它是 Solaris 10 中预测性自我修复技术的核心部分,为软件和硬件故障以及管理错误提供自动恢复功能。

    在本指南中,我们将介绍 SMF 的功能及优势,指出 Solaris 中显著更新的部分,并说明如何使用 SMF 完成典型的管理任务。可以在 Sun 的 BigAdmin Web 站点上找到 SMF 及预测性自我修复功能的详细指南。

    功能

    Service Management Facility 已经改进了 Solaris 管理模型的几个方面。一些最显著的更新包括:

    * 服务由可以进行查看(使用新的 svcs(1) 命令)和管理(使用 svcadm(1M) 和 svccfg(1M))的一级对象表示。
    * 无论失败的服务是由管理员错误、软件错误导致,还是受无法更正的硬件错误的影响,这些服务都将按照相关性顺序自动重新启动。
    * 可以获取有关配置错误或行为异常的服务的详细信息,包括对服务未运行的原因的说明(使用 “svcs -x”),以及每个服务单独的持久性日志文件。
    * 引导过程中出现的问题比较容易调试,因为在启动故障期间可以控制引导详细程度,记录服务启动消息,以及提供更可靠的控制台访问。
    * 自动拍摄服务配置快照,从而更容易备份、恢复和撤消对服务所做的更改。
    * 可以使用受支持的工具 (svcadm(1M)) 启用和禁用服务,从而允许更改不受升级和修补程序的影响而保留原样。
    * 管理员可以更容易地将任务安全地委派给非超级用户,这些任务包括配置、启动、停止或重新启动服务(如 smf_security(5) 手册页中所述)。
    * 根据服务的相关性并行启动服务,可以更快地引导大型系统。

    Read more…

    Categories: 主机 Tags:

    scstat unexpected error问题及解决

    August 26th, 2008 ricky.zhu 7 comments

    最近一直很少更新博客,熟悉的朋友都知道,我在忙一个重要的release,Oracle Database 11g的第一个patchset – 11.1.0.7,这个patchset应该很快就要发布的,敬请期待。

    今天在测试的时候,Solaris的节点再一次出现问题,最近服务器的问题不断,先是DLM问题,后面是QFS问题,现在居然是服务出现依赖关系,启动异常,SunCluster命令scstat返回异常结果:unexepcted error

    根据google搜到的结果,在Sun的官方网站找到一个类似的问题

    根据提示,检查一下svcs -x 的输出,
    bash-2.05$ svcs -x
    svc:/network/nfs/client:default (NFS client)
    State: offline since August 25, 2008 10:33:46 PM PDT
    Reason: Start method is running.
    See: http://sun.com/msg/SMF-8000-C4
    See: mount_nfs(1M)
    See: /var/svc/log/network-nfs-client:default.log
    Impact: 18 dependent services are not running. (Use -v for list.)

    svc:/application/print/server:default (LP print server)
    State: disabled since August 25, 2008 10:31:10 PM PDT
    Reason: Disabled by an administrator.
    See: http://sun.com/msg/SMF-8000-05
    See: lpsched(1M)
    Impact: 2 dependent services are not running. (Use -v for list.)

    svc:/system/cluster/cl-svc-cluster-milestone:default (Synchronizing the cluster userland services)
    State: disabled since August 25, 2008 10:32:38 PM PDT
    Reason: Temporarily disabled by an administrator.
    See: http://sun.com/msg/SMF-8000-1S
    Impact: 1 dependent service is not running. (Use -v for list.)

    svc:/application/stosreg:default (Service Tag OS Registry Inserter)
    State: maintenance since August 25, 2008 10:33:39 PM PDT
    Reason: Method failed.
    See: http://sun.com/msg/SMF-8000-8Q
    See: stclient(1M)
    See: /var/svc/log/application-stosreg:default.log
    Impact: This service is not running.

    svc:/network/stdiscover:default (Service Tag discovery probe)
    State: maintenance since August 25, 2008 10:33:45 PM PDT
    Reason: Restarter svc:/network/inetd:default gave no explanation.
    See: http://sun.com/msg/SMF-8000-9C
    See: in.stdiscover(1M)
    Impact: This service is not running.

    svc:/network/stlisten:default (Service Tag Discovery Listener)
    State: maintenance since August 25, 2008 10:33:45 PM PDT
    Reason: Restarter svc:/network/inetd:default gave no explanation.
    See: http://sun.com/msg/SMF-8000-9C
    See: in.stlisten(1M)
    Impact: This service is not running.
    bash-2.05$

    发现服务的依赖不对,启动console进入单用户模式,操作了几个服务,重新禁用和启用,重启,居然好了。
    记录一下。

    Categories: 主机 Tags:

    SunCluster ucmmd问题解决过程

    March 7th, 2008 ricky.zhu No comments

    最近,经常遇到SunCluster中有一个节点ucmm起不来的问题,现象就是scstat -g输出的结果显示ucmmd is not running,十分郁闷
    STIT的弟兄们帮助解决了几次,但是也不知所以然,这次刚解决了,又坏了,恼火。

    search了Sun的网站,找到了scswitch的用法,仔细看了一遍,然后用了两个命令搞定了。

    1.先用ucmmd把ucmm的process重新启动一次:

    #/usr/cluster/lib/ucmm/ucmmd -r /usr/cluster/lib/ucmm/ucmm_reconf

    2. 然后用scswitch把相关的group resource offline/online一次,结果OK

    # /usr/cluster/bin//scswitch -R -h xxx -g rac-framework-rg
    #xxx is the node name

    scswitch的用法记录一下,以备后患

    scswitch(1M)

    scswitch– perform ownership and state change of resource groups and disk device groups in Sun Cluster configurations

    SYNOPSIS

    scswitch -c -h node[,...] -j resource[,...] -f flag-name
    scswitch {-e| -n} [-M] -j resource[,...]
    scswitch -F {-g resource-grp[,...]| -D device-group[,...]}
    scswitch -m -D device-group[,...]
    scswitch -Q [ -g resource-grp[,...]]
    scswitch -R -h node[,...] -g resource-grp[,...]
    scswitch -S -h from-node [ -K continue_evac]
    scswitch {-u| -o} -g resource-grp[,...]
    scswitch -z -g resource-grp[,...] -h node[,...]
    scswitch -z -g resource-grp[,...]
    scswitch -z
    scswitch -z -D device-group[,...] -h node
    scswitch -Z [-g resource-grp[,...]]
    Read more…

    Categories: 主机 Tags: