aboutsummaryrefslogtreecommitdiff
path: root/de_DE.ISO8859-1/books/handbook/geom/chapter.xml
blob: 760f2beaded746497b583657458d45c8fbef580e (plain) (blame)
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
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
<?xml version="1.0" encoding="iso-8859-1"?>
<!--
     The FreeBSD Documentation Project
     The FreeBSD German Documentation Project

     $FreeBSD$
     $FreeBSDde$
     basiert auf: r48356
-->
<chapter xmlns="http://docbook.org/ns/docbook"
  xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
  xml:id="geom">

  <info>
    <title>GEOM: Modulares Framework zur
      Plattentransformation</title>

    <authorgroup>
      <author>
	<personname>
	  <firstname>Tom</firstname>
	  <surname>Rhodes</surname>
	</personname>
	<contrib>Geschrieben von </contrib>
      </author>
    </authorgroup>
    <authorgroup>
      <author>
	<personname>
	  <firstname>Daniel</firstname>
	  <surname>Seuffert</surname>
	</personname>
	<contrib>bersetzt von </contrib>
      </author>
      <author>
	<personname>
	  <firstname>Johann</firstname>
	  <surname>Kois</surname>
	</personname>
      </author>
    </authorgroup>
  </info>

  <sect1 xml:id="geom-synopsis">
    <title>bersicht</title>

    <indexterm>
      <primary><acronym>GEOM</acronym></primary>
    </indexterm>
    <indexterm>
      <primary><acronym>GEOM</acronym> Disk Framework</primary>
      <see><acronym>GEOM</acronym></see>
    </indexterm>

    <para><acronym>GEOM</acronym> erlaubt den Zugriff und die
      Kontrolle von Klassen, wie beispielsweise Master Boot Records
      und <acronym>BSD</acronym>-Label, durch die Nutzung von
      Datentrgern (Providern) oder den besonderen Dateien in
      <filename>/dev</filename>.  Verschiedene Software
      <acronym>RAID</acronym>-Konfigurationen untersttzend, gewhrt
      <acronym>GEOM</acronym> transparenten Zugriff auf das
      Betriebssystem und die System-Dienstprogramme.</para>

    <para>Dieses Kapitel behandelt den Einsatz von Laufwerken mit
      dem <acronym>GEOM</acronym>-Framework in &os;.  Dies beinhaltet
      auch die wichtigen
      <acronym>RAID</acronym>-berwachungswerkzeuge, welche das
      Framework zur Konfiguration nutzen.  Dieses Kapitel ist kein
      ausfhrlicher Leitfaden fr
      <acronym>RAID</acronym>-Konfigurationen.  Nur die von
      <acronym>GEOM</acronym> untersttzten
      <acronym>RAID</acronym>-Klassen werden errtert.</para>

    <para>Nach Lesen dieses Kapitels werden Sie folgendes
      wissen:</para>

    <itemizedlist>
      <listitem>
	<para>Welche Art von
	  <acronym>RAID</acronym>-Untersttzung durch
	  <acronym>GEOM</acronym> verfgbar ist.</para>
      </listitem>

      <listitem>
	<para>Wie man die Basis-Dienstprogramme nutzt, um
	  verschiedene <acronym>RAID</acronym>-Stufen zu
	  konfigurieren, zu manipulieren und zu warten.</para>
      </listitem>

      <listitem>
	<para>Wie man mittels <acronym>GEOM</acronym> spiegelt,
	  striped, verschlsselt und entfernte Laufwerke
	  verbindet.</para>
      </listitem>

      <listitem>
	<para>Wie man an Laufwerken, welche an das
	  <acronym>GEOM</acronym>-Framework angeschlossen sind, Fehler
	  behebt.</para>
      </listitem>
    </itemizedlist>

    <para>Bevor Sie dieses Kapitel lesen, sollten Sie:</para>

    <itemizedlist>
      <listitem>
	<para>Verstehen, wie &os; Laufwerke behandelt
	  (<xref linkend="disks"/>).</para>
      </listitem>

      <listitem>
	<para>Wissen wie man einen neuen &os;-Kernel konfiguriert
	  und installiert (<xref linkend="kernelconfig"/>).</para>
      </listitem>
    </itemizedlist>
  </sect1>

  <sect1 xml:id="geom-striping">
    <info>
      <title>RAID0 - Striping</title>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Tom</firstname>
	    <surname>Rhodes</surname>
	  </personname>
	  <contrib>Geschrieben von </contrib>
	</author>
	<author>
	  <personname>
	    <firstname>Murray</firstname>
	    <surname>Stokely</surname>
	  </personname>
	</author>
      </authorgroup>
    </info>

    <indexterm>
      <primary><acronym>GEOM</acronym></primary>
    </indexterm>
    <indexterm>
      <primary>Striping</primary>
    </indexterm>

    <para>Striping (stripe = Streifen) fasst verschiedene Laufwerke in
      einem einzigen Datentrger zusammen.  Dies wird durch die
      Nutzung von Hardware-Controllern bewerkstelligt.  Das
      <acronym>GEOM</acronym>-Subsystem untersttzt
      Software-<acronym>RAID0</acronym>, welches auch als Striping
      bekannt ist.  Bei dieser Technik wird kein
      <acronym>RAID</acronym>-Controller bentigt.</para>

    <para>In einem <acronym>RAID</acronym>0-System werden die Daten
      in einzelne Blcke aufgeteilt, welche ber alle
      angeschlossenen Laufwerke in einem Datenfeld (Array) geschrieben
      werden.  Anstatt darauf warten zu mssen, dass 256K auf
      ein einzelnes Laufwerk geschrieben werden, kann ein
      <acronym>RAID0</acronym>-System gleichzeitig 64K auf jedes von
      vier Laufwerken schreiben mit entsprechend besserer
      <acronym>I/O</acronym>-Leistung.  Dieser Durchsatz kann durch
      die Verwendung mehrerer Controller noch zustzlich gesteigert
      werden.</para>

    <mediaobject>
      <imageobject>
	<imagedata fileref="geom/striping" align="center"/>
      </imageobject>

      <textobject>
	<phrase>Disk Striping Illustration</phrase>
      </textobject>
    </mediaobject>

    <para>Jedes Laufwerk in einem <acronym>RAID</acronym>0-Stripe
      muss die gleiche Gre haben, da
      <acronym>I/O</acronym>-Anforderungen fr das Lesen und Schreiben
      abwechselnd auf mehrere Laufwerke parallel erfolgen.</para>

    <note>
      <para><acronym>RAID0</acronym> bietet keine Redundanz.  Das
	bedeutet, dass wenn eine Platte im Array ausfllt, die
	gesamten Daten auf den Platten verloren gehen.  Wenn es sich
	um wichtige Daten handelt, sollten Sie eine Backup-Strategie
	entwickeln, die regelmig Sicherungen auf einem entferntem
	System speichert.</para>
    </note>

    <para>Die Erstellung eines <acronym>GEOM</acronym>-basierten
      <acronym>RAID0</acronym> auf einem &os;-System wird im folgenden
      beschrieben.  Nachdem das Stripe erzeugt wurde, finden Sie in
      &man.gstripe.8; weitere Informationen zur Verwaltung der
      vorhandenen Stripes.</para>

    <procedure>
      <title>Ein Stripe aus unformatierten
	<acronym>ATA</acronym>-Platten erzeugen</title>

      <step>
	<para>Laden Sie das
	  <filename>geom_stripe.ko</filename>-Modul:</para>

	<screen>&prompt.root; <userinput>kldload geom_stripe</userinput></screen>
      </step>

      <step>
	<para>Stellen Sie sicher, dass ein geeigneter Mountpunkt
	  existiert.  Falls dieser Datentrger eine Root-Partition
	  werden soll, dann nutzen Sie zeitweise einen anderen
	  Mountpunkt, beispielsweise
	  <filename>/mnt</filename>.</para>
      </step>

      <step>
	<para>Bestimmen Sie die Gertenamen derjenigen Platten,
	  welche gestriped werden sollen, und erzeugen Sie ein neues
	  Stripe-Gert.  Das folgende Beispiel verwendet zwei
	  unbenutzte und unpartitionierte
	  <acronym>ATA</acronym>-Platten, die gestriped werden sollen.
	  Die Gertenamen lauten <filename>/dev/ad2</filename> und
	  <filename>/dev/ad3</filename>:</para>

	<screen>&prompt.root; <userinput>gstripe label -v st0 /dev/ad2 /dev/ad3</userinput>
Metadata value stored on /dev/ad2.
Metadata value stored on /dev/ad3.
Done.</screen>
      </step>

      <step>
	<para>Schreiben Sie einen Standard-Label (auch als
	  Partitions-Tabelle bekannt) auf den neuen Datentrger
	  und installieren Sie den normalen Bootstrap-Code:</para>

	<screen>&prompt.root; <userinput>bsdlabel -wB /dev/stripe/st0</userinput></screen>
      </step>

      <step>
	<para>Dieser Prozess sollte zwei weitere Gerte im
	  Verzeichnis <filename>/dev/stripe</filename> (zustzlich zum
	  Gert <filename>st0</filename>) erzeugt haben.  Diese
	  schliessen <filename>st0a</filename> und
	  <filename>st0c</filename> ein.  Nun kann mit
	  <command>newfs</command> ein
	  <acronym>UFS</acronym>-Dateisystem auf dem Gert
	  <filename>st0a</filename> erzeugt werden:</para>

	<screen>&prompt.root; <userinput>newfs -U /dev/stripe/st0a</userinput></screen>

	<para>Viele Zahlen rauschen nun ber den Bildschirm
	  und nach ein paar Sekunden wird der Prozess abgeschlossen
	  sein.  Der Datentrger wurde erzeugt und kann in den
	  Verzeichnisbaum eingehngt werden.</para>
      </step>

      <step>
	<para>Um das erzeugte Stripe manuell zu mounten:</para>

	<screen>&prompt.root; <userinput>mount /dev/stripe/st0a /mnt</userinput></screen>
      </step>

      <step>
	<para>Um das erzeugte Dateisystem automatisch whrend des
	  Startvorgangs zu mounten, muss die Datentrgerinformation
	  in <filename>/etc/fstab</filename> eingetragen werden.  In
	  diesem Beispiel wird ein permanenter Mountpunkt namens
	  <filename>stripe</filename> erstellt:</para>

	<screen>&prompt.root; <userinput>mkdir /stripe</userinput>
