#!/bin/sh
#
Maskin1="vxcluster1"
Maskin2="vxcluster2"
cluster="vxcluster"
cluster_IP="10.102.64.155"
cluster_NM="255.255.248.0"
Volume="nfsvol01"
Device="hme0"
DG="nfsDG"
Mountpoint="/nfs01"
hagrp="hanfs"
make_it () {
haconf -makerw
hagrp -add hanfs
hagrp -modify hanfs SystemList $Maskin1 1 $Maskin2 2
hagrp -autoenable hanfs -sys $Maskin1
### hares -add nfsNIC NIC $hagrp
### hares -modify nfsNIC Enabled 1
### hares -modify nfsNIC Device hme0
#-----------------------------------------------------------
### hares -add nfsIP IP $hagrp
### hares -modify nfsIP Enabled 1
### hares -modify nfsIP Device $Device
### hares -modify nfsIP Address $cluster_IP"
### hares -modify nfsIP NetMask $cluster_NM"
### hares -modify nfsIP IfconfigTwice 1
#---------------------------------------------------------
hares -add nfsIPMultiNIC IPMultiNIC $hagrp
hares -modify nfsIPMultiNIC Enabled 1
hares -modify nfsIPMultiNIC Address $cluster_IP
hares -modify nfsIPMultiNIC NetMask $cluster_NM
hares -modify nfsIPMultiNIC IfconfigTwice 1
hares -modify nfsIPMultiNIC MultiNICResName nfsMultiNICA
#---------------------------------------------------------
hares -add nfsMultiNICA MultiNICA $hagrp
hares -local nfsMultiNICA Device
hares -modify nfsMultiNICA NetMask $cluster_NM
hares -modify nfsMultiNICA ArpDelay 5
hares -modify nfsMultiNICA IfconfigTwice 1
hares -modify nfsMultiNICA Device hme0 10.102.64.151 qfe3 10.102.64.151 -sys vxcluster1
hares -modify nfsMultiNICA Device hme0 10.102.64.152 qfe3 10.102.64.152 -sys vxcluster2
hares -modify nfsMultiNICA Enabled 1
#---------------------------------------------------------
hares -add nfsDG DiskGroup $hagrp
hares -modify nfsDG Enabled 1
hares -modify nfsDG DiskGroup $DG
hares -modify nfsDG StartVolumes 0
#---------------------------------------------------------
hares -add nfsVOL Volume $hagrp
hares -modify nfsVOL Enabled 1
hares -modify nfsVOL Volume $Volume
hares -modify nfsVOL DiskGroup $DG
#---------------------------------------------------------
hares -add nfsMOUNT Mount $hagrp
hares -modify nfsMOUNT Enabled 1
hares -modify nfsMOUNT MountPoint $Mountpoint
hares -modify nfsMOUNT BlockDevice /dev/vx/dsk/$DG/$Volume
hares -modify nfsMOUNT Type vxfs
#---------------------------------------------------------
hares -add nfsNFS NFS $hagrp
hares -modify nfsNFS Enabled 1
hares -modify nfsNFS Nservers 24
#----------------------------------------------------------
hares -add nfsSHARE Share $hagrp
hares -modify nfsSHARE Enabled 1
hares -modify nfsSHARE PathName $Mountpoint
hares -modify nfsSHARE OnlineNFSRestart 1
hares -modify nfsSHARE Options " -o rw,root=lillesand"
#----------------------------------------------------------
#
#Through with config, making links and mountpoints
mkdir $Mountpoint
rsh $Maskin2 mkdir $Mountpoint
# single interface : hares -link nfsIP nfsNIC
# single interface : hares -link nfsSHARE nfsIP
# Multiple Inerface:
hares -link nfsIPMultiNIC nfsMultiNICA
hares -link nfsSHARE nfsIPMultiNIC
hares -link nfsVOL nfsDG
hares -link nfsMOUNT nfsVOL
hares -link nfsSHARE nfsMOUNT
hares -link nfsSHARE nfsNFS
haconf -dump -makero
}
#Now, lets do the job...
make_it
#done !
#----------------------------------------------------------
#
# Making "root" as a user in hagui
vxcluster1# haconf -makerw
vxcluster1# hauser -add root
Enter Password:
Enter Again:
vxcluster1# haconf -dump -makero
1. First create the virtual IP
# ifconfig hme0:1 192.168.9.150 netmask 255.255.255.0 up
2. Create a disk group shared1
# vxdg init shared1 c1t80d0s2
# vxdg -g shared1 c1t81d0s2 c1t82d0s2 c1t83d0s2
# vxassist -g shared1 make code_vol 10g
# mkdir /home
3. Deport the disk group
# vxdg deport shared1
4. Now add the services and resources to the services
Add the service group
# haconf -makerw
# hagrp -add NFS_group1
# hagrp -modify NFS_group1 SystemList sparc1 0 sparc2 1
# hagrp -modify NFS_group1 AutoStartList sparc1 sparc2
Add the resources
# hares -add DG_shared DiskGroup NFS_group1
# hares -modify DG_shared DiskGroup shared1
# hares -add IP_nfs IP NFS_group1
# hares -modify IP_nfs Device hme0
# hares -modify IP_nfs Address "192.168.9.150"
# hares -modify IP_nfs Enabled 1
# hares -add Mount_sourcecode Mount NFS_group1
# hares -modify Mount_sourcecode MountPoint "/home"
# hares -modify Mount_sourcecode BlockDevice "/dev/vx/dsk/shared1 /code_vol"
# hares -modify Mount_sourcecode MountOpt rw
# hares -modify Mount_sourcecode FSType vxfs
# hares -modify Mount_sourcecode FsckOpt %-y
# hares -modify Mount_sourcecode Enabled 1
# hares -add share_sourcecode Share NFS_group1
# hares -modify share_sourcecode PathName "/home"
# hares -modify share_sourcecode Enabled 1
# hares -add NFS_group2_16 NFS NFS_group1
# hares -modify NFS_group2_16 Enabled 1
# hares -add NIC_group_hme0 NIC NFS_group1
# hares -modify NIC_group_hme0 Device hme0
# hares -modify NIC_group_hme0 NetworkType ether
# hares -modify NIC_group_hme0 Enabled 1
Create the dependencies
# hares -link IP_nfs share_sourcecode
# hares -link IP_nfs NIC_group_hme0
# hares -link Mount_sourcecode DG_shared
# hares -link share_sourcecode NFS_group2_16
# hares -link share_sourcecode Mount_sourcecode
Close the configuration and push the changes.
# haconf -dump -makero
5. Create the mount directroy on sparc2
# mkdir /home on sparc2
6. Enable the resources from sparc1
# haconf -makerw
Enable all the resoureces and bring the service group online
# hagrp -online NFS_group1 -sys sparc1
Check the status of the service , it should be online
# hastatus - summary
Switch the service group from one system to another
# hagrp -switch NFS_group1 to -sparc2
# hastatus - summary
You will see its online on sparc2
昨天终于把虚拟机vmware下的solaris 10 x86 + vxvm + vcs 双机给安装起来了,还测试了一把NFS failover服务!折腾到半夜1点多,
总结的教训就是没细看随软件包文档,走了一些弯路,特别是配置NFS 服务组的时候,online 资源发现一些问题,
现在都已经完美解决了!废话少说,把整个过程总结如下。
一、硬件环境配置
1). 笔记本, AMD Turion 64 CPU, 3G内存,至少留20G空间安装solaris x86 虚拟机.
二、软件版本[/color]
1). VMWare workstation 6.5 for windows ---->网上可下载
2). solaris 10 x86 u6 版本 --->SUN网站下载
3). Veritas Storage Foundation HA 5.0 for solaris x86-64. 软件包包含了VCS和VxVM. ---> Symantec 网站可以下载试用版。
需要另外具备vcs和vxvm liense key.
三、最终安装结果
1). 虚拟出共享阵列/磁盘,并让VxVM控制管理,在DG上划出一个Volume,作为VCS双机下NFS双机共享目录,实现Failover 机制。
四、安装与配置过程
1 前提条件:
1). 如果机器CPU不是支持64位的,Veritas套件肯定是无法安装起来的,我在symantec网站查阅过版本信息,目前还没有支持x86 32位
的版本,如果您机器不是64位的,请立刻放弃这个想法,所有的后续安装都是徒劳无功的。
2). 具备第一条件后,还需要vcs和vxvm的license,没license就没得用,不一定要正式的,demo的也行。
2 安装Solaris系统,配置共享磁盘
按照常规步骤安装Solaris,一共装2个做双机。一个个安装,复制的方式大概也行,我没试过,很多人说不能用,
也许引起了冲突。所以安装solaris别怕麻烦,耐心地安装出2个系统。
2个系统都装完后参考以下配置,没列出的基本是默认,不指明了。简称A,B机
1) 增加网卡
A,B机配置
分别有4个虚拟网卡,全部Custom模式,选择一个虚拟网络,配置成host-only.
2) 创建虚拟共享磁盘/阵列
A,B系统全部停掉,在A系统上增加若干个磁盘,比如我增加了9个,挺爽!
最好都选scsi接口,并分配空间。然后在B系统上导入这些增加的磁盘,参数都选默认。
接下来要修改虚拟系统的参数,首先退出vmware,进入到A,B系统的存放目录,打开后缀名为 .vmx文件,
修改配置如下, 下面的配置只挑其中一个说明,另外一个参考此文件很容易改了。
说明:虚线内的内容复制到vmx文件
----------------
disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
----------------
scsi0.sharedBus = "virtual"
scsi0:1.present = "TRUE"
scsi0:1.fileName = "D:\shared_disks\coordinator01.vmdk"
说明:虚线内的内容复制到vmx文件
------------------------------
scsi0:1.mode = "persistent"
scsi0:1.shared = "TRUE"
scsi0:1.redo = ""
------------------------------
第二处增加的内容要针对增加的scsi硬盘的挂载位置做相应修改。比如你增加的硬盘内容如下
scsi1:3.present = "TRUE"
scsi1:3.fileName = "D:\shared_disks\coordinator01.vmdk"
那么就增加下面的三行
scsi1:3.mode = "persistent"
scsi1:3.shared = "TRUE"
scsi1:3.redo = ""
全部修改完成后,这些增加的虚拟硬盘就是作为共享阵列了!还弄不明白的,请搜索一下vmware相关资料。
启动solaris系统,vmware会报什么cluster功能不支持的错误,别管它,照样玩的通!
3.安装VxVM
最省时间的方法就是一次对A,B俩系统同时开始安装VxVM,5.0版本是支持这样做到。具体的配置说明这里就
不说了,总结一下就是
1) 要配置ssh 认证,修改/etc/ssh/sshd_config,允许root登录,另外服务sftp是正常的。
PermitRootLogin yes
Subsystem sftp /usr/lib/ssh/sftp-server
2) 在存放安装包的系统,假设是A,生成dsa 验证码,并存到B上,这样只要在A上开始安装vxvm,B也可以被照顾到了。
# ssh-genkey -t dsa
把/.ssh/id_dsa.pub 文件传到B上,内容复制到/.ssh/authorized_keys 文件。
A系统执行如下2个命令
# exec /usr/bin/ssh-agent $SHELL
# ssh-add
在A系统验证ssh是否无需密码可以直接登录
# ssh -l root solB uname -a
如果上面的命令没有提示密码,恭喜!可以开始安装VxVM了。请参考指导书安装。
3) 安装之后发现A,B两个系统识别的共享盘有错误,A正常,B在vxdisk list显示 udid_mismatch, 查证veritas
资料说是bug,要安装MP3补丁,安装之后果然都好了。
4)另外创建dg和划volume都不说了吧,大把资料可以查,不是这里讲的重点。划出个vol1,然后A,B都deport,import
一下dg,同步信息。
4.安装VCS
其实VxVM和VCS可以同时安装,Storage Foundation的安装菜单已经有这样的选项了,我担心一个安装不成功会干扰其他的,
所以是分开装的。对ssh配置修改和VxVM的安装是一模一样的。指定了cluster的一些参数,比如cluster name,心跳网卡,
安装起来还是挺顺利的。不知道为什么Windows Console客户端连接不上VCS了,这个问题没解决。web方式也联不上,应该是
配置没做好.
总结:心跳网卡一定要A,B各指定2个。
5.配置NFS双机服务
NFS双机服务是VCS完全支持的功能,系统自带了agent,不需要额外再去写启动脚本了,唯一要做的就是把这个NFS通过命令
搭建出来。
需要创建、修改的东西
1) A,B两边都创建一个目录,作为共享挂载。
# mkdir /nfsshare
2) 对卷vol1创建文件系统
# newfs /dev/vx/dsk/datadg/vol1
3) A,B系统上要禁止solaris控制nfs 服务,让vcs来控制, 这步很重要,否则NFS双机服务会很不稳定。
# svccfg delete -f svc:/network/nfs/server:default
4) 使用脚本创建NFS,参考以下内容, 符号--->后面都是命令解释, 不属于命令一部分.
# hagrp -add hanfs ----->创建service group
# haconf -makerw ----->配置文件可读写
# hagrp -modify hanfs SystemList solarisA 1 solarisB 2 ---->group在solarisA和solarisB上运行
# hagrp -autoenable hanfs -sys solarisA
# hares -add nfsNIC NIC hanfs
VCS NOTICE V-16-1-10242 Resource added. Enabled attribute must be set before agent monitors
# hares -modify nfsNIC Enabled 1
# hares -modify nfsNIC Device e1000g0 --->指定网卡,NFS的服务IP会挂在这个网卡上
# hares -modify nfsIP Enabled 1
# hares -modify nfsIP Device e1000g0
# hares -modify nfsIP Address 192.168.152.133 --->指定服务IP
# hares -modify nfsIP IfconfigTwice 1
# hares -add nfsDG DiskGroup hanfs ---->DG, 和vxvm的dg联系起来
VCS NOTICE V-16-1-10242 Resource added. Enabled attribute must be set before agent monitors
# hares -modify nfsDG Enabled 1
# hares -modify nfsDG DiskGroup datadg ---->配置属性
# hares -modify nfsDG StartVolumes 0
# hares -add nfsVOL Volume hanfs ---->增加一个Volume, vol1映射到这个resource
# hares -modify nfsVOL Enabled 1
# hares -modify nfsVOL Volume vol01 --->配置卷vol01
# hares -modify nfsVOL DiskGroup datadg
# hares -add nfsMOUNT Mount hanfs --->vol01挂载到/nfsshare
VCS NOTICE V-16-1-10242 Resource added. Enabled attribute must be set before agent monitors
# hares -modify nfsMOUNT Enabled 1
# hares -modify nfsMOUNT MountPoint /nfsshare
# hares -modify nfsMOUNT BlockDevice /dev/vx/dsk/datadg/vol01
# hares -modify nfsMOUNT FSType ufs --->指定挂载文件系统类型, 这步曾经漏掉了,结果服务起不来
# hares -modify nfsMOUNT FsckOpt %-n ---->挂载上后不要fsck,这个参数也不能漏
# hares -add nfsNFS NFS hanfs --->增加一个NFS resource
VCS NOTICE V-16-1-10242 Resource added. Enabled attribute must be set before agent monitors
# hares -modify nfsNFS Enabled 1
# hares -modify nfsNFS Nservers 24
# hares -add nfsSHARE Share hanfs
VCS NOTICE V-16-1-10242 Resource added. Enabled attribute must be set before agent monitors
# hares -modify nfsSHARE Enabled 1
# hares -modify nfsSHARE PathName /nfsshare
# hares -modify nfsSHARE Options rw
# hares -link nfsIP nfsNIC ---->link确定resource父子关系
# hares -link nfsVOL nfsDG
# hares -link nfsMOUNT nfsVOL
# hares -link nfsSHARE nfsIP
# hares -link nfsSHARE nfsMOUNT
# hares -link nfsSHARE nfsNFS
# haconf -dump -makero
5) 测试NFS服务
测试过程比较枯燥,首先每个resource要probe一下,然后再online. 例如,
# hares -probe nfsDG -sys solarisA
# hares -online nfsDG -sys solarisA
把所有resource都这么做一次,在A机probe完了还要做B机的probe, 再online。这样才能保证两边都可以正常切换。
测试过程中如果发现什么错误,可以在/var/VRTSvcs/log/目录下查看日志。
6) 总结
有这么一套VCS虚拟双机还是不错滴,在上面可以慢慢玩,不用担心别人和你抢双机环境了!
就是很耗内存,机器不够强劲的,请谨慎安装。
分享到:
相关推荐
VCS(Verilog Compiler Simulator)是由Synopsys公司开发的一款高性能、高容量的Verilog仿真器,它将高级抽象验证技术集成到一个开放的原生平台上。2018.09版本的用户指南提供了关于如何有效利用VCS工具进行数字电路...
VCS(Value Change Dump)是一种广泛使用的硬件描述语言(HDL)仿真器,由Synopsys公司提供,它能够对Verilog和SystemVerilog代码进行快速而精确的模拟。VCS仿真器支持全面的验证环境,包括覆盖率分析、调试功能以及...
### Linux系统上Vivado调用VCS仿真的详细指南 #### 一、引言 在数字电路设计领域,FPGA(Field Programmable Gate Array,现场可编程门阵列)的设计与验证至关重要。随着设计复杂度的提升,高效的仿真成为确保设计...
VCS,全称为Verilog Compiler for SystemVerilog,是由Synopsys公司开发的一款强大的系统级硬件描述语言(HDL)编译器。它支持SystemVerilog、Verilog、VHDL等多种语言,广泛应用于集成电路设计的验证环境中。VCS...
"使用VCS配合Vivado进行仿真" 在本文中,我们将详细探讨使用VCS(Virtuoso Cycle Simulator)配合Vivado进行仿真的方法和步骤。 首先,让我们了解什么是VCS。VCS是一种功能强大的仿真工具,广泛应用于数字电路设计...
VCS(Verification ContinuumTM)是Synopsys公司提供的一款先进的集成电路验证工具,主要用于验证数字设计的正确性。2021版的VCS User Guide提供了全面的文档,帮助用户理解和掌握VCS的各种功能和选项,以提高验证...
VCS( Verification ContinuumTM)用户指南,Q-2020.03-SP2版,是2020年9月发布的一份详细的手册,由Synopsys公司提供,专注于集成电路验证领域的工具使用。VCS是Synopsys公司的一款先进的仿真器,它在IC设计验证中...
"VCS_User_Guide.pdf" VCS用户手册是 Synopsis 公司出品的一份重要的用户指南,旨在帮助用户更好地使用VCS(Verification Continuum)工具,实现IC设计的自动化验证。该手册涵盖了VCS的使用指南、功能特点、配置...
在现代数字系统设计中,验证是至关重要的步骤,而VCS(Verilog Comprehensive Simulator)是一款广泛使用的硬件描述语言(HDL)仿真器,它支持多种高级验证方法。PLI(Programmable Logic Interface)是VCS提供的一...
VCS SystemC联合仿真是一种将VCS(Verilog Compiler Simulator,即Verilog编译器仿真器)和SystemC建模环境结合在一起的仿真技术。这项技术主要用于在Verilog中描述的系统仿真中,同时也支持VHDL和SystemC语言。本...
VCS工具是Synopsys公司推出的一款高性能的功能验证解决方案,被全球前20大半导体公司广泛采用。该工具以其行业领先的性能和容量而著称,特别适合处理当今复杂系统级芯片(SoC)的设计和验证挑战。以下是VCS工具的...
"VCS+Verdi联合仿真详细教程" 本文主要介绍了VCS和Verdi联合仿真的详细教程,旨在帮助读者了解VCS和Verdi的基本概念和操作方法。VCS是一款编译型Verilog模拟器,具有高性能、规模大和高精度的特点,适合从行为级、...
### VCS仿真简介—三种调试模式详解 #### 一、VCS仿真概述 VCS (Verilog Compiled Simulator) 是Synopsys公司推出的一款高性能Verilog仿真工具,它以其极快的仿真速度和丰富的功能特性而著称。VCS支持多种调用方式...
VCS(Value-Change Dump)是一种广泛用于验证数字电路设计的仿真工具,由Synopsys公司提供。在本文中,我们将深入探讨VCS编程、VCS编译过程以及与Verilog语言的结合使用,同时也将提及相关的学习资源,如VCS Lab教程...
在IC设计领域,VCS(Verilog Compiler and Simulator)是一款由Synopsys公司提供的强大的硬件描述语言(HDL)编译器和仿真器。它被广泛用于数字集成电路的设计和验证过程,帮助工程师们确保设计的正确性和功能完整性。...
在电子设计自动化(EDA)领域,Verilog是广泛使用的硬件描述语言之一,而VCS(Verilog Compiler for SystemVerilog)是由Synopsys公司提供的一个强大的Verilog仿真器。本篇将详细介绍如何利用Makefile在VCS环境中...
VCS,全称为Version Control System,是版本控制系统,它用于跟踪和管理软件开发中的源代码和其他文件的变更。VCS管理对于任何项目都是至关重要的,因为它确保了团队成员之间的协作效率,防止了代码冲突,并提供了...
VCS,全称为Version Control System,中文通常称为版本控制系统,是一种用于管理软件源代码变更的工具。在Linux环境下,VCS对于开发者来说是至关重要的,它可以帮助团队协作、跟踪代码历史、解决冲突,并确保项目的...