• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Aaron Weiss

  • Home
  • Blog
  • About
  • Contact

Hobbies

TrueNAS Virtual Machine with Ubuntu 18.04 Halting with Signal 11

March 16, 2022 by Aaron Weiss

For about one week, I had an Ubuntu 18.04 installation that I’ve had running for years as TrueNAS virtual machine starting to fail after a few hours of running.

This VM not working is not the end of the world, but I had been using this as a utility knife for all sorts of things, and I didn’t want to chuck it to the curb just yet.

I was seeing the following in my TrueNAS Log:

Mar 13 11:47:56 maria kernel: pid 1552 (bhyve), jid 0, uid 0: exited on signal 11
Mar 13 11:47:58 maria kernel: vnet1: link state changed to DOWN

I had to force a power down and then restart the VM. Sometimes the VM wouldn’t start at all.

After finding an ancient article about a similar issue, someone had mentioned that when they switched their virtual machine’s NIC device from Intel e82858 (e1000) to VirtIO, that was the solution.

Changing the network interface device in a TrueNAS virtual machine running Ubuntu 18.04
Changing the network interface device in a TrueNAS virtual machine running Ubuntu 18.04

After 48 hours, my TrueNAS Virtual Machine was running stable.

It’s difficult to say why this began. I last updated TrueNAS to 12.08-U8 on February 2nd, 2022. I first noticed the TrueNAS VM wasn’t running when I was checking my internet speed graph in Grafana starting around March 3rd. However, I have unattended upgrades for this virtual machine set, so it’s possible there was an update to the packages that caused a conflict with Intel e82858 (e1000).

Perhaps this will be helpful to you.

Filed Under: TrueNAS Tagged With: truenas, ubuntu 18.04, virtio, virtual machine

Proxmox ZFS Disk Replacement and Drive Expansion

December 30, 2021 by Aaron Weiss

Replacing a drive in a pool using the Proxmox VE 6.3 web interface doesn’t allow you to replace a disk in a pool. Instead, you’ll need to do it through the command line. I wrote this guide as I needed to perform this replacement myself. This guide can work on any ZFS system, not just Proxmox.

What’s Being Replaced

I’ve had two 1TB drives that both were purchased well over a decade ago. Roughly, when these drives were about $100 retail. So, very old. Both of these drives have been used as one of the backup pools in my Proxmox for VMs in a RAIDZ1, which is essentially a mirror, meaning, one drive can fail, and the data will be safe. Which is exactly what happened here.

Proxmox had flagged one of the drives as having some SMART errors, and marked the pool as degraded. Knowing the age of these drives, I knew it was time to replace them both.

While I had issues with purchasing White Label drives when I first built my TrueNAS server a few years ago, I chose to try it out again. The same Amazon seller, GoHardDrive, had 2 TB NAS HDD drives for $45.

Adding the new Drives

Luckily, this drive didn’t fail entirely. So I’ll be off-lining the disk first, and then replacing the devices. This will be a lengthy process because each I can only replace one disk at a time, because the Pool will resliver – or copy the data – to the new disk.

I thought about creating just another pool with these new disks and removing the old one. That’s the smarter thing to do, it really is. However, I needed to challenge myself.

I had two empty SATA drives which makes this process simpler as I only have to shutdown the device once before I add the new drives, and then again after I remove the old drives.

First, you need to find out the device and the device ids. I’m using lsblk, and grepping with “sd” to only display SATA devices.

lsblk | grep sd
sda 8:0 0 223.6G 0 disk
├─sda1 8:1 0 223.6G 0 part
└─sda9 8:9 0 8M 0 part
sdb 8:16 0 223.6G 0 disk
├─sdb1 8:17 0 223.6G 0 part
└─sdb9 8:25 0 8M 0 part
sdc 8:32 0 1.8T 0 disk
├─sdc1 8:33 0 1.8T 0 part
└─sdc9 8:41 0 8M 0 part
sdd 8:48 0 931.5G 0 disk
├─sdd1 8:49 0 931.5G 0 part
└─sdd9 8:57 0 8M 0 part
sde 8:64 0 1.8T 0 disk
sdf 8:80 0 931.5G 0 disk
├─sdf1 8:81 0 931.5G 0 part
└─sdf9 8:89 0 8M 0 part
sdg 8:96 0 111.8G 0 disk
├─sdg1 8:97 0 1007K 0 part
├─sdg2 8:98 0 512M 0 part
└─sdg3 8:99 0 111.3G 0 part
sdh 8:112 0 111.8G 0 disk
├─sdh1 8:113 0 1007K 0 part
├─sdh2 8:114 0 512M 0 part
└─sdh3 8:115 0 111.3G 0 part

I know that I’m replacing 1TB drives with 2TB drives. Therefore, the old disks are sdd and sdf, and the new disks are sdc and sde.

Now I need to find out their device-id. I used the following command for each drive by replacing the letter after sdc.

root@johnny5:~# ls -la /dev/disk/by-id | grep sdc
lrwxrwxrwx 1 root root 9 Dec 29 17:16 ata-WL2000GSA6454_WD-WMAY02272888 -> ../../sdc
lrwxrwxrwx 1 root root 10 Dec 29 17:16 ata-WL2000GSA6454_WD-WMAY02272888-part1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 Dec 29 17:16 ata-WL2000GSA6454_WD-WMAY02272888-part9 -> ../../sdc9
lrwxrwxrwx 1 root root 9 Dec 29 17:16 wwn-0x50014ee6abcf8e35 -> ../../sdc
lrwxrwxrwx 1 root root 10 Dec 29 17:16 wwn-0x50014ee6abcf8e35-part1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 Dec 29 17:16 wwn-0x50014ee6abcf8e35-part9 -> ../../sdc9

Now I can see that sdc’s device-id is wwn-0x50014ee6abcf8e35. I ran this three more times with all the drives:

2TB sdc wwn-0x50014ee6abcf8e35
2 TB sde wwn-0x50014ee05808492d
1 TB sdd wwn-0x50014ee2ad4b90e8
1 TB sdf wwn-0x5000c500116662ed

Now that I have this information, I can perform the following: zpool offline hdd_pool wwn-0x5000c500116662ed

This removes the old device from operation within the pool. However, the disk is still within the pool. Next, I replace the old drive with the new drive: zpool replace hdd_pool wwn-0x5000c500116662ed wwn-0x50014ee6abcf8e35

hdd_pool is the name of this pool, because its the old drives on this server that uses HDDs. This immediately starts the resilver process between the two disks in the pool and the new drive. I can watch progress using zpool status hdd_pool:

root@johnny5:~# zpool status hdd_pool
  pool: hdd_pool
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Wed Dec 29 19:15:59 2021
        471G scanned at 4.58G/s, 7.08G issued at 70.4M/s, 471G total
        7.08G resilvered, 1.50% done, 0 days 01:52:31 to go
config:
        NAME                          STATE     READ WRITE CKSUM
        hdd_pool                      DEGRADED     0     0     0
          mirror-0                    DEGRADED     0     0     0
            replacing-0               DEGRADED     0     0     0
              wwn-0x5000c500116662ed  OFFLINE      0     0     1
              wwn-0x50014ee6abcf8e35  ONLINE       0     0     0  (resilvering)
            wwn-0x50014ee2ad4b90e8    ONLINE       0     0     0
errors: No known data errors

However, you can watch the progress of the resilvering within the Proxmox UI. Go to Datacenter > Node > Disks > ZFS. Then double-click the pool in question.

Proxmox ZFS Pool Detail
Example of Proxmox’s ZFS Pool Details and the resilvering process.

It took about 2.5 hours to resilver each drive. Of course, now I have to do this whole thing again with the other two drives:

zpool offline hdd_pool wwn-0x50014ee2ad4b90e8;zpool replace hdd_pool wwn-0x50014ee2ad4b90e8 wwn-0x50014ee05808492d
Another 2 hours later, and another zpool status hdd_pool displays:

root@johnny5:~# zpool status hdd_pool 
  pool: hdd_pool 
 state: ONLINE 
  scan: resilvered 472G in 0 days 01:13:55 with 0 errors on Wed Dec 29 22:46:55 2021 
config:
        NAME                        STATE     READ WRITE CKSUM
        hdd_pool                    ONLINE       0     0     0
          mirror-0                  ONLINE       0     0     0
            wwn-0x50014ee6abcf8e35  ONLINE       0     0     0
            wwn-0x50014ee05808492d  ONLINE       0     0     0
errors: No known data errors

Now, our two new disks have fully resilvered and our pool is working as expected.

Expand Disks to Use All Available Disk Space

Next, we need to expand the disks to use all the available disk space. Otherwise, the pool will only continue to use the 1 TB of space that the original two drives offered:

Proxmox ZFS Disk Pre-expanded
Example of the pool working, but only showing the original usable disk space in the pool
root@johnny5:~# zpool list
NAME       SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
hdd_pool  928G 471G   472G  1.35T        -         -     1%    25%  1.00x    ONLINE  -
rpool      111G  17.0G  94.0G        -         -     6%    15%  1.00x    ONLINE  -
sdd_pool   222G  70.9G   151G        -         -    36%    31%  1.00x    ONLINE  -
vm_pool   3.62T   589G  3.05T        -         -    22%    15%  1.00x    ONLINE  -

To do this, I ran the following:

zpool online -e hdd_pool wwn-0x50014ee6abcf8e35
zpool online -e hdd_pool wwn-0x50014ee05808492d

This command expands the disks within the hdd_pool for each of the device-ids.

root@johnny5:~# zpool list
NAME       SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
hdd_pool  1.81T   472G  1.35T        -         -     1%    25%  1.00x    ONLINE  -
rpool      111G  17.0G  94.0G        -         -     6%    15%  1.00x    ONLINE  -
sdd_pool   222G  70.9G   151G        -         -    36%    31%  1.00x    ONLINE  -
vm_pool   3.62T   589G  3.05T        -         -    22%    15%  1.00x    ONLINE  -

Now you can see that hdd_pool has expanded to use both disks fully:

Proxmox Pool expanded
Pool now uses all the available disk space of the new disks.

Run SMART Tests

Honestly, this should have been the first step, but I forgot to do it. This step runs a long SMART test:

smartctl -t long /dev/sdc; smartctl -t long /dev/sde

Please wait 295 minutes for test to complete.

This command runs the SMART long test on both the sdc and sde disks, which are the two new disks. While this is running, I decided to just run a quick report on both of them:

smartctl -a /dev/sdc;smartctl -a /dev/sde

=== START OF INFORMATION SECTION ===
Device Model: WL2000GSA6454
Serial Number: WD-WMAY02097019
LU WWN Device Id: 5 0014ee 05808492d
Firmware Version: 00.0NS03
User Capacity: 2,000,398,934,016 bytes [2.00 TB]
Sector Size: 512 bytes logical/physical
Rotation Rate: 7200 rpm
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: ATA8-ACS (minor revision not indicated)
SATA Version is: SATA 2.6, 3.0 Gb/s
Local Time is: Wed Dec 29 23:22:50 2021 CST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

The areas marked in bold are the values that show that I received the wrong disks. I was supposed to receive two 2TB SATA III drives at 5400RPM. This is the second time that I recieved drives that were incorrectly described by this White Label drive manufacturer. I sent the seller on Amazon a questing why this states this, so I’ll wait to hear back.

Conclusion

Regardless of the incorrectly described product, these two drives are working, quiet, and have increased my backup capabilities. This pool is strictly used to as destination for VM backups. The same backups are also sent to my TrueNAS device which is my primary backup destination.

I hope this article was helpful in replacing your ZFS pool with new disks.

Filed Under: Proxmox Tagged With: backups, hard drive, hdd, proxmox, resilvering, zfs, zfs mirror

How To Create ZFS Backups in Proxmox

April 11, 2021 by Aaron Weiss

Proxmox’s GUI makes creating and running Virtual Environments (VE) such as Virtual Machines (VM) and containers incredibly easy, as well as managing various disks.

One area where I found some difficulty was with getting a ZFS pool to be used as a backup destination for some of my VMs. I have two 1 TB hard drives that are both over 10 years old. Yes, that’s 10 years old, and with no errors! One is a Seagate ST500DM005 and the other is a Western Digital WD10EADS-65L5B1. While the models and manufacturers are a mismatch, they can still be added as a ZFS pool as their sizes are the same.

The age of the drives doesn’t worry me as these two drives are in a mirrored ZFS pool, if one fails the data is still save on the other. Additionally, I have created two NFS shares on my TrueNAS system where backups are also being handled. That’s 3 separate backup destinations for these VMs.

Like I said above, Proxmox doesn’t allow you to create a backup of a VM to a ZFS pool within the GUI. However, with some help of the r/Proxmox Reddit group and the Proxmox Documentation I was able to get this new ZFS pool to be used as a backup destination by creating a dataset under the zpool and mounting it as a directory.

Create the ZFS Pool

First, the pools need to be created. This part can be done in the Proxmox GUI, or in the command line. I’ll show how to do both here.

You’ll need to decide on what RAIDZ level you want to use. Levels require a minimum number of disks and have various fault tolerances. This RAIDZ calculator site has an excellent summary and comparison to help.

In my situation, I only have to 1 TB drives. Therefore, its best for me to use a Mirror approach. This mean the data is the same on both disks. If one disk fails, I still have one working.

