Sharing a Gaming Library among multiple users


thenonsense

Recommended Posts

Hi everyone,

 

I'm a couple-year user of Unraid but I've never found my most favorable way to share games between users.  My usecase is:  Players 1 and 2 both have the same general batch of games they want to play, at the same time.  I used to eat the storage redundancy with separate drives holding the same content, to avoid issues for both players having access to the same files.  My question is:  is there a way to get both users to share the EXACT same gaming library, same files, reasonably?  Last I tried pointing both users' steam clients at the same game files (SATA SSD share running BTRFS), I didn't run into updating collisions, but when both users accessed the same files the performance tanked for each instance of the game.  I don't think accelerated storage is the answer, I think it might be file handles.  I could copy the files to different locations on the same disk/share, and take advantage of CoW, but I don't know if updates that trigger CoW will remove the redundant files when they reach convergence (after both file sets update).  I could also just swap up to NVMe, and see if increased r/w performance will help with this issue.  There are a few different directions I can go.  What does the public recommend?

Link to comment
  • 8 months later...

I figured out my own hacky solution.  Essentially I have a single drive (or in this case I just RAIDed 2 NVMEs for speed) and set them up with btrfs, single share, for both users.  I dragged my own shared games over, then cp --reflink'd everything for the other user.  For steam, it's best to get the original user's app manifest files, and delete the executables for other users so that steam can remake them from scratch for each user, apparently part of the DRM protections.  Bottom line every game file but mod, .exe, and app manifest files were reflinked.  Then every time I send through a game update on both libraries, I just rebuild the reflinks using jdupes --dedupe.  The last step was the hardest.  How to hit convergence after CoW drift?  judpes doesn't do a perfect job, it still compares large files even after they've already been reflinked, not sure if btrfs has a way to cleanly expose those for more efficient diffs.  However, that's the hackiest part of this job, so I'm happy with the result.  Glad to raise a dead thread.  Hope this helps someone else.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.