Archive

Archive for the ‘Servers’ Category

ARM-Based Web Cluster – Build Log Part 1

June 9th, 2017 No comments

After doing extensive research on single board ARM-based computers I decided to build my own cluster. The purpose of the ultra low power cluster is to develop new applications with the most recent software technologies and host few production websites. Yes, I know, I’m crazy! 😀

My research showed that previous clusters lack significant calculating power and they’re based on performance limited (hardware) boards like Raspberry Pi 2, Raspberry Pi 3 and PINE A64+. The main problems with those boards are the RAM, the limited I/O of the microSD cards (limited to 25 MB/s on Pi 2 and Pi 3), and the network speed (10/100).
Those boards are more suitable to be used as development boards. Often microSD card speeds are limited to 25MB/s (on Pi 3), which means that even if you buy UHS-II and UHS-3 cards you won’t be able to utilize them at their full speeds.

I’ve looked closely at the ODROID single boards – those have powerful CPU (Quad and Octa-core A53 and A15), fast Gigabit network (10/100/1000) , 2GB RAM USB 3.0, eMMC support.

For my build I’ve chosen the following hardware

Parts and single-boards – www.ameridroid.com

Web and Caching Nodes:
ODROID-C2:

 

Web Server Nodes:
ODROID-XU4:

We benefit from faster more capable CPU, eMMC (up to 400MB/s capable eMMC5.0) speeds, USB 3.0, Gigabit network and 2 GB of LPDDR3.


Database Nodes:
ASUS H110S2/CSM Mini-STX (Installing Percona With TokuDB MySQL Server)

For our cluster we will start with:

  • 1 proxy node
  • 2 load balancer nodes
  • 2 web server nodes
  • 1 database server node

Our final goal is a cluster with:

  • 1 proxy node
  • 2 cache nodes
  • 8 nodes in web cluster
  • 10 nodes in MySQL cluster and 2 nodes in NAS cluster. Total 23 nodes.

We may not be able to fit that many nodes in this printer case, because the power supplies needed to power all the nodes will require a lot of space.

Hardware Prices:
$90.75 – 2 x ODROID C2
$53.90 – 2 x 16GB eMMC Black Module C2 Linux
$133.05- 2 x ODROID-XU4Q with Passive Heatsink
$54.90 – 2 x 16GB eMMC 5.0 Module XU3/XU4 Linux (Blue Dot)
$20.15 – 2 x 5V/4A US Type Power Supply
$30.00 – 1 x Raspberry Pi B+
$39.00 – 3 x MicroSD Sandisk 16 GB UHS-I
$3 – 1 x Display flat cable 22 pin to 15 pin Pi (China)
$29.99 – 20 x 3 ft CAT6 patch cable – MAXIMM 3 Feet |20 Pack | Red| Snagless Cat6 Ethernet Cable With Cable Ties
$15 – 1 x SABRENT SSD Enclosure USB 3.0 EC-UASP
$20 – 2 x SABRENT SSD Enclosure USB 3.0 EC-UK30
$100 – 2 x SSD PNY 120 GB
$74.36 – 1 x NETGEAR 24-Port Gigabit Ethernet Desktop/Rackmount Switch (GS324)
$8.63 – 1 x M3 25+6mm Male Female Thread Nylon Hex Standoff Spacer Pillar 50pcs
$8.90 – 1 x HOBBYMATE 180Pcs Assorted M3 Nylon Screws Nut Standoffs Spacers for DIY
$5.89 – 1 x Orion 3d Black Carbon Fiber Vinyl Wrap – Outdoor Rated for Automotive Use – 12″ x 60″
$5.90 – 1 x Pwr+ Short 3 Ft 3 Prong AC Power Cord Cable Plug L-Type
$1.00 – 1 x Mesh organizer
$81.49 – 1 x ASUS H110S2/CSM LGA1151 DDR4 Dual GB LAN DP HDMI LVDS Mini-STX
$50.00 – 1 x Intel Pentium G4400 SkyLake 3.3 GHz LGA 1151 Boxed Processor (for BIOS update)
$50.00 – 1 x Intel Pentium G4560 Kaby Lake 3.50GHz LGA 1151
$216.98- 1 x G.SKILL 32GB (2 x 16G) Ripjaws Series DDR4 PC4-17000 2133MHz Laptop Memory Model F4-2133C15D-32GRS
$135.00- 1 x Samsung 960 EVO Series 250GB NVMe M.2 Internal SSD
$26.56 – 1 x Oneda 120W 19V 6.32A AC Power Adapter Laptop Charger for Asus
$14.99 – 1 x Cable Matters (2-Pack) 4-Outlet AC Power Cord Y-Splitter – 1.5 Feet
$7.99 – 1 x HUACAM HC05 3 Pack USB to 5.5 mm/2.1 mm 5 Volt DC Barrel Jack Power Cable
TOTAL: $1277.30

