Posted on

miniNodes Selected to Arm Innovators Program

The title says it all!  miniNodes is proud to announce that we have been selected to participate in the ARM Innovators Program, and will soon be designing and testing an ARM Server thesis project in conjunction with Arm!

As more information becomes available, we will be sure to share!  In the meantime, the full text of the announcement is located here:  https://community.arm.com/company/b/blog/posts/welcoming-new-arm-innovators-featuring-experts-in-drones-cameras-voice-and-cellular

 

arm-innovators-program-image

 

Posted on

ARM Server Update, Spring 2018

Continuing on with our quarterly updates to the ARM Server ecosystem, as usual there is quite a bit of news to report on!  Let’s dive right in to the analysis!

The Qualcomm Centriq continues to make headlines, with the first design win recently announced.  Hatch, a cloud gaming company, has chosen the Centriq 2400 to power it’s cloud gaming platform.  More information is available here:  https://www.forbes.com/sites/tiriasresearch/2018/02/20/hatch-qdt-cloud-gaming/

Qualcomm is also in the news for another reason as well.  Broadcom, another chip maker, has launched a hostile bid to takeover Qualcomm, although Qualcomm has thus far held off their unwanted pursuit, and is attempting to remain independent.  Consolidation in the chip maker space has been picking up in recent years, with the NXP purchase of Freescale, Intel buying Altera, Macom purchasing Applied Micro, and many more.

Which leads to the next news in the industry:  Macom had recently quietly sold off the Applied Micro assets to a secretively named buyer, known only as Project Denver Holdings.  However, they have now formed a new organization, called Ampere, who will continue on with the development and marketing of the X-Gene line of ARM Server processors.  More info on Ampere can be found here:  https://amperecomputing.com/

Finally, Linaro’s 96Boards team has brought to market a development workstation conforming to their Enterprise Edition standards.  The newly launched workstation features a 24-core Socionext Synquacer SoC, plus a hard drive, memory, and video card to round out the system.  It is currently listed for sale at $1,250, so it is not cheap, but it does fulfill a niched that has been underserved in the market.  It can be purchased here:  http://www.chip1stop.com/web/USA/en/search.do?dispPartIds=SOCI-0000001

 

Posted on

ARM Server Update, Fall/Winter 2017

It has been far too long since our last blog post, and there have been many changes in the ARM Server ecosystem (as usual!) since our last update. Here we will recap some of the major highlights and product announcements of the past several months in 2017.

First and foremost, ARM Servers are gaining traction with 2 major product releases:

Next, there has been major Operating System news as well, with Red Hat formally releasing Red Hat Enterprise Linux (RHEL) 7.4 for ARM. This allows customers of Red Hat to have a fully supported OS like they are already accustomed to with their x86 offering.

In the SBC world, Fedora 27 was recently released with additional and expanded support for ARM-powered boards. The Dragonboard 410c and HiKey from 96Boards are two popular boards now officially supported, along with the RaspberryPi 3.

And finally, ARM Servers have been gaining quite a bit of media attention due to industry mergers and acquisitions (well, proposals). Marvell has made a bid to acquire Cavium, and Broadcom has pursued Qualcomm, although that deal appears to be opposed by Qualcomm at the moment.

As always, we will continue to watch the industry closely, so check back for updates, hopefully in a more timely fashion next time. 🙂

Posted on

ARM Server Update, Spring 2017

As always, much has changed in the ARM Server world since our last post!  Here are the highlights of what’s going on in the Linux on ARM Server community:

First and foremost, a huge announcement from Microsoft came at the 2017 Open Compute Project (OCP) U.S. Summit last month.  Microsoft stated they can utilize ARM Servers to power over 50% of their Cloud Workload, and demonstrated two designs, one based on the Cavium ThunderX2, and one based on the Qualcomm Centriq 2400.  They even showed an internal build of Windows Server running on the Qualcomm.

Next, 96Boards showed off all the latest projects and boards they have been working on at Linaro Connect, from IoT to the powerful Qualcomm Snapdragon 820 SBC.

Finally, on the Raspberry Pi front, a new Raspberry Pi Zero was released with WiFi built-in.  This will allow the Raspberry Pi Zero to be more easily adapted to IoT applications, without the need for a USB Wi-Fi adapter or USB ethernet adapter that was previously required.  This simpler solution addresses one of the biggest complaints about the Pi Zero.

 

 

