<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=299788&amp;fmt=gif">

Running the Atlassian Toolset on the Raspberry Pi

Atlassian, Atlassian Tools

Untitled-6

Introduction

Ever since the Raspberry Pi debuted nine years ago, we here at Isos Technology have been BIG fans of the little single-board computer that could. We have utilized RasPis for things like powering our various 70" company dashboards and helping us monitor the status of our espresso machine. Here's a tweet from seven years ago that marks the debut of that project:

image2020-6-14_22-45-37

 

As an Atlassian platinum partner, you can imagine the ultimate test of the RasPi is using it to run one or more Atlassian applications. And boy, have we tried this every step of the way... and with success, too (mostly...)!

 

A Quick History...

When the first RasPis became available, getting a full JRE to operate on the device was a challenge. In fact, the software created to monitor our espresso machine was written in Java, and that software was the first Java-based software we successfully deployed on the RasPi. However, Jira, at the time, did not boot properly. 

As time passed and new revisions of the RasPi—and its companion OS, Raspbian—became available, Java performance and completeness improved. Somewhere in the 2015 timeframe, we were running test instances of Jira and Confluence (without many apps) on RasPi boards. 

The performance of those instances was limited by a few factors:

  • Memory: RasPis at the time were limited to 1 GB of RAM. By 2015, a freshly-booted Jira with minimal or no apps consumed about 1 GB of RAM at rest. The slightest activity would cause Jira to grind to a halt.
  • I/O: The 2015 RasPis suffered from a few I/O bottlenecks:
     
    • The block storage device was an SD card which has known transfer speed and reliability limits.
    • The USB ports were limited to 480 mbps, and all USB ports shared the same I/O channel.
    • The ethernet port was limited to 100 mbps, and it also shared I/O with the USB2 subsystem.
  • Software/OS: Any OS available for the RasPi was 32 bit. Even if there was a higher memory option at the time, the RasPi OS choices limited total addressable RAM to 4 GB total.

 

The Future is Here!

Last year, Raspberry Pi shocked the community and dropped a completely revamped design that solved the following issues:

  • Need more memory? CHECK!
  • Need a fast CPU, ethernet, storage, and USB ports? CHECK!
  • Need 64-bit software? CHECK!

What finally got me off my duff to get my personal-yet-production-quality Atlassian server going on a RasPi was a further set of hardware/software refinements released by the Raspberry Pi org:

  • 8 GB version (4 GB was the last cap)
  • Booting off of the USB bus (as opposed to the SD card)

Without a doubt, this was the time for the RasPi to shine.

 

Let's Get This Baby Bootstrapped!

To round out this installment of RasPi tales, let's go through how and why I set up my RasPi to prep for the Atlassian installation:

 

1. Get the 'Normal' Raspian OK for Initial Bootstrapping

In a nutshell, I went to the official link and downloaded large "desktop" software distro.

I then followed the normal instructions on copying that image to a standard micro SD card.

 

2. Update Firmware to Boot from SSD

Micro SD cards, as mentioned above, have I/O speed limitations. If you could attach an external SSD drive to the USB3 port and boot off it, the RasPi would reach a new level of performance. We're now in luck, this link details how to update your firmware using the image below. 

Here are the specific steps I took to do the upgrade. These should be very similar to the linked article above:

 

Make sure your OS is up to date:

sudo apt update
sudo apt full-upgrade

 

 

Update eeprom settings:

vim /etc/default/rpi-eeprom-update

 

 

Flash the eeprom update:

sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-06-03.bin

 

 

Check current firmware version:

➜ ~ vcgencmd bootloader_version
May 10 2019 19:40:36
version d2402c53cdeb0f072ff05d52987b1b6b6d474691 (release)
timestamp 0

 

 

Reboot and see if the eeprom was actually updated:

➜ ~ sudo reboot
➜ ~ vcgencmd bootloader_version
Jun 3 2020 13:53:47
version b5de8c32f4f45a12a1fdfe107254df82965f9d56 (release)
timestamp 1591188827

 

Let's Compare I/O Speeds of MicroSD with USB Attached SSD

Before we move on, let us demonstrate the increase in I/O speed for both block read and writes:

 

MicroSD

We'll first run the hdparm application to test read speeds and then dd to benchmark write speeds:

hdparm first:

➜  ~ sudo hdparm -tT /dev/mmcblk0
/dev/mmcblk0:
 Timing cached reads:   1678 MB in  2.00 seconds = 839.36 MB/sec
 HDIO_DRIVE_CMD(identify) failed: Invalid argument
 Timing buffered disk reads: 130 MB in  3.01 seconds =  43.19 MB/sec

43 MB/sec, nice!

 

Now dd:

➜  ~ dd if=/dev/zero of=/tmp/output.img bs=8k count=256k
rm /tmp/output.img
262144+0 records in
262144+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 89.5873 s, 24.0 MB/

24 MB/sec, meh.

 

USB Attached SSD

We'll first run the hdparm application to test read speeds and then dd to benchmark write speeds:

hdparm first:

➜  ~ sudo hdparm -tT /dev/sda                          
/dev/sda:
 Timing cached reads:   1706 MB in  2.00 seconds = 852.87 MB/sec
 Timing buffered disk reads: 922 MB in  3.00 seconds = 306.94 MB/sec

306 MB / sec, nice!

 

Now dd:

➜➜  ~ dd if=/dev/zero of=/tmp/output.img bs=8k count=256k
rm /tmp/output.img
262144+0 records in
262144+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 9.35102 s, 230 MB/s

203 MB / sec, nice!

 

Wrapping Up for Next Time

Now that you have a proven USB booting, FAST RasPi server, we'll start installing Docker and the Atlassian application on your new server. Stay tuned!

Have any questions? Get in touch with us today.

 

Atlassian Solution Partner

 

TAGS: Atlassian, Atlassian Tools

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Subscribe to Our Newsletter

Recent Blog Posts