&prompt.root; <userinput>echo "/dev/stripe/st0a /stripe ufs rw 2 2" \</userinput>
<userinput>&gt;&gt; /etc/fstab</userinput></screen>
      </step>

      <step>
	<para>Das <filename>geom_stripe.ko</filename>-Modul muss
	  ebenfalls automatisch beim Systemstart geladen werden (durch
	  die Aufnahme der folgenden Zeile in die Datei
	  <filename>/boot/loader.conf</filename>):</para>

	<screen>&prompt.root; <userinput>echo 'geom_stripe_load="YES"' &gt;&gt; /boot/loader.conf</userinput></screen>
      </step>
    </procedure>
  </sect1>

  <sect1 xml:id="geom-mirror">
    <title>RAID1 - Spiegelung</title>

    <indexterm>
      <primary><acronym>GEOM</acronym></primary>
    </indexterm>
    <indexterm>
      <primary>Disk Mirroring</primary>
    </indexterm>
    <indexterm>
      <primary>RAID1</primary>
    </indexterm>

    <para>Spiegelung (<acronym>RAID1</acronym> /
      <emphasis>Mirroring</emphasis>) ist eine
      Technik, bei der identische Daten auf mehr als ein Laufwerk
      geschrieben werden.  Spiegel werden in der Regel zum Schutz vor
      Datenverlust aufgrund von Festplattenausfllen verwendet.  Jedes
      Laufwerk in einem Spiegel enthlt eine identische Kopie der
      Daten.  Wenn ein einzelnes Laufwerk ausfllt, funktioniert der
      Spiegel weiterhin und die Daten werden von den restlichen
      Festplatten bereit gestellt.  Der Rechner luft einfach weiter
      und der Administrator hat die Gelegentheit, das defekte Laufwerk
      auszutauschen.</para>

    <para>Zwei hufige Situationen werden in diesem Beispiel
      erlutert.  Im ersten Beispiel wird ein Spiegel aus zwei
      neuen Laufwerken erstellt, der die existierende Platte ersetzt.
      Das zweite Beispiel erzeugt ein Spiegel mit einem einzigen
      Laufwerk, kopiert dann die Daten von der alten Platte und fgt
      die alte Platte zum Spiegel hinzu.  Obwohl dieses Verfahren
      etwas komplizierter ist, wird nur ein neues Laufwerk
      bentigt.</para>

    <para>Traditionell sind die Laufwerke in einem Spiegel vom
      gleichen Modell und besitzen die gleiche Kapazitt.  Dies ist
      jedoch keine Voraussetzung fr &man.gmirror.8;.  Hier knnen
      Spiegel mit unterschiedlichen Kapazitten verwendet werden.  Die
      Kapazitt richtet sich dann nach dem kleinsten Laufwerk im
      Spiegel.  Zustzlicher Speicherplatz auf greren Laufwerken
      bleibt dann ungenutzt.  Werden spter weitere Laufwerke zum
      Spiegel hinzugefgt, mssen diese mindestens so viel Kapazitt
      haben wie das kleinste Laufwerk im Spiegel.</para>

    <warning>
      <para>Die hier gezeigten Verfahren lschen keine Daten.  Dennoch
	sollte, wie bei jeder greren Operation, zuerst eine
	vollstndige Sicherung erstellt werden.</para>
    </warning>

    <warning>
      <para>Obwohl in diesem Abschnitt &man.dump.8; zum Kopieren der
	Dateisysteme verwendet wird, funktioniert es nicht auf
	Dateisystemen mit aktiviertem Soft-Updates Journaling.  In
	&man.tunefs.8; finden Sie Informationen, wie Sie Soft-Updates
	Journaling erkennen und deaktivieren.</para>
    </warning>

    <sect2 xml:id="geom-mirror-metadata">
      <title>Probleme mit Metadaten</title>

      <para>Viele Plattensysteme speichern Metadaten am Ende der
	Platte.  Alte Metadaten sollten vor der Wiederverwendung in
	einem Spiegel gelscht werden, da die meisten Probleme aus
	zwei Arten von brig gebliebenen Metadaten resultieren:
	<acronym>GPT</acronym>-Partitionstabellen und alte Metadaten
	aus einem vorherigen Spiegel.</para>

      <para><acronym>GPT</acronym>-Metadaten knnen mit &man.gpart.8;
	gelscht werden.  Dieses Beispiel lscht sowohl die primren,
	als auch die <acronym>GPT</acronym>-Partitionstabelle von der
	Festplatte <filename>ada8</filename>:</para>

      <screen>&prompt.root; <userinput>gpart destroy -F ada8</userinput></screen>

      <para>Mit &man.gmirror.8; kann eine Platte aus einem aktiven
	Spiegel entfernt und gleichzeitig die Metadaten gelscht
	werden.  In diesem Beispiel wird die Platte
	<filename>ada8</filename> aus dem aktiven Spiegel
	<filename>gm4</filename> entfernt:</para>

      <screen>&prompt.root; <userinput>gmirror remove gm4 ada8</userinput></screen>

      <para>Wenn der Spiegel nicht aktiv ist, sich jedoch noch alte
	Metadaten auf der Festplatte befinden, benutzen Sie
	<command>gmirror clear</command>, um die Metadaten zu
	entfernen:</para>

      <screen>&prompt.root; <userinput>gmirror clear ada8</userinput></screen>

      <para>&man.gmirror.8; speichert einen Datenblock an Metadaten am
	Ende der Festplatte.  Da das
	<acronym>GPT</acronym>-Partitionschema die Metadaten auch am
	Ende der Platte speichert, wird es nicht empfohlen, mit
	&man.gmirror.8; einen Spiegel aus einem gesamten
	<acronym>GPT</acronym>-Datentrger zu erstellen.  In diesen
	Fllen sollte eine <acronym>MBR</acronym>-Partitionierung
	benutzt werden, weil hier nur eine Partitionstabelle am Anfang
	der Platte gespeichert wird und somit nicht mit den Metadaten
	des Spiegels im Konflikt steht.</para>
    </sect2>

    <sect2 xml:id="geom-mirror-two-new-disks">
      <title>Einen Spiegel mit zwei neuen Festplatten
	erstellen</title>

      <para>In diesem Beispiel wurde &os; bereits auf der vorhandenen
	Festplatte <filename>ada0</filename> installiert.  Zwei neue
	Platten, <filename>ada1</filename> und
	<filename>ada2</filename>, wurden bereits mit dem System
	verbunden.  Ein neuer Spiegel soll mit diesen beiden Platten
	erzeugt und verwendet werden, um die alte vorhandene Platte zu
	ersetzen.</para>

      <para>Das Kernelmodul <filename>geom_mirror.ko</filename> muss
	entweder in den Kernel eingebaut, oder zur Laufzeit geladen
	werden.  Sie knnen das Modul manuell laden:</para>

      <screen>&prompt.root; <userinput>gmirror load</userinput></screen>

      <para>Erstellen Sie den Spiegel mit den beiden neuen
	Festplatten:</para>

      <screen>&prompt.root; <userinput>gmirror label -v gm0 /dev/ada1 /dev/ada2</userinput></screen>

      <para><filename>gm0</filename> ist ein vom Benutzer gewhlter
	Name, der dem neuen Spiegel zugeordnet wird.  Nachdem der
	Spiegel gestartet wurde, erscheint dieser Gertename in
	<filename>/dev/mirror/</filename>.</para>

      <para><acronym>MBR</acronym>- und
	<application>bsdlabel</application>-Partitionstabellen knnen
	jetzt auf dem neuen Spiegel erzeugt werden.  Dieses Beispiel
	verwendet das herkmmliche Dateisystem-Layout fr
	<filename>/</filename>, swap, <filename>/var</filename>,
	<filename>/tmp</filename> und <filename>/usr</filename>.  Eine
	einzelne Root- und Swap-Partition wrde ebenfalls
	funktionieren.</para>

      <para>Die Partitionen auf dem Spiegel mssen nicht zwingend die
	gleiche Gre wie die auf der Festplatte haben, aber sie
	mssen gro genug sein, um alle Daten aufnehmen zu knnen, die
	bereits auf <filename>ada0</filename> gespeichert sind.</para>

      <screen>&prompt.root; <userinput>gpart create -s MBR mirror/gm0</userinput>
&prompt.root; <userinput>gpart add -t freebsd -a 4k mirror/gm0</userinput>
&prompt.root; <userinput>gpart show mirror/gm0</userinput>
=&gt;       63  156301423  mirror/gm0  MBR  (74G)
         63         63                    - free -  (31k)
        126  156301299                 1  freebsd  (74G)
  156301425         61                    - free -  (30k)</screen>

      <screen>&prompt.root; <userinput>gpart create -s BSD mirror/gm0s1</userinput>
&prompt.root; <userinput>gpart add -t freebsd-ufs  -a 4k -s 2g mirror/gm0s1</userinput>
&prompt.root; <userinput>gpart add -t freebsd-swap -a 4k -s 4g mirror/gm0s1</userinput>
&prompt.root; <userinput>gpart add -t freebsd-ufs  -a 4k -s 2g mirror/gm0s1</userinput>
&prompt.root; <userinput>gpart add -t freebsd-ufs  -a 4k -s 1g mirror/gm0s1</userinput>
&prompt.root; <userinput>gpart add -t freebsd-ufs  -a 4k mirror/gm0s1</userinput>
&prompt.root; <userinput>gpart show mirror/gm0s1</userinput>
=&gt;        0  156301299  mirror/gm0s1  BSD  (74G)
          0          2                      - free -  (1.0k)
          2    4194304                   1  freebsd-ufs  (2.0G)
    4194306    8388608                   2  freebsd-swap (4.0G)
   12582914    4194304                   4  freebsd-ufs  (2.0G)
   16777218    2097152                   5  freebsd-ufs  (1.0G)
   18874370  137426928                   6  freebsd-ufs  (65G)
  156301298          1                      - free -  (512B)</screen>

      <para>Damit von dem Spiegel gebootet werden kann, muss der
	Bootcode in den <acronym>MBR</acronym> installiert, ein
	bsdlabel erstellt und die aktive Partition gesetzt
	werden:</para>

      <screen>&prompt.root; <userinput>gpart bootcode -b /boot/mbr mirror/gm0</userinput>
&prompt.root; <userinput>gpart set -a active -i 1 mirror/gm0</userinput>
&prompt.root; <userinput>gpart bootcode -b /boot/boot mirror/gm0s1</userinput></screen>

      <para>Erstellen Sie die Dateisysteme auf dem neuen Spiegel und
	aktivieren Sie Soft-Updates:</para>

      <screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput>
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1d</userinput>
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1e</userinput>
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1f</userinput></screen>

      <para>Die Dateisysteme der vorhandenen Platte
	<filename>ada0</filename> knnen jetzt mit &man.dump.8; und
	&man.restore.8; auf den Spiegel kopiert werden.</para>

      <screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput>
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - / | (cd /mnt &amp;&amp; restore -rf -)</userinput>
&prompt.root; <userinput>mount /dev/mirror/gm0s1d /mnt/var</userinput>
&prompt.root; <userinput>mount /dev/mirror/gm0s1e /mnt/tmp</userinput>
&prompt.root; <userinput>mount /dev/mirror/gm0s1f /mnt/usr</userinput>
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /var | (cd /mnt/var &amp;&amp; restore -rf -)</userinput>
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /tmp | (cd /mnt/tmp &amp;&amp; restore -rf -)</userinput>
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr &amp;&amp; restore -rf -)</userinput></screen>

      <para>Fgen Sie die Dateisysteme fr den Spiegel in
	<filename>/etc/rc.conf</filename> hinzu:</para>

      <programlisting># Device          Mountpoint       FStype  Options Dump    Pass#
/dev/mirror/gm0s1a      /               ufs     rw       1       1
/dev/mirror/gm0s1b      none            swap    sw       0       0
/dev/mirror/gm0s1d      /var            ufs     rw       2       2
/dev/mirror/gm0s1e      /tmp            ufs     rw       2       2
/dev/mirror/gm0s1f      /usr            ufs     rw       2       2</programlisting>

      <para>Wenn das Modul <filename>geom_mirror.ko</filename> nicht
	im Kernel enthalten ist, knnen Sie
	<filename>/mnt/boot/loader.conf</filename> bearbeiten, damit
	das Modul beim Systemstart geladen wird:</para>

      <programlisting>geom_mirror_load="YES"</programlisting>

      <para>Starten Sie das System neu und berprfen Sie, ob
	alle Daten erfolgreich kopiert wurden.  Das
	<acronym>BIOS</acronym> wird den Spiegel vermutlich als
	zwei einzelne Laufwerke erkennen.  Da beide Laufwerke
	jedoch identisch sind, spielt es keine Rolle, welches
	Laufwerk zum Booten ausgewhlt wird.</para>

      <para>Falls es Probleme beim Booten gibt, lesen Sie den
	<xref linkend="gmirror-troubleshooting"/>.  Die alte
	Festplatte <filename>ada0</filename> kann vom System
	getrennt und als Offline-Sicherung aufbewahrt werden.</para>

      <para>Im laufenden Betrieb verhlt sich der Spiegel genau
	wie ein einzelnes Laufwerk.</para>
    </sect2>

    <sect2 xml:id="geom-mirror-existing-drive">
      <title>Einen Spiegel mit einem vorhandenen Laufwerk
	erstellen</title>

      <para>In diesem Beispiel wurde &os; bereits auf der
	Festplatte <filename>ada0</filename> installiert und eine
	weitere Platte, <filename>ada1</filename>, wurde an
	das System angeschlossen.  Zunchst wird ein Spiegel mit
	einer Festplatte erstellt, dann das vorhandene System auf
	den Spiegel kopiert.  Zuletzt wird die alte Festplatte in den
	Spiegel eingefgt.  Diese etwas komplexere Vorgehensweise ist
	erforderlich, da <command>gmirror</command> 512 Byte an
	Metadaten am Ende der Festplatte speichert, und die bestehende
	Platte, <filename>ada0</filename>, in der Regel den Platz
	bereits belegt hat.</para>

      <para>Laden Sie das Kernelmodul
	<filename>geom_mirror.ko</filename>:</para>

      <screen>&prompt.root; <userinput>gmirror load</userinput></screen>

      <para>Prfen Sie mit <command>diskinfo</command> die Mediengre
	der vorhandenen Festplatte:</para>

      <screen>&prompt.root; <userinput>diskinfo -v ada0 | head -n3</userinput>
/dev/ada0
        512             # sectorsize
        1000204821504   # mediasize in bytes (931G)</screen>

      <para>Jetzt knnen Sie den Spiegel auf der neuen Festplatte
	erzeugen.  Um sicherzustellen, dass die Kapazitt nicht grer
	ist, als die Kapazitt der vorhandenen Platte
	<filename>ada0</filename>, benutzen Sie &man.gnop.8; um eine
	Platte mit der exakt gleichen Gre zu imitieren.  Diese
	Platte speichert keine Daten und wird nur verwendet, um die
	Gre des Spiegels zu begrenzen.  &man.gmirror.8; wird die
	Kapazitt des Spiegels auf die Gre von
	<filename>gzero.nop</filename> beschrnken, auch wenn die neue
	Festplatte <filename>ada1</filename> mehr Platz zur Verfgung
	htte.  Beachten Sie, dass
	<replaceable>1000204821504</replaceable> in der zweiten Zeile
	der ermittelten Mediengre von <command>diskinfo</command>
	entspricht.</para>

      <screen>&prompt.root; <userinput>geom zero load</userinput>
&prompt.root; <userinput>gnop create -s 1000204821504 gzero</userinput>
&prompt.root; <userinput>gmirror label -v gm0 gzero.nop ada1</userinput>
&prompt.root; <userinput>gmirror forget gm0</userinput></screen>

      <para>Da <filename>gzero.nop</filename> keine Daten speichert,
	sieht der Spiegel sie als nicht verbunden an.  Der Spiegel ist
	so konfiguriert, dass er nicht verbundene Komponenten einfach
	<quote>vergisst</quote>.  Das Ergebnis ist ein Spiegel mit nur
	einer einzigen Platte, <filename>ada1</filename>.</para>

      <para>Sehen Sie sich nach der Erstellung von
	<filename>gm0</filename> die Partitionstabelle von
	<filename>ada0</filename> an.  Diese Ausgabe stammt von einer
	1&nbsp;TB Festplatte.  Falls am Ende der Platte noch freier
	Speicherplatz ist, kann der Inhalt von
	<filename>ada0</filename> direkt auf den Spiegel kopiert
	werden.</para>

      <para>Falls jedoch der gesamte Speicherplatz auf der Platte
	zugeordnet ist, dann gibt es keinen Platz mehr fr die 512
	Byte Metadaten fr den Spiegel am Ende der Platte, wie in
	dieser Auflistung zu sehen.</para>

      <screen>&prompt.root; <userinput>gpart show ada0</userinput>
=&gt;        63  1953525105        ada0  MBR  (931G)
          63  1953525105           1  freebsd  [active]  (931G)</screen>

      <para>In diesem Fall muss die Partitionstabelle bearbeitet
	werden, um die Kapazitt von <filename>mirror/gm0</filename>
	um einen Sektor zu reduzieren.  Dieses Verfahren wird spter
	erlutert.</para>

      <para>In beiden Fllen sollte die Partitionstabelle der primren
	Platte mit <command>gpart backup</command> gesichert
	werden.</para>

      <screen>&prompt.root; <userinput>gpart backup ada0 &gt; table.ada0</userinput>
&prompt.root; <userinput>gpart backup ada0s1 &gt; table.ada0s1</userinput></screen>

      <para>Diese Kommandos erstellen zwei Dateien,
	<filename>table.ada0</filename> und
	<filename>table.ada0s1</filename>.  Das Beispiel verwendet
	eine 1&nbsp;TB Festplatte:</para>

      <screen>&prompt.root; <userinput>cat table.ada0</userinput>
MBR 4
1 freebsd         63 1953525105   [active]</screen>

      <screen>&prompt.root; <userinput>cat table.ada0s1</userinput>
BSD 8
1  freebsd-ufs          0    4194304
2 freebsd-swap    4194304   33554432
4  freebsd-ufs   37748736   50331648
5  freebsd-ufs   88080384   41943040
6  freebsd-ufs  130023424  838860800
7  freebsd-ufs  968884224  984640881</screen>

      <para>Wenn am Ende der Platte kein Platz vorhanden ist, muss
	die Gre des Slice und der letzten Partition verringert
	werden.  Bearbeiten Sie die beiden Dateien, und verringern
	Sie die Gre der Slice und der Partition jeweils um eins.
	Dies bezieht sich auf die letzten Zahlen in der Liste.</para>

      <screen>&prompt.root; <userinput>cat table.ada0</userinput>
MBR 4
1 freebsd         63 <emphasis>1953525104</emphasis>   [active]</screen>

      <screen>&prompt.root; <userinput>cat table.ada0s1</userinput>
BSD 8
1  freebsd-ufs          0    4194304
2 freebsd-swap    4194304   33554432
4  freebsd-ufs   37748736   50331648
5  freebsd-ufs   88080384   41943040
6  freebsd-ufs  130023424  838860800
7  freebsd-ufs  968884224  <emphasis>984640880</emphasis></screen>

      <para>Wenn mindestens ein Sektor der Platte nicht zugewiesen
	wurde, kann die Platte ohne Modifikation verwendet
	werden.</para>

      <para>Jetzt kann die Partitionstabelle auf
	<filename>mirror/gm0</filename> wiederhergestellt
	werden:</para>

      <screen>&prompt.root; <userinput>gpart restore mirror/gm0 &lt; table.ada0</userinput>
&prompt.root; <userinput>gpart restore mirror/gm0s1 &lt; table.ada0s1</userinput></screen>

      <para>Prfen Sie die Partitionstabellen mit
	<command>gpart show</command>.  Dieses Beispiel nutzt
	<filename>gm0s1a</filename> fr <filename>/</filename>,
	<filename>gm0s1d</filename> fr <filename>/var</filename>,
	<filename>gm0s1e</filename> fr <filename>/usr</filename>,
	<filename>gm0s1f</filename> fr <filename>/data1</filename>
	und <filename>gm0s1g</filename> fr
	<filename>/data2</filename>.</para>

      <screen>&prompt.root; <userinput>gpart show mirror/gm0</userinput>
=&gt;        63  1953525104  mirror/gm0  MBR  (931G)
          63  1953525042           1  freebsd  [active]  (931G)
  1953525105          62              - free -  (31k)

&prompt.root; <userinput>gpart show mirror/gm0s1</userinput>
=&gt;         0  1953525042  mirror/gm0s1  BSD  (931G)
           0     2097152             1  freebsd-ufs  (1.0G)
     2097152    16777216             2  freebsd-swap  (8.0G)
    18874368    41943040             4  freebsd-ufs  (20G)
    60817408    20971520             5  freebsd-ufs  (10G)
    81788928   629145600             6  freebsd-ufs  (300G)
   710934528  1242590514             7  freebsd-ufs  (592G)
  1953525042          63                - free -  (31k)</screen>

      <para>Sowohl die Slice, als auch die letzte Partition, muss
	mindestens einen freien Block am Ende der Platte haben.</para>

      <para>Erstellen Sie Dateisysteme auf diesen neuen
	Partitionen:</para>

      <screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput>
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1d</userinput>
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1e</userinput>
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1f</userinput>
&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1g</userinput></screen>

      <para>Damit Sie von dem Spiegel booten knnen, mssen Sie den
	Bootcode in den <acronym>MBR</acronym> installieren, ein
	bsdlabel anlegen und das aktive Slice setzen:</para>

      <screen>&prompt.root; <userinput>gpart bootcode -b /boot/mbr mirror/gm0</userinput>
