Projet

Général

Profil

Libvirt (ancien) » Historique » Version 27

Mehdi Abaakouk, 30/07/2013 15:38

1 1 Mehdi Abaakouk
h1. Libvirt
2 1 Mehdi Abaakouk
3 12 Mehdi Abaakouk
h2. Resources/Liens
4 12 Mehdi Abaakouk
5 18 Laurent GUERBY
* Virtualisation du routage IPv4 pour les VM http://lists.tetaneutral.net/pipermail/technique/2013-April/000810.html
6 18 Laurent GUERBY
7 12 Mehdi Abaakouk
* libvirt
8 12 Mehdi Abaakouk
9 12 Mehdi Abaakouk
http://builder.virt-tools.org/artifacts/libvirt-virshcmdref/html/index.html
10 12 Mehdi Abaakouk
http://docs.fedoraproject.org/en-US/Fedora/13/html/Virtualization_Guide/chap-Virtualization-Managing_guests_with_virsh.html
11 12 Mehdi Abaakouk
12 12 Mehdi Abaakouk
* virt-install et preseed sans server web et pxe:
13 12 Mehdi Abaakouk
14 12 Mehdi Abaakouk
http://honk.sigxcpu.org/con/Preseeding_Debian_virtual_machines_with_virt_install.html
15 12 Mehdi Abaakouk
16 2 Mehdi Abaakouk
h2. Installation VM sans bridge avec routage static (en /32 pour l'ipv4)
17 1 Mehdi Abaakouk
18 11 Mehdi Abaakouk
Note: tous les fichiers utilisés et créés ne sont peut être pas à jour, voir ici pour les dernières version: http://git.tetaneutral.net/libvirt.git/
19 1 Mehdi Abaakouk
20 11 Mehdi Abaakouk
Le répertoire /etc/libvirt/ttnn cité plustard est géré dans ce git.
21 11 Mehdi Abaakouk
22 1 Mehdi Abaakouk
h3. Configuration de la libvirt
23 1 Mehdi Abaakouk
24 1 Mehdi Abaakouk
On créé un réseau libvirt qui fait rien (déjà fait sur n7):
25 1 Mehdi Abaakouk
26 1 Mehdi Abaakouk
<pre>
27 10 Mehdi Abaakouk
cat > libvirt_dump_network.xml <<EOF
28 1 Mehdi Abaakouk
<network ipv6='yes'>
29 1 Mehdi Abaakouk
<name>dump-net</name>
30 6 Mehdi Abaakouk
<bridge name='dumpbr0' />
31 1 Mehdi Abaakouk
</network>
32 1 Mehdi Abaakouk
EOF
33 1 Mehdi Abaakouk
34 10 Mehdi Abaakouk
virsh net-define libvirt_dump_network.xml
35 1 Mehdi Abaakouk
virsh net-autostart dump-net
36 1 Mehdi Abaakouk
virsh net-start dump-net
37 1 Mehdi Abaakouk
</pre>
38 1 Mehdi Abaakouk
39 4 Mehdi Abaakouk
On créé un hook libvirt (déjà fait sur n7):
40 1 Mehdi Abaakouk
<pre>
41 9 Mehdi Abaakouk
mkdir -p /etc/libvirt/ttnn/hooks
42 9 Mehdi Abaakouk
ln -s /etc/libvirt/ttnn/hooks /etc/libvirt/hooks
43 1 Mehdi Abaakouk
vi /etc/libvirt/hooks/qemu
44 1 Mehdi Abaakouk
----8<--------------->8----
45 1 Mehdi Abaakouk
#!/bin/bash
46 1 Mehdi Abaakouk
47 1 Mehdi Abaakouk
name="$1"
48 1 Mehdi Abaakouk
operation="$2"
49 1 Mehdi Abaakouk
suboperation="$3"
50 1 Mehdi Abaakouk
51 7 Mehdi Abaakouk
[ "$operation" != "start" ] && exit 0
52 1 Mehdi Abaakouk
[ "$suboperation" != "begin" ] && exit 0
53 1 Mehdi Abaakouk
54 1 Mehdi Abaakouk
# get interface from the libvirt xml
55 1 Mehdi Abaakouk
interface=$(cat - | sed -ne "/vnet/s/.*dev='\([^']*\)'.*/\1/gp")
56 1 Mehdi Abaakouk
57 5 Mehdi Abaakouk
[ -f /etc/libvirt/ttnn/${name}.conf ] && source /etc/libvirt/ttnn/${name}.conf
58 5 Mehdi Abaakouk
59 5 Mehdi Abaakouk
[ "$ip" -o "$ip6" ] && brctl delif dumpbr0 $interface
60 1 Mehdi Abaakouk
[ "$ip" ] && ip route add $ip/32 dev $interface
61 1 Mehdi Abaakouk
[ "$ip6" ] && ip route add $ip6/56 dev $interface
62 1 Mehdi Abaakouk
[ "$ip6" ] && ip -6 addr add fe80::31/64 dev $interface
63 1 Mehdi Abaakouk
exit 0
64 1 Mehdi Abaakouk
----8<--------------->8----
65 1 Mehdi Abaakouk
</pre>
66 1 Mehdi Abaakouk
67 1 Mehdi Abaakouk
68 1 Mehdi Abaakouk
h3. Preparation de l'installer
69 1 Mehdi Abaakouk
70 4 Mehdi Abaakouk
Pour une squeeze on met à jour virtinst  (déjà fait sur n7):
71 1 Mehdi Abaakouk
72 1 Mehdi Abaakouk
<pre>
73 9 Mehdi Abaakouk
wget http://ftp.us.debian.org/debian/pool/main/v/virtinst/virtinst_0.600.3-3_all.deb
74 9 Mehdi Abaakouk
dpkg -i virtinst_0.600.3-3_all.deb
75 1 Mehdi Abaakouk
</pre>
76 1 Mehdi Abaakouk
77 4 Mehdi Abaakouk
On install le preseed.cfg attaché à la page dans /etc/libvirt/preseed.cfg  (déjà fait sur n7)
78 1 Mehdi Abaakouk
79 1 Mehdi Abaakouk
h4. Installation d'une VM
80 1 Mehdi Abaakouk
81 4 Mehdi Abaakouk
Creation du disk (déjà fait sur n7):
82 1 Mehdi Abaakouk
<pre>
83 1 Mehdi Abaakouk
lvcreate -n picttn -L 50G /dev/raid5
84 1 Mehdi Abaakouk
</pre>
85 1 Mehdi Abaakouk
86 5 Mehdi Abaakouk
Configuration du routage static:
87 5 Mehdi Abaakouk
88 5 Mehdi Abaakouk
<pre>
89 5 Mehdi Abaakouk
vi /etc/libvirt/ttnn/picttn.conf 
90 16 Mehdi Abaakouk
# le /32 ipv4
91 1 Mehdi Abaakouk
ip="91.224.148.252"
92 16 Mehdi Abaakouk
# le /56 ipv6
93 16 Mehdi Abaakouk
ip6="2a01:6600:8080:FC00::"
94 5 Mehdi Abaakouk
</pre>
95 5 Mehdi Abaakouk
96 8 Mehdi Abaakouk
Lancement de l'installation via le réseau natter de libvirt
97 6 Mehdi Abaakouk
<pre>
98 1 Mehdi Abaakouk
virt-install -n picttn -r 2048 --os-type=linux \
99 8 Mehdi Abaakouk
    --autostart \
100 1 Mehdi Abaakouk
    --disk /dev/raid5/picttn,bus=virtio,cache=none,io=native \
101 8 Mehdi Abaakouk
    --network network=default,model=virtio \
102 1 Mehdi Abaakouk
    --nographics \
103 13 Mehdi Abaakouk
    --noreboot \
104 8 Mehdi Abaakouk
    --wait -1 \
105 1 Mehdi Abaakouk
    --location http://ftp.debian.org/debian/dists/wheezy/main/installer-amd64/ \
106 6 Mehdi Abaakouk
    --serial pty \
107 1 Mehdi Abaakouk
    --initrd-inject /etc/libvirt/ttnn/preseed.cfg \
108 6 Mehdi Abaakouk
    --initrd-inject /etc/libvirt/ttnn/picttn.conf \
109 1 Mehdi Abaakouk
    --initrd-inject /etc/libvirt/ttnn/postinstall.sh \
110 8 Mehdi Abaakouk
    --extra-args "console=ttyS0,9600n8 DEBIAN_FRONTEND=text auto priority=critical hostname=picttn domain=le-pic.org"
111 7 Mehdi Abaakouk
</pre>
112 1 Mehdi Abaakouk
113 8 Mehdi Abaakouk
Une fois l'installation terminée, on change la conf réseau:
114 8 Mehdi Abaakouk
115 1 Mehdi Abaakouk
<pre>
116 14 Mehdi Abaakouk
EDITOR="sed -ie s/default/dump-net/g" virsh edit picttn
117 8 Mehdi Abaakouk
</pre>
118 8 Mehdi Abaakouk
119 8 Mehdi Abaakouk
On peux démarrer la VM
120 8 Mehdi Abaakouk
<pre>
121 8 Mehdi Abaakouk
virsh start picttn
122 3 Mehdi Abaakouk
virsh console picttn
123 1 Mehdi Abaakouk
</pre>
124 1 Mehdi Abaakouk
125 8 Mehdi Abaakouk
Ensuite on peux se connecte à la VM
126 9 Mehdi Abaakouk
<pre>
127 9 Mehdi Abaakouk
ssh root@2a01:6600:8080:FC00::1
128 9 Mehdi Abaakouk
</pre>
129 17 Laurent GUERBY
130 17 Laurent GUERBY
Le /etc/network/interfaces IPv4 après installation
131 17 Laurent GUERBY
132 17 Laurent GUERBY
<pre>
133 17 Laurent GUERBY
iface eth0 inet static
134 17 Laurent GUERBY
    address 91.224.148.xxx
135 17 Laurent GUERBY
    netmask 32
136 17 Laurent GUERBY
    up ip route add 91.224.148.0/32 dev eth0
137 17 Laurent GUERBY
    up ip route add default via 91.224.148.0
138 21 Laurent GUERBY
139 21 Laurent GUERBY
iface eth0 inet6 static
140 21 Laurent GUERBY
    address 2a01:6600:8080:xx00::1
141 21 Laurent GUERBY
    netmask 56
142 21 Laurent GUERBY
    gateway fe80::31
143 21 Laurent GUERBY
    pre-up /sbin/sysctl -w net.ipv6.conf.eth0.accept_ra=0
144 21 Laurent GUERBY
    pre-up /sbin/sysctl -w net.ipv6.conf.eth0.autoconf=0
145 21 Laurent GUERBY
146 17 Laurent GUERBY
</pre>
147 19 Laurent GUERBY
148 19 Laurent GUERBY
h2. Misc
149 19 Laurent GUERBY
150 19 Laurent GUERBY
<H4Mm3r> si tu lance la création de la VM sans avoir créé le disk --disk /vmroot/testnat.qcow2,format=qcow2,size=12,bus=virtio,cache=writeback
151 19 Laurent GUERBY
<H4Mm3r> le disk se créé mais dans le XML le format est à RAW
152 19 Laurent GUERBY
<H4Mm3r> si tu le créé à l'avance avec qemu-img create -f qcow2
153 19 Laurent GUERBY
<H4Mm3r> et que tu lance ta commande --disk /vmroot/testnat.qcow2,format=qcow2
154 19 Laurent GUERBY
<guerby> ok donc c'etait bien ça :)
155 19 Laurent GUERBY
<guerby> bbl (miam)
156 19 Laurent GUERBY
<H4Mm3r> dans le fichier XML le format est à RAW
157 19 Laurent GUERBY
<H4Mm3r> il faut en effet dumper un XML, modifier la valeur à QCOW2
158 19 Laurent GUERBY
<H4Mm3r> et créer la VM depuis ce XML
159 19 Laurent GUERBY
<H4Mm3r> virsh create file.xml
160 19 Laurent GUERBY
<H4Mm3r> pourqu'enfin il comprenne que c'est du QCOW...
161 19 Laurent GUERBY
<H4Mm3r> et là mon disk fait bien 265ko, mais est détecté comme 12G :D
162 20 Joris Michaux
163 20 Joris Michaux
h2. HOWTO by H4Mm3r (under contruction)
164 20 Joris Michaux
165 20 Joris Michaux
h3. Usefull links
166 20 Joris Michaux
167 20 Joris Michaux
#### Misc
168 20 Joris Michaux
169 20 Joris Michaux
#OS Type
170 20 Joris Michaux
http://rhevdup.blogspot.fr/2012/05/list-available-os-types-for-kvm-on-rhel.html
171 20 Joris Michaux
172 20 Joris Michaux
#Libvirt TTN
173 20 Joris Michaux
http://chiliproject.tetaneutral.net/projects/tetaneutral/wiki/Libvirt
174 20 Joris Michaux
175 20 Joris Michaux
#### KVM management
176 20 Joris Michaux
177 20 Joris Michaux
#Install QEMU KVM + LIBVIRT
178 20 Joris Michaux
http://www.howtoforge.com/virtualization-with-kvm-on-a-debian-squeeze-server
179 20 Joris Michaux
180 20 Joris Michaux
#Edit XML file
181 20 Joris Michaux
http://vladnevzorov.com/2011/02/11/how-to-change-configuration-of-kvm-virtual-machine/
182 20 Joris Michaux
183 20 Joris Michaux
#Clone a KVM
184 20 Joris Michaux
https://help.ubuntu.com/community/KVM/CreateGuests#Cloning_a_virtual_machine
185 20 Joris Michaux
http://linux.die.net/man/1/virt-clone
186 20 Joris Michaux
187 20 Joris Michaux
#### Network
188 20 Joris Michaux
189 20 Joris Michaux
#NAT
190 20 Joris Michaux
http://www.linuxquestions.org/questions/linux-networking-3/kvm-qemu-and-nat-on-the-host-machine-mini-tutorial-697980/
191 20 Joris Michaux
http://wiki.libvirt.org/page/Networking
192 20 Joris Michaux
http://libvirt.org/formatnetwork.html#examplesNAT
193 20 Joris Michaux
https://help.ubuntu.com/community/KVM/Networking
194 20 Joris Michaux
195 20 Joris Michaux
#Bridge
196 20 Joris Michaux
http://toast.djw.org.uk/qemu.html
197 20 Joris Michaux
http://www.mediaonfire.com/en/tech_tips/QEMUNetworking.html (bridge, nat, arp)
198 20 Joris Michaux
199 20 Joris Michaux
#### Improve performance
200 20 Joris Michaux
http://blog.bodhizazen.net/linux/improve-kvm-performance/
201 20 Joris Michaux
http://www.linux-kvm.org/page/Tuning_KVM
202 20 Joris Michaux
http://www.ezunix.org/index.php?title=Boost_performance_of_KVM_guests
203 20 Joris Michaux
204 20 Joris Michaux
#### Storage
205 20 Joris Michaux
http://doc.opensuse.org/products/draft/SLES/SLES-kvm_sd_draft/cha.libvirt.storage.html
206 20 Joris Michaux
207 20 Joris Michaux
h3. HOWTO
208 20 Joris Michaux
209 20 Joris Michaux
<pre>
210 20 Joris Michaux
[H] = Host
211 20 Joris Michaux
[G] = Guest
212 20 Joris Michaux
[XML] = XML content
213 20 Joris Michaux
"command"
214 20 Joris Michaux
</pre>
215 20 Joris Michaux
216 20 Joris Michaux
#### Diskfile Storage
217 20 Joris Michaux
218 20 Joris Michaux
#Create qcow2 disk
219 20 Joris Michaux
<pre>
220 20 Joris Michaux
[H] "qemu-img create -f qcow2 /path/to/disk.qcow2 $SIZE" (ex: 20G)
221 20 Joris Michaux
[H] "chmod +x /path/to/disk.qcow2"
222 20 Joris Michaux
</pre>
223 20 Joris Michaux
224 20 Joris Michaux
#Convert raw to qcow2
225 20 Joris Michaux
<pre>
226 20 Joris Michaux
[H] "qemu-img convert -O qcow2 disk.img disk.qcow2"
227 20 Joris Michaux
</pre>
228 20 Joris Michaux
229 20 Joris Michaux
#Disable cache to improve performance 
230 20 Joris Michaux
<pre>
231 20 Joris Michaux
[XML] <driver name='qemu' type='qcow2' cache='none'/>
232 20 Joris Michaux
</pre>
233 20 Joris Michaux
234 20 Joris Michaux
#### LVM Storage
235 20 Joris Michaux
236 20 Joris Michaux
<pre>
237 20 Joris Michaux
[H] Create "/etc/libvirt/storage/vmdata.xml" file :
238 20 Joris Michaux
      <pool type="logical">
239 20 Joris Michaux
        <name>my_pool</name>
240 20 Joris Michaux
        <source>
241 20 Joris Michaux
          <device path="/path/to/dev"/>
242 20 Joris Michaux
        </source>
243 20 Joris Michaux
        <target>
244 20 Joris Michaux
          <path>/target/path/path> (LV will be created there)
245 20 Joris Michaux
        </target>
246 20 Joris Michaux
      </pool>
247 20 Joris Michaux
[H] "virsh pool-define /etc/libvirt/storage/my_pool.xml"
248 20 Joris Michaux
[H] "virsh pool-start my_pool"
249 20 Joris Michaux
[H] "virsh pool-autostart my_pool"
250 20 Joris Michaux
[H] "virsh pool-info my_pool"
251 20 Joris Michaux
[H] "virsh vol-create-as my_pool my_logical_volume 12G"
252 20 Joris Michaux
[H] You must create a LV to be able to give it to a KVM "virsh vol-create-as my_pool my_vol 12G --format=lvm2"
253 20 Joris Michaux
</pre>
254 20 Joris Michaux
255 20 Joris Michaux
h3. Create KVM
256 20 Joris Michaux
257 20 Joris Michaux
#Bridged with TAP + LVM
258 20 Joris Michaux
<pre>
259 20 Joris Michaux
[H] "virt-install -d --hvm --vnc --name=my_kvm --vcpus=4 --cpuset=0-4 --ram 2048 --disk vol=my_pool/my_vol,bus=virtio,cache=none --network bridge=my_bridge,model=virtio -c /path/to/distrib.iso --keymap=fr --os-type=linux --noautoconsole"
260 20 Joris Michaux
</pre>
261 20 Joris Michaux
262 20 Joris Michaux
#TAP (if you want to rename the default "vnetX" interface by "tapX"
263 20 Joris Michaux
<pre>
264 20 Joris Michaux
[H] "virsh dumpxml my_guest > my_guest.xml
265 20 Joris Michaux
[H] "virsh undefine my_guest"
266 20 Joris Michaux
[H] Edit the my_guest.xml file to rename VNETX by TAPX
267 20 Joris Michaux
[H] "virsh define my_guest.xml"
268 20 Joris Michaux
[H] "virsh start my_guest"
269 20 Joris Michaux
</pre>
270 20 Joris Michaux
271 20 Joris Michaux
#NATed + LVM
272 20 Joris Michaux
<pre>
273 20 Joris Michaux
[H] "virt-install -d --hvm --vnc --name=my_kvm --vcpus=4 --cpuset=0-4 --ram 2048 --disk vol=my_pool/my_vol,bus=virtio,cache=none --network network=my_network,model=virtio -c /path/to/distrib.iso --keymap=fr --os-type=linux --noautoconsole"
274 20 Joris Michaux
</pre>
275 20 Joris Michaux
276 20 Joris Michaux
#Clone VM
277 20 Joris Michaux
<pre>
278 20 Joris Michaux
[H] Create the LVM dest
279 20 Joris Michaux
[H] Pause the KVM "virsh suspend my_kvm"
280 20 Joris Michaux
[H] virt-clone -o my_orig_kvm -n my_cloned_kvm -f=/path/to/lvm/dev
281 20 Joris Michaux
[G] Go and change the hostname and resolv.conf
282 20 Joris Michaux
</pre>
283 20 Joris Michaux
284 20 Joris Michaux
h3. Command explanation
285 20 Joris Michaux
286 20 Joris Michaux
#Bridged with tap
287 20 Joris Michaux
<pre>
288 20 Joris Michaux
virt-install -d --hvm --vnc --name=testlvm \
289 20 Joris Michaux
    --vcpus=4 --cpuset=0-4 \
290 20 Joris Michaux
    --ram 2048 \ 
291 20 Joris Michaux
    --disk vol=vmdata/testlvm,bus=virtio,cache=none \
292 20 Joris Michaux
    --network bridge=br0,model=virtio \
293 20 Joris Michaux
    -c /data/isos/debian-testing-amd64-netinst.iso \
294 20 Joris Michaux
    --keymap=fr --os-type=linux --os-variant=debiansqueeze --noautoconsole
295 20 Joris Michaux
</pre>
296 20 Joris Michaux
297 20 Joris Michaux
#NATed
298 20 Joris Michaux
<pre>
299 20 Joris Michaux
virt-install -d --hvm --vnc --name=testlvm \
300 20 Joris Michaux
    --vcpus=4 --cpuset=0-4 \
301 20 Joris Michaux
    --ram 2048 \ 
302 20 Joris Michaux
    --disk vol=vmdata/testlvm,bus=virtio,cache=none \
303 20 Joris Michaux
    --network network=frp_network,model=virtio \
304 20 Joris Michaux
    -c /data/isos/debian-testing-amd64-netinst.iso \
305 20 Joris Michaux
    --keymap=fr --os-type=linux --os-variant=debiansqueeze --noautoconsole
306 20 Joris Michaux
</pre>
307 20 Joris Michaux
308 20 Joris Michaux
[OLD QCOW2]
309 20 Joris Michaux
<pre>
310 20 Joris Michaux
[H] "virt-install --connect qemu:///system -n puppetnode1 -r 1024 --vcpus=4 --cpuset=4-7 --disk path=/vmroot/puppetnode1.qcow2 -c /data/isos/debian-6.0.6-amd64-netinst.iso --vnc --keymap=fr --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network network=default --hvm"
311 20 Joris Michaux
[H] "virt-install --connect qemu:///system -n testnat -r 1024 --vcpus=2 --cpuset=2-3 --disk /vmroot/testnat.qcow2,format=qcow2,size=12,bus=virtio,cache=writeback -c /data/isos/debian-6.0.6-amd64-netinst.iso --vnc --keymap=fr --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network bridge=br0 --hvm"
312 20 Joris Michaux
</pre>
313 20 Joris Michaux
314 20 Joris Michaux
#Start a KVM
315 20 Joris Michaux
<pre>
316 20 Joris Michaux
[H] "virsh start my_kvm"
317 20 Joris Michaux
</pre>
318 20 Joris Michaux
319 20 Joris Michaux
#Stop node
320 20 Joris Michaux
<pre>
321 20 Joris Michaux
[H] Soft : "virsh shutdown my_kvm"
322 20 Joris Michaux
[H] Hard : "virsh destroy my_kvm"
323 20 Joris Michaux
</pre>
324 20 Joris Michaux
325 20 Joris Michaux
#Suppr node del
326 20 Joris Michaux
<pre>
327 20 Joris Michaux
[H] "virsh undefine node" (+ remove files)
328 20 Joris Michaux
</pre>
329 20 Joris Michaux
330 20 Joris Michaux
#Rename node
331 20 Joris Michaux
<pre>
332 20 Joris Michaux
[H] "virsh dumpxml my_kvm > foo.xml"
333 20 Joris Michaux
[H] <edit foo.xml, change the name, move storage>
334 20 Joris Michaux
[H] "virsh undefine my_kvm"
335 20 Joris Michaux
[H] "virsh define foo.xml"
336 20 Joris Michaux
</pre>
337 20 Joris Michaux
338 20 Joris Michaux
# Connect to virsh qemu
339 20 Joris Michaux
<pre>
340 20 Joris Michaux
[H] "virsh --connect qemu:///system"
341 20 Joris Michaux
[H] "virsh # help"
342 20 Joris Michaux
</pre>
343 20 Joris Michaux
344 20 Joris Michaux
#Start a network
345 20 Joris Michaux
<pre>
346 20 Joris Michaux
[H] "virsh net-start my_network"
347 20 Joris Michaux
</pre>
348 20 Joris Michaux
349 20 Joris Michaux
#Configure VNC
350 20 Joris Michaux
351 20 Joris Michaux
<pre>
352 20 Joris Michaux
[H] Edit /etc/libvirt/qemu.conf and set vnc_listen = "your.ip.addd"
353 20 Joris Michaux
[H] You need to restart service "/etc/init.d/libvirtd restart"
354 20 Joris Michaux
[H] "ps aux | grep -i kvm" (find vnc display for your KVM)
355 20 Joris Michaux
</pre>
356 20 Joris Michaux
357 20 Joris Michaux
#Connect to a KVM through VNC
358 20 Joris Michaux
359 20 Joris Michaux
<pre>
360 20 Joris Michaux
tightvncviewer -compresslevel 7 -encodings "copyrect tight hextile zlib corre rre raw" x.xxx.xxx.xxx:x
361 20 Joris Michaux
</pre>
362 20 Joris Michaux
363 20 Joris Michaux
#Keyboard FR for KVM
364 20 Joris Michaux
<pre>
365 20 Joris Michaux
[H] "virsh edit my_kvm"
366 20 Joris Michaux
[XML] <graphics type='vnc' port='-1' autoport='yes' keymap='fr'/>
367 20 Joris Michaux
</pre>
368 20 Joris Michaux
369 20 Joris Michaux
#Create your own NAT network
370 20 Joris Michaux
<pre>
371 20 Joris Michaux
[H] Create your_nat.xml file :
372 20 Joris Michaux
[XML] <network>
373 20 Joris Michaux
  <name>frp_network</name>
374 20 Joris Michaux
  <forward mode='nat'/>
375 20 Joris Michaux
  <bridge name='br1' stp='on' delay='0' />
376 20 Joris Michaux
  <ip address='10.16.42.1' netmask='255.255.255.0'>
377 20 Joris Michaux
    <dhcp>
378 20 Joris Michaux
      <range start='10.16.42.2' end='10.16.42.50' />
379 20 Joris Michaux
    </dhcp>
380 20 Joris Michaux
  </ip>
381 20 Joris Michaux
</network>
382 20 Joris Michaux
[H] "virsh net-define your_nat.xml"
383 20 Joris Michaux
[H] "virsh net-start your_nat.xml"
384 20 Joris Michaux
[H] "virsh net-autostart your_nat.xml"
385 20 Joris Michaux
[XML] Network type "interface type = network, source network=your_nat"
386 20 Joris Michaux
</pre>
387 20 Joris Michaux
388 20 Joris Michaux
#IBM advisements to improve performance
389 20 Joris Michaux
<pre>
390 20 Joris Michaux
[H] Use LVM (or other direct access to HDD) for VMs storage (from 45 to 3' to install a VM)
391 20 Joris Michaux
[H] Set the swappiness value to 0 ("echo 0 > /proc/sys/vm/swappiness" && edit "/etc/sysctl.conf" and add "vm.swappiness=0")
392 20 Joris Michaux
[H] Disable zone_reclaim ("echo 0 > /proc/sys/vm/zone_reclaim_mode" && edit "/etc/sysctl.conf" and add "vm.zone_reclaim_mode=0")
393 20 Joris Michaux
[H] Enable KSM ("echo 1 > /sys/kernel/mm/ksm/run") and set the check time to 200ms ("echo 200 > /sys/kernel/mm/ksm/sleep_millisecs")
394 20 Joris Michaux
</pre>
395 22 Mehdi Abaakouk
396 22 Mehdi Abaakouk
397 22 Mehdi Abaakouk
398 22 Mehdi Abaakouk
h2. PC velizy
399 22 Mehdi Abaakouk
400 22 Mehdi Abaakouk
401 22 Mehdi Abaakouk
<pre>
402 22 Mehdi Abaakouk
root@tetaneutral1:~# fdisk /dev/sdb
403 22 Mehdi Abaakouk
404 22 Mehdi Abaakouk
Command (m for help): p
405 22 Mehdi Abaakouk
406 22 Mehdi Abaakouk
Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
407 22 Mehdi Abaakouk
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
408 22 Mehdi Abaakouk
Units = sectors of 1 * 512 = 512 bytes
409 22 Mehdi Abaakouk
Sector size (logical/physical): 512 bytes / 512 bytes
410 22 Mehdi Abaakouk
I/O size (minimum/optimal): 512 bytes / 512 bytes
411 22 Mehdi Abaakouk
Disk identifier: 0x9bf0c7df
412 22 Mehdi Abaakouk
413 22 Mehdi Abaakouk
   Device Boot      Start         End      Blocks   Id  System
414 22 Mehdi Abaakouk
415 22 Mehdi Abaakouk
Command (m for help): n
416 22 Mehdi Abaakouk
Partition type:
417 22 Mehdi Abaakouk
   p   primary (0 primary, 0 extended, 4 free)
418 22 Mehdi Abaakouk
   e   extended
419 22 Mehdi Abaakouk
Select (default p): p
420 22 Mehdi Abaakouk
Partition number (1-4, default 1): 
421 22 Mehdi Abaakouk
Using default value 1
422 22 Mehdi Abaakouk
First sector (2048-3907029167, default 2048): 
423 22 Mehdi Abaakouk
Using default value 2048
424 22 Mehdi Abaakouk
Last sector, +sectors or +size{K,M,G} (2048-3907029167, default 3907029167): 
425 22 Mehdi Abaakouk
Using default value 3907029167
426 22 Mehdi Abaakouk
427 22 Mehdi Abaakouk
Command (m for help): n
428 22 Mehdi Abaakouk
Partition type:
429 22 Mehdi Abaakouk
   p   primary (1 primary, 0 extended, 3 free)
430 22 Mehdi Abaakouk
   e   extended
431 22 Mehdi Abaakouk
Select (default p): ^C
432 22 Mehdi Abaakouk
root@tetaneutral1:~# fdisk /dev/sdb
433 22 Mehdi Abaakouk
434 22 Mehdi Abaakouk
Command (m for help): n
435 22 Mehdi Abaakouk
Partition type:
436 22 Mehdi Abaakouk
   p   primary (0 primary, 0 extended, 4 free)
437 22 Mehdi Abaakouk
   e   extended
438 22 Mehdi Abaakouk
Select (default p): p
439 22 Mehdi Abaakouk
Partition number (1-4, default 1): 1
440 22 Mehdi Abaakouk
First sector (2048-3907029167, default 2048): 
441 22 Mehdi Abaakouk
Using default value 2048
442 22 Mehdi Abaakouk
Last sector, +sectors or +size{K,M,G} (2048-3907029167, default 3907029167): 
443 22 Mehdi Abaakouk
Using default value 3907029167
444 22 Mehdi Abaakouk
445 22 Mehdi Abaakouk
Command (m for help): p
446 22 Mehdi Abaakouk
447 22 Mehdi Abaakouk
Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
448 22 Mehdi Abaakouk
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
449 22 Mehdi Abaakouk
Units = sectors of 1 * 512 = 512 bytes
450 22 Mehdi Abaakouk
Sector size (logical/physical): 512 bytes / 512 bytes
451 22 Mehdi Abaakouk
I/O size (minimum/optimal): 512 bytes / 512 bytes
452 22 Mehdi Abaakouk
Disk identifier: 0x9bf0c7df
453 22 Mehdi Abaakouk
454 22 Mehdi Abaakouk
   Device Boot      Start         End      Blocks   Id  System
455 22 Mehdi Abaakouk
/dev/sdb1            2048  3907029167  1953513560   83  Linux
456 22 Mehdi Abaakouk
457 22 Mehdi Abaakouk
Command (m for help): m
458 22 Mehdi Abaakouk
Command action
459 22 Mehdi Abaakouk
   a   toggle a bootable flag
460 22 Mehdi Abaakouk
   b   edit bsd disklabel
461 22 Mehdi Abaakouk
   c   toggle the dos compatibility flag
462 22 Mehdi Abaakouk
   d   delete a partition
463 22 Mehdi Abaakouk
   l   list known partition types
464 22 Mehdi Abaakouk
   m   print this menu
465 22 Mehdi Abaakouk
   n   add a new partition
466 22 Mehdi Abaakouk
   o   create a new empty DOS partition table
467 22 Mehdi Abaakouk
   p   print the partition table
468 22 Mehdi Abaakouk
   q   quit without saving changes
469 22 Mehdi Abaakouk
   s   create a new empty Sun disklabel
470 22 Mehdi Abaakouk
   t   change a partition's system id
471 22 Mehdi Abaakouk
   u   change display/entry units
472 22 Mehdi Abaakouk
   v   verify the partition table
473 22 Mehdi Abaakouk
   w   write table to disk and exit
474 22 Mehdi Abaakouk
   x   extra functionality (experts only)
475 22 Mehdi Abaakouk
476 22 Mehdi Abaakouk
Command (m for help): t
477 22 Mehdi Abaakouk
Selected partition 1
478 22 Mehdi Abaakouk
Hex code (type L to list codes): L
479 22 Mehdi Abaakouk
480 22 Mehdi Abaakouk
 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
481 22 Mehdi Abaakouk
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
482 22 Mehdi Abaakouk
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
483 22 Mehdi Abaakouk
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
484 22 Mehdi Abaakouk
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
485 22 Mehdi Abaakouk
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
486 22 Mehdi Abaakouk
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
487 22 Mehdi Abaakouk
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
488 22 Mehdi Abaakouk
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
489 22 Mehdi Abaakouk
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
490 22 Mehdi Abaakouk
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
491 22 Mehdi Abaakouk
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
492 22 Mehdi Abaakouk
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs        
493 22 Mehdi Abaakouk
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
494 22 Mehdi Abaakouk
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
495 22 Mehdi Abaakouk
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
496 22 Mehdi Abaakouk
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
497 22 Mehdi Abaakouk
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
498 22 Mehdi Abaakouk
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary  
499 22 Mehdi Abaakouk
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
500 22 Mehdi Abaakouk
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
501 22 Mehdi Abaakouk
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
502 22 Mehdi Abaakouk
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
503 22 Mehdi Abaakouk
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            
504 22 Mehdi Abaakouk
1e  Hidden W95 FAT1 80  Old Minix      
505 22 Mehdi Abaakouk
Hex code (type L to list codes): 8e
506 22 Mehdi Abaakouk
Changed system type of partition 1 to 8e (Linux LVM)
507 22 Mehdi Abaakouk
508 22 Mehdi Abaakouk
Command (m for help): w
509 22 Mehdi Abaakouk
The partition table has been altered!
510 22 Mehdi Abaakouk
511 22 Mehdi Abaakouk
Calling ioctl() to re-read partition table.
512 22 Mehdi Abaakouk
Syncing disks.
513 22 Mehdi Abaakouk
</pre>
514 22 Mehdi Abaakouk
<pre>
515 22 Mehdi Abaakouk
pvcreate /dev/sdb1
516 1 Mehdi Abaakouk
vgcreate vm-velizy /dev/sdb1
517 23 Mehdi Abaakouk
lvcreate -n velizy-vm1 -L 50G vm-velizy
518 24 Mehdi Abaakouk
apt-get install virtinst
519 1 Mehdi Abaakouk
520 25 Mehdi Abaakouk
521 1 Mehdi Abaakouk
/root/preseed.cfg @ http://git.tetaneutral.net/libvirt.git/
522 25 Mehdi Abaakouk
523 27 Mehdi Abaakouk
replace the late-command line at the end of the file by:
524 27 Mehdi Abaakouk
d-i preseed/late_command string cp -f /postinstall-velizy.sh /target/; in-target bash /postinstall-velizy.sh
525 1 Mehdi Abaakouk
526 27 Mehdi Abaakouk
527 25 Mehdi Abaakouk
vmname=velizy-vm1
528 25 Mehdi Abaakouk
ip=192.166.143.24
529 25 Mehdi Abaakouk
530 25 Mehdi Abaakouk
virt-install -n $vmname -r 2048 --os-type=linux \
531 25 Mehdi Abaakouk
    --debug \
532 25 Mehdi Abaakouk
    --autostart \
533 25 Mehdi Abaakouk
    --disk /dev/vm-velizy/$vmname,bus=virtio,cache=none,io=native \
534 25 Mehdi Abaakouk
    --network bridge=br0,model=virtio \
535 25 Mehdi Abaakouk
    --nographics \
536 25 Mehdi Abaakouk
    --noreboot \
537 25 Mehdi Abaakouk
    --wait -1 \
538 25 Mehdi Abaakouk
    --location http://ftp.debian.org/debian/dists/wheezy/main/installer-amd64/ \
539 25 Mehdi Abaakouk
    --serial pty \
540 1 Mehdi Abaakouk
    --initrd-inject /root/preseed.cfg \
541 27 Mehdi Abaakouk
    --initrd-inject /root/postinstall-velizy.sh \
542 25 Mehdi Abaakouk
    --extra-args "console=ttyS0,9600n8 DEBIAN_FRONTEND=text auto priority=critical hostname=$vmname domain=tetaneutral.net netcfg/get_ipaddress=$ip netcfg/get_netmask=255.255.252.0 netcfg/get_gateway=192.166.143.254 netcfg/get_nameservers=192.166.143.23 netcfg/disable_dhcp=true" 
543 1 Mehdi Abaakouk
544 27 Mehdi Abaakouk
</pre>
545 27 Mehdi Abaakouk
546 27 Mehdi Abaakouk
547 27 Mehdi Abaakouk
postinstall-velizy.sh
548 27 Mehdi Abaakouk
<pre>
549 27 Mehdi Abaakouk
#!/bin/bash
550 27 Mehdi Abaakouk
sed -i -e 's/^.*Port.*$/Port 2222/' -e 's/^[# ]*PasswordAuthentication.*$/PasswordAuthenticati
551 27 Mehdi Abaakouk
on no/' /etc/ssh/sshd_config
552 27 Mehdi Abaakouk
553 27 Mehdi Abaakouk
mkdir -p /root/.ssh
554 27 Mehdi Abaakouk
cat > /root/.ssh/authorized_keys  <<EOF
555 27 Mehdi Abaakouk
ssh-dss AAAAB3NzaC1kc3MAAACBAJtnGLvuz4uVD6fnERDxDi/C0UyzwCiKmgNtEessopREYasAX4Gu6Fg10jAyIL5Nuc
556 27 Mehdi Abaakouk
7YDnqj//pOfxNjD7hp99a2ZmkRQgh/ltClxYML9fqhBHgsUCpVse9nOYDHDnDgvXIPRSDUHat2UFpdchHVrFURNLIlZnBz
557 27 Mehdi Abaakouk
tsr+GCDURTV/AAAAFQD9SrBcH49ltaKOm6V5ssCPmgs1SwAAAIAbAvkQ3/tMzzdACO5B9s5Yb3ZuM7XImm0iqufivVf2Xy
558 27 Mehdi Abaakouk
39g8HOBulUsN7eKEGPhVriqNolgIO7q7tVgYAff4/NE4yDP0Kp0SPg4tjt2yFJuL31Y3wzwHjnKrjgNlDSLl3uZnRXSipw
559 27 Mehdi Abaakouk
UMwGKbdHB6NZSqlq192VKbHilQ00pbiMlAAAAIB5dfB1lVHkJ0o5CcaVQRPbca9DvbbRwnoTSmKHc5DUcqsPqDhS07CkM9
560 27 Mehdi Abaakouk
ZcJuY1Nh4wGl4Q9kArj7Tnsvvygf/HReSUcIk4+nbDytJ8/pca/Qx4fzQQyppa94TylN62LSFT6MIJKLoMwYa0dQURT7Mv
561 27 Mehdi Abaakouk
5+9Qj2vk5pZ38w2iQ9zVCg== root@h1
562 27 Mehdi Abaakouk
EOF
563 27 Mehdi Abaakouk
564 27 Mehdi Abaakouk
passwd -d root
565 25 Mehdi Abaakouk
</pre>
566 25 Mehdi Abaakouk
567 1 Mehdi Abaakouk
568 24 Mehdi Abaakouk
apt-get install debconf-utils
569 24 Mehdi Abaakouk
debconf-get-selections > preseed.cfg # marche pas