Methods of user customization

From unRAID
Jump to: navigation, search

Because unRAID is generally an "always on" server, many users find it is the logical place to house other applications such as a web server, newsbin downloader, or a media library interface such as Slimserver. In addition, some users have specific needs for features that can only be accomplished with additional functionality added to an unRAID server, such as Avahi for Mac users or UPS monitoring.

There are several methods for users to customize or add software to unRAID. This article summarizes them and highlights their positives and negatives.

Introduction

About Linux Packages

The stock unRAID distro does not have a compiler, so you can not install and compile programs from source code. However, Slackware Linux does have "packages" where someone installs source code on a full Slackware development system, compiles it, and then builds the package of the results of the compilation. Then you can download and install that package on your system, and the application will be (hopefully) installed as if you had compiled it yourself. Some packages may need shutdown scripts to close cleanly. Some may be risky without swap space ... Linux does not like to run out of memory, and can misbehave badly if it does.

Packages can be obtained from several places:

Note all applications do not have a package, particularly applications that have relative small user bases, and applications that are more complex. This can sometimes be very frustrating when you find the exact application you need, but there is no Slackware package of that application.

The more complex the application is, the more difficulties will likely be faced in creating or installing the package. In addition, if a particular piece of software requires kernel support, and what it needs is not in the stock unRAID kernel, the package install won't work unless you also build your own kernel.

Packages also may have dependencies, which means that will only work if you also have other necessary programs installed. In some situations, you may find a package for the application you want, but find out that it depends on a library that is not available in a package.

About Building a Custom Kernel

Some applications/packages will not work on the stock unRAID kernel. In order to run them, you will have to build a custom kernel. This can be done on both a standard unRAID installation booting from the flash and on a full Slackware development system. See Building a custom kernel for more information.

unRAID modification options

Scripts and programs stored on the flash

Positives:

  • Very simple to install

Negatives:

  • Limited capabilities

Packages added dynamically on each boot

See this post for an example.

Positives:

  • Fairly simple to install
  • Moderate capabilities, depending on what packages are available
  • Will usually work after upgrading unRAID

Negatives:

  • Installation can become complex with many packages and dependencies
  • May need to futz around with locations and symlinks for applications' configuration files so they are persistent when rebooting
  • Can slow booting times

Permanently adding packages to the initramfs

See this thread for more information.

Positives:

  • More extensive capabilities
  • Application configuration files can be persistent through reboots without relocating them
  • Can use multi-boot options in Syslinux for flexibility to switch between modified and stock unRAID

Negatives:

  • Installation is more complex
  • Requires packages be reapplied when upgrading unRAID.

Adding a partial development system to the initramfs

Positives:

  • Very high capabilities
  • Can compile programs that don't have a Slackware package

Negatives:

  • Installation is more complex
  • Requires applications to be recompiled and packages be reapplied when upgrading unRAID
  • Creates a substantially larger initramfs which uses more RAM

Installing unRAID on a full Slackware development installation

Positives:

  • Unlimited capabilities
  • Can dual-boot with Windows on the same hardware (for example, when you need to update the BIOS)
  • Permanent swap partition

Negatives:

  • Complex installation
  • Need a working knowledge of configuring and debugging a Linux kernel for your hardware
  • Requires rebuilding kernel and possibly recompiling some applications when upgrading unRAID
  • Requires an additional hard drive for root filesystem

See Installing unRAID on a full Slackware distro.

Virtual machine options

There are two VM options for unRAID: Running unRAID inside a VM and running a VM on top of unRAID. Both are rather complex propositions.



Running unRAID inside a VM

This requires that you have an existing host Linux or Windows system, and appropriate virtual machine host software. unRAID then runs inside a VM on that host. Additional functionality can then run natively on the host or in another VM, and the standard unRAID distribution runs alone in its own VM.

Positives:

  • Can utilize multiple CPU hosts
  • No changes to stock unRAID
  • Linux and Windows applications on one host

Negatives:

  • RAM hungry
  • Slower disk access
  • Limited disk resources depending on version of VM


unRAID Virtual Machine available for download

Available for download is a Virtual Machine built using Sun's VirtualBox (now under the ownership of Oracle).


unRAID Virtual Machine Specifications and Configuration:

System Configuration:

  • OS Version: unRAID 4.5.3 Basic Edition
  • Memory: 512MB RAM
  • Processor(s): 1
  • Video Display: 5MB RAM
  • 2D & 3D Accelerations: Disabled

Storage Configuration:

  • IDE Primary Master: unRAID_IDE1.vdi (Normal, 40.00 GB)
  • IDE Secondary Master (CD/DVD): None
  • SATA Port 0: unRAID_SATADISK1.vdi (Normal, 250.00 GB)
  • SATA Port 1: unRAID_SATADISK2.vdi (Normal, 250.00 GB)
  • SATA Port 2: unRAID_SATADISK3.vdi (Normal, 250.00 GB)

Other Specifications:

  • Audio: Disabled
  • Network Adapter 1: Intel PRO/1000 T Server (Bridged Adapter)
  • Serial Port(s): Disabled
  • USB: Disabled
  • Shared Folders: None


How to get VirtualBox:

http://dlc.sun.com/virtualbox/vboxdownload.html


To download the Virtual Machine:

http://www.unraid.net/files


The files to download are 'unRAID_VM_453.zip' and 'Readme.txt' files.


Host machine requirements to use the unRAID Virtual Machine:

  • CPU: Pentium 4/AMD Athlon 2.6 GHz or higher CPU (Intel Core Duo or AMD Athlon II or higher is recommended).
  • RAM: At least 1GB RAM (2GB RAM or higher recommended).
  • OS: Basically any OS which is able to use VirtualBox (was tested on a Windows 7 Host OS).
  • Network: Basic LAN connection, set using a Bridged Configuration is the best way to go to interface this VM to your network (1Gbps NIC highly recommended).


Importing the unRAID Virtual Machine into VirtualBox:

To import the VM guest into VirtualBox, please follow the instructions below (Instructions should be universal for all VirtualBox applications across all Host OS's):

  1. Click on File > Import Appliance...
  2. Select the 'Choose...' button
  3. Locate the extracted 'unRAID_VM_453' files for a file called 'unRAID.ovf'
  4. Accept the defaults and import the VM

Time to import the VM takes about 5 to 10 minutes or maybe longer, depending on the hosting computer's specifications.

Note: The disks on the VM need to be assigned, the parity disk built, and the data drives formatted like any other physical unRAID Server. This process will also depend on the host's specifications. Do not interrupt these processes mentioned like powering off or suspend/pause the VM. It is best to let these building processes complete successfully before interrupting it in any way.


Credits and Thanks:

Many thanks to all who assisted me on the original thread and also thank you to Msan for providing the FTP space to host this VM. I hope that this VM provides the courage and knowledge to those who want to test out unRAID but don't have the hardware or extra computer to test unRAID; also to those who want an easier way to test and to develop on an unRAID machine. Though it is limited to only one parity and two data disks (a license restriction of the Basic Edition), it is enough to give newcomers to unRAID a 'feel' as to how unRAID works, which is the main purpose for this VM.



Running a VM on top of unRAID

This requires that you are able to use a modified unRAID kernel since the stock unRAID kernel does not have SYSVIPC enabled. In most cases, you will need unRAID installed on a full Slackware development system.

Positives:

  • Linux and Windows applications on one host
  • unRAID disk access is native

Negatives:

  • RAM hungry
  • Changes to stock unRAID kernel



Running VirtualBox into an unRAID Host

This guide applies for those who want to run VirtualBox as service into an unRAID host.

Installing VirtualBox in unRAID