GUI ZFS Pool Creation

Under Datacenter > Your Node > Disks > ZFS, select Create ZFS. Enter the name as you wish, and then select the available devices you’d like add to your pool, and the RAID Level. Select create.

If all is well, this new pool will appear under your ZFS storage.

CLI ZFS Pool Creation

If you choose to use the CLI option, we need to find out what the device paths are for our two disks. the lsblk command will display all the block devices, which are all the disks.

lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 223.6G  0 disk
sdb           8:16   0 931.5G  0 disk
├─sdb1        8:17   0 931.5G  0 part
└─sdb9        8:25   0     8M  0 part
sdc           8:32   0 931.5G  0 disk
├─sdc1        8:33   0 931.5G  0 part
└─sdc9        8:41   0     8M  0 part
sdd           8:48   0 111.8G  0 disk
├─sdd1        8:49   0  1007K  0 part
├─sdd2        8:50   0   512M  0 part
└─sdd3        8:51   0 111.3G  0 part
sde           8:64   0 111.8G  0 disk
├─sde1        8:65   0  1007K  0 part
├─sde2        8:66   0   512M  0 part
└─sde3        8:67   0 111.3G  0 part
zd0         230:0    0  16.5G  0 disk
zd16        230:16   0  16.5G  0 disk
zd32        230:32   0  16.5G  0 disk
zd48        230:48   0  16.5G  0 disk
zd64        230:64   0   120G  0 disk
└─zd64p1    230:65   0   120G  0 part
zd80        230:80   0   500G  0 disk
├─zd80p1    230:81   0     1M  0 part
└─zd80p2    230:82   0   500G  0 part
nvme0n1     259:0    0 931.5G  0 disk
├─nvme0n1p1 259:2    0 931.5G  0 part
└─nvme0n1p9 259:3    0     8M  0 part
nvme1n1     259:1    0 931.5G  0 disk
├─nvme1n1p1 259:4    0 931.5G  0 part
└─nvme1n1p9 259:5    0     8M  0 part

sdb and sdc are the only two hard disks that appear as 1 TB (actually 931.5 GB). The other two TB disks are two ZFS mirrored NVME drives that I use for my VM pool (labeled below as vm_pool later on) where my Virtual Machines exist.

To create the zpool, we’ll run this command:
zpool create hdd_pool mirror sdb sdc

The command says that we’ll create a pool titled “hdd_pool” which will be a mirror that uses the sdb and sdc disks.

Verify with zpool list:

zpool list
NAME       SIZE  ALLOC    FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
hdd_pool   928G  116K     928G        -         -     0%     0%  1.00x    ONLINE  -
rpool      111G  17.2G   93.8G        -         -     2%    15%  1.00x    ONLINE  -
vm_pool    928G  159G     769G        -         -     7%    17%  1.00x    ONLINE  -

So we can see the hdd_pool has been created.

Creating and Mounting a ZFS Dataset

Now that the pool has been created, we need to create a new dataset that is mounted to a directory. It is a best practice to have a separate dataset for each VM. See this Reddit thread for that explanation.

Here, we’re going to create a new directory under /mnt/ and then two directories under that.

mkdir /mnt/hdd_pool_backups
mkdir /mnt/hdd_pool_backups/docker_awme
mkdir /mnt/hdd_pool_backups/win10_vm

As you can see here, I created a directory called “hdd_pool_backups” and then two directories under that titled “docker_awme” and “win10_vm” and that can be verified like this:

ls /mnt
hdd_pool_backups  hostrun  pve

Next, we need to create the datasets under the pools using zfs:

zfs create hdd_pool/backups
zfs create hdd_pool/backups/docker_awme -o mountpoint=/mnt/hdd_pool_backups/docker_awme
zfs create hdd_pool/backups/win10_vm -o mountpoint=/mnt/hdd_pool_backups/win10_vm

What this does is we are creating a dataset under the “hdd_pool” titled backup. Under that /backup/ dataset, we’re creating two datasets that point to their respective directory created in the previous step.

How that looks:

zfs list
NAME                                     USED  AVAIL     REFER  MOUNTPOINT
hdd_pool                                 222K   899G       25K  /hdd_pool
hdd_pool/backups                          72K   899G       24K  /hdd_pool/backups
hdd_pool/backups/docker_awme              24K   899G       24K  /mnt/hdd_pool_backups/docker_awme
hdd_pool/backups/win10_vm                 24K   899G       24K  /mnt/hdd_pool_backups/win10_vm
rpool                                   17.2G  90.4G      104K  /rpool
rpool/ROOT                              17.2G  90.4G       96K  /rpool/ROOT
rpool/ROOT/pve-1                        17.2G  90.4G     17.2G  /
rpool/data                                96K  90.4G       96K  /rpool/data
vm_pool                                  816G  83.4G       96K  /vm_pool
vm_pool/vm-100-disk-0                    624G   586G     93.3G  -
vm_pool/vm-100-state-a20210401_2151CST  17.0G  94.1G     6.27G  -
vm_pool/vm-100-state-a20210403_1410CST  17.0G  96.4G     3.94G  -
vm_pool/vm-100-state-a20210403_1531CST  17.0G  95.1G     5.26G  -
vm_pool/vm-100-state-a20210403_2031CST  17.0G  95.7G     4.63G  -
vm_pool/vm-150-disk-0                    124G   190G     17.2G  -

You can see that “hdd_pool/backups/docker_awme” and “hdd_pool/backups/win10_vm” were created and have their respective mountpoints.

Create Directories in Proxmox

We’re getting close!

Now we just need to create a Directory storage under the Datacenter. Navigate to Datacenter > Storage > Add > Directory and use the following information:

  • ID: name – I’m using hdd_pool_backup_docker_awme and hdd_pool_backup_win10_vm
  • Directory: <absolute dataset path> – This is the zfs dataset path, not the system file path. There should also be a leading forward slash (“/”) such as /hdd_pool/backups/docker_awme
  • Content: Backup
  • Set Backup Retention as needed

Once you hit create, the directory will appear in the list.

Create the Backup Job

The final step!

Now you can create a Backup: Datacenter > Backup > Add. Then under Storage, you should see the new directory that was created in the previous step. You can select all the other options that are unique to your situation.

To double-check that we’re in good shape, I went ahead and clicked on “Run now” just to make sure the that backup is indeed working as expected. Under the Tasks at the bottom of your Proxmox GUI, you can click on the current running tasks to see the progress of the backup. Once complete, you can also check the ZFS path in the command line to see the final result:

