V2.1 - Enabling TRIM for SSD users
-
Thanks very much for consolidating all of the steps into one easily followable list! Worked perfectly!
It´s very simple to add TRIM to SSD disks now, it´s just hard to find out how in the first place.
Here´s what I did today:
Login with SSH and open the shell.
Run /usr/local/sbin/ufslabels.sh
Add the line ahci_load="YES" to /boot/loader.conf.local
reboot the machine
Login with SSH and open the shell
touch /root/TRIM_set; /etc/rc.rebootOnce the machine has rebooted check the status with: tunefs -p /
[2.1-RELEASE][admin@pfSense.hemma]/root(1): tunefs -p /
tunefs: POSIX.1e ACLs: (-a) disabled
tunefs: NFSv4 ACLs: (-N) disabled
tunefs: MAC multilabel: (-l) disabled
tunefs: soft updates: (-n) disabled
tunefs: gjournal: (-J) disabled
tunefs: trim: (-t) enabled
tunefs: maximum blocks per file in a cylinder group: (-e) 2048
tunefs: average file size: (-f) 16384
tunefs: average number of files in a directory: (-s) 64
tunefs: minimum percentage of free space: (-m) 8%
tunefs: optimization preference: (-o) time
tunefs: volume label: (-L)All done I guess
-
Had to go back and re-read some of these posts regarding "Trim" to answer a question for a friend.
Any chance this (TRIM_set) will become an advanced system setup checkbox on an upcoming release?? I mean SSDs are becoming "de rigueur" and the release of FreeBSD now being employed does support the Trim command. I'll ask nicely…. PLEASE?
edit: I'll be greedy while I'm asking... also have it be an installation setup option?
Rick
-
It's not sufficient to use the steps mentioned above. You also need to be using the ahci module, unless something changed in a later snap.
see: http://forum.pfsense.org/index.php/topic,63656.0.html
add ahci_load="YES" to /boot/loader.conf.local
See #20 for a way to convert you to ufslabels so that changing from ad* to ada* doesn't break your boot.
The AHCI module should be included in snapshots now (I just updated a VM and checked, it's there). Also look at /usr/local/sbin/ufslabels.sh - that would eliminate the need to make any fstab edits. Too late for 2.1 to grow an installer option for it, but perhaps for 2.2.
My tunefs shows trim enabled without anything but the command in the first post.
Exactly the same to me. Disk used:
Model Family: SandForce Driven SSDs
Device Model: KINGSTON SV300S37A60G2.1-RELEASE (amd64)
built on Wed Sep 11 18:17:34 EDT 2013
FreeBSD 8.3-RELEASE-p11Platform: nanobsd (4g)
-
Hello,
I managed to enable TRIM on a Samsung 840 Pro SSD, but not so simply.
The appliance used is a Teak 5020. By default AHCI is not enabled in the bios, and i used ufslabels.sh before enabling AHCI in the bios.
After, ufsid was set but the TRIM_set trick was not working.
I enabled AHCI, rebooted, then after started in single user mode, issued '/sbin/mount', and then "/sbin/tunefs -t enable /dev/ufsid/533f10e87e412553" (adapt with your own ufsid).
Then "./tunefs -p /" returns well "tunefs: trim: (-t) enabled".
However "camcontrol identity ada0" does not show that TRIM is enabled :
"data set management (TRIM) yes [empty]"
Any idea ?
Thank you -
I also have a samsung SSD and i cant enable trim. Using the latest pfsense 2.1.4
Please help
-
What have you tried? What was the result? What board is it connected to?
Steve
-
added the following
Login with SSH or locally and open a shell
Run /usr/local/sbin/ufslabels.sh
Add ahci_load="YES" to /boot/loader.conf.local
Reboottouch /root/TRIM_set; /etc/rc.reboot
When i try to boot in single user mode i get a kernel panic.
Hardware
Supermicro SuperServer 5018A-FTN4 with 16GB ECC ram.
Samsung pro 120GB SSD.pfsense 2.1.4
-
Did you set the SATA controller to AHCI mode in the BIOS?
Steve
-
You may try this instead in single user mode:
/sbin/tunefs -t enable /
After that reboot and then run tunefs -p /
The touch /root/TRIM_set; /etc/rc.reboot has been removed in the newer version.
-
Hi,
Took a look, and it does seem that this allows enabling TRIM - that's great. But I do have a couple questions,
- is there a way to check what the current state is?
- if TRIM hasn't been on so far, is there a way to tell the SSD / BIOS to clean up the SSD?
Thanks!
-
added the following
Login with SSH or locally and open a shell
Run /usr/local/sbin/ufslabels.sh
Add ahci_load="YES" to /boot/loader.conf.local
Reboottouch /root/TRIM_set; /etc/rc.reboot
When i try to boot in single user mode i get a kernel panic.
Hardware
Supermicro SuperServer 5018A-FTN4 with 16GB ECC ram.
Samsung pro 120GB SSD.pfsense 2.1.4
cfipilot - have you been able to get TRIM working? I have pretty much the same hardware except only using 8GB ECC RAM for now. I have a Samsung 840 Pro 120GB, is that what you are using?
I wrote in another thread which was a bit newer (dealing with 2.1.1 as opposed to 2.1), but maybe the issue is hardware specific or it could just be my lack of FreeBSD knowledge…
I seem to have a problem with the TRIM enabled setting remaining after reboot.
Once I executed /sbin/tunefs -t enable / what exactly should I do. I can't run /etc/rc.reboot because I get the following:
lockf: cannot open /tmp/config.lock: Read-only file system Cannot reboot at this moment, a config write operation is in progress, and 30 seconds have passed
If I just exit single-user mode then when restart and /sbin/tunefs -t enable / it indicates it is disabled.
FYI - already added ahci_load="YES" to /boot/load.conf.local
3vian
-
cfipilot - Btw, I managed to get it enable. See below.
Seems you have to use /sbin/reboot as mentioned below to reboot
FYI - it should /sbin/tunefs -t enable /, not /sbin/tunefs -t / as mentioned below.
Charlie,
I will give v2.2 a try and let you know how it goes. As far as dmesg, I can provide nothing as the system will not boot with AHCI enabled. it will not detect any GEOM devices, but it will boot fine if I remove the ahci_load="YES" from /boot/loader.conf.local.
Did you convert fstab to ufslabel before adding ahci_load="YES" ?
Run the following script to do it:
/usr/local/sbin/ufslabels.shthen if it boots correctly go in single user mode and enable TRIM with:
/sbin/tunefs -t /reboot with:
/sbin/rebootand after a reboot check if it's enabled with:
tunefs -p / -
Hi,
Sorry, trying this on v2.2, not sure if I'm doing something wrong, but here is what I get …
Entered: tunefs -t enable /Then the result is ...
tunefs: issue TRIM to the disk set
tunefs: /: failed to write superblockAnd checking tunefs (tunefs -p /) ... nope, it's still off. Thoughts?
Thanks!
-
Hi,
Sorry, trying this on v2.2, not sure if I'm doing something wrong, but here is what I get …
Entered: tunefs -t enable /Then the result is ...
tunefs: issue TRIM to the disk set
tunefs: /: failed to write superblockAnd checking tunefs (tunefs -p /) ... nope, it's still off. Thoughts?
Thanks!
arrmo - It sounds like you are not in Single User Mode. Reboot and at the boot screen use option 5 and enter /sbin/tunefs -t enable / at the prompt and reboot (using /sbin/reboot).
3vian
-
Will do, thanks! Saw that part, wasn't sure if it was key … seems it is ... ;)
This setting is permanent (when done this way), right?
Thanks again.
-
Hi Everybody,
I also have the 5018A-FTN4 with a SSD and would like to turn on TRIM.
Unfortunately I am not able to enter the Single User Mode to turn it on, as it gives me a
panic: AP #1 (PHY# 2) failed!@3vian: You seem to have gotten it to work. How did you manage to get into the Single User Mode?
It would also be very handy to start a "best practices for installing pfSense on a 5018A-FTN4 thread", as they seem to become very popular, with all the relevant BIOS settings.
Some pfSense tweaks are already mentioned here: https://forum.pfsense.org/index.php?topic=75015.0As always: thank you very much for any info!
Harry -
Just imagine the day when there is a simple check box for "Enable Trim" in a system menu…
Alot to ask, I know but we can dream right?
-
Hi,
Sorry, trying this on v2.2, not sure if I'm doing something wrong, but here is what I get …
Entered: tunefs -t enable /Then the result is ...
tunefs: issue TRIM to the disk set
tunefs: /: failed to write superblockAnd checking tunefs (tunefs -p /) ... nope, it's still off. Thoughts?
Thanks!
arrmo - It sounds like you are not in Single User Mode. Reboot and at the boot screen use option 5 and enter /sbin/tunefs -t enable / at the prompt and reboot (using /sbin/reboot).
3vian
I appreciate this post.
I came into all of this being a n00b w/ command line, so if I overlooked something simple, be gentle.
I've tried everything & can't seem to get anything working.
Here's what I've done after upgrading to 2.1.5 (SSD is an intel 320 160gb, has TRIM):
1. Logged in as single user (selected 5), but there seems to be a slight issue with the mount & asking me to specify a path while booting. I can provide that info later on. Anyways, I tell it to skip that & it loads up pfsense perfectly, everything works. Loads fine with multi-user.
2. Input what you said & got this:
[2.1.5-RELEASE][root@pfsense.router]/root(10): /sbin/tunefs -t enable /
tunefs: issue TRIM to the disk set
tunefs: /dev/ufsid/53f426d4c691b578: failed to write superblockI can log in as root or admin & I get the same response. Other responses to things I've tried from this thread include "bad trim" & one other statement I forgot to write down.
I'm tempted to reinstall from scratch as it doesn't take that long to do & try again. I've been down that road, but I wonder if going back to a pre "/usr/local/sbin/ufslabels.sh" point in time may help as that seems to change the characteristics of the drive.
Also, this line always trips me up: ahci_load="YES" to /boot/loader.conf.local
[2.1.5-RELEASE][root@pfsense.router]/root(33): /boot/loader.conf.local ahci_load="Yes"
/boot/loader.conf.local: Permission denied.Thoughts?
-
That's not something you run at the command line. You have to add the line:
ahci_load="YES"
to the file /boot/loader.conf.local
You can do the using the webgui in Diagnosics: Edit File: or from the command line using the built in ee editor (or vi if you're a masochist!).Steve