Skip to content

moosefs/pve-moosefs

Repository files navigation

pve-moosefs

MooseFS integration for Proxmox VE

This plugin enables native support for MooseFS as a storage backend in Proxmox VE.

⚠️ Disclaimer

This project is highly experimental.

⚠️ Do NOT use snapshots in MooseFS block device (bdev) mode. They are currently unsafe and may result in data loss. Snapshot support is still under active development and will remain experimental until this warning is removed.

📷 Preview

image

✨ Features

Ask DeepWiki

  • Native MooseFS support in Proxmox VE
  • Support for MooseFS clusters with passwords and subfolders
  • Live VM migration across Proxmox hosts with MooseFS-backed storage
  • Clean unmounting when MooseFS storage is removed
  • MooseFS block device (mfsbdev) support for high performance

🚧 Planned Features

  • Instant snapshots and rollbacks
  • Instant cloning

🚀 Installation & Usage

Prerequisites

  • Proxmox VE 8.4.1 or newer

Option 1: Easy Install

  1. Upgrade to Proxmox 8.4.1
  2. Download and install the .deb package from the Releases page.

Option 2: Manual Build

  1. Upgrade to Proxmox 8.4.1

  2. Clone this repository:

    git clone https://github.com/yourusername/pve-moosefs.git
    cd pve-moosefs
  3. Build the package:

    make
  4. Install it:

    dpkg -i *.deb

🖥️ Mounting MooseFS Storage

Via GUI

  1. Open the Proxmox Web Interface
  2. Navigate to Datacenter → Storage
  3. Click Add → MooseFS and complete the wizard

Via Command Line

pvesm add moosefs moosefs-vm-storage --path /mnt/mfs

This command creates a custom storage named moosefs-vm-storage using the MooseFS plugin.

Optional parameters:

  • --mfsmaster <hostname> — specify the MooseFS metadata server
  • --mfspassword <password> — use if your MooseFS export requires authentication
  • --mfssubfolder <folder> — mount a subfolder rather than the root of the MooseFS volume
  • --mfsport <port> — mount a MooseFS filesystem that uses a custom master port

🙏 Credits

Contributors:

Inspiration and references (for plugin skeleton and packaging):

Changelog

v0.1.10 - Critical bug fixes

  • Improve mount detection, fix subfolder bug in bdev adapter
  • Improve NBD handling
  • Only allow "raw" image type in bdev mode
  • Further NBD logic fixes and tuning
  • Fix issue with free_image SUPER delegation
  • Fix volume attributes/notes
  • Switch to mfsrmsnapshot instead of rm for snapshots
  • Add mfsport support
  • Support optional password for mfsbdev

v0.1.7 - Critical Bug Fixes

  • Fixes rare but major crash condition for VMs and LXCs
  • Adds support for Proxmox VE 9.0

v0.1.5 - Bug Fixes

  • Improvements to LXC snapshot support
  • Reduced debugging log noise

v0.1.4 – Bug Fixes

  • Multiple small and defensive fixes
  • Improved support for LXC
  • Enhancements for live migration, unmapping, and cloning

v0.1.3 – New Features

  • Full support for MooseFS block device (mfsbdev)

v0.1.2 – Initial Block Device Support

  • Basic mfsbdev support added

v0.1.1 – Enhancements

  • GUI support for container storage
  • Allowed leading / in mfssubfolder paths

v0.1.0 – Initial Release

  • Core features implemented
  • MooseFS mount/unmount and shared storage setup
  • Snapshots not functional in this version