1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
|
<!--
The FreeBSD Documentation Project
The FreeBSD French Documentation Project
$FreeBSD$
Original revision: 1.20
-->
<chapter id="GEOM">
<chapterinfo>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Ecrit par </contrib>
</author>
</authorgroup>
</chapterinfo>
<title>GEOM: architecture modulaire de gestion des disques</title>
&trans.a.fonvieille;
<sect1 id="GEOM-synopsis">
<title>Synopsis</title>
<indexterm>
<primary>GEOM</primary>
</indexterm>
<indexterm>
<primary>Système de gestion des disques GEOM</primary>
<see>GEOM</see>
</indexterm>
<para>Ce chapitre couvre l'utilisation des disques via le
système GEOM sous &os;. Cela comprend les utilitaires
principaux de contrôle des niveaux <acronym
role="Redundant Array of Inexpensive Disks">RAID</acronym> qui
utilisent GEOM pour la configuration. Ce chapitre n'abordera
pas en profondeur la manière dont GEOM gère et
contrôle les E/S, les systèmes sous-jacents, ou le
code utilisé. Ces informations sont fournies par la page
de manuel &man.geom.4; et ses nombreuses
références. Ce chapitre n'est pas non plus un
guide de référence sur les configurations
<acronym>RAID</acronym>. Seuls les niveaux de
<acronym>RAID</acronym> supportés par GEOM seront
abordés.</para>
<para>Après la lecture de ce chapitre, vous saurez:</para>
<itemizedlist>
<listitem>
<para>Quel type de support <acronym>RAID</acronym> est
disponible avec GEOM.</para>
</listitem>
<listitem>
<para>Comment utiliser les utilitaires de base pour
configurer, gérer et manipuler les différents
niveaux de <acronym>RAID</acronym>.</para>
</listitem>
<listitem>
<para>Comment dupliquer, entrelacer, et connecter à
distance des disques via le système GEOM.</para>
</listitem>
<listitem>
<para>Comment dépanner les disques attachés au
système GEOM.</para>
</listitem>
</itemizedlist>
<para>Avant de lire ce chapitre, vous devrez:</para>
<itemizedlist>
<listitem>
<para>Comprendre comment &os; gère les disques
(<xref linkend="disks">).</para>
<listitem>
<para>Savoir comment configurer et installer un nouveau noyau
&os; (<xref linkend="kernelconfig">).</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="GEOM-intro">
<title>Introduction à GEOM</title>
<para>GEOM autorise l'accès et le contrôle de classes
— secteur principaux de démarrage (<quote>Master
Boot Records</quote>), labels <acronym>BSD</acronym>, etc.
— par l'intermédiaire d'interfaces, ou de fichiers
spéciaux du répertoire <filename
role="directory">/dev</filename>. En supportant plusieurs
configurations <acronym>RAID</acronym> logicielles, GEOM offrira
un accès transparent au système d'exploitation et
à ses utilitaires.</para>
</sect1>
<sect1 id="GEOM-striping">
<sect1info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Ecrit par </contrib>
</author>
<author>
<firstname>Murray</firstname>
<surname>Stokely</surname>
</author>
</authorgroup>
</sect1info>
<title>RAID0 - <quote>Striping</quote></title>
<indexterm>
<primary>GEOM</primary>
</indexterm>
<indexterm>
<primary>Striping</primary>
</indexterm>
<para>Le <quote>striping</quote> (ou entrelacement) est
utilisé pour combiner plusieurs disques en un seul volume
de stockage. Dans de nombreux cas, cette configuration est
réalisée à l'aide de contrôleurs
matériels. Le sous-système GEOM offre le support
pour le niveau <acronym>RAID</acronym>0, également connu
sous le nom de <quote>striping</quote>.</para>
<para>Dans un système <acronym>RAID</acronym>0, les
données sont divisées en blocs répartis sur
l'ensemble des disques de la <quote>grappe</quote>. Au lieu de
devoir attendre l'écriture de 256k sur un disque, un
système <acronym>RAID</acronym>0 peut écrire en
simultané 64k sur quatre disques différents,
offrant alors des performances d'accès
supérieures. Ces performances peuvent être encore
améliorées en utilisant plusieurs
contrôleurs de disques.</para>
<para>Chaque disque d'une bande (<quote>stripe</quote>)
<acronym>RAID</acronym>0 doit avoir la même taille,
puisque les requêtes d'E/S sont entrelacées de
manière à lire ou écrire sur plusieurs
disques en parallèle.</para>
<mediaobject>
<imageobject>
<imagedata fileref="geom/striping" align="center">
</imageobject>
<textobject>
<phrase>Illustration de l'entrelacement de disques</phrase>
</textobject>
</mediaobject>
<procedure>
<title>Création d'un système entrelacé
à partir de disques ATA non formatés</title>
<step>
<para>Chargez le module
<filename>geom_stripe</filename>:</para>
<screen>&prompt.root; <userinput>kldload geom_stripe.ko</userinput></screen>
</step>
<step>
<para>Assurez-vous de l'existence d'un point de montage. Si
ce volume doit devenir une partition racine, utilisez alors un
autre point de montage comme <filename
role="directory">/mnt</filename>.</para>
<screen>&prompt.root; <userinput>mkdir /mnt</userinput></screen>
</step>
<step>
<para>Déterminez les noms de
périphériques pour les disques qui seront
entrelacé, et créez le nouveau
périphérique entrelacé. Par exemple, la
commande suivante pourrait être utilisée pour
entrelacer deux disques <acronym>ATA</acronym> non
partitionnés: <filename>/dev/ad2</filename> et
<filename>/dev/ad3</filename>.</para>
<screen>&prompt.root; <userinput>gstripe label -v st0 /dev/ad2 /dev/ad3</userinput></screen>
<!--
<para>A message should be returned explaining that meta data has
been stored on the devices.
XXX: What message? Put it inside the screen output above.
-->
</step>
<step>
<para>Une table des partitions doit être
créée sur le nouveau volume à l'aide de
la commande suivante:</para>
<screen>&prompt.root; <userinput>bsdlabel -wB /dev/stripe/st0</userinput></screen>
</step>
<step>
<para>Cette opération doit avoir créé
deux autres périphériques dans le
répertoire <filename
role="directory">/dev/stripe</filename> en plus du
périphérique <devicename>st0</devicename>:
<devicename>st0a</devicename> et
<devicename>st0c</devicename>. Un système de fichiers
doit alors être créé sur
<devicename>st0a</devicename> en utilisant la commande
<command>newfs</command>:</para>
<screen>&prompt.root; <userinput>newfs -U /dev/stripe/st0a</userinput></screen>
<para>Des nombres défileront à l'écran,
l'opération sera s'achèvera après
quelques secondes. Le volume a été
créé et est prêt à être
monté.</para>
</step>
</procedure>
<para>La commande suivante peut être utilisée pour
monter manuellement une grappe de disques entrelacés
fraîchement créée:</para>
<screen>&prompt.root; <userinput>mount /dev/stripe/st0a /mnt</userinput></screen>
<para>Pour monter automatiquement au démarrage ce
système de fichiers entrelacé, ajoutez les
informations concernant ce volume dans le fichier
<filename>/etc/fstab</filename>:</para>
<screen>&prompt.root; <userinput>echo "/dev/stripe/st0a /mnt ufs rw 2 2" \</userinput>
<userinput>>> /etc/fstab</userinput></screen>
<para>Le module <filename>geom</filename> doit également
être automatiquement chargé lors de
l'initialisation du système en ajoutant une ligne au
fichier <filename>/boot/loader.conf</filename>:</para>
<screen>&prompt.root; <userinput>echo 'geom_stripe_load="YES"' >> /boot/loader.conf</userinput></screen>
</sect1>
<sect1 id="GEOM-mirror">
<title>RAID1 - <quote>mirroring</quote></title>
<indexterm>
<primary>GEOM</primary>
</indexterm>
<indexterm>
<primary>mirroring</primary>
</indexterm>
<para>Le <quote>mirroring</quote> est une technologie
utilisée par de nombreuses entreprises et beaucoup de
particuliers pour sauvegarder les données sans
interruption des activités. Quand un miroir existe, cela
signifie que le disque B est une copie du disque A. Ou, autre
cas, que les disques C+D sont une copie des disques A+B.
Indépendamment de la configuration des disques, l'aspect
important est que les données d'un disque ou d'une
partition sont dupliquées. Ultérieurement, ces
données pourront être plus facilement
restaurées, sauvegardées sans interrompre le
système ou les accès, et pourront même
être stockées physiquement de manière
sure.</para>
<para>Pour commencer, vérifiez que le système dispose de deux
disques de taille identique, cet exemple suppose que ce sont des
disques <acronym>SCSI</acronym> (&man.da.4;).</para>
<para>Installez &os; sur le premier disque avec uniquement deux
partitions. Une partition sera la partition de pagination d'une
taille double à celle de la <acronym>RAM</acronym> et
l'espace restant sera alloué au système de
fichiers racine (<filename role="directory">/</filename>). Il
est possible d'avoir des partitions séparées pour
les autres points de montage, cependant cela augmentera
énormément le niveau de difficulté en
raison des modifications manuelles nécessaires des
paramètres de &man.bsdlabel.8; et &man.fdisk.8;.</para>
<para>Redémarrez et attendez l'initialisation
complète du système. Ensuite, ouvrez une session
sous l'utilisateur <username>root</username>.</para>
<para>Créez le périphérique
<filename>/dev/mirror/gm</filename> et liez-le avec
<filename>/dev/da1</filename>:</para>
<screen>&prompt.root; <userinput>gmirror label -vnb round-robin gm0 /dev/da1</userinput></screen>
<para>Le système devrait répondre par:</para>
<screen>
Metadata value stored on /dev/da1.
Done.</screen>
<para>Initialisez GEOM, cela devrait charger le module du noyau
<filename>/boot/kernel/geom_mirror.ko</filename>:</para>
<screen>&prompt.root; <userinput>gmirror load</userinput></screen>
<note>
<para>Cette commande devrait créer le fichier
spécial de périphérique
<devicename>gm0</devicename> sous le répertoire
<filename role="directory">/dev/mirror</filename>.</para>
</note>
<para>Installez un label <command>fdisk</command> et un code de
d'amorce génériques sur le nouveau
périphérique <devicename>gm0</devicename>:</para>
<screen>&prompt.root; <userinput>fdisk -vBI /dev/mirror/gm0</userinput></screen>
<para>Installez maintenant un label générique
<command>bsdlabel</command>:</para>
<screen>&prompt.root; <userinput>bsdlabel -wB /dev/mirror/gm0s1</userinput></screen>
<note>
<para>S'il existe plusieurs <quote>slices</quote> et plusieurs
partitions, il faudra modifier les paramètres des deux
commandes précédentes. Elles doivent correspondre
aux tailles des partitions et <quote>slices</quote> sur l'autre
disque.</para>
</note>
<para>Utilisez l'utilitaire &man.newfs.8; pour créer un
système de fichiers par défaut sur le
périphérique
<devicename>gm0s1a</devicename>:</para>
<screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput></screen>
<para>Le système devrait alors afficher un certain nombre
d'informations et de nombres. C'est bon signe. Contrôlez
l'affichage à la recherche de messages d'erreur et montez
le périphérique sur le point de montage <filename
role="directory">/mnt</filename>:</para>
<screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput></screen>
<para>Transférez maintenant toutes les données du
disque de démarrage vers ce nouveau système de
fichiers. Dans notre exemple nous utilisons à cet effet
les commandes &man.dump.8; et &man.restore.8;, cependant la
commande &man.dd.1; conviendrait également.</para>
<screen>&prompt.root; <userinput>dump -L -0 -f- / |(cd /mnt && restore -r -v -f-)</userinput></screen>
<para>Cela doit être effectué pour chaque
système de fichiers. Placez simplement le système
de fichiers approprié au bon endroit quand vous
exécutez la commande précédente.</para>
<para>Editez ensuite le fichier
<filename>/mnt/etc/fstab</filename> et supprimez ou mettez en
commentaires le fichier de pagination
<footnote>
<para>Il est à noter que commenter l'entrée de
l'espace de pagination dans <filename>fstab</filename> vous
demandera très probablement de mettre en place une
méthode différente pour activer l'espace de
pagination. Veuillez vous référer à
la <xref linkend="adding-swap-space"> pour plus
d'informations.</para>
</footnote>. Modifiez les autres paramètres du
système de fichiers pour utiliser le nouveau disque.
Etudiez l'exemple suivant:</para>
<programlisting># Device Mountpoint FStype Options Dump Pass#
#/dev/da0s2b none swap sw 0 0
/dev/mirror/gm0s1a / ufs rw 1 1</programlisting>
<para>Créez maintenant un fichier
<filename>boot.conf</filename> sur la partition racine actuelle
et celle nouvellement créée. Ce fichier
<quote>aidera</quote> le <acronym>BIOS</acronym> à
déterminer correctement sur quel disque
démarrer:</para>
<screen>&prompt.root; <userinput>echo "1:da(1,a)/boot/loader" > /boot.config</userinput></screen>
<screen>&prompt.root; <userinput>echo "1:da(1,a)/boot/loader" > /mnt/boot.config</userinput></screen>
<note>
<para>Nous l'avons ajouter sur les deux partitions racines afin
d'assurer un démarrage correct. Si pour une raison
quelconque le système ne pourrait le lire à partir
de la nouvelle partition racine, une version de secours est
disponible.</para>
</note>
<para>Ajoutez maintenant la ligne suivante au nouveau fichier
<filename>/boot/loader.conf</filename>:</para>
<screen>&prompt.root; <userinput>echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf</userinput></screen>
<para>Cette ligne demandera à l'utilitaire &man.loader.8;
de charger le module &man.loader.8; lors de l'initialisation du
système.</para>
<para>Redémarrez le système:</para>
<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
<para>Si tout s'est bien passé, le système a
dû démarrer à partir du
périphérique <devicename>gm0s1a</devicename> et
une invite d'ouverture de session doit être
affichée. En cas de problème, consultez la
section suivante consacrée au dépannage. Ajoutez
maintenant le disque <devicename>da0</devicename> au
périphérique <devicename>gm0</devicename>:</para>
<screen>&prompt.root; <userinput>gmirror configure -a gm0</userinput>
&prompt.root; <userinput>gmirror insert gm0 /dev/da0</userinput></screen>
<para>L'option <option>-a</option> demande à
&man.gmirror.8; d'utiliser une synchronisation automatique,
c'est à dire dupliquer automatiquement toute
écriture disque. La page de manuel explique comment
reconstruire et remplacer les disques, avec la différence
qu'elle utilise <devicename>data</devicename> à la place
de <devicename>gm0</devicename>.</para>
<sect2>
<title>Dépannage</title>
<sect3>
<title>Le système refuse de démarrer</title>
<para>Si le démarrage du système s'interrompt
à une invite semblable à:</para>
<programlisting>ffs_mountroot: can't find rootvp
Root mount failed: 6
mountroot></programlisting>
<para>Redémarrez la machine à l'aide du bouton
de mise en marche ou de <quote>reset</quote>. Au menu de
démarrage, sélectionnez la sixième
option (6). Le système basculera alors vers une
invite du chargeur (&man.loader.8;). Chargez manuellement
le module du noyau:</para>
<screen>OK? <userinput>load geom_mirror.ko</userinput>
OK? <userinput>boot</userinput></screen>
<para>Si cela fonctionne, cela signifie que pour une raison
quelconque le module n'a pas été correctement
chargé. Ajoutez la ligne:</para>
<programlisting>options GEOM_MIRROR</programlisting>
<para>dans le fichier de configuration du noyau, recompilez-le
puis réinstallez-le. Cela devrait corriger le
problème.</para>
</sect3>
</sect2>
</sect1>
</chapter>
<!--
Local Variables:
mode: sgml
sgml-declaration: "../chapter.decl"
sgml-indent-data: t
sgml-omittag: nil
sgml-always-quote-attributes: t
sgml-parent-document: ("../book.sgml" "part" "chapter")
End:
-->
|