Preparing the Upgrade Environment

Software versions and upgrades for Oracle Private Cloud Appliance are made available for download through My Oracle Support. The ISO file contains all the files and packages required to upgrade the appliance hardware and software components to a given release. All the items within the ISO file have been tested to work with each other and qualified for installation on your rack system.

To be able to use an ISO file to upgrade your appliance, you need to download the file to a location from where a web server can make it available to the Private Cloud Appliance management nodes. If you have set up a bastion host connected to the internal administration network of the appliance, it is convenient to store the ISO file on that machine and run a web server to make the ISO file accessible over http.

Before performing any upgrade operations, you unpack the contents of the ISO file to populate the source directories in the shared storage that is mounted on all three management nodes. This ensures that the new version is installed when an upgrade command is executed.

Prerequisite Version

The latest Upgrader code automatically enforces prerequisite software versions on your Private Cloud Appliance. In the early stages of upgrade or patch preparation, the Upgrader service validates the currently installed appliance software version against the new target version. The preparation process (upgradePreConfig) documented in this section will only proceed if validation is successful.

If the appliance is not running at least the minimum required version, the Upgrader exits the process and rolls back the environment to its previous state. View the details of the failed upgrade job:

PCA-ADMIN> getupgradejob upgradeJobId=1700153626051-prepare-40046
Data:
  Log File = /nfs/shared_storage/pca_upgrader/log/pca-upgrader_prepare_environment_2023_11_16-16.53.46.log
  Arguments = [...]
  Status = Failed
[...]
  Tasks 23 - Name = Check Prerequisite Build Version
  Tasks 23 - Description = Check current build version not lower than prerequisite version
  Tasks 24 - Name = Check Prerequisite Build Version
  Tasks 24 - Message = (("Caught exception while checking prerequisite build number 
  Exception: Command: ['/usr/bin/python3', '/var/lib/pca-upgrader/prerequisite_build_validator.py', 
  'rack=PCA', 'upgrade=ISO'] failed (1): stderr: b'' stdout: b'PCA version is lower than prerequisite build, 
  must upgrade to prerequisite build 3.0.2-b799577 to proceed further upgrade\\n'",), {})
  Tasks 24 - Status = Failed

You must first install the prerequisite version, which is indicated by the error message in the upgrade job output.

Using the Service Web UI

  1. In the navigation menu, click Upgrade & Patching.

  2. In the top-right corner of the Upgrade Jobs page, click Create Upgrade or Patch.

    The Create Request window appears. Choose Upgrade as the Request Type.

  3. Select the appropriate upgrade request type: Upgrade PreConfig.

  4. Fill out the upgrade request parameters:

    • Option: Enter ISO.

    • Location: Enter the path to the location where the ISO image is stored.

    • ISO Checksum: Enter the checksum required to verify the integrity of the ISO image. The checksum is provided alongside the ISO image in a file named <iso_image>.sha256sum.

    • Log Level: Optionally, select a specific log level for the upgrade log file. The default log level is "Information". For maximum detail, select "Debug".

    • Advanced Options JSON: Optionally, add a JSON string to provide additional command parameters.

    • Alternative ULN Channel: This parameter applies to patching and can be ignored.

  5. Click Create Request.

    The new upgrade request appears in the Upgrade Jobs table.

    The ISO image is unpacked on the shared storage of the management node cluster, from where its contents can be used to perform the required upgrade operations.

Using the Service CLI

  1. Gather the information that you need to run the command:

    • the location of the ISO image to upgrade from

      Enter the path to where the ISO image is stored. Its contents will be unpacked on the shared storage accessible from the management nodes.

    • the checksum used to verify the ISO image

      The checksum is provided alongside the ISO image. Its file name is the ISO image name with .sha256sum appended. The system uses the checksum to verify that the data in the ISO image is intact and valid for this upgrade.

  2. Enter the upgrade pre-configuration command.

    Syntax (entered on a single line):

    upgradePreConfig 
    option=ISO
    location=<path-to-iso>
    isoChecksum=<iso-file-checksum>

    Example:

    PCA-ADMIN> upgradePreConfig  option=ISO \
    location="http://host.example.com/pca-<version>-<build>.iso" \
    isoChecksum=90e4505b098031afb02068080db2603dc6f580cd7cf52aa51ecd0c3b81668027
    Command: upgradePreConfig  option=ISO location="http://host.example.com/pca-<version>-<build>.iso" isoChecksum=90e4505b098031afb02068080db2603dc6f580cd7cf52aa51ecd0c3b81668027
    Status: Success
    Time: 2022-11-06 06:35:38,884 UTC
    Data:
      Service request has been submitted. Upgrade Job Id = 1668417666968-prepare-28142 Upgrade Request Id = UWS-c94ba56a-1b91-49d8-8e51-afeae7f62186
  3. Use the request ID and the job ID to check the status of the upgrade process.

    PCA-ADMIN> getUpgradeJobs
      id                               upgradeRequestId                           commandName   result
      --                               ----------------                           -----------   ------
      1630938939109-compute-7545       UWS-61736806-7e5a-4648-9259-07c54c39cacb   compute       Passed
      1632849609034-kubernetes-35545   UWS-edfa3b32-c32a-4b67-8df5-2357096052bf   kubernetes    Passed
      1668417666968-prepare-28142      UWS-c94ba56a-1b91-49d8-8e51-afeae7f62186   prepare       Passed
    
    PCA-ADMIN> getUpgradeJob upgradeJobId=1668417666968-prepare-28142
    Command: getUpgradeJob upgradeJobId=1668417666968-prepare-28142
    Status: Success
    Time: 2022-11-06 07:24:00,793 UTC
    Data:
      Upgrade Request Id = UWS-c94ba56a-1b91-49d8-8e51-afeae7f62186
      Name = prepare
      Start Time = 2022-06-14T06:35:56
      End Time = 2022-11-06T06:35:58
      Pid = 28142
      Host = pcamn02
      Log File = /nfs/shared_storage/pca_upgrader/log/pca-upgrader_prepare_environment_2022_11_16-06.35.56.log
      Arguments = {"component_names":null,"diagnostics":false,"display_task_plan":false,"dry_run_tasks":false,"expected_iso_checksum":null,"fail_halt":false,"fail_upgrade":null,"image_location":"http://host.example.com/pca-<version>-<build>.iso","online_upgrade":null,"precheck_status":false,"repo_config_override":null,"result_override":null,"task_time":0,"test_run":false,"upgrade":false,"upgrade_to":null,"user_uln_base_url":null,"verify_only":false,"host_ip":null,"log_level":null,"switch_type":null,"epld_image_location":null,"checksum":"90e4505b098031afb02068080db2603dc6f580cd7cf52aa51ecd0c3b81668027","composition_id":null,"request_id":"UWS-c94ba56a-1b91-49d8-8e51-afeae7f62186","uln":null,"patch":null}
      Status = Passed
      Execution Time(sec) = 616
      Tasks 1 - Name = Validate Image Location
      Tasks 1 - Description = Verify that the image exists at the specified location and is correctly named
    [...]
  4. Proceed to the next upgrade preparation phase.

Backup Before Appliance Update

For system-critical components and services, Oracle Private Cloud Appliance runs a scheduled backup service that allows the appliance to be restored to its last known healthy state in case of a catastrophic failure. It is recommended that you implement a backup strategy for the users' cloud resources in the Compute Enclave as well.

Before upgrading or patching any component of the Private Cloud Appliance, you should create a backup of the latest state of the MySQL database, the ZFS Storage Appliance, and the Secret Service (Vault). The backup commands leverage the existing backup service but create an additional restore point that includes the most recent changes from right before you start an upgrade or patch workflow.

Using the Service CLI

  1. Start the three required backup tasks.

    PCA-ADMIN> backup target=vault
    Status: Success
    Data:
      Type = BackupJob
      Job Id = ocid1.brs-job.PCA3X62D9C1.mypca.joopwuv9403uzbfrh4x9mprmoduh3ljais6ex233v1b21ccqywu4a3vqykgm
      Display Name = brs-job-1668419778-backup
      Profile Id = ocid1.backup_profile.PCA3X62D9C1.mypca.wrxfwtxwxw6ydp2mwnypcaaxxzmwpuhsc33gcm3dyte7kgr4etuhb29qbs8q
      Time Created = 2022-11-06T09:56:18Z
      Lifecycle State = CREATING
      Retention = 14
    
    PCA-ADMIN> backup target=zfs
    Status: Success
    Data:
      Type = BackupJob
      Job Id = ocid1.brs-job.PCA3X62D9C1.mypca.9oaeaa2kw5crqfcjkh8kyhbxcv8bwh0f4ud6n3lucf802oj15ss3k39874bc
      Display Name = brs-job-1668419842-backup
      Profile Id = ocid1.backup_profile.PCA3X62D9C1.mypca.p7w0tgbvhtjqsgc8rllca2cvotkpgrtf4huiph7466mjio0dgskij9f0bp06
      Time Created = 2022-11-06T09:57:22Z
      Lifecycle State = CREATING
      Retention = 14
    
    PCA-ADMIN> backup target=mysql
    Status: Success
    Data:
      Type = BackupJob
      Job Id = ocid1.brs-job.PCA3X62D9C1.mypca.iew5tphpgr3h6mhliw2fai2ywvv386a0xc7isfo8kisj0wrcx114irnit6ot
      Display Name = brs-job-1668419850-backup
      Profile Id = ocid1.backup_profile.PCA3X62D9C1.mypca.henfqzdbafs4z3mxeuslb1c6f4t049w0pxvwf1gi3eb8wm1y11v7m932tn4g
      Time Created = 2022-11-06T09:57:30Z
      Lifecycle State = CREATING
      Retention = 14
  2. Use the backup job ID to check the status of the backups.

    PCA-ADMIN> getBackupJobs
    Data:
      id                                                                                              displayName                 components
      --                                                                                              -----------                 ----------
      ocid1.brs-job.PCA3X62D9C1.mypca.iew5tphpgr3h6mhliw2fai2ywvv386a0xc7isfo8kisj0wrcx114irnit6ot   brs-job-1668419850-backup   mysql
      ocid1.brs-job.PCA3X62D9C1.mypca.9oaeaa2kw5crqfcjkh8kyhbxcv8bwh0f4ud6n3lucf802oj15ss3k39874bc   brs-job-1668419842-backup   zfs
      ocid1.brs-job.PCA3X62D9C1.mypca.joopwuv9403uzbfrh4x9mprmoduh3ljais6ex233v1b21ccqywu4a3vqykgm   brs-job-1668419778-backup   vault
    
    PCA-ADMIN> getBackupJob backupJobId=ocid1.brs-job.PCA3X62D9C1.mypca.iew5tphpgr3h6mhliw2fai2ywvv386a0xc7isfo8kisj0wrcx114irnit6ot
    Status: Success
    Data:
      Type = BackupJob
      Job Id = ocid1.brs-job.PCA3X62D9C1.mypca.iew5tphpgr3h6mhliw2fai2ywvv386a0xc7isfo8kisj0wrcx114irnit6ot
      Display Name = brs-job-1668419850-backup
      Time Created = 2022-11-06T09:57:30Z
      Status = success
      Components = mysql
  3. Confirm that all three backup operations have completed successfully. Then, proceed to the next upgrade preparation phase.

Upgrade the Upgrader

The code of the upgrader is changed regularly, as is the case with any other system service. Ensure that the upgrader is up-to-date first, so that all upgrade commands are run with the latest version.

Upgrade operations will not be allowed to run if the system detects that the Upgrader is not the latest available version.

In software version 3.0.2-b892153 and later, when the Upgrader is upgraded to the latest version, an upgrade plan is also generated. The upgrade plan is based on a comparison between the current installation and the packages downloaded during the preparation of the upgrade environment, and it determines which upgrades need to be performed in the next phase. For more information, see Checking Upgrade Plan Status and Progress.

Caution:

Ensure that the Upgrade Preconfig task has been completed first. See Preparing the Upgrade Environment.

To prevent inconsistencies while executing the upgrade plan later on, it is critical that both parts of the preparation process, Upgrade PreConfig and preUpgrade, are completed together in the specified order. If at any time you need to rerun the preUpgrade command, you must rerun the preceding command first.

Using the Service Web UI

  1. In the navigation menu, click Upgrade & Patching.

  2. In the top-right corner of the Upgrade Jobs page, click Create Upgrade or Patch.

    The Create Request window appears. Choose Upgrade as the Request Type.

  3. Select the appropriate upgrade request type: preUpgrade.

  4. Fill out the upgrade request parameters:

    • Action: Enter start to retrieve the new version of the upgrader. (To check the status of the previous preUpgrade job, enter status instead.)

    • Type: Enter ISO. The upgrader packages are picked from the unpacked ISO image.

  5. Click Create Request.

    The new upgrade request appears in the Upgrade Jobs table. When the job has completed successfully, the upgrader is up-to-date and ready for use.

Using the Service CLI

  1. Start the process to install the latest upgrader version on the management nodes.

    PCA-ADMIN> preUpgrade action=start type=ISO
    Data: 
      Successfully triggered the pre-upgrade task.
       Pre upgrade status = success

    As part of the process, these operations are performed:

    1. Save the existing yum configuration.

    2. Configure the yum repository for the new upgrader files.

    3. Install the new upgrader version on the management nodes, then restart the upgrader systemd service for the changes to take effect.

    4. Restore the existing yum configuration that was saved in the first step.

  2. Check the status of the upgrade process at any time using this command:

    PCA-ADMIN> preUpgrade action=status
    Data: 
      A pre-upgrade task is running!
      Pre upgrade status = IN-PROGRESS
     
    PCA-ADMIN> preUpgrade action=status
    Data: 
       The previous pre-upgrade task succeeded!
       Pre upgrade status = SUCCESS
  3. Confirm that the latest version of the upgrader has been installed successfully. Ensure that the system is in ready state. Then, proceed with the component upgrades.

  4. Optionally, check which components need to be upgraded by displaying the upgrade plan.

    Note:

    This function is available when the appliance is running software version 3.0.2-b892153 or later.

    PCA-ADMIN> getUpgradePlan
    Data:
      id                         componentType   currentBuild     targetBuild      currentVersion                  targetVersion                   requireReboot   timeEstimation   requireUpgrade   impactedInfra 
      --                         -------------   ------------     -----------      --------------                  -------------                   -------------   --------------   --------------   ------------- 
      generic                    zfssa           3.0.2-b892153    3.0.2-b1052646   2013.06.05.8.57.1-2.57.5392.2   2013.06.05.8.57.1-2.57.5501.4   false           45               true             host,compute  
      100.96.2.64                compute         3.0.2-b892153    3.0.2-b1052646   3.0.2-640                       3.0.2-691                       true            20               true             compute       
      100.96.2.65                compute         3.0.2-b892153    3.0.2-b1052646   3.0.2-640                       3.0.2-691                       true            20               true             compute       
      100.96.2.66                compute         3.0.2-b892153    3.0.2-b1052646   3.0.2-640                       3.0.2-691                       true            20               true             compute       
      100.96.2.67                compute         3.0.2-b892153    3.0.2-b1052646   3.0.2-640                       3.0.2-691                       true            20               true             compute       
      100.96.2.68                compute         3.0.2-b892153    3.0.2-b1052646   3.0.2-640                       3.0.2-691                       true            20               true             compute       
      100.96.2.33                host            3.0.2-b892153    3.0.2-b1052646   oraclelinux-release-7.9-1.0.9   oraclelinux-release-7.9-1.0.9   true            35               true             host          
      100.96.2.34                host            3.0.2-b892153    3.0.2-b1052646   oraclelinux-release-7.9-1.0.9   oraclelinux-release-7.9-1.0.9   true            35               true             host          
      100.96.2.35                host            3.0.2-b892153    3.0.2-b1052646   oraclelinux-release-7.9-1.0.9   oraclelinux-release-7.9-1.0.9   true            35               true             host          
      generic                    mysql           3.0.2-b892153    3.0.2-b1052646   8.0.28-1.1                      8.0.33-1.1                      false           15               true             host          
      generic                    etcd            3.0.2-b892153    3.0.2-b1052646   3.3.10                          3.3.10                          false           5                false            host          
      generic                    vault           3.0.2-b892153    3.0.2-b1052646   v1.7.1-3                        v1.7.1-3                        false           5                false            host          
      generic                    kubernetes      3.0.2-b892153    3.0.2-b1052646   1.20.6-1                        1.25.7-1                        false           350              true             host,compute  
      generic                    platform        3.0.2-b892153    3.0.2-b1052646   None                            None                            false           50               true             host,compute  
      Oracle-Linux-7.9           ociImages       3.0.2-b892153    3.0.2-b1052646   2022.08.29_0                    2023.09.26_0                    false           5                true             host          
      Oracle-Linux-8             ociImages       3.0.2-b892153    3.0.2-b1052646   2022.08.29_0                    2023.09.26_0                    false           5                true             host          
      Oracle-Linux-9             ociImages       3.0.2-b892153    3.0.2-b1052646   None                            2023.09.26_0                    false           5                true             host          
      Oracle-Linux8-OKE-1.26.6   ociImages       3.0.2-b892153    3.0.2-b1052646   None                            20240210                        false           5                true             host          
      Oracle-Linux8-OKE-1.27.7   ociImages       3.0.2-b892153    3.0.2-b1052646   None                            20240209                        false           5                true             host          
      Oracle-Linux8-OKE-1.28.3   ociImages       3.0.2-b892153    3.0.2-b1052646   None                            20240210                        false           5                true             host          
      Oracle-Solaris-11          ociImages       3.0.2-b892153    3.0.2-b1052646   2023.04.18_0                    2023.10.16_0                    false           5                true             host          
      100.96.0.33                ilom            3.0.2-b892153    3.0.2-b1052646   5.0.2.23                        5.1.1.21                        true            10               true             host,compute  
      100.96.0.34                ilom            3.0.2-b892153    3.0.2-b1052646   5.0.2.23                        5.1.1.21                        true            10               true             host,compute  
      100.96.0.35                ilom            3.0.2-b892153    3.0.2-b1052646   5.0.2.23                        5.1.1.21                        true            10               true             host,compute  
      100.96.0.64                ilom            3.0.2-b892153    3.0.2-b1052646   5.0.2.23                        5.1.2.20.a                      true            10               true             host,compute  
      100.96.0.65                ilom            3.0.2-b892153    3.0.2-b1052646   5.0.2.23                        5.1.1.21                        true            10               true             host,compute  
      100.96.0.66                ilom            3.0.2-b892153    3.0.2-b1052646   5.0.2.23                        5.1.2.21                        true            10               true             host,compute  
      100.96.0.67                ilom            3.0.2-b892153    3.0.2-b1052646   5.0.2.23                        5.1.2.20.a                      true            10               true             host,compute  
      100.96.0.68                ilom            3.0.2-b892153    3.0.2-b1052646   5.0.2.23                        5.1.2.21                        true            10               true             host,compute  
      leaf                       switch          3.0.2-b892153    3.0.2-b1052646   10.2.5                          10.3.4a                         false           60               true             host,compute  
      mgmt                       switch          3.0.2-b892153    3.0.2-b1052646   10.2.5                          10.3.4a                         false           60               true             host,compute  
      spine                      switch          3.0.2-b892153    3.0.2-b1052646   10.2.5                          10.3.4a                         false           60               true             host,compute