6,534
edits
Changes
Tilera
,created
== Prerequisites ==
You have to have Tilera MDE installed in the following way:
gpg -d /path/to/tileramde-3.0.0.123096_tilepro.tar.bz2.gpg | tar xjf -
gpg -d /path/to/tileramde-3.0.0.123096_tilepro_src.tar.bz2.gpg | tar xjf -
eval $(TileraMDE-3.0.0.123096/tilepro/tile-env)
cd $TILERA_ROOT
gpg -d /path/to/tileramde-3.0.0.123096_tilepro_tile.tar.bz2.gpg | tar xjf -
cat << EOF > tile/.profile
HOME=/root
cd
EOF
In other words:
* tilepro and tilepro_src tarballs are unpacked to the same directory
* tilepro_tile tarball is unpacked under $TILERA_ROOT
* $TILERA_ROOT/tile/.profile is created as shown above
== Creating OpenVZ template ==
A template is just a tarball of a Linux distribution installed into
a chroot-like environment. Here, we can just use $TILERA_ROOT/tile contents,
omitting just some less-needed contents:
cd $TILERA_ROOT/tile
tar cvzf ../tile.tar.gz . \
--exclude ./boot \
--exclude ./lib/modules \
--exclude ./usr/share/doc \
--exclude ./usr/share/locale
== Compile/install vzctl ==
vzctl is a tool to control OpenVZ containers. To compile it:
cd $TILERA_ROOT
TAR=vzctl-tilera-20110429-3.tar.bz2
wget http://download.openvz.org/.kir/tilera/$TAR
tar xvjf $TAR
rm -rf vbuild
mkdir vbuild
cd vbuild
sh ../src/packages/vzctl/tile-extract
./tile-build --install
At this point you should have vzctl installed into $TILERA_ROOT/tile
In addition, put the OpenVZ template into an appropriate directory:
cd $TILERA_ROOT
cp tile.tar.gz tile/vz/template/cache/
== Compile/install OpenVZ kernel ==
This kernel is based on RHEL6-2.6.32 plus OpenVZ patches 042test008.1,
plus backported Tilera patches taken from Tilera MDE 3.0.0.123096
2.6.36 kernel source.
This is an initial port, with some known bugs and limitations.
FIXME: what options/features are not yet ported?
Here is how to compile OpenVZ kernel:
cd $TILERA_ROOT
TAR=kernel-rhel6-ovz-tilera-20110429.tar.bz2
wget http://download.openvz.org/.kir/tilera/$TAR
tar xjf $TAR
mkdir kbuild
cd kbuild
export ARCH=tile
sh $TILERA_ROOT/src/sys/rhel6-ovz-kernel/tile-prepare
make -j32
make modules_install INSTALL_MOD_PATH=$TILERA_ROOT/tile/
== Running OpenVZ ==
=== Preparing a chroot script ===
cat << EOF > $TILERA_ROOT/tile/chroot.sh
cd /mnt
mount --bind /sys sys
mount --bind /proc proc
mount -t tmpfs tmpfs /mnt/dev
cp -a /dev/ /mnt/
chroot . /bin/bash
# Rollback
umount /mnt/dev
umount /mnt/sys
umount /mnt/proc
EOF
=== Running kernel ===
cd $TILERA_ROOT/kbuild
tile-monitor --vmlinux vmlinux --pci --mount $TILERA_ROOT/tile/ /mnt/
=== Running OpenVZ ===
In another shell session, run screen in order to access console.
screen -S console /dev/ttyS1 115200
In the screen session, switch to chroot using the script prepared before:
/mnt/chroot.sh
You should now see bash prompt (bash-4.1#).
Next, start OpenVZ:
/etc/init.d/vzeventd start
/etc/init.d/vz start
Before creating a container, we should disable DISK_QUOTA in global
OpenVZ configuration file (vzquota utility is not yet ported to Tilera):
sed -i s/^DISK_QUOTA=.*$/DISK_QUOTA=no/ /etc/vz/vz.conf
Now we can create our first container. The following command will take the
tarball /vz/template/cache/tile.tar.gz and unpack it into /vz/private/101.
It also creates /vz/root/101 and a container config file
/etc/vz/conf/101.conf.
vzctl create 101 --ostemplate tile
NOTE: creation takes quite a long time because of sheperd-fuse mount being
used. I do not know of any better way to access a host system's FS from
inside the Tilera environment.
Next we can start the freshly created container:
vzctl start 101
You have to have Tilera MDE installed in the following way:
gpg -d /path/to/tileramde-3.0.0.123096_tilepro.tar.bz2.gpg | tar xjf -
gpg -d /path/to/tileramde-3.0.0.123096_tilepro_src.tar.bz2.gpg | tar xjf -
eval $(TileraMDE-3.0.0.123096/tilepro/tile-env)
cd $TILERA_ROOT
gpg -d /path/to/tileramde-3.0.0.123096_tilepro_tile.tar.bz2.gpg | tar xjf -
cat << EOF > tile/.profile
HOME=/root
cd
EOF
In other words:
* tilepro and tilepro_src tarballs are unpacked to the same directory
* tilepro_tile tarball is unpacked under $TILERA_ROOT
* $TILERA_ROOT/tile/.profile is created as shown above
== Creating OpenVZ template ==
A template is just a tarball of a Linux distribution installed into
a chroot-like environment. Here, we can just use $TILERA_ROOT/tile contents,
omitting just some less-needed contents:
cd $TILERA_ROOT/tile
tar cvzf ../tile.tar.gz . \
--exclude ./boot \
--exclude ./lib/modules \
--exclude ./usr/share/doc \
--exclude ./usr/share/locale
== Compile/install vzctl ==
vzctl is a tool to control OpenVZ containers. To compile it:
cd $TILERA_ROOT
TAR=vzctl-tilera-20110429-3.tar.bz2
wget http://download.openvz.org/.kir/tilera/$TAR
tar xvjf $TAR
rm -rf vbuild
mkdir vbuild
cd vbuild
sh ../src/packages/vzctl/tile-extract
./tile-build --install
At this point you should have vzctl installed into $TILERA_ROOT/tile
In addition, put the OpenVZ template into an appropriate directory:
cd $TILERA_ROOT
cp tile.tar.gz tile/vz/template/cache/
== Compile/install OpenVZ kernel ==
This kernel is based on RHEL6-2.6.32 plus OpenVZ patches 042test008.1,
plus backported Tilera patches taken from Tilera MDE 3.0.0.123096
2.6.36 kernel source.
This is an initial port, with some known bugs and limitations.
FIXME: what options/features are not yet ported?
Here is how to compile OpenVZ kernel:
cd $TILERA_ROOT
TAR=kernel-rhel6-ovz-tilera-20110429.tar.bz2
wget http://download.openvz.org/.kir/tilera/$TAR
tar xjf $TAR
mkdir kbuild
cd kbuild
export ARCH=tile
sh $TILERA_ROOT/src/sys/rhel6-ovz-kernel/tile-prepare
make -j32
make modules_install INSTALL_MOD_PATH=$TILERA_ROOT/tile/
== Running OpenVZ ==
=== Preparing a chroot script ===
cat << EOF > $TILERA_ROOT/tile/chroot.sh
cd /mnt
mount --bind /sys sys
mount --bind /proc proc
mount -t tmpfs tmpfs /mnt/dev
cp -a /dev/ /mnt/
chroot . /bin/bash
# Rollback
umount /mnt/dev
umount /mnt/sys
umount /mnt/proc
EOF
=== Running kernel ===
cd $TILERA_ROOT/kbuild
tile-monitor --vmlinux vmlinux --pci --mount $TILERA_ROOT/tile/ /mnt/
=== Running OpenVZ ===
In another shell session, run screen in order to access console.
screen -S console /dev/ttyS1 115200
In the screen session, switch to chroot using the script prepared before:
/mnt/chroot.sh
You should now see bash prompt (bash-4.1#).
Next, start OpenVZ:
/etc/init.d/vzeventd start
/etc/init.d/vz start
Before creating a container, we should disable DISK_QUOTA in global
OpenVZ configuration file (vzquota utility is not yet ported to Tilera):
sed -i s/^DISK_QUOTA=.*$/DISK_QUOTA=no/ /etc/vz/vz.conf
Now we can create our first container. The following command will take the
tarball /vz/template/cache/tile.tar.gz and unpack it into /vz/private/101.
It also creates /vz/root/101 and a container config file
/etc/vz/conf/101.conf.
vzctl create 101 --ostemplate tile
NOTE: creation takes quite a long time because of sheperd-fuse mount being
used. I do not know of any better way to access a host system's FS from
inside the Tilera environment.
Next we can start the freshly created container:
vzctl start 101