&prompt.root; <userinput>gpart set -a active -i 1 mirror/gm0</userinput>
&prompt.root; <userinput>gpart bootcode -b /boot/boot mirror/gm0s1</userinput></screen>

      <para>Bearbeiten Sie <filename>/etc/fstab</filename>, um die
	neuen Partitionen auf dem Spiegel nutzen zu knnen.  Speichern
	Sie zunchst eine Kopie der Datei unter
	<filename>/etc/fstab.orig</filename>:</para>

      <screen>&prompt.root; <userinput>cp /etc/fstab /etc/fstab.orig</userinput></screen>

      <para>Ersetzen Sie in <filename>/etc/fstab</filename>
	<filename>/dev/ada0</filename> durch
	<filename>mirror/gm0</filename>.</para>

      <programlisting># Device		Mountpoint	FStype	Options	Dump	Pass#
/dev/mirror/gm0s1a	/		ufs	rw	1	1
/dev/mirror/gm0s1b	none		swap	sw	0	0
/dev/mirror/gm0s1d	/var		ufs	rw	2	2
/dev/mirror/gm0s1e	/usr		ufs	rw	2	2
/dev/mirror/gm0s1f	/data1		ufs	rw	2	2
/dev/mirror/gm0s1g	/data2		ufs	rw	2	2</programlisting>

      <para>Wenn das Modul <filename>geom_mirror.ko</filename> nicht
	im Kernel enthalten ist, knnen Sie
	<filename>/boot/loader.conf</filename> bearbeiten, damit
	das Modul beim Systemstart geladen wird:</para>

      <programlisting>geom_mirror_load="YES"</programlisting>

      <para>Die Dateisysteme der ursprnglichen Platte knnen jetzt
	mit &man.dump.8; und &man.restore.8; auf den Spiegel kopiert
	werden.  Wenn Sie das Dateisystem mit
	<command>dump -L</command> sichern, wird zunchst ein Snapshot
	des Dateisystems erstellt, was einige Zeit dauern kann.</para>

      <screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput>
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - / | (cd /mnt &amp;&amp; restore -rf -)</userinput>
&prompt.root; <userinput>mount /dev/mirror/gm0s1d /mnt/var</userinput>
&prompt.root; <userinput>mount /dev/mirror/gm0s1e /mnt/usr</userinput>
&prompt.root; <userinput>mount /dev/mirror/gm0s1f /mnt/data1</userinput>
&prompt.root; <userinput>mount /dev/mirror/gm0s1g /mnt/data2</userinput>
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr &amp;&amp; restore -rf -)</userinput>
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /var | (cd /mnt/var &amp;&amp; restore -rf -)</userinput>
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /data1 | (cd /mnt/data1 &amp;&amp; restore -rf -)</userinput>
&prompt.root; <userinput>dump -C16 -b64 -0aL -f - /data2 | (cd /mnt/data2 &amp;&amp; restore -rf -)</userinput></screen>

      <para>Starten Sie das System neu und booten Sie von
	<filename>ada1</filename>.  Wenn alles funktioniert, wird
	das System von <filename>mirror/gm0</filename> booten,
	welches jetzt die gleichen Daten enthlt wie
	<filename>ada0</filename>.  Lesen Sie <xref
	  linkend="gmirror-troubleshooting"/>, falls es Probleme beim
	Booten gibt.</para>

      <para>An dieser Stelle besteht der Spiegel immer noch aus der
	einzelnen Platte <filename>ada1</filename>.</para>

      <para>Nachdem erfolgreich von <filename>mirror/gm0</filename>
	gebootet wurde, besteht der letzte Schritt darin,
	<filename>ada0</filename> in den Spiegel einzufgen.</para>

      <important>
	<para>Wenn Sie <filename>ada0</filename> in den Spiegel
	  einfgen, wird der Inhalt der Platte mit den Daten aus
	  dem Spiegel berschrieben.  Sie mssen sicherstellen, das
	  <filename>mirror/gm0</filename> den gleichen Inhalt wie
	  <filename>ada0</filename> hat, bevor Sie
	  <filename>ada0</filename> zum Spiegel hinzufgen.  Falls der
	  zuvor mit &man.dump.8; und &man.restore.8; kopierte Inhalt
	  nicht mit dem von <filename>ada0</filename> identisch ist,
	  machen Sie die nderungen an <filename>/etc/fstab</filename>
	  rckgngig, starten Sie das System neu und beginnen Sie die
	  Prozedur von vorn.</para>
      </important>

      <screen>&prompt.root; <userinput>gmirror insert gm0 ada0</userinput>
GEOM_MIRROR: Device gm0: rebuilding provider ada0</screen>

      <para>Die Synchronisation zwischen den beiden Platten wird
	direkt gestartet.  Verwenden Sie <command>gmirror
	  status</command> um den Fortschritt zu beobachten.</para>

      <screen>&prompt.root; <userinput>gmirror status</userinput>
      Name    Status  Components
girror/gm0  DEGRADED  ada1 (ACTIVE)
                      ada0 (SYNCHRONIZING, 64%)</screen>

      <para>Nach einer Weile wird die Wiederherstellung abgeschlossen
	sein.</para>

      <screen>GEOM_MIRROR: Device gm0: rebuilding provider ada0 finished.
&prompt.root; <userinput>gmirror status</userinput>
      Name    Status  Components
mirror/gm0  COMPLETE  ada1 (ACTIVE)
                      ada0 (ACTIVE)</screen>

      <para><filename>mirror/gm0</filename> besteht nun aus den beiden
	Platten <filename>ada0</filename> und
	<filename>ada1</filename>.  Der Inhalt der beiden Platten wird
	automatisch miteinander synchronisiert.  Im laufenden Betrieb
	verhlt sich <filename>mirror/gm0</filename> wie eine einzelne
	Festplatte.</para>
    </sect2>

    <sect2 xml:id="gmirror-troubleshooting">
      <title>Fehlerbehebung</title>

      <para>Falls das System nicht mehr startet, mssen
	mglicherweise die <acronym>BIOS</acronym>-Einstellungen
	gendert werden, um von dem neuen gespiegelten Laufwerk zu
	booten.  Beide Platten des Spiegels knnen zum Booten
	verwendet werden, da sie als Komponenten des Spiegels
	identische Daten enthalten.</para>

      <para>Wenn der Bootvorgang mit der folgenden Meldung abbricht,
	ist irgendwas mit dem Spiegel nicht in Ordnung:</para>

      <screen>Mounting from ufs:/dev/mirror/gm0s1a failed with error 19.

Loader variables:
  vfs.root.mountfrom=ufs:/dev/mirror/gm0s1a
  vfs.root.mountfrom.options=rw

Manual root filesystem specification:
  &lt;fstype&gt;:&lt;device&gt; [options]
      Mount &lt;device&gt; using filesystem &lt;fstype&gt;
      and with the specified (optional) option list.

    eg. ufs:/dev/da0s1a
        zfs:tank
        cd9660:/dev/acd0 ro
          (which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /)

  ?               List valid disk boot devices
  .               Yield 1 second (for background tasks)
  &lt;empty line&gt;    Abort manual input

mountroot&gt;</screen>

      <para>Dieses Problem kann durch ein nicht geladenes
	Kernelmodul <filename>geom_mirror.ko</filename> in
	<filename>/boot/loader.conf</filename> verursacht werden.
	Um das Problem zu beheben, booten Sie von einem
	&os;-Installationsmedium und whlen Sie
	<literal>Shell</literal> an der Eingabeaufforderung.  Laden
	Sie dann das Modul und hngen Sie den Spiegel ein:</para>

      <screen>&prompt.root; <userinput>gmirror load</userinput>
&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput></screen>

      <para>Bearbeiten Sie dann
	<filename>/mnt/boot/loader.conf</filename> und fgen Sie
	eine Zeile fr das Kernelmodul hinzu:</para>

      <programlisting>geom_mirror_load="YES"</programlisting>

      <para>Speichern Sie die Datei und starten Sie das System
	neu.</para>

      <para>Andere Probleme, die <errorname>error 19</errorname>
	verursachen knnen, sind nur mit mehr Aufwand zu beheben.
	Obwohl das System von <filename>ada0</filename> booten
	sollte, wird ein weiterer Prompt erscheinen, wenn
	<filename>/etc/fstab</filename> fehlerhaft ist.  Geben
	Sie am Loader-Prompt <literal>ufs:/dev/ada0s1a</literal> ein
	und drcken Sie <keycap>Enter</keycap>.  Machen Sie die
	nderungen an <filename>/etc/fstab</filename> rckgngig und
	hngen Sie anstelle des Spiegels die originale Festplatte
	(<filename>ada0</filename>) ein.  Starten Sie dann das
	System neu und versuchen Sie den Vorgang erneut.</para>

      <screen>Enter full pathname of shell or RETURN for /bin/sh:
&prompt.root; <userinput>cp /etc/fstab.orig /etc/fstab</userinput>
&prompt.root; <userinput>reboot</userinput></screen>
    </sect2>

    <sect2>
      <title>Wiederherstellung des Systems nach einem
	Plattenausfall</title>

      <para>Der Vorteil der Plattenspiegelung ist, dass eine Platte
	ausfallen kann, ohne dass Sie dabei Daten verlieren.  Falls
	<filename>ada0</filename> aus dem obigen Beispiel ausfllt,
	steht der Spiegel weiterhin zur Verfgung und bietet die Daten
	von der verbleibenden Platte <filename>ada1</filename>
	an.</para>

      <para>Um das ausgefallene Laufwerk zu ersetzen, muss das System
	heruntergefahren werden und das ausgefallene Laufwerk durch
	ein neues Laufwerk von gleicher oder grerer Kapazitt
	ersetzt werden.  Hersteller verwenden oft etwas
	willkrliche Werte fr die Kapazitt.  Der einzige Weg, um
	wirklich sicher zu sein, ist die Gesamtzahl der Sektoren von
	<command>diskinfo -V</command> zu vergleichen.  Ein Laufwerk
	mit grerer Kapazitt wird funktionieren, allerdings wird der
	zustzliche Platz ungenutzt bleiben.</para>

      <para>Nachdem der Rechner wieder eingeschaltet ist, wird der
	Spiegel im <quote>degraded</quote> Modus ausgefhrt werden.
	Der Spiegel wird angewiesen, Laufwerke zu vergessen, die noch
	nicht verbunden sind:</para>

      <screen>&prompt.root; <userinput>gmirror forget gm0</userinput></screen>

      <para>Alte Metadaten sollten von der Ersatzfestplatte nach den
	Anweisungen in <xref linkend="geom-mirror-metadata"/> gelscht
	werden.  Anschlieend kann die Ersatzfestplatte, in diesem
	Beispiel <filename>ada4</filename>, in den Spiegel eingefgt
	werden:</para>

      <screen>&prompt.root; <userinput>gmirror insert gm0 /dev/ada4</userinput></screen>

      <para>Die Wiederherstellung beginnt, sobald das neue Laufwerk in
	den Spiegel eingesetzt wird.  Das Kopieren der Daten vom
	Spiegel auf das neue Laufwerk kann eine Weile dauern.  Die
	Leistung des Spiegels ist whrend dieser Zeit stark reduziert,
	deswegen sollten neue Laufwerke idealerweise dann eingefgt
	werden, wenn der Rechner nicht bentigt wird.</para>

      <para>Der Fortschritt der Wiederherstellung kann mit
	<command>gmirror status</command> berwacht werden.  Whrend
	der Wiederherstellung ist der Status
	<computeroutput>DEGRADED</computeroutput>.  Wenn der Vorgang
	abgeschlossen ist, wechselt der Status zu
	<computeroutput>COMPLETE</computeroutput>.</para>
    </sect2>
  </sect1>

  <sect1 xml:id="geom-raid3">
    <info>

      <title><acronym>RAID</acronym>3 - Byte-Level Striping mit
	dedizierter Paritt</title>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Mark</firstname>
	    <surname>Gladman</surname>
	  </personname>
	  <contrib>Geschrieben von </contrib>
	</author>
	<author>
	  <personname>
	    <firstname>Daniel</firstname>
	    <surname>Gerzo</surname>
	  </personname>
	</author>
      </authorgroup>
      <authorgroup>
	<author>
	  <personname>
	    <firstname>Tom</firstname>
	    <surname>Rhodes</surname>
	  </personname>
	  <contrib>Basierend auf Dokumentation von </contrib>
	</author>
	<author>
	  <personname>
	    <firstname>Murray</firstname>
	    <surname>Stokely</surname>
	  </personname>
	</author>
      </authorgroup>
      <authorgroup>
	<author>
	  <personname>
	    <firstname>Bjrn</firstname>
	    <surname>Heidotting</surname>
	  </personname>
	  <contrib>bersetzt von </contrib>
	</author>
      </authorgroup>
    </info>

    <indexterm>
      <primary><acronym>GEOM</acronym></primary>
    </indexterm>
    <indexterm>
      <primary>RAID3</primary>
    </indexterm>

    <para><acronym>RAID</acronym>3 ist eine Methode, die mehrere
      Festplatten zu einem einzigen Volume mit einer dedizierten
      Parittsfestplatte kombiniert.  In einem
      <acronym>RAID</acronym>3-System werden die Daten in einzelne
      Bytes aufgeteilt und dann ber alle Laufwerke,
      mit Ausnahme der Parittsfestplatte, geschrieben.  Beim Lesen
      von Daten in einer <acronym>RAID</acronym>3 Implementierung
      werden alle Festplatten im Array parallel genutzt.  Die Leistung
      kann durch den Einsatz von mehreren Controllern weiter erhht
      werden.  Ein <acronym>RAID</acronym>3-Array hat eine
      Fehlertoleranz von 1 Laufwerk und bietet dabei eine Kapazitt
      von 1 - 1/n der Gesamtkapazitt der Laufwerke im Array, wobei
      n die Anzahl der Festplatten im Array darstellt.  So eine
      Konfiguration ist meistens fr die Speicherung von greren
      Dateien geeignet, wie beispielsweise Multimediadateien.</para>

    <para>Mindestens 3 Festplatten sind erforderlich, um ein
      <acronym>RAID</acronym>3 zu erstellen.  Jede Festplatte muss
      von der gleichen Gre sein, da die
      <acronym>I/O</acronym>-Anfragen fr Lesen oder Schreiben
      auf mehreren Festplatten parallel stattfinden.  Aufgrund der
      Beschaffenheit von <acronym>RAID</acronym>3, muss die Anzahl der
      Laufwerke 3, 5, 9, 17 bzw. 2^n + 1 sein.</para>

    <para>Dieser Abschnitt beschreibt, wie ein Software
      <acronym>RAID</acronym>3 auf einem &os;-System erstellt
      wird.</para>

    <note>
      <para>Obwohl es theoretisch mglich ist &os; von einem
	<acronym>RAID</acronym>3-Array zu booten, wird von solch
	einer ungewhnlichen Konfiguration dringend abgeraten.</para>
    </note>

    <sect2>
      <title>Ein dediziertes <acronym>RAID</acronym>3-Array
	erstellen</title>

      <para>In &os; wird die Untersttzung fr
	<acronym>RAID</acronym>3 ber die
	<acronym>GEOM</acronym>-Klasse &man.graid3.8; implementiert.
	Zum Erstellen eines dedizierten
	<acronym>RAID</acronym>3-Arrays sind folgende Schritte
	erforderlich.</para>

      <procedure>
	<step>
	  <para>Laden Sie zunchst das Modul
	    <filename>geom_raid3.ko</filename> mit einem der folgenden
	    Befehle:</para>

	  <screen>&prompt.root; <userinput>graid3 load</userinput></screen>

	  <para>oder:</para>

	  <screen>&prompt.root; <userinput>kldload geom_raid3</userinput></screen>
	</step>

	<step>
	  <para>Stellen Sie sicher, dass ein geeigneter Mountpunkt
	    existiert.  Dieser Befehl erstellt ein neues Verzeichnis,
	    welches als Mountpunkt verwendet werden kann:</para>

	  <screen>&prompt.root; <userinput>mkdir <replaceable>/multimedia</replaceable></userinput></screen>
	</step>

	<step>
	  <para>Bestimmen Sie die Gertenamen der Festplatten, die dem
	    Array hinzugefgt werden und erstellen Sie ein neues
	    <acronym>RAID</acronym>3 Gert.  Das letzte aufgefhrte
	    Gert wird als dediziertes Parittslaufwerk verwendet.
	    Dieses Beispiel verwendet drei unpartionierte
	    <acronym>ATA</acronym>-Platten:
	    <filename><replaceable>ada1</replaceable></filename> und
	    <filename><replaceable>ada2</replaceable></filename> fr
	    die Daten, sowie
	    <filename><replaceable>ada3</replaceable></filename> fr
	    die Paritt.</para>

	  <screen>&prompt.root; <userinput>graid3 label -v gr0 /dev/ada1 /dev/ada2 /dev/ada3</userinput>
Metadata value stored on /dev/ada1.
Metadata value stored on /dev/ada2.
Metadata value stored on /dev/ada3.
Done.</screen>
	</step>

	<step>
	  <para>Partitionieren Sie das neu erstelle Gert
	    <filename>gr0</filename> und erstellen Sie darauf
	    ein <acronym>UFS</acronym>-Dateisystem:</para>

	  <screen>&prompt.root; <userinput>gpart create -s GPT /dev/raid3/gr0</userinput>
&prompt.root; <userinput>gpart add -t freebsd-ufs /dev/raid3/gr0</userinput>
&prompt.root; <userinput>newfs -j /dev/raid3/gr0p1</userinput></screen>

	  <para>Viele Zahlen rauschen nun ber den Bildschirm und
	    nach einer gewissen Zeit ist der Vorgang abgeschlossen.
	    Das Volume wurde erstellt und kann jetzt in den
	    Verzeichnisbaum eingehangen werden:</para>

	  <screen>&prompt.root; <userinput>mount /dev/raid3/gr0p1 /multimedia/</userinput></screen>

	  <para>Das <acronym>RAID</acronym>3-Array ist nun
	    einsatzbereit.</para>
	</step>
      </procedure>

      <para>Weitere Konfigurationsschritte sind erforderlich, um die
	Einstellungen nach einem Systemneustart zu erhalten.</para>

      <procedure>
	<step>
	  <para>Das Modul <filename>geom_raid3.ko</filename> muss
	    geladen werden, bevor das Array eingehangen werden kann.
	    Damit das Kernelmodul automatisch beim Systemstart geladen
	    wird, muss die folgende Zeile in
	    <filename>/boot/loader.conf</filename> hinzugefgt
	    werden:</para>

	  <programlisting>geom_raid3_load="YES"</programlisting>
	</step>

	<step>
	  <para>Die folgenden Informationen ber das Volume mssen in
	    <filename>/etc/fstab</filename> hinzugefgt werden, um
	    das Dateisystem des Arrays automatisch beim Systemstart
	    zu aktivieren:</para>

	  <programlisting>/dev/raid3/gr0p1	/multimedia	ufs	rw	2	2</programlisting>
	</step>
      </procedure>
    </sect2>
  </sect1>

  <sect1 xml:id="geom-graid">
    <info>
      <title>Software <acronym>RAID</acronym></title>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Warren</firstname>
	    <surname>Block</surname>
	  </personname>
	  <contrib>Beigetragen von </contrib>
	</author>
      </authorgroup>
      <authorgroup>
	<author>
	  <personname>
	    <firstname>Bjrn</firstname>
	    <surname>Heidotting</surname>
	  </personname>
	  <contrib>bersetzt von </contrib>
	</author>
      </authorgroup>
    </info>

    <indexterm>
      <primary><acronym>GEOM</acronym></primary>
    </indexterm>
    <indexterm>
      <primary>Software RAID</primary>
      <secondary>Hardware RAID</secondary>
    </indexterm>

    <para>Einige Motherboards und Erweiterungskarten besitzen ein
      <acronym>ROM</acronym>, das dem Rechner erlaubt von einem
      <acronym>RAID</acronym>-Array zu booten.  Nach dem Booten wird
      der Zugriff auf das <acronym>RAID</acronym>-Array durch die
      Software auf dem Prozessor des Rechners abgewickelt.  Dieses
      <quote>Hardware-untersttzte
	Software-<acronym>RAID</acronym></quote> ist nicht abhngig
      von einem bestimmten Betriebssystem.  Sie funktionieren bereits,
      noch bevor das Betriebssystem geladen wird.</para>

    <para>Abhngig von der verwendeten Hardware werden mehrere Arten
      von <acronym>RAID</acronym> untersttzt.  Eine vollstndige
      Liste finden Sie in &man.graid.8;.</para>

    <para>&man.graid.8; bentigt das <filename>geom_raid.ko</filename>
      Kernelmodul, welches beginnend mit &os;&nbsp;9.1 im
      <filename>GENERIC</filename>-Kernel enthalten ist.  Bei Bedarf
      kann es manuell mit <command>graid load</command> geladen
      werden.</para>

    <sect2 xml:id="geom-raid-creating">
      <title>Ein Array erstellen</title>

      <para>Gerte mit Software-<acronym>RAID</acronym> haben oft ein
	Men, das ber eine bestimmte Tastenkombination beim Booten
	aufgerufen werden kann.  Das Men kann verwendet werden, um
	<acronym>RAID</acronym>-Arrays zu erstellen und zu lschen.
	Mit &man.graid.8; knnen Arrays auch direkt von der
	Kommandozeile erstellt werden.</para>

      <para><command>graid label</command> wird verwendet, um ein
	neues Array zu erstellen.  Das Motherboard in diesem Beispiel
	besitzt einen &intel; Software-<acronym>RAID</acronym>
	Chipsatz, so dass das Metadatenformat von &intel; angegeben
	wird.  Das neue Array bekommt den Namen (Label)
	<filename>gm0</filename>, verhlt sich als Spiegel
	(<acronym>RAID1</acronym>) und verwendet die Laufwerke
	<filename>ada0</filename> und
	<filename>ada1</filename>.</para>

      <caution>
	<para>Bei der Erstellung des Arrays wird etwas Platz auf den
	  Laufwerken berschrieben.  Sichern Sie zuvor alle
	  vorhandenen Daten!</para>
      </caution>

      <screen>&prompt.root; <userinput>graid label Intel gm0 RAID1 ada0 ada1</userinput>
