Blog Code Forum

Xen

From Wiki.cyring.fr

(Difference between revisions)
Jump to: navigation, search
(First VM)
Line 1: Line 1:
-
=== Installation ===
+
== Installation ==
-
==== Initialization ====
+
=== Initialization ===
Context:
Context:
# Create a SSD partition, number 3, formatted with a 6 GB Ext4 file system.
# Create a SSD partition, number 3, formatted with a 6 GB Ext4 file system.
# Attach an existing HDD partition named /vm to store the virtual machines.
# Attach an existing HDD partition named /vm to store the virtual machines.
-
===== Partitioning =====
+
==== Partitioning ====
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
fdisk /dev/sda
fdisk /dev/sda
Line 12: Line 12:
</pre>
</pre>
-
===== Formatting =====
+
==== Formatting ====
<syntaxhighlight lang="bash" line start="2">
<syntaxhighlight lang="bash" line start="2">
mkfs.ext4 -E discard -L DEBIAN /dev/sda3
mkfs.ext4 -E discard -L DEBIAN /dev/sda3
Line 18: Line 18:
</syntaxhighlight>
</syntaxhighlight>
-
==== Requirements ====
+
=== ArchLinux as a source ===
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
pacman -S abs
pacman -S abs
Line 29: Line 29:
pacman -U debootstrap*
pacman -U debootstrap*
</syntaxhighlight>
</syntaxhighlight>
-
==== Debian ====
+
=== Debian as a host ===
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
debootstrap --arch=amd64 wheezy /mnt http://ftp.fr.debian.org/debian
debootstrap --arch=amd64 wheezy /mnt http://ftp.fr.debian.org/debian
Line 40: Line 40:
</syntaxhighlight>
</syntaxhighlight>
-
=== Configuration ===
+
== Configuration ==
-
==== Filesystems ====
+
=== Filesystems ===
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
nano /etc/fstab
nano /etc/fstab
Line 61: Line 61:
</pre>
</pre>
-
==== Network ====
+
=== Network ===
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
nano /etc/network/interfaces
nano /etc/network/interfaces
Line 95: Line 95:
</pre>
</pre>
-
==== Kernel ====
+
=== Kernel ===
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
nano /etc/modprobe.d/blacklist.conf
nano /etc/modprobe.d/blacklist.conf
Line 104: Line 104:
blacklist bluetooth
blacklist bluetooth
</pre>
</pre>
-
==== Packages ====
+
=== Packages ===
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
nano /etc/apt/sources.list
nano /etc/apt/sources.list
Line 114: Line 114:
aptitude update
aptitude update
</syntaxhighlight>
</syntaxhighlight>
-
==== Localization ====
+
=== Localization ===
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
aptitude install locales
aptitude install locales
Line 121: Line 121:
dpkg-reconfigure console-data
dpkg-reconfigure console-data
</syntaxhighlight>
</syntaxhighlight>
-
==== Defaults ====
+
=== Defaults ===
-
===== Locale =====
+
==== Locale ====
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
nano /etc/default/locale
nano /etc/default/locale
Line 129: Line 129:
LANG=en_US.UTF-8
LANG=en_US.UTF-8
</pre>
</pre>
-
===== Keyboard =====
+
==== Keyboard ====
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
nano /etc/default/keyboard
nano /etc/default/keyboard
Line 137: Line 137:
XKBLAYOUT="fr"
XKBLAYOUT="fr"
</pre>
</pre>
-
===== tmp filesystem =====
+
==== tmp filesystem ====
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
nano /etc/default/tmpfs
nano /etc/default/tmpfs
Line 144: Line 144:
RAMTMP=yes
RAMTMP=yes
</pre>
</pre>
-
===== HDD temperature =====
+
==== HDD temperature ====
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
nano /etc/default/tmpfs
nano /etc/default/tmpfs
Line 152: Line 152:
DISKS="/dev/sdb"
DISKS="/dev/sdb"
</pre>
</pre>
-
===== rcS =====
+
==== rcS ====
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
nano /etc/default/rcS
nano /etc/default/rcS
Line 160: Line 160:
</pre>
</pre>
-
=== XEN ===
+
== XEN ==
-
==== Deployment ====
+
=== Deployment ===
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
aptitude install xen-linux-system-amd64
aptitude install xen-linux-system-amd64
Line 168: Line 168:
</syntaxhighlight>
</syntaxhighlight>
-
==== Boot Manager ====
+
=== Boot Manager ===
-
===== Files =====
+
==== Files ====
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
exit
exit
Line 181: Line 181:
ln -s /boot/Debian/vmlinuz-3.2.0-3-amd64 /boot/Debian/initrd.img
ln -s /boot/Debian/vmlinuz-3.2.0-3-amd64 /boot/Debian/initrd.img
</syntaxhighlight>
</syntaxhighlight>
-
===== SysLinux =====
+
==== SysLinux ====
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
nano /boot/syslinux/syslinux.cfg
nano /boot/syslinux/syslinux.cfg
Line 200: Line 200:
shutdown -r now
shutdown -r now
</syntaxhighlight>
</syntaxhighlight>
-
==== Testing ====
+
=== Testing ===
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
xentop
xentop
Line 217: Line 217:
</small>
</small>
-
==== Virtual Machine Manager ====
+
=== Virtual Machine Manager ===
-
===== X11 =====
+
==== X11 ====
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/304.60/NVIDIA-Linux-x86_64-304.60.run
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/304.60/NVIDIA-Linux-x86_64-304.60.run
Line 248: Line 248:
ERRFILE=$HOME/tmp/.xsession-errors
ERRFILE=$HOME/tmp/.xsession-errors
</pre>
</pre>
-
===== First VM =====
+
==== First VM ====
* Prepare the VM directory
* Prepare the VM directory
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
Line 263: Line 263:
dir = /vm/XEN
dir = /vm/XEN
</pre>
</pre>
-
====== Create a Debian VM ======
+
===== Create a Debian VM =====
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
xen-create-image --hostname VPC1 --ip 192.168.1.201 --vcpus 2 --dist wheezy
xen-create-image --hostname VPC1 --ip 192.168.1.201 --vcpus 2 --dist wheezy
Line 292: Line 292:
Root Password  :  xXxXxXxX
Root Password  :  xXxXxXxX
</pre></small>
</pre></small>
-
* Start the new VM
+
===== Start the new VM =====
<syntaxhighlight lang="bash" line start="2">
<syntaxhighlight lang="bash" line start="2">
xm create /etc/xen/VPC1.cfg
xm create /etc/xen/VPC1.cfg
Line 300: Line 300:
Started domain VPC1 (id=3)
Started domain VPC1 (id=3)
</pre></small>
</pre></small>
-
* List any running VM
+
===== List any running VM =====
<syntaxhighlight lang="bash" line start="3">
<syntaxhighlight lang="bash" line start="3">
xm list
xm list
Line 309: Line 309:
VPC1                                        3  128    2    -b----      2.4
VPC1                                        3  128    2    -b----      2.4
</pre></small>
</pre></small>
-
* Take control of the VM
+
===== Take control of the VM =====
-
( ''press'' CTRL+] ''to exit'' )
+
* ''press'' CTRL+] ''to exit''
<syntaxhighlight lang="bash" line start="4">
<syntaxhighlight lang="bash" line start="4">
xm console 3
xm console 3
</syntaxhighlight>
</syntaxhighlight>
-
* Connect to the VM
+
===== Connect to the VM =====
<syntaxhighlight lang="bash" line start="5">
<syntaxhighlight lang="bash" line start="5">
ssh root@VPC1
ssh root@VPC1
</syntaxhighlight>
</syntaxhighlight>
-
* Stop the VM
+
===== Stop the VM =====
<syntaxhighlight lang="bash" line start="6">
<syntaxhighlight lang="bash" line start="6">
xm shutdown 3
xm shutdown 3
</syntaxhighlight>
</syntaxhighlight>
-
'''Lost password !'''
+
===== Lost password ! =====
* Mount the VM filesystem
* Mount the VM filesystem
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
Line 338: Line 338:
</syntaxhighlight>
</syntaxhighlight>
-
===== GUI =====
+
==== GUI ====
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
aptitude install virt-manager
aptitude install virt-manager
usermod -a -G libvirt LOGIN
usermod -a -G libvirt LOGIN
</syntaxhighlight>
</syntaxhighlight>