Case enclosure used is old broken Canon printer, which I liked for the project.

 

Building

 

 

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5.00 out of 5)
Loading...

Installing TokuDB Storage Engine on Percona MySQL Server

June 8th, 2017 2 comments

I was installing TokuDB Storage Engine on Percona 5.7 Server based on this Percona guide, when I realized that there’s no my.cnf file.

You are still able to configure the server and install plugins from within the MySQL CLI.

Tech Specs:
OS: Debian Jessie
RAM: 32 GB
CPU 2 Cores, 4 Threads
Storage: SSD NVMe Samsung 960 Evo

More about the server:
This little MONSTER is amazing!

I have it paired with Intel G4560, 32 GB DDR4 G.Skill Ripjaws (2 x 16 GB) and M.2 Samsung Evo 960 250GB. Installed Debian Jessie server edition (with latest kernel) and did SSD read/write benchmark. It does 1.7 GB/s write and 3.8 GB/s read of 1 GB file. Insane!!!
Stock CPU fan – CPU 32C, motherboard 34C degrees. Under load 38-40C max!

I had to buy Skylake CPU (Intel G4400) to update the BIOS for the Kaby Lake (Intel G4560) support. It’s LAME! Those manufacturers must integrate USB flashing by default as a basic functionality! If I had time I would send the motherboard back or just return it. Unfortunately I had no time to ship my motherboard for BIOS update. It was in the product description that it supports 6th Gen Skylake CPU, even on ASUS’ website it was clearly stated that it needs BIOS update, so it’s not something that I didn’t know. It still is the best, smallest STX motherboard!

I would highly recommend and I would buy AGAIN this little monster board! I hope it stays sharp and fast!
I’ve been waiting for an STX form factor for years. It’s dream come true! 🙂

Thanks crazy awesome ASUS! 🙂

Here’s how to do it:

  1. Installing Percona Server on Debian and Ubuntu (Official)
  2. To avoid “ERROR 1123 (HY000): Can’t initialize function ‘TokuDB’; Plugin initialization function failed”, you need to disable Kernel Transparent Hugepages for TokuDB, if not disabled.
    Here’s how to check:

    It should return something like:

    If it’s not set to never, you can do:

    Reboot.
    Test again after boot:

    Now it should be:

     
  3. Dependencies
    You need libjemalloc library installed. Quick and simple installation:

     
  4. Install The TokuDB Engine

    Test to check, if the TokuDB storage engine was successfully installed do:

     

That’s it. Enjoy! 🙂

Feel free to shoot me a message in the comments.

 

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Dreamhost VPS Traffic Benchmark

September 6th, 2013 1 comment

I decided to go with the Dreamhost‘s VPS server after being on shared for 6 years. I moved all of my domains to 300MB VPS which was crashing every 20-30 minutes, then I decided to give it a shot and upgrade to a 400MB VPS, that easily reduced the reboots and after that I had reboots just every 3-4 hours.

I had some troubles at the beginning because my websites were generating quite of traffic and I decided to do some calculations of what traffic load can the Dreamhost VPS handle. Here are the results:

VPS Setup:
RAM: 400MB
Total running domains: 12

1 month load/traffic results on the VPS:

Total Hits: 965922/mo
Total Unique Visitors (IPs): 34079/mo
Total Bandwidth Used: 56.3GB/mo
Server IOPS Used – Avg: 9403; Max: 18421; Min: 1157;

Fair enough! The following numbers are what can a Dreamhost VPS handle per 100MB of VPS RAM resource:

Total Hits (Approx): 250000 hits/mo
Total Unique Visitors (IPs): 8519/mo
Total Bandwidth: 14.07GB/mo

NOTE: This is the traffic that was utilizing the maximum of my VPS, no  resources were left unused! Sometimes the server was rebooting on spikes by itself in order to keep the host safe and stable.
At some point I had to disable all cron jobs on the VPS because it was barely handling the load and it was rebooting constantly. After awhile I decided to shut down some of my domains and sub-domains that
didn’t bring any money, but doing great traffic and I was able to lower the server load and resume all the cron jobs. After shutting down some of the websites, now my account does 8.5GB Bandwidth per month which is 7 times less than what I was utilizing before with all the domains.At some point after keeping an eye on my access.log I found no reason to keep traffic from Russia and China, because I was getting only brute force attacks and website scans! Dreamhost lacks ability to install iptables and I had to ban them at configuration level. Which reduced my bandwidth to 56GB/mo (saved few gigs and server load)!

Now I know when, how and why I should upgrade my VPS and I know how important is to protect it against Brute Force Attacks, DDoS attacks, Network Scans, Web Scrappers, Bots and Search Engine Robots.
I was surprised what this tiny server can handle! After all it’s a tiny beast!
Epic Story!

Thanks! To my friend Mr. Gulik guiding me thru the beginner path of  the young sysadmin!

Screenshot with the benchmarks:
400MBmemory-totalhits-uniquevisitors-bandwidth

1 Star2 Stars3 Stars4 Stars5 Stars (8 votes, average: 4.25 out of 5)
Loading...

Dreamhost VPS defence against network attacks

August 2nd, 2013 3 comments

I recently moved to my brand new DreamHost VPS just to find out how much better is than my shared hosting. I get a bit over 180000 hits for 24 hours, but it happened that my server was rebooting due to heavy load and excessive memory usage. Right now I’m using the VPS with 400MB of ram. It was rebooting like every 20-30 minutes, but it seemed that not all of the traffic was legit. Large amount was web page scrappers, regular search engine bots, hacker attacks (brute force, sql injections), etc and my server was benching against the heavy load. I tried installing iptables, but due to the ancient VM technology that dreamhost is using is not possible 🙁

So i had two options, to get my server back from the dead without paying tons of money for feeding all the automated traffic and dreamhost:

  1. iptables alternative (e.g. shorewall)
  2. htaccess ip blocking

For the faster and immediately efficient option I chose the second one, so I compiled a list with all the httpd.ip-filter.conf

In order to block China and Russia I’d recommend to create separate file that is included in your httpd.conf. Apache (if apache is used) is C language based program and once it loads the long IPs list in the memory will react super fast to any calls from IPs in the list. Unless you don’t have access to edit the httpd.conf I wouldn’t recommend adding this line in .htaccess file.

The list contains 8864 Russian networks and 5073 Chineese.

1. Download httpd.ip-filter.conf

2. Save the file in the folder where httpd.conf is and name it the way you want. I used httpd.ip-filter.conf

3. Open the httpd.conf and include the line ” include /path/to/the/httpd.ip-filter.conf ” (without the quotes).

4. Save the conf and restart the apache

If you don’t get any errors you should be all set!

After doing so, my server is now relieved! I get far less traffic and my VPS don’t die from excessive memory that is not used by legit traffic.

1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 5.00 out of 5)
Loading...

Matrix – Tiny Workstation (Somewhat SuperComputer)

April 23rd, 2013 1 comment

Finally I found some time to post my new custom build. I’m building my workstation designed for 3D rendering, graphic and video design, gaming and high resource intensive math and cryptology calculations and benchmarks. Uh-oh I’m so excited to perform some of my planned OpenCL and ImageMagick tests…

Build Details: I was looking for motherboard with a lot of PCI-E slots, because I need to run 6 x Sapphire 7970 Vapor-X 3GB version. I found excellent deal for used P6T7 on eBay with set of memory, memory fan, cpu and CPU fan.

Here’s what’s planned:
Motherboard: P6T7 WS SuperComputer 7 x PCI-E x16 (4-way CrossFireX x16 or 7 x PCI-E x8).
CPU: Intel® Core™ i7-920 Processor (8M Cache, 2.66 GHz, 4.80 GT/s Intel® QPI)
Memory: CORSAIR DOMINATOR 8GB (4 x 2GB) 240-Pin DDR3 SDRAM DDR3 1600 + Memory fan
CPU FAN: ZALMAN CNPS9900MAX-B 135mm Long life bearing CPU Cooler
GPU: 6 x SAPPHIRE Vapor-X VXSR Radeon HD 7970 GHz Edition 3GB 384-bit GDDR5
PSU: 2 x ZALMAN 1250 Platinum 1250W ATX12V v2.3 SLI Certified CrossFire Certified 80 PLUS PLATINUM Certified Modular Active

This is going to be no case build (no case for now) until I decide how much space I’ll need with all the 6 GPUs and dual PSU, and then I’m planning to build custom rack.
I’m very creative and I love to generate new ideas every single minute. So here we go, yeah I’m getting excited too! Let’s build some funny legs…
For now I’ve got some basic parts to build custom motherboard legs/stands to put some clearance between the motherboard and the table: 4 x Push-on F-connectors for coaxial cable (Ideal RG-6) for motherboard feet. Machine screws 6 x M3 25.4mm length metric (US standard #6-32 x 1″) Flat Head Phillips, 8 x Machine Screw Nuts M3 (US standard #6-32). Shepherd Vynil Bumpers 10mm (3/8″).

The build is still unfinished. The motherboard’s CPU fan heads doesn’t work 🙁 I need CPU fan controller, which I’m getting soon + two more RG-6 connectors for middle legs/stands for the motherboard, because it seems slightly bending in the middle and I don’t want to make any damage and this is only with the ram and the CPU fan on it (I imagine 6 x Radeon 7970 loaded, won’t be good for the PCB).

Updates and photos coming soon…

1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 5.00 out of 5)
Loading...