Linux LVM Super Simple to Expand

During the Boxing Day sales event of 2017, I purchased a couple of Seagate Barracuda ST4000DM004 (4TB) hard drives. The intention is to expand our main home network storage, which is a network accessible / attached storage (NAS) managed by our Linux server using mdadm and Logical Volume Manager (LVM).

However I procrastinated until this weekend and finally performed the upgrade. The task went smoothly without any hiccups. I have to give due credit to the following site: https://raid.wiki.kernel.org/index.php/Growing. It really provided very detail information for me to follow. It was a great help.

One major concern I had was whether I can do this without any data loss, and a question of how much down time would this upgrade require.

I had a logical volume, named /dev/airvideovg2/airvideo, consisted of 100% usage of a volume group which was made up of three RAID-1 multiple devices (md). Since I ran out of physical drive bays, to perform the upgrade, I had to effectively replace 2 older drives which were 2TB in size with the newer 4TB drives. The old drives were Western Digital WDC WD20EZRX-00D8PB0 (2TB). I can use these old drives for other needs.

First I had to find the md containing the 2TB pair in RAID-1 (mirror) configuration. I did this with a combination of lsblk and mdadm commands. For example:

$ lsblk
NAME                       MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sdb                          8:0    0  1.8T  0 disk
└─sdb1                       8:1    0  1.8T  0 part
  └─md2                      9:3    0  1.8T  0 raid1
    └─airvideovg2-airvideo 252:0    0   10T  0 lvm   /mnt/airvideo

$ sudo mdadm --detail /dev/md2
/dev/md2:
        Version : 1.2
  Creation Time : Sat Nov 12 18:01:36 2016
     Raid Level : raid1
     Array Size : 1906885632 (1725.90 GiB 2000.65 GB)
  Used Dev Size : 1906885632 (1725.90 GiB 2000.65 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

  Intent Bitmap : Internal

    Update Time : Sun Mar 11 09:12:05 2018
          State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : avs:2  (local to host avs)
           UUID : 3d1afb64:878574e6:f9beb686:00eebdd5
         Events : 55191

    Number   Major   Minor   RaidDevice State
       2       8       81        0      active sync   /dev/sdf1
       3       8       17        1      active sync   /dev/sdb1

I found that I needed to replace /dev/md2 which consisted of two /dev/sdf1 and /dev/sdb1 partitions. These partitions belonged respectively to the old WD drives. I have 6 hard drives in the server chassis, so I needed to get the serial number of the drives to ensure that I was swapping the right one. I used the hdparm command to get serial number of /dev/sdb and /dev/sdf. For example:

$ sudo hdparm -i /dev/sdb

/dev/sdb:

 Model=WDC WD20EZRX-00D8PB0, FwRev=0001, SerialNo=WD-WCC4M4UDRZLD
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=off
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=7814037168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4 
 DMA modes:  mdma0 mdma1 mdma2 
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: unknown:  ATA/ATAPI-4,5,6,7

 * signifies the current active mode

Before I physically replace the drives, I must first remove them from the md device by doing the following.

sudo mdadm -f /dev/md2 /dev/sdb1
sudo mdadm -r /dev/md2 /dev/sdb1

After swapping out only one of the drives, and replaced it with a new one, I rebooted the machine. I first have to partitioned the new drive using the parted command.

sudo parted /dev/sdb

Once within parted, execute the following commands to create a single partition using the whole drive.

mklabel gpt
mkpart primary 2048s 100%

I learned that I can only start at sector 2048 to achieve optimal alignment. Once I created the /dev/sdb1 partition, I have to add it back into the RAID.

sudo mdadm --add /dev/md2 /dev/sdb1

As soon as the new partition with the new drive was added into the RAID, a drive resynchronization begins automatically. The resync took more than 3 hours. Once the resync is completed, I did the same thing with the remaining old drive in the RAID, and performed another resync. This time from the first new drive to the second new drive. After another 3+ hours, we can now grow the RAID device.

sudo mdadm --grow /dev/md2 --bitmap none
sudo mdadm --grow /dev/md2 --size max
sudo mdadm --wait /dev/md2
sudo mdadm --grow /dev/md2 --bitmap internal

The third command (–wait) took another 3+ hours to complete. After a full day of RAID resync, we now have the same /dev/md2 that is 4TB instead of 2TB in size. However the corresponding physical volume of LVM still needed to be resized. We did this with:

sudo pvresize /dev/md2

Once the physical volume is resized, we can then extend the logical volume to use up the remaining free space that we just added.

lvresize -l +100%FREE /dev/airvideovg2/airvideo

This took a few minutes but at least it was not 3+ hours.

Aside from the down time that I had to use to swap the hard drives, the logical volume was usable throughout the resynchronization and resizing process. This was impressive. However, now I have to take the volume offline by first umount the volume and changing it to inactive status.

sudo lvchange -an /dev/airvideovg2/airvideo

Note that I had stop the smbd and other services that was using the volume before I can unmount it.

The last step is to resize the file system of the logical volume, but before I can do that I was forced to perform a file system check.

e2fsck -f /dev/airvideovg2/airvideo
resize2fs -p /dev/airvideovg2/airvideo

I rebooted the machine to ensure all the new configurations held, and voila I upgraded my 8TB network attached storage to 10TB! Okay it was not super simple, but the upgrade process was pretty simple and painless. The down time was minimal. The LVM and mdadm guys did a really good job here.

Possible Future of the Connected Watch

On Tuesday of this week, Apple announced the Apple Watch Series 3 with the ability to connect to the LTE data network, allowing the watch to stay connected to the Internet without an accompanying iPhone. This greatly enhances its functionality and removes its original handicap and its requirement to always be tethered to the phone. You can now get notifications and listen to the plethora of songs on Apple Music while on the go without your phone. The future is here.

Ever since the Apple Watch was released in the spring of 2015, it has been thought of as a companion device to the phone. However, I always thought it should be the other way around. The phone and tablet should be the companion devices to the watch!

The watch should be the only device that has the mobile networking radios and should operate in an always on manner, while sharing a personal hotspot via its WiFi radios. The phone and tablets can then function as displays with WiFi connectivity to your watch. This will also simplify your cellular data plans. I just see this as a more convenient setup, and hopefully a cheaper way to go with your mobile carrier.

As memory capacity increases with the watch, personal identity, application data, and other confidential information can be stored on the watch akin to the secure enclave on the iPhone today. This way display centric devices slaved to the watch can restore your last working state from the watch. Imagine a world where display slates are near commodity devices sans your personal information. You can be working with a shared slate in the office. All the while, your data is being centralized and stored securely on the watch. When you travel offsite at the airport or in the hotel, you pickup another shared slate, and you continue to work where you left off.

It is also more difficult to lose your watch than your phone. When you do misplace your phone and cannot find it, then just pickup another, because your personal data is stored on your watch.

Power consumption is probably going to be a major challenge for the watch in this scenario. But if the power challenge can be solved, then imagine having only WiFi display slates of any size of your choosing, and your watch has the only mobile data radio you will need. Instead of the phone being your most personalized information device, it will be your watch. I hope Apple has this vision in mind. Do you believe this to be a better future?

Three Cheers for Software RAID

Last year, I built a NAS machine as referenced by my previous post here. This month, my media drive composed of an LVM logical volume of almost 5TB is almost filled.

This drive contains all purchased media and our home videos for Plex, as well as our time machine backups. To alleviate the storage shortage, I purchased two 4TB Western Digital WD40EFRX hard drives. This weekend I took the plunge and installed the two new drives into my NAS computer. In the spirit of the moment, without performing a backup, I proceeded to:

  • Use parted to partition the drives;
  • Use mdadm to create a RAID 1 device of the two drives;
  • Created a new LVM physical volume with the new RAID device;
  • Added the volume to the existing volume group;
  • Extend the logical volume to newly added 4TB;
  • and finally, Extend the ext4 file system to include the 4TB

In the end, I now have a near 9TB network drive that should last me for quite sometime.

In researching how to extend the logical volume, I also found out how I can upgrade my drives in my existing physical volumes to higher capacity drives without having to recopy everything to another drive first. This should come in handy in the future, because my NAS computer box has no more drive bays.

I know I probably should have taken a backup before this, but everything worked and I couldn’t be happier. Hurray, hurray, and hurray for software RAID.

Thank you Gigabyte and Western Digital

This morning I upgraded my media server. The server was running on a seven years old motherboard, Gigabyte GA-M61PME-S2P, and an AMD Athlon II X2 245 processor. The hard drive is the oldest, a Western Digital WDC WD800JB-00JJ 80GB hard drive that was released back in 2007. This makes the drive 9 years old! At the time of this update, all systems were nominal and operating without issues. Running Ubuntu 16.04.1 LTS (Xenial Xerus), next to my iMac, it was the lowest maintenance box I’ve ever put together.

The real reason for the upgrade is for me to reduce the power footprint of a box that is effectively running 7×24. Even when it was idling, the old components where clocking in at 100+ W of power usage.

I decided to replace the motherboard and cpu with an ASRock AM1H-ITX and a system on a chip AMD Athlon 5350 APU. I was able to get the system down to 55W. I also replaced the old WD800JB with a Seagate BarraCuda 7200.10 ST3500630AS 500GB hard drive, along with the existing 4 WD Green EZRX hard drives. A total of 5 traditional mechanical hard drives. Along with new Kingston HyperX Fury Black 8GB memory, this entire upgrade cost less than $220 CAD with taxes included.

I want to shoutout to Clonezilla. What an amazing job they did in creating a super simple piece of software to clone drives and partitions. Of course Linux is just so wonderful to work with. After changing the CPU and Motherboard, the original Ubuntu installation boot up and run without any major issues. The only wrinkle I had was the ethernet port that came with the new motherboard had a new logical name (enp3s0 vs eth0). Luckily, I know how to fix that. My LVM volume assembled without a hitch. Everything is now running fine with the new hardware and configuration.

My next step in the coming months is to shop for a 500GB SSD. Perhaps I can find one during Cyber Monday or Black Friday sales. This should further reduce my power footprint and also increase my performance.

AI & Our Future Generations

When I came into the workforce in the early 90’s, any career connected to the computer was hot. The Internet was at its infancy. Any two or more (often just two) computers connected was called a network, which was a huge deal. Believe it or not email was the killer app. The World Wide Web was not invented yet, and when it came into the scene, finding a photo on a web page was a big deal.

My young and arrogant mind was extremely happy with myself, since I was all ready to take on the world with an engineering degree specializing in computers. It was a fearless time. We called the shots, not the employers. Our salaries increase astronomically, often with accompanying perks. We could do no wrong, because we were in demand.

I remember reading an article about our company’s solution. The solution was installed at a food and beverage manufacturer, who recently announced a significant layoff caused by the application of our software. Our customer was happy, because we saved them a tremendous amount of costs. I thought that anyone who picked a career in a job involving repetitive tasks will be in trouble. Cashiers, banking tellers, and warehouse pickers are a few that comes to mind.

We were all too eager to implement algorithms and solutions to turn repeatable tasks into optimal applications running on computers. We as a profession were clear and present danger to people’s livelihood who were dependent on honest jobs that are replaceable by robotics, advance supply chains, automated warehouses, or just simply better data visibility and communication. On reflection, I was / am part of a group that is undermining the economic value of a human being in a capitalist economy. People that are displaced are forced to upgrade and migrate their skills to other areas that are still in demand.

With artificial intelligence (AI) and machine learning coming into the consumer and business market in a big way, I am led to believe that the next set of jobs, jobs requiring judgement and decision making are now potentially replaceable by AI technology. Even software developer jobs may be under threat, when you have technologies like Viv that fulfills a human vocal request by manufacturing a custom program. I fear that replacement of traditional professions like lawyers and doctors are not too far away when IBM Watson can now perform medical diagnosis. How will these displaced professionals upgrade their skills?

In today’s news, one can frequently find mentions of self driving cars. How they are on the cusp of mass market availability and adoption. Companies like Tesla, Apple, and Uber are all either actively implementing production quality solutions or developing them. Imagine all the UPS, Fedex, freight truck and taxi drivers that will be displaced. The disruption does not stop there. If the technology is as successful as advocates tout it to be, then accident rates will drop. The transition from human to driverless solutions can translate to a large decline in automotive body shop business, and potential insurance revenue impact.

You can make arguments that displaced drivers will find other types of work, but I fear that under the current, exponential improvement of AI technology, the total some of human demand in the economy will continue to diminish, because AI will be so good that you will be hard pressed to find a job that AI cannot perform. So whenever you have an over supply of humans and a dwindling demand of their usability, you get erosion of the economic value of human beings.

So what’s wrong with this picture? Is it not good that AI capable machines pamper us and do all the hard work and thinking?

Assuming that we continue to function in a market based society, my immediate concern is, how does the next generation make their income when their economic value is eroded to the point where there may not be any jobs left. Well, I suppose there are jobs that involve creativity and innovation, such as artists, and musicians. From another hopeful perspective, this may resolve itself since providers, even if they are machine run, must find matching buyers with enough spending power to buy their products and services.

My second concern is, as a species, how do we continue to excel in our own knowledge and achievements, when AI can solve most of our problems. You can probably find some evidence of this today, with the usage of Google and other specialized search engines. I am not sure that the current education system are raising deep thinkers complemented by these new AI based tools, or more academically hampered ones because of the same tools.

Lastly, there is the Matrix or Terminator scenario, but the difference is that it may not be a violent take over. It could be a slow transition, as we welcome these technologies as new found creature comforts. A gradual displacement of our economic worth and values, until we are all powerless with our machine overlords. Or if you believe in Ray Kurzweil’s singularity, we can be in a symbiotic, and harmonious relationship with the AI machines.

Please tell me that my fear for our future generations are unfounded.

 

Google Adopts Apple Combine Hardware and Software Philosophy

Google held an event earlier today and introduced a suite of new hardware:

  • A phone called Pixel that works with Daydream their new VR headset;
  • Google WiFi router;
  • And an Amazon Echo like device called Google Home, that will work seamlessly with existing Chromecast devices

Google Assistant is the culmination of Google’s software strength in the area of search and machine learning. The event is peppered with a plethora of examples on how your daily life will be improved and facilitated by the Google Assistant through the use of Google’s new hardware. The hardware and software combination makes for a compelling and attractive offering to join the Google ecosystem.

I think Google is finally seeing the light of Apple’s philosophy of building solutions with full control of both hardware and software design. Apple still has two other areas where Google is still lacking:

  • A retail presence with a second to none personable support experience;
  • And its devotion and practice in personal privacy

It will be interesting to see if a future Google will make ways to close the remaining gaps. Of course, I’m also worried about how Google will serve you ads through these devices once they’ve trapped you into their ecosystem.