New home virtualisation lab

Intro

It’s been a while since I’ve built my current home lab. It’s based on Lenovo M910t. In general, I’m quite happy but it’s lacking expansion flexibility.

So I’m looking for a replacement. Below my notes from research and calculations of total cost.

New system components

Cost estimation.

ComponentDescriptionPrice [PLN]
Case - Fractal Design Define R5 ūüĎć
- be quiet! Silent Base 800
- Phanteks Enthoo Pro
439
CPUAMD Ryzen Threadripper 1950X3365
MotherboardMSI X399 SLI PLUS1290
RAM - 48GB from old PC
- 16GB - Crucial 2400

Total: 64 GB (with option for expansion up to 128 GB)
630
PSUSeaSonic Focus Plus Platinum 650W (SSR-650PX)478
HDDPC
- 2x 2TB from the old (ZFS root, RAID1)
- 1x 4TB from the old + 2x 4TB new (ZFS storage1, RAID5)

Total: 2+8 = 10 GB HDD

On-demand backups
- 1x 2TB from the old (backup, via old USB dock)
880
SSD - 256GB from the old (zfs storage2-ssd)0
M.2- 256GB from the old (ZFS cache)0
CPU Cooler- Noctua NH-U12S TR4-SP3
- Arcetic Freezer 33 TR ūüĎć
170
Video cardUsed one from ebay or Allegro35
Delivery20
Total [PLN] / [USD]7307 [PLN]
1964 [USD]

Considerations

  • Do I really need 16-cores/32-threads AMD 1950X? Perhaps 12-cores/24-threads 1920X for 2699 PLN (1k less!) would be sufficient?
  • CPU cooling fans may not have enough clearance to populate all 8 RAM sockets? Answer here.
  • Is it possible to use 6 RAM DIMMs? User guide says that allowed configurations are 1, 2, 4 & 8. This forum thread advises that any even number of DIMMs is perfectly supported.
  • Cases
    • 8x 3.5” HDD case or 6x 3.5” HDD + 3x 5.25” bays for my old Icy Docks bay?
    • What’s the min width to fit 155mm-high CPU cooling?¬†Phanteks Enthoo Pro can fit max¬†193 mm cooling -> OK

References

Does the CPU cooler has enough clearance for all RAM DIMMs?

Tech It Out was kind enough to provide this response and the photo on the MoBo I’m interested (MSI X399):

And how does it look on the picture:

 


Sample quotations

From Morele.net

From x-kom.pl


Summary

After deeper deliberations (it’s hell lot of money! And I’m completely self-funded… Also Threadripper 2 is about to be released on August) I decided:

  • Immediately buy 2x 4 TB WD Blue disks and replace my Storage1 pool 3x 2 TB ‚Üí 3x 4 TB which should give me enough disk space
  • Wait till August and see how (and if) release of new CPUs and MB chipset X399 change the situation.

Regardless of all, this was quite interesting exercise!

My current Home Virtualisation Lab “Wieloryb”

Wieloryb as a home lab

My current home server which I use many for virtualisation, serving also some net services is reaching memory and disk-space limits. I named this server Wieloryb which in Polish means The Whale.

Hardware

So far I have:

  • Lenovo M910t server
    • 64 GB RAM
    • 1x 1 TB SATA HDD (3.5”) – configured root ZFS Pool (RAID1)
    • 3x 2 TB SATA HDD (3.5”) – storage1 ZFS Pool (RAID5)
    • 1x 254 GB SATA SDD (2.5”) – storage2 ZFS Pool
    • 1x 254 GB (M.2) – cache for ZFS pools (Cache and L2ARC). I know, L2ARC should be mirrored but I decided that I will take the risk
    • PCI-e 4x SATA board to provide 4 + 4 SATA connectors (M’board + PCI-e board)
  • The three 2 TB HDD disks and 254 GB SSD disks are stored in Icy Dock 4-disks cage.¬†The disk cage allows to connect all 4 disks through 4 SATA connectors
  • The disk cage is powered by an external PSU (as the PC’s PSU is not strong enough)
  • On-demand backups are made to a 4 TB SATA HDD using i-tec USB HDD dock
  • Remote management is possible thanks to Belkin Net KVM
  • Sending critical alarms via SMSes as well as forwarding of SMSes from my old mobile SIM are done thanks to Nokia USB stick and Gammu software
  • And finally – a small UPS

Picture of the lab

 

Software

For greater flexibility and separation between different tasks I decided to use Proxmox as virtualisation manager. No issues with that: it does what it should, small issues can be justified by a very attractive price (0 USD…).

How to workaround MacBook Pro 2017 scroll lag

Another embarrassing problem with my MBP: when scrolling in e.g. Chrome, Safari or actually – any other window, there is annoying lag. When you scroll continuously, it’s more or less fine, but when you pause to read and then want to scroll, it stutters.

After a bit checking here and there, it turned out that if I increased keyboard backlight timeout from 5 seconds to 1 minute, the problem has been worked around!

Well done Apple, well done‼

 

Chef resources failing with wrong constant name

When trying to add a custom resource, no matter what, I always got a wrong constant name  error, for example:

resolving cookbooks for run list: ["01_test-cookbook"]
Synchronizing Cookbooks:
  - test-cookbook (0.1.0)
Installing Cookbook Gems:
Compiling Cookbooks...

================================================================================
Recipe Compile Error in /home/jhartman/.chef/local-mode-cache/cache/cookbooks/test-cookbook/resources/append_line.rb
================================================================================

NameError
---------
wrong constant name 01TestCookbookAppendLine

Platform:
---------
x86_64-linux-gnu

It turned out to be an issue with my cookbook name: it’s¬†not allowed to have a cookbook name starting with a number (as later, it’s converted into a class name).

So my cookbooks as below are causing the problems:

drwxrwxr-x 8 jhartman jhartman 15 Apr 22 21:45 1_PreRequisites
drwxrwxr-x 7 jhartman jhartman 14 Apr 22 23:38 2_OracleDB
drwxrwxr-x 9 jhartman jhartman 16 May  3 18:12 3_NCC
drwxrwxr-x 6 jhartman jhartman 13 Apr 22 22:22 4_PostInstallation

They should be renamed into something else, for example:

drwxrwxr-x 8 jhartman jhartman 15 Apr 22 21:45 A_PreRequisites
drwxrwxr-x 7 jhartman jhartman 14 Apr 22 23:38 B_OracleDB
drwxrwxr-x 9 jhartman jhartman 16 May  3 18:12 C_NCC
drwxrwxr-x 6 jhartman jhartman 13 Apr 22 22:22 D_PostInstallation

Note, inside the files, there are references to the names, so you may need to update them accordingly, for example using:

$ find . -type f -print0 | xargs -0 sed -i 's/2_OracleDB/B_OracleDB/g'

After this, no more strange errors after adding resources.

PS: When you work on MacOS, you may face another problem with your resources: MacOS trash files (._* or .DS_Store) are causing another (similarly looking) error. Take a look at this web page.

 

Prevent Mac hidden files being written to a shared storage

MacOS tends to trash mounted disks with number of useless hidden files (e.g. ._* or .DS_Store ). There were number of recipes in the Internet, some of them were working at some of time but are not anymore.

Below notes from my fights (at a moment of writing, on MacOS High Sierra 10.13.4 (17E199).

Removing the files when they are created

I used to apply a find . -name … -print0 | xargs rm -0¬† combo but found that there is an built-in command to deal with these files:

$ dot_clean .

From the man:

NAME
dot_clean -- Merge ._* files with corresponding native files.

SYNOPSIS
dot_clean [-fmnsv] [--keep=[mostrecent|dotbar|native]] [dir ...]

DESCRIPTION
For each dir, dot_clean recursively merges all ._* files with their corresponding native files according to the rules specified with the given arguments. By default, if there is an attribute on the native file that is also present in the ._ file, the most recent attribute will be used.

Preventing creating the files

On the MacOS side

NOTE: None of these solutions worked for me!

$ defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
$ killall Finder

As I wrote, this didn’t work at all to me.

On the SMB server side

It actually turned the only working solution for me. Just add to the share configuration section a veto file parameter, e.g.:

$ sudo vi /etc/samba/smb.conf
[jhartman]
 path = /home/jhartman
.....
 veto files = /._*/.DS_Store/

And restart:

$ sudo service smbd restart

Note, after applying this change you will not be able anymore to use dot_clean  command from your Mac as any requests towards these files (including deletion) will be silently ignored by your SMB server hence files will remain untouched!

Oracle 12c 32-bit client and direct GOT relocation R_386_GOT32 against `lxecerr’

Edit 12/09/2018

As Ivan commented below:

with binutils release 27.28 it seems to be solved.

But see the workaround below in case it’s not…


When trying to install Oracle 12c 32-bit Client (12.1 or 12.2) on Oracle Linux 7.3 or 7.5, it throws error during linking static libraries:

INFO: Start output from spawned process:
INFO: ----------------------------------
INFO:

INFO: /u01/app/oracle/product/12.2.0_client32/bin/genclntsh

INFO: /bin/ld: /u01/app/oracle/product/12.2.0_client32/lib/libnls12.a(lxecg2e.o): direct GOT relocation R_386_GOT32 against `lxecerr' without base register can not be used when making a shared object
/bin/ld: final link failed: Bad value

INFO: collect2: error: ld returned 1 exit status

INFO: genclntsh: Failed to link libclntshcore.so.12.1

INFO: make: *** [client_sharedlib] Error 1

 

Not very specific, I found only one reference in Oracle KM Doc ID 2246237.1.

Rootcause and resolution in there was:

REASON

SLES 12 SP2 ships with binutils 2.26 which breaks compatibility for certain shared library links.

SOLUTION
01) Update binutils package to version binutils-2.26.1-9.15.1 or later.