ls -lha /hdd_pool/backups/docker_awme/dump
total 55G
drwxr-xr-x 2 root root   4 Apr 11 05:49 .
drwxr-xr-x 3 root root   3 Apr 11 05:23 ..
-rw-r--r-- 1 root root 12K Apr 11 05:49 vzdump-qemu-100-2021_04_11-05_26_21.log
-rw-r--r-- 1 root root 55G Apr 11 05:49 vzdump-qemu-100-2021_04_11-05_26_21.vma.zst

Boom! 55 GB has been saved. If you wanted to know why it’s so large, this is a Docker virtual machine (bet you could have guessed that from some of the pool and directory names), that has many containers and their respective images and volumes.

So there you go, now you can use a ZFS pool to backup your VMs on Proxmox.

Filed Under: Proxmox Tagged With: backup, proxmox, virtual machines, zfs

Learning to Repair & Restore Guitars

July 25, 2019 by Aaron Weiss

In the last two years I began to play guitar again, but for nearly 20 years, I’ve only owned two guitars. A lightweight, highly inexpensive Jay Turser strat copy with a wood veneer, and a Carlos Robelli electric acoustic. Neither of these are valuable guitars, and I’ve honestly been ashamed of them for years. As a wiser adult, I’ve recognized their intrinsic value rather than monetary, and see that they stay in tune and play just fine.

My Jay Turser has been with me through good times and bad. I remember binge watching TV shows on my futon in college as I practiced pentatonic scales up and down the fretboard. There was a love-shame relationship with the guitar. There was a day that the guitar fell off the stand and the fretboard hit the corner of my dresser, leaving a deep, noticeable dent in the fretboard. There are just as many dings all over the body. Lastly, the action of the guitar was too high. I never had it adjusted by a professional because I didn’t see the value in having the guitar setup since I was embarrassed by the guitar’s branding and cheapness, and I did not have the resources or patience to work on it myself.

As my priorities changed, and I stopped displaying the guitar, which ultimately meant I stopped playing. My guitars were both sealed in their cases, as were my tiny 15 watt amp and pedals. These artifacts moved around with me from apartment to apartment, and I never had the inclination to play again.

Working on either of them never struck a chord because I was insecure about purchasing a new guitar if I broke one of them.

Plugging In and Tuning Up

Fast-forward to mid-2017. Minimalism became a new factor in my life. After donating and minimizing one area of my life, I turned my head to the corner of my closet to see my two guitars, amp, and box of guitar pedals. It was time for these to go. I knew the that pedals were worth more than all the guitars combined. I was fine with that. I had learned to let-go of the sunken cost of these items.

But something was calling me. I picked up the Jay Turser, tuned up the corroded strings, and strummed away. I was surprised how I was able to rip into the pentatonic scale so easily. Then I got an idea. To sing a song for my girlfriend as a surprise. I’ve never done anything like this before.

A New Hope

Things changed when I found a used 2012 PRS SE Paul Allender model in perfect shape for $300. That has now become my go-to guitar, and I credit that guitar forcing me to have no excuses on going forth practicing or feeling ashamed of my instrument.

I put my Jay Turser away as I found a new main axe, and I would ponder what to do with it in the future.

Restoring a Vintage Guitar

I found a used wah pedal on Facebook Marketplace for an excellent price. I picked up the unit and before I left, the guy asked me, “Do you work on guitars?”

The seller hands me a strat-style guitar with the pickguard detached from the body and the three single-coil pickups hanging from their soldering joints. “Here. It’s missing some screws and springs, but I could never find a wiring diagram for it. My wife would be just happy if I got rid of it. It’s free.”

1984 Ibanez Roadstar II RS135 in white before restoration
This is what the 1984 Ibanez Roadstar II RS135 in White looked like before it was restored.

Although my interest in guitars had been increasing thanks to the plethora of YouTube videos and resource the internet offered, I had decided not to spend the time and effort to fix, upgrade, or improve my guitars. However, when someone hands you a guitar that is already disassembled and not working, what do you have to lose? Although, what my girlfriend would say when I brought home a guitar when I told her I was only buying a used guitar pedal was worried me as I drove home. Thankfully, my girlfriend was more concerned about the guitar’s filth than the guitar itself.

After some research, the guitar was a 1984 Made in Japan Ibanez Roadstar II RS135 in White. The serial number denotes it was manufactured in May 1984. If you do not count gestation, this guitar was slightly older than myself.

Assessing the Guitar

The pickguard was off. There was a mini phase switch I’ve never seen on a guitar. There are dents in some of the frets. But searches showed that in near pristine condition, this guitar model was going for between $400-$500. Meaning, if I could fix this up, I could net an easy profit and gain a variety of skills.

I also found as much information about this guitar as possible. Including brochures, instructions, and information about the original Super 5 pickups.

I bought an inexpensive, entry-level soldering iron, a meter, a strat electronics kit, new mini switch, the closest matching pickup springs I could find, and original Sure-Grip II Knobs directly from Ibanez. I learned how to check the voltage of the pickups, and found that all three pickups were working and measured their output. This also helped me recognize which pickups were the neck, bridge, and middle pickups for layouts. I had lots of fun measuring the electronics, I even did it for my other guitars too.

I then watched as many guitar wiring videos as possible. What made this more difficult was the fact there was a mini switch. I was able to find nearly any type of wiring diagram for a guitar known to man-kind, but nothing that directly had a mini-switch for phase switching the middle pickup. I found wiring diagrams for the mini-switch, but not the switch alongside all the other components.

Fixing the guitar

One afternoon I prepared everything and took off all the current wiring. Upon realizing the the otentiometer that I had bought did not fit the pickguard, I had to back-out of my plans to replace all the electronics. Instead, I was able to replace the 5-way pickup switch and output jack. Then came the mini-switch. I wired exactly as it was when I originally received the guitar.

I was proud that I learned to use a soldering iron and didn’t hurt myself. That’s an achievement for a meek person like myself.

Mini Phase Switch
This phase switch proved to be a head-scratcher that didn’t perform how I expected once it started work.

When I hooked it up to my amp, the bridge pick up worked and so did the neck pickup. The middle pickup didn’t. After about another hour, I still couldn’t get it to work with the mini switch. When I wired the middle pickup with out the phase switch, it worked. I packed everything up and chose to just re-string the guitar and call it day.

Finally, I chose to focus only on the wiring diagram for the switch, and I tried something different. After another hour, I was able to get all three pickups to work. Even the phase switch worked, although I was annoyed that the sound of the phase switch wasn’t what I expected.

Playing the guitar

Now that the guitar’s electronics were working, I decided to restring the guitar and playing it over a month. This gave me the opportunity to really see if this was a guitar I wanted to keep.

While I enjoyed the guitar’s neck and fretboard, I found my strumming hand would hit the bridge often, which curled upwards. Overtime, I realize it wasn’t the guitar for me.

Selling

Next I wanted to re-paint the guitar. The guitar has notes of scratches, dents, scrapes, and various other marks. Reliced guitars have become very popular in recent years as they display an aesthetic patina from common use. However, this guitar had been abused. So my decision was to repaint it.

This is a tougher project as it requires stripping the current paint, lots of sanding, and multiple layers of new paint. This is a different sort of precision.

I ended up backing out of that idea as I wanted to just get rid of the thing to fund my next project, obtaining a Boss Katana 100.

Restored 1984 Ibanez Roadstar II RS135 White
The finished 1984 Ibanez Roadstar RS135 in White.

I put the guitar up on Craigslist and it didn’t take more than a few hours before a gentleman became obsessed about it. It was a similar guitar he grew up with. I sold the guitar for a nice profit and the buyer was stoked about getting the guitar.

Next Steps

Now that I sold that guitar, I plan on using my new skills to refurbish my Jay Turser. It needs some work and I’m looking into turning into a guitar solely to play Devin Townsend songs who uses an Open C turning.

Along with learning how to build and maintain a FreeNAS machine, fixing a guitar has becoming a learning experience that I’m cherishing. I was torn on not completely finishing the guitar’s restoration, but the fact that I got as much cash for it and the purchaser was happy that it hadn’t been repainted, perhaps I just lucked out.

 

Filed Under: Guitar Tagged With: Guitar Repair, Guitar Restoration, Ibanez, PRS, Vintage Guitar

How to Add Google Analytics to WordPress

July 18, 2019 by Aaron Weiss

Adding Google Analytics to WordPress can be as easy as installing and configuring a plugin, as efficient as customizing a theme, or as performance and scalable option using Google Tag Manager.WordPress continues to be one of the most recognized content management systems for website owners thanks to it’s easy-to-use publishing features, extensibility, and low-entry costs. Now that you have a WordPress website running, it’s time to know:

  • How visitors are accessing your website
  • Where are they are located
  • Who they may be, and their interests
  • What they are viewing
  • Why they might be visiting your website
  • As well as many other metrics and data that can help you learn about your website’s traffic

It doesn’t matter why you’re using WordPress, the next step is to know how well your traffic is working for you and how to create narratives to make it work better. Google Analytic has becoming the industry standard for website analytics thanks to it’s entry-level features, broad data aquisition, and simple user experience.

Table of Contents

  • What is Google Analytics?
  • Create and Setup your Google Analytics Account
    • Create a Google Account
    • Create a Google Analytics Account
  • Installing Google Analytics on WordPress
    • Installing Google Analytics with a WordPress Plugin
    • Installing Google Analytics without a WordPress Plugin
    • Installing Google Analytics with Google Tag Manager and WordPress
  • Create a Privacy Policy
  • Testing Google Analytics and Google Tag Manager
  • Conclusion

There are many choices on how to add this popular and robust website analytics platform to your WordPress website, and the option you choose is dependent on your skill level, time, and interest in performance.

This article will provide insight on what Google Analytics is, the options to install it on your WordPress website, and how to let your visitors know how Google Analytics is capturing their information for transparency.

This article will not discuss:

  • eCommerce tracking
  • Understanding Google Analytics metrics
  • Full Google Analytics account optimization
  • Other Google Product Integration

These areas will be written at a different time, or are already discussed in other articles on this website.

What is Google Analytics?

Google Analytics is the most widely-used website analytics tool for websites, not just for WordPress. The platform can track website sessions, duration, page visits, and various other metrics. Individually, these metrics can provide some understanding of what’s going on, but other metrics and reporting can be combined to create narratives that help you understand what is really occurring on your website.

The most popular aspect of Google Analytics is that it is free. Yep. Doesn’t cost you a penny. There is a paid version, but for 99% of users, the free version has all the features you’ll ever need, and even features you’ll never use.

The robust features and reporting of Google Analytics can get you lost in the weeds when you see how much the service can accumulate and display data.

Google Analytics also has what is called an application programming interface (API). For day-to-day business owners and website administrators, an API isn’t necessary to understand or use Google Analytics. However, programmers can use Google Analytics’s API to connect to other services, and you may find yourself being introduced to another service or program that allows you to connect your Google Analytics account, properties, and views to combine these services with third-party applications.

Where did Google Analytics Come From?

I believe context is important. Google Analytics was purchased by Google in 2005 from a company called Urchin. Google has expanded their platform since then and it continues to be a free service that has conquered the analytics world.

Create and Setup your Google Analytics Account

1. Create a Google Account

The first this to do is to create a Google Account if you do not have one. Gmail is a popular service from Google and is among the most popular ways to use Google’s vast array of products and services. This would count as a Google account. However, you are not required to have a Gmail account or email address. If you have an email address that you’d prefer to use with Google’s products and services, that’s fine too.

Go to https://accounts.google.com/signup and either create your free Gmail account or use the email address you prefer. If you need help, check out this video:

Creating a Google Account Video

Note: There is no sound.

2. Create a Google Analytics Account

Once you’ve created a Google Account, now you’ll need to create a Google Analytics account. Go to https://analytics.google.com/analytics/web/ when logged in with your Google Account, and complete the steps. Here’s a video showing how it’s done:

Creating a Google Analyitcs Account Video

Note: There is no sound.

Account & Property Setup

You’ll be asked to enter the following:

  • Account Name: This can be generally anything you want.
  • Website Name: This will be the name of the first property in your Account. Typically, adding the domain name or website URL is the best option for single websites or first-time users.
  • Website URL: This will be your website’s URL. Be sure to select between https and http, and then enter your website’s URL. If your website doesn’t use www, do not add it.
  • Industry Category: Select the category that best resembles your website. This helps with benchmarking.
  • Reporting Time Zone: What time zone are you in?
  • Data Sharing: These are options to share your Google Analytics data within Google’s broader services. Typically, selecting “Google products & services” and “Benchmarking” is just fine.
  • Click on “Get Tracking ID”.

Agree to Terms of Service

You’ll then be taken to a few Terms of Agreement Pages. It is recommended to read and understand these agreements to understand what information Google tracks.

Tracking ID

You’ll then be taken to the Tracking Code page of your Google Analytics account. You’ll always have an opportunity to re-visit this page. You’ll be given a Universal Analytics ID (UA) that starts with UA-. You’ll also see some HTML code that needs to be added ideally between the <head></head> HTML code on every page of your website that you want to track. Don’t worry, we’ll get to adding this later.

Brief Overview of your Google Analytics Account

