Virtualization in Grid'5000
Jump to navigation
Jump to search
See also: KVM | KVM_on_production_environment
Purpose
This page presents ways to use KVM on production image.
Usage
First, submit the job using habitual oarsub command
jdoe@fnancy:~$ oarsub -I
Copy the kvm disk image to /tmp on the node
jdoe@griffon-37:~$ cp /grid5000/images/KVM/squeeze-x64-base.qcow2 /tmp/
Create Tun/Tap interface for your guest OS
jdoe@griffon-37:~$ sudo create_tap
- Tun/Tap interfaces are listed by issuing the command
/sbin/ifconfig.
jdoe@griffon-37:~$ /sbin/ifconfig
[...]
tap0 Link encap:Ethernet HWaddr 00:16:3e:db:c6:41
inet6 addr: fe80::58ff:a4ff:fe97:c6a8/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:29435 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
| Note | |
|---|---|
Create one Tun/Tap interface per guest OS. | |
Generate a random mac address for the Tun/Tap interface
- Use the following script
jdoe@griffon-37:~$ random_mac
| Note | |
|---|---|
The first three octets are important (identification for the virtualized network). Don't change it. | |
Now, you can run the guest OS using kvm
jdoe@griffon-37:~$ screen kvm -m 512 -hda /tmp/squeeze-x64-base.qcow2 -net nic,macaddr=$MACADDR-net tap,ifname=tap0,script=no -nographic
| Note | |
|---|---|
Replace | |
Or, you can start the guest OS using libvirt
- Edit the domain file
eg : domain.xml
<domain type='kvm'>
<name>squeeze-vm1</name>
<memory>524288</memory>
<vcpu>1</vcpu>
<os>
<type arch="x86_64">hvm</type>
</os>
<clock sync="localtime"/>
<devices>
<disk type='file' device='disk'>
<target dev='hda'/>
</disk>
<interface type='ethernet'>
<target dev='tap0'/>
<script path='no'/>
<mac address='00:16:3e:82:a6:ea'/>
</interface>
<graphics type='vnc' port='5900'/>
</devices>
</domain>
- Now, the guest OS can be started.
jdoe@griffon-37:~$ virsh create domain.xml
- You can use
virshto manage your guest OS.
jdoe@griffon-37:~$ virsh list
Misc notes
- For the deployment of an important number of guest OS, you can use the subnet reservation. See also the virtual network interlink.
- Manage the console for all your guest OS with Screen
- Use
tunctlif you need to delete a Tun/Tap device.
jdoe@griffon-37:~$ /usr/sbin/tunctl -d tap0