But in fact, I do have in my server binutils-2.27-27.base.el7.x86_64 .

Workaround is to downgrade the binutils:

jhartman@sms.jhartman.pl:/home/jhartman$ sudo yum downgrade binutils*
Loaded plugins: ulninfo
Resolving Dependencies
--> Running transaction check
---> Package binutils.x86_64 0:2.25.1-32.base.el7_4.2 will be a downgrade
---> Package binutils.x86_64 0:2.27-27.base.el7 will be erased
---> Package binutils-devel.x86_64 0:2.25.1-32.base.el7_4.2 will be a downgrade
---> Package binutils-devel.x86_64 0:2.27-27.base.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================================================================================================================================================================================================================
 Package                                                            Arch                                                       Version                                                                     Repository                                                      Size
================================================================================================================================================================================================================================================================================
Downgrading:
 binutils                                                           x86_64                                                     2.25.1-32.base.el7_4.2                                                      ol7_latest                                                     5.4 M
 binutils-devel                                                     x86_64                                                     2.25.1-32.base.el7_4.2                                                      ol7_latest                                                     845 k

Transaction Summary

After this, the libs can be compiled and linked:

oracle$ export ORACLE_HOME=/u01/app/oracle/product/12.2.0_client32
oracle$ /u01/app/oracle/product/12.2.0_client32/bin/genclntsh
oracle$

I do believe that after finishing the installation, binutils can be upgraded again to the latest version (but not forget about this problem in case of installing the RSU).

PS: I’ve raised SR¬†3-17356002141 : Error when installing Oracle 32-bit client (direct GOT relocation R_386_GOT32 against `ipp_zcalloc’)

 

Deleting unwanted time zones from Apple Calendar

When you add some timezones to your Apple Calendar, it’s somehow difficult to remove them and you end up with a list which you perhaps don’t need anymore:

 

How to remove them? Rather easy, but we need a plist editor (easiest way to get it is to install XCode). Once we have it, just type in your terminal

$ open ~/Library/Preferences/com.apple.iCal.plist

Find attribute RecentlyUsedTimeZones, unfold it and delete unwanted items:

(more…)

Open Cisco Webex through Alfred workflow

A MacOS Alfred workflow to open a predefined Webex session.

Pre-requisites:

Introduction

It’s pretty basic, but helps me to speed up a very common activity (which I always tend to do on very last second when a my conference call is about to start)…

So when I urgently need to open Webex conference, instead of searching through my browser bookmarks, just press Option-Space and type webex:


Then press Enter to get the list of your web conferences, for example:

Hit cursor down or up to select bridge you want to open and just press enter.

Installation

After downloading the workflow, just doubleclick the file and it will get imported to your Alfred.

Configuration

Ok, how you could add your most frequently used Webex URLs to the list? Navigate to Alfred workflows, find Webex workflow and select Open in Finder:


Then open configuration.txt in your text editor:

In the file, set your URLs in format <Name>|<URL>, for example Jarek|https://webex.com/joint/jarek.hartman:

Save and done!