public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] Post mail to the list
@ 2024-08-16  9:17 sjanssens via pve-devel
  2024-08-16 14:43 ` Dietmar Maurer
  0 siblings, 1 reply; 6+ messages in thread
From: sjanssens via pve-devel @ 2024-08-16  9:17 UTC (permalink / raw)
  To: pve-devel; +Cc: sjanssens

[-- Attachment #1: Type: message/rfc822, Size: 3268 bytes --]

From: sjanssens <sjanssens@evolix.fr>
To: pve-devel@lists.proxmox.com
Subject: Post mail to the list
Date: Fri, 16 Aug 2024 11:17:13 +0200
Message-ID: <0b0494c8-b687-4aed-babf-76d1ff8923a2@evolix.fr>

Hello, i wan't to make a patch for proxmox to implements DRBD, in a 
different way that LINSTOR do. I want to discuss about its usefulness 
and implementation with the community.

-- 
Samuel Janssens <sjanssens@evolix.fr> - SysAdmin support Evolix
Evolix - Hébergement et Infogérance Open Source
Marseille (37 rue Guibal, Pôle Média, 13003) / Paris / Montréal
http://evolix.com | Twitter: @Evolix @EvolixNOC | http://blog.evolix.com



[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [pve-devel] Post mail to the list
  2024-08-16  9:17 [pve-devel] Post mail to the list sjanssens via pve-devel
@ 2024-08-16 14:43 ` Dietmar Maurer
  2024-08-19  6:37   ` [pve-devel] DRBD integration but without LINSTOR Roland Kammerer via pve-devel
  0 siblings, 1 reply; 6+ messages in thread
From: Dietmar Maurer @ 2024-08-16 14:43 UTC (permalink / raw)
  To: Proxmox VE development discussion

> Hello, i wan't to make a patch for proxmox to implements DRBD, in a 
> different way that LINSTOR do. I want to discuss about its usefulness 
> and implementation with the community.

I think you should discuss that with the DRBD people (LINSTOR).
But I am not sure they are on this list.


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [pve-devel] DRBD integration but without LINSTOR
  2024-08-16 14:43 ` Dietmar Maurer
@ 2024-08-19  6:37   ` Roland Kammerer via pve-devel
  2024-08-19 13:37     ` sjanssens via pve-devel
  0 siblings, 1 reply; 6+ messages in thread
From: Roland Kammerer via pve-devel @ 2024-08-19  6:37 UTC (permalink / raw)
  To: pve-devel; +Cc: Roland Kammerer