Posted on

Qualcomm Centriq 2400 ARM Server Processor

Qualcomm has announced their new ARM Server processor, called the Centriq 2400, which is designed for high efficiency processing and is capable of handling datacenter workloads.  While Cavium, AMD, and Applied Micro all have ARM Server processors, Qualcomm’s new processor is the first to be built on a 10-nanometer manufacturing process.  It will be able to handle cloud software stacks now that the software ecosystem has matured, and should be able to compete with Xeon offerings as the hyperscalers like Microsoft, Facebook, Google, Amazon, Tencent, Baidu, Alibaba, and China Mobile build out next generation datacenters.

Qualcomm has lots of experience of course developing, manufacturing, and selling ARM processors via their Snapdragon line of cell phone chips, so they do have an edge on the competition as vendors like Cavium and Applied Micro don’t have the same experience and relationships already built.  Additionally, Qualcomm can leverage some synergies with the Snapdragon 820 and 835, albeit they definitely have their differences.

With another vendor now entering the ARM Server marketplace (and a major one at that), the future is looking bright for ARM gaining more traction and making inroads in the datacenter.

 

Posted on

ARM Server Update, Fall 2016

Two major conferences devoted to the ARM ecosystem and technologies were recently held, ARMTechCon and Linaro Connect. Some new product announcements were revealed, and of course ARM Servers were front and center.

Linaro Connect featured the announcement and release of the new 96Boards IoT edition, a new smaller platform specifically designed for secure Internet of Things applications. There were also conference talks on the kernel, storage, Android, OCP, and more. But of course lots of attention was placed on the ARM Server updates, with the latest information on OpenStack, Xen, and processor technology announced. Linaro focuses on Linux on ARM of course, from both a hardware and software perspective.

ArmTechCon featured a more diverse set of topics, such as automotive, robotics, Internet of Things, and others. New application specific processors devoted to secure automotive and autonomous driving, network interconnects, and GPU’s were announced as well.

 

Posted on

How to Install Nextcloud on a Debian or Ubuntu ARM Server

With the recent fork of the Owncloud project, many users are switching over to the newly founded Nextcloud project to build and use their own personal cloud servers to host personal files, photos, movies, and documents.  This alternative is popular for people concerned with data privacy, as you do not need to rely on a public cloud or drive similar to Box, Dropbox, Google Drive, OneDrive, etc.  With those services, you don’t know precisely where your data lives, who has access to view it, and what safeguards are in place to protect your data.  With Nextcloud, you know exactly where your data resides, and who has access to it.  Best of all, running it on a Debian or Ubuntu ARM server is easy!  Let’s get started!

In this tutorial, we will show you how to install Nexcloud on an Ubuntu or Debian ARM server.

First, let’s update the server to the latest versions of applications:

 

sudo apt-get update
sudo apt-get upgrade
sudo reboot

 

Next, we need to install the core applications that will make Nextcloud work; PHP, Apache, and MySQL.  You will be asked to create a MySQL root password during this installation:

apt-get install lamp-server^
apt-get install libxml2-dev php-zip php-dom php-xmlwriter php-xmlreader php-gd php-curl php-mbstring
a2enmod rewrite
sudo service apache2 reload

 

Once that is complete, it is time to actually download and configure Nextcloud (version 10 is the latest at the time of this writing, but check to see if a newer version exists and replace the number in these commands):

wget https://download.nextcloud.com/server/releases/nextcloud-10.0.1.tar.bz2
tar -vxjf nextcloud-10.0.1.tar.bz2
sudo mv nextcloud /var/www

 

Next, we need to set the proper permissions on the Nextcloud files and folders.  Nextcloud has provided a script that will do this for us, making it very easy.  Thus, we need to create a new file and paste in the contents of the script they’ve given us.

nano nextcloud_permissions.sh

Paste this in to the new file:

#!/bin/bash

ocpath=’/var/www/nextcloud’
htuser=’www-data’
htgroup=’www-data’
rootuser=’root’

printf “Creating possible missing Directories\n”

mkdir -p $ocpath/data
mkdir -p $ocpath/assets
mkdir -p $ocpath/updater

printf “chmod Files and Directories\n”

