Projet

Général

Profil

GCCCompileFarm » Historique » Version 10

Éric Deschamps, 30/07/2012 13:46
Mini doc sur l'installation de VM NetBSD et sur la résolution de problèmes avec virsh/libvirt

1 1 Laurent GUERBY
{{>toc}}
2 1 Laurent GUERBY
3 1 Laurent GUERBY
h1. GCCCompileFarm
4 2 Laurent GUERBY
5 4 Éric Deschamps
h2. Machines virtuelles demandées
6 4 Éric Deschamps
7 2 Laurent GUERBY
TODO KVM a la demande sur gcc75 et gcc76
8 3 Laurent GUERBY
9 3 Laurent GUERBY
* FreeBSD (diverses versions et 32/64)
10 3 Laurent GUERBY
* RHEL (idem, on a 5 licences RHN)
11 3 Laurent GUERBY
* OpenBSD (idem)
12 3 Laurent GUERBY
* NetBSD (idem)
13 3 Laurent GUERBY
* debian (idem)
14 3 Laurent GUERBY
* ubuntu (idem)
15 3 Laurent GUERBY
* gentoo (idem)
16 3 Laurent GUERBY
17 3 Laurent GUERBY
En non x86/amd64 qemu ?
18 3 Laurent GUERBY
19 3 Laurent GUERBY
* openwrt MIPS
20 3 Laurent GUERBY
* debian/autre ARM
21 4 Éric Deschamps
22 4 Éric Deschamps
h2. Machines virtuelles installées
23 4 Éric Deschamps
24 4 Éric Deschamps
h3. Sur gcc76
25 4 Éric Deschamps
26 7 Éric Deschamps
* FreeBSD 8.3 amd64 : ssh farmuser@freebsd-83-amd64
27 7 Éric Deschamps
* Debian GNU/Linux Squeeze x86 : ssh farmuser@squeeze-x86
28 7 Éric Deschamps
* OpenBSD 5 / i386 : ssh farmuser@openbsd-5-x86
29 9 Éric Deschamps
* RedHat Linux Server 6.3 amd64 : ssh farmuser@rhel-63-amd64
30 4 Éric Deschamps
31 4 Éric Deschamps
h2. Gestion des machines virtuelles
32 4 Éric Deschamps
33 4 Éric Deschamps
*Remarque* : le compte utilisateur doit être membre du *groupe libvirt*.
34 4 Éric Deschamps
35 4 Éric Deschamps
h3. Lister les machines virtuelles
36 4 Éric Deschamps
37 4 Éric Deschamps
*En cours :*
38 4 Éric Deschamps
39 4 Éric Deschamps
<pre>
40 4 Éric Deschamps
virsh list
41 4 Éric Deschamps
</pre>
42 4 Éric Deschamps
43 4 Éric Deschamps
*Disponibles :*
44 4 Éric Deschamps
<pre>
45 4 Éric Deschamps
virsh list --all
46 4 Éric Deschamps
</pre>
47 4 Éric Deschamps
48 4 Éric Deschamps
h3. Démarrer une machine virtuelle
49 4 Éric Deschamps
50 4 Éric Deschamps
<pre>
51 4 Éric Deschamps
virsh start nom_vm
52 4 Éric Deschamps
</pre>
53 4 Éric Deschamps
54 4 Éric Deschamps
h3. Arrêter une machine virtuelle
55 4 Éric Deschamps
56 4 Éric Deschamps
<pre>
57 4 Éric Deschamps
virsh shutdown nom_vm
58 4 Éric Deschamps
</pre>
59 5 Éric Deschamps
60 5 Éric Deschamps
h2. Installation d'une machine virtuelle
61 5 Éric Deschamps
62 5 Éric Deschamps
Commande virt-install donnée à titre indicatif :
63 5 Éric Deschamps
<pre>
64 5 Éric Deschamps
virt-install --accelerate --hvm --connect qemu:///system --cdrom ~erdesc/isos/debian-6.0.5-i386-netinst.iso -n squeeze-x86 -r 1024 \
65 5 Éric Deschamps
--disk path=/var/lib/libvirt/images/debian-squeeze-x86.qcow2,bus=virtio,size=10,format=qcow2 --vnc
66 5 Éric Deschamps
</pre>
67 5 Éric Deschamps
68 5 Éric Deschamps
Petites remarques :
69 5 Éric Deschamps
* -n permet de donner un nom à la machine virtuelle
70 5 Éric Deschamps
* -r précise la taille mémoire allouée à la VM
71 5 Éric Deschamps
* --disk path=/var/lib/libvirt/images/debian-squeeze-x86.qcow2,bus=virtio,size=10,format=qcow2 : on place par défaut les images dans le répertoire /var/lib/libvirt/images/. Ici on utilise le pilote virtio parce qu'il est généralement fourni sous Linux, donc pour un BSD on préférera ide, sata ou scsi, la taille de l'image est de 10 Go et le format qcow2 est extensible, donc évite de manger les 10Go sur le disque pour rien.
72 8 Éric Deschamps
73 8 Éric Deschamps
h2. Installation d'un machine virtuelle RedHat (RHEL) avec KVM
74 8 Éric Deschamps
75 8 Éric Deschamps
_Petites notes à déplacer plus tard_
76 8 Éric Deschamps
77 8 Éric Deschamps
RedHat documente l'installation des machines virtuelles avec KVM (*** lien ***). 
78 8 Éric Deschamps
79 8 Éric Deschamps
Pour commencer, j'ai eu quelques soucis avec les pilotes virtio pour le disque virtuel et la carte réseau. J'ai _résolu_ le problème en utilisant respectivement un contrôleur IDE et une carte ethernet e1000.
80 8 Éric Deschamps
81 8 Éric Deschamps
Ensuite, une fois l'installation terminée, il faut changer le nom d'hôte, parfois reparamétrer la carte réseau et enfin enregistrer la machine chez RedHat avant de mettre à jour et d'installer de nouveaux paquets.
82 8 Éric Deschamps
83 8 Éric Deschamps
h3. Paramétrage réseau
84 8 Éric Deschamps
85 8 Éric Deschamps
* /etc/sysconfig/network (par exemple)
86 8 Éric Deschamps
<pre>
87 8 Éric Deschamps
NETWORKING=yes
88 8 Éric Deschamps
HOSTNAME=rhel-6.3-amd64.localdomain
89 8 Éric Deschamps
</pre>
90 8 Éric Deschamps
91 8 Éric Deschamps
* /etc/hosts (ajout, toujours par exemple)
92 8 Éric Deschamps
<pre>
93 8 Éric Deschamps
192.168.122.13 rhel-6.3-amd64 rhel-6.3-amd64.localdomain
94 8 Éric Deschamps
</pre>
95 8 Éric Deschamps
96 8 Éric Deschamps
* /etc/sysconfig/network-scripts/ifcfg-eth0 (exemple)
97 8 Éric Deschamps
<pre>
98 8 Éric Deschamps
DEVICE="eth0"
99 8 Éric Deschamps
BOOTPROTO="static"
100 8 Éric Deschamps
IPADDR=192.168.122.13
101 8 Éric Deschamps
BROADCAST=192.168.122.255
102 8 Éric Deschamps
NETMASK=255.255.255.0
103 8 Éric Deschamps
NETWORK=192.168.122.0
104 8 Éric Deschamps
GATEWAY=192.168.122.1
105 8 Éric Deschamps
HWADDR="52:54:00:A8:19:67"
106 8 Éric Deschamps
NM_CONTROLLED="yes"
107 8 Éric Deschamps
ONBOOT="yes"
108 8 Éric Deschamps
TYPE="Ethernet"
109 8 Éric Deschamps
UUID="88376404-9ee2-4455-bee3-fe97f2df9fff"
110 8 Éric Deschamps
</pre>
111 8 Éric Deschamps
112 8 Éric Deschamps
* Mise à jour de la configuration réseau
113 8 Éric Deschamps
114 8 Éric Deschamps
<pre>
115 8 Éric Deschamps
# ifdown eth0
116 8 Éric Deschamps
# ifup eth0
117 8 Éric Deschamps
</pre>
118 8 Éric Deschamps
119 8 Éric Deschamps
h3. Enregistrement de la machine chez RedHat
120 8 Éric Deschamps
121 8 Éric Deschamps
<pre>
122 8 Éric Deschamps
# rhn_register
123 8 Éric Deschamps
</pre>
124 8 Éric Deschamps
125 8 Éric Deschamps
Puis login / mot de passe, suivant, etc.
126 8 Éric Deschamps
127 8 Éric Deschamps
h3. Mise à jour et installation des paquets nécessaires
128 8 Éric Deschamps
129 8 Éric Deschamps
* Mise à jour simple :
130 8 Éric Deschamps
<pre>
131 8 Éric Deschamps
yum update
132 8 Éric Deschamps
</pre>
133 8 Éric Deschamps
134 8 Éric Deschamps
* Installation des paquets nécessaires
135 8 Éric Deschamps
<pre>
136 8 Éric Deschamps
yum groupinstall 'Development Tools'
137 8 Éric Deschamps
</pre>
138 8 Éric Deschamps
139 8 Éric Deschamps
* Autres outils (*** à compléter ***)
140 8 Éric Deschamps
<pre>
141 8 Éric Deschamps
yum install screen
142 8 Éric Deschamps
</pre>
143 10 Éric Deschamps
144 10 Éric Deschamps
h2. Machines virtuelles NetBSD
145 10 Éric Deschamps
146 10 Éric Deschamps
h3. Interface réseau
147 10 Éric Deschamps
148 10 Éric Deschamps
L'interface réseau *rtl8139* par défaut "ne fonctionne pas bien":http://wiki.gcu.info/doku.php?id=linux:kvm_virt-manager_nictype. Il faut la changer par une *ne2k_pci*.
149 10 Éric Deschamps
150 10 Éric Deschamps
Par exemple dans _/etc/libvirt/qemu/netbsd512.xml_ :
151 10 Éric Deschamps
152 10 Éric Deschamps
<pre>
153 10 Éric Deschamps
    <interface type='network'>
154 10 Éric Deschamps
      <mac address='52:54:00:f5:96:fe'/>
155 10 Éric Deschamps
      <source network='default'/>
156 10 Éric Deschamps
      <model type='ne2k_pci'/>
157 10 Éric Deschamps
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
158 10 Éric Deschamps
    </interface>
159 10 Éric Deschamps
</pre>
160 10 Éric Deschamps
161 10 Éric Deschamps
162 10 Éric Deschamps
h3. Configuration réseau
163 10 Éric Deschamps
164 10 Éric Deschamps
Si vous avez choisi *DHCP* à l'installation, il faut modifier quelques fichiers pour passer en IP fixe :
165 10 Éric Deschamps
166 10 Éric Deschamps
On désactive DHCP dans */etc/rc.conf* :
167 10 Éric Deschamps
168 10 Éric Deschamps
<pre>
169 10 Éric Deschamps
#(...)
170 10 Éric Deschamps
dhclient=NO
171 10 Éric Deschamps
#dhclient_flags="ne0"
172 10 Éric Deschamps
#(...)
173 10 Éric Deschamps
</pre>
174 10 Éric Deschamps
175 10 Éric Deschamps
On place l'adresse de la passerelle dans */etc/mygate* :
176 10 Éric Deschamps
<pre>
177 10 Éric Deschamps
192.168.122.1
178 10 Éric Deschamps
</pre>
179 10 Éric Deschamps
180 10 Éric Deschamps
Les serveurs DNS se déclarent comme toujours dans */etc/resolv.conf* :
181 10 Éric Deschamps
<pre>
182 10 Éric Deschamps
nameserver 192.168.122.1
183 10 Éric Deschamps
</pre>
184 10 Éric Deschamps
185 10 Éric Deschamps
h3. Serveur SSH
186 10 Éric Deschamps
187 10 Éric Deschamps
Pour lancer le serveur SSH automatiquement, ajouter ceci dans */etc/rc.conf* :
188 10 Éric Deschamps
<pre>
189 10 Éric Deschamps
sshd=YES
190 10 Éric Deschamps
</pre>
191 10 Éric Deschamps
192 10 Éric Deschamps
Pour le lancer à la main une première fois :
193 10 Éric Deschamps
194 10 Éric Deschamps
<pre>
195 10 Éric Deschamps
/etc/rc.d/sshd start
196 10 Éric Deschamps
</pre>
197 10 Éric Deschamps
198 10 Éric Deschamps
h2. Recherche et résolution de problèmes avec virsh/libvirt
199 10 Éric Deschamps
200 10 Éric Deschamps
Les journaux se trouvent dans */var/log/libvirt/qemu/*.
201 10 Éric Deschamps
202 10 Éric Deschamps
h3. Erreur : cannot acquire state change lock
203 10 Éric Deschamps
204 10 Éric Deschamps
*Exemple* :
205 10 Éric Deschamps
<pre>
206 10 Éric Deschamps
# virsh start netbsd-512-amd64
207 10 Éric Deschamps
error: Failed to start domain netbsd-512-amd64
208 10 Éric Deschamps
error: Timed out during operation: cannot acquire state change lock
209 10 Éric Deschamps
</pre>
210 10 Éric Deschamps
211 10 Éric Deschamps
Il faut relancer libvirtd :
212 10 Éric Deschamps
<pre>
213 10 Éric Deschamps
killall -9 libvirtd
214 10 Éric Deschamps
rm  /var/run/libvirtd.pid
215 10 Éric Deschamps
/etc/init.d/libvirt-bin restart
216 10 Éric Deschamps
</pre>