Archive for the ‘OS’ category

继续学习MainFrame

May 18th, 2009

继续学习M/F相关的一些东东,陆续看了一些TSP/RACF/DATA SET…的一些东西.感觉架构和开放式平台差异太大,思路一直转不过来.最近手头的项目也比较多,只能见缝插针了.

在笔记本上配了一个MVS 3.8 under Hercules,先玩着.

免费的短信监控系统

April 3rd, 2009

一般来说,对于一个要求高可用性的系统来说除了使用email来通知工程师外,一般来说会用到短信系统来将错误和告警即时发到值班工程师的手机上。我们现在的Global短信监控系统只支持美国的手机号。本来暗自窃喜,以为会减少workload.但是没有短信系统的支持,确实会对系统的监控造成不便。

那么解决办法是什么呢?呵呵,答案就是139.com的手机信箱。

我把监控脚本里面的email地址指到139.com的信箱里面,当139信箱收到任何任何alert,你的手机上面都会即时收到。当然为了更醒目,你需要在subject里面最好有清晰,明确的信息。

改了20多个脚本,不错,反正免费:)

分布式的数据库集群和海量数据存储的一点思考

April 3rd, 2009

题目很大,如果以为这是篇技术文章,那可就错了:)

过年的时候,回来和几个老朋友见面。大家好像都碰到面临着海量数据存储和数据处理能力overflow的压力。

一个哥们,一直做移动行业的ETL,N久没见。给我的第一个电话,就是讨论详单海量数据能否由过去的集中处理,能否考虑在ETL中使用分布式的集群。

另外一个老朋友,工作在一个亚洲数得着的一个大规模订单处理和流转系统环境里面从事应用架构方面的工作,现在也在考虑数据库层面架构的重构。过年就那么几天,和他喝了一次咖啡,吃了一次日本菜。每次主要讨论的都是系统架构的技术细节(:

至于我,以前从事过移动和烟草的一些项目,也对RAC和DPF,oltp/olap都有一些自己的体验,所以对架构这块也有一些兴趣。虽然目前的公司在我眼里是一个老牌保守的那种正统商业公司,但是随着公司内部”Open Source policy”的发布和Amazon saas这样服务在国外的流行,公司内部的论坛上对saas和cloud的讨论也越来越集中。而且已经有超过60个节点的cluster被用来做CAD计算。

对于db2来说,一直以来我在思考的就是两个问题,在大规模的分布式环境里面如何分离读写IO和DPF如何满足OLTP的要求。前一个问题,几年前和IBM讨论的时候,记得他们的技术人员提到用SQL复制/Q复制来做。对于这点,我是有疑虑的。经过几个项目的体会,这两种都基本上是表层面的,而且SQL复制性能相当一般。Q复制,性能还行,但是对于通道的维护那还是比较麻烦的,也不适合。最近,了解到一些新的解决方案可以帮助我找到答案。另一个问题,虽然听过沈刚的presentation,有一些启发但是这个还得结合应用来考虑。

就国内来说,阿里的Jacky.zhang目前主持的Amoeba+db的分布式架构和mysql的廉价集群项目,无疑是值得期待的。希望他的blog能继续给我们带来更detail的技术细节和更新的技术思路。

Jacky.Zhang,俺看好你哟:)

lru_file_repage

March 4th, 2009

AIX的内核参数的调整对数据库和应用的性能至关重要。一般来说,在部署阶段,我们必须对内核参数做适当的调整,上线以后,也需要对内核的某些参数做出微调。最近,收到一个case,发现errpt里面有大量的”NIM thread blocked”事件,老外抱怨前端应用很慢,通过nmon收集信息,发现有大量的page in/out。
经过分析,我发现有一个相当重要的参数,需要我们去关注,那就是lru_file_repage.简单来说,就是如果将这个参数设置为0的时候,AIX会尽可能的keep住计算内存在RAM里面.在AIX6.1里面这个参数默认为0.在启用了STMM的DB2数据库里面,数据库内存的规则也是会尽量不让计算内存交换出去.
对于这个参数IBM的官方解释如下:
lru_file_repage – when the number of permanent memory pages (numperm) falls between minperm and maxperm (or the number of client memory pages falls between minperm and maxclient), this setting indicates whether repaging rates are considered when deciding to evict permanent memory pages or computational memory pages. Setting this to 0 tells AIX to ignore repaging rates and favor evicting permament memory pages, keeping more computational memory in RAM. The AIX 5L default is 1/true (consider the repaging rate), The AIX 6.1 default is 0/false (now a restricted setting).
在我们调整完该参数后,再微调了数据库的另外一些参数,数据库性能得到了大幅度的提升,没有再出现”NIM thread blocked”.AIX5.3/6.1里面,内核参数发生了一些变化,除了以上提到的这个参数外,还有其它的内核参数需要我们关注.

