dlandon / unassigned.devices

Unassigned Devices plugin for unRAID
Other
81 stars 39 forks source link

Create a tmpfs mountpoint at /mnt/disks #39

Closed gfjardim closed 4 years ago

gfjardim commented 4 years ago

This creates a tmpfs mountpoint at /mnt/disks to make sure that a CIFS connection dropout doesn't fill all Unraid RAMFS. Please note that the tmpfs mountpoint will only be created if no disks are mounted yet, to be sure that all previously mounted disks maintain a valid mountpoint. Because ou that, a reboot may be required.

dlandon commented 4 years ago

What does this do? Capture all writes to the CIFS mount and dispose of them? Why does it need a reboot?

gfjardim commented 4 years ago

It's to prevent cases like these: https://forums.unraid.net/topic/80715-dynamix-unassigned-devices-ate-my-array/

If you remove a drive prior to proper unmount it, or shutdown a remote computer without unmounting it's CIFS mount, any writes you make could be committed the the Unraid ramfs, leading to various errors and a server lock.

In this case, when UD is installed, a tmpfs mountpoint is created on /mnt/disks with 1MB of free space, which is more than enough to proper mounting any drives but small enough to prevent ramfs become out of space.

If any UD disks are mounted while updating, it will skip the tmpfs mountpoint creation, but will sent a message to reboot the server; if no disks are mounted, the tmpfs mountpoint is created and no message are presented.

dlandon commented 4 years ago

I didn't know you could do a tmpfs mount on /mnt/disks/.

Thanks for your contribution.

gfjardim commented 4 years ago

Yep, that should prevent those connection timeout issues from filling up the rootfs.

You're quite welcome, my friend!