Solutions
-
bmartino1's post in Consolidate open files onto a single disk script? was marked as the answerok. lets review:
Plan
Identify Symlinks: Traverse the source directory (/mnt/scratch/reseeds/) to find symlinks pointing to actual files.
Resolve Real Paths: Get the actual file paths of the symlink targets.
Move Files to the Target Disk: Check the destination disk (/mnt/disk1) for sufficient space and move the files.
Preserve Folder Structure: Maintain the original directory structure under /mnt/disk1/movies/.
Here's a script to achieve this:
#!/bin/bash # Variables SOURCE_DIR="/mnt/scratch/reseeds" DESTINATION_DISK="/mnt/disk1/movies" THRESHOLD_MB=5000 # Minimum free space in MB to ensure on the destination disk # Check available space on destination disk available_space=$(df --output=avail -m "$DESTINATION_DISK" | tail -n 1) if [ "$available_space" -lt "$THRESHOLD_MB" ]; then echo "Insufficient space on $DESTINATION_DISK. Available: ${available_space}MB. Required: ${THRESHOLD_MB}MB." exit 1 fi # Traverse the source directory and process symlinks find "$SOURCE_DIR" -type l | while read -r symlink; do # Resolve the real path of the symlink real_path=$(readlink -f "$symlink") # Check if the file exists if [ ! -f "$real_path" ]; then echo "Skipping: Target file for symlink $symlink not found." continue fi # Construct the destination path relative_path=$(realpath --relative-to="/mnt/user/movies" "$real_path") dest_path="$DESTINATION_DISK/$relative_path" # Create the destination folder if it doesn't exist dest_dir=$(dirname "$dest_path") mkdir -p "$dest_dir" # Move the file echo "Moving $real_path to $dest_path" mv "$real_path" "$dest_path" || { echo "Failed to move $real_path"; continue; } # Remove the symlink rm "$symlink" || echo "Failed to remove symlink $symlink" done echo "All files processed."
How It Works
Check Disk Space: Ensures the destination disk has at least THRESHOLD_MB free space.
Find Symlinks: Uses find to locate all symlinks in the source directory.
Resolve Paths: Resolves the actual file path for each symlink using readlink -f.
Move Files: Moves files to the destination disk, preserving their relative path under /mnt/user/movies/.
Remove Symlinks: Deletes the original symlink after moving the file.
...
user secript plugin. run in backgorund it will take some time to complete.
#######
Customizations
Disk Selection: Change DESTINATION_DISK to the disk you want to consolidate to.
Free Space Threshold: Adjust THRESHOLD_MB based on your safety margin.
Logging: Redirect output to a log file for tracking
example:
./move_symlinks.sh >> /path/to/logfile.log 2>&1
Warnings:
Testing: Test the script on a small subset of symlinks before running it on the entire directory.
Unraid Disk Behavior: Avoid writing directly to /mnt/user in this operation, as it could invoke the FUSE layer. Use /mnt/disk1 for direct disk operations.
Duplicate Data: The script moves the files rather than copying them, avoiding duplication.
-
bmartino1's post in zfs compression using zstd-5 - is this possible? How to set? was marked as the answerat this step I think this is when you run the terminal commands for
zfs set compression=zstd-5 mypool
zfs set compression=zstd-5 mypool/dataset
I honestly don't remember as I went though this with chatgpt/AI and others in the past.
that may be better asked here.
if running betat 7 rc2 i do know that pool needs to be upgraded.
zpool status
zpool upgrade mypool
-
bmartino1's post in trying to upgrade from 6.12.11 to 6.12.14 get unRAIDServer.plg download failure: Network failure was marked as the answerwhat are your network settings dns settings?
set to public dns server:
1st one should be your gateway/router.
1.1.1.1 is cloud flare
8.8.8.8 is google
208.67.222.222 is cisco open dns
try setting these for your dns server and try again.
-
bmartino1's post in unraid 7 RC.1 system keeps adding and deleting ipv6 addresses was marked as the answerPosted some general troubleshooting in the bug report. may or may not fix the issue. I didn't use Nginx proxy server. The known issues more if you used it or a plugin before the upgrade.
Other troubleshooting in this.
Check Active Processes:
ps aux | grep dhcpcd *What is using dhcpd and why...
Please post a diag file. this may help in the bug report or other troubleshooting.
?docker network related?
Double check dhcpd on the interfaces:
ip -6 addr show br0 ip -6 route
Disable IPv6 (if not needed)
sysctl -w net.ipv6.conf.all.disable_ipv6=1 sysctl -w net.ipv6.conf.default.disable_ipv6=1 *Web UI ipv4 only...
even for a test. This may be a ipv6 issue...
-
bmartino1's post in Unraid crashes without any logs was marked as the answersetup a syslog server..
Generic trouble shooting:
The issue of Unraid crashing without logs can be challenging to troubleshoot, especially if no obvious errors appear. Based on the problem and the provided logs, here's a step-by-step approach to diagnose and resolve the issue:
1. Check for Hardware Issues
Since your server is still responsive to pings and accessible via iKVM, the crash might be related to Unraid's OS or services rather than a complete hardware failure.
RAM Test:
Run a Memtest (available in the Unraid boot menu) to check for memory errors.
Storage Check:
Verify the USB flash drive containing Unraid is healthy.
Use a different USB port (preferably USB 2.0) to rule out port-specific issues.
Cooling and Power:
Monitor CPU and motherboard temperatures in Dashboard > System Stats before the crash.
Check PSU health and ensure it provides stable power to all components.
2. Subdomain and Network Configuration
The 502 Bad Gateway error and inability to access the server via its internal IP might indicate an issue with Nginx Proxy Manager or the Unraid network configuration.
Nginx Logs:
Check the Nginx Proxy Manager logs for errors. These are usually in /mnt/user/appdata/nginx-proxy-manager/log/.
Direct Access Test:
Access the server's IP directly without using Nginx Proxy Manager to verify Unraid's WebUI availability.
Static IP Configuration:
Ensure Unraid has a static IP address or proper DHCP reservation in your router.
Check Settings > Network Settings for any misconfigurations.
*could be a iproute netowrk issue / docker host replacing ports issue...
3. Crash Diagnosis
If there are no entries in the system logs before the crash, try enabling persistent logs and use an external logging mechanism.
Persistent Logs:
Go to Settings > Syslog Server.
Enable the syslog server to write logs to an external machine or file share.
Kernel Panic Capture:
If Unraid crashes silently, it might be experiencing a kernel panic.
Connect to the server via iKVM or a monitor and enable VGA Console in Unraid.
Monitor the screen for kernel panic messages during the crash.
4. Docker and Plugin-Related Issues
Certain Docker containers or plugins might be causing instability.
Disable Containers and Plugins:
Temporarily disable all Docker containers and plugins.
Gradually re-enable them one by one to isolate the culprit.
Update Containers:
Ensure all Docker containers are updated to their latest versions.
Review logs for containers like Nginx Proxy Manager or other high-resource usage containers.
*Boot unraid in safe mode (no plugins...)
5. Advanced Debugging
If the above steps don’t resolve the issue, here are additional diagnostics to try:
Safe Mode:
Boot Unraid in Safe Mode (no plugins or Docker containers).
Run the server to see if the crash still occurs.
BIOS Update:
Check your motherboard manufacturer’s site for BIOS updates and apply them if necessary.
Network Isolation:
If the crash seems network-related, disconnect the server from the internet and monitor for stability.
Analyze Existing Logs
Let me analyze the uploaded log (syslog-127.0.0.1_unraid.log) to spot potential issues or patterns. One moment!
The log indicates an issue with a Docker network (br0) already existing, which might be causing conflicts in your setup. Here's how to resolve this:
(Better if you bots diag file...)
Fix Docker Network Conflict
Stop the Docker Service:
Navigate to Settings > Docker and stop the Docker service.
Reset the Docker Network:
SSH into your Unraid server or use the console.
docker network prune
This will remove unused Docker networks, including conflicting ones.
Reconfigure Docker:
Check the Docker network settings in Settings > Docker.
Ensure Host access to custom networks is enabled if you use bridge networks with Nginx Proxy Manager.
Start the Docker Service:
Restart the Docker service in the Unraid settings.
Additional Steps
If the crash persists, try running the server in Safe Mode or disabling Docker entirely to isolate whether this conflict is related to the crashes.
-
bmartino1's post in MS Windows Server 2025 and runaway System Interrupts was marked as the answerWindows os requires a min of 4 cores. Windows server os would need more then 4.
Like any hyperv, as windows server is that first... it wants access to bare-metal.
I would recommend editing the VM and remove cpu pinning and let unraid load balance the multiple VM with all cores.
you still need to set a # of V CPU and cores for the cpu mode and topology...
Here is a linux example of the custom xml code to edit. Note CPU tune is deleted. VCPU is set so x virtual cpu to the server and cpu host mode with correct topology for # of threads is set.
In proxmox I would have see iommu and other vm settings. Unraid Hyperv on kvm/qemu is getting some nice features and updates.
I might even recommended in this case to virtualize unraid and use proxmox as your VM hyperV to help with Windows server VM stuff..
-
bmartino1's post in Pre purchase questions was marked as the answerNever herd of drivebender...
https://www.division-m.com/drivebender/
Form what I can tell they are still maintaining...
As your windows your format is most likely ntfs... unraid will not be able to maintain your data when bring in the drives as they need linux formatted for use. the Unassigned disk plugin will read ntfs to copy data off and into a array/pool disk setup...
Depends on how you setup your disk and pool device. Unraid is Linux you will need to convert the disk you have to a Linux file system.
xfs for disk #, btrfs for pool device. Unraid recent started support for zfs. I recommend using zfs disk in a raid 5 like array.
see in unraid docs:
https://docs.unraid.net/unraid-os/manual/storage-management/
With Beta 7 hitting release candidate. I would recommend ditching the array and going ZFS:
the inner working of drivebender are similar to how unraids party works. this can be accomplished with user scripts and rsync commands. Usually in a raid setup all content on the disk drive are synced to each disk in a mirror type array. to increase speed we stripe the data putting part of the file on one disk and another part on the other disk. To get both we look at raid 4,5,6. I prefer a raid 5 type instance to have "parity" meaning the data is read form 2 disk and stored on 1 in a 3 disk setup this way if a drive failure I have "redundancy" and maintain my data and uptime to bring down the server and replace a disk. https://en.wikipedia.org/wiki/Standard_RAID_levels
unraid was revolutionary as it uses mdadm and software Linux raid like mechanics across a weird arrangement of disk sizes. Usually with raid all disk need to be the same capacity.
While possible, I'm not aware of a multi array disk setup where you can choose x directly to be across disk. This would be a cron job at x time to copy the contents of xyz folder on one disk to the other.
I would highly recommend a zfs raidz1 setup min of 3 disk same capacity lose 1 keep all data on the disk.
Reveiw:
In terms of online backup services that dependent on docker servers. There are quite a few in the forum that have used dockers and user script to sync data to a proton webdav drive system or box/Google Drive. that would be a separate forum post. Most likely the rclone plugin.
-
bmartino1's post in All existing data on this device will be OVERWRITTEN when array is Started was marked as the answerCorrect as parity will need to resync on that drive device. parity is not synced to that device.
-
bmartino1's post in Setting LACP flags in unraid was marked as the answerI think this is a plugin edit.
tips and tricks. otherwise this is webui bond options....
manula:
*Make a backup to easliy recover form:
cp /boot/config/network.cfg /boot/config/network.cfg.backup
edit the config:
nano /boot/config/network.cfg
Modify or add the relevant settings for bond0. Here’s an example configuration that sets the bonding mode to 4 (802.3ad or LACP) and includes options for LACP rate fast and other relevant flags:
BONDING="yes" BONDING_MODE="802.3ad" BONDING_MIIMON="100" BONDING_LACP_RATE="fast" BONDING_SLAVES="eth0 eth1" ^ - Example...
Here, BONDING_MODE="802.3ad" specifies LACP, BONDING_LACP_RATE="fast" sets the LACP rate to fast (useful for fast failover), and BONDING_MIIMON="100" sets the MII link monitoring frequency in milliseconds, which determines how often the link status is checked.
Reboot/restart the network interface.
/etc/rc.d/rc.network restart
verify:
cat /proc/net/bonding/bond0
-
bmartino1's post in Unraid will not boot was marked as the answer? to use g cards sometimes a driver is needed and 3rd party applications installed for its use. installed from the Community app store in the web ui on latest stable OS.
Due to teh G-cards age, for nvidia you may need to install the older driver:
select v470 update and downlaod and then reboot unraid.
-
bmartino1's post in What is the purpose of adding a port when a Docker container is using the host network? was marked as the answerSome internal docker variables may require a port specified to use for the docker container services.
when running a docker in host mode. It replaces unraids ports. example sftp this is a ssh program that run on port 22
If i chose to use unraids host network the ip address will be the same ip address as unraid and replace and overshadow the host port
If i Chose Bridge. (Same as host...) the ip address will be the same ip address as unraid and replace and overshadow the host port (But not fully replace/override unraids ports)
If i go custom network, all ports are open on the ip you set to the docker.
Review:
https://docs.docker.com/engine/network/
https://docs.docker.com/get-started/docker-concepts/running-containers/publishing-ports/
-
bmartino1's post in Disk Issues was marked as the answerthis soulds like the hba. Check cabling in secure. HBA usual require 8 lanes make sure it is plugined into the coercet PCI slot ont eh board.
also some HBA are cord order specific meaning slot 0 port 1 -4 and slot 1 port 1-4 need to be plugged in order
this means slot 0 p1 needs pluged in and all of slot 0 connected before slot 1 port 1 is used...
Example: if you have 4 disk and you plug slot 0 port 1 and 2, then slot 1 port 1 and 2 you may encounter issues on some HBA...
-
bmartino1's post in Preclear Larger Drive was marked as the answerTo preclear a new larger drive using the dd command, the process is straightforward, but note that using the Preclear plugin or the Unraid GUI tools is usually safer and more efficient for this purpose. If you still prefer using dd, here's how:
Preclear a Drive with dd
Identify the Drive:
Use the command lsblk or fdisk -l to identify the drive you want to preclear (e.g., /dev/sdX).
Double-check to ensure you're targeting the correct drive, as dd will overwrite all data.
Run the dd Command:
To write zeroes across the entire drive:
dd if=/dev/zero of=/dev/sdX bs=1M status=progress Replace /dev/sdX with the correct drive identifier.
Verify the Drive is Cleared:
Once the process completes, you can check the drive with
hexdump -C /dev/sdX | head This should show zeroes if the drive was cleared.
Notes About Preclearing
Why Preclear?:
Preclearing ensures the drive has no issues (bad sectors) before adding it to the array.
It avoids downtime by preparing the drive before it is added to the array.
Parity Swap Process:
Unraid will allow larger drives as parity drives. The preclear step is separate and doesn't depend on the current array size.
You can preclear the drive while it's unassigned, and once completed, perform the parity swap.
Use Preclear Plugin:
The Preclear plugin automates this process and logs detailed results, making it a safer option.
https://docs.unraid.net/unraid-os/manual/storage-management/
-
bmartino1's post in Is there a 'hibernate' option on shutdown for Unraid? was marked as the answeri don't think so. I think there a dynmax plugin for sleep though.
Unraid, as it stands, does not natively support a true "hibernate" option like in Windows. Hibernate in Linux is essentially the process of suspending to disk, where the system's state (RAM contents) is written to a swap partition/file and then restored upon boot. Unraid's underlying Slackware base does not include native support for this functionality out of the box, and implementing it would come with challenges.
Why Hibernate Isn't Common on Unraid
No Swap Partition: Unraid is designed to run entirely from RAM after boot, and the default configuration lacks a swap partition or file, which is essential for hibernation.
Array Management Complexity: Managing the state of the array during hibernation would require additional safeguards to ensure parity integrity.
Use Case Misalignment: Unraid is typically intended for 24/7 operation, and features like hibernation aren't a priority for most users.
Alternatives and Workarounds
1. Wake-on-LAN on Isolated Subnets
The root issue is that your IoT devices can't send WOL packets across subnets.
Solutions:
Use a router/firewall that supports forwarding WOL packets across subnets (e.g., pfSense or Ubiquiti devices).
Configure a relay or intermediate device (on the same subnet as Unraid) to send the WOL packet. For example, a Raspberry Pi or a small VM can act as the WOL relay.
2. Fast Startup Without Sleep or Hibernate
Use an SSD for the Unraid boot drive (or a faster USB stick) to minimize boot time.
Ensure BIOS is configured for fast POST.
3. Home Automation Tweaks
Use a network-connected smart plug with automation rules to turn on the server after shutdown. Some devices can integrate with Alexa or other home assistants to schedule power-on events.
Use a Nut/SNMP setup to manage power states intelligently.
4. Suspend-to-RAM (S3) Alternatives
While hibernation isn’t supported, Suspend-to-RAM (S3 sleep) might still be an option if you can find a way to wake Unraid:
Keep a device on the same subnet as Unraid to send WOL packets.
Use an intermediate device to bridge the subnets (e.g., a small firewall rule or a static route).
The Bottom Line
While Unraid lacks native hibernation, the core problem seems to be around network configuration rather than Unraid's limitations. Addressing the WOL packet issue across subnets is likely the most practical solution. Alternatively, simplifying the boot process can make shutdown and startup less disruptive.
-
bmartino1's post in Duplicacy Backup to Google Drive Through VPN? was marked as the answerRunning a backup container like Duplicacy through a VPN for remote backups to Google Drive can be beneficial, but it’s not strictly necessary in all cases. Let’s break it down:
Why Use a VPN?
Enhanced Privacy: A VPN encrypts the traffic between your server and the Google Drive endpoint, preventing ISPs or other intermediaries from seeing your data (even though the backup is already encrypted).
Avoiding ISP Throttling: Some ISPs throttle traffic to cloud services. Using a VPN can help bypass such throttling.
Bypassing Geo-Restrictions: If Google Drive has any restrictions in your location, a VPN could help you access it seamlessly.
Considerations for VPN Usage
Backup Data Encryption: Since Duplicacy already encrypts the backup, the data is safe during transit. This reduces the necessity for a VPN unless you have specific privacy concerns.
Speed Impacts: A VPN can slow down your upload speeds, especially for large backups. This could lengthen the backup process significantly.
Google Drive's Trust Level: If you trust Google Drive’s encryption and infrastructure, and your Duplicacy encryption is strong, a VPN might be overkill.
Using VPN with Hotio’s Container
Hotio’s Duplicacy container does support VPN integration. Since you already have a PIA (Private Internet Access) subscription, you can configure it within the container.
Check the container documentation for instructions to enable and test VPN support. Ensure that the VPN is working correctly before initiating the backup.
*Docker compose plugin:
https://hotio.dev/containers/duplicacy/
Recommendations
If Privacy is Critical: Use a VPN. Set it up in the container with PIA and verify the VPN is active during the backup process.
If Performance is a Priority: Test the backup process without a VPN first. Given that the data is already encrypted in Duplicacy, this might suffice for most use cases.
Monitor for ISP throttling or connection stability issues, and switch to a VPN only if needed.
-
bmartino1's post in UNRAID crashing recently with syslog filled with rcu_preempt detected expedited stalls on CPUs/tasks was marked as the answerNot seeing much out of ordniay. i think it may be the nic...
The syslog contains entries related to RCU (Read-Copy-Update), but they appear to be standard initialization messages rather than directly indicating the "RCU preempt detected expedited stalls" problem. I'll refine the search for specific entries about expedited stalls, crashes, or page faults.
The syslog shows general RCU initialization messages, but it does not appear to contain the exact "RCU preempt detected expedited stalls" or "page fault" entries you mentioned.
This might indicate:
Incomplete Log Capture: The specific crash event may not have been fully logged before the system reset.
Intermittent Issue: The problem might occur sporadically, making it harder to capture.
Suggestions for Troubleshooting:
Enable Persistent Syslogs:
Configure Unraid to save logs to a remote syslog server or a non-volatile location to ensure crash events are recorded.
Network Card (RTL8125B) Suspicions:
Since the issue started after adding this card, consider:
Updating the driver for the RTL8125B.
Testing without the card to rule it out as the cause.
-
bmartino1's post in Lost everything. Trying to start over was marked as the answerit comes down if you want to reused the old usb or new usb the steps given above reusued the old usb to maintain the unraid license. same steps for a new usb with the * note that here is where you would do the licens swap to the new USB.
I recommend replace USB after 3-5 years or other major hardware failure. Depends on teh USB drive and tis calculated Wearout.
regardless its best to have a backup.
to start fresh fresh i recomend using a live boot os of Ubunutu Desktop and using disk to clear the old data of each drive to preformat (I have had issues reusing disk in unraid)
Use the above stpes to make a new or reuse the same USB and make a unraid usb sitck. copy license file (the starte / basek / etc .key file...) to the conf folder of the unriad usb that you will use and boot to that usb stick.
pull from the backup if you want some plugins yo havd previous or downlaod new. mainly to be able to save and reusue docker configuration you had previoulsy...
atm your should have atleast a unraid backup to reclaim your key file for easey license tranfer or ruesuse by refomating the curnt unraid licensed USB...
then make a unraid usb by fresh download.. use the tools or manuly by fat32 format calling it UNRAID and run the make bootable script...
-
bmartino1's post in Unable to handle page fault CPU error was marked as the answernot seing much...
The "BUG: unable to handle page fault" error indicates that the system attempted to access an invalid memory address, leading to a kernel panic and system crash. This issue can stem from various causes, including hardware malfunctions, software bugs, or configuration errors.
Potential Causes:
Hardware Issues:
Faulty RAM: Defective memory modules can cause unexpected memory access errors.
Overheating: Excessive temperatures can lead to hardware instability.
Power Supply Problems: Inadequate or failing power supplies can cause erratic hardware behavior.
Software Issues:
Kernel Bugs: Bugs within the kernel can lead to memory access violations.
Driver Conflicts: Incompatible or faulty drivers can cause system instability.
Docker Container Issues: Misbehaving containers can consume excessive resources or cause conflicts.
reboot and run mem test.
-
bmartino1's post in Setup hdhr-ac4 docker was marked as the answeryou can potential run plex as a lxc on unraid.
and use lxc to mount the plex media. this way you have less vm overhead but granular control over a linux environment like Debian to install projects like these.
a VM may be better and easier to setup device passthorugh with usb and other devices. you can do simlar with unraids vm virtio fs to pass the plex media folder into the VM.
I just don't want to give false hope with some docker coamnds to run and build this as i can't gurnatee or help in the event of an error.
-
bmartino1's post in Need some guidance in regards to storage pools was marked as the answerreview:
Overall Setup Suggestions:
SSD Pool for Datastore:
Use the 2x 5.25" SSD cages for a dedicated SSD pool with BTRFS. Use RAID 5 or 6 for redundancy, but test performance and monitor reliability.
Create separate pools or sub-volumes for different NFS shares (e.g., one for VM storage, one for backups).
Network Setup:
Use the 10GbE NIC for ESXi datastore traffic to maximize performance.
Dedicate the 1GbE NICs for Unraid management and other services to avoid contention.
Backup Strategy:
Back up VMs regularly, especially if relying on BTRFS RAID 5/6.
Leverage Unraid's plugin ecosystem (e.g., CA Backup/Restore) for automated backups.
Should You Buy Another Unraid License?
Pro Unraid License: Stick to Unraid if you enjoy its simplicity and features.
Alternate NAS OS: Try the other OS if you want a more robust virtualization environment. However, if Unraid meets your needs, the cost of a second license may be justifiable compared to the time and effort of managing a new environment.
Final Thoughts:
Your hardware setup is solid, and your plans for expanding with SSD cages are logical.
If redundancy and stability are critical for your ESXi datastore, consider RAID 10 over RAID 5/6.
Stick with Unraid for simplicity unless specific workloads demand a secondary system.
Other info:
1. BTRFS and RAID 5/6 Stability
Current Status: BTRFS RAID 5/6 is functional but still considered experimental for mission-critical setups. Improvements have been made, but issues like write hole problems (data inconsistencies during power loss) remain unresolved in some cases.
Recommendation:
Since the data isn't mission-critical, you could proceed with BTRFS RAID 5/6 for the SSD pool, especially as a datastore for your ESXi VMs. However, ensure regular backups of your VMs and configurations.
If you want stability over flexibility, consider using RAID 10 with BTRFS, which offers better performance and redundancy.
2. NFS Sharing with BTRFS
Compatibility: NFS works seamlessly with BTRFS pools in Unraid. You can create and share NFS mounts without significant issues.
Recommendation:
Configure the pool, create shares through the Unraid UI, and ensure proper permissions for ESXi hosts.
Test the performance of the NFS shares before fully deploying them to identify potential bottlenecks.
3. Using HBA and Onboard SATA Ports
Mixing Drives: It's perfectly fine to mix HBA and onboard SATA ports for your SSD cages. Both Unraid and BTRFS handle mixed controller setups without issues.
Performance Consideration:
HBAs generally handle multiple drives better than onboard controllers due to optimized bandwidth and caching mechanisms.
Ensure the onboard SATA ports support AHCI mode and modern features like TRIM for SSDs.
Recommendation:
Populate the SSD cages evenly across the HBA and onboard SATA ports to balance load and avoid overloading the HBA.
4. Should You Build Another Box?
Advantages of a Second Box:
Dedicated environments for specific workloads (e.g., Unraid for media and storage, other NAS OS for datastores).
Potentially better performance for your VMs, as the secondary box wouldn't share resources with Plex or Unraid Docker containers.
Considerations:
A secondary box increases power usage, hardware management, and complexity.
If cost is a concern, stick with a single Unraid setup and expand its capabilities with plugins or containers like Proxmox for virtualization.
Hardware Choices Feedback:
HBA (9300-16i):
Great choice for connecting multiple drives. Ensure it’s flashed to IT mode for optimal compatibility with Unraid.
Mellanox ConnectX-2 Card:
While older, it works well for 10GbE. Test network settings (e.g., MTU size) to ensure smooth NFS performance.
Quadro P2000:
Ideal for Plex transcoding. Ensure you’ve set up the Nvidia driver plugin in Unraid to unlock its full potential.
-
bmartino1's post in WebUI not responding at the same time everyday, rootfs full was marked as the answerare you runnign and user scripts?
The syslog indicates issues related to network connectivity, as multiple errors like Network is unreachable and related socket errors from rsyslogd are present. However, these are unlikely to be directly tied to the rootfs filling up or the /usr/local/emhttp/exit/ directory issues. Let's analyze the problem further:
Diagnosing the rootfs Full Issue
Probable Causes:
Excessive Logging or Temporary Files:
Randomly named directories under /usr/local/emhttp/exit/ might be logs, temporary files, or cache growing excessively, filling up the limited rootfs space.
Memory Leaks or Misconfigured Applications:
A process or script might be writing excessively to /usr/local/emhttp without cleanup.
Scheduled Tasks:
Since the issue happens around 3 AM (JST), it's likely linked to a scheduled cron job or background process.
Next Steps:
Implement these diagnostics and collect data to pinpoint the exact cause...
If a plugin or script is causing the issue, disabling or reconfiguring it may resolve the problem.
Review logs in the /usr/local/emhttp/exit/ directory for clues on which application or process creates these files.
Suggested Steps:
*Untested this may or may not work emhttp is unraid webui web server...
Inspect /usr/local/emhttp/exit/ Growth:
Before the rootfs fills up again, monitor the directory to identify what gets written there
du -sh /usr/local/emhttp/exit/*
du -sh /usr/local/emhttp/exit/* Check the timestamps of the files:
ls -lt /usr/local/emhttp/exit/
*Warning this can break/corrupt files... as temp data is stored in ram... this will potential increas the ram disk os in ram if you have more ram..
*Untested use at your own risk!...
Increase Rootfs Space Temporarily:
If you are unable to gather diagnostics due to the rootfs filling up, consider remounting with a larger tmpfs size:
lsblk df -h mount -o remount,size=4G /var Note: This is a temporary solution to collect more logs
*a reboot should fixes this and be better...
Check for Cron Jobs:
Review scheduled cron jobs, especially those that run around 3 AM:
*what user script is running at 3 am ? zfs/btrfs scrub ? snapshot ? other rsync file copy?
cat /etc/cron.d/* | grep -i 3:00
*enable syslog server to try and captures....
Examine Diagnostics After 3 AM:
Leave a session running to log the directory's contents at intervals after 3 AM
while true; do date >> /boot/emhttp_debug.log; ls -l /usr/local/emhttp/exit/ >> /boot/emhttp_debug.log; sleep 300; done *Run at console of unraid terminal...
?is syslog filling up log rotate setting?
Syslog Configuration:
Redirect logs to a persistent storage location to avoid rootfs fill
mkdir -p /mnt/cache/syslogs ln -sf /mnt/cache/syslogs /var/log
Investigate Plugin or Software Behavior:
The issue could stem from a third-party plugin or Docker container interacting with /usr/local/emhttp
Disk Failure ?
Monitor Disk I/O:
Use iotop or similar tools to identify processes writing heavily
iotop -o
-
bmartino1's post in kernel: traps: nethogs[12313] was marked as the answerwhat nethogs is:
https://slackware.pkgs.org/current/slackers/nethogs-0.8.7-x86_64-2cf.txz.html
kinda not realy a network montior per say it is a widnwos taskmanger like tool uses to look at current network traffic
NetHogs is a small 'net top' tool. Instead of breaking the traffic down per protocol or per subnet, like most tools do, it groups bandwidth by process. NetHogs does not rely on a special kernel module to be loaded. If there's suddenly a lot of network traffic, you can fire up NetHogs and immediately see which PID is causing this. This makes it easy to indentify programs that have gone wild and are suddenly taking up your bandwidth.
-
bmartino1's post in Upload directly to unraid with scp was marked as the answerUsing rsync or SFTP instead of scp is generally more efficient and flexible for tasks like automated backups. Here’s how to improve the script and address your questions:
Why rsync or SFTP?
Advantages of rsync:
Transfers only the changes in files, making subsequent backups faster.
Preserves permissions, ownership, and symbolic links by default.
Includes options for incremental backups and detailed logging.
Advantages of SFTP:
Secure and reliable for transferring files.
Ensures encrypted communication.
Updated Script with rsync
Setup Steps
SSH Keys:
Ensure SSH keys are set up correctly, as in your current script.
Modify Script:
#!/bin/bash # Define variables REMOTE_SERVER="192.168.0.2" REMOTE_USER="root" REMOTE_DIR="/var/www/html/" LOCAL_DIR="/mnt/user/user_name/backup/" SSH_KEY="/boot/config/ssh/root/server.pem" # Ensure known_hosts is populated ssh-keyscan -p 22 $REMOTE_SERVER >> /boot/config/ssh/root/known_hosts # Use rsync for efficient transfer rsync -avz -e "ssh -i $SSH_KEY -p 22" --delete $REMOTE_USER@$REMOTE_SERVER:$REMOTE_DIR $LOCAL_DIR # Ensure proper permissions on destination chown -R nobody:users $LOCAL_DIR find $LOCAL_DIR -type d -print0 | xargs -0 chmod 0777 find $LOCAL_DIR -type f -print0 | xargs -0 chmod 0666
How It Works
rsync Options:
-a: Archive mode to preserve file attributes.
-v: Verbose output for debugging.
-z: Compresses data during transfer.
--delete: Removes files in the local destination that no longer exist on the remote server.
Permissions Fix:
chown -R nobody:users: Ensures correct ownership.
chmod: Sets appropriate permissions for directories (0777) and files (0666).
Why /mnt/user/user_name/ is Safe
Yes, using /mnt/user/user_name/ is safe for backups:
Files copied here are automatically included in the Unraid parity calculations.
However, copying large files or many small files can temporarily affect performance during parity syncs. If performance is critical, consider using a dedicated share or cache pool for backups.
Additional Recommendations
Logging:
Add logging to monitor backup success
rsync -avz --log-file=/path/to/logfile.log -e "ssh -i $SSH_KEY -p 22" $REMOTE_USER@$REMOTE_SERVER:$REMOTE_DIR $LOCAL_DIR *Edit the rsync line...
Use --progress for Real-Time Monitoring:
Add --progress to see transfer progress during manual runs.
Cron Jobs for Automation:
Schedule the script with a cron job or via User Scripts plugin in Unraid for periodic backups.
Incremental Backups:
Add --link-dest to enable incremental backups by maintaining snapshots of previous states.
-
bmartino1's post in Unraid 7 - ZFS Question was marked as the answerreview:
I don't see a problem with your setup.
It is recommended to migrate your data off and setup the zfs disk setup you want first and then bring the data back to the new setup.
Configuration Goals:
Migrate data from an existing BTRFS pool to a new ZFS pool.
Create a ZFS pool with redundancy (ZFSZ1).
Handle the potential inclusion of mixed-sized NVMe drives.
Additional Q/A:
1. Can ZFS Handle Mixed Sizes?
Yes, ZFS can handle mixed drive sizes. However, the pool's usable capacity is determined by the smallest drive in a RAID-Z configuration:
In your scenario, if you mix 2TB and 1TB drives, the usable space of the larger drives will be capped to match the size of the smallest drive in the RAID-Z group.
2. General Recommendations:
Drive Size Matching: To maximize storage efficiency, use drives of the same size.
Plan Ahead for RAID Level: If you anticipate needing more storage or redundancy in the future, consider the implications of RAID-Z levels (e.g., RAID-Z2 for dual-disk redundancy).
Test Configuration First: Since this is on a beta system, it’s wise to test the setup without critical data to ensure there are no issues.
Suggested Commands/WEB UI Summary:
Create ZFS Pool: zpool create zfs_pool /dev/nvmeXn1
Transfer Data: rsync -av /mnt/btrfs_pool/ /mnt/zfs_pool/
Add Drives to ZFS Pool: zpool add zfs_pool /dev/nvmeYn1 /dev/nvmeZn1
Convert to RAID-Z1: zpool attach zfs_pool /dev/nvmeXn1 /dev/nvmeYn1 /dev/nvmeZn1
Feel free to follow up for any additional clarification or troubleshooting!
-
bmartino1's post in Networking Help was marked as the answerThank you reviewing the diag file now seeing if there is anything I can suggest / find:
I do see a weird go file:
#!/bin/bash
# Start the Management Utility
/usr/local/sbin/emhttp
loadkeys /usr/share/kbd/keymaps/i386/qwerty/uk.map.gz
*most likely dealing with encryption...
and we need to add info here to use the 2.5
per the forum post add:
ethtool -s eth0 autoneg on advertise 0x80000000002f Change and using the correct eth# for your interface.
Some weirdness in name change:
The logs provide useful insights into the issue:
The r8125 Realtek driver is loading correctly, and the device is recognized with its MAC address (3a:e0:4c:68:34:51).
The interface was initially named eth0 but was later renamed to eth118.
The MAC address (3a:e0:4c:68:34:51) is present and being initialized properly in the kernel log.
Potential Cause:
The renaming of the network interface (eth0 to eth118) is likely caused by a udev rule or a configuration issue in the Unraid beta that determines how interfaces are named. This is why it doesn't appear as eth0 on the web UI.
we can try a user script at first array start to fix with a udev rule and some /dev flush stuff.
Recommended Steps to Resolve:
Check Network Rules File:
Navigate to /etc/udev/rules.d/ and check for any 70-persistent-net.rules or similar file.
Look for rules corresponding to eth118 and the MAC address 3a:e0:4c:68:34:51.
Force Rename Interface:
You can manually edit or create a udev rule to rename eth118 back to eth0. Example
sudo nano /etc/udev/rules.d/70-persistent-net.rules *Udev is hard to keep and use in unraid.
Example udev rule to stop name chaingin:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="3a:e0:4c:68:34:51", NAME="eth0" Apply Changes:
Run the following to reload the udev rules and restart the network:
sudo udevadm control --reload sudo udevadm trigger sudo /etc/rc.d/rc.inet1 restart Validate:
Check if eth0 is now visible in the web UI. Use ifconfig or ip a to confirm the interface name.
user script at first boot:
#!/bin/bash # Script to rename network interface to eth0 and apply changes # Define variables RULES_FILE="/etc/udev/rules.d/70-persistent-net.rules" MAC_ADDRESS="3a:e0:4c:68:34:51" # Create the udev rule echo "Creating udev rule to rename eth118 to eth0..." echo "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"$MAC_ADDRESS\", NAME=\"eth0\"" > "$RULES_FILE" # Flush old network settings echo "Flushing network settings..." ip link set eth118 down ip addr flush dev eth118 ip route flush dev eth118 # Reload udev rules echo "Reloading udev rules..." udevadm control --reload udevadm trigger # Bring eth0 up echo "Bringing eth0 up..." ip link set eth0 up # Confirmation message echo "Interface renaming and setup complete. Check the configuration with 'ip a' or the web UI."
review: