Archive

Archive for the ‘主机’ Category

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:

    Linux System and Performance Monitoring

    January 15th, 2010 ricky.zhu 1 comment

    新年第一篇

    转载sanotes的这篇非常实用的Linux System and Performance Monitoring 翻译文档,包括CPU篇,内存篇,IO篇,网络篇,总结篇等五个部分,整理成了pdf方便下载。

    Linux system and performance monitoring PDF下载
    原文

    Categories: 主机 Tags:

    NTFS分区修复记

    November 11th, 2009 ricky.zhu No comments

    用Ubuntu已经一年多了,月初更新到了最新的版本9.10,在update的时候不小心把grub列表中Windows的entry弄丢了,麻烦的事情开始了。

    虽然我自己已经正式在Linux办公多时了,但是有时候还是私人要回到Windows下处理一下网银之类的应用(可恶的招行网银,不知道什么时候才能支持Linux)。首先在/boot/grub/menu.lst中加上了Windows的菜单,但是还需要知道是哪个引导分区,但是一下子想不起来哪个是Windows的引导分区,只好进到grub,用root (hdx, y)的方法去列出来,一个一个的尝试一遍,这一尝试不要紧,卷莫名的把我的一个NTFS分区的引导给破坏了。
    尝试的最后结果是引导分区找到了,但是NTFS分区识别不了了。在Linux下面的现象就是无法mount,回到Windows下面,结果是此分区尚未格式化,是否格式化?吓个心惊肉掉,里面是这两年的全部收藏,包括无数的重要文档,资料,图片,工具等等. 当您尝试做某些事情,例如当涉及到像这样的例子在网站上散布类似 InterTrader (http://www.intertrader.com/ ) 投注某些事情,那么就需要使用Windows作为Linux是不能支持的软件。不过Linux的工作确实让事情更快。

    想办法,搜索了一下,遇到这个问题的人还不在少数,Linux WIKI上说用微软自己开发的dskprobe去手动修改,,我下载了一个,尝试了一下,够复杂,全部是十六进制数据,看了半天,楞没敢下手。

    还有一些其他办法,比如在Linux下面把分区头dd多大一个大小,然后修改,如何在恢复,感觉还是不太靠谱,还有简单的办法就是用Windows安装盘进去直接修复MBR,这个方法简单是简单,问题是多年不用windows,一时半会找个安装盘是个大问题,放弃。

    最后继续搜索,找到了分区表医生软件PTTD (partition table doctor),几百k的绿色软件,下载下来,一眼就看到分区D有把大大的叉,右键单击修复,修复成功,重启机器,搞定,前后不到5分钟。东西全部回来了!

    Categories: 主机 Tags:

    How to add swap space in Linux

    February 26th, 2009 ricky.zhu 1 comment
    .!.

    d tox movie download 如何在Linux下面添加swap file,记录之。

    1) 首先确定你要添加的swap的大小,比如是2G,那么就是2048000k
    2)以root用户登录到终端,dd一个文件,大小就是你期望的swap文件大小,比如:

    dd if=/dev/zero of=/swapfile bs=1024000k count=2

    这样就创建了一个大小是2G的文件

    3)创建这个swap file

    mkswap /swapfile

    4)激活当前的swap file,这样在swapon -s就可以看到当前swap已经生效了
    swapon /swapfile

    5)为了在系统重启后依然生效,还需要一个步骤,在/etc/fstab中添加:

    /swapfile swap swap defaults 0 0

    为了验证swap已经生效,有下面的几种方法,/proc/swaps or use free command or swapon -s command:

    Categories: 主机 Tags: ,

    捂紧钱袋好过冬

    November 16th, 2008 ricky.zhu 1 comment
    .!.

    经济不景气,很多公司裁员,经常有朋友问到我们是否受到影响,好像目前为止,还没看到有什么变化。
    公司的现金流也十分充足。这年头,手头有现金就不愁了。虽然国家推出一揽子刺激经济,鼓励消费的方案,但是对于我们普通打工一族,看好钱袋比较好。毕竟冬天马上要来了。

    《福布斯》评出了全球持有现金最多10家科技公司。它们分别是:惠普(148亿美元)、苹果(119亿美元)、IBM(98亿美元)、微软(90亿美元)、戴尔(86亿美元)、甲骨文(85亿美元)、Google(84亿美元)、EMC(55亿美元)、思科(52亿美元)、英特尔(37亿美元) 。

    今天看到最新消息,Sun也裁员了:
    北京时间11月14日消息 据国外媒体报道,为应对全球经济的衰退,Sun公司周五宣布,将在全球范围内裁员5000至6000人,约占员工总数的15%至18%。

    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: