Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1158165
  • 博文数量: 56
  • 博客积分: 1682
  • 博客等级: 上尉
  • 技术积分: 719
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-21 17:29
文章分类
文章存档

2013年(1)

2012年(11)

2011年(44)

分类: 系统运维

2011-09-24 08:39:01

一、        配置MC的基本过程
本表仅供参考:
建立 /.rhosts, 使root对两机的所有资源都有所需的权限
建立Cluster的配置文本:
        /etc/cmcluster/config.d
建立pkg1:
        /etc/cmcluster/pkg1/pkg1.conf
        /etc/cmcluster/pkg1/pkg1.cntl
        /etc/cmcluster/pkg1/service1
同步两机的MC配置文件:
        rcp -r /etc/cmcluster MachineB:/etc
检查配置是否正确:
        cmcheckconf -v -C /etc/cmcluster/cmclconf -P /etc/mcluster/pkg0/pkg0.conf \
        -P /etc/cmcluster/pkg1/pkg1.conf
编译、分发配置:
        cmapplyconf -v -C /etc/cmcluster/cmclconf -P /etc/cmcluster/pkg0/pkg0.conf \
        -P /etc/cmcluster/pkg1/pkg1.conf
修改LVM启动文件 /etc/lvmrc
        AUTO_VG_ACTIVATE=0
        使VG00,VG01,VG02不随系统的启动便置为可用
修改 /etc/hosts增加对pkg0和pkg1浮动地址的定义[Optional]:
        pkg0 132.97.4.12
        pkg1 132.97.4.14
修改MC/ServiceGuard启动文件 /etc/rc.config.d/cmcluster
        AUTOSTART_CMCLD=1
检查/etc/rc.config.d/nfsconf,参数值应设置如下:[没必要]
        NFS_CLIENT=0
        NFS_SERVER=0
同步两机的相关的配置文件:
        /.rhosts
        /etc/lvmrc
        /etc/rc.config.d/nfsconf
        /etc/rc.config.d/cmcluster
        /etc/passwd
        /etc/group
        /etc/hosts
        /etc/cmcluster/*
运行cluster:
        cmruncl -v
        cmviewcl –v
检查LOG:
        /etc/cmcluster/pkg1/control.sh.log
        /var/adm/syslog/syslog.log



二、        关于本文
编写本文的目的
公司的技术人员,根据该模板均能成功安装配置统一风格、符合FR规范的MC高可用系统,通过本文档,系统管理员可对双机的基本概念有一定的了解;可完成双机的安装配置、日常管理、监控等任务。
规则定义及说明
主机命名规则:
本文的主机名分别是:node1和node2;并用蓝色表示该名称可随不同环境改变。
其他说明:
本文所有蓝色字符均为根据不同环境修改的;而褐色部分则为可选内容,即这些操作可根据用户实际需要选择;红色表示重要部分。
三、        安装软件
        安装MC/ServiceGuard软件。
        安装Database Toolkits软件
        (安装后位于/opt/cmcluster/toolkit/目录内)。
        使用swinstall命令进行上述安装。
四、        准备系统
建立主机信任关系
        编辑安全控制文件/.rhosts:包含其他节点的根用户授权,如
        node1        root
        node2        root
启动时间同步进程
        建议在各个节点上面激活NTP(xntpd进程),编辑/etc/ntp.conf文件。
        (注:该项可以跳过)
五、        网卡准备
    硬件要求:每台服务器三块网卡(lan0、lan1、lan2)或两块网卡(lan0、lan1)加RS232串口(只有在双节点群集中使用),其中lan0作为主机的主网卡 ,作为数据通讯用,而lan1作为lan0的备份网卡,lan2(RS232)作为心跳信号通讯;[光两块网卡也可以,数据和心跳走一条线]
    网卡配置:网卡的配置在/etc/rc.config.d/netconf文件中定义。
        注意,在此文件中应将主网卡进行配置,而备份网卡不能配置IP地址。
六、        准备磁盘
        (关键是共享磁盘--如:磁盘阵列)
创建逻辑卷(LV)结构
创建root盘的镜像
        如果不需要的话,可以不做(只能使用命令完成,不能使用SAM)
        建立bootable LVM,以备作为root盘的镜像:
        # pvcreate -B /dev/rdsk/cxtydz 
        加入root VG:
        # vgextend /dev/vg00 /dev/dsk/cxtydz 
        将新盘作成boot盘:
        # mkboot /dev/rdsk/cxtydz 
        将AUTO File复制到新盘的LIF区内:
        # mkboot -a “hpux (disk;0)/stand/vmunix” \
        /dev/rdsk/cxtydz 
        对root和primary swap LV在新盘上做镜像(注意,应将VG00中的所有设备均做镜像,如/usr、/swap等):
        # lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/cxtydz 
        更新BDRA中的boot信息:
        # /usr/sbin/lvlnboot -v -r /dev/vg00/lvol1 
        # /usr/sbin/lvlnboot -s /dev/vg00/lvol2 
        检查BDRA是否正确:
        # /usr/sbin/lvlnboot -R /dev/vg00 
        确认镜像的正确性:
        # lvlnboot -v 
       
创建卷组(VG)和逻辑卷(LV)
注:(可以使用SAM或命令方式)
        选择VG所使用的磁盘(得到每个节点上可以看见的磁盘,识别出共享磁盘一般表现为磁盘阵列设备文件),在每个节点上面均执行下面的命令,列出每个节点可见的磁盘设备:
        # lssf /dev/dsk/*d0 
        在节点1上面创建物理卷(PV)
        # pvcreate /dev/rdsk/c1t2d0 
        # pvcreate /dev/rdsk/c0t2d0 
        在节点1上面创建卷组(VG)
        创建卷组目录
        # mkdir /dev/卷组名 
        在卷组目录内创建卷组控制文件
        # mknod /dev/卷组名/group c 64 0xhh0000 
        (其中,主设备号总是64,次设备号以16进制数0xhh0000表示,hh必须在系统内唯一,使用系统中下一个可用的数值。使用下面的命令可以得到系统中已经存在的卷组:
        # ls -l /dev/*/group )
        创建卷组并将物理卷加入其中
        # vgcreate /dev/卷组名 /dev/dsk/c1t2d0 
        # vgextend /dev/卷组名 /dev/dsk/c0t2d0 
        重复上述步骤创建其他卷组
        在节点1上面创建逻辑卷(LV)
        # lvcreate -L 12 /dev/卷组名 
        在节点1上面创建文件系统(如果需要)
        在新建的逻辑卷上面创建文件系统
        # newfs -F vxfs /dev/卷组名/rlvol1 
        创建mount目录点
        # mkdir /mnt1 
        Mount文件系统以检查正确性
        # mount /dev/卷组名/lvol1 /mnt1 
修改卷组属性
   在node1上deactivate 卷组:
        # umount /mnt1 
        # vgchange -a n /dev/卷组名 
       
在另一台主机上设置VG
(只能使用命令方式完成)
1)        在节点1上面,生成卷组映像文件
        #vgchange –c y /dev/卷组名       //改为cluster模式
        # vgexport -v –s -p -m /tmp/卷组名.map /dev/卷组名 
2)        在节点1上面,将卷组映像文件复制到节点2
        # rcp /tmp/卷组名.map node2:/tmp/卷组名.map 
3)        在节点2上面,创建卷组目录
        # mkdir /dev/卷组名 
4)        在节点2上面,创建卷组控制文件
        # mknod /dev/卷组名/group c 64 0xhh0000 
5)        在节点2上面,使用从节点1复制的卷组映像文件中的信息建立卷组结构
        # vgimport -v –s -m /tmp/卷组名.map /dev/卷组名 \ 
          /dev/dsk/c1t2d0 /dev/dsk/c0t2d0 
        (注意,在节点2上面的设备文件名字可能与节点1上面不同,必须确认)
6)        在节点2上面激活卷组
        # vgchange -a y /dev/卷组名 
7)        创建mount目录点
        # mkdir /mnt1 
8)        Mount文件系统以检查正确性
        # mount /dev/卷组名/lvol1 /mnt1 
9)        Umount文件系统
        # umount /mnt1 
10)        Deactivate VG
        # vgchange -a n /dev/卷组名 
       
创建其他卷组结构
重复上述步骤,创建其他卷组结构
所有卷组创建完成后
编辑/etc/lvmrc文件,保证在系统启动时不自动激活与CLUSTER有关的卷组(将AUTO_VG_ACTIVATE置为0,并确认root卷组包含在custom_vg_activation函数内)。这些卷组将在应用包的control.sh文本中激活。
       
