Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

beegfs: init at 6.17 #33157

Merged
merged 2 commits into from Dec 31, 2017
Merged

beegfs: init at 6.17 #33157

merged 2 commits into from Dec 31, 2017

Conversation

markuskowa
Copy link
Member

@markuskowa markuskowa commented Dec 29, 2017

Motivation for this change

BeeGFS (former FhFS) is a distributed file system commonly used in high performance computing environments. This PR also integrates the package with NixOS.
Contents:

  • package
  • kernel module
  • NixOS module
  • NixOS test

Thanks to @ck3d for comments.

Things done
  • [] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Fits CONTRIBUTING.md.

Copy link
Contributor

@orivej orivej left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well done!

Thanks to @ck3d for comments.

Could you link to the discussion if it was public?

services.beegfs = mkOption {
default = {};
description = ''
BeeGFS configurations. Every mount point requires a seperate configuration.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"separate"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed


makeWrapper ${pkgs.beegfs}/bin/beegfs-check-servers \
$out/bin/beegfs-check-servers-${name} \
--add-flags -c --add-flags "${configClientFilename name}" \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

--add-flags "-c ${configClientFilename name}" is also supported.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

name = "beegfs";

nodes = {
#admon = admon;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is admon commented out?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed it for now. admon is not essential but only for monitoring purposes. At the moment I could only test if the service starts successfully.

connAuthFile="beegfs/auth-def.key";

client = { config, pkgs, lib, ... } : {
networking.firewall.enable = false;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BeeGFS module should probably configure firewall, rather than requiring users to configure or disable it. (If this is difficult to implement, it may be left for the future.)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is possible but I'd rather leave that for the future, since there are a least two ways to configure the ports. Either manually via extraConfig for each daemon or shifting the standard ports (connPortShift). Is there a good example module for a case like that?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We would not extract port options from extraConfig, so we would configure firewall only based on the connPortShift (and possibly other port-specific options), but that firewall configuration may be left for the user to override in configuration. I have not found examples of this in Nixpkgs.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was respected with openFirewall boolean option in various services.

@markuskowa
Copy link
Member Author

Thanks for the feedback. Here are @ck3d's comments: ck3d@db5704e

@orivej orivej force-pushed the beegfs-pr branch 2 times, most recently from 820ebbd to 708e887 Compare December 31, 2017 06:37
@orivej
Copy link
Contributor

orivej commented Dec 31, 2017

Thank you!

markuskowa and others added 2 commits December 31, 2017 07:07
package, kernel module, nixos module, and nixos test
BeeGFS 6.17 fails to build with Linux 4.14.
@orivej orivej merged commit d3962b5 into NixOS:master Dec 31, 2017
@markuskowa markuskowa deleted the beegfs-pr branch January 26, 2018 01:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants