** Myself
Create Serviceguard Cluster ทำการ Create serviceguard cluster โดยผ่าน command unix
Create Serviceguard Cluster
Cluster information
Cluster name: MYCLUST
Package Information
Package Name:ora_MYPKG Package Cluster ip=172.16.10.111
Package Name:mq Package Cluster ip=172.16.10.112
Subnet all package 172.16.10.0
Oracle sid = ora_MYPKG on node1 (default)
mq on node2 (default)
vgmq
mount=/opt/mqm,/opt/ibm/,var/mqm,
lv= lvoptmqm,lvoptibm,lvvarmqm
vgorasw
mount=/app/oracle
lv= lvorasw
vgoraarch
mount=/data/oracle/archive/MYPKG
lv=lvoraarch
vgoradata
mount=/data/oracle/oradata/MYPKG
lv= lvoradata
System Information
node1 information :
- hostname= node1
- pub ip= 172.16.10.101
- heartbeat ip= 172.16.10.101, 192.168.31.1, 192.168.32.1
- lan0=172.16.10.101(data and heartbeat) , lan2 standby lan0
- lan4=192.168.2.1 (heartbeat) , lan3=192.168.32.1(backup and heartbeat)
node2 information :
- hostname=node2
- pub ip= 172.16.10.102, 192.168.31.2, 192.168.32.2
- heartbeat ip=192.168.2.2,sub net of heartbeat = 192.168.2.0,
- lan0=172.16.10.102(data and heartbeat) , lan2 standby lan0
- lan4=192.168.2.2 (heartbeat) , lan3=192.168.32.2(backup and heartbeat)
การ create serviceguard cluster แบ่งขั้นตอนออกเป็น 4 ขั้นตอน
- Create a shared volume group.
- Create a ServiceGuard Cluster.
- Create an application package.
- Automatic cluster startup.
1. Create a shared volume group
มีขั้นตอนดังนี้
1. สร้าง .rhosts ไฟล์ทั้ง 2 เครื่องบน root directory ( ทำ ทั้ง 2 node ) | Echo “172.16.10.101” >> /.rhosts
# บนเครื่อง node2
Echo “172.16.10.102” >> /.rhosts
# บนเครื่อง node1 |
2 สร้าง director ของ group ( ทำ ที่ node1 ) | node1# mkdir /dev/vgorasw
|
3. สร้าง node ของ volumn group ( ทำ ที่ node1 ) | node1# mknod /dev/vgorasw/group c 64 0x020000
|
4. หา disk ที่จะทำ ( ทำ ที่ node1 ) | node1# ioscan -funC disk
Class I H/W Path Driver S/W State H/W Type Description
===============================
disk 34 0/4/2/0.101.0.0.0.0.4 sdisk CLAIMED DEVICE HP HSV200
/dev/dsk/c10t0d2 /dev/rdsk/c10t0d2
disk 35 0/4/2/0.101.0.0.0.0.5 sdisk CLAIMED DEVICE HP HSV200
/dev/dsk/c10t0d3 /dev/rdsk/c10t0d3
|
5. create physical volumn บน disk ทั้งหมดที่จะทำ ( ทำ ที่ node1 ) | node1# pvcreate -f /dev/rdsk/c6t0d2
Physical volume "/dev/rdsk/c10t0d2" has been successfully created.
node1# pvcreate -f /dev/rdsk/c6t0d3
Physical volume "/dev/rdsk/c10t0d3" has been successfully created.
node1# pvcreate -f /dev/rdsk/c6t5d3
node1# pvcreate -f /dev/rdsk/c6t5d4
node1# pvcreate -f /dev/rdsk/c6t5d5
…
|
6. create vg โดย ใส่ disk ทั้งหมดทุกลูก ( ทำ ที่ node1 ) | node1# vgcreate /dev/vgorasw /dev/dsk/c6t0d3
Volume group "/dev/vgorasw" has been successfully created.
Volume Group configuration for /dev/vgorasw has been saved in /etc/lvmconf/vgorasw.conf
|
7. ตรวจสอบdisk บน lvm ( ทำ ที่ node1 ) | node1# strings /etc/lvmtab
|
8. สร้าง logical volume ที้ต้องการ เช่น logical volume name=lvorasw,size= 10000M
( ทำ ที่ node1 ) | node1# lvcreate -L 10000 -n lvorasw /dev/vgorasw
Logical volume "/dev/vgorasw/lvorasw" has been successfully created with
character device "/dev/vgorasw/rlvorasw".
Logical volume "/dev/vgorasw/lvorasw" has been successfully extended.
Volume Group configuration for /dev/vgorasw has been saved in /etc/lvmconf/vgorasw.conf
node1# lvcreate -L 6000 -n lvoraarch /dev/vgoraarch
Logical volume "/dev/vgorasw/lvoraarch" has been successfully created with
character device "/dev/vgorasw/rlvoraarch".
Logical volume "/dev/vgorasw/lvoraarch" has been successfully extended.
Volume Group configuration for /dev/vgorasw has been saved in /etc/lvmconf/vgorasw.conf
node1# lvcreate -L 600000 -n lvorasw /dev/vgoradata
node1# lvcreate -L 10000 -n lvmq /dev/vgmq
|
9. สร้าง file system บน logical volume ( ทำ ที่ node1 ) | node1# newfs -F vxfs /dev/vgorasw/rlvorasw
Volume Group configuration for /dev/vgorasw has been saved in /etc/lvmconf/vgorasw.conf
node1# newfs -F vxfs /dev/vgorasw/rlvoraarch
node1# newfs -F vxfs /dev/vgorasw/rlvoradata
node1# newfs -F vxfs /dev/vgorasw/rlvmq
mount=/opt/mqm,/opt/ibm/,var/mqm,
lv= lvoptmqm,lvoptibm,lvvarmqm
vgorasw
mount=/app/oracle
lv= lvorasw
vgoraarch
mount=/data/oracle/archive/MYPKG
lv=lvoraarch
vgoradata
mount=/data/oracle/oradata/MYPKG
|
10. mount directory จาก file system ที่สร้างขึ้นมา ( ทำ ที่ node1 ) | node1# mkdir /opt/mqm
node1# mkdir /opt/ibm
node1# mkdir /var/mqm
node1# mkdir –p /app/oracle
node1# mkdir –p /data/oracle/archive/MYPKG
node1# mkdir -p /data/oracle/oradata/MYPKG
|
11. Deactivate vg ( ทำ ที่ node1 ) | node1# vgchange -a n vgorasw
Volume group "vgorasw" has been successfully changed.
node1# vgchange -a n vgoraarch
node1# vgchange -a n vgoradata
node1# vgchange -a n vgmq
|
12. Export mapfile ( ทำ ที่ node1 ) | node1# vgexport -p -s -m /tmp/vgorasw.map /dev/vgorasw
node1# vgexport -p -s -m /tmp/vgoraarch.map /dev/vgoraarch
node1# vgexport -p -s -m /tmp/vgoradata.map /dev/vgoradata
node1# vgexport -p -s -m /tmp/vgmq.map /dev/vgmq
|
13. Remote copy mapfile ไปที่ อีก node ( ทำ ที่ node1 ) | node1# rcp /tmp/*.map node2:/tmp/
|
14. สร้าง director ของ group ( ทำ ที่ node2 ) | node2# mkdir /dev/vgorasw
node2# mkdir /dev/vgoraarch
node2# mkdir /dev/vgoradata
node2# mkdir /dev/vgmq
|
15. สร้าง node ของ volumn group ( ทำ ที่ node2 ) | node2# mknod /dev/vgorasw/group c 64 0x010000
node2# mknod /dev/vgoraarch /group c 64 0x020000
node2# mknod /dev/vgoradata /group c 64 0x030000
node2# mknod /dev/vgmq /group c 64 0x040000
|
16. Import mapfile ที่ได้จาก node1 ( ทำ ที่ node2 ) | node2# vgimport -s -m /tmp/vgorasw.map /dev/vgorasw
node2# vgimport -s -m /tmp/vgoraarch.map /dev/vgoraarch
node2# vgimport -s -m /tmp/vgoradata.map /dev/vgoradata
node2# vgimport -s -m /tmp/vgmq.map /dev/vgmq
|
17. สร้าง directory ให้เหมือนกับ node1 ที่จะ mount ( ทำ ที่ node2 ) | node2# mkdir /opt/mqm
node2# mkdir /opt/ibm
node2# mkdir /var/mqm
node2# mkdir –p /app/oracle
node2# mkdir –p /data/oracle/archive/MYPKG
node2# mkdir -p /data/oracle/oradata/MYPKG
|
18. ถ้าต้องการ หลาย package หรือ หลาย volume group ก็ให้ทำจาก step 2-17 แต่เปลี่ยนชื่อ volumn group ,logical volumn,mount point ได้ตามต้องการ | If want to multiple package then Go to step 2-17
|
2. Create a Serviceguard Cluster
1. สร้าง file cmnodelist พร้อมกับใส่ข้อมูลของทั้ง 2 node ( ทำ ที่ node1 ) | node1# vi /etc/cmcluster/cmclnodelist
node1 root
node2 root
|
2. Remote copy cmnodelist file ไปที่ อีก node ( ทำ ที่ node1 ) | node1# rcp /etc/cmcluster/cmnodelist
node2: /etc/cmcluster/cmnodelist
|
3. สร้าง ascii ไฟล์ เพื่อจะนำมาใช้ในการ edit ข้อมูลเพิ่มว่าต้องการ cluster ชื่ออะไร hearbeat คือ ip ใด ( ทำ ที่ node1 ) | node1# cd /etc/cmcluster
node1# cmquerycl -n node1 -n node2 -C conf.ascii
Warning: The disk at /dev/dsk/c10t0d2 on node node1 does not have an ID.
Warning: The disk at /dev/dsk/c10t0d2 on node node2 does not have an ID.
Warning: Disks which do not have IDs cannot be included in the topology description.
Use pvcreate(1m) to give a disk an ID.
NODE_NAME node1
NETWORK_INTERFACE lan0
HEARTBEAT_IP 172.16.10.101
NETWORK_INTERFACE lan2
NETWORK_INTERFACE lan4
HEARTBEAT_IP 192.168.2.1
NETWORK_INTERFACE lan3
FIRST_CLUSTER_LOCK_PV /dev/dsk/c8t0d2
# List of serial device file names
# For example:
# SERIAL_DEVICE_FILE /dev/tty0p0
# Possible standby Network Interfaces for lan0: lan2.
# Possible standby Network Interfaces for lan4: lan3.
NODE_NAME node2
NETWORK_INTERFACE lan0
HEARTBEAT_IP 172.16.10.102
NETWORK_INTERFACE lan2
NETWORK_INTERFACE lan4
HEARTBEAT_IP 192.168.2.2
NETWORK_INTERFACE lan3
FIRST_CLUSTER_LOCK_PV /dev/dsk/c10t0d2
HEARTBEAT_INTERVAL 1000000
NODE_TIMEOUT 5000000
|
4. edit conf.ascii ไฟล์
แก้ cluster ชื่ออะไร
แก้ hearbeat คือ ip ใด
แก้ hearbeat_interval คือเวลาใด
แก้ node_timeout คือเวลาใด
แก้ volume group คือ volume ใด
( ทำ ที่ node1 ) | node1# vi conf.ascii
CLUSTER_NAME MYCLUST
FIRST_CLUSTER_LOCK_VG /dev/vgorasw
NODE_NAME node1
NETWORK_INTERFACE lan0
HEARTBEAT_IP 172.16.10.101
NETWORK_INTERFACE lan2
NETWORK_INTERFACE lan4
HEARTBEAT_IP 192.168.2.1
NETWORK_INTERFACE lan3
FIRST_CLUSTER_LOCK_PV /dev/dsk/c8t0d2
NODE_NAME node2
NETWORK_INTERFACE lan0
HEARTBEAT_IP 172.16.10.102
NETWORK_INTERFACE lan2
NETWORK_INTERFACE lan4
HEARTBEAT_IP 192.168.2.2
NETWORK_INTERFACE lan3
FIRST_CLUSTER_LOCK_PV /dev/dsk/c10t0d2
HEARTBEAT_INTERVAL 1000000
NODE_TIMEOUT 5000000
VOLUME_GROUP /dev/vgorasw
VOLUME_GROUP /dev/vgmp2
VOLUME_GROUP /dev/vghptbispkg
|
5. ทำการ check config ของไฟล์ conf.ascii ว่าถูกต้องหรือไม่ถ้าถูกต้องก็ทำการ apply config
( ทำ ที่ node1 ) |
node1# cmcheckconf -C /etc/cmcluster/conf.ascii
node1# vgchange -a y vgorasw
node1# cmapplyconf -C /etc/cmcluster/conf.ascii
Begin cluster verification...
Adding node node1 to cluster ngen.
Adding node node2 to cluster ngen.
Verification completed with no errors found.
Use the cmapplyconf command to apply the configuration.
Activated volume group
Volume group "vgorasw" has been successfully changed
node1# vgchange -a e vgorasw for vgchange with cluster
|
6. ถ้าถูกต้องแล้วทำการ Remote copy cmnodelist file ไปที่ อีก node ( ทำ ที่ node1 ) | node1# rcp /etc/cmcluster/conf.ascii node2: /etc/cmcluster/conf.ascii
|
7. ทำการrun cluster( ทำที่ node1 ) | node1# cmruncl
|
8. ทำการ view cluster เพื่อcheck status ของ node หรือ interface ได้ ( ทำ ที่ node1 ) | node1# cmviewcl -v
CLUSTER STATUS
ngen up
NODE STATUS STATE
node1 up running
Network_Parameters:
INTERFACE STATUS PATH NAME
PRIMARY up 8/16/6 lan0
STANDBY up 8/20/5/1 lan4
NODE STATUS STATE
node2 up running
Network_Parameters:
INTERFACE STATUS PATH NAME
STANDBY up 8/20/5/1 lan4
PRIMARY up 8/16/6 lan0
|
3. Create an application package
1. สร้าง package config ไฟล์ เพื่อจะนำมาใช้ในการ edit ข้อมูลเพิ่มว่าต้องการ package ชื่ออะไร มี node ใดบ้างใน package,runscript อะไรบ้าง,subnet ใด
( ทำ ที่ node1 ) | node1# mkdir -p /etc/cmcluster/ora_MYPKG/
node1# cd /etc/cmcluster/ora_MYPKG/
node1# cmmakepkg -p ora_MYPKG.conf
|
2. edit conf.ascii ไฟล์
แก้ package_name ชื่ออะไร
แก้ node_name คือ nodeใดบ้าง
แก้ run_script คือไฟล์ไหน
แก้ halt_script คือไฟล์ไหน
แก้ service_name คือ sidของ oracle
แก้ subnet คือ subnet ของpackage
( ทำ ที่ node1 ) | node1# vi ora_MYPKG.conf
PACKAGE_NAME ora_MYPKG
NODE_NAME node1
NODE_NAME node2
RUN_SCRIPT /etc/cmcluster/ora_MYPKG/ora_MYPKG.cntl
HALT_SCRIPT /etc/cmcluster/ora_MYPKG/ora_MYPKG.cntl
SERVICE_NAME ora_MYPKG
SUBNET 172.16.10.0
|
3. สร้าง control file เพื่อนำมาใช้ใน package เพื่อจะนำมาใช้ในการ edit ข้อมูลเพิ่มว่าต้องการ ip ใด, volume ใด,file system ใด
( ทำ ที่ node1 ) | node1# cmmakepkg -s ora_MYPKG.cntl
|
4. edit ora_MYPKG.cntl ไฟล์
แก้ VG[X] ชื่ออะไร
แก้ LV[X]=คือlvใดบ้าง
แก้ FS[X]=คือlvใดบ้าง
แก้ FS_MOUNT_OPT[X]=คือจะmount ด้วย optionใดบ้าง
แก้ IP[X] คือ ip ของ package
แก้ SUBNET[X] คือ subnet ของ package
แก้ SERVICE_NAME[X] คือไฟล์ไหน
แก้ SERVICE_CMD[X] คือไฟล์ไหน
แก้ SERVICE_RESTART[X] คือไฟล์ไหน
เพิ่ม การ start/stop database ลงบน function customer_defined ( ทำ ที่ node1 ) | node1# vi ora_MYPKG.cntl
VG[0]=vgorasw
VG[1]=vgoraarch
VG[2]=vgoradata
LV[0]=/dev/vgorasw/lvorasw;
FS[0]=/app/oracle;
FS_MOUNT_OPT[0]="-o rw,suid,largefiles,delaylog,datainlog";
FS_TYPE[0]="vxfs"
LV[1]=/dev/vgoraarch/lvoraarch;
FS[1]=/data/oracle/archive/MYPKG;
FS_MOUNT_OPT[1]="-o
rw,suid,largefiles,delaylog,nodatainlog"; FS_TYPE[1]="vxfs"
LV[2]=/dev/vgoradata/lvoradata;
FS[2]=/data/oracle/oradata/MYPKG;
FS_MOUNT_OPT[2]="-o
rw,suid,largefiles,delaylog,nodatainlog";
FS_TYPE[2]="vxfs"
IP[0]= 172.16.10.111
SUBNET[0]= 172.16.10.0
function customer_defined_run_cmds
{
/etc/cmcluster/ora_MYPKG/MYPKG_db_startup.sh
test_return 51
}
function customer_defined_halt_cmds
{
/etc/cmcluster/ora_MYPKG/MYPKG_db_shutdown.sh
test_return 52
}
|
5. ทำการ copy config ของไฟล์conf กับ cntl ไป อีก node ( ทำ ที่ node1 ) | node1# rcp /etc/cmcluster/ora_MYPKG/ora_MYPKG.conf
node2: /etc/cmcluster/ora_MYPKG/ora_MYPKG.conf
node1# rcp /etc/cmcluster/ora_MYPKG/ora_MYPKG.cntl
node2: /etc/cmcluster/ora_MYPKG/ora_MYPKG.cntl
|
6. ทำการ Check config ของไฟล์ ora_MYPKG.conf ว่าถูกต้องหรือไม่ | node1# cmcheckconf -P ora_MYPKG.conf
Begin package verification...
Verification completed with no errors found.
Use the cmapplyconf command to apply the configuration.
|
7. ทำการ apply config ของ package บนให้ cluster ( ทำ ที่ node1 ) | node1# cmapplyconf -P ora_MYPKG.conf
Begin package verification...
Modify the package configuration ([y]/n)? y
Completed the cluster update.
|
8. สั่งให้ package ทำ autorun บน ( ทำ ที่ node1 ) | node1# cmmodpkg -e ora_MYPKG
|
9. ถ้าต้องการ หลาย package หรือ หลาย volume group ก็ให้ทำจาก step 1-8 แต่เปลี่ยนชื่อ volumn group ,logical volumn,mount point ได้ตามต้องการ | If want to multiple package then Go to step 1-8
|
4. Automatic Cluster startup
แก้ไข /etc/rc.config.d/cmclusterให้ parameter autostart_cmcld=1 เพื่อให้ automatic cluster startup ตอน reboot เครื่อง ( ทำ ทั้ง 2 node ) |
vi /etc/rc.config.d/cmcluster
AUTOSTART_CMCLD=1
|
1 comments:
Nice doc.
Post a Comment