Xen
From Wiki.cyring.fr
(Difference between revisions)
(→First VM) |
|||
Line 1: | Line 1: | ||
- | + | == Installation == | |
- | + | === 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 ==== | |
<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 ==== | |
<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> | ||
- | === | + | === 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 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 == | |
- | + | === 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 === | |
<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 === | |
<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 === | |
<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 === | |
<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 === | |
- | + | ==== 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 ==== | |
<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 ==== | |
<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 ==== | |
<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 ==== | |
<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 == | |
- | + | === 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 === | |
- | + | ==== 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 ==== | |
<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 === | |
<syntaxhighlight lang="bash" line start="1"> | <syntaxhighlight lang="bash" line start="1"> | ||
xentop | xentop | ||
Line 217: | Line 217: | ||
</small> | </small> | ||
- | + | === Virtual Machine Manager === | |
- | + | ==== 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 ==== | |
* 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 ===== | |
<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 ===== | |
<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 ===== | |
<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 ===== | |
- | + | * ''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 ===== | |
<syntaxhighlight lang="bash" line start="5"> | <syntaxhighlight lang="bash" line start="5"> | ||
ssh root@VPC1 | ssh root@VPC1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
- | + | ===== 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 ! ===== | |
* 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 ==== | |
<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:
- 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.
Partitioning
fdisk /dev/sda
n 3 [enter] +6G
Formatting
mkfs.ext4 -E discard -L DEBIAN /dev/sda3
mount /dev/disk/by-label/DEBIAN /mnt
ArchLinux as a source
pacman -S abs
pacman -S base-devel
abs
mkdir /tmp/debootstrap
cd /tmp/debootstrap
wget https://aur.archlinux.org/packages/de/debootstrap/PKGBUILD
makepkg -s
pacman -U debootstrap*
Debian as a host
debootstrap --arch=amd64 wheezy /mnt http://ftp.fr.debian.org/debian
LANG=C chroot /mnt /bin/bash
export TERM=xterm-color
cd /dev
MAKEDEV generic
cd /
mkdir /vm
Configuration
Filesystems
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
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
nano /etc/resolv.conf
nameserver 192.168.1.1
echo XEN > /etc/hostname
nano /etc/hosts
127.0.0.1 localhost 127.0.0.1 XEN
Kernel
nano /etc/modprobe.d/blacklist.conf
blacklist pcspkr blacklist acpi_cpufreq blacklist bluetooth
Packages
nano /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian wheezy main non-free
aptitude update
Localization
aptitude install locales
dpkg-reconfigure locales
aptitude install console-data
dpkg-reconfigure console-data
Defaults
Locale
nano /etc/default/locale
LANG=en_US.UTF-8
Keyboard
nano /etc/default/keyboard
XKBMODEL="pc105" XKBLAYOUT="fr"
tmp filesystem
nano /etc/default/tmpfs
RAMTMP=yes
HDD temperature
nano /etc/default/tmpfs
RUN_DAEMON="true" DISKS="/dev/sdb"
rcS
nano /etc/default/rcS
TMPTIME=-1
XEN
Deployment
aptitude install xen-linux-system-amd64
aptitude install xen-hypervisor-4.1-amd64
aptitude install xen-tools
Boot Manager
Files
exit
ln -s /usr/lib/syslinux/mboot.c32 /boot/syslinux/mboot.c32
mkdir /boot/Debian
cp /mnt/boot/xen-4.1-amd64.gz /boot/Debian/
cp /mnt/boot/vmlinuz-3.2.0-3-amd64 /boot/Debian/
cp /mnt/boot/initrd.img-3.2.0-3-amd64 /boot/Debian/
ln -s /boot/Debian/xen-4.1-amd64.gz /boot/Debian/xen.gz
ln -s /boot/Debian/vmlinuz-3.2.0-3-amd64 /boot/Debian/vmlinuz
ln -s /boot/Debian/vmlinuz-3.2.0-3-amd64 /boot/Debian/initrd.img
SysLinux
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
shutdown -r now
Testing
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
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/304.60/NVIDIA-Linux-x86_64-304.60.run
chmod +x NVIDIA-Linux-x86_64-304.60.run
./NVIDIA-Linux-x86_64-304.60.run
nvidia-xconfig
Section "Monitor" Identifier "Monitor0" VendorName "Dell" ModelName "U2711" Option "DPMS" EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" EndSection
aptitude install xfce4
aptitude install lightdm lightdm-gtk-greeter
echo "/usr/sbin/lightdm" > /etc/X11/default-display-manager
nano /etc/X11/Xsession
ERRFILE=$HOME/tmp/.xsession-errors
First VM
- Prepare the VM directory
ifup xenbr0
brctl show
cd /vm
mkdir XEN
chgrp users XEN
chmod g+w XEN
cd
nano /etc/xen-tools/xen-tools.conf
dir = /vm/XEN
Create a Debian VM
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
xm create /etc/xen/VPC1.cfg
Using config file "/etc/xen/VPC1.cfg". Started domain VPC1 (id=3)
List any running VM
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
xm console 3
Connect to the VM
ssh root@VPC1
Stop the VM
xm shutdown 3
Lost password !
- Mount the VM filesystem
mount /vm/XEN/domains/VPC1/disk.img /mnt
chroot /mnt
- Inside the VM
passwd
exit
- Back to back
umount /vm/XEN/domains/VPC1/disk.img
GUI
aptitude install virt-manager
usermod -a -G libvirt LOGIN