Building home server with Leap 42.2 on Lenovo ThinkServer TS140

Hello All:
I am new in server technology and have few questions while building/configuring a home server to host and run some applications.

The host box is a Lenovo ThinkServer TS140 with:
CPU=Xeon E3-1226 v3 Quad-core 3.30 GHz;
HDD = 2x Western Digital Black 1TB 7200 rpm (total 2TB);
RAM = 2x Kingston 8GB ECC Unbuffered DDR3 (total 16GB);

Here is my plan:
Server OS: Leap 42.2
Storage redundancy configuration: RAID 1 (using 2 HDDs)
Applications to be hosted (running on virtual machines):

  1. Zoneminder video surveillance application (running on Virtual Box)
  2. FreePBX VoIP telephony application (running on Virtual Box)

Questions (my advance apology if any question sounds stupid):

  1. While the host server will be operated by Leap 42.2, can I install multiple Virtual Boxes on the same HDD ?
  2. Because, the Zoneminder surveillance system is most suitable for Ubuntu server, do you recommend to install Ubuntu server in one Virtual Box while the server is running on Leap 42.2 ?
  3. Because, the latest version of FreePBX runs on Linux 6.6 (it comes as a package of FreePBX), can I install FreePBX with Linux in another Virtual Box while the server is running Leap 42.2 ?

Thanks in advance for your reply, suggestion and comment.

/JR

Hi
I would consider kvm as the virtualization rather than virtualbox, less downtime for rebuilding modules etc (kvm is part of the kernel, no downtime), also consider running you vm’s through their own ethernet ports via an add-on card and then use the bridge method to connect to the virtual machines. What are the RAM and CPU core requirements for your VM’s?

Thanks for the reply with suggestion about KVM.
As suggested:

  1. I’ll use KVM instead of Oracle VB
  2. Install a dedicated network card for ZoneMinder network connectivity

The system requirements for Ubuntu server OS is as below (according to Ubuntu’s web page):

  • 700 MHz processor (about Intel Celeron or better)

  • 512 MiB RAM (system memory)

  • 5 GB of hard-drive space

My server has 3.30GHz CPU with 16GB RAM and 2TB HDD (RAID 10 configuration with 4x 1TB HDDs will make 2TB physical equivalent)

My plan is to run two VMs (one for ZoneMinder 1.30, another for Free PBX system).
ZM 1.30 will be installed on Ubuntu server 16.04.1 while 2nd VM will host the Free PBX application which comes with CentOS.

After RAID 10 configuration of my disks, I’ll install the base OS (Leap 42.2).
Here is my plan for disk (total 2TB) allocation:

  • Base OS Leap 42.2: 500 GB
  • VM-1 (for ZM 1.30): 1 TB
  • VM-2 (for Free PBX): 500 GB

Could you please review my server configuration and let me know any other suggestion(s) or advice.

Thanks.

On Sat 17 Dec 2016 03:56:01 AM CST, jrahman wrote:

malcolmlewis;2802885 Wrote:
> Hi
> I would consider kvm as the virtualization rather than virtualbox,
> less downtime for rebuilding modules etc (kvm is part of the kernel,
> no downtime), also consider running you vm’s through their own
> ethernet ports via an add-on card and then use the bridge method to
> connect to the virtual machines. What are the RAM and CPU core
> requirements for your VM’s?

Thanks for the reply with suggestion about KVM.
As suggested:

  1. I’ll use KVM instead of Oracle VB
  2. Install a dedicated network card for ZoneMinder network connectivity

The system requirements for Ubuntu server OS is as below (according to
Ubuntu’s web page):

  • 700 MHz processor (about Intel Celeron or better)
  • 512 MiB RAM (system memory)
  • 5 GB of hard-drive space

My server has 3.30GHz CPU with 16GB RAM and 2TB HDD (RAID 10
configuration with 4x 1TB HDDs will make 2TB physical equivalent)

My plan is to run two VMs (one for ZoneMinder 1.30, another for Free PBX
system).
ZM 1.30 will be installed on Ubuntu server 16.04.1 while 2nd VM will
host the Free PBX application which comes with CentOS.

After RAID 10 configuration of my disks, I’ll install the base OS (Leap
42.2).
Here is my plan for disk (total 2TB) allocation:

  • Base OS Leap 42.2: 500 GB
  • VM-1 (for ZM 1.30): 1 TB
  • VM-2 (for Free PBX): 500 GB

Could you please review my server configuration and let me know any
other suggestion(s) or advice.

Thanks.

Hi
Perhaps have a play with the YaST installer -> expert partitioner to
setup your disks/raid config. Allow some space for a separate boot out
of RAID, eg create a say 512MB partition on sda/sdc and use sdc as a
backup boot (use dd to create an image from sda -> sdc).

Since your going to use such a large partition for openSUSE
consider ext4 rather than the default btrfs?

