How to share nix store among multiple aws instances?

Multi tool use
Multi tool use

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
0
down vote

favorite












I am using nixops and want to reduce disk space consumption by sharing nix store among instances.



Possible implementation:



  • share /nix/store store through elastic file system.

  • make cron job on random machine inside network that runs nix-collect-garbage -d. This will remove all packages that are not linked with first machine: actually stale packages and packages of other machines inside network. To restore them first machine triggers nixos-rebuild switch on other machines inside network.

Can this be done better/does this make sense?







share|improve this question


















  • 1




    Not sure if this works for NixOS, but I once shared the nix store via NFS: nixos.wiki/wiki/NFS#Nix_store_on_NFS You could probably put overlayfs on top of NFS to allow local modifications.
    – Mic92
    May 22 at 15:13











  • The nixos iso also shows how readonly and read-write layers can be overlayed: github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/…
    – Mic92
    May 22 at 15:17











  • Only having a single read-only /nix/store has it caveats as the nix store also store configuration files. Sharing the same elastic filesystem could work so, if your network storage implements posix file locking. nix-collect-garbage usually relies on seeing other processes using files - in a distributed settings it might delete files in use.
    – Mic92
    May 22 at 15:21















up vote
0
down vote

favorite












I am using nixops and want to reduce disk space consumption by sharing nix store among instances.



Possible implementation:



  • share /nix/store store through elastic file system.

  • make cron job on random machine inside network that runs nix-collect-garbage -d. This will remove all packages that are not linked with first machine: actually stale packages and packages of other machines inside network. To restore them first machine triggers nixos-rebuild switch on other machines inside network.

Can this be done better/does this make sense?







share|improve this question


















  • 1




    Not sure if this works for NixOS, but I once shared the nix store via NFS: nixos.wiki/wiki/NFS#Nix_store_on_NFS You could probably put overlayfs on top of NFS to allow local modifications.
    – Mic92
    May 22 at 15:13











  • The nixos iso also shows how readonly and read-write layers can be overlayed: github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/…
    – Mic92
    May 22 at 15:17











  • Only having a single read-only /nix/store has it caveats as the nix store also store configuration files. Sharing the same elastic filesystem could work so, if your network storage implements posix file locking. nix-collect-garbage usually relies on seeing other processes using files - in a distributed settings it might delete files in use.
    – Mic92
    May 22 at 15:21













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I am using nixops and want to reduce disk space consumption by sharing nix store among instances.



Possible implementation:



  • share /nix/store store through elastic file system.

  • make cron job on random machine inside network that runs nix-collect-garbage -d. This will remove all packages that are not linked with first machine: actually stale packages and packages of other machines inside network. To restore them first machine triggers nixos-rebuild switch on other machines inside network.

Can this be done better/does this make sense?







share|improve this question














I am using nixops and want to reduce disk space consumption by sharing nix store among instances.



Possible implementation:



  • share /nix/store store through elastic file system.

  • make cron job on random machine inside network that runs nix-collect-garbage -d. This will remove all packages that are not linked with first machine: actually stale packages and packages of other machines inside network. To restore them first machine triggers nixos-rebuild switch on other machines inside network.

Can this be done better/does this make sense?









share|improve this question













share|improve this question




share|improve this question








edited Jan 3 at 20:45









Jeff Schaller

31.8k848109




31.8k848109










asked Jan 3 at 20:23









srghma

1296




1296







  • 1




    Not sure if this works for NixOS, but I once shared the nix store via NFS: nixos.wiki/wiki/NFS#Nix_store_on_NFS You could probably put overlayfs on top of NFS to allow local modifications.
    – Mic92
    May 22 at 15:13











  • The nixos iso also shows how readonly and read-write layers can be overlayed: github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/…
    – Mic92
    May 22 at 15:17











  • Only having a single read-only /nix/store has it caveats as the nix store also store configuration files. Sharing the same elastic filesystem could work so, if your network storage implements posix file locking. nix-collect-garbage usually relies on seeing other processes using files - in a distributed settings it might delete files in use.
    – Mic92
    May 22 at 15:21













  • 1




    Not sure if this works for NixOS, but I once shared the nix store via NFS: nixos.wiki/wiki/NFS#Nix_store_on_NFS You could probably put overlayfs on top of NFS to allow local modifications.
    – Mic92
    May 22 at 15:13











  • The nixos iso also shows how readonly and read-write layers can be overlayed: github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/…
    – Mic92
    May 22 at 15:17











  • Only having a single read-only /nix/store has it caveats as the nix store also store configuration files. Sharing the same elastic filesystem could work so, if your network storage implements posix file locking. nix-collect-garbage usually relies on seeing other processes using files - in a distributed settings it might delete files in use.
    – Mic92
    May 22 at 15:21








1




1




Not sure if this works for NixOS, but I once shared the nix store via NFS: nixos.wiki/wiki/NFS#Nix_store_on_NFS You could probably put overlayfs on top of NFS to allow local modifications.
– Mic92
May 22 at 15:13





Not sure if this works for NixOS, but I once shared the nix store via NFS: nixos.wiki/wiki/NFS#Nix_store_on_NFS You could probably put overlayfs on top of NFS to allow local modifications.
– Mic92
May 22 at 15:13













The nixos iso also shows how readonly and read-write layers can be overlayed: github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/…
– Mic92
May 22 at 15:17





The nixos iso also shows how readonly and read-write layers can be overlayed: github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/…
– Mic92
May 22 at 15:17













Only having a single read-only /nix/store has it caveats as the nix store also store configuration files. Sharing the same elastic filesystem could work so, if your network storage implements posix file locking. nix-collect-garbage usually relies on seeing other processes using files - in a distributed settings it might delete files in use.
– Mic92
May 22 at 15:21





Only having a single read-only /nix/store has it caveats as the nix store also store configuration files. Sharing the same elastic filesystem could work so, if your network storage implements posix file locking. nix-collect-garbage usually relies on seeing other processes using files - in a distributed settings it might delete files in use.
– Mic92
May 22 at 15:21
















active

oldest

votes











Your Answer







StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: false,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);








 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f414625%2fhow-to-share-nix-store-among-multiple-aws-instances%23new-answer', 'question_page');

);

Post as a guest



































active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes










 

draft saved


draft discarded


























 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f414625%2fhow-to-share-nix-store-among-multiple-aws-instances%23new-answer', 'question_page');

);

Post as a guest













































































GH,EDD3XN,wzChI,QtUntboM4n Ygl,5xZXec8xv3 ZBzbU3BH3dJk
dQ55tl,C h,8SrnIlxG2vblbvCJOj7 4Poh,rwCSaz1rNjVE5pqnvj

Popular posts from this blog

How to check contact read email or not when send email to Individual?

How many registers does an x86_64 CPU actually have?

Displaying single band from multi-band raster using QGIS