Last week I noticed a critical error message notification on my TrueNAS file server. Device ada0 had 300,000 unreadable sectors pending. My seven-year-old Western Digital 1TB Red NAS hard drive was finally on the way out. I ordered a Western Digital 2TB Red Plus NAS hard drive from Amazon. A couple of hours later, I discovered that ada0 wasn’t a hard drive but an SSD. The new hard drive had already shipped from Amazon. I ended up upgrading my file server by accident.
Confusing The SSD For The HDD
How did I confuse a hard drive with an SSD?
My first storage hard drive had always been designated as ada0 when I ran FreeNAS for the last ten years. When I switched from the motherboard SATA ports to a SAS card in 2020, I connected the drives in the same order as before. That meant ada0 became da0 and so on for the rest of the hard drives.
I need to point out that the connected drive order doesn’t matter. My hard drives kept the same drive designation because I never did a fresh install of FreeNAS. I’ve always upgraded the installation and transferred the config file to new hardware.
When I switched from FreeNAS to TrueNAS last month, I had to switch from USB to SSD mirrored boot drives. When I plugged the SSDs into SATA ports 4 and 5 on the motherboard, they came up as ada0 and ada1.
I forgot that I put a postscript in the video that TrueNAS noted 123,000 unreadable sectors pending for the first SSD. That wasn’t a surprise since that SSD was six years old. A month later, the SSD got flagged as critical with 300,000 unreadable sectors pending.
When I saw ada0 as critical, I ordered a new hard drive because ada0 has been hard drive for the last ten years. After I realized my mistake a few hours later, Amazon had already shipped the hard drive. I wasn’t happy that I paid an extra $15 US for a hard drive that wasn’t on sale.
Since I had a new hard drive coming in, I ordered a new SSD to replace the old SSD.
Replacing The SSD
The Adata SU655 120GB SSD (2022) is a newer model than the Adata SP-550 120GB SSD (2016). Unlike a storage drive, there’s no way to offline a boot drive for replacement. I took the brute force approach by replacing the old SSD with the new SSD. The mirrored boot drives came up as degraded since the old SSD was missing.
From the web interface, I clicked on System, clicked on Boot, and selected “Boot Pool Status” from the “Actions” menu. I clicked on the three-dot button for ada0, selected “Replace” and picked “ada0” as the new drive. Reslivering the drive took 18 seconds since there was 1GB in data.
Replacing The HDD
I replaced the 1TB hard drive from 2017 with the new 2TB hard drive. Why the 2017 drive and not the oldest 2015 drive?
The way the drives are set up inside the case, the older 1TB drives are on the bottom and the newer 2TB drives are on the top. The 2017 1TB drive is underneath the 2TB drives from 2020. By pulling the youngest 1TB drive, I can use it as a spare if I need to replace another 1TB drive.
Before I replaced the drives, I backed up the file server to my Linux box and downloaded the config file to my Windows PC.
From the web interface, I clicked on Storage, clicked on Pools, and selected “Status” from the cog wheel menu. I clicked on the three-dot button for da0 and clicked on “Offline”. That put the storage pool into a degraded mode.
I shut down the file server, pulled the 1TB drive, installed the 2TB drive, and booted up.
From the web interface, I clicked on Storage, clicked on Pools, and selected “Status” from the cog wheel menu. I clicked on the three-dot button for da7, clicked on “Replace”, and added da7 to the vdev. Reslivering the new drive took 100 minutes for 548GB in data.
The file server is working as expected with no noticeable changes despite the new hardware. If I must replace an older 1TB hard drive, I have a spare drive to replace it with. If the 2TB hard drive goes on sale, I’ll buy another one and double my free space from 2TB to 4TB. As for the second SSD, I won’t replace it unless it goes critical on me.