Safekeeping is an online backup tool for VMware vSphere. There are two way to use Safekeeping
- by command line using safekeeping-cmd
- by Soap WebService using safekeeping-cxf daemon
- Generation base repository.
- Support for Virtual Machine, Improved Virtual Disk, vApp and K8s (experimental).
- vCenter Tag support and management.
- Archive Compression.
- Archive Encryption
- Multi repository target support (AWS S3,Azure, File System, and more to come).
- Restore to a New Virtual Machine new vApp or a new Improved Virtual Disk.
- Full Recovery of a Virtual Machine and VAPP with identity (UUID and other metadata).
- Support VM and VAPP vApp property(OVF).
- Support for encrypted VM and IVD.
- Support for Storage Profile.
- Support for VM implementing Microsoft VBS.
- VMware Cloud on AWS and FedRamp support.
- Kubernetes backup support (work in progress).
- Full and incremental backup
- Data dedup on the fly
- Virtual full backup - forever incremental (create a full backup generation directly on the repository)
- Command-line Interface, Interactive mode, and batch mode.
- Single user
- single thread
- Support scripts
- Extended command support for any entity on vCenter (more or less like powercli)
- Works on Windows and Linux
- Soap Web Service
- Multi concurrent users with different logins
- authentication based on vSphere PSC or IVDM
- multiThreads operations
- multi targets supports on the same sessions (ex backup to 2 different S3 buckets)
- Rich SOAP Api
- Works on Windows and Linux
CentOS 7.x with the following packages:
- open-vm-tools
- wget
- java-1.8.0-openjdk
- gcc
- zip
- gcc-c++
- make
- unzip
sudo yum install open-vm-tools wget java-1.8.0-openjdk gcc zip gcc-c++ make unzip
Note: Other distributions should work fine
Windows (any) with the following packages:
- powershell
- java-1.8.0-openjdk
- Visual Studio 2017,2019 or 2022
- Extract the Safekeeping source tar file or sincronize from this GIT deposit
- Download the Virtual Disk Development Kit and copy on the files on safekeeping/jdisklib/"OS-type"/vddk
cd safekeeping\jdisklib\windows
Copy any VDDK library you want to use inside the safekeeping\jdisklib\windows\vddk directory
To build the VDDK wrapper use
- with VisualStudio 2017
build-2017.cmd
- with VisualStudio 2019
build-2019.cmd
- with VisualStudio 2022
build-2022.cmd
cd ./safekeeping/jdisklib/linux
Copy any VDDK library you want to use inside the ./safekeeping/jdisklib/linux/vddk directory
To build the VDDK wrapper use: ./buildVddkLibraries.sh
Important JAVA supported versions are 8.0.345,11.0.16 or greater. Java 12 and doesn't work.
cd safekeeping
prepare.cmd <java_version>
gradlew eclipse
cd safekeeping
prepare.cmd <java_version>
gradlew installDist
cd safekeeping
./prepare.sh <java_version>
./gradlew installDist
<java_version> 8 jdk1.8 9 jdk1.9 10 jdk10 11 jdk11
Application tasks
- run - Runs this project as a JVM application
Build tasks
- build - Assembles and tests this project.
- clean - Deletes the build directory.
safekeeping-cmd and safekeeping-cxf only tasks
- deb - Safekeeping Installation. - Create a deb file (requires Debian/Ubuntu)
- dmg - Safekeeping Installation. - (requires MacOS )
- msi - Safekeeping Installation. - (requires Windows and https://wixtoolset.org/ )
- rpm - Safekeeping Installation. - (requires ReadHat/Centos )
- installDist - Safekeeping Installation. - Create the installation directory
Run the webservice in interactive mode using port 8080 for HTTP and 8043 for HTTPS
safekeeping-cxf -port 8080 -secure 8043 -interactive
safekeeping
or
/opt/vmware/safekeeping/safekeeping
safekeeping <command> <options>
safekeeping backup vm:myTestVM
If you are looking for help, the following configure command will display a list of help options:
safekeeping --help
Check the wiki for safekeeping-cmd
- safekeeping-cmd
- Safekeeping Command Line version
- safekeeping-cxf
- Safekeeping SOAP Web Service daemon version
- safekeeping-core
- Core backup tool library written with Java
- jdisklib
- Native interface for VDDK written with C++ using VDDK library.
- jvix
- Java wrapper for jdisklib native library
- safekeeping-common
- Java common library used by the project
- safekeeping-core-ext
- Library used by the safekeeping-cmd to deal with: IVD, snapshots, etc.
- safekeeping-external
- Wrapper of the internal class. Used by safekeeping-cfx for reflection
- jopt-simple
- Modified jopt-simple parsing command line library nssm
- Updated NSSM - the Non-Sucking Service Manager (support Visual Studio 2017 and 2019) PowerShell
- Safekeeping SAPI cmd-let
- lib
- Support files
- jar
- Java jar files required by Safekeeping
- doc
- Documentation.
- sample_scripts
- Sample scripts to be used with Safekeeping
- nfs-client
- NFS library DEPRECATED
- LICENSE.txt
- BSD-2 License file.
- open_source_licenses.txt
- Open source License file.
- README.md
- This file.
- VERSION
- Safekeeping version number
- build.gradle
- Gradle master build script
- settings.gradle
- Gradle settings file
The safekeeping project team welcomes contributions from the community. Before you start working with safekeeping, please read our Developer Certificate of Origin. All contributions to this repository must be signed as described on that page. Your signature certifies that you wrote the patch or have the right to pass it on as an open-source patch. For more detailed information, refer to CONTRIBUTING.md.