Revision as of 18:51, 22 October 2012

Contents

Installation

Initialization

Context:

  1. Create a SSD partition, number 3, formatted with a 6 GB Ext4 file system.
  2. Attach an existing HDD partition named /vm to store the virtual machines.

Partitioning

  1. fdisk /dev/sda
n 3 [enter] +6G

Formatting

  1. mkfs.ext4 -E discard -L DEBIAN /dev/sda3
  2. mount /dev/disk/by-label/DEBIAN /mnt

ArchLinux as a source

  1. pacman -S abs
  2. pacman -S base-devel
  3. abs
  4. mkdir /tmp/debootstrap
  5. cd /tmp/debootstrap
  6. wget https://aur.archlinux.org/packages/de/debootstrap/PKGBUILD
  7. makepkg -s
  8. pacman -U debootstrap*

Debian as a host

  1. debootstrap --arch=amd64 wheezy /mnt http://ftp.fr.debian.org/debian
  2. LANG=C chroot /mnt /bin/bash
  3. export TERM=xterm-color
  4. cd /dev
  5. MAKEDEV generic
  6. cd /
  7. mkdir /vm

Configuration

Filesystems

  1. nano /etc/fstab
# /etc/fstab
#
# <file system>           <dir>    <type> <options>                           <dump> <pass>

