--- title: "Install a CTERA Portal in Azure Not Using the Azure Marketplace Version" slug: "install-a-ctera-portal-in-azure-not-using-the-azure-marketplace-version" updated: 2025-10-16T11:09:03Z published: 2025-10-16T11:09:03Z canonical: "kb.ctera.com/install-a-ctera-portal-in-azure-not-using-the-azure-marketplace-version" --- > ## Documentation Index > Fetch the complete documentation index at: https://kb.ctera.com/llms.txt > Use this file to discover all available pages before exploring further. # Install a CTERA Portal in Azure Not Using the Azure Marketplace Version For general requirements, see **Planning, General and Port Requirements** for the version. ## Specific Requirements The portal image used to create the CTERA Portal instance is created from an operating system vhd file that is obtained from [CTERA support](https://www.ctera.com/support/). This file needs to be moved to your Azure portal, using either Azure Storage browser or Azcopy.exe. Azcopy is available for download from [https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10](https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10). The zip file contains the azcopy.exe program. ## Create a Portal Image To copy the vhd file for a portal running on CentOS 9, available from [CTERA support](https://www.ctera.com/support/), you can use **Azure Storage browser** for a graphical user interface (GUI) or **AzCopy.exe** for a command line option. **To copy the vhd file using Storage browser:** 1. Log in to your Azure portal and access the **Storage Accounts** service. The list of available storage accounts is displayed. 2. Either create a new storage account or click the storage account to use. The storage account details are displayed. 3. Click **Access Keys** under **Security + Networking** in the navigation menu and note the **Storage account name** and the **Key 1** key value. **Note** Click **Show** to display the key. 4. Click **Storage browser** in the navigation menu and then click **Blob containers** and select **Add container**. The **New container** page is displayed. 5. Enter a name for the container and click **Create**. 6. Click the container. 7. Upload the vhd file to the container. 8. Click **Shared access signature** under **Security + Networking** in the navigation menu. The **Shared access signature** page is displayed. 9. Set the permissions and click **Generate SAS and connection string**. 10. Copy the connection string URI that is generated and save it. The URI includes a shared access key. **To copy the vhd file using AzCopy:** - Via **AzCopy.exe**, run the following command from the folder where you saved AzCopy.exe for the vhd file: `AzCopy.exe cp "<source_uri>" "<destination_uri>"` **source_uri** – The source URI location and path of the vhd file obtained from CTERA. **destination_url** – The destination URL. The vhd file is copied to the container. This can take some time. ## Creating a Portal Image 1. Log in to your Azure portal and access the **Images** service. The list of available images is displayed. 2. Click **Create**. The **Create an image** page is displayed. ![image.png](https://cdn.document360.io/30792387-cdcb-4791-aa14-94929bbcd3fe/Images/Documentation/image-6CH73GWG.png?sv=2026-02-06&spr=https&st=2026-11-11T04%3A29%3A24Z&se=2026-11-11T05%3A29%3A24Z&sr=c&sp=r&sig=hdCTBkYUTKZ4cQLVHqZAdmWrEHThos1qJcptmpVaX%2BY%3D) 3. Enter the following in the **Basics** tab. **Resource group** – The resource group to be used. The resource group must use premium storage. **Name** – A name to uniquely identify the virtual machine. **Region** – The region to host the image. **OS type** – Select `Linux`. **VM generation** – Select `Gen 1`. **Note** You **must** select `Linux` and `Gen 1`. **Storage blob** – Either enter the storage blob URI for the vhd file from CTERA or click **Browse**. The **Storage accounts** page is displayed. **Account type** – Select `Premium SSD`. 1. Select the storage account from the list. The **Containers** page is displayed. 2. Select the container from the list. The container content is displayed. 3. Select the vhd file received from CTERA and click **Select**. 4. Leave the other fields with their defaults and click **Review + create**. The information is checked and if okay, it is validated. 5. Click **Create**. Deployment starts. Upon completion, a screen similar to the following is displayed. ![image.png](https://cdn.document360.io/30792387-cdcb-4791-aa14-94929bbcd3fe/Images/Documentation/image-7ZWYBFAB.png?sv=2026-02-06&spr=https&st=2026-11-11T04%3A29%3A24Z&se=2026-11-11T05%3A29%3A24Z&sr=c&sp=r&sig=hdCTBkYUTKZ4cQLVHqZAdmWrEHThos1qJcptmpVaX%2BY%3D) 6. Click **Go to resource**. The image details are displayed. ## Install a CTERA Portal Instance **To create a portal instance:** 1. Log in to your Azure portal and access the **Images** service. The list of available images is displayed. 2. Select the CTERA Portal image created in [Creating a Portal Image](/v1/docs/install-a-ctera-portal-in-azure-not-using-the-azure-marketplace-version#creating-a-portal-image). The image details are displayed. 3. Click **Create VM**. The **Create a virtual machine** page is displayed. ![image.png](https://cdn.document360.io/30792387-cdcb-4791-aa14-94929bbcd3fe/Images/Documentation/image-RAF9EY1Z.png?sv=2026-02-06&spr=https&st=2026-11-11T04%3A29%3A24Z&se=2026-11-11T05%3A29%3A24Z&sr=c&sp=r&sig=hdCTBkYUTKZ4cQLVHqZAdmWrEHThos1qJcptmpVaX%2BY%3D) **Resource group** – The resource group to be used. The resource group used to create the image is the default group. The resource group must use premium storage. **Virtual machine name** – A name to uniquely identify the virtual machine. **Region** – The region to host the virtual machine. **Size** – Click **See all sizes** to display the available VM sizes. The **Select a VM size** page is displayed. ![image.png](https://cdn.document360.io/30792387-cdcb-4791-aa14-94929bbcd3fe/Images/Documentation/image-4TY49P5E.png?sv=2026-02-06&spr=https&st=2026-11-11T04%3A29%3A24Z&se=2026-11-11T05%3A29%3A24Z&sr=c&sp=r&sig=hdCTBkYUTKZ4cQLVHqZAdmWrEHThos1qJcptmpVaX%2BY%3D) 4. Select a VM size that matches your requirements. The VM size depends on the type of server you want. 5. Click **Select**. **Authentication type** – Choose **Password**. **Username** – A name to access the virtual machine. This is an administrator name to access the portal for initial configuration. **Note** Once the virtual machine has been fully configured, CTERA provides a user name and password, but this user name can also be used. **Password** – Enter a password to access the instance. **Confirm password** – Re-enter the password. **Select inbound rules** – Select **HTTPS (443)** from the drop-down list. **Licensing type** – Select **Other**. Leave the other values with their defaults. 6. When installing a portal server running on CentOS 9, click the **Disks** tab or **Next: Disks**. ![image.png](https://cdn.document360.io/30792387-cdcb-4791-aa14-94929bbcd3fe/Images/Documentation/image-7FLFE0E1.png?sv=2026-02-06&spr=https&st=2026-11-11T04%3A29%3A24Z&se=2026-11-11T05%3A29%3A24Z&sr=c&sp=r&sig=hdCTBkYUTKZ4cQLVHqZAdmWrEHThos1qJcptmpVaX%2BY%3D) 7. Click **Create and attach a new disk**. ![image.png](https://cdn.document360.io/30792387-cdcb-4791-aa14-94929bbcd3fe/Images/Documentation/image-COGA7ET0.png?sv=2026-02-06&spr=https&st=2026-11-11T04%3A29%3A24Z&se=2026-11-11T05%3A29%3A24Z&sr=c&sp=r&sig=hdCTBkYUTKZ4cQLVHqZAdmWrEHThos1qJcptmpVaX%2BY%3D) 8. Click **Change size**. The **Select a disk size** page is displayed. ![image.png](https://cdn.document360.io/30792387-cdcb-4791-aa14-94929bbcd3fe/Images/Documentation/image-FJPUPZ6O.png?sv=2026-02-06&spr=https&st=2026-11-11T04%3A29%3A24Z&se=2026-11-11T05%3A29%3A24Z&sr=c&sp=r&sig=hdCTBkYUTKZ4cQLVHqZAdmWrEHThos1qJcptmpVaX%2BY%3D) 9. For the Primary and Preview servers, for **Storage type**, keep `Premium SSD (locally-redundant storage)`. For all other servers, change **Storage type** to `Standard HDD` in the drop-down box. 10. Under **Custom disk size (GiB)** enter the disk size. Prior to going to production, contact CTERA Support to evaluate whether the attached drive's performance meets CTERA's performance requirements. The size for the primary server is about 1% of the expected global file system size. 11. Click **OK**. 12. Click **OK**. 13. Set **Host caching** to `None`. Setting it to `Read/write` can cause issues during periods of heavy writes, mainly during portal upgrades. 14. Click the **Networking** tab or **Next: Networking**. 15. Define network connectivity for the server. 16. Click **Review + create**. 17. Review the virtual machine details and click **Create**. The machine is deployed and started automatically. On the first start up a script is run to create a data pool from the data disk and then to load the portal dockers on to it. Loading the dockers can take a few minutes. 18. Click **Go to resource** to display its details. The virtual machine includes the OS disk which is used for root, and a data disk. **Note** Note the **Public IP address**. You access the server using this address. When connecting to the server using SSH for the first time, use the `root` user and `ctera321` password. You are prompted to change the password. 1. Click **Networking** under **Settings** in the navigation menu to add inbound and outbound port rules. 2. In the **Inbound port rules** tab, click **Add inbound port rule**. The **Add inbound security rule** window is displayed. 3. Click **Add inbound port rule** to add the inbound port rules, incrementing the **Priority** for each rule by ‘10‘ and clicking **Add** after adding each rule. The ports required are listed in [Port Tables](/v1/docs/port-tables-3). For example: | Service | Destination port ranges | Protocol | Priority | Name | | --- | --- | --- | --- | --- | | Custom | 995 | TCP | 330 | CTTP | | Custom | 18682 | TCP | 350 | Preview | 4. Select the **Outbound port rules** tab and click **Add outbound port rule**. The **Add outbound security rule** window is displayed. 5. Add the ports listed in **Port Tables** for your version. **Note** You need to change the **Name** field, if it was used for the inbound port. For example: | Service | Destination port ranges | Protocol | Priority | Name | | --- | --- | --- | --- | --- | | Custom | 18682 | TCP | 110 | **Preview1** | | Custom | 123 | UDP | 130 | NTP | | SMTP | — | — | 140 | SMTP | 6. Log in as `root`, using SSH or through the console. The default password is `ctera321` You are prompted to change the password on your first login. 7. For the primary database and secondary, replication, servers continue with [Creating the Archive Pool](/v1/docs/install-a-ctera-portal-in-azure-not-using-the-azure-marketplace-version#creating-the-archive-pool). 8. Start CTERA Portal services, by running the following command: `portal-manage.sh start` **Note** Do **not** start the portal until both the **sdconv** and **envoy** dockers have been loaded to the data pool. You can check that these dockers have loaded in `/var/log/ctera_firstboot.log` or by running `docker images` ## Creating the Archive Pool You need a data pool on every server and an archive pool on the primary database server, and when PostgreSQL streaming replication is required, also on the secondary, replication, server. See **Using PostgreSQL Streaming Replication** for your version for details about PostgreSQL streaming replication. The data pool disk is created automatically when you first start the virtual machine and dockers are loaded on to it. For the primary database and secondary, replication, servers you need to create the archive pool. **Note** For application and preview servers, you do not need to add an archive pool disk. CTERA recommends adding archive storage on both the primary and secondary database servers. **To create the archive pool:** 1. For the primary CTERA Portal database server and the secondary, replication, server, click the VM. 2. Click **Settings > Disks**. 3. Under **Data disks** click **Create and attach a new disk** to create the disk for archive storage. 4. Enter the following for the disk: **Disk name** – A name to identify the archive disk. **Storage type** – `Standard HDD` **Size (GiB)** – The size for the archive pool. **Note** The minimum archive pool should be 200GB but it should be sized around 2% of the expected global file system size. **Host caching** – `None` ![image.png](https://cdn.document360.io/30792387-cdcb-4791-aa14-94929bbcd3fe/Images/Documentation/image-CNTXWCHX.png?sv=2026-02-06&spr=https&st=2026-11-11T04%3A29%3A24Z&se=2026-11-11T05%3A29%3A24Z&sr=c&sp=r&sig=hdCTBkYUTKZ4cQLVHqZAdmWrEHThos1qJcptmpVaX%2BY%3D) 5. Click **Apply**. 6. Log in as the `root` user using SSH. 7. Run `lsblk` or `fdisk -l` to identify the disk to use for the archive pool. In the following output from `lsblk` a 200GB disk was added as the archive disk and it is identified as `sdd` ![image.png](https://cdn.document360.io/30792387-cdcb-4791-aa14-94929bbcd3fe/Images/Documentation/image-LD59093Z.png?sv=2026-02-06&spr=https&st=2026-11-11T04%3A29%3A24Z&se=2026-11-11T05%3A29%3A24Z&sr=c&sp=r&sig=hdCTBkYUTKZ4cQLVHqZAdmWrEHThos1qJcptmpVaX%2BY%3D) **Note** In this example an extra disk, sda, was created by Azure. If a disk is created automatically by Azure it can be ignored. 8. Run the following command to create the archive pool: `portal-storage-util.sh create_db_archive_pool Device` Where *Device* is the **Device name** of the disk to use for the archive pool. ## Troubleshooting the Installation You can check on the progress of the docker loads in one of the following ways to ensure that all the dockers are loaded: The last docker to load is called *zookeeper*: - In `/var/log/ctera_firstboot.log` - By running `docker images` to check that the docker images are available. - By checking if `/var/log/ctera_firstboot_completed` is present with the date and time when the installation was performed. If all the dockers do not load you need to run the script `/usr/bin/ctera_firstboot.sh`