KEMBAR78
Installing a Cluster of Raspberry Pis with Stacki Ace | PPTX
Installing a Cluster of Raspberry Pis
What is a Raspberry Pi?
Single board computer
Designed to promote teaching of computer science
As of November 2016, 11 million units sold
Raspberry Pi 3 Model B - $35!!
Raspberry Pi Stats
1.2 GHz quad-core ARM
64/32 bit capable
1 GB RAM
1 MicroSD slot
4 USB ports
100 Mbit Ethernet
HDMI
Bluetooth
Wireless LAN
Audio / Composite video out
Camera header
Display header
40 pins of general-purpose I/O
Raspberry Pi Software
Supports Linux
Debian (“Raspbian”)
• Main software release
CentOS 7.x
• Only 32-bit for now
Many other distributions too
And now Stacki!
Stacki Ace
The best ARM on your team is an Ace
Stacki pallet for ARM
• Based on Stacki 4.0
Stacki-ace pallet for ARM
• Raspberry Pi specific configuration
Why Stacki Ace?
Great marketing vehicle
X86_64 rules the server space
• But 15 billion ARMs shipped in 2015
Can install a datacenter with a $35 device
Interesting new use cases
• Low-cost pooled storage
• IoT
Stacki Ace – What does it do?
Converts a Raspberry Pi into a Stacki frontend
Stacki Ace frontend can install:
• Other Raspberry Pis (“ace” appliances)
• Traditional x86_64 servers (“backend” appliances)
Storage Configuration
Set “bootdisk” parameter
• Default: mmcblk0 (the MicroSD card)
• USB storage: sda
Can install onto:
• MicroSD card
• USB-connected hard disk
• USB stick
Note: If you install onto a USB device, you no longer need a
MicroSD card
Frontend Installation
Login to Frontend Raspberry Pi
• You’ll be asked to change your password
• And your root file system will be resized to use all the space on your
MicroSD card
Download stacki, stacki-ace and os pallets for ARM
Execute ‘frontend-install.py’:
Reboot
frontend-install.py -–stacki-iso=stacki-4.0_20170316-7.x.armv7hl.disk1.iso 
–-stacki-version=4.0 -–stacki-name=stacki
Raspberry Pi Backend Installation
Live Demo
X86_64 Backend Installation
Download “os” and “stacki” pallets for x86_64
Create a new box for the x86_64 pallets
Add and enable “os” and “stacki” pallets for new box
Assign the x86_64 backend nodes to the box, then install
# stack add box traditional
# stack add pallet os-7.3_11122da-7.x.x86_64.disk1.iso 
stacki-4.0_20170414_c4aff2a-7.x.x86_64.disk1.iso
# stack enable pallet os stacki box=traditional arch=x86_64
# stack set host box backend-0-0 box=traditional
Internals
Basic Kickstart File Processing
Wrote a “kickstart interpreter” for CentOS ARM
• No kickstart on CentOS ARM
Dynamically create a valid kickstart file and send it back to the Pi
• Pre
• Package
• Post
Kickstart File Processing
During an install, NFS mount “/” from the frontend
• This allows for the backend Pi to be “off” the storage so we can
repartition and reformat “/boot” and “/”
We configure /etc/dhcp/dhcpd.conf to answer Raspberry Pi DHCP
requests
• Which we automatically enable via
“program_usb_boot_mode=1” in /boot/config.txt
Basic Kickstart File Processing
On each boot, backend asks for kickstart file
Looks at attributes section for “bootaction” attribute
If “bootaction” == “install”, then parse and execute the kickstart file
• Otherwise, do nothing
Future
Avalanche Package Installation
• Benefits x86_64 too
• Parallel file distribution on running hosts
Storage and partitioning spreadsheets
Wireless networking

Installing a Cluster of Raspberry Pis with Stacki Ace

  • 1.
    Installing a Clusterof Raspberry Pis
  • 2.
    What is aRaspberry Pi? Single board computer Designed to promote teaching of computer science As of November 2016, 11 million units sold Raspberry Pi 3 Model B - $35!!
  • 3.
    Raspberry Pi Stats 1.2GHz quad-core ARM 64/32 bit capable 1 GB RAM 1 MicroSD slot 4 USB ports 100 Mbit Ethernet HDMI Bluetooth Wireless LAN Audio / Composite video out Camera header Display header 40 pins of general-purpose I/O
  • 4.
    Raspberry Pi Software SupportsLinux Debian (“Raspbian”) • Main software release CentOS 7.x • Only 32-bit for now Many other distributions too And now Stacki!
  • 5.
    Stacki Ace The bestARM on your team is an Ace Stacki pallet for ARM • Based on Stacki 4.0 Stacki-ace pallet for ARM • Raspberry Pi specific configuration
  • 6.
    Why Stacki Ace? Greatmarketing vehicle X86_64 rules the server space • But 15 billion ARMs shipped in 2015 Can install a datacenter with a $35 device Interesting new use cases • Low-cost pooled storage • IoT
  • 7.
    Stacki Ace –What does it do? Converts a Raspberry Pi into a Stacki frontend Stacki Ace frontend can install: • Other Raspberry Pis (“ace” appliances) • Traditional x86_64 servers (“backend” appliances)
  • 8.
    Storage Configuration Set “bootdisk”parameter • Default: mmcblk0 (the MicroSD card) • USB storage: sda Can install onto: • MicroSD card • USB-connected hard disk • USB stick Note: If you install onto a USB device, you no longer need a MicroSD card
  • 9.
    Frontend Installation Login toFrontend Raspberry Pi • You’ll be asked to change your password • And your root file system will be resized to use all the space on your MicroSD card Download stacki, stacki-ace and os pallets for ARM Execute ‘frontend-install.py’: Reboot frontend-install.py -–stacki-iso=stacki-4.0_20170316-7.x.armv7hl.disk1.iso –-stacki-version=4.0 -–stacki-name=stacki
  • 10.
    Raspberry Pi BackendInstallation Live Demo
  • 11.
    X86_64 Backend Installation Download“os” and “stacki” pallets for x86_64 Create a new box for the x86_64 pallets Add and enable “os” and “stacki” pallets for new box Assign the x86_64 backend nodes to the box, then install # stack add box traditional # stack add pallet os-7.3_11122da-7.x.x86_64.disk1.iso stacki-4.0_20170414_c4aff2a-7.x.x86_64.disk1.iso # stack enable pallet os stacki box=traditional arch=x86_64 # stack set host box backend-0-0 box=traditional
  • 12.
  • 13.
    Basic Kickstart FileProcessing Wrote a “kickstart interpreter” for CentOS ARM • No kickstart on CentOS ARM Dynamically create a valid kickstart file and send it back to the Pi • Pre • Package • Post
  • 14.
    Kickstart File Processing Duringan install, NFS mount “/” from the frontend • This allows for the backend Pi to be “off” the storage so we can repartition and reformat “/boot” and “/” We configure /etc/dhcp/dhcpd.conf to answer Raspberry Pi DHCP requests • Which we automatically enable via “program_usb_boot_mode=1” in /boot/config.txt
  • 15.
    Basic Kickstart FileProcessing On each boot, backend asks for kickstart file Looks at attributes section for “bootaction” attribute If “bootaction” == “install”, then parse and execute the kickstart file • Otherwise, do nothing
  • 16.
  • 17.
    Avalanche Package Installation •Benefits x86_64 too • Parallel file distribution on running hosts Storage and partitioning spreadsheets Wireless networking