This is the first video demo of PiCluster. In this video, you will be able to see how the web console works and how to create a container and have it fail over between hosts. Check out how easy it is to use. I embedded the interview in this post so you can watch it easily here or on YouTube.
I am pleased to announce PiCluster version 2.0! In case you are unfamiliar with PiCluster, it is a container management tool written in Node.js used to manage Docker containers. It has been a long journey this past year coming up with new features and trying to community involvement. In this post, I will go over the contributions that the community has made for this release and discuss the exciting new feature: automatic container failover to different hosts.
In my previous blog posts, I always talked about my setup but never showed a completed diagram. In the above image, you can see everything that I am running on my 6 node Raspberry Pi cluster. All of the applications above are running in Docker containers managed by PiCluster except for Gluster.
Most people will say that 2016 was a terrible year and can’t wait for 2017. I agree that 2016 was not perfect for many people but it was a great year for linux-toys. I made this blog with the goal to influence people and drive that creative spark that we all have inside. In this blog post I will go over the website statistics and discuss a few of the blog entries that I thought were most influential for the year.
I switched to Gluster FS a while ago to provide easier container mobility across my Raspberry Pi Docker Cluster. Gluster worked great and was easy to get up and running but I had very poor performance. The average write speed was about 1 MB/s which is unacceptable for a filesystem that will undergo a lot of writes. I decided that it was time to take action and started looking at kernel parameters that could be changed.
I released PiCluster last week and wanted to show how to run the Scality S3 server with it using Docker. Scality S3 is an open-source object storage server. PiCluster is a simple and lightweight container management and orchestration framework that I wrote in Node.js. Besides running containers, PiCluster can also perform health checks on applications to ensure that a service is actually running. Before we begin, I am assuming that you already have Docker installed. Lets get started by downloading PiCluster.
My previous post was about using Cloud Explorer with the Scality S3 server. After I published that post, I thought it would be informative to go one step further and explain how I use the S3 server in homeduction (applications run at home in production). My homeduction environment consists of four Raspberry Pi’s running Docker that power this WordPress blog and many other applications . My goal is to add an S3 server to store the images for this blog and anything else that I can come up with.
I decided to finally make use of my four Raspberry Pi model 3’s and take the challenge to move all of my home services to them. Previously, I ran a x86 Desktop as a server in my living room. The loud noises coming from the server made it uncomfortable to be in sometimes. The loud noisy box is home to this website and many other applications such as Plex, Transmission, OpenVPN, Jenkins, Samba, and various Node.js projects all running in Docker. Having all of those applications running on a single box is a single point of failure and makes system administration harder when reboots are required.
I recently was looking at optimizing the device to make Apache run faster. Thanks to TAFB from #raspberrypi on FreeNode IRC chat, I experimented with turning off syslog and noticed a few second increase with the two different sites hosted on the Pi. Overall, there will be less IO on the system and less RAM and CPU being used that will result in slightly better performance on the PI. Also, there will be significantly less writes on the SD card. SD cards have a limited number of writes so it is important to reduce the numbers to have a longer lifespan.
The distribution used is Arch Linux.
Manage The Services:
# systemctl stop systemd-journald
# systemctl disable systemd-journald
# systemctl stop syslog-ng.service
# systemctl disable syslog-ng.service
# pacman -R syslog-ng
Next, I began to tune root filesystem for optimal performance and disabled logging.
Add the following to /etc/fstab:
/dev/mmcblk0p2 / ext4 rw,noatime,data=writeback,barrier=0,nobh,errors=remount-ro 0 1
# tune2fs -o journal_data_writeback /dev/mmcblk0p2
Before: Rusher81572.com loaded in 2.857s
After: Rusher81572.com loaded in 2.149s
Before: Rusher81572.com/pi loaded in 4.356s
After: Rusher81572.com/pi loaded in 4.039s