For you VM storage create a /var/lib/libvirt partition do use for you
images and vm info.

Are there two separate disk controllers? Or is it all one controller? I
ask this because if two separate controllers, you can offer some
additional protection to your RAID 1+0 setup to at least keep an
active stripe available if one controller fails…

You can boot the system from a rescue usb/cd and look at the hwinfo or
lspci output to see the controller info.

One other note which may be important, make a note of the disk serial
numbers to identify when in the system, sometime the BIOS will move the
disks when > 3 used eg with two disk in sda and sdb, then add a sdc,
all of a sudden they can change in BIOS disk order…

I would also just create your bridge devices for VM’s after install via
YaST after making sure the system is all up to date…


Cheers Malcolm °¿° SUSE Knowledge Partner (Linux Counter #276890)
openSUSE Leap 42.1|GNOME 3.16.2|4.1.36-41-default
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below… Thanks!

Virtualization
A good decision to use an Enterprise type like KVM.
Become familiar with how you can more easily create and maintain backups compared to normal physical server maintenance practices.
Also, be prepared by familiarizing yourself with a variety of recovery scenarios like dealing with corrupt virtual disks, converting, expanding, more so you won’t find yourself in panic mode when a problem happens.
IMO you have plenty of hardware resources to support Zoneminder and PBX, plus some additional Network Server services(even another Guest) if you wish. Be aware that the minimal resources you describe for Zoneminder and FreePBX won’t be enough, you’ll want to at least double if not quadruple allocated resources depending on your actual loads.

Networking, General
Be aware that ethernet is a serialized communications medium, which generally means that no matter how many virtual or physical machines and no matter how many other devices are attached to your network, only one packet can be transferred on the wire at any instant. This means that you need to provision and architect your network (or networks) to satisfy your goals of QoS, particularly since you’re running VoIP and video streams to your Zoneminder and PBX. Although you can affect QoS with packet shaping and select choice of an appropriate TCP/IP Congestion Control algorithm, most people decide to segregate the traffic on to completely separate physical networks. Depending on your current and possible infrastructure, this can mean additional wiring, use of VLANs, managed switches, upgrading to GigE, etc.

Networking, NICs
As I described, dedicated NICs can be worthless and an extra complication in many scenarios. Be sure that dedicating a NIC is technically worthwhile. If your server networking loads are relatively light, then your CPU’s extra power might mean that you don’t need to use “enterprise” NICs that offload processing.

Networking, Storage
You don’t seem to say whether you will be doing software or hardware RAID. Consider hardware RAID. The advantage is better performance and simpler and easier management and configuration when problems arise. You don’t seem to be describing a Server application that uses a relational database, so you probably don’t need a RAID controller with battery backup, but if you can afford it, it’s nice to have.

HTH,
TSU

Thanks again.

The TS140 server box has only one disk controller, but it will allow 5 SATA connected HDDs (the front bay allows 2x 3.5", 1x 3.5" or 5.25" and internal bay allows 2x 5.25" HDDs).

After reading your very thoughtful reply, now I am thinking of installing the Leap 42.2 on a separate disk (may be a 128 GB SSD) which will be my OS disk. In that case, I could keep the OS independent and separate from the RAID 10 configuration.

Please let me know if there is any flaw in my design.

Hi
Yes, a SSD, that’s my preferred option these days :wink: I have a Syba Dual Port Gigabit Ethernet Network PCI-E x1 Controller Card (SY-PEX24028) which works well for my VM’s.

Thanks for your reply. All of the above points are significantly important for building a server. I have noted down all of your suggestions.

Merry Christmas !
Hope Santa already dropped enough gifts thru chimney to keep you and your family busy today. :slight_smile:

While working with my server according to all the advice and suggestions you provided, few questions are still coming. Could you please find some answers or comments for me ?

Storage and network configuration summary:

  1. One 240GB Sandisk Plus SSD (this will be dedicated OS disk for Leap 42.2 as the server OS)
  2. Two 1TB WD Black Performance HDD with RAID 10 setup (Zoneminder and FreePBX will be running in two KVMs)
  3. Dual port Rosewill Gigabit PCI-Express NIC card (to keep server connectivity independent)
  4. Total RAM size installed 20GB (originally, TS140 came with 4GB)

Questions:

  1. While each hosting KVM (on HDDs) for Zoneminder and FreePBX server will run their own LAMP, what else I could install in the 240GB SSD other than Leap 42.2, the primary OS of the server ?
  2. If there is none required to install other than Leap 42.2 in the SSD, can I consider a smaller SSD (e.g. 120GB) ?

Thanks.

Hi
You could look at using part of the SSD for a cache device for the rotating rust…? Else I would just look at a 120GB device… 40GB should be enough whilst tweaking the snapper config, some for swap just in case (you can set the swappiness down which is what I do).


cat /etc/sysctl.conf

# Disable swap
vm.swappiness = 1
vm.vfs_cache_pressure = 50