Powernap – The Server Power Management


I recently moved into a new home and one of the first things that I HAD to do was setup the home media server with a XBMC front end. So I set it up and I have been watching movies and television happily for a month now. All was going well until I got my first electricity bill. Wow was it painful. Of course it include the usage of a fridge and other appliances, but the media server had not been turned off for the whole month even though I only used it maybe 2 hours a day.

To this end I set out to find a way to reduce power consumption. The first thing that I thought of was a simple shutdown script for the XBMC front end that would turn off the server before it turned off. This worked well but there where problems, that sometimes the front end wasn’t turned off for long periods with idle time, or sometimes after I turned off the front end I still wanted to access the server and I still had to manually turn the server on. Clearly this was not a long term solution.

The next concept was to get the computer to be turned on via Wake On Lan. Wake On Lan (WoL) is a method of sending a special command to a computers motherboard via an Ethernet connection. This is easy to setup but hard actually do. Searching around online I found a program Powerwake written by Dustin Kirkland which using a very simple interface can perform as required. On Ubuntu this can be installed and used to wake a computer like so:

sudo apt-get install powerwake

sudo powerwake 10.0.0.12

*Replace 10.0.0.12 with the the address of the computer you want to wake.

This can be used to wake a sleeping computer. I use a simple script built into the front end which when runs wakes the server, waits about 30 seconds and then tries to remount the fstab file. If it the remount fails it waits another 30 seconds and then tries again. When the remount succeeds the computer reloads XBMC – easy.

This leaves only the problem of getting the server to turn off after inactivity. For this I installed the powernap program. This is a great application, again from Dustin Kirkland, which acts much like a screen saver for a server or non-GUI system. It is was quite complex to setup, but once you understand how it works it becomes much simpler.

Unfortunately time has run out and this post must end now. Stay tuned for updates of how I installed Powernap and a better look at how the program works.

As power is becoming a more and more costly and a limited resource (until we switch to renewable energy sources) tools such as powernap and powerwake will become more and more necessary for both hobbyists and professionals alike.

Advertisements

Selecting Hardware for a Server – Ubuntu Server


Hardware is KEY.

You must have the BEST.

I am here to tell you that ITS ALL LIES. Fed to us through not just the media but big businesses and other corporate goons, bent on taking us for as much money as we can. The truth of the matter is that unless your running windows 7 ultimate packed full of processor heavy programs, you only need the most minimal of hardware setups by todays standards to run a server and even then it will most like be underused. (more…)

Installing the Base System – Ubuntu Server


Now we have the hardware, and the software setup and ready to go, we can begin the install. make sure that you have set up the hardware with all the peripherals attached.

Step 1

First we must enable the computers BIOS to load from the cd. To do that turn the computer on. Depending on the chip set of the computers motherboard there will be different keys for entering the BIOS setup. It is usually either F1, F2, del, esc, or F10. press one of these key before the computer loads the boot loader screen. Once into the BIOS you will want to find the boot load order. Once you have found the boot load setting, change the order so that the CD-DISK option (or similar) is number one.

exit and save from the BIOS screen and insert the install disk from Part 3.

Step 2

The computer will load into the disk. First it will ask for your language, Hit enter for the default (English) or select your preferred language. Next it will bring up a basic option list. Select the “install ubuntu server” option. This will then load an ncurses screen (blue white and red with monospace font). It will then as a for a number of options

  • Select your langauge
  • Select Your Location

You will now be asked whether you want to automatically select your keyboard. I have never had this work successfully, however you could give it a try, particularly if you have a non standard keyboard, otherwise select no.

If you pressed no and you have a standard keyboard it is a US keyboard. There will be 2 or 3 screens where you must select your keyboard. If you have a nonstandard keyboard, select your variation.

If you pressed yes you will have to press some keys and it will work out which keyboard you have. There will be multiple keys.

Step 3

After selecting your keyboard the installer will load a few additional component and then set up DHCP. This means it is looking for an Internet connection. If you do not have an INTERNET connection auto detection will fail and you will have to select “set up DHCP later” other wise it will auto configure and you should be able to move straight on.

If it fails and you have the server plugged in to the Internet there are a few simple things you can check. Make sure that if you have multiple Ethernet ports (multiple NIC’s), try changing the Ethernet cord to another port. Make sure that you actually can connect to the Internet on another computer (you should have another computer else you wouldn’t need to set up a home server).
You can also try manually setting up the DCHP setting, although that shouldn’t be necessary.

You will then need to set the host name. You can set this to what ever you like.