GEOM_RAID: Intel-a29ea104: Array Intel-a29ea104 created.
GEOM_RAID: Intel-a29ea104: Disk ada0 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-a29ea104: Subdisk gm0:0-ada0 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-a29ea104: Array started.
GEOM_RAID: Intel-a29ea104: Volume gm0 state changed from STARTING to OPTIMAL.
Intel-a29ea104 created$
GEOM_RAID: Intel-a29ea104: Provider raid/r0 for volume gm0 created.</screen>

      <para>Eine Statusabfrage zeigt, dass der neue Spiegel
	einsatzbereit ist:</para>

      <screen>&prompt.root; <userinput>graid status</userinput>
   Name   Status  Components
raid/r0  OPTIMAL  ada0 (ACTIVE (ACTIVE))
                  ada1 (ACTIVE (ACTIVE))</screen>

      <para>Das Array-Gert erscheint in
	<filename>/dev/raid/</filename>.  Das erste Gert heit
	<filename>r0</filename>.  Falls weitere Gerte vorhanden sind
	heien diese <filename>r1</filename>, <filename>r2</filename>
	und so weiter.</para>

      <para>Das <acronym>BIOS</acronym>-Men einiger Gerte erstellt
	Arrays mit Sonderzeichen im Namen.  Um Probleme mit diesen
	Sonderzeichen zu vermeiden, werden einfache numerische Namen
	wie <filename>r0</filename> vergeben.  Um das tatschliche
	Label anzuzeigen, wie <filename>gm0</filename> im obigen
	Beispiel, benutzen Sie &man.sysctl.8;:</para>

      <screen>&prompt.root; <userinput>sysctl kern.geom.raid.name_format=1</userinput></screen>
    </sect2>

    <sect2 xml:id="geom-graid-volumes">
      <title>Mehrere Volumes</title>

      <para>Einige Software-<acronym>RAID</acronym> Gerte
	untersttzen mehr als ein <emphasis>Volume</emphasis> pro
	Array.  Volumes funktionieren wie Festplatten, dass heit der
	Platz auf den Laufwerken kann auf unterschiedliche Weise
	geteilt und genutzt werden.  Intels
	Software-<acronym>RAID</acronym> Gerte untersttzen
	beispielsweise zwei Volumes.  In diesem Beispiel wird ein
	40&nbsp;GB Spiegel verwendet um das Betriebssystem zu
	speichern, gefolgt von einem 20&nbsp;GB
	<acronym>RAID0</acronym> (Stripe) Volume fr die schnelle
	Speicherung von temporren Daten.</para>

      <screen>&prompt.root; <userinput>graid label -S 40G Intel gm0 RAID1 ada0 ada1</userinput>
&prompt.root; <userinput>graid add -S 20G gm0 RAID0</userinput></screen>

      <para>Volumes erscheinen unter <filename>/dev/raid/</filename>
	als zustzliche Eintrge
	<filename>r<replaceable>X</replaceable></filename>.  Ein
	Array mit Volumes wird als <filename>r0</filename> und
	<filename>r1</filename>.</para>

      <para>Lesen Sie &man.graid.8; um die Anzahl der Volumes zu
	ermitteln, die von den verschiedenen
	Software-<acronym>RAID</acronym> Gerten untersttzt
	wird.</para>
    </sect2>

    <sect2 xml:id="geom-graid-converting">
      <title>Ein einzelnes Laufwerk zu einem Spiegel
	konvertieren</title>

      <para>Unter bestimmten Umstnden ist es mglich, ein
	bestehendes Laufwerk ohne Neuformatierung zu einem
	&man.graid.8; Array zu konvertieren.  Um Datenverlust
	bei der Konvertierung zu vermeiden, mssen die vorhandenen
	Laufwerke folgende Mindestanforderungen erfllen:</para>

      <itemizedlist>
	<listitem>
	  <para>Das Laufwerk muss mit <acronym>MBR</acronym>
	    partitioniert werden.  <acronym>GPT</acronym> oder andere
	    Partitionierungsschemata funktionieren nicht, da durch
	    &man.graid.8; die Metadaten am Ende des Laufwerks
	    berschieben und beschdigt werden.</para>
	</listitem>

	<listitem>
	  <para>Am Ende des Laufwerks muss gengend freier Platz zur
	    Verfgung stehen, um die &man.graid.8; Metadaten zu
	    speichern.  Die Metadaten variieren in der Gre, es
	    werden jedoch mindestens 64&nbsp;MB freier Speicherplatz
	    empfohlen.</para>
	</listitem>
      </itemizedlist>

      <para>Wenn das Laufwerk diese Anforderungen erfllt, erstellen
	Sie zuerst eine vollstndige Sicherung.  Erzeugen Sie dann
	einen Spiegel mit diesem einen Laufwerk:</para>

      <screen>&prompt.root; <userinput>graid label Intel gm0 RAID1 ada0 NONE</userinput></screen>

      <para>Die Metadaten von &man.graid.8; werden in den ungenutzten
	Raum am Ende des Laufwerks geschrieben.  Ein zweites Laufwerk
	kann nun in den Spiegel eingefgt werden:</para>

      <screen>&prompt.root; <userinput>graid insert raid/r0 ada1</userinput></screen>

      <para>Die Daten von dem ersten Laufwerk werden direkt auf das
	zweite Laufwerk kopiert.  Der Spiegel wird im eingeschrnkten
	Zustand laufen, bis der Kopiervorgang abgeschlossen
	ist.</para>
    </sect2>

    <sect2 xml:id="geom-graid-inserting">
      <title>Neue Laufwerke zum Array hinzufgen</title>

      <para>Laufwerke in einem Array knnen fr ausgefallene oder
	fehlende Laufwerke eingesetzt werden.  Falls es keine
	ausgefallenen oder fehlenden Laufwerke gibt, wird das neue
	Laufwerk als Ersatz (<foreignphrase>Spare</foreignphrase>)
	verwendet.</para>

      <para>Das Array in diesem Beispiel beginnt sofort damit, die
	Daten auf das neu hinzugefgte Laufwerk zu kopieren.  Alle
	vorhandenen Daten auf dem neuen Laufwerk werden
	berschrieben.</para>

      <screen>&prompt.root; <userinput>graid insert raid/r0 ada1</userinput>
GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NONE to NEW.
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NEW to REBUILD.
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 rebuild start at 0.</screen>
    </sect2>

    <sect2 xml:id="geom-graid-removing">
      <title>Laufwerke aus dem Array entfernen</title>

      <para>Einzelne Laufwerke knnen permanent aus dem Array entfernt
	werden.  Die Metadaten werden dabei gelscht:</para>

      <screen>&prompt.root; <userinput>graid remove raid/r0 ada1</userinput>
GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from ACTIVE to OFFLINE.
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-[unknown] state changed from ACTIVE to NONE.
GEOM_RAID: Intel-a29ea104: Volume gm0 state changed from OPTIMAL to DEGRADED.</screen>
    </sect2>

    <sect2 xml:id="geom-graid-stopping">
      <title>Das Array anhalten</title>

      <para>Ein Array kann angehalten werden, ohne die Metadaten
	von den Laufwerken zu lschen.  Das Array wird wieder
	anlaufen, wenn das System neu gestartet wird.</para>

      <screen>&prompt.root; <userinput>graid stop raid/r0</userinput></screen>
    </sect2>

    <sect2 xml:id="geom-graid-status">
      <title>Den Status des Arrays berprfen</title>

      <para>Der Status des Arrays kann jederzeit berprft werden.
	Nachdem ein Laufwerk zum Array hinzugefgt wurde, werden die
	Daten vom ursprnglichen Laufwerk auf das neue Laufwerk
	kopiert:</para>

      <screen>&prompt.root; <userinput>graid status</userinput>
   Name    Status  Components
raid/r0  DEGRADED  ada0 (ACTIVE (ACTIVE))
                   ada1 (ACTIVE (REBUILD 28%))</screen>

      <para>Andere Arten von Arrays, wie <literal>RAID0</literal> oder
	<literal>CONCAT</literal>, werden den Status eines
	fehlgeschlagenen Laufwerks vielleicht nicht anzeigen.  Um
	diese teilweise ausgefallenen Arrays anzuzeigen, fgen Sie
	<option>-ga</option> hinzu:</para>

      <screen>&prompt.root; <userinput>graid status -ga</userinput>
          Name  Status  Components
Intel-e2d07d9a  BROKEN  ada6 (ACTIVE (ACTIVE))</screen>
    </sect2>

    <sect2 xml:id="geom-graid-deleting">
      <title>Arrays lschen</title>

      <para>Arrays werden zerstrt, indem alle Volumes gelscht
	werden.  Wenn das letzte Volume gelscht wird, wird das
	Array gestoppt und die Metadaten von den Laufwerken
	entfernt:</para>

      <screen>&prompt.root; <userinput>graid delete raid/r0</userinput></screen>
    </sect2>

    <sect2 xml:id="geom-graid-unexpected">
      <title>Unerwartete Arrays lschen</title>

      <para>Laufwerke knnen unerwartete &man.graid.8; Metadaten
	enthalten, entweder aus frherer Nutzung oder aus Tests des
	Herstellers.  &man.graid.8; wrde diese Metadaten erkennen und
	daraus ein Array erstellen, was den Zugriff auf die einzelnen
	Laufwerke beeintrchtigen wrde.  Um die unerwnschten
	Metadaten zu entfernen:</para>

      <procedure>
	<step>
	  <para>Booten Sie das System.  Im Boot-Men whlen Sie
	    <literal>2</literal> fr den Loader-Prompt.  Geben Sie
	    dann folgendes ein:</para>

	  <screen>OK <userinput>set kern.geom.raid.enable=0</userinput>
OK <userinput>boot</userinput></screen>

	  <para>Das System wird nun mit deaktiviertem &man.graid.8;
	    starten.</para>
	</step>

	<step>
	  <para>Sichern Sie alle Daten auf dem betroffenen
	    Laufwerk.</para>
	</step>

	<step>
	  <para>Zur Abhilfe kann auch die Array-Erkennung von
	    &man.graid.8; deaktiviert werden, indem</para>

	  <programlisting>kern.geom.raid.enable=0</programlisting>

	  <para>in <filename>/boot/loader.conf</filename> hinzugefgt
	    wird.</para>

	  <para>Um die &man.graid.8; Metadaten von dem entsprechenden
	    Laufwerk zu entfernen, booten Sie vom &os;
	    Installationsmedium und whlen Sie
	    <literal>Shell</literal> aus.  Benutzen Sie
	    <command>status</command>, um den Namen des Arrays zu
	    bestimmten, typischerweise
	    <literal>raid/r0</literal>:</para>

	  <screen>&prompt.root; <userinput>graid status</userinput>
   Name   Status  Components
raid/r0  OPTIMAL  ada0 (ACTIVE (ACTIVE))
                  ada1 (ACTIVE (ACTIVE))</screen>

	  <para>Lschen Sie das Volume:</para>

	  <screen>&prompt.root; <userinput>graid delete raid/r0</userinput></screen>

	  <para>Wiederholen Sie den Vorgang fr jedes Volume.  Nachdem
	    das letzte Volume gelscht wurde, wird das Volume
	    zerstrt.</para>

	  <para>Starten Sie das System neu und prfen die
	    Vollstndigkeit der Daten.  Falls erforderlich, mssen die
	    Daten aus der Sicherung wiederhergestellt werden.  Nachdem
	    die Metadaten entfernt wurden, kann auch der Eintrag
	    <literal>kern.geom.raid.enable=0</literal> aus
	    <filename>/boot/loader.conf</filename> entfernt
	    werden.</para>
	</step>
      </procedure>
    </sect2>
  </sect1>

  <sect1 xml:id="geom-ggate">
    <title><acronym>GEOM</acronym> Gate Netzwerk</title>

    <para><acronym>GEOM</acronym> untersttzt einen einfachen
      Mechanismus fr den Zugriff auf entfernte Gerte wie
      Festplatten, <acronym>CD</acronym>s und Dateien, durch die
      Verwendung des <acronym>GEOM</acronym> Gate Netzwerk Daemons,
      <application>ggated</application>.  Der Server-Dameon luft auf
      dem System, welches ein Gert anbietet und bearbeitet die
      <application>ggatec</application>-Anfragen der Clients.  Die
      Gerte sollten keine sensiblen Daten enthalten, da die
      Verbindung zwischen Client und Server nicht verschlsselt
      ist.</para>

    <para>hnlich wie bei <acronym>NFS</acronym>, das in <xref
	linkend="network-nfs"/> beschrieben ist, wird fr die
      Konfiguration von <application>ggated</application> eine
      Exportdatei verwendet.  Diese Datei legt fest, welche Systeme
      auf die exportierten Ressourcen zugreifen knnen und in welchem
      Umfang der Zugriff gestattet wird.  Um dem Client <systemitem
	class="ipaddress">192.168.1.5</systemitem> Lese- und
      Schreibzugriff auf die vierte Slice der ersten
      <acronym>SCSI</acronym>-Platte zu geben, erstellen Sie
      <filename>/etc/gg.exports</filename> mit folgender Zeile:</para>

    <programlisting>192.168.1.5 RW /dev/da0s4d</programlisting>

    <para>Bevor das Gert exportiert werden kann, mssen Sie
      sicherstellen, dass es nicht bereits gemountet ist.
      Anschlieend starten Sie
      <application>ggated</application>.</para>

    <screen>&prompt.root; <userinput>ggated</userinput></screen>

    <para>Es stehen mehrere Optionen bereit, mit denen zum Beispiel
      ein alternativer Port oder eine alternative Exportdatei
      festgelegt werden kann.  Weitere Einzelheiten finden Sie in
      &man.ggated.8;.</para>

    <para>Damit ein Client auf das exportierte Gert zugreifen kann,
      benutzten Sie <application>ggatec</application> zusammen mit der
      <acronym>IP</acronym>-Adresse des Servers und dem entsprechenden
      Gertenamen.  Wenn dies erfolgreich ist, zeigt dieser Befehl
      einen <literal>ggate</literal>-Gertenamen.  Hngen Sie dieses
      Gert in einen freien Mountpunkt ein.  Dieses Beispiel verbindet
      sich mit der Partition <filename>/dev/da0s4d</filename> auf
      <literal>192.168.1.1</literal> und hngt
      <filename>/dev/ggate0</filename> in <filename>/mnt</filename>
      ein:</para>

    <screen>&prompt.root; <userinput>ggatec create -o rw 192.168.1.1 /dev/da0s4d</userinput>
ggate0
&prompt.root; <userinput>mount /dev/ggate0 /mnt</userinput></screen>

    <para>Auf das Gert des Servers kann jetzt ber den Mountpunkt
      <filename>/mnt</filename> des Clients zugegriffen werden.
      Weitere Informationen ber <command>ggatec</command> und einige
      Anwendungsbeispiele finden Sie in &man.ggatec.8;.</para>

    <note>
      <para>Das Einhngen des Gertes wird scheitern, falls das Gert
	momentan entweder auf dem Server oder einem Client im Netzwerk
	gemountet ist.  Wenn ein gleichzeitiger Zugriff auf die
	Netzwerkressourcen bentigt wird, verwenden Sie stattdessen
	<acronym>NFS</acronym>.</para>
    </note>

    <para>Wenn das Gert nicht lnger gebraucht wird, kann es mit
      &man.umount.8; ausgehngt werden, so dass die Ressourcen fr
      andere Client wieder verfgbar sind.</para>
  </sect1>

  <sect1 xml:id="geom-glabel">
    <title>Das Labeln von Laufwerken</title>

    <indexterm>
      <primary><acronym>GEOM</acronym></primary>
    </indexterm>
    <indexterm>
      <primary>Disk Labels</primary>
    </indexterm>

    <para>Whrend der Initialisierung des Systems legt der
      &os;-Kernel fr jedes gefundene Gert Knotenpunkte
      an.  Diese Methode fr die berprfung auf
      vorhandene Gerte wirft einige Fragen auf.  Was passiert
      beispielsweise, wenn ein neues
      <acronym>USB</acronym>-Laufwerk hinzugefgt wird?
      Es ist sehr wahrscheinlich, dass ein
      Flash-Speicher-Gert den Gertenamen
      <filename>da0</filename> erhlt, whrend
      gleichzeitig das bisherige <filename>da0</filename>
      zu <filename>da1</filename> wird.  Dies verursacht
      Probleme beim Einhngen von Dateisystemen, wenn diese
      in <filename>/etc/fstab</filename> aufgefhrt sind und kann dazu
      fhren, dass das System nicht mehr startet.</para>

    <para>Eine Lsung fr dieses Problem ist das
      Aneinanderketten der <acronym>SCSI</acronym>-Gerte,
      damit ein neues Gert, welches der
      <acronym>SCSI</acronym>-Karte hinzugefgt wird,
      unbenutzte Gertenummern erhlt.  Aber was
      geschieht, wenn ein <acronym>USB</acronym>-Gert
      mglicherweise die primre
      <acronym>SCSI</acronym>-Platte ersetzt? Dies kann
      passieren, weil <acronym>USB</acronym>-Gerte
      normalerweise vor der <acronym>SCSI</acronym>-Karte
      geprft werden.  Eine Lsung ist das
      Hinzufgen dieser Gerte, nachdem das System
      gestartet ist.  Eine andere Lsung knnte sein,
      nur ein einzelnes <acronym>ATA</acronym>-Laufwerk zu
      nutzen und die <acronym>SCSI</acronym>-Gerte niemals
      in der <filename>/etc/fstab</filename> aufzufhren.</para>

    <para>Eine bessere Lsung ist die Verwendung von
      <command>glabel</command>, um die Laufwerke zu mit Labeln zu
      versehen und diese in <filename>/etc/fstab</filename> zu
      nutzen.  Da <command>glabel</command> seine Label im letzten
      Sektor jedes vorhandenen Datentrgers speichert, wird
      das Label persistent bleiben (auch ber Neustarts hinweg).
      Durch Nutzung dieses Labels als Gert kann das
      Dateisystem immer gemountet sein, unabhngig davon,
      durch welchen Gerte-Knotenpunkt auf ihn zugegriffen
      wird.</para>

    <note>
      <para><command>glabel</command> kann permanente (dauerhaft) und
	vorbergehende Label erstellen.  Aber nur dauerhafte
	Label bleiben konsistent ber Neustarts hinweg. Lesen
	Sie die &man.glabel.8; fr weitere Unterschiede zwischen den
	Label-Typen.</para>
    </note>

    <sect2>
      <title>Label-Typen und Beispiele</title>

      <para>Permanente Label knnen generische Label oder
	Dateisystem-Label sein.  Permanente Dateisystem-Label knnen
	mit &man.tunefs.8; oder &man.newfs.8; erzeugt werden.  Dieser
	Typ von Label wird in einem Unterverzeichnis von
	<filename>/dev</filename> angelegt und wird dem Dateisystem
	entsprechend benannt.
	<acronym>UFS</acronym>2-Dateisystem-Label werden zum Beispiel
	in <filename>/dev/ufs</filename> angelegt.  Permanente Label
	knnen auerdem durch den Befehl
	<command>glabel label</command> erzeugt werden.  Diese Label
	sind nicht dateisystemspezisch und werden im Unterverzeichnis
	<filename>/dev/label</filename> erzeugt.</para>

      <para>Temporre Label werden beim nchsten Systemstart zerstrt.
	Diese Label werden im Verzeichnis
	<filename>/dev/label</filename> erzeugt und sind ideal fr
	Testzwecke.  Ein temporres Label kann mit
	<command>glabel create</command> erzeugt werden.</para>

<!-- XXXTR: How do you create a file system label without running newfs
            or when there is no newfs (e.g.: cd9660)? -->

      <para>Um ein permanentes Label auf einem
	<acronym>UFS</acronym>2-Dateisystem ohne
	Lschung von Daten zu erzeugen, kann man folgenden
	Befehl verwenden:</para>

      <screen>&prompt.root; <userinput>tunefs -L <replaceable>home</replaceable> <replaceable>/dev/da3</replaceable></userinput></screen>

      <para>In <filename>/dev/ufs</filename> sollte nun ein Label
	vorhanden sein, welches zu <filename>/etc/fstab</filename>
	hinzugefgt werden kann:</para>

      <programlisting>/dev/ufs/home		/home            ufs     rw              2      2</programlisting>

      <note>
	<para>Das Dateisystem darf nicht gemountet sein beim
	  Versuch, <command>tunefs</command> auszufhren.</para>
      </note>

      <para>Nun kann das Dateisystem eingehngt werden:</para>

      <screen>&prompt.root; <userinput>mount /home</userinput></screen>

      <para>Von nun an kann der Gerte-Knotenpunkt sich ohne
	negative Effekte auf das System ndern, solange das
	Kernelmodul <filename>geom_label.ko</filename> beim
	Systemstart mittels <filename>/boot/loader.conf</filename>
	geladen wird oder die
	<literal>GEOM_LABEL</literal>-Kernel-Option aktiv ist.</para>

      <para>Dateisysteme knnen auch mit einem Standard-Label
	erzeugt werden (mittels des Flags <option>-L</option> in
	<command>newfs</command>).  Lesen Sie &man.newfs.8; fr
	weitere Informationen.</para>

      <para>Der folgende Befehl kann genutzt werden, um das Label
	zu beseitigen:</para>

      <screen>&prompt.root; <userinput>glabel destroy home</userinput></screen>

      <para>Das folgende Beispiel zeigt Ihnen, wie Sie Label fr
	die Partitionen einer Bootplatte erzeugen.</para>

      <example>
	<title>Die Partitionen einer Bootplatte labeln</title>

	<para>Durch das Erstellen von permanenten Labeln fr die
	  Partitionen einer Bootplatte sollte das System selbst dann
	  noch normal starten knnen, wenn Sie die Platte an einen
	  anderen Controller anschlieen oder in ein anderes System
	  installieren.  In diesem Beispiel nehmen wir an, dass nur
	  eine einzige <acronym>ATA</acronym>-Platte verwendet wird,
	  die das System derzeit als <filename>ad0</filename>
	  erkennt.  Weiters nehmen wir an, dass Sie das
	  Standard-Partionierungsschema von &os; vewendet haben und
	  die Platte daher die Dateisysteme <filename>/</filename>,
	  <filename>/var</filename>, <filename>/usr</filename> sowie
	  <filename>/tmp</filename> aufweist.  Zustzlich wurde eine
	  Swap-Partition angelegt.</para>

	<para>Starten Sie das System neu.  Am &man.loader.8;-Prompt
	  drcken Sie die Taste <keycap>4</keycap>, um in den
	  Single-User-Modus zu gelangen.  Dort fhren Sie die
	  folgenden Befehle aus:</para>

	<screen>&prompt.root; <userinput>glabel label rootfs /dev/ad0s1a</userinput>