/dev/disk/by-label/DEBIAN /        ext4   discard,noatime,nodiratime,defaults 0      1

proc                      /proc    proc   defaults                            0      0
devpts                    /dev/pts devpts defaults                            0      0
shm                       /dev/shm tmpfs  nodev,nosuid                        0      0
tmpfs                     /tmp     tmpfs  size=2048M                          0      0
tmpfs                     /var/log tmpfs  size=64M                            0      0

/dev/disk/by-label/VM     /vm      ext4   defaults                            0      0

Network

  1. nano /etc/network/interfaces
auto lo eth0 xenbr0
iface lo inet loopback
iface eth0 inet static
    address 192.168.1.101
    network 192.168.1.0
    netmask 255.255.255.0
    gateway 192.168.1.1
iface xenbr0 inet static
    bridge_ports none
    address 192.168.1.199
    broadcast 192.168.1.255
    netmask 255.255.255.0
    gateway 192.168.1.1
  1. nano /etc/resolv.conf
nameserver 192.168.1.1
  1. echo XEN > /etc/hostname
  2. nano /etc/hosts
127.0.0.1	localhost
127.0.0.1	XEN

Kernel

  1. nano /etc/modprobe.d/blacklist.conf
blacklist pcspkr
blacklist acpi_cpufreq
blacklist bluetooth

Packages

  1. nano /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian wheezy main non-free
  1. aptitude update

Localization

  1. aptitude install locales
  2. dpkg-reconfigure locales
  3. aptitude install console-data
  4. dpkg-reconfigure console-data

Defaults

Locale

  1. nano /etc/default/locale
LANG=en_US.UTF-8

Keyboard

  1. nano /etc/default/keyboard
XKBMODEL="pc105"
XKBLAYOUT="fr"

tmp filesystem

  1. nano /etc/default/tmpfs
RAMTMP=yes

HDD temperature

  1. nano /etc/default/tmpfs
RUN_DAEMON="true"
DISKS="/dev/sdb"

rcS

  1. nano /etc/default/rcS
TMPTIME=-1

XEN

Deployment

  1. aptitude install xen-linux-system-amd64
  2. aptitude install xen-hypervisor-4.1-amd64
  3. aptitude install xen-tools

Boot Manager

Files

  1. exit
  2. ln -s /usr/lib/syslinux/mboot.c32 /boot/syslinux/mboot.c32
  3. mkdir /boot/Debian
  4. cp /mnt/boot/xen-4.1-amd64.gz /boot/Debian/
  5. cp /mnt/boot/vmlinuz-3.2.0-3-amd64 /boot/Debian/
  6. cp /mnt/boot/initrd.img-3.2.0-3-amd64 /boot/Debian/
  7. ln -s /boot/Debian/xen-4.1-amd64.gz /boot/Debian/xen.gz
  8. ln -s /boot/Debian/vmlinuz-3.2.0-3-amd64 /boot/Debian/vmlinuz
  9. ln -s /boot/Debian/vmlinuz-3.2.0-3-amd64 /boot/Debian/initrd.img