Redhat Linux Server连接EMC存储

March 3rd, 2009

最近顺应潮流,迁移了部分应用在Linux上面。所以配置Linux Server连接到EMC,是必须的..

Load Emulex Driver

1)modprobe lpfcdfc

2)echo “modprobe lpfcdfc” >> /etc/rc.modules

3)chmod +x /etc/rc.modules

4)mkdir -p /opt/emc

5)tar xvf elxlinuxapps-3.0a14-8.0.16.27-1-3.tar

6)./install

7)/usr/sbin/lpfc/lputil using /opt/emc/cd392a2.awc

8)echo “options lpfc lpfc_nodev_tmo=10″ >> /etc/modprobe.conf

9)mkinitrd -f -v initrd-2.6.9-42.0.10.ELsmp.img 2.6.9-42.0.10.ELsmp

10)reboot

Find Disks

执行/usr/sbin/lpfc/lun_scan all

Install/Configure EMCpower

1)tar zxvf EMCpower.LINUX.5.0.0.157.tar.gz EMCpower.LINUX-5.0.0-157.rhel.i386.rpm

2)rpm -ihv EMCpower.LINUX-5.0.0-157.rhel.i386.rpm

3)reboot

4)powermt config

修改/etc/lvm.conf文件

Check Path

1)powermt display dev=all

2)powermt set policy=co dev=all

在AIX下面用kdb来分析dump文件

November 4th, 2008

很久以前写过一个文章在AIX下用kdb来分析一个僵死进程。这两天又碰到一次AIX系统dump。因为发生在周末,周一上班的时候,才发现有dump文件生成。

我们首先看看dump文件的生成的状态:

sysdumpdev -L

Device name:         /dev/lg_dumplv
Major device number: 10
Minor device number: 10
Size:                276834867 bytes
Uncompressed Size:   1964289255 bytes
Date/Time:           Sat Nov  1 12:48:04 2008
Dump status:         0
dump completed successfully.

2.抓取dump文件

snap -Dd /tmp/ibmsupt

3.Uncompress dump文件

/usr/bin/dmpuncompress DUMP.BZ

解压后,就可以开始使用kdb来debug dump文件了:

» Read more: 在AIX下面用kdb来分析dump文件

使用Quest Vas来简化验证服务和身份管理

October 18th, 2008

因为IT Audit,我负责的一个系统需要加入Active Directory里面,进行统一的身份验证和权限管理。所以抽空研究和部署了Quest Vas软件。发现这个东东真是一个相当不错的产品,极大的简化了多个异构平台的帐户统一管理和身份验证,而且”降低了IT审计的成本”.

特别是在一个多样化和一个庞大的组织架构里面,部署VAS,让AD来管理所有帐户,也就是AIX、Solaris 与各种 Linux 平台成为 Active Directory 的完全成员。。这样在Unix/Linux里面我们可以避免大部分的本地帐户管理。这就无需在每个非 Windows 系统上使用本地帐号,充分利用 AD中已有的安全身份验证并支持其它高级 AD功能。

以我的系统为例我在AIX部署VAS后,加入到AD Domain里面。本地维护人员用自己的AD ID登录,不管你登录的是经过统一验证后。如果需要操作数据库或者OS,可以sudo过去。这样他们根本不需要数据库用户密码或者root密码,同时还能保留完整的操作日志。而我的系统里面除了必要的帐户如root外,基本不用建立本地帐户。而用户ID,也完全受限于AD的组策略。

zos1.9

July 13th, 2008

以后慢慢开始偏向zos平台上的DB2,所以最近开始研究zos,发现和开放平台的os的差别太大了。把自己笔记本上的zos升到1.9了,慢慢学吧。NND,弄得东西越来越偏门,以后不好找工作…

在笔记本上模拟ZOS

May 4th, 2008

因为没有pcom,所以我是用TN3270,zos的版本是1.4。

分享一下我的hercules.cnf文件:

» Read more: 在笔记本上模拟ZOS

Fastt连线示意图

