Before configuring the backup service, ensure you have:
- A GitHub Enterprise Server instance running version 3.17 or later.
- A dedicated storage volume provisioned and managed for use as the backup target.
Storage requirements
To ensure reliable and performant backups, your storage must meet the following requirements:
-
Capacity: Allocate at least five times the amount of storage used by your primary GitHub appliance data disk. This accounts for historical snapshots and future growth.
-
Filesystem support: The backup service uses hard links for efficient storage, and your GitHub instance uses symbolic links. The backup target must support both symbolic and hard links, and it must use a case-sensitive filesystem to prevent conflicts.
You can test whether your filesystem supports hardlinking symbolic links by running:
cd /data/backup sudo touch file sudo ln -s file symlink sudo ln symlink hardlink ls -laIf the
ln symlink hardlinkcommand completes successfully, the filesystem is supported. -
Performance: Use high-performance storage with low latency and high IOPS to avoid slow backups and restores.
-
NFS: Avoid using an NFS mount for the backup directory (typically
/data/backup), as this can lead to timeouts and degraded performance.
Configuring the backup service
You can configure GitHub Enterprise Server Backup Service through the [Management Console].
Setting up the backup target
Before configuring the service, you must prepare the storage volume where backups will be stored.
Using a new block device
If you're using a dedicated block device as your backup target, you need to initialize it via SSH before proceeding in the [Management Console]. This process will format the device and erase all existing data.
-
Connect to your instance via SSH as the
adminuser. See 管理シェル (SSH) にアクセスする. -
Attach your backup block device to the instance.
-
Identify the device name using
lsblkto list available block devices. Make sure you select the correct device to avoid data loss.lsblk -
Run the initialization command, replacing
YOUR_DEVICE_NAMEwith the actual device name identified in the previous step.警告
This command will permanently erase all data on the specified device. Double-check the device name and back up any important data before proceeding.
ghe-storage-init-backup /dev/YOUR_DEVICE_NAMEThis command:
-
Formats the device (erases all data).
-
Prepares it for use by the backup service.
-
Sets it to mount automatically at
/data/backupon boot. -
If in a clustered environment, configures the node in
cluster.confwith thebackup-serverrole.
-
Detach a backup disk
警告
Before detaching a backup disk, ensure that no backups or restores are currently in progress. Detaching a disk while it is in use can result in data loss or service interruption.
In case you need to detach backup disk from GitHub Enterprise Server, please use following steps
-
List block devices and unmount
/data/backup.sudo lsblk sudo umount /data/backup -
List logical volumes and deactivate logical volume.
sudo lvs sudo lvchange -an <backup_VG>/<backup_LV> -
Detach disk using console or CLI provided by cloud provider or hypervisor.
-
Remove mount point.
sudo rmdir /data/backup
Reusing a previously initialized disk
If the device was already initialized using ghe-storage-init-backup, you can reuse it without reformatting:
-
Connect to your instance via SSH as the
adminuser. -
Attach the disk to the instance.
-
Create the mount point, if it doesn't exist.
sudo mkdir -p /data/backup -
Enable and start the mount service.
sudo systemctl enable ghe-backup-disk.service sudo systemctl start ghe-backup-disk.serviceThis will mount the device at
/data/backupand ensures it's mounted automatically in the future.
Configuring backup settings
After the backup target is mounted, the Backup Service page will become available in the [Management Console] in the "Backup" section. If your instance is part of a clustered environment, the Backup Service page will be available after ghe-config-apply.
メモ
The settings page won’t appear until the backup storage is mounted at /data/backup by completing the initialization or mount steps above.
If you're migrating from GitHub Enterprise Server Backup Utilities, you can transfer your configuration in one of two ways:
-
Manual configuration: Recreate your settings directly in the [Management Console].
-
Command-line migration: SSH into your instance, copy your
backup.configfile from backup-utils, and run:ghe-migrate-backup-config /path/to/your/backup.configUse the
--dry-runflag to preview changes without applying them.
Take a backup
Once the service is configured, you can take a backup manually using the following steps:
- In the [Management Console], open the "Backups" tab from the top menu.
- Click Backup Now.
A GitHub Enterprise Server backup will be taken, and displayed in a list.
Scheduling automated backups
Once the service is configured, you can define a backup schedule.
- In the [Management Console], open the "Settings" tab from the top menu.
- In the "Backup" section, choose a predefined schedule (e.g., Daily) or enter a custom cron expression.
- Click Save settings to apply the changes.
The first run will be a full backup. Future runs will be incremental. If a new backup attempt starts while a previous one is still running, it may be skipped or fail. In that case, adjust the schedule to avoid overlap.