When the Worst-Case Scenario Hits at 3 AM
The phone vibrates relentlessly. The server running your company’s most critical database on CentOS Stream 9 suddenly loses connection. You try to SSH in, but it’s hopeless. At the data center, the hard drive is glowing solid red—a total physical failure. Sweat starts pouring down your face. You suddenly realize your daily rsync or tar scripts only copied data files. The entire system configuration, kernel, and complex libraries have no backup.
This is a harsh reality I’ve experienced as a system administrator. Restoring an entire OS from scratch (Bare Metal Recovery) usually takes 4 to 8 hours if done manually. Never bet your sleep on custom-written scripts. A professional backup solution is the only lifesaver when disaster strikes.
Why Traditional Backup Methods Often Fail You
When I first started my career, I often used cronjobs combined with mysqldump. This approach reveals three fatal weaknesses as the system grows:
- Data Inconsistency: If the script runs while the database is writing, the backup can easily become corrupted.
- Recovery Time Objective (RTO) is too long: You have to reinstall the OS, configure packages and users, and then import the data. For a 500GB server, this process can eat up an entire workday.
- Management Overload: When operating over 10 servers, checking the logs of dozens of individual scripts is a nightmare.
Veeam Agent: The Optimal Choice for CentOS Stream 9
Veeam Agent for Linux does more than just copy files. It uses a kernel module to create snapshots at the block level (Image-level backup). It copies every bit on the hard drive exactly, even while the server is online. If the server crashes, you just need a recovery USB to restore the entire system state to 15 minutes prior. Notably, the FREE version still supports all core features for standalone servers.
Step 1: Environment Preparation (Extremely Important)
Veeam requires kernel header packages to build the snapshot module. If the kernel-devel version doesn’t match the running kernel, the installation will fail immediately. Run the following command:
sudo dnf update -y
sudo dnf install -y epel-release
sudo dnf install -y kernel-devel-$(uname -r) dkms elfutils-libelf-devel gcc make
Pro tip: If you’ve just updated the kernel, reboot the server first. This ensures uname -r returns the correct version of the latest active kernel.
Step 2: Installing the Veeam Repository
We will pull the repo directly from Veeam’s official source to ensure security. Absolutely avoid downloading RPM files of unknown origin from the internet.
# Download repo configuration for EL9
sudo rpm -ivh https://repository.veeam.com/backup/linux/agent/rpm/el/9/x86_64/veeam-release-el9-1.0.8-1.x86_64.rpm
# Install Veeam Agent
sudo dnf install -y veeam
After installation, check if the module veeamsnap (or blksnap on newer versions) is ready using: lsmod | grep veeam.
Step 3: Configuring Your First Backup Job
Veeam provides a very intuitive TUI (Text User Interface). Simply type:
veeamconfig ui
Press C to create a new Job. I usually prioritize Entire Machine to back up everything. If you are using an external drive or NAS, select Shared folder. A practical tip: Schedule your backups for 1:00 AM to avoid performance impact during peak user hours.
Step 4: Testing – Don’t Leave It to Luck
Performing backups without testing recovery is as good as doing nothing. You should run a backup immediately to check the speed:
veeamconfig job start --name "Daily_Full_Backup"
Monitor the progress via the veeamconfig session list command. Typically, a 100GB server takes only about 15-20 minutes for the first backup over a local LAN.
Real-World Experience to Avoid Costly Mistakes
Through many “life and death” situations with Linux systems, I’ve gathered three key takeaways:
- Create Recovery Media Immediately: Export the Veeam recovery ISO and save it to the Cloud or a USB drive. Without this file, your backup is just a pile of useless data if the OS cannot boot.
- Monitor Storage Capacity: Veeam uses an Incremental mechanism (only saving changes). However, if the server logs too much, the backup size will skyrocket. Set a Retention Policy of about 7-14 days to optimize space.
- Open Firewall Ports: If backing up to a NAS via SMB/NFS protocols, remember to
allowthe relevant ports on firewalld. Don’t waste an entire afternoon over a simple connection error.
Conclusion
Deploying Veeam Agent on CentOS Stream 9 is a smart investment for your peace of mind. Instead of manually reinstalling every package when an issue occurs, you only need a few clicks to bring the system back to life. If you are managing critical projects, install it today. Don’t wait until the horse has bolted to lock the stable door.

