vania-janet/multiturn-rag-retrieval-data huggingface dataset:
Implementing a RHEL HA Add-On cluster on IBM® Power® Systems Virtual Server 

Running SAP on IBM Power Systems Virtual Server offers a consistent platform for HANA-based and traditional applications, best-in-class performance, resilience for critical workloads, and a flexible infrastructure.

Use the following information and procedures to help you implement a Red Hat High Availability (HA) cluster by using Power Systems Virtual Server instances as cluster nodes.

This information doesn't replace existing SAP or Red Hat documentation.



 Overview 

The information in the proceeding sections describes how to transform the individual virtual server instances in Power Systems Virtual Server into a cluster.

These procedures include installing the high availability packages and agents on each cluster node and configuring the fencing devices.

Keep in mind that this information is intended for architects and specialists that are planning a high-availability deployment of SAP applications on Power Systems Virtual Server.





 Prerequisites 



* A [Red Hat Customer Portal](https://access.redhat.com/) account.
* An [IBM Cloud account](https://cloud.ibm.com/docs/account?topic=account-account-getting-started).
* [Setting up an enterprise account](https://cloud.ibm.com/docs/account?topic=account-enterprise-tutorial) guides you creating an enterprise and managing your account.







 References 

Check the following Red Hat documentation and Knowledge Base articles (a Red Hat Customer portal ID is required to access Knowledge Base articles):



* [Support Policies for RHEL High Availability Clusters](https://access.redhat.com/articles/2912891)
* [Support Policies for RHEL High Availability Clusters - General Requirements for Fencing/STONITH](https://access.redhat.com/articles/2881341)
* [Support Policies for RHEL High Availability Clusters - IBM Power Systems Virtual Server (PowerVS) Virtual Machines as Cluster Members](https://access.redhat.com/articles/5651561)
* If you are preparing your Discovery for Cloud Pak for Data clusters for an in-place upgrade of your instance from 2.2.0 to 2.2.1, occasionally, the cpd-cli adm command fails, showing the following error message: Error from server (UnsupportedMediaType): error when applying patch. If you receive this error message, enter oc delete scc cpd-zensys-scc cpd-user-scc cpd-noperm-scc edb-operator-scc admin-discovery-scc to delete the related resources, and re-enter the cpd-cli adm command.
* If you are upgrading your Discovery for Cloud Pak for Data instance from 2.2.0 to 2.2.1, occasionally, the cpd-cli upgrade command completes before rolling updates complete. For information about verifying that your upgrade completed successfully, see [Verifying that your upgrade completed successfully](https://cloud.ibm.com/docs/discovery-data?topic=discovery-data-installverify-upgrade).
* Model-train images are not updated after upgrading from Discovery 2.2.0 to 2.2.1. To work around this issue, delete the deployments that the model-train operator creates, and wait for the operator to recreate the deployments. Enter the following command to delete the deployments:

oc delete deploy -l 'app.kubernetes.io/managed-by=ibm-modeltrain'

After you run this command, the model-train operator creates new deployments.
* If you upgrade Discovery for Cloud Pak for Data from 2.2.0 to 2.2.1, you might receive the following error message:

[ERROR] [2021-03-04 05:12:44-0657] Exiting due to error (Storage class is immutable. Module ibm-watson-gateway-operator x86_64 from Assembly portworx-shared-gp3 was installed with ibm-watson-gateway-operator x86_64, but new install/upgrade command is requesting portworx-db-gp3-sc. If you installed the assembly with a different storage class, please upgrade it individually.).
--extras '{"hardware":[{"hostname":"lhbr01","domain":"partner.ibmcloud.local","primaryBackendNetworkComponent": {"networkVlan": {"id": 3127648}}}],"storageGroups":[{"arrayTypeId": 2,"arraySize": 1000,"hardDrives": 0,1],"partitionTemplateId": 1},{"arrayTypeId": 4,"arraySize": 12000,"hardDrives": 2,3,4,5,6,7,8,9]}],"sshKeys": [{"sshKeyIds": 2097510]}]}' 
--billing monthly 
Show more

The IBM Cloud automation provisions the server, which takes approximately 4 hours. When provisioned, if you connect to the server and use the df -Th command, you get a response similar to the following output. The /dev/sdb1 becomes the immutable repository when configured in a subsequent step.

Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 32G 0 32G 0% /dev
tmpfs tmpfs 32G 0 32G 0% /dev/shm
tmpfs tmpfs 32G 42M 32G 1% /run
tmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda3 xfs 929G 9.2G 920G 1% /
/dev/sda1 xfs 1006M 273M 734M 28% /boot
/dev/sdb1 xfs 11T 80G 11T 1% /disk1
tmpfs tmpfs 6.3G 0 6.3G 0% /run/user/1001

For more information, see [Understanding and building an order by using the order CLI](https://sldn.softlayer.com/article/understanding-ordering/).
cloud-object-storage.bucket.get_metrics_monitoring Read metrics monitoring configuration. 
 cloud-object-storage.bucket.put_metrics_monitoring Add metrics monitoring configuration. 
 cloud-object-storage.bucket.put_protection Add Immutable Object Storage policy. 
 cloud-object-storage.bucket.get_protection Read Immutable Object Storage policy. 
 cloud-object-storage.bucket.put_firewall Add a firewall configuration. 
 cloud-object-storage.bucket.get_firewall Read a firewall configuration. 
 cloud-object-storage.bucket.list_bucket_crn View a bucket CRN. 
 cloud-object-storage.bucket.get_notifications Internal use only - unsupported for users. 
 cloud-object-storage.bucket.put_notifications Internal use only - unsupported for users. 
 cloud-object-storage.object.get View and download objects. 
 cloud-object-storage.object.head Read an object's metadata. 
 cloud-object-storage.object.get_version Read a specified version of an object. 
 cloud-object-storage.object.head_version Get headers for a specific version of an object. 
 cloud-object-storage.object.put Write and upload objects. 
 cloud-object-storage.object.post Upload an object using HTML forms [deprecated]. 
 cloud-object-storage.object.post_md Update object metadata using HTML forms [deprecated]. 
 cloud-object-storage.object.post_initiate_upload Initiate multipart uploads. 
 cloud-object-storage.object.put_part Upload an object part. 
 cloud-object-storage.object.copy_part Copy (write) an object part. 
 cloud-object-storage.object.copy_part_get Copy (read) an object part. 
 cloud-object-storage.object.post_complete_upload Complete a multipart upload. 
 cloud-object-storage.object.copy Copy (write) an object from one bucket to another. 
 cloud-object-storage.object.copy_get Copy (read) an object from one bucket to another.
Transitions: []s3.Transition{
{
Days: aws.Int64(5),
StorageClass: aws.String("Glacier"),
},
},
},
},
},
}
l, e := client.PutBucketLifecycleConfiguration(lInput)
fmt.Println(l) // should print an empty bracket
fmt.Println(e) // should print <nil>

// GET BUCKET LIFECYCLE CONFIGURATION
gInput := &s3.GetBucketLifecycleConfigurationInput{
Bucket: aws.String("<bucketname>"),
}
g, e := client.GetBucketLifecycleConfiguration(gInput)
fmt.Println(g)
fmt.Println(e) // see response for results

// RESTORE OBJECT
// Replace <OBJECT_KEY> with the appropriate key
rInput := &s3.RestoreObjectInput{
Bucket: aws.String("<BUCKET_NAME>"),
Key: aws.String("<OBJECT_KEY>"),
RestoreRequest: &s3.RestoreRequest{
Days: aws.Int64(100),
GlacierJobParameters: &s3.GlacierJobParameters{
Tier: aws.String("Bulk"),
},
},
}
r, e := client.RestoreObject(rInput)
fmt.Println(r)
fmt.Println(e)

}

Show more

The typical response is exemplified here.

{
Rules: [{
Filter: {

},
ID: "id3",
Status: "Enabled",
Transitions: {
Days: 5,
StorageClass: "GLACIER"
}]
}]
}





 Immutable Object Storage
cloud-object-storage.bucket.get_uploads List all active multipart uploads for a bucket. 
 cloud-object-storage.bucket.put_quota Unsupported operation - used for S3 API compatibility only. 
 cloud-object-storage.bucket.get_acl Read a bucket ACL [deprecated]. 
 cloud-object-storage.bucket.put_acl Create a bucket ACL [deprecated]. 
 cloud-object-storage.bucket.get_cors Read CORS rules. 
 cloud-object-storage.bucket.put_cors Add CORS rules to a bucket. 
 cloud-object-storage.bucket.delete_cors Delete CORS rules. 
 cloud-object-storage.bucket.get_versioning Check versioning status of a bucket. 
 cloud-object-storage.bucket.put_versioning Enable versioning on a bucket. 
 cloud-object-storage.bucket.get_fasp_connection_info View Aspera FASP connection information. 
 cloud-object-storage.account.delete_fasp_connection_info Delete Aspera FASP connection information. 
 cloud-object-storage.bucket.get_location View the location and storage class of a bucket. 
 cloud-object-storage.bucket.get_lifecycle Read a bucket lifecycle policy. 
 cloud-object-storage.bucket.put_lifecycle Create a bucket lifecycle policy. 
 cloud-object-storage.bucket.get_basic Read bucket metadata (number of objects, etc) using the Resource Configuration API. 
 cloud-object-storage.bucket.get_activity_tracking Read activity tracking configuration. 
 cloud-object-storage.bucket.put_activity_tracking Add activity tracking configuration. 
 cloud-object-storage.bucket.get_metrics_monitoring Read metrics monitoring configuration. 
 cloud-object-storage.bucket.put_metrics_monitoring Add metrics monitoring configuration. 
 cloud-object-storage.bucket.put_protection Add Immutable Object Storage policy. 
 cloud-object-storage.bucket.get_protection Read Immutable Object Storage policy. 
 cloud-object-storage.bucket.put_firewall Add a firewall configuration.
About 

IBM® Db2® Warehouse on Cloud is a fully-managed, elastic cloud data warehouse that delivers independent scaling of storage and compute. It delivers a highly optimized columnar data store, actionable compression, and in-memory processing to supercharge your analytics and machine learning workloads.



 Key features 



 Blazingly-fast engine 

Db2 Warehouse on Cloud is a column-organized, in-memory data warehouse designed for complex analytics and extreme concurrency. Db2 Warehouse on Cloud delivers high performance on complex analytics workloads by using IBM BLU Acceleration, a collection of technologies pioneered by IBM Research that features the following key optimizations:



* A columnar organized storage model
* In-memory processing
* Querying of compressed data sets
* Data skipping







 Scalable and elastic cloud service 

Db2 Warehouse on Cloud is an elastic service, and allows you to independently scale compute and storage through an intuitive UI or REST API.





 Native object storage support 

Db2 Warehouse on Cloud on Amazon Web Services (AWS) introduces native object storage support to Db2. This functionality allows you to store traditional Db2 column-organized tables in Db2's native format on object storage while maintaining the existing SQL support and performance using a tiered storage architecture. Moving data from higher cost block storage to lower cost object storage can significantly reduce your costs and does not require changes to your workload. This feature is available on the current generation of AWS plans. For more information, see [Native Cloud Object Storage support](https://www.ibm.com/docs/en/db2woc?topic=native-cloud-object-storage-support)





 Open data format table support 

Db2 Warehouse on Cloud on AWS introduces new DATALAKE table support. This functionality provides Db2 users with the ability to access data that is stored on inexpensive, scalable, and reliable object storage in open data formats such as PARQUET and ORC from within the Db2 Warehouse. This feature is available on the current generation of AWS plans. For more information, see [Open date format table support](https://cloud.ibm.com/docs/Db2whc?topic=Db2whc-open-data-format-table-support)
Planning the deployment 

Plan the deployment by capturing information for use in the subsequent steps. Select the planning tasks for the deployment environment that you intend to build:



* [Immutable backup plan](https://cloud.ibm.com/docs/vmwaresolutions?topic=vmwaresolutions-veeam-cr-sag-planningveeam-cr-sag-planning-ib)
* [Isolated recovery environment plan](https://cloud.ibm.com/docs/vmwaresolutions?topic=vmwaresolutions-veeam-cr-sag-planningveeam-cr-sag-planning-ire)





 Immutable backup planning 

Capture the following details of the VMware vCenter Server® instance and Veeam® service instance:



Table 1. Capture parameters for Immutable backup planning

 Parameter Description 

 <root_domain> The vCenter Server instance domain name. For example, test.ibmcloud.local 
 <sub_domain> The vCenter Server instance subdomain name. For example, if the root domain is test.ibmcloud.local, then the subdomain is test. 
 <dc_code> The code for the data center in which the vCenter server instance is deployed into, such as DAL10. 
 <public_vlan_number> The Public VLAN number can be obtained from the UI by browsing to the Resources > vCenter Server > Infrastructure page. 
 <public_vlan_id> The ID can be found from the VLAN number and the IBM Cloud® CLI. For example, for VLAN number 1344, ibmcloud sl vlan listawk '/1344/ { print "Public_VLAN_ID: " $1 }'. 
 <private_vlan_number> The Private VLAN number can be obtained from the UI by browsing to the Resources > vCenter Server > Infrastructure page. The Secondary Private VLAN number is not required. 
 <private_vlan_id> The ID can be found from the VLAN number and the IBM Cloud CLI.
<addns_fqdn> The FQDN can be obtained from the UI by browsing to the Resources > vCenter Server > Summary page. 
 <addns_1> The IP address of the first AD/DNS server can be obtained from the UI by browsing to the Resources > vCenter Server > Summary page. 
 <addns_2> The IP address of the second AD/DNS server can be obtained from the UI by browsing to the Resources > vCenter Server > Summary page. 
 <vbr_ip> The IP address of the Veeam Backup & Replication server. 



Define the following parameters:



Table 2. Define parameters for Immutable backup planning

 Parameter Description 

 jmp_security_group_name The required name for the security group to protect the jump server. 
 as_security_group_name The required name for the security group to protect the automation server. 
 js_hostname The required jump server hostname. 
 as_hostname The required automation server hostname. 
 ansible_ip The IP address of the automation server. 
 lhbr_hostname The required Linux® hardened repository server hostname. 
 sa_veeam_cyber_admin_password A complex password used for the Veeam service account sa-veeam-cyber-admin account. 
 your_username A username for the account on the automation server so that you can SSH to the server. 
 timezone The time zone to be configured in the Linux hardened repository. For more information, see the [time zone catalog](http://manpages.ubuntu.com/manpages/focal/man3/DateTime::TimeZone::Catalog.3pm.html). 
 lhbr_root_password This password is the IBM Cloud supplied initial root password that is provided after provisioning of the Linux bare metal server. It is used to initially connect to the server for configuration and stored in the Ansible® vault file. 
 sa_ansible_password A complex password that is stored in the Ansible vault file that is used for the sa-ansible service account on the Veeam backup server. 
 immutability_period The required immutability period for the Linux Hardened repository.
win_shell: Add-VBRBackupRepository -Folder /mnt/veeamrepo01 -Type LinuxLocal -ImmutabilityPeriod '{{ immutability_period }}' -EnableBackupImmutability:$true -EnableXFSFastClone:$true -AlignDataBlocks:$true -UsePerVMFile:$true -MaxConcurrentJobs '{{ max_concurrent_jobs }}' -Server '{{ lhbr_fqdn }}' -Description "Linux Hardened Repository" -Name '{{ lhbr_vbr_name }}'



* -SSHTempCredentials:$true is used so that the SSH credentials are not entered into Veeam's credential store.
* -EnableXFSFastClone:$true defines that the Fast Clone technology is enabled for the backup repository.
* -AlignDataBlocks:$true indicates that the backup data blocks must be decompressed before you store to the repository.
* -UsePerVMFile:$true indicates that the backup repository must create per-virtual machine (VM) backup files.







 Creating a scale-out backup repository 

The following code snippet adds the Linux hardened repository as an extant to a scale-out backup repository. This step is optional. The code is extracted from [Protect against ransomware with Immutable Backups: a Veeam Guide](https://www.veeam.com/wp-guide-protect-ransomware-immutable-backups.html). The repository configuration must be a stand-alone repository (Scale-Out-Backup-Repository is technically compliant only if the “copy” policy is used for capacity tier).

- name: Create a Scale-Out Backup Repository
win_shell: Add-VBRScaleOutBackupRepository -PolicyType DataLocality -Extent '{{ lhbr_vbr_name }}' -Name "Linux Hardened Repository - {{ lhbr_vbr_name }}" -Description "Linux Hardened Repository" -UsePerVMBackupFiles:$true





 Related links
HARD_DRIVE_2_00_TB_SATA_2,HARD_DRIVE_2_00_TB_SATA_2,HARD_DRIVE_2_00_TB_SATA_2,HARD_DRIVE_2_00_TB_SATA_2,HARD_DRIVE_2_00_TB_SATA_2,HARD_DRIVE_2_00_TB_SATA_2,HARD_DRIVE_2_00_TB_SATA_2,HARD_DRIVE_2_00_TB_SATA_2,
BANDWIDTH_0_GB,
10_GBPS_REDUNDANT_PRIVATE_NETWORK_UPLINKS,
REBOOT_KVM_OVER_IP,
1_IP_ADDRESS,
REDUNDANT_POWER_SUPPLY,
MONITORING_HOST_PING,
NOTIFICATION_EMAIL_AND_TICKET,
AUTOMATED_NOTIFICATION,
UNLIMITED_SSL_VPN_USERS_1_PPTP_VPN_USER_PER_ACCOUNT 
--complex-type SoftLayer_Container_Product_Order_Hardware_Server 
--extras '{"hardware":[{"hostname":"lhbr01","domain":"partner.ibmcloud.local","primaryBackendNetworkComponent": {"networkVlan": {"id": 3127648}}}],"storageGroups":[{"arrayTypeId": 2,"arraySize": 1000,"hardDrives": 0,1],"partitionTemplateId": 1},{"arrayTypeId": 4,"arraySize": 12000,"hardDrives": 2,3,4,5,6,7,8,9]}],"sshKeys": [{"sshKeyIds": 2097510]}]}' 
--billing monthly 
Show more

The IBM Cloud automation provisions the server, which takes approximately 4 hours. When provisioned, if you connect to the server and use the df -Th command, you get a response similar to the following output. The /dev/sdb1 becomes the immutable repository when configured in a subsequent step.
[4] This approach guarantees that all pages in a paginated set represent the resources in the collection at the time of the initial request.
2. A paginated collection MAY require that sorting be performed only on immutable fields, while each request is still made against live data. This approach guarantees that all resources that existed for the entire duration of paginated requests are neither omitted nor duplicated if all pages in a collection are requested in sequence.







 Example token-based pagination response 

{
"limit": 50,
"total_count": 232,
"first": {
"href": "https://api.example.com/v2/accounts?limit=50"
},
"next": {
"href": "https://api.example.com/v2/accounts?start=3fe78a36b9aa7f26&limit=50",
"start": "3fe78a36b9aa7f26"
},
"accounts": [
...
]
}







 Offset and limit pagination 

Offset and limit pagination MUST support two query parameters: offset and limit.



 Offset 

The offset parameter MUST be used to determine how many resources to skip over, given the order of the collection. If offset is unspecified, the response MUST be identical to the response where offset is explicitly provided as 0.

Any non-negative integer MUST be a valid value for the offset parameter. If the supplied offset is greater than or equal to the total number of resources present, the server MUST return an empty collection, and MUST NOT return an 400- or 500-series response code.

If the value provided for offset is not a non-negative integer, the server SHOULD return a 400 status code and appropriate error response model.





 Limit 

The limit parameter MUST determine how many resources are returned, unless the offset and limit are such that the response is the last page

[5]of resources.

If limit is unspecified, a default limit MUST be used. The default limit MUST be consistent across all requests to the collection.
A backup repository is a storage location where Veeam keeps backup files, and it can be one of the following storage components:



* Direct attached storage - Microsoft Windows or Linux servers with volumes attached.
* Object storage - It can be manually configured as a capacity tier in a scale-out backup repository. However, the immutability option in IBM Cloud® Object Storage cannot be used with Veeam.
* Network-attached storage - It can be manually configured to provide SMB/CIFS shares or NFS shares. It is not used in these solution architectures.



After provisioning, the Veeam service instance has two repositories that are automatically configured:



* IC4V Default VM Backup Repository - Used for backing up the configuration database.
* IC4V Default Config Backup Repository - Used as an extant of the IC4V Scale-Out Repository performance tier.



These solution architectures use a Linux-based bare metal server to create a Linux hardened repository. The hardened repository is a storage repository to protect backup files from loss. This loss can be caused by malware activity or unplanned actions. For more information, see [Veeam Linux hardened repository](https://cloud.ibm.com/docs/vmwaresolutions?topic=vmwaresolutions-veeam-cr-sa-lhr).





 Scale-out backup repository 

A scale-out backup repository consists of one or more backup repositories that are called the performance tier. It can be expanded with object storage repositories for long-term and archive storage that is known as capacity tier and archive tier. Policies are used to move backups between tiers. A scale-out backup repository enables horizontal scaling support for multitier storage of data. After the automated provisioning is done, a scale-out backup, called IC4V Scale-Out Repository, is available for a target for backup jobs.

The creation of a scale-out backup repository by using the Linux hardened repository is optional.
For more information, see [Deploying virtual machines](https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-39D19B2B-A11C-42AE-AC80-DDA8682AB42C.html).
4. Deploy your custom data mover and immutable repository by following the vendor’s instructions.
5. Deploy your cybertoolset by following the vendor’s instructions.
6. To understand how to use the scripting capabilities of your Bring Your Own data mover and immutable repository solution to be more automated, see [Instant restore](https://cloud.ibm.com/docs/vmwaresolutions?topic=vmwaresolutions-veeam-cr-sag-instantrestore) and [Creating a Veeam Linux managed server](https://cloud.ibm.com/docs/vmwaresolutions?topic=vmwaresolutions-veeam-cr-sag-lnxmgdsvr).



Review the following information about network connectivity for your cyber-recover instance:



* [Architecture pattern for using Transit Gateway with a vCenter Server with NSX-T instance](https://cloud.ibm.com/docs/vmwaresolutions?topic=vmwaresolutions-arch-pattern-nsx-t-transit-gw)
* [Architecture pattern for using IPsec over Direct Link with a vCenter Server with NSX-T instance](https://cloud.ibm.com/docs/vmwaresolutions?topic=vmwaresolutions-arch-pattern-nsx-t-direct-link-ipsec)
* [Architecture pattern for using Direct Link with NSX-T edge cluster in colocation](https://cloud.ibm.com/docs/vmwaresolutions?topic=vmwaresolutions-arch-pattern-direct-link-edge)