最后步骤
配置MC/ServiceGuard双机前的最后步骤
        在配置节点(节点1)上激活所有卷组
        # vgchange -a y /dev/卷组名 
       
七、        配置CLUSTER
        (可以使用SAM或命令方式完成)
生成CLUSTER配置文件模板[可以用现成的改]
        # cmquerycl -v -C /etc/cmcluster/cmclconf.ascii -n node1 \ 
           -n node2 
       
编辑CLUSTER配置文件模板
       
        CLUSTER_NAME  cluster1                                           #CLUSTER的名字
       
        FIRST_CLUSTER_LOCK_VG  /dev/vg01                        #LOCK卷组,集群解体,各节点谁先抢到Lock VG就有谁重组集群。
       
        NODE_NAME  node1                                                                #节点名字
          NETWORK_INTERFACE  lan1
            HEARTBEAT_IP  15.13.171.32                                #lan1是HEARTBEAT网络
          NETWORK_INTERFACE  lan2                                        #lan2是备份网络
          NETWORK_INTERFACE  lan0                                        #[此网卡不配也可]
            STATIONARY_IP  192.6.143.10                            #lan0的静态IP地址
          FIRST_CLUSTER_LOCK_PV /dev/dsk/c1t2d0            #LOCK盘的物理卷名字
        # SERIAL_DEVICE_FILE  /dev/tty0p0                        #RS232串行HEARTBEAT线路
       
        NODE_NAME  node2
          NETWORK_INTERFACE  lan1
            HEARTBEAT_IP  15.13.171.30                //心跳
          NETWORK_INTERFACE  lan2                        //备份
          NETWORK_INTERFACE  lan0                        //数据
            STATIONARY_IP  192.6.143.20
          FIRST_CLUSTER_LOCK_PV /dev/dsk/c1t2d0
        # SERIAL_DEVICE_FILE  /dev/tty0p0
       
        HEARTBEAT_INTERVAL  1000000
        NODE_TIMEOUT  2000000
       
        AUTO_START_TIMEOUT  600000000
        NETWORK_POLLING_INTERVAL  2000000
       
        VOLUME_GROUP  /dev/vg01
        VOLUME_GROUP  /dev/vg02                                        #注:所有CLUSTER相关的卷组都要在此写出
       
检查CLUSTER配置的正确性
(强烈建议:任何时候对双机配置文件做过改动,重新启动双机之前必须进行配置的检查)

        # cmcheckconf -v -C /etc/cmcluster/cmclconf.ascii 
       
设置自动启动参数
        编辑文件/etc/rc.config.d/cmcluster,将参数AUTOSTART_CMCLD设为1,则在系统自举时自动启动CLUSTER。
       
八、        配置Package和Services
(可以使用SAM或命令方式完成)
创建子目录
在/etc/cmcluster中为每个Package创建子目录
        # mkdir /etc/cmcluster/pkg1 
        # mkdir /etc/cmcluster/pkg2 
       
建立配置文件模板
为每个Package建立一个配置文件模板
        # cmmakepkg -p /etc/cmcluster/pkg1/pkg1conf.ascii 
        # cmmakepkg -p /etc/cmcluster/pkg2/pkg2conf.ascii 
       
编辑配置文件模板
编辑Package配置文件,根据实际需要修改相关项:
        PACKAGE_NAME  pkg1                                                       
       
        NODE_NAME  node1                                                                主节点
        NODE_NAME  node2                                                                备份节点
       
        RUN_SCRIPT  /etc/cmcluster/pkg1/control.sh                Package启动脚本
        RUN_SCRIPT_TIMEOUT  NO_TIMEOUT
        HALT_SCRIPT  /etc/cmcluster/pkg1/control.sh                Package停止脚本
        HALT_SCRIPT_TIMEOUT  NO_TIMEOUT
       
        SERVICE_NAME  service1                                对每个service重复此3行定义
        SERVICE_CMD[]
        SERVICE_FAIL_FAST_ENABLED  NO                Service是标识应用avalible与否的。       
        SERVICE_HALT_TIMEOUT  300
       
        SUBNET  15.16.168.0                                        Package对应的子网(可以多个)。虚拟IP的子网。各个不同的Package间子网可以相同。此子网和真实的子网必须一致。虚拟IP在control.sh中指定。
       
        PKG_SWITCHING_ENABLED  YES
        NET_SWITCHING_ENABLED  YES
        NODE_FAIL_FAST_ENABLED  NO
       