SysLinux

  1. nano /boot/syslinux/syslinux.cfg
LABEL debian
	MENU LABEL De^bian Linux
	LINUX ../Debian/vmlinuz
	APPEND root=/dev/sda3 ro quiet elevator=noop nmi_watchdog=0 vga=0
	INITRD ../Debian/initrd.img

LABEL xen
	MENU LABEL Debian ^Xen
	KERNEL mboot.c32
	APPEND ../Debian/xen.gz --- ../Debian/vmlinuz root=/dev/sda3 ro quiet elevator=noop --- ../Debian/initrd.img
  1. shutdown -r now

Testing

  1. xentop
xentop - 14:55:16   Xen 4.1.3
1 domains: 1 running, 0 blocked, 0 paused, 0 crashed, 0 dying, 0 shutdown
Mem: 6282360k total, 5093488k used, 1188872k free    CPUs: 8 @ 3210MHz
      NAME  STATE   CPU(sec) CPU(%)     MEM(k) MEM(%)  MAXMEM(k) MAXMEM(%) VCPUS NETS NETTX(k) NETRX(k) VBDS   VBD_OO   VBD_RD   VBD_WR  VBD_RSECT  VBD_WSECT SSID
  Domain-0 -----r        491    1.7    5020324   79.9   no limit       n/a     8    0        0        0    0        0        0        0          0          0 0



  Delay  Networks  vBds  Tmem  VCPUs  Repeat header  Sort order  Quit  

Virtual Machine Manager

X11

  1. wget http://us.download.nvidia.com/XFree86/Linux-x86_64/304.60/NVIDIA-Linux-x86_64-304.60.run
  2. chmod +x NVIDIA-Linux-x86_64-304.60.run
  3. ./NVIDIA-Linux-x86_64-304.60.run
  4. nvidia-xconfig
Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Dell"
    ModelName      "U2711"
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection
  1. aptitude install xfce4
  2. aptitude install lightdm lightdm-gtk-greeter
  3. echo "/usr/sbin/lightdm" > /etc/X11/default-display-manager
  4. nano /etc/X11/Xsession
ERRFILE=$HOME/tmp/.xsession-errors

First VM

  • Prepare the VM directory
  1. ifup xenbr0
  2. brctl show
  3. cd /vm
  4. mkdir XEN
  5. chgrp users XEN
  6. chmod g+w XEN
  7. cd
  8. nano /etc/xen-tools/xen-tools.conf
dir = /vm/XEN
Create a Debian VM
  1. xen-create-image --hostname VPC1 --ip 192.168.1.201 --vcpus 2 --dist wheezy
...
General Information
--------------------
Hostname       :  VPC1
Distribution   :  wheezy
Mirror         :  http://ftp.fr.debian.org/debian
Partitions     :  swap            128Mb (swap)
                  /               4Gb   (ext3)
Image type     :  sparse
Memory size    :  128Mb
Kernel path    :  /boot/vmlinuz-3.2.0-3-amd64
Initrd path    :  /boot/initrd.img-3.2.0-3-amd64
...
Logfile produced at:
	 /var/log/xen-tools/VPC1.log

Installation Summary
---------------------
Hostname        :  VPC1
Distribution    :  wheezy
IP-Address(es)  :  192.168.1.201 
RSA Fingerprint :  07:04:0e:08:0c:01:08:0b:0c:03:09:07:00:08:01:02
Root Password   :  xXxXxXxX
Start the new VM
  1. xm create /etc/xen/VPC1.cfg
Using config file "/etc/xen/VPC1.cfg".
Started domain VPC1 (id=3)
List any running VM
  1. xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0  4902     8     r-----    101.5
VPC1                                         3   128     2     -b----      2.4
Take control of the VM
  • press CTRL+] to exit
  1. xm console 3
Connect to the VM
  1. ssh root@VPC1
Stop the VM
  1. xm shutdown 3
Lost password !
  • Mount the VM filesystem
  1. mount /vm/XEN/domains/VPC1/disk.img /mnt
  2. chroot /mnt
  • Inside the VM
  1. passwd
  2. exit
  • Back to back
  1. umount /vm/XEN/domains/VPC1/disk.img

GUI

  1. aptitude install virt-manager
  2. usermod -a -G libvirt LOGIN
Personal tools