Creating an account will automatically create an Account, Property, and an All Web Site Data View. Here are the differences between an Account, Property, and View:

  • Accounts have high-level management of settings, users, filters, and can view change history.
  • Property(ies) allow you to house multiple websites under the account. Each website is considered a property. Under a website’s property, there are options to adjust broader aspects of the analytics code for the website. Consider your website a property.
  • Views allow you to adjust how your property captures data. In most cases, you’ll want to have a few different views. This will allow you to filter out various IP addresses, hostnames, and other traffic, manage your content and channel settings, among other options that help you report, manage, and display data.

Creating a new View

As stated above, your first and only view when you start a Google Analytics account is the All Web Site Data view.In this instance, we’re going to create one extra view. We’ll call this “Filtered” and we’ll filter out our current IP Address. This way, we will not collect information when we visit or our website.

More on Filters

Filters allow you filter out various types of traffic. In the following steps, we only be filtering your personal IP address. You can exclude traffic from internet service providers, subdirectories, or even specific hostnames. This will be handy later on if you use other services that crawl or access your website.

Create a new View.

Create a New View
Click here to enlarge

Use these settings to start:

  • Reporting View Name: Filtered
  • Reporting Time Zone: Choose your time zone
  • Click “Create View.”
New View Settings
Click here to enlarge

Adjust the View settings to ensure we’re filtering out known bots.

  • Bot Filtering: Enabled
  • Save.
Additional View Settings
Click here to enlarge

Before we setup our first filter, we need to know what our IP address is. Go to Google and type in “What’s my IP address”

What's My IP Address
Click here to enlarge

Come back to Google Analytics, and select Filters, then click on “Add Filter.”

Adding a Filter to a View
Click here to enlarge

Now you will enter the following:

  • Select “Create new Filter.”
  • Filter Name: IP Address
  • Filter Type: Predefined
    • Exclude
    • traffic from the IP addresses
    • that are equal to
  • Enter your IP address that you found on Google from one of the previous steps.
Add Filter to View
Click here to enlarge

Now, you’ll be able to browse your own WordPress website without Google Analytics capturing your visits as traffic.
We’ll come back to optimizing your Google Analytics account, properties, and views later in another article.

Installing Google Analytics on WordPress

There are many ways to install Google Analytics on your WordPress website. With so many options, there are various pros and cons. We’ll show three ways to add Google Analytics to your website; with a plugin, within your WordPress theme, and with Google Tag Manager, which can also be added within a plugin or theme.

Installing Google Analytics with a WordPress Plugin

There are no shortages for Google Analytics WordPress plugins available, and the competition is tight. Plugins are perfect for entry-level users who just need the basic setups. Below are a few of the most popular Google Analytics plugins for WordPress.As the comparison table shows above, among the pros of using a plugin is that they are east to install and basic functionality is free, with upgrade options to open a vast array of options.

Among the cons is that it’s another plugin that you’re introducing to your website, potentially slowing it down, increasing security vulnerabilities, may break or be incompatible with other plugins, or break functionality upon upgrade.

Pros and Cons of using Plugins

ProsCons
Easy to installAnother plugin, might slow down your site
Vast array of optionsNeeds to be updated
Free and Premium optionsSome options require premium purchases
Security implications
May break with updates
Caution: One common feature among the below plugins is they allow you to display Google Analytics data within WordPress. While these features might be helpful to some, the additional amount of processing this requires from your host may bog-down your website’s speed and performance. I recommend not using dashboard features and visiting Google Analytics directly to view your traffic data.

Most Popular Google Analytics WordPress Plugins

Google Analytics Dashboard Plugin for WordPress by MonsterInsights

This plugin was originally a Yoast product – the same company that brings you the popular Yoast SEO WordPress Plugin. A few years ago, the plugin was sold to MonsterInsights the same team behind WPBeginner.

Since then, the plugin’s more advanced features have been split between a free and paid version. The free version provides plenty of opportunities for intermediate tracking with Google Analytics. However, the paid versions are stupidly over-priced and don’t provide the level of services expected at that price point.

At the end of the day, this plugin does the job just fine.

Google Analytics Dashboard for WP by ExactMetrics

This Google Analytics WordPress plugin is also also by the same company behind WPBeginner and MonsterInsights is this plugin. Yep, this plugin was acquired by Syed Balkhi in May 2018. It’s strange that a company would choose to acquire two separate Google Analytics WordPress plugins, essentially cornering Google Analytics WordPress plugin market. In hindsight, it’s not a good idea for a free plugin that provides the same features that MonsterInsights is offering a exorbitant prices to run amok.

At this time (July 2019), this plugin continues to provide a robust set of features that the MonsterInsights version only offers but at no charge. However, be prepared for this plugin to either be merged into the aforementioned MonsterInsights version or having more advanced features placed under a premium version. Get it before it’s locked down.

The Rest

The remaining Google Analytics plugins for WordPress offer more or less of the same thing, and there are tons of choices. Unfortunately, to have full control over how Google Analytics is installed and setup on your WordPress website requires a premium or professional version of a plugin.

Installing Google Analytics without a WordPress Plugin

If you’re looking to reduce your server’s load with one less plugin and you feel comfortable with adding Google Analytics to your WordPress website at your theme’s template level, this method is your best bet.There are two additional options in this situation. You can add the code provided in the Tracking Code section of Google Analytics to your header.php file the safer option, or to your functions.php file the cleanest option.

Pros and Cons of using a Theme

ProsCons
FreeRequires some comfort with working with code
Learn to work with theme filesMight be over-written with theme updates
Some themes provide native supportSome options require premium purchases
Caution: Regardless of either method, it is imperative that you understand that either of these methods is advanced and that you should backup your WordPress with the backup method you feel is the best option, and that you can recover a backup if something goes wrong. Read the blog post “You Need a Backup and Disaster Recovery Plan” to understand the importance of backing up your website and knowing how to recover.
Theme Options

Your WordPress theme may offer an area where you can either add your Google Analytics code, or just the UA code. The only downside to this method is it doesn’t give you an option to place the code exactly where you may want it to go, or their code implementation isn’t fully compatible.

Google Analytics Code in header.php

This method is the safest option and will allow you install the Google Analytics code directly between the <head> </head> HTML elements, which is where Google Analytics prefers for it to be installed.

Simply navigate from your WordPress Dashboard to Appearance > Themes > Editor, and then find the header.php file and click on it. In there, somewhere before the </head> HTML element, you can copy and paste the Google Analytics code provided in the Tracking Code page in Google Analytics. Save and test. It will look something like this:

Boom. You’re done.

Google Analytics Code in a WordPress Theme’s functions.php

This option can be a little riskier, and is the preferred method if you want a really slick, performance-focused website. However, if you miss something you’ll get the infamous WordPress white screen of death. I recommend making a backup of this file, or your entire website for that matter, and be ready to move the backup functions.php file to your server in case your experience an issue.