建立控制脚本的模板
建立Package控制脚本的模板
        # cmmakepkg -s /etc/cmcluster/pkg1/control.sh 
       
控制脚本模式设置
将Package控制脚本设为可执行模式
        # chmod +x /etc/cmcluster/pkg1/control.sh 
       
编辑控制脚本
        编辑修改Package控制脚本时注意进行以下工作:
        在PATH中增加启动service所需要的路径
        增加需要激活的卷组名字
        增加需要mount的文件系统和逻辑卷的名字
        定义IP地址和子网
        增加service名字
        增加service命令
        注意函数start_services和halt_services中启动和停止service使用的脚本参数,保证service启动和停止命令的正确性
检查并分发配置文件
        将Package控制脚本复制到其他节点
        # rcp /etc/cmcluster/pkg1/control.sh \ 
              node2:/etc/cmcluster/pkg1/control.sh 
        检查CLUSTER配置(强烈建议:任何时候对双机配置文件做过改动,重新启动双机之前必须进行配置的检查)
        # cmcheckconf -C /etc/cmcluster/cmclconf.ascii \ 
              -P /etc/cmcluster/pkg1/pkg1conf.ascii \ 
              -P /etc/cmcluster/pkg2/pkg2conf.ascii 
        停止Cluster
        生成并分发二进制CLUSTER配置文件
        # cmapplyconf -v -C /etc/cmcluster/cmclconf.ascii \ 
              -P /etc/cmcluster/pkg1/pkg1conf.ascii \ 
              -P /etc/cmcluster/pkg2/pkg2conf.ascii 
        启动Cluster
九、        管理Cluster和Package
管理Cluster和节点
启动Cluster
        # cmruncl -v 
        # cmruncl -v -n node1 -n node2 
在已运行的Cluster中增加一个节点运行
        # cmrunnode -v node2 
在已运行的Cluster中停止一个节点运行
        # cmhaltnode -f -v node2 
停止整个Cluster
        # cmhaltcl -f -v 
对Cluster进行重新配置
        停止整个Cluster
        如果要改变CLUSTER LOCK VG,则
        # vgchange -c n vg01 
        # vgchange -a y vg01 
        重新进行配置工作
        cmapplyconf
        cmruncl
管理Package和Service
启动Package
        # cmrunpkg -n node1 pkg1 
        # cmmodpkg -e node1 pkg1  //把切换属性置为yes.故障发生后可以自动切换。很重要!!
停止Package,不切换
        # cmhaltpkg pkg1 
移动Package
        # cmhaltpkg pkg1 -n node1 
        # cmrunpkg -n node2 pkg1 
        # cmmodpkg -e pkg1 //让package可以切换
对Package进行重新配置
        停止整个Cluster
        修改配置文件
        修改control.sh文件(注意保证所有节点一致)
        cmapplyconf
        cmruncl
查看运行情况
        # cmviewcl -v 
十、        测试Cluster配置
测试Package Manager
1)        得到service的pid(使用ps -ef命令)
2)        杀死service进程(使用kill命令)
3)        使用cmviewcl -v命令查看状态
4)        将Package移动回原节点
5)        对数据库系统的测试可以根据具体情况进行
测试Cluster Manager
1)        关闭一个节点的电源
2)        使用cmviewcl -v命令查看状态
3)        打开节点的电源
4)        使用cmviewcl -v命令查看状态
5)        将Package移动回原节点
6)        对数据库系统的测试可以根据具体情况进行
测试Network Manager
1)        使用lanscan命令得到主/备网络信息
2)        使用cmviewcl -v命令查看状态
3)        从主网卡上拔掉网线
4)        使用cmviewcl -v命令查看状态(应完成本地网络切换)
5)        重新连接网线
6)        使用cmviewcl -v命令查看状态

激活VG的方式
1)        独占方式
#vgchange –a e /dev/vgxx                                //以独占方式激活
2)        普通方式
#vgchange –c n /dev/vgxx
#vgchange –a y /dev/vgxx
十一、        故障诊断方法
1、        检查Cluster和Package状态
        使用cmviewcl -v命令
2、        检查RS232状态
        使用cmviewcl -v命令
3、检查Package IP地址
        使用netstat -in命令
