Windows 10 - Steam not running games from shares


heilage

Recommended Posts

Hey there. New unRAID here, so far I've been pretty satisfied wth it all.

 

However, I've been trying to get the gaming portion up and running, and I'm having some troubles with Steam. According to a video posted here (from YouTube), one should set up a share (cache only) for games in Steam, but so far I've had little success making this work.

 

Games install just fine, I can add the share as a library folder in Steam, but whenever I try to actually start a game, the "first time run" process starts and immidiately quits on Step 1, and nothing else happens. No error message or anything of the sort.

 

To eliminate drivers or Windows setup, I made a new vdisk and mounted it with my VM, installed Just Cause 3 on it (one of the games that didn't run), and now it runs pretty much like normal.

 

Has anyone experieced something like this?

Link to comment

Hey there. New unRAID here, so far I've been pretty satisfied wth it all.

 

However, I've been trying to get the gaming portion up and running, and I'm having some troubles with Steam. According to a video posted here (from YouTube), one should set up a share (cache only) for games in Steam, but so far I've had little success making this work.

 

Games install just fine, I can add the share as a library folder in Steam, but whenever I try to actually start a game, the "first time run" process starts and immidiately quits on Step 1, and nothing else happens. No error message or anything of the sort.

 

To eliminate drivers or Windows setup, I made a new vdisk and mounted it with my VM, installed Just Cause 3 on it (one of the games that didn't run), and now it runs pretty much like normal.

 

Has anyone experieced something like this?

Did you map the network drive in Windows?  The ability to play games off SMB does work, but I too have seen some glitching on Windows 10 with this. A reboot of the VM usually resolves it.

Link to comment

Yes, they are mapped (otherwise, how would I install them?) and should attach on login. It fails across boot sessions as well, so rebooting has yet to make a difference.

 

Are there any logs in Steam one could check out? I'm going to look into how the process actually fails, if I can.

Link to comment

My windows 10 seems to be a little strange on network users as well.

One thing i did which helped a lot was to create a user within unraid with the same credentials as the windows machine (same username and password)

 

Map the drive and reconnect on login. Windows has had an issue for ever where it will just forget or modify the credentials remembered slightly so it wont work.

Doing the above means windows will use the normal user details to access the share so it wont ever have that issue.

 

Doing this i have had no issued with my network shares for over 3 weeks now (since doing the above)

Give it a try and see how it works. It might be worth me noting that i added a password to my windows login just because of this. Its an extra step on login but will remove the issues which is a trade-off i'm happy with.

 

Regards,

Jamie

Link to comment

That's a great tip, this isn't the first time Windows has been difficult with SMB shares on my network.

 

I tried it now, and when I tried to launch the newly installed AC: Unity on that share, the "verify file integrity" function failed with 20GB missing, and Steam failed in almost the exact same way, so I suspect that something with the mounting of the SMB share is a bit off. In my current logon session, it automatically mounted the share after giving it the same access as my username/pw in Windows 10.

 

So now I just have to wait an hour for the broken 20GB to download...

 

Will return with new reports later. :P

Link to comment

Let me know how it goes.

I currently have my steam library passed to my VM's as a disk image but if this works i will be moving it to my storage array.

 

I'm unsure how this works with larger games such as AC: Syndicate but 100MB/s internal speeds should be plenty (I have no been able to beat 100MB/s to a share even from a vm on the same machine)

Link to comment

No go, but I believe I have found what is causing the problem.

 

I checked out the Steam logs, and found several instances of: ERROR: /installscript failed on: <location>\runasadmin.vdf

 

I tried running Steam as an Aministrator, but then Steam cannot see the mounted share, thus the game does not exist.

 

The video about Steam libraries had no mention of any issues like this... This is causing me to be forced to install everything on a vdisk, which sucks and probaby hurts performance. 

Link to comment

I managed to move my steam install to a new steam library folder and was able to play AC: syndicate. Load times were horrific using a network bridge and I found lots of stuttering.

 

If you've seen linus's new video on vessel, he shows an issue with 4k reads which may effect load times etc.

 

I'm going to try and change the vm in question to use the lib virt network bridge and see if that improves performance.

 

I actually moved the entire steam folder to my share to get it working.

 

Regards,

Jamie

Link to comment

Interestingly, it worked fine if I moved it to the vdisk and then tried to run it. I'm going to try moving it back to the share and see if it still runs. I suspect it will, but perhaps with issues.

 

I saw that Linus video earlier today, and he seemed to go with running games from vdisks, and I'm partial to agreeing. This is causing a lot of hassle that's not necessarily warranted, they are just games and I store nothing important on my Windows VM anyway (all my code is accessed through the Linux VM, and is stored on parity-proteced shares and synced with my offsite VPS). I'm thinking of just adding a big 500GB SSD and add it to the cache pool, and put a big vdisk on it to store my games.

 

Also, I noticed when copying the game, that the file transfer speeds dropped way down to 20MB/s on certain files. The 4K read issue could be playing a role there, but I'm not sure how the vdisks and unRAID file system structures its partitioned sectors.

Link to comment

My transfer speeds for the steam games was just as bad. My drives have a parity so the write is pretty slow anyway. I get around 50MB/s copying videos, 115MB/s with no parity.

 

The only issue I have with the vdisk for the vm is that my steam library is over 2TB's and I have to keep expanding the vdisk as I install extra games

 

Regards,

Jamie

Link to comment

We really are very close to the 6.2 public beta. Final touches are being worked on now.

 

FYI, I'm using a mapped network drive in Windows 10 right now (even on 6.1.X) with no issues for my Steam library. Sounds like something silly must be set wrong somewhere for these issues to continue.

Link to comment

Hi Jonp,

 

I had a feeling you may be close by the beta number in linus's video.

Can you think of a reason for the slow loading time when loading games via the mapped drive? I know that unraid is supposed to keep all data internal so it should act the same or better then a vm image if i'm correct?

 

Regards,

Jamie

Link to comment

I had some initial troubles with getting the SMB shares to stick in Windows 10. After scouring a few Windows forums, I found that switching to a non Microsoft account solved most of those problems.

 

However, I too have been running into issues with playing games in Steam off of a mapped network share on my Windows 10 VM. I run into a similar problem, where the first part of certain games will load, but then when you try to launch them further, they crash.

 

Haven't figured out how to get around that. I'll see if setting up a SMB user with the same credentials makes any difference and post back.

Link to comment

Switching to a local account is definitely the way forward. I honestly don't see why they put the Microsoft accounts in. Its just makes things harder for no reason.

 

At one point, if using a Microsoft account I was unable to see any computers on the network at all. Switching to a normal account resolved that.

 

I wasn't able to get the games to crash when running over a network share, I just found very long load times and playing the game where it loads assets as you move would cause issues as the assets would not load quick enough.

Link to comment

I haven't had time to look into this, unfortunately.

 

Some notes:

- I only use local accounts

- Currently, unRAID shares are invisible to my Windows VM. Should they not be browseable? They must manually be added by using hostname or IP

- I know that any application running as administrator (or requiring UAC, like running first time setup) does not see my mounted share. Why? Is it only mounted on user level?

- It does appear that running a game off a network share, except in jonp's case, even on SSD, has a high performance penalty? So far vdisks seem to be the best way to do this, which is less than optimal as a practical solution I guess.

 

I attached the XML for my VM, maybe someone can spot something. Have I perhaps set up the network in a bad way? In the meantime I'll keep tinkering, and I'm going to try to bench the cache-only share to see what kind of reads and writes I'm getting.

<domain type='kvm' id='11' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Prometheus</name>
  <uuid>32e936ec-5987-9089-029f-574bd8c1cbb2</uuid>
  <description>Spillmaskina</description>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>12582912</memory>
  <currentMemory unit='KiB'>12582912</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='3'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='4' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/cache/VMer/Prometheus/vdisk1.img'/>
      <backingStore/>
      <target dev='hda' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/cache/VMer/Prometheus/vdisk2.img'/>
      <backingStore/>
      <target dev='hdb' bus='virtio'/>
      <alias name='virtio-disk1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <controller type='usb' index='0'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:4d:8f:4b'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/Prometheus.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc52b'/>
        <address bus='1' device='6'/>
      </source>
      <alias name='hostdev0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc318'/>
        <address bus='1' device='5'/>
      </source>
      <alias name='hostdev1'/>
    </hostdev>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=00:1b.0,bus=root.1,addr=01.0'/>
  </qemu:commandline>
</domain>

 

EDIT: Holy crap, I benched the C: drive (vdisk1) with AS SSD, and got 0,5MB/s 4K Write. What the hell? This can't be normal? A lot in this setup seems to be off.

 

EDIT2: I messed around a bit more and painted myself into a corner. It turns out, you can do a soft link in the main steam folder to the SMB share, which appears to work well and Steam assumes all games are locally. The backside of this however, is that the space calculations are done on the C drive, which means that if your free space is less than the size of the game, it will not install, even though you're not actually installing it to C. Not sure how to get around this, but I might just create a new VM and reinstall...

Link to comment

Hmm the soft link seems interesting.

 

Following your notes:

- I am only using local accounts

- Its rare any machine on my network see's unraid at all without forcing the paths by IP or name (I believe this is an issue with SMB as windows is using an older version i believe)

- Mapped network drives are run using a login. This is stored by the user account logged in. Admin tasks run under a different user level so have no access to the users details. So it will ask each time, this is normal

- I can get the game to run just with large lag. This may be due to calls to small files such as textures but i have no way to test this?

 

How did you bench your drive? My vm image is running off an NVMe drive so i would be interested to see what i get

My steam when run from the network share has full knowledge of the entire share, can install to it, and run applications from it. This all works fine for me, i only have issues with the lag which i think may be an issue with 4k reads and writes

 

Regards,

Jamie

 

 

Edit:

 

So i just ran some crystal disk mark runs and here are the results

new.jpg

 

As some further info to my system

HDD Array: 3 x 4TB WD Red's (1 as Parity)

SSD Array: Empty

NVMe: Mounted manually via command line

 

My NVMe image is mounted as cache="none" where as my other image is mounted with the default writeback.

The read and writes on the storage drive image doesn't seem right at all (middle test), the last tests seem more accurate.

 

Keep in mind that the second and last tests are running on the exact same drives. One is a vm image and 1 is network access.

 

The results seem good on the network access so i'm unsure why i get such bad lag

Link to comment

Did you bench your ssd with crystal disk mark like I did?

 

The NVMe drive is not supported by unraid so I have to mount it manually. It appears like any normal share on the system and has 2 vms running off it.

 

It just stores 2 vm disks similar to the way your cache drive does

 

Regards,

Jamie

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.