Using this route essentially creates a new action that places the code on the page in a specific spot. The benefit to this method is that you can move this action around as you need to in case other scripts or code needs to be added before or after it.

Simply navigate from your WordPress Dashboard to Appearance > Themes > Editor, and then find the functions.php file and click on it. At the very bottom of this file enter the following code and replace the UA code with your own unique UA code.

Installing Google Analytics with Google Tag Manager and WordPress

The previous methods work well. However, there’s another advanced option that might benefit you if you plan on expanding the amount of scripts that appear on your website, such as Facebook Pixel or other marketing and tracking codes.The biggest benefit to this option is that when you need to install more tracking code on your website, you don’t need to install that code using a plugin or in your WordPress theme’s template files, which as stated earlier, is risky.

Instead of adding just Google Analytics code, you’ll add Google Tag Manager code. Google Tag Manager allows you to create various containers that contain scripts or code that can be executed based on various triggers. Additionally, the Tag Manager code loads asynchronously, which means it loads in parallel to your website’s other requests. If you installed multiple tracking codes directly on your website, each script would be loaded one-by-one, slowing down your site’s loading time.

Pros and Cons of Google Tag Manager

ProsCons
FreeNeed to add as a plugin or in a theme
Install other tracking scriptsCan be complicated
Lightweight and fast
Use the same Google Account

Unlike Google Analytics, Google Tag Manager has two sets of code that needs to be added to your website. Once set will be added within the <head></head> HTML elements, and another set right after the open of the <body> element. This means you’ll need to edit two WordPress theme files, or just your functions.php file.

Create a Google Tag Manager Account & Publish Your First Container

When you first visit Google Tag Manager, click on “Create Account”.

Create a Google Tag Manager Account
Click here to enlarge

On the new account setup page, you will enter in your:

  • Account Name
  • Select your Country
  • Container Name
  • Choose “Web”
  • Click “Create”
Setup your Google Tag Manager Account
Click here to enlarge

You’ll now be presented with two sets of code. The first will be added between the <head></head> HTML elements and sections on your WordPress website. Please see the code below to learn how to install that code on your website.

Google Tag Manager Code and Installation Instructions
Click here to enlarge

Next, you’ll create a “New Tag.”

Create a new Google Tag Manager Tag
Click here to enlarge

You will choose a Tag Type. In this instance, you’ll select, “Google Analytics – Universal Analytics.”

Choose Google Analytics Predefined tag type in Google Tag Manager
Click here to enlarge

Now, you will change the name of the Tag to “Google Analytics”, and click on the Tag Configuration edit button.

New Tag Setup
Click here to enlarge

With the Tag Type already selected, you can use these settings:

  • Track Type: Page View
  • Enable ovverriding settings in this tag
  • Enter your Google Analytics Tracking ID Code. Remember, this starts with the UA-

You’re welcome to review other settings and adjust to your needs.

Tag Manager Tag Configuration
Click here to enlarge

Next, you will choose to add a new Trigger.

Create a New Trigger
Click here to enlarge

Because you selected Google Analytics earlier, a trigger named “All Pages” with a Type of “Page View” is avaialble for you to select. Go ahead and select it.

Choose all page triggers in Google Tag Manager
Click here to enlarge

Save the New Tag.

Save Tag in Tag Manager
Click here to enlarge

Submit your Workspace. and add optional description.

Submit Workspace Update
Click here to enlarge

Write an optional, informative description about your workspace and version. Then click “Publish”.

Google Tag Manager Submit Workspace for Publish
Click here to enlarge

Last, you’ll be presented with a result page of your publish.

Google Tag Manager Publish Results
Click here to enlarge

Google Tag Manager Code in functions.php

Next, we’ll install the code. Again, we’re presented with the option of adding this code with a WordPress plugin, or in theme files. However, for simplicity, we’ll simply use a functions.php file.

Enter the code below in your functions.php file and replace the XXXXXX with your GTM– code in both places.

It’s better to use this code which tells WordPress to place the necessary code in both places, rather than edit two files.

Save and Test.

Create a Privacy Policy Page on WordPress

You might thing that we’re done, but to be fully transparent, comply with most government regulations, and even Google Analytics’s terms of service, you need to let your visitors know that you are using this service which collects data from your visitors in a Privacy Policy page.

If you’ve installed WordPress recently, you’ll automatically have a Privacy Policy page created to help you get started. Feel free to review my own Privacy Policy page and copy and adjust that information to your needs.

Testing Google Analytics and Google Tag Manager with Google Tag Assistant

Other than checking your website’s source (usually Ctrl + C on Windows, Command + U on Mac, or right-click and “view source” on most browsers), you can also install Google’s Tag Assistant on Chrome.

This browser extension helps you check to see if a particular Google services’ code is installed correctly on your website or any website for that matter. Not only does this work with Tag Manager and Google Analytics, it also works with Google Ads too.

Enjoy Google Analytics on Your WordPress Website

It’s all over! You did it!

Now go forth and create great content on your website and share it with the world. You’ll start seeing data appear in your Google Analytics account soon.

Next, learn how you can either optimize your Google Analytics settings for more accurate data capture and what your Google Analytics data means and how to take action.

Filed Under: Film & Television, Google Analytics, WordPress Tagged With: google analytics, google tag manager, plugins, themes, wordpress

FreeNAS: A Hero’s Journey

July 5, 2019 by Aaron Weiss

Building and maintaining a FreeNAS server in my home has been a rewarding experience that continues to provide me with value and an avenue to grow personally and professionally.

It’s an experience generally started with loss, some stability, neglect, some more loss, stress, and then eventually some stability and growth.

Backstory

I bought my Netgear ReadyNAS NV+ in 2010 after I suffered my very first HDD failure where I lost hours of video footage. Luckily, it was archival video, nothing urgent. The scenario left me yearning to never let it happen again.

I learned all about the available redundancy options for storage and backup, and set my sights on Netgear’s X-RAID feature with their ReadyNAS platform, allowing for 1 of 4 hard drive failures. I thought that would be enough for my budget at the time.

Around 2017, I received a notice that the machine would no longer be supported with software updates. Great. It was bound to happen. On a tight personal budget, I looked for new options but never committed to anything.

Inciting Incident

A late-Summer 2018 Florida thunderstorm sent my dog into a static-electricity induced panic attack, including heavy panting and a neediness where she was attached to my leg with imaginary heavy-duty Velcro.

Despite the many UPS units around my home, I failed to connect the coaxial cable that carried my broadband internet connection to the UPS. A lightning strike hit a nearby coaxial terminal that fed surrounding apartment buildings their internet. The surge carried itself to my modem which let out a internal thunderclap that also sprinkled its way through two additional WiFi routers, which were also destroyed in the surge.