[-- Attachment #1: Type: message/rfc822, Size: 5452 bytes --]

From: Roland Kammerer <roland.kammerer@linbit.com>
To: pve-devel@lists.proxmox.com
Subject: Re: [pve-devel] DRBD integration but without LINSTOR
Date: Mon, 19 Aug 2024 08:37:42 +0200
Message-ID: <ZsLoNvKSKP8KUr59@arm64>

On Fri, Aug 16, 2024 at 04:43:03PM +0200, Dietmar Maurer wrote:
> > Hello, i wan't to make a patch for proxmox to implements DRBD, in a 
> > different way that LINSTOR do. I want to discuss about its usefulness 
> > and implementation with the community.
> 
> I think you should discuss that with the DRBD people (LINSTOR).
> But I am not sure they are on this list.
> 

I am. AFAIK I'm the only one from LINBIT here, but feel free to start a
discussion. I maintain the linstor-proxmox plugin and know DRBD and
LINSTOR pretty well, but if you think this needs very in depth
DRBD/LINSTOR knowledge feel free to start a discussion here:

https://lists.linbit.com/listinfo/drbd-user

Regards, rck


[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [pve-devel] DRBD integration but without LINSTOR
  2024-08-19  6:37   ` [pve-devel] DRBD integration but without LINSTOR Roland Kammerer via pve-devel
@ 2024-08-19 13:37     ` sjanssens via pve-devel
  2024-08-20  6:43       ` Roland Kammerer via pve-devel
  0 siblings, 1 reply; 6+ messages in thread
From: sjanssens via pve-devel @ 2024-08-19 13:37 UTC (permalink / raw)
  To: pve-devel; +Cc: sjanssens

[-- Attachment #1: Type: message/rfc822, Size: 10051 bytes --]

From: sjanssens <sjanssens@evolix.fr>
To: pve-devel@lists.proxmox.com
Subject: Re: [pve-devel] DRBD integration but without LINSTOR
Date: Mon, 19 Aug 2024 15:37:43 +0200
Message-ID: <6b8329fd-1fd3-409a-aeb6-7d341dc0ee5d@evolix.fr>


I am about to complete my internship at Evolix, during which I worked on 
a project to integrate DRBD into Proxmox. This involved manipulating 
DRBD resources and using basic drbd-utils tools. I have now completed 
the project and uploaded it to Gitea. I am wondering if there is any 
interest in sharing this with the community.

Here are the repository links:

  * https://gitea.evolix.org/evolix/pve-drbd (new package)
  * https://gitea.evolix.org/evolix/pve-manager/src/branch/evolix-drbd
    (fork of pve-manager)
  * https://gitea.evolix.org/evolix/pve-docs/src/branch/debian (fork of
    pve-docs)
  * https://gitea.evolix.org/evolix/pve-storage (fork of pve-storage)

I am still working on the repositories (particularly to implement 
gitbuildpackage).

I am including a part of the README below for you to review if you have 
time:


1. Introduction
Objective

This documentation aims to detail the modifications made to the Proxmox 
source code for integrating DRBD. It provides information on the 
modifications of existing packages as well as the creation of the new 
pve-drbd package.
Background

The DRBD (Distributed Replicated Block Device) module has been 
integrated into Proxmox to enhance resource and disk management for VMs. 
This integration allows the manipulation of DRBD files and resources 
through the Proxmox VE UI, facilitating the deployment of VMs on DRBD 
devices.
Compatibility

This patch is compatible with both drbd8 and drbd9. Therefore, the 
kernel module must be available, as well as the drbd-utils package (>= 
9.22). You can find an installation guide for drbd9 on the Evolix Wiki.
2. Overview of Modifications
Summary

The modifications include updating the existing pve-manager, 
pve-storage, and pve-docs packages, and creating a new pve-drbd package.

You can find the list of packages in the official Proxmox git: Proxmox Git.
Modified Packages

     pve-manager: Management of Proxmox functions and user interfaces.
         Complete user interface with EXTJS (JavaScript)
         Base API calls (Perl), redirecting to the target packages.
     pve-storage: Management of storage functionalities.
         Definition and operation of 'storages' (for VM disk creation)
     pve-docs: Updating documentation to reflect new features.
         Documentation available with the API, and auto-generated for 
the CLI (man pve-drbd)
     pve-drbd: New package to integrate DRBD with Proxmox.
         Management of API calls related to DRBD
         CLI pve-drbd

3. Features
Integration of DRBD Storage Type for Proxmox VMs

We have added support for DRBD storage type, allowing seamless 
integration of DRBD usage for virtual machines on Proxmox. DRBD is a 
kernel-level block replication solution that ensures high availability 
and data resilience by replicating data in real-time between cluster nodes.
Simplified Management of DRBD Resources via Proxmox UI

The management of DRBD resources is fully integrated into the Proxmox 
user interface, facilitating the creation, modification, and management 
of DRBD resources. This integration allows administrators to link DRBD 
disks to VMs directly from the UI, providing a consistent and simplified 
user experience. Users can quickly configure and manage their replicated 
storage environments intuitively.
Command Line Interface (CLI) pve-drbd

In addition to the graphical interface, a dedicated CLI is also 
implemented for advanced management of DRBD resources across nodes. The 
pve-drbd CLI allows administrators to execute commands to create, 
delete, modify, and monitor DRBD resources across all cluster nodes, 
offering maximum flexibility for advanced users and automation scripts. 
This CLI is particularly useful for repetitive tasks and large-scale 
deployments where quick and efficient management is essential.
Custom Features

     Hot migration of VMs based on DRBD is also integrated. It 
automatically adds the target node to the resources linked to a VM and 
transfers it using qm.
     For drbd8, the DRBD dance is implemented. It allows transferring a 
VM to another pair of nodes, replacing the old hosts with the newly 
chosen ones in the resources.

4. Installation Instructions

     Download the git proxmoxDRBD Git.
     Download the source packages (pve-manager, pve-storage, pve-docs, 
and pve-drbd) into packages (skip this step if you downloaded the git 
with submodules).
     Compile and install pve-docs, pve-drbd, pve-storage, and then 
pve-manager (in the given order). Dependencies will be required.

5. Detailed Description of Modifications and Functionality
pve-manager

The pve-manager package consists of two parts:
Interface:
Modifications:

     Utils.js: Added the button for creating DRBD storage and defining 
its type (Datacenter -> storage -> add) as well as task messages.
     storage/DRBDEdit.js: Storage creation window with its attributes 
(linked resource, etc.)
     NOTE: The API URL for storage creation is not explicitly written. 
The DRBDInputPanel inherits from PVE.panel.StorageBase, which calls the 
API by sending the type (here drbd), redirecting the calls to the 
pve-storage package (see pve-storage functionality).
     dc/DRBD*.js: All windows for DRBD (management of files, resources, 
etc.)
     dc/Config.js: Added the windows in the dropdown menu.

API Calls:

Modifications:

     API2.pm: Added redirection to the API2/Drbd.pm file for 
api2/json/drbd API calls.
     API2/Drbd.pm: Redirects all DRBD requests to the appropriate Perl 
modules, along with some utility calls.

pve-storage

Modifications:

     Storage/DRBDPlugin.pm: New file adding support for DRBD storage.
     Storage.pm: Added DRBD storage type in the central management of 
storage types.

pve-docs

Modifications:

     pvedrbd.adoc: Added documentation related to DRBD, accessible from 
the Proxmox UI.

pve-drbd

Functionality:

     New package for specific DRBD management. The package contains all 
API calls and functions to manage resources, files, and utilities for 
DRBD integration.

Main Files:

     PVE/CLI/pve-drbd: CLI for DRBD management. Each command makes an 
API call, processes the response (e.g., formatting it), and writes it to 
standard output.
     PVE/DRBD/: Contains all necessary functions for task execution.
     PVE/API2/: Contains all methods for API calls.

On 8/19/24 08:37, Roland Kammerer via pve-devel wrote:
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

-- 
Samuel Janssens<sjanssens@evolix.fr>  - SysAdmin support Evolix
Evolix - Hébergement et Infogérance Open Source
Marseille (37 rue Guibal, Pôle Média, 13003) / Paris / Montréal
http://evolix.com  | Twitter: @Evolix @EvolixNOC |http://blog.evolix.com

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [pve-devel] DRBD integration but without LINSTOR
  2024-08-19 13:37     ` sjanssens via pve-devel
@ 2024-08-20  6:43       ` Roland Kammerer via pve-devel
  2024-08-27 12:45         ` sjanssens via pve-devel
  0 siblings, 1 reply; 6+ messages in thread
From: Roland Kammerer via pve-devel @ 2024-08-20  6:43 UTC (permalink / raw)
  To: pve-devel; +Cc: Roland Kammerer

[-- Attachment #1: Type: message/rfc822, Size: 7956 bytes --]

From: Roland Kammerer <roland.kammerer@linbit.com>
To: pve-devel@lists.proxmox.com
Subject: Re: [pve-devel] DRBD integration but without LINSTOR
Date: Tue, 20 Aug 2024 08:43:30 +0200
Message-ID: <ZsQ7Eh-HaegQ4xsg@arm64>

On Mon, Aug 19, 2024 at 03:37:43PM +0200, sjanssens via pve-devel wrote:
> I am about to complete my internship at Evolix, during which I worked on a
> project to integrate DRBD into Proxmox. This involved manipulating DRBD
> resources and using basic drbd-utils tools. I have now completed the project
> and uploaded it to Gitea. I am wondering if there is any interest in sharing
> this with the community.
> 
> Here are the repository links:
> 
>  * https://gitea.evolix.org/evolix/pve-drbd (new package)
>  * https://gitea.evolix.org/evolix/pve-manager/src/branch/evolix-drbd
>    (fork of pve-manager)
>  * https://gitea.evolix.org/evolix/pve-docs/src/branch/debian (fork of
>    pve-docs)
>  * https://gitea.evolix.org/evolix/pve-storage (fork of pve-storage)
> 
> I am still working on the repositories (particularly to implement
> gitbuildpackage).
> 
> I am including a part of the README below for you to review if you have
> time:

Hi Samuel,

I did read the mail and gave the code a quick look. This is certainly
impressive, but I still fail to answer myself the most basic question:
Why? What did you actually try to solve that has not already been
solved?

From what you wrote you know that LINSTOR exists. It works, yes, we have
literally LINSTOR clusters with hundreds of nodes and many thousand DRBD
resources. From what I see you re-invented for example some kind of
"cluster management" in SSH.pm where you ssh around nodes. Why would you
do that if you have a cluster aware SDS solution with a REST API?
Obviously you also had to re-invent writing DRBD res files. That is all
functionality that already exists. Let alone all the other features you
get out of LINSTOR/a full SDS for free, including multiple storage
technologies (all of zfs, lvm, thick and thin), LUKS encryption, storage
placement constraints, automatically converting diskless storage to
local storage, consistent(!) snapshots and so on.

So in summary I don't see the benefit of this compared to existing
software that has seen many man-years of development and that is already
used by a substantial customer and FLOSS user base, but I might overlook
something here.

Some other, general thoughts:

Having support for DRBD8 is nice, but we provide dkms packages for DRBD9
publicly and eventually DRBD9 will be upstream (fingers crossed...), so
I don't see a too convincing advantage here.

What certainly is nice is that you seem to have taken care to implement
a more complete GUI workflow (I did not look into that part). Adding a
"storage" ("definition") via the GUI is certainly missing on our end.
Given that it is only like 5 lines in storage.cfg we all lived with it
so far. When I last looked at it this part of PVE was not that plugin
friendly as the storage API. Everything in the direction of abstracting
that would be a benefit for the whole PVE/plugin ecosystem I think.

Best, rck


[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [pve-devel] DRBD integration but without LINSTOR
  2024-08-20  6:43       ` Roland Kammerer via pve-devel
@ 2024-08-27 12:45         ` sjanssens via pve-devel
  0 siblings, 0 replies; 6+ messages in thread
From: sjanssens via pve-devel @ 2024-08-27 12:45 UTC (permalink / raw)
  To: Roland Kammerer via pve-devel; +Cc: sjanssens

[-- Attachment #1: Type: message/rfc822, Size: 4356 bytes --]

From: sjanssens <sjanssens@evolix.fr>
To: Roland Kammerer via pve-devel <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] DRBD integration but without LINSTOR
Date: Tue, 27 Aug 2024 14:45:32 +0200
Message-ID: <1769ec0c-ea60-4c89-ade9-4ff76d4818ab@evolix.fr>

Hello,


Thank you very much for taking the time to review my code. My 
implementation doesn't address any specific real-world requirements 
(aside from the integration of DRBD8); it's merely a lightweight wrapper 
that allows for quick and easy manipulation of DRBD resources across the 
nodes of a cluster. I simply wanted to know if there would be any value 
in having such a simplistic DRBD wrapper compared to the one offered by 
LINSTOR. Thank you again for your time!

On 8/20/24 08:43, Roland Kammerer via pve-devel wrote:
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

-- 
Samuel Janssens <sjanssens@evolix.fr> - SysAdmin support Evolix
Evolix - Hébergement et Infogérance Open Source
Marseille (37 rue Guibal, Pôle Média, 13003) / Paris / Montréal
http://evolix.com | Twitter: @Evolix @EvolixNOC | http://blog.evolix.com



[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-08-27 12:45 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-08-16  9:17 [pve-devel] Post mail to the list sjanssens via pve-devel
2024-08-16 14:43 ` Dietmar Maurer
2024-08-19  6:37   ` [pve-devel] DRBD integration but without LINSTOR Roland Kammerer via pve-devel
2024-08-19 13:37     ` sjanssens via pve-devel
2024-08-20  6:43       ` Roland Kammerer via pve-devel
2024-08-27 12:45         ` sjanssens via pve-devel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal