Skip to main content

Increasing storage capacity

You can increase or change the amount of storage available for Git repositories, databases, search indexes, and other persistent application data.

The process for allocating new system resources varies by virtualization platform and resource type. You should always configure the monitoring and alerting of key system resources. For more information, see Monitoring your instance.

As more users join your GitHub Enterprise Server instance, you may need to resize your storage volume. Refer to the documentation for your virtualization platform for information on resizing storage.

Requirements and recommendations

Note

Before resizing any storage volume, put your instance in maintenance mode. You can validate changes by configuring an IP exception list to allow access from specified IP addresses. For more information, see Enabling and scheduling maintenance mode.

User licensesx86-64 vCPUsMemoryRoot storageAttached (data) storageIOPS
Trial, demo, or 10 light users432 GB400 GB500 GB600
Up to 1,000848 GB400 GB500 GB3000
1,000 to 3,0001664 GB400 GB1000 GB6000
3,000 to 5,00032128 GB400 GB1500 GB9000
5,000 to 8,00048256 GB400 GB3000 GB12000
8,000 to 10,000+64512 GB400 GB5000 GB15000

Root storage refers to the total size of your instance's root disk. The available space on the root filesystem is 50% of the total storage available on the root disk. For more information, see System overview.

Increasing the data partition size

  1. Resize the existing user volume disk using your virtualization platform's tools.

  2. SSH into your GitHub Enterprise Server instance. If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. Replace HOSTNAME with the hostname for your instance, or the hostname or IP address of a node. For more information, see "Accessing the administrative shell (SSH)."

    Shell
    ssh -p 122 admin@HOSTNAME
    
  3. Put the appliance in maintenance mode. For more information, see Enabling and scheduling maintenance mode.

  4. Reboot the appliance to detect the new storage allocation:

    sudo reboot
    
  5. Run the ghe-storage-extend command to expand the /data/user filesystem:

    ghe-storage-extend
    
  6. Ensure system services are functioning correctly, then release maintenance mode. For more information, see Enabling and scheduling maintenance mode.

Increasing the root partition size using a new appliance

  1. Set up a new GitHub Enterprise Server instance with a larger root disk using the same version as your current appliance. For more information, see Setting up a GitHub Enterprise Server instance.

  2. Shut down the current appliance:

    sudo poweroff
    
  3. Detach the data disk from the current appliance using your virtualization platform's tools.

  4. Attach the data disk to the new appliance with the larger root disk.

Increasing the root partition size using an existing appliance

Warning

Before increasing the root partition size, you must put your instance in maintenance mode. For more information, see Enabling and scheduling maintenance mode.

  1. Attach a new disk to your GitHub Enterprise Server appliance.

  2. Run the lsblk command to identify the new disk's device name.

  3. Run the parted command to format the disk, substituting your device name for /dev/xvdg:

    sudo parted /dev/xvdg mklabel msdos
    sudo parted /dev/xvdg mkpart primary ext4 0% 50%
    sudo parted /dev/xvdg mkpart primary ext4 50% 100%
    
  4. If your appliance is configured for high-availability or geo-replication, to stop replication run the ghe-repl-stop command on each replica node:

    ghe-repl-stop
    
  5. To install the GitHub Enterprise Server software on the newly partitioned disk, run the ghe-upgrade command. You must replace PACKAGE-NAME.pkg with the path to a platform-specific upgrade package that matches the version of GitHub Enterprise Server already running on the appliance. You cannot use a universal hotpatch upgrade package, such as github-enterprise-2.11.9.hpkg. After the ghe-upgrade command completes, application services will automatically terminate.

    ghe-upgrade PACKAGE-NAME.pkg -s -t /dev/xvdg1
    
  6. Run the command on the secondary partition of the newly added disk:

    sudo mkfs.ext4 -L fallback /dev/xvdg2
    
  7. Shut down the appliance:

    sudo poweroff
    
  8. In the hypervisor, remove the old root disk and attach the new root disk at the same location as the old root disk.

  9. Start the appliance.

  10. Ensure system services are functioning correctly, then release maintenance mode. For more information, see Enabling and scheduling maintenance mode.

If your appliance is configured for high-availability or geo-replication, remember to start replication on each replica node using ghe-repl-start after the storage on all nodes has been upgraded.