The last in the chain was my ReadyNAS which was hit too. I was able to power on the device again, and after a file system check, it booted. But no network connectivity. The NIC was fried.

Call to Adventure

After the disappointment faded, action needed to take place. I needed to:

  1. Get access to my data.
  2. Find and implement a new solution. I narrowed my options to:
    1. Buying a more modern ReadyNAS device
    2. Building a DIY NAS using FreeNAS or other similar software

I had found similar instances of users’ NIC ports getting hit by surges and recoveries possible on the same device and model. It turns out that ReadyNAS’s X-RAID solution is just a Linux-based RAID with some bells and whistles, and there were many ways to retrieve this information. However, this would have required the need to build a separate machine that could connect to all 4 of my drives. Therefore, building a new machine would be the eventual course of action.

Crossing the First Threshold

It turned out that one could purchase a used ReadyNAS of the same model. Finding a version that matched my version was difficult, and often times I waited too long to bid before an auction was purchased from under me. After a few weeks I finally found a compatible version on eBay.

The moment I was able to re-install all my drives, boot, and see my data appear was a million pounds of stress off my shoulders. My data was safe, but I need a new solution to backup my main computer as soon as I could.

While I did have a great experience with ReadyNAS and Netgear products in general, I felt that I needed personal and professional growth, and FreeNAS would be my choice. I’ve built many computers in my life, but this would be the first that was specific to being a server and maintain it.

Land of Adventure

After nearly a month of research and deciding on a budget and components, I chose the following:

  • SUPERMICRO MBD-X9SCM-F-O Server Motherboard. This motherboard is now discontinued, which helped get it at a reasonable price.
  • Intel Pentium G2140 3.30GHz Processor BX80637G2140. A simple dual-core ECC-compatible processor
  • 3x Kingston ValueRAM 4GB 240-Pin DDR3 SDRAM ECC Unbuffered DDR3 1333 Server Memory Model KVR1333D3E9S/4G. They say 1GB of RAM for each terabyte of data.
  • 4x White Label SATA 6 GB/s 3TB Hard Drives. These White Label drives reduced my price considerably, but as you’ll later learn, it was not the best choice.
  • BitFenix No Power Supply MicroATX Tower Case BFC-PHM-300-KKXKK-RP. I thought this would be an excellent low-profile case. Wrong.
  • EVGA 450 B3, 80+ Bronze 450W, Fully Modular, EVGA ECO Mode.  I simple somewhat eco-friendly power supply.
  • 2x SanDisk Ultra Fit 32GB USB 3.0 Flash Drive – SDCZ43-032G-GAM46 . The 2 USB sticks house the FreeNAS OS and are mirrored for boot redundancy.
  • CyberPower CP825LCD 450W. A dedicated UPS for the new NAS.
  • 50cm 10Pin Motherboard Female Header to Dual USB 2.0 Adapter Cable. Help connect the case cable to the motherboard
  • 19-Pin USB3.0 to USB2.0 Adapter Header Cable. Connect case’s USB 3.0 power buttons to USB 2.0 motherboard header.
  • 2 Port Internal USB 3.0 Motherboard Header Adapter Cable
    • Easily connect the USB drives to the motherboard for a cleaner external aesthetic

Spiritual Death and Rebirth

Once all the components came, installing them was tricky because the BitFenix MicroATX Case is a strange case not mean for a NAS, but I made it work anyway. I’ve considered moving my personal machine components to it, but that hasn’t happened. This would be one of the first lessons in this journey.

Road of Trials

Testing

Thanks to the plethora of FreeNAS information, I had plenty of tools ready to test the components before moving forward.

My testing was predominately done using Ultimate Boot CD, which included CPU and memory testing tools. Memtest passed as well as CPU burn in. I finally noticed that one of the not HDDs passing my test. RMA!!!!

A new drive arrived, but wasn’t being discovered at all. Even by my personal computer. That’s two White Label HDDs RMAed. I contacted the company, they had no problem with the RMA and even explained they’d test a HDD before it’s sent to me. I guess that shows you the profit margin on these White Label HDDs.

Installation

Installing FreeNAS is super simple. You really don’t need to know any command line knowledge at all. When you get to the screen that says “you want FreeNAS”, you just hit the “hell yes” button, and within 5 minutes or so, your FreeNAS is installed, and displays a few options for additional administration and an IP address to visit.

Refusal of the Return

After the testing and installation, I began to configure the system how I expected to use it. Creating Windows shares, labeling drives within the system, and one of the most rewarding aspects: finding and customizing shell scripts to perform testing and reports.

I was able to find scripts that can email SMART reports, UPS reports, and security reports to start. Learning shell scripting is something that I’ve been able to carry on to other server operations which would come later. One of the most important scripts creates a daily configuration file so that in case something happens to the OS or hardware, I’ll be able to get back up and running on a new system and maintain my configurations and pool.

The Return

With everything setup, I could finally transfer my data from one NAS to another. Since there’s about a 10 year difference between architecture, there was also about about a 10x difference in speed. The ReadyNAS could sustain a transfer rate of less than 30MBs where as the FreeNAS can get to just about 100MBs. At the <30MB rate, it would be a day and half of transfers.

Once everything was said and done, I was able to begin scheduling various backups and file syncs to bring myself back to a fully redundant workflow.

Freedom to Live

Thanks to several built-in plugins, I’ve been able to enjoy services such as Plex to watch videos on my FreeNAS from my Amazon Firestick.

I finally decommissioned my ReadyNAS, and sold both the working and non-working NV+ devices on eBay for some scratch money, and had the old hard drives destroyed.

The process was long, but fulfilling beyond just having my data redundant. I’ve been taken advantage of Virtual Machines and learning Linux in general, which is allowing me to grow further.

Filed Under: TrueNAS Tagged With: nas, raid

Primary Sidebar

Recent Posts

  • TrueNAS Virtual Machine with Ubuntu 18.04 Halting with Signal 11
  • Proxmox ZFS Disk Replacement and Drive Expansion
  • How To Create ZFS Backups in Proxmox
  • Multiple UPS on the same NUT-Server
  • Learning Graylog for Fun and Profit

Categories

  • Film & Television
  • Google Analytics
  • Guitar
  • Lifestyle
  • Projects
  • Proxmox
  • Search Engine Optimization
  • Technology
  • TrueNAS
  • Uncategorized
  • Website Administration
  • WordPress
  • Home
  • Blog
  • About Aaron Weiss
  • Contact
  • Privacy Policy
  • Affiliate Disclosure

© Aaron Weiss. Built with WordPress using the Genesis Framework. Hosted on a2 Hosting and DigitalOcean. Aaron Weiss's LinkedIn Profile