find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750

printf “chown Directories\n”

chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/

chmod +x ${ocpath}/occ

printf “chmod/chown .htaccess\n”

if [ -f ${ocpath}/.htaccess ] then
chmod 0644 ${ocpath}/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi

if [ -f ${ocpath}/data/.htaccess ] then
chmod 0644 ${ocpath}/data/.htaccess
chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi

 

Now we will just make the script executable, and then run it:

sudo chmod +x nextcloud_permissions.sh
sudo ./nextcloud_permissions.sh

 

Our next step is to configure Apache to listen for and serve requests for the NextCloud application.  We will create an Apache configuration file to accomplish this, and then populate it:

nano /etc/apache2/sites-available/nextcloud.conf

Paste this Apache configuration in to the file:

Alias /nextcloud "/var/www/nextcloud/"

<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All

&ltIfModule mod_dav.c>
Dav off
&lt/IfModule>

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud

&lt/Directory>

 

 

Next, we are going to make some changes to the Apache modules that are loaded and then restart Apache:

sudo ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo service apache2 reload

 

Now it is time to configure MySQL by creating the table and user that Nextcloud needs to operate.  First we connect to MySQL:

sudo mysql -u root -p

Once logged in to MySQL, we”ll make the table and user:

create database nextcloud;
create user nextclouduser@localhost identified by 'your-password';
grant all privileges on nextcloud.* to nextclouduser@localhost identified by 'your-password';
flush privileges;
exit;

 

At this point, we decided a reboot was probably a good idea, but you might be able to skip this step:

sudo reboot

 

Once your server comes back up, the Nextcloud web interface will be available, and we will finish our configuration via the browser.  In your browser, go to http://[the-ip-address-of-your-server]/nextcloud

You will see the “Create Account” screen shown here:

nextcloud-install-on-ubuntu-or-debian-arm-server-1

You will need to create an Admin name and password for your Nextcloud install, and when you scroll down you will notice that Nextcloud needs the MySQL information you created earlier.  Provide it the information asked, if you used the instructions above, the database name is ‘nextcloud’, username is ‘nextclouduser’, and then whatever password you selected.  The location of the database is ‘localhost’.

If everything is correct, you will be redirected to the Dashboard (you will get an inline pop-up to download the Nextcloud Apps first)

nextcloud-install-on-ubuntu-or-debian-arm-server-2

 

Dismiss that and you will see the Files application:

nextcloud-install-on-ubuntu-or-debian-arm-server-3

 

At this point, you are up and running with Nextcloud on your Ubuntu or Debian ARM Server!  You can even add additional features and applications from the menu, such as Mail, Document viewer, Tasks, and more!  Happy hosting!

nextcloud-install-on-ubuntu-or-debian-arm-server-4

 

Posted on

ARM Server Linux Update, June 2016

As usual, a lot has changed in just a short time since our last update.  Here are some of the highlights from industry news.

First and foremost, the RaspberryPi 3 has continued to be the most popular ARM single board computer.  It now includes WiFi and Bluetooth, and the official Raspbian operating system has been upgraded to include support for the new features.  While it has a 64-bit processor, for the time being it still uses a 32-bit operating system.

Just a few days ago, we got some detail on the Cavium ThunderX2 processor that is forthcoming.  This is an enterprise-grade processor that will have 54 cores and support up to 100gb of ethernet bandwidth.  It will deliver 2x to 3x the performance of the current ThunderX processor, and should be able to compete head-to-head with Xeon’s in many workloads.

Finally, the Pine64 has been shipping in volume now, with most Kickstarter backers having received their boards.  The Pine64 is based on a 64-bit Allwinner A64 processor, which is not the most powerful around, but it sets a new low-price for 64-bit ARM hardware.  At just $15 for the entry level Pine64, the price of 64-bit ARM hardware has dropped from $3,000 to $15 in the course of about 1 year.  Talk about rapid innovation!

Posted on

Hosted Raspberry Pi 3 Servers Now Available!

miniNodes.com is proud to be the first cloud hosting provider to offer the new Raspberry Pi 3 as a hosted server.  The Raspberry Pi 3 combines a powerful new Broadcom quad-core 64-bit ARM processor, 1gb of RAM, and the reliable Raspbian Stretch linux operating system.  This makes the Raspberry Pi 3 a great platform for a small ARM server that offers plenty of compute capacity for basic services such as hosting a website or email, API hosting and development, lightweight development frameworks such as NodeJS application hosting, Internet of Things gateways and communication servers, IoT endpoints, Azure Edge container hosts, and more.  The Raspberry Pi 3 server is also a great way to experiment with ARM servers in the cloud, and ensure code compatibility with other more powerful ARM servers that are forthcoming.  Each hosted Raspberry Pi 3 server comes with SSH access and a dedicated IP address, making deployments to the server easy and familiar to developers.

Check them out here:  https://www.mininodes.com/product/raspberry-pi-3-server/

Posted on

How-to: Install Varnish and Nginx on ARM Servers

With the release of the Raspberry Pi 3 Model B, we read that Mythic Beasts was hosting a portion of the traffic going to the RaspberryPi.org site on an actual Pi 3! Pretty neat! We took a closer look and realized there wasn’t too much magic going on here, so we decided to write a quick how-to on setting up Varnish to cache content and speed up rendering and delivery of dynamic web pages. Since our little ARM servers are (obviously) not the most powerful platforms around, this can dramatically increase the performance and responsiveness of web servers running on ARM.

This guide will detail how setup Varnish and Nginx on a Debian 8 “Jessie” Server running on ARM.

First and foremost, we need to perform the actual installation of the software, then we can configure it. We simply run:

sudo apt-get install nginx varnish.

Now, we need to make some changes to setup the environment properly.

The first file we need to take a look at is the Nginx configuration file which should be located at /etc/nginx/sites-available/default

Specifically, we need to move Nginx off of port 80 so that Varnish will be able to take over port 80 traffic. For this example, we will place Nginx on port 8080 instead, so, we update the file to reflect the following:

server
listen 8080; {
root /usr/share/nginx/html;
index index.html index.htm;

# Make site accessible from http://localhost/
server_name localhost.localdomain;

(We are not using a fully qualified hostname in this example, so later on we will go update our hosts file to reflect this.)

Next, we can configure Varnish to go look for Nginx on port 8080, by editing the Varnish config file located at /usr/local/etc/varnish/default.vcl and editing the ‘backend’ section. Here is a simple example: (Note – This one has some common WordPress login pages excluded from being cached)

vcl 4.0;
# Based on: https://github.com/mattiasgeniar/varnish-4.0-configuration-templates/blob/master/default.vcl

import std;
import directors;

backend default {
.host = "127.0.0.1";
.port = "8080";
}

sub vcl_recv {
# Do not cache following pages (edit as needed for your configuration).
if (!( req.url ~ "wp-(login|admin|comments-post)" )) {
return (pass);
}

# Drop the cookies for everything else
unset req.http.cookie;

# Try a cache-lookup
return (hash);
}

sub vcl_backend_response {
# Below will cache the page for one week.(1s = 1 sec, 1d = 1 day)
set beresp.ttl = 1w;
}

Once Varnish knows where to look for Nginx, we can now set Varnish to take over port 80 that we previously freed up. To do this, we need to modify the Varnish start file, which in this case is located at /etc/systemd/system/varnish.service because we are using Debian. If you are on another distro, this location may vary. We need to change the ‘-a’ flag from -a :6081 to -a :80, then save and close the file.

The last change we need to make is to our hosts file, to ensure that the local network is interpreted correctly. We need to edit the /etc/hosts file, and add a line that translates 127.0.0.1 to localhost and localhost.localdomain:

127.0.0.1 localhost localhost.localdomain

At this point, we could technically restart the Nginx and Varnish services to read in these changes, but a reboot is probably a good idea as well if you can afford it.

Once the server comes back up, you should now have Varnish running on port 80 caching content from your Nginx web server. One way to test this is to go to http://www.isvarnishworking.com, and put in your IP address (keep in mind, you need a public facing IP for this). If everything is working, you should see a message like this:

varnish-nginx-on-arm-server

Additionally, you can run ‘sudo varnishstat’ to see a detailed breakdown of how much caching is being done by Varnish.

So, thanks go to Raspberry Pi for inspiring us to attempt to duplicate their work. Hopefully this helps you install Varnish and Nginx on ARM, and speed up web page rendering on your Pi’s or other small devices!