I’m trying to decide the best way to share my media drives on my Proxmox server (currently have Samaba set up with a password share) over my LAN only. Plex has its own path through firewall so I’m not concerned about sharing in any other way.
1.) Is samba the best protocal to share as I have a mixed network of machines between Linux flavors and Windows (I do have slow transfers from Linux distros to the server from time to time that are only 1/6th the full speed of the network)?
2.) Is it safe for me to add mac addresses or IP`s to a safe client list to limit access to only my machines and remove password requirements?
3.) If I create a separate vlan could that be isolated from access to the internet and that’s where I could freely share the drives?
While most of the data is harmless, some is very important and sensitive data. I would just like some input on a direction to go that makes sense and is the best way to organize these shares.
Generally yes. If you’re not getting the performance you want, probably the samba configuration options chosen are wrong for what you need, or your hardware is not powerful enough to run samba with options you’ve chosen.
Samba runs on proxmox or in a VM?
What kind of hardware are you using?
Any device on your ethernet or wifi network can choose to use any mac address or ip address. So, generally, no.
Any device on any lan or VLAN you create will be isolated from the internet or from other devices by your router(s), and by any other device you connect then too. In general, it’s enough to drop traffic to tcp ports that samba uses via a firewall to prevent access to it. You might not be able to filter traffic like that over a dumb switch or a low end L2/L3 managed switch - having VLANs can allow you to force traffic through a firewall on your router that can do that kid of filtering.
This is my setup here on this website for the home server hardware. The one I am having trouble with speed of uploads only is my Asrock x300 desktop mini with a Ryzen 5 pro 4650G. With windows it uploads at full speed roughly 65 MBs, but in Linux on the same machine with dual boot it only uploads at roughly 16MBs. I can download with either OS from server at 100 to 110Mbs.
Samba is running directly on proxmox. I used a guide from here to set it up. I think I quoted it in my build log.
Smells like Samba settings, possibly something around aio, protocol versions, and caching/write buffering. I think either configuration is wrong somehow or proxmox ships with a samba server with such default options compiled in that end up choking the performance.
Samba usually ships with a utility called testparm, which can read the config and dump it as smbd would be interpreting it, including all the parameters that smb.conf doesn’t set and that would be baked in defaults.
Could you run testparm -v /etc/samba/smb.conf … and share it here - making sure to sanitize the path/share/usernames if they’re personally identifiable, and use the details bbcode tags or one of the pastebins to share it in a forum friendly way.
That way we can all compare the config with the manual together.
Enlarge to at least 4K, shouldn’t matter but you never know.
Make this SMB3 or SMB2(15 years old).
Enable, it doesn’t hurt.
You could test with no just for fun.
It’s possible that tcp buffers might need tuning to allow the kernel to buffer more data in the tcp socket for samba, between samba waking up and reading it, if you haven’t already make tcp.rmem_max to at least 1MiB - on a gigabit network this gives 10ms worth of time for samba to do other things while network data trickles in.
Iperf3 doesn’t have as much to do - it might be fine with smaller buffers whereas samba might need more
Check iostat -x or atop , they’ll report the per operation delay and throughput of your disks. You should see numbers that indicate parallelism, e.g. some idle time, 1-2ms per write, 1000+ writes per second
aio write behind =
block size = 4096
server min protocol = SMB3
use sendfile = True
strict sync = No
strict allocate = Yes
read raw = Yes
write raw = Yes
server signing = No
strict locking = No
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072
#min receivefile size = 16384
#aio read size = 16384
#aio write size = 16384
Here is what I have been playing with for settings. When I enable the line for “min received file size” my uplaod speed from Ubuntu to the Proxmox server cuts in half to 6 MiB/s from 16 MiB’s. I am getting good reads on my disk array (RAID 10) 7200RPM drives, and I/O delay is almost 0 to 1.2 the whole transfer. Its not a huge issue, but I’d like to find out why. Is there a possibility I need to change something with the client system (Ubuntu), because windows is working fine?