4、查看LOG文件
        /var/adm/syslog/syslog.log
        /etc/cmcluster/pkg1/control.sh.log
5、查看Cluster和Package配置文件
6、查看Package控制脚本文件(control.sh)
7、使用cmquerycl和cmcheckconf命令检查配置的合法性
8、检查LAN配置情况
        # netstat -in
        # lanscan
        # arp -a
        # landiag
        # linkloop
        # /usr/contrib/bin/cmgetconfig -f
        # cmviewcl -v
附:一些有用的系统命令
查看硬件配置情况
        # /usr/sbin/dmesg
        # /usr/sbin/ioscan
        # /usr/sbin/lssf /dev/rdsk/c0t5d0
        # diskinfo /dev/rdsk/c0t5d0
        # swapinfo 
        # lanscan 
配置LAN
        # /sbin/set_parms hostname
        # /sbin/set_parms ip_address
        编辑etc/hosts 文件
        reboot
        或
        # /sbin/set_parms initial(根据提示操作)
创建新文件系统
        # newfs -F hfs
        # mkdir /mountpoint 
        # mount /mountpoint 
        Edit /etc/fstab file
扩充HFS文件系统
        # umount /mountpoint 
        # lvextend -L 400
        # extendfs
        # mount /mountpoint 
移动文件系统
        # newfs -F hfs /dev/vg01/rlvol1 
        # mkdir /home.new 
        # mount /dev/vg01/lvol1 /home.new 
        # cd /home 
        # find . | cpio -pdumv /home.new 
        # rm -rf /home/* 
        # umount /home.new 
        # mount /dev/vg01/lvol1 /home 
        # rmdir /home.new 
文件系统日常维护
        /var/adm/wtmp
        /var/adm/btmp
        /var/adm/sulog
        /var/adm/cron/log
        /var/spool/mqueue/syslog
        /var/spool/mqueue/senmail.st
        /var/spool/uucp/.Admin/*
        /usr/spool/uucp/.Log/*
        /var/adm/lp/log
        /var/adm/messages
        /var/adm/sw/swinstalllog
        /var/adm/sw/swremovelog
        /var/adm/sw/sw*.log
删除core文件
        # find / -name core -exec rm {} 
将磁盘从一个卷组移到另一个卷组
        # pvmove /dev/dsk/c3t2d0 
        # vgreduce /dev/vg01 /dev/dsk/c3t2d0 
        # vgextend /dev/vg02 /dev/dsk/c3t2d0 
PV-Link(物理卷链路)配置
只在主链路上面执行pvcreate。
在创建卷组时将所有链路包含在vgcreate命令的参数内。
在已有的卷组中增加PV-Link:vgextend vgXX /dev/dsk/
在已有的卷组中删除PV-Link:vgreduce vgXX /dev/dsk/
手工启动HP-UX
进入ISL界面:
        Boot from primary boot path > n 
        Boot from alternate boot path > n 
        Enter boot path > 52.6.0 
        . . .
        Interact with ISL > y 
        ISL> hpux (;0)/stand/vmunix 
进入单用户状态
        ISL> hpux -is (;0)/stand/vmunix 
安装软件时检查swagentd是否启动
(单用户时不会自动启动)
        # /sbin/init.d/swagentd start 
软件打包到磁带(swinstall格式)
        # swcopy到/var/spool/sw(或其他目录)
        # swpackage -s /var/spool/sw -d /dev/rmt/0m \ 
           -x target_type=tape 
杀死指定名字的进程
        # ps -e | awk “/name1|name2/ {print \“ kill -9 \“ \$1} “ |sh 
检测INFORMIX SERVER状态
在SHELL中检测INFORMIX SERVER状态是否为ON-LINE
        if ( ! ( onstat -p | grep -E “On_Line“ > /dev/null 2>&1 ) ) ; then
        . . .
        fi

if ($ != jQuery) { $ = jQuery.noConflict(); } var isLogined = false; var cb_blogId = 33492; var cb_entryId = 1688830; var cb_blogApp = "rootq"; var cb_blogUserGuid = "c38e3d0b-63cf-dd11-9e4d-001cf0cd104b"; var cb_entryCreatedDate = '2010/3/18 11:59:00';
阅读(2411) | 评论(0) | 转发(0) |
0

上一篇:JVM内存分析

下一篇:HPUX base command

给主人留下些什么吧!~~