You will then be asked whether you the time zone detection has configured the correct zone, if it has not you will need to change it, otherwise hit enter.

Step 4

Now we have to setup the partitions. Select The Guided – use entire disk and setup LVM. You will then need to select which hard drive you want to use. Select the one that you want to install the primary operating system on. It must be no less than about 10GB, although for the best results from a home server 60 – 80 GB would be optimal (For there to be enough room to backup and store all of your important information.

Next select yes you would like to save the changes. The next screen will ask you for how much you would like to use for the / (root) and swap partitions. I suggest using no less than 20GB or 40 – 50% of the drive. This allows for expansion if necessary.

Save the Logical Volume Management and write the changes to disk.

Step 5

After the completion of Step 4, The system will be installed. At some point, you will be asked to enter a name for the new user. This is the main user that controls the server, they will have root access through the sudo command. You cannot call this user admin or root. I suggest entering your Name.

Next You need to enter the users username, I usually make this my first name or administrator. but it is up to you (you cannot use admin or root). You will then be asked for the users password. If you will be able to access the server from the Internet ie it servers web pages or has public ftp etc, you will need a strong password. Make it more than eight letters, with a mixture of numbers, lower and uppercase letters and if your frantic symbols as well. If you home server will never be accessible from the Internet then you can make the password as simple as you like (still suggest at least 4 letters).

The last two parts of step 5 are 1 – do you want to encrypt you home directory. The answer here should be no. unless you are storing sensitive data it won’t need to be encrypted and 2 – are you behind a proxy. Leave this blank unless you use a proxy server to connect to the Internet

You system will now start to install

Step 6

After a short period of time you will be asked whether you want to automatically update your system. You should manually do this for greater control, so select “No automatic updates”
Another short period of time later you will be asked what extra software you would like to install. I prefer to manually add extras software so I would hit enter, however if you would like the installer to automatically setup the system add which of the servers you would like it to setup by scrolling to the server and pressing space bar and hit enter when you are finished.

The installation is now nearly complete, all you have to do is hit yes when asked if you would like to add the grub boot loader to the master directory and then when prompted remove the cd and restart the computer.

Now you have installed the base ubuntu server.

Next we will add setup users and and user version control so that the files can be better managed.

Getting Ready to Install – Ubuntu Server


The Following article is suitable for any Linux Distribution, however make sure that there are no alternate instructions on the distribution you are using.

Now that we know which version of Ubuntu we are going to install we can prepare the installation disk. The first thing that we need to do is download the iso. The iso is an archive type formate that is burnable to a disk. It can be anything really, a dvd, a cd, a USB Thumb drive. The iso itself can be found many places. Primarily it can be downloaded from the main Ubuntu website. It can also be downloaded from a mirror. Google Ubuntu mirror and your country name will bring up many different mirrors, select a relevant one and navigate to and download the iso. I live in Australia and on a university campus so i use mirror.aarnet.edu.au from which i can download the whole iso (700MB) in 15-20 seconds.

Now we will need to load the iso onto the disk (for this article i will be putting it on a cd. I will go through all the different methods and OS later). Below is a list of descriptions for each primary operating system

  • Ubuntu
    1. Insert a blank disc. Cancel any pop up windows that may open
    2. Right click on the downloaded iso and choose the option “Write to Disc”
    3. Select the Write speed and location of write – either of theses options may not be available.
    4. Click Burn. The setup of the install disc is finished.
  • Mac
    1. Launch Disk Utility (Applications → Utilities → Disk Utility)
    2. Insert your blank CD/DVD
    3. Drag and drop your .iso file to the left pane in Disk Utility. Now both the blank disc and the .iso should be listed
    4. Select the .iso file, and click on the ‘Burn’ button in the toolbar
    5. Ensure that the ‘Verify burned data’ checkbox is ticked (you may need to click on the disclosure triangle to see the checkbox)
    6. Click ‘Burn’. The data will be burned and verified
  • Windows 7
    1. Right-click on an ISO image and choose ‘Burn disc image’
    2. Select a disk burner (drive) and choose ‘Burn’. If you check ‘Verify disc after burning’, it will confirm that the ISO image has been burned correctly

For a more comprehensive list of how to burn an iso visit BurningIsoHowto which details every way to burn disk image onto a any form of disk. Thank you Ubuntu.

Building The Ultimate Ubuntu Home Server


It is my goal to provide the means to create the perfect home server. I have been using Linux for about 1 year now. I started with Fedora for about 3 months, and having grown tired of the look and feel of Gnome in fedora, switched first to Kubuntu then Ubuntu and finally settled on Ubuntu studio (looks cool and comes with all the needed video and audio tinkering tools that I could dream of). I love the functionality that Ubuntu brings and of course the cost!

Beyond using Linux as my desktop, when I purchased a server about 3 months ago, I was completely oblivious as to the power of running a home server. Now all my computers can communicate through an internal mail system, can share a printer, have all my files and folders backed up and in a version control system. Essentially, it provides me with a commercial level of control, without any associated fee.  Which is exactly what I want.
(more…)

Choosing A Version – Ubuntu Server


Arg. So many flavors. Linux comes in many varieties, and then those varieties have versions. It can be so difficult to choose.

At the first level, Linux is broken up into distributions. There are many different distributions, and while on some level that are all fundamentally different, Many have the same general base. For example Ubuntu, Mint and Backtrack are all derivatives of the Debian distribution, an Operating system based upon fundemental principles and a complex package management system (read more about apt here)

For the next two levels of variety i will be referencing the Ubuntu distribution.

On the second level each distribution has a number of release versions of there OS. They are usually the latest release and a long term support release. The latest release is a stable version of the development version that is actively being worked on, and while it is stable, it is the most likely to break. The long term support release (LTS) is version which is more robust and will be supported further into the future.

At the next level down, each release version comes in a number of version for each CPU type. You can get 64 bit and 32 bit architecture OS and a version that supports arm architecture as well as many others. Mostly likely however you will have an Intel CPU and so will either use AMD64 or i386 versions.

Lets look at an example of choosing a Linux OS. For this example i will be selecting a OS for my server.

First off, we have to make a choice on the preference of which distribution we want to use. I love Debian based distributions, and have recently set up a number of Debian based servers for family friends. As Ubuntu is Debian based, and seems to trend well, i am going to stick with Ubuntu.

Now we need to make a decision of which release to choose.

As I primarily and building an experimental server, to run software that is new and need the all the latest builds, I am going to go with 10.10.

Next, you will need to know what hardware you have. Ideally you should choose AMD64. This version uses a 64bit address system and is far more extensible. Its a little bit better for some processes and not quite as fast for others. If you have older hardware, you may have to use the i386 type. It uses a 32bit address system and is perfectly fine for the home sever.

Always go with the AMD64 version. 64bit programming and process is the way of the future. If you are setting up the server on an old computer running a 32bit only CPU such as a Pentium 3 or 4, you will need to use the i386. The 64bit architecture also allows for much more memory, up to 64GB in the Ubuntu kernel (may be different for server edition), while the 32bit architecture only allows 4GB of memory (strictly speaking you can install software to support more).

You also need to choose which system you creating. This is easy now, where creating a server so we will need the server edition. Below is a description of the different system types for later if you need to know the differences

  • server
  • desktop
  • netbook
  • alternate

Server edition has the main difference to all others of a different kernel I/O handler and no GUI by default. despite this you can still install a GUI with apt-get install gnome-meta or KDE-meta packages

Desktop edition is the standard Ubuntu that comes with all the bells and whistles that makes an operating system useful to the primary end users. I has a GUI (Gnome of KDE depending on your choice) and standard applications and accessories.

Netbook edition is a slim and trim version of the desktop edition. As of Ubuntu 10.10 it uses a different graphical rendering program to display the on screen information and has a different layout.

Alternate edition is the same as the desktop edition, however it comes without the live (demo) functionality. This provides a much greater control over the set-up procedure but as a restore disk is more limiting.

My computer is very old. It runs a Pentium 3 and only supports 32bit architecture (I also only have 2GB RAM) so I will be using the Ubuntu below.

ubuntu-10.10-i386-server.iso

This is the version that I will be using throughout the series of setting up a home server.

Why Choose Ubuntu Server


Why Not.

Today, servers come in many many flavors, If your reading from a web browser you got your IP address from a DHCP server, sent information to a DNS server, more information to a web server, which accessed a database server. It is inescapable. And although it is undeniable that servers are everywhere (and will one day take over the world and rule with an iron fist) Why would you need one?

I use a server in my home for a number of reasons. I have 2 desktop computers, a laptop and a home built router. My server is the place where everything is put together and all the behind the scenes work happens. I never have data loss (theoretically that is) and all of my data and internal information is stored. I also can play games with my friends on it and it also allows my printer to be accessible from just about anywhere. This all happens because I have a server running Ubuntu 10.04 (more…)

%d bloggers like this: