Title and Copyright Information |
About This Manual |
Audience |
New and Changed Features |
Organization |
Related Documents |
Reader's Comments |
Conventions |
Part 1 -- Running Applications on TruCluster Server |
1 | Cluster Applications |
1.1 | Application Types |
1.1.1 | Single-Instance Applications |
1.1.2 | Multi-Instance Applications |
1.1.3 | Distributed Applications |
2 | Using CAA for Single-Instance Application Availability |
2.1 | When to Use CAA |
2.2 | Resource Profiles |
2.2.1 | Creating a Resource Profile |
2.2.2 | Application Resource Profiles |
2.2.2.1 | Required Resources |
2.2.2.2 | Application Resource Placement Policies |
2.2.2.3 | Optional Resources in Placement Decisions |
2.2.3 | Network Resource Profiles |
2.2.4 | Tape Resource Profiles |
2.2.5 | Media Changer Resource Profiles |
2.3 | Writing Action Scripts |
2.3.1 | Guidelines for Writing Application Resource Action Scripts |
2.3.2 | Action Script Examples |
2.4 | Registering Resources (caa_register) |
2.5 | Starting Application Resources (caa_start) |
2.6 | Relocating Application Resources |
2.7 | Stopping Application Resources (caa_stop) |
2.8 | Unregistering Application Resources |
2.9 | CAA Status Information (caa_stat) |
2.10 | Graphical User Interfaces |
2.10.1 | Using SysMan Menu to Manage CAA |
2.10.2 | Using SysMan Station to Manage and Monitor CAA |
2.11 | CAA Tutorial |
2.11.1 | Preconditions |
2.11.2 | Miscellaneous Setup |
2.11.3 | Example of an Action Script for dtcalc |
2.11.4 | Step 1: Creating the Application Resource Profile |
2.11.5 | Step 2: Validating the Application Resource Profile |
2.11.6 | Step 3: Registering the Application |
2.11.7 | Step 4: Starting the Application |
2.11.8 | Step 5: Relocating the Application |
2.11.9 | Step 6: Stopping the Application |
2.11.10 | Step 7: Unregistering the Application |
2.12 | Example Applications Managed by CAA |
2.12.1 | Creating a Single-Instance, Highly Available Netscape FastTrack Server Using CAA |
2.12.2 | Creating a Single-Instance, Highly Available Apache HTTP Server Using CAA |
2.12.3 | Creating a Single-Instance Oracle8i Server Using CAA |
2.12.4 | Creating a Single-Instance Informix Server Using CAA |
3 | Using Cluster Aliasing with Multi-Instance Applications |
3.1 | When to Use Cluster Aliasing |
3.2 | Using the Default Cluster Alias to Access a Multi-Instance Apache HTTP Server |
3.3 | Using the Default Cluster Alias to Access a Multi-Instance Netscape FastTrack Server |
Part 2 -- Moving Applications to TruCluster Server |
4 | General Application Migration Issues |
4.1 | Clusterwide and Member-Specific Files |
4.1.1 | Using a Single File |
4.1.2 | Using Multiple Files |
4.1.3 | Using CDSLs |
4.2 | Device Naming |
4.3 | Interprocess Communication |
4.4 | Synchronized Access to Shared Data |
4.5 | Member-Specific Resources |
4.6 | Expanded PIDs |
4.7 | DLM Parameters Removed |
4.8 | Licensing |
4.8.1 | TruCluster Server Licensing Constraints |
4.8.2 | Layered Product Licensing and Network Adapter Failover |
4.9 | Blocking Layered Products |
4.10 | Other Migration Issues |
4.10.1 | UFS Dependencies |
4.10.2 | New On-Disk Format for AdvFS Domains |
5 | Moving ASE Applications to TruCluster Server |
5.1 | Comparing ASE to CAA |
5.1.1 | Disk Service |
5.1.2 | NFS Service |
5.1.3 | User-Defined Service |
5.1.4 | DRD Service |
5.1.5 | Tape Service |
5.2 | Preparing to Move ASE Services to TruCluster Server |
5.2.1 | Saving ASE Database Content from TruCluster Available Server and Production Server Version 1.5 or Later |
5.2.2 | Saving ASE Database Content from TruCluster Available Server and Production Server Version 1.4 or Earlier |
5.3 | ASE Script Considerations |
5.3.1 | Replace ASE Commands with CAA Commands |
5.3.2 | Combine Start and Stop Scripts |
5.3.3 | Redirect Script Output |
5.3.4 | Replace nfs_ifconfig Script |
5.3.5 | Handling Errors Correctly |
5.3.6 | Remove Storage Management Information |
5.3.7 | Convert Device Names |
5.3.8 | Replace or Remove ASE Variables |
5.3.9 | Exit Codes |
5.3.10 | Posting Events |
5.4 | Networking Considerations |
5.4.1 | Using an Alias |
5.4.1.1 | Cluster Alias |
5.4.1.2 | Interface Alias |
5.4.2 | Networking Services |
5.5 | File System Partitioning |
6 | Moving Distributed Applications to TruCluster Server |
6.1 | Preparing to Move Distributed Applications to TruCluster Server |
6.2 | Running Oracle Parallel Server on TruCluster Server |
6.3 | Moving Oracle Parallel Server to TruCluster Server |
Part 3 -- Writing Cluster-Aware Applications |
7 | Programming Considerations |
7.1 | Modifications Required for RPC Programs |
7.2 | Portable Applications: Standalone and Cluster |
7.3 | CLSM Support |
7.4 | Diagnostic Utility Support |
7.5 | CDFS File System Restrictions |
7.6 | Scripts Called from the /cluster/admin/run Directory |
7.7 | Testing the Status of a Cluster Member During a Rolling Upgrade |
7.8 | File Access Resilience in a Cluster |
8 | Cluster Alias Application Programming Interface |
8.1 | Cluster Alias Port Terminology |
8.2 | Cluster Alias Functions |
8.3 | Cluster Port Space |
8.4 | Binding to Reserved Ports (512 Through 1024) |
8.5 | setsockopt() Options |
8.6 | Port Attributes: /etc/clua_services, clua_registerservice(), and setsockopt() |
8.7 | UDP Applications and Source Addresses |
9 | Distributed Lock Manager |
9.1 | DLM Overview |
9.2 | Resources |
9.2.1 | Resource Granularity |
9.2.2 | Namespaces |
9.2.3 | Uniquely Identifying Resources |
9.3 | Using Locks |
9.3.1 | Lock Modes |
9.3.2 | Levels of Locking and Compatibility |
9.3.3 | Lock Management Queues |
9.3.4 | Lock Conversions |
9.3.5 | Deadlock Detection |
9.4 | Dequeuing Locks |
9.5 | Canceling a Conversion Request |
9.6 | Advanced Locking Techniques |
9.6.1 | Asynchronous Completion of a Lock Request |
9.6.2 | Notification of Synchronous Completion |
9.6.3 | Blocking Notifications |
9.6.4 | Lock Conversions |
9.6.4.1 | Queuing Lock Conversions |
9.6.4.2 | Forced Queuing of Conversions |
9.6.5 | Parent Locks |
9.6.6 | Lock Value Blocks |
9.7 | Local Buffer Caching Using DLM Functions |
9.7.1 | Using the Lock Value Block |
9.7.2 | Using Blocking Notifications |
9.7.2.1 | Deferring Buffer Writes |
9.7.2.2 | Buffer Caching |
9.7.3 | Choosing a Buffer Caching Technique |
9.8 | Distributed Lock Manager Functions Code Example |
10 | Memory Channel Application Programming Interface Library |
10.1 | Initializing the Memory Channel API Library |
10.2 | The Memory Channel Multirail Model |
10.2.1 | Single-Rail Style |
10.2.2 | Failover Pair Style |
10.2.3 | Configuring the Memory Channel Multirail Model |
10.3 | Tuning Your Memory Channel Configuration |
10.3.1 | Extending Memory Channel Address Space |
10.3.2 | Increasing Wired Memory |
10.4 | Troubleshooting |
10.4.1 | IMC_NOTINIT Return Code |
10.4.2 | Memory Channel API Library Initialization Failure |
10.4.3 | Fatal Memory Channel Errors |
10.4.3.1 | Logical Rail Failure |
10.4.3.2 | Logical Rail Initialization Failure |
10.4.4 | IMC_MCFULL Return Code |
10.4.5 | IMC_RXFULL Return Code |
10.4.6 | IMC_WIRED_LIMIT Return Code |
10.4.7 | IMC_MAPENTRIES Return Code |
10.4.8 | IMC_NOMEM Return Code |
10.4.9 | IMC_NORESOURCES Return Code |
10.5 | Initializing the Memory Channel API Library for a User Program |
10.6 | Accessing Memory Channel Address Space |
10.6.1 | Attaching to Memory Channel Address Space |
10.6.1.1 | Broadcast Attach |
10.6.1.2 | Point-to-Point Attach |
10.6.1.3 | Loopback Attach |
10.6.2 | Initial Coherency |
10.6.3 | Reading and Writing Memory Channel Regions |
10.6.4 | Address Space Example |
10.6.5 | Latency Related Coherency |
10.6.6 | Error Management |
10.7 | Clusterwide Locks |
10.8 | Cluster Signals |
10.9 | Cluster Information |
10.9.1 | Using Memory Channel API Functions to Access Memory Channel API Cluster Information |
10.9.2 | Accessing Memory Channel Status Information from the Command Line |
10.10 | Comparison of Shared Memory and Message Passing Models |
10.11 | Frequently Asked Questions |
10.11.1 | IMC_NOMAPPER Return Code |
10.11.2 | Efficient Data Copy |
10.11.3 | Memory Channel Bandwidth Availability |
10.11.4 | Memory Channel API Cluster Configuration Change |
10.11.5 | Bus Error Message |
Examples |
9-1 | Locking, Lock Value Blocks, and Lock Conversion |
10-1 | Accessing Regions of Memory Channel Address Space |
10-2 | System V IPC and Memory Channel Code Comparison |
10-3 | Error Detection Using the imc_rderrcnt_mr Function |
10-4 | Error Detection Using the imc_ckerrcnt_mr Function |
10-5 | Locking Memory Channel Regions |
10-6 | Requesting Memory Channel API Cluster Information; Waiting for Memory Channel API Cluster Events |
Figures |
1-1 | Accessing a Single-Instance Application |
1-2 | Application Failover Using CAA |
1-3 | Accessing a Multi-Instance Application |
3-1 | Accessing a Multi-Instance Application Through a Cluster Alias |
9-1 | Model Database |
9-2 | Three Lock Queues |
9-3 | Conversion Deadlock |
9-4 | Multiple Resource Deadlock |
10-1 | Single-Rail Memory Channel Configuration |
10-2 | Failover Pair Memory Channel Configuration |
10-3 | Broadcast Address Space Mapping |
10-4 | Point-to-Point Address Space Mapping |
10-5 | Loopback Address Space Mapping |
Tables |
1-1 | TruCluster Server Application Types |
1-2 | Single-Instance Application Architectural Differences |
1-3 | Multi-Instance Application Architectural Differences |
2-1 | Application Profile Attributes |
2-2 | Network Profile Attributes |
2-3 | Tape Profile Attributes |
2-4 | Media Changer Attributes |
4-1 | Application Migration Considerations |
5-1 | ASE Services and Their TruCluster Server Equivalents |
7-1 | CDFS Library Functions |
8-1 | Cluster Alias Functions |
8-2 | Relationship Among Cluster Alias Port Attributes |
9-1 | Distributed Lock Manager Functions |
9-2 | Lock Modes |
9-3 | Compatibility of Lock Modes |
9-4 | Using the DLM_DEQALL Flag in a dlm_unlock Function Call |
9-5 | Conversions Allowed When the DLM_QUECVT Flag is Specified |
9-6 | Effect of Lock Conversion on Lock Value Block |
Index |