GEOM_LABEL: Label for provider /dev/ad0s1a is label/rootfs
&prompt.root; <userinput>glabel label var /dev/ad0s1d</userinput>
GEOM_LABEL: Label for provider /dev/ad0s1d is label/var
&prompt.root; <userinput>glabel label usr /dev/ad0s1f</userinput>
GEOM_LABEL: Label for provider /dev/ad0s1f is label/usr
&prompt.root; <userinput>glabel label tmp /dev/ad0s1e</userinput>
GEOM_LABEL: Label for provider /dev/ad0s1e is label/tmp
&prompt.root; <userinput>glabel label swap /dev/ad0s1b</userinput>
GEOM_LABEL: Label for provider /dev/ad0s1b is label/swap
&prompt.root; <userinput>exit</userinput></screen>

	<para>Das System startet daraufhin in den Multi-User-Modus.
	  Nachdem der Startvorgang abgeschlossen ist, editieren Sie
	  <filename>/etc/fstab</filename> und ersetzen die
	  konventionellen Gertedateien durch die entsprechenden
	  Label.  Die modifizierte <filename>/etc/fstab</filename>
	  sollte wie folgt aussehen:</para>

	<programlisting># Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/label/swap         none            swap    sw              0       0
/dev/label/rootfs       /               ufs     rw              1       1
/dev/label/tmp          /tmp            ufs     rw              2       2
/dev/label/usr          /usr            ufs     rw              2       2
/dev/label/var          /var            ufs     rw              2       2</programlisting>

	<para>Starten Sie das System neu.  Treten keine Probleme auf,
	  wird das System normal hochfahren und Sie erhalten die
	  folgende Ausgabe, wenn Sie den Befehl
	  <command>mount</command> ausfhren:</para>

	<screen>&prompt.root; <userinput>mount</userinput>
/dev/label/rootfs on / (ufs, local)
devfs on /dev (devfs, local)
/dev/label/tmp on /tmp (ufs, local, soft-updates)
/dev/label/usr on /usr (ufs, local, soft-updates)
/dev/label/var on /var (ufs, local, soft-updates)</screen>
      </example>

      <para>&man.glabel.8; untersttzt einen Labeltyp fr
	<acronym>UFS</acronym>-Dateisysteme.  Dieser basiert auf der
	eindeutigen Dateisystem-ID <literal>ufsid</literal>.
	Derartige Label finden sich in
	<filename>/dev/ufsid</filename> und werden
	whrend des Systemstarts automatisch erzeugt.  Es ist
	mglich, diese <literal>ufsid</literal>-Label zum
	automatischen Einhngen von Partitionen in
	<filename>/etc/fstab</filename> einzusetzen.  Verwenden Sie
	<command>glabel status</command>, um eine Liste
	aller Dateisysteme und ihrer <literal>ufsid</literal>-Label
	zu erhalten:</para>

      <screen>&prompt.user; <userinput>glabel status</userinput>
                  Name  Status  Components
ufsid/486b6fc38d330916     N/A  ad4s1d
ufsid/486b6fc16926168e     N/A  ad4s1f</screen>

      <para>In diesem Beispiel reprsentiert
	<filename>ad4s1d</filename> das
	<filename>/var</filename>-Dateisystem,
	whrend <filename>ad4s1f</filename> dem
	<filename>/usr</filename>-Dateisystem
	entspricht.  Wenn Sie die angegebenen
	<literal>ufsid</literal>-Werte verwenden, knnen
	diese Dateisysteme durch die folgenden Eintrge in
	der Datei <filename>/etc/fstab</filename> gemountet
	werden:</para>

      <programlisting>/dev/ufsid/486b6fc38d330916        /var        ufs        rw        2      2
/dev/ufsid/486b6fc16926168e        /usr        ufs        rw        2      2</programlisting>

      <para>Jede Partition, die ein <literal>ufsid</literal>-Label
	aufweist, kann auf diese Art gemountet werden.  Dies hat den
	Vorteil, dass Sie die permanenten Label nicht manuell anlegen
	mssen, wobei sich die Platten nach wie vor ber
	gerteunabhngige Namen ansprechen und einhngen
	lassen.</para>
    </sect2>
  </sect1>

  <sect1 xml:id="geom-gjournal">
    <title>UFS Journaling in <acronym>GEOM</acronym></title>

    <indexterm>
      <primary><acronym>GEOM</acronym></primary>
    </indexterm>
    <indexterm>
      <primary>Journaling</primary>
    </indexterm>

    <para>&os; untersttzt Journaling fr
      <acronym>UFS</acronym>-Dateisysteme.  Diese Funktion wird ber
      das <acronym>GEOM</acronym>-Subsystem realisiert und kann
      ber das Werkzeug &man.gjournal.8; eingerichtet werden.  Im
      Gegensatz zu anderen Journaling-Dateisystemen arbeitet
      <command>gjournal</command> blockbasiert und wurde nicht als
      Teil des Dateisystems implementiert, sondern als
      <acronym>GEOM</acronym>-Erweiterung.</para>

    <para>Bei Journaling wird ein Protokoll ber alle
      Dateisystemtransaktionen angelegt, inklusive aller
      Vernderungen, aus denen ein kompletter Schreibvorgang besteht,
      bevor diese nderungen (Metadaten sowie tatschliche
      Schreibvorgnge) physisch auf der Festplatte ausgefhrt werden.
      Dieses Protokoll kann spter erneut aufgerufen werden, um diese
      Vorgnge zu wiederholen, damit Systeminkonsistenzen vermieden
      werden.</para>

    <para>Diese Technik bietet eine weitere Mglichkeit,
      sich vor Datenverlust und Dateisystem-Inkonsistenzen zu
      schtzen.  Im Gegensatz zu Soft Updates (die
      Metadaten-Aktualisierungen verfolgen und erzwingen) und
      Snapshots (die ein Image eines Dateisystems darstellen) wird
      bei Journaling ein tatschliches Protokoll in einem speziell
      dafr bereitgestellten Bereich der Festplatte gespeichert.  Um
      die Leistung zu optimieren, kann das Journal auf eine externe
      Platte ausgelagert werden.  In einem solchen Fall geben Sie die
      Gertedatei der Platte nach dem Gert an, fr das Sie Journaling
      aktivieren wollen.</para>

    <para>Der <filename>GENERIC</filename>-Kernel bietet Untersttzung
      fr <command>gjournal</command>.  Damit das Kernelmodul
      <filename>geom_journal.ko</filename> beim Booten automatisch
      geladen wird, fgen Sie folgende Zeile in
      <filename>/boot/loader.conf</filename> hinzu:</para>

    <programlisting>geom_journal_load="YES"</programlisting>

    <para>Wenn ein angepasster Kernel benutzt wird, stellen Sie
      sicher, dass folgende Zeile in der Kernelkonfigurationsdatei
      enthalten ist:</para>

    <programlisting>options     GEOM_JOURNAL</programlisting>

    <para>Sobald das Modul geladen ist, kann ein Journal auf einem
      neuen Dateisystem erstellt werden.  In diesem Beispiel ist
      <filename>da4</filename> die neue
      <acronym>SCSI</acronym>-Platte:</para>

    <screen>&prompt.root; <userinput>gjournal load</userinput>
&prompt.root; <userinput>gjournal label /dev/<replaceable>da4</replaceable></userinput></screen>

    <para>Diese Befehle laden das Modul und erstellen die Gertedatei
      <filename>/dev/da4.journal</filename> auf
      <filename>/dev/da4</filename>.</para>

    <para>Nun kann auf dem neuen Gert ein
      <acronym>UFS</acronym>-Dateisystem erstellt werden, welches dann
      in den Verzeichnisbaum eingehngt wird:</para>

    <screen>&prompt.root; <userinput>newfs -O 2 -J /dev/<replaceable>da4</replaceable>.journal</userinput>
&prompt.root; <userinput>mount /dev/<replaceable>da4</replaceable>.journal <replaceable>/mnt</replaceable></userinput></screen>

    <note>
      <para>Falls auf dem System mehrere Slices angelegt sind
	(beispielsweise <filename>ad4s1</filename> sowie
	<filename>ad4s2</filename>), wird
	<command>gjournal</command> fr jedes Slice ein
	Journal anlegen (also <filename>ad4s1.journal</filename>
	sowie <filename>ad4s2.journal</filename>).</para>
    </note>

    <para>Mit <command>tunefs</command> ist es auch mglich,
      Journaling auf bereits existierenden Dateisystemen zu
      aktivieren.  Machen Sie aber <emphasis>immer</emphasis> eine
      Sicherung der Daten, bevor Sie versuchen, ein existierendes
      Dateisystem zu ndern.  <command>gjournal</command> wird zwar
      den Vorgang abbrechen, wenn es das Journal nicht erzeugen kann,
      allerdings schtzt dies nicht vor Datenverlust durch einen
      fehlerhaften Einsatz von <command>tunefs</command>.  Weitere
      Informationen ber diese beiden Werkzeuge finden Sie in
      &man.gjournal.8; und &man.tunefs.8;.</para>

    <para>Es ist mglich, Journale auch fr die Bootplatte eines
      &os;-Systems zu verwenden.  Der Artikel <link
	xlink:href="&url.articles.gjournal-desktop.en;/article.html">
	Implementing UFS Journaling on a Desktop PC</link> enthlt
      eine ausfhrliche Anleitung zu diesem Thema.</para>
  </sect1>
</chapter>