October 12th, 2005

放在这里,以备而后所需

fastt.jpg

vmstat在aix5L里面的新选项

September 29th, 2005

在看VMSTAT的MAN的时候,无意中发现了VMSTAT在AIX5L里面的几个新参数的用法

1.vmstat -I 1

kthr memory page faults cpu
——– ———– ———————— ———— ———–
r b p avm fre fi fo pi po fr sr in sy cs us sy id wa
1 1 0 236130 1707 0 5 0 0 0 1 296 4907 406 55 4 40 1
1 0 0 230809 7026 0 3 0 0 0 0 312 7948 469 90 9 1 0
1 0 0 234079 3756 0 3 0 0 0 0 314 7772 455 96 4 0 0
3 0 0 235620 2215 0 4 0 0 0 0 314 9933 462 91 9 0 0
1 0 0 229008 8826 0 3 0 0 0 0 309 7028 455 94 6 0 0
1 0 0 233515 4319 0 3 0 0 0 0 315 7936 455 94 6 1 0
1 0 0 235533 2301 0 3 0 0 0 0 312 8487 454 92 8 0 0

其中:
kthr 下的 p: 每秒钟真正等待物理I/O的线程数
page 下的 fi: 每秒钟调入的文件页数
fo: 每秒钟调出的文件页数

2.vmstat -t 1

kthr memory page faults cpu time
—– ———– ———————— ———— ———– ——–
r b avm fre re pi po fr sr cy in sy cs us sy id wa hr mi se
0 0 228656 9128 0 0 0 0 0 0 312 3079 466 1 1 98 0 08:57:31
0 0 228656 9128 0 0 0 0 0 0 323 3178 482 1 1 97 1 08:57:32
0 0 228749 9035 0 0 0 0 0 0 305 7520 458 5 8 85 2 08:57:33
0 0 228689 9095 0 0 0 0 0 0 315 2903 467 0 1 98 1 08:57:34
0 0 228656 9128 0 0 0 0 0 0 316 2979 469 0 0 98 2 08:57:35
0 0 228656 9128 0 0 0 0 0 0 309 3045 463 2 1 97 0 08:57:36
0 0 228656 9128 0 0 0 0 0 0 313 3108 459 2 0 97 1 08:57:37
1 0 228656 9128 0 0 0 0 0 0 311 2797 448 0 0 99 0 08:57:38

增加了记录系统时间的选项

AIX里面的Quorum和VGDA

September 12th, 2005

$ lsvg rootvg
VOLUME GROUP: rootvg VG IDENTIFIER: 000a995d00004c00000001059e94badf
VG STATE: active PP SIZE: 64 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 1084 (69376 megabytes)
MAX LVs: 256 FREE PPs: 344 (22016 megabytes)
LVs: 10 USED PPs: 740 (47360 megabytes)
OPEN LVs: 9 QUORUM: 1
TOTAL PVs: 2 VG DESCRIPTORS: 3
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 2 AUTO ON: yes
MAX PPs per PV: 1016 MAX PVs: 32
LTG size: 128 kilobyte(s) AUTO SYNC: no
HOT SPARE: no BB POLICY: relocatable

为什么 QUORUM是1呢?

因为在RS/6000系统中, 每个在VG(卷组)中的物理硬盘都至少有一个VGDA(卷组描述区, 既对该硬盘上的物理和逻辑卷进行描述).

VGDA在硬盘的数量有如下规则:

一个卷组只有一块硬盘: 该硬盘有两个VGDA.

一个卷组有两块硬盘: 第一块硬盘有两个VGDA, 第二块硬盘有一个VGDA.

一个卷组有三块或三块以上硬盘: 每块硬盘有一个VGDA.

在AIX系统中, quorum(一个卷组中的可用VGDA的比率)必须高于51%, 该卷组才可用.对于只有两块硬盘的卷组, 若第一块硬盘损坏, 则只有33%的VGDA可用, 那么整个卷租不可用了,这是我们不想看到的情况。照此推理:若第二块硬盘损坏, 则有66%的VGDA可用. 对于有三块或三块以上硬盘的卷组, 若损坏一块硬盘, 至少有66%的VGDA可用.如果因为VGDA不可用而造成整个VG VARYOFF了,我们也可以对该卷组aryonvg -f的命令强制varyon。

所以我们在做rootvg的时候,一般disable quorum。这样我们lsvg的时候,看到的就是quorum=1了。