分类: 服务器与存储
2014-10-10 16:03:19
2011-04-27 23:25:12| 分类: VCS学习 | 标签: |举报 |字号大中小
看到前人的文章,感觉非常有收获,比起用过的一些软件,感觉思路为之开阔,整体感大大增强,不再局限于个别软件的特性,而是从整体上去比较,衡量一个cluster的优缺点,比我过去只做一两个cluster软件的感受,自是大不一样.省了自己不少功夫. 受前面诸位的影响,自己也想把自己的一部分心得写出,但是自己在linux没做过cluster,关键是没时间,光是上下班就花费4个小时,而且单位剥削严重,只有把自己在sun下做的一些cluster软件使用过程中的心得贴出. 废话一堆,现在开始正题,由于文章来自工程文档,竟然没有什么介绍,只好自己找了些介绍,体系特点,凑在一起,格式就不好了,要干活了,赶紧贴 VCS的方案 均采用了高性能的VERITAS存储软件作为存储管理和高性能数据访问软件。鉴于提高数据库性能的考虑,我们配置了VERITAS Quick I/O 的Oracle数据库加速产品,使得数据库的处理能力大大提高。作为系统安全的保障,我们配置了VERITAS群集管理(VERITAS Cluster Server,VCS)作为系统的高可用软件。VCS能够对应用、系统、数据库系统、网络、备份等均提供高效快速的故障保护。我们在各节点均采用了VERITAS Volume Manager 和VERITAS File System作为虚拟磁盘管理和高性能文件系统。这两种产品各具优点,两者有机结合后,利用双方特有的对磁盘和数据的管理能力,能给企业的系统提供尽可能 高的性能、可用性及可管理性。 ----VCS是一款高可用性多机应用软件,可以通过应用在各服务器之间的智能化灵活切换,使多台服务器协同工作,支持Unix和Windows NT环境。作为多机的集群软件,VCS对应用的切换具有速度快、方式灵活的特点。在SAN环境下,VCS可以支持最多32台服务器协同工作,在各种群集管 理软件中优势突出,是目前扩展性最好高可用软件。VCS还提供Windows NT控制工具和界面。管理员可以做到无人现场值守即可监控群集的状态。 ---- VERITAS Volume Manager为企业的应用提供了功能强大的磁盘和存储设备在线管理。VERITAS Volume Manager提供虚拟设备机制(即逻辑卷),向用户应用和文件系统提供完全透明的设备在线管理,应用程序和文件系统无须直接管理物理设备,数据的安全 性、完整性、I/O性能的调整、设备在线扩展由Volume Manager管理机制实现。另外,服务器进行在线管理,不必因备份和维护而进行脱机。VERITAS Volume Manager提供了磁盘的使用分析、RAID配置和系统在线的情况下对磁盘进行动态配置。这些工具提供了完整的数据保护。可以说,使用了Volume Manager,可以在运行环境下,动态地对磁盘和文件系统的进行空间调整和性能方面的调整,同时可以对关键数据进行RAID方式的保护,将文件系统跨接 到多个物理设备等。逻辑卷的快照方式可以实现大数据量的一致性备份。 ----数据可管理性的一个重要方面是高效的文件系统,这是应用高效率的基础之一。存储管理系统应能够提供高效的文件系统,为应用程序的数据访问提供高性能,这方 面比较典型的如VERITAS公司的文件系统VxFS(VERITAS File System)。VxFS是一个日志式文件系统。它建立具有文件索引的日志式文件系统,文件索引区记录了文件的操作状态,因此在系统故障时进行文件恢复 (FSCK)的过程相当迅速(普通Unix文件系统则效率很低)。在一个高速的多机切换热备份系统中,这样一个高效的文件系统对于高速切换是必不可少的。 高效的文件系统还体现在可以对建立在VERITAS文件系统上的数据库数据的访问提供既有类似文件的可管理性,又有建立在裸设备上的访问的高速性。VERITAS文件系统具有快速拍照、在线调整、在线管理等诸多特点,兼容所有Unix文件系统指令,以高效而著称。 VCS是VERITAS公司的高可用多机热切换软件。VCS目前实现了32个节点的cluster系统,即将实现128个节点的cluster能 力,在各种cluster软件中力拔头筹。VCS实现真正意义的应用级切换。整个系统内的所有资源,按照应用类型分成组,当一个节点运行多个应用 时,VCS按照多个应用组进行检测,某一应用故障时,仅仅将此应用组进行切换,无需干预正常的应用组。 VCS特 点 : ? 32节 点 , 在 集 群 热 备 份 软 件 中 力 拔 头 筹 , 适 用 于 多 服 务 器 系 统 和 系 统 的 扩 展 ? 切 换 速 度 极 快 , <10秒 ? GUI图 形 界 面 , 美 观 易 用 ? 配 置 简 便 , 完 全 参 数 化 , 一 般 情 况 无 需 编 程 , 易 于 维 护 ? 完 全 实 现 多 应 用 多 级 切 换 (应 用 级 切 换 ),适 用 多 种 应 用 并 存 的 系 统。 某 一 应 用 的 切 换 可 以 不 对 其 它 应 用 产 生 影 响 ? 集 中 管 理 , 配 置 结 束 更 新 所 有 cluster节 点 ? 远 程PC 监 控 界 面 和 管 理 界 面 , 便 于 无 人 值 守 的 应 用 需 求 ? 实 现 Oracle、 Informix数 据 库的 监 控 和 切 换 ?与 Veritas file system 结 合 , 提 供 高 速 的 切 换 ? 与 Veritas Netbackup结 合 , 提 供 备 份 系 统 的 热 备 份 VCS 的基本概念: 资源和组 资源resources 检测的应用点,启动的基本要素。资源之间相互关联,代表不同层次,每层之间存在依赖关系,如sysbase依赖disk 服务组service group 代表某应用所需的全部环境,由资源组成 Agents 检测和启动管理应用的标准代理程序.VCS提供标准VCS管理标准应用 Attributes 每一资源的属性,如检测间隔 Events 依赖关系 VCS首先启动下层,上层资源依赖下层。VCS offline时,方向相反。 VCS Resources Disk DiskGroup FileOnOff IP Mount NFS NIC Process ServiceGroupHB Share Volume AdminIP* MultiNIC* Resource的三要素: Online进行启动设定 Offline 停止资源 Monitor监控 VCS可以通过对特定的resource实行以下三种方式的处理,例如对volume执行online,mount上该卷,还可以执行特定的参 数,例如以vxfs方式mount,并且VCS对该resource进行监测,多个resource之间可以关联,即每个resource是建立在另一个resource的基础上. 对于数据库应用,可以利用VCS的数据库agent,对特定的数据库进行监测.VCS的另一特点是用户可以对自己的应用定制resource,通 过perl,c,sh工具来实现resource的三要素(online,offline,monitor),进而实现客户应用服务的高可靠性. 参见resource.jpg 安装过程 1 硬件准备 在安装Veritas Cluster Server软件前,需要将硬件条件准备好。两台主机的内置网卡口连到公网(public network), 每台服务器需配备两条心跳线,可以使用HUB连接或直接互连,形成私网(private network),参见下图。连接好后需要重新启动主机,并检查网口状态。 2 软件安装 2.1 安装前准备 1)在要安装VCS的两台主机上确保/.rhost 文件有相应的入口,安装后再关闭。 2)在安装前要检查两台主机上是否已经安装过VCS,若已安装,需先停掉相应进程,然后将其软件包卸掉。 2.2 安装VCS软件包。 1)将Veritas Cluster Server CD放入cdrom。 2)#cd /cdrom/cdrom0/pkgs 3)#./InstallVCS 根据提示进行安装(带下划线的斜体字为输入值)。 Please enter the unique cluster Name: test Please enter the unique cluster ID(a number from 0-255): 6 Enter the systems on which you want to install .(systerm names separated by spaces): sysa sysb Analyzing the system for install. Sysa ………..ok SunOS sysa 5.7 Generic_106541_06 Sun4u sparc SUNW,ultra_5_10 Sysb………..ok SunOS sysb 5.7 Generic_106541_06 Sun4u sparc SUNW,ultra_5_10 Installing on sysa copying VRTSperl binaries Installing VRTSperl Done Copying VRTSllt binaries Installing VRTSllt Done Copying VRTSgab binaries Installing VRTSgab Done Copying VRTSvcs binaries Installing VRTSvcs Done Installing on sysb …. Discovering NICs for setting up private network links on sysa This may take some time Following is the list of discovered NICs Sr.No. NIC Device 1. /dev/hme:0 2. /dev/qfe:0 3. /dev/qfe:1 4. /dev/qfe:2 5. /dev/qfe:3 From the list above ,please enter the serial number (the number appearing in the Sr.No. column)of the NIC for First PRIVATE network link : 2 From the list above ,please enter the serial number (the number appearing in the Sr.No. column)of the NIC for Second PRIVATE network link : 3 Do you have the same network cards setup on all systerms(Y/N): n Discovering NICs for setting up private network links on sysb …. Copied llt & gab configuration files. …. Installation successful on all systems. 2.3 安装VCS图形管理软件包。 1)# cd /cdrom/cdrom0/pkgs 2)# pkgadd –d ./ 选择VRTScscm包对应的序号,进行安装。 2.4 Veritas Cluster Server配置 Cluster Server 的配置包括三部分,底层链路监测LLT(高效心跳传输协议), GAB(全局广播协议),HAD(应用系统检测控制部分),如下图所示: 以下配置步骤1、2、3在初次安装Cluster时必须进行: 1) 检查心跳线连接情况 # dlpiping –s /dev/qfe:0 在sysa 四口网卡的第0口启动服务进程 # dlpiping –c /dev/qfe:0 在sysb四口网卡的第0口启动客户进程(mac-address指sysa四口网卡的mac-address),如果心跳线连接正确返回alive 同法可以检测另一条心跳线的连接情况。 2) llt 配置 VCS版软件安装完后,/etc/llttab文件自动设置。可用下面命令查看sysa上的/etc/llttab和/etc/llthosts: # vi /etc/llttab set-node sysa # Cluster中的节点号,可以是0,1,2… set-cluster 6 link link1 /dev/qfe:0 # 链接心跳网口1 link link2 /dev/qfe:1 # 链接心跳网口2 start # vi /etc/llthosts 0 sysa 1 sysb VCS版软件安装完后,llt自动启动。可用下面命令查看: # lltconfig llt is running. 如果llt没有启动,可执行下面命令: # lltconfig –c 使llttab 文件生效,并进行初始化。 3)gab 配置 VCS版软件安装完后,gab自动启动。可用下面命令查看: # gabconfig –a GAB port Memberships ========================================================= port a gen 4b9b0003 membership ;01 port h gen c4600004 membership ;01 如果gab没有启动,可执行下面命令: # gabconfig –c –n2 # 2表示Cluster中有2个节点,由实际情况而定 4)had 配置 # hastart #启动HA进程 # vi /etc/VRTSvcs/conf/config/main.cf main.cf文件是Cluster的配置文件,包括Cluster定义信息、要监控的应用定义信息、应用依赖的资源定义信息、资源之间依赖关 系。文件的配置也可通过图形界面进行,且方便、直观。附件1给出了一个简单应用的结构图,附件2给出了其对应的main.cf文件。 使用图形界面需要运行命令: #hagui 参见图片VCSmain.jpg 2.5 VCS Agents实现 Agents提供应用的故障检测和管理,监控资源,并向VCS汇报状态。VCS Agents分为: 1)Bundled Agents 如CLARiiON、Disk、DiskGrouP、FileOnOff、IP、Mount、NFS、NIC、Process、ServiceGroupHB、Share、Volume等。请参见VCS Bundled Agents Reference Guide。 2)Enterprise Agents 如FireWall-1、 Informix、Oracle、SIMS、Sybase、PC NetLink等。 3) Storage Agents 如NetApp。 4) Custom Agents 用户根据具体的需求可以自行开发自定义Agents,可以使用C++或Prel或Script编写。 在/opt/VRTSvcs/bin 目录下,每个Agent有一个目录,在其目录下有online、offline、monitor等基本要素。特定的应用需要单独安装特定的Agent软件包。 3 HA系统的维护 3.1 基本操作 1) 查看心跳情况 # gabconfig –a GAB Port Memberships ========================================================= Port a gen ea9a0011 membership ;01 Port h gen 9c22000b membership ;01 如果没有信息则表示gab未启动,应当执行 # gabconfig -c –n2 2)启动HA进程 # hastart 3) 查看Cluster的状态 # hastatus [-summary] 4)启动Cluster的图形界面 # hagui & 5)停止HA进程 # hastop –all [-force] 停止Cluster中所有机器的HA 进程 # hastop –local [-force] 停止该台机器的HA进程 6)强行调用本机的配置文件来启动VCS # hasys –force 有时候用户在没有保存VCS的配置前,用hastop –all –force 强行停止了HA进程会造成VCS配置文件在Cluster中不同机器上的不一致,使用hastart命令时会返回:STALE_ADMIN_WAIT,在这种情况下必须使用该命令。 3.2 HA系统监控日志 VCS给用户提供了功能强大的监控日志,默认存放目录为:/var/VRTSvcs/log。在此目录下有每个VCS监控资源的online、offline日志信息,名为engine_A.log的文件记录了所有VCS监控资源的online、offline信息,此log文件在VCS出现问题时可以帮助用户查出问题所在。 附件 main.cf文件 include "types.cf" cluster test ( UserNames = { admin = "cDRpdxPmHpzS.", vcs = cDjXnNdGoBN1c } CounterInterval = 5 Factor = { runque = 5, memory = 1, disk = 10, cpu = 25, network = 5 } MaxFactor = { runque = 100, memory = 10, disk = 100, cpu = 100, network = 100 } ) system sysa system sysb snmp vcs ( TrapList = { 1 = "A new system has joined the VCS Cluster", 2 = "An existing system has changed its state", 3 = "A service group has changed its state", 4 = "One or more heartbeat links has gone down", 5 = "An HA service has done a manual restart", 6 = "An HA service has been manually idled", 7 = "An HA service has been successfully started" } ) group testgroup ( SystemList = { sysa = 1, sysb } AutoStartList = { sysa, sysb } ) DiskGroup testdg ( DiskGroup = testdg ) Volume vol_01 ( Volume = vol_01 DiskGroup = testdg ) Volume ol_02 ( Volume = vol_02 DiskGroup = testdg ) Mount data_01 ( MountPoint = "/data01" BlockDevice = "/dev/vx/dsk/testdg/data_01" FSType = vxfs MountOpt = rw ) Mount data_02 ( MountPoint = "/data02" BlockDevice = "/dev/vx/dsk/testdg/data_02" FSType = vxfs MountOpt = rw ) vol_01 requires testdg vol_02 requires testdg data_01 requires vol_01 data_02 requires vol_02 CLOCK requires data_01 CLOCK requires data_02 // resource dependency tree // group testgp // { // Mount data_01 // { // Volume vol_01 // { // DiskGroup testdg // } // } // Mount data_02 // { // Volume vol_02 // { // DiskGroup testdg // } // } // } |
|
||
http://jingh3209.blog.163.com/blog/static/1569667200962284146554/ |