Difference between revisions of "Ubuntu 14.04 and LXC containers"
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | Ubuntu releases after 10.04 LTS do no longer provide unfs3 to | + | Ubuntu releases after 10.04 LTS do no longer provide unfs3. Unfs3 is useful when one want to setup a fog server in a container with OpenVZ or LXC. Nfs kernel server cannot run in these containers. |
− | You have to download, compile and install unfs3 from sources. | + | Here's how to setup a FOG server in a LXC container. |
+ | |||
+ | = Prerequisites = | ||
+ | |||
+ | * A computer (physical or virtual) running Ubuntu 14.04 Server, may or may not using LVM, with available space in at least one volume group | ||
+ | |||
+ | = Network setup on the LXC host = | ||
+ | |||
+ | Setup a bridge on the computer, with at least one ethernet interface attached to it. | ||
+ | |||
+ | apt-get install bridge-utils | ||
+ | |||
+ | edit the file '''/etc/network/interfaces''' and add the following lines. '''Please ensure you're not using a SSH session''', because you may lose your connection ! | ||
+ | |||
+ | Add the following lines : | ||
+ | auto br0 | ||
+ | iface br0 inet static | ||
+ | address 192.168.1.2 | ||
+ | netmask 255.255.255.0 | ||
+ | gateway 192.168.1.1 | ||
+ | bridge_ports eth0 | ||
+ | bridge_fd 0 | ||
+ | bridge_maxwait 0 | ||
+ | |||
+ | Reboot the computer and check network connectivity | ||
+ | |||
+ | = LXC container creation = | ||
+ | |||
+ | First, create a LXC container running Ubuntu. The version is the latest LTS version available at the moment of creating the container | ||
+ | |||
+ | lxc-create -n server-fog -t ubuntu -B lvm --vgname vg --lvname lv-server-fog --fssize=10G --fstype=ext4 | ||
+ | |||
+ | This will create a logical volume '''lv-server-fog''' in the volume group '''vg0''', with a 10GB ext4 filesystem. The container wil be named '''server-fog'''. At the end of the process, the system will give you a login and a password. | ||
+ | |||
+ | Edit the file '''/var/lib/lxc/server-fog/config''' and setup networking for the container : | ||
+ | |||
+ | lxc.network.link = br0 | ||
+ | lxc.network.ipv4 = 192.168.1.3 | ||
+ | lxc.network.gateway = 192.168.1.1 | ||
+ | |||
+ | start your container | ||
+ | |||
+ | lxc-start -n server-fog -F | ||
+ | |||
+ | login with the credentials given earlier, and '''change the password''' ! If needed, you have to shutdown the container to go back to the host's console | ||
+ | |||
+ | sudo init 0 | ||
+ | |||
+ | To run the container non interactively, use the following command | ||
+ | |||
+ | lxc-start -d -n server-fog | ||
+ | |||
+ | To use a terminal in the container : | ||
+ | |||
+ | lxc-console -n server-fog | ||
+ | |||
+ | You may exit the container at any time using the following keys (do not forget to logout first, because this will NOT logout any user in the container) : | ||
+ | |||
+ | CTRL+A, Q | ||
+ | |||
+ | In the container you have to download, compile and install unfs3 from sources. | ||
* [http://sourceforge.net/projects/unfs3/files/ Download unfs3] | * [http://sourceforge.net/projects/unfs3/files/ Download unfs3] | ||
Line 26: | Line 86: | ||
* If the LVM volume has been successfully mounted, move back the files backed up in /root/images-bak. Note there is no slash before '''images'''. | * If the LVM volume has been successfully mounted, move back the files backed up in /root/images-bak. Note there is no slash before '''images'''. | ||
* chmod 777 /images | * chmod 777 /images | ||
+ | |||
+ | Once your setup is up and running, do not forget to enable autostart of your container : | ||
+ | |||
+ | edit /var/lib/lxc/server-fog/config : | ||
+ | |||
+ | lxc.start.auto = 1 |
Latest revision as of 08:02, 1 March 2015
Ubuntu releases after 10.04 LTS do no longer provide unfs3. Unfs3 is useful when one want to setup a fog server in a container with OpenVZ or LXC. Nfs kernel server cannot run in these containers.
Here's how to setup a FOG server in a LXC container.
Prerequisites
- A computer (physical or virtual) running Ubuntu 14.04 Server, may or may not using LVM, with available space in at least one volume group
Network setup on the LXC host
Setup a bridge on the computer, with at least one ethernet interface attached to it.
apt-get install bridge-utils
edit the file /etc/network/interfaces and add the following lines. Please ensure you're not using a SSH session, because you may lose your connection !
Add the following lines : auto br0 iface br0 inet static address 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1 bridge_ports eth0 bridge_fd 0 bridge_maxwait 0
Reboot the computer and check network connectivity
LXC container creation
First, create a LXC container running Ubuntu. The version is the latest LTS version available at the moment of creating the container
lxc-create -n server-fog -t ubuntu -B lvm --vgname vg --lvname lv-server-fog --fssize=10G --fstype=ext4
This will create a logical volume lv-server-fog in the volume group vg0, with a 10GB ext4 filesystem. The container wil be named server-fog. At the end of the process, the system will give you a login and a password.
Edit the file /var/lib/lxc/server-fog/config and setup networking for the container :
lxc.network.link = br0 lxc.network.ipv4 = 192.168.1.3 lxc.network.gateway = 192.168.1.1
start your container
lxc-start -n server-fog -F
login with the credentials given earlier, and change the password ! If needed, you have to shutdown the container to go back to the host's console
sudo init 0
To run the container non interactively, use the following command
lxc-start -d -n server-fog
To use a terminal in the container :
lxc-console -n server-fog
You may exit the container at any time using the following keys (do not forget to logout first, because this will NOT logout any user in the container) :
CTRL+A, Q
In the container you have to download, compile and install unfs3 from sources.
- Download unfs3
- decompress the archive : tar zxf unfs3-0.9.22.tar.gz
- apt-get install build-essential make flex bison
- cd unfs3-0.9.22
- ./configure
- make
- make install
- make install-init
- edit /etc/init.d/unfsd and replace the occurence of /usr/sbin/unfsd with /usr/local/sbin/unfsd
- /etc/init.d/unfsd start
- check unfsd is running : ps -ef | grep unfsd
- if it runs, then run update-rc.d unfsd defaults
Install and configure fog as usual.
If you want to setup a separate volume for your images :
- assuming you want to use a logical volume (LVM) /dev/vg0/lv with a ext3 filesystem :
- run your container and move all files located in /images into an other location (/root/images-bak), including the hidden file /images/.mntcheck
- from the lxc host, open /var/lib/your-container/fstab and add the following line : /dev/vg0/lv images ext3 defaults 0 0
- restart the container, and check the nex volume is available : run mount without any argument.
- If the LVM volume has been successfully mounted, move back the files backed up in /root/images-bak. Note there is no slash before images.
- chmod 777 /images
Once your setup is up and running, do not forget to enable autostart of your container :
edit /var/lib/lxc/server-fog/config :
lxc.start.auto = 1