GästebuchIhr Eintrag in unser Gästebuch KontaktNehmen Sie Kontakt mit den Autoren auf ArchivAlle Unixwerk- Artikel seit 2003
8. Oktober 2003

Installation von Slackware 9.1 auf gespiegelte Platten (Raid1/LVM)

Inhalt

  1. Einbau der Platten
  2. Slackware von CD starten
  3. Anlegen der Partitionen
  4. Raid-Devices anlegen
  5. Swap-Partition anlegen und aktivieren
  6. Slackware installieren
  7. Neues System von Platte starten
  8. Logical Volumes anlegen (Option LVM/LVM+)
  9. Dateisysteme in den LVs anlegen (Option LVM/LVM+)
  10. Dateisysteme umkopieren (Option LVM+)
  11. Fehlende Pakete nachinstallieren (Option LVM+)
  12. «/etc/fstab» anpassen
  13. Kernel-Konfiguration anpassen
  14. LILO-Konfiguration anpassen

 

Es folgt eine Schritt-für-Schritt-Anleitung zur Installation von Slackware 9.1 auf softwareseitg gespiegelte (System-)Platten. Optional werden auf (weiteren) gespiegelten Partitionen Volume Groups mit dem LVM (Option LVM) angelegt. Diese können auch Bereiche des Systems umfassen, z.B. /usr, /var, /home ... (Option LVM+)

 

I. Einbau der Platten

Sinnvollerweise werden die beiden Spiegel-Platten an verschiedene IDE-Kanäle gehängt; dies erhöht einerseits die Performance und andererseits die Verfügbarkeit, da Fehler auf einem IDE-Kanal (z.B. auch ein defektes Kabel) sich nicht auf beide Spiegel-Kopien auswirken. Unser Beispiel geht von jeweils einer Platte als Master auf beiden Kanälen (hda und hdc) aus. Das CD-Laufwerk wäre dann Slave auf dem ersten Kanal (hdb).

 

II. Slackware von CD starten

CD einlegen und den Rechner neu starten, so dass von CD gebootet wird. Einmal enter drücken, deutschen Tastaturtreiber auswählen und sich dann am login-Prompt als root (oder was auch immer) anmelden. Wir finden uns am Shell-Prompt wieder:

 slackware# _

An dieser Stelle wird normalerweise die Installationsprozedur aufgerufen - damit warten wir aber noch ein bisschen (=> VI. Slackware installieren)...

 

III. Anlegen der Partitionen

Wir gehen davon aus, dass die Platten fabrikneu sind und noch keine Partitionstabelle aufweisen; andernfalls muss diese zunächst gelöscht werden. Wir starten das Partitionierungstool zunächst für die erste Platte:

 slackware# cfdisk /dev/hda

Im Beispiel werden vier primäre Partitionen angelegt; die erste für /, die zweite für den swap-Bereich und zwei weitere für den Systembereich bzw. den Datenbereich. Als Partitionstyp wird für alle Bereiche fd gewählt. Dieser Typ ist für Linux-Software-Raid reserviert.

                                                                                

                                   cfdisk 2.12

                               Disk Drive: /dev/hda
                        Size: 123522416640 bytes, 123.5 GB
              Heads: 255   Sectors per Track: 63   Cylinders: 15017

     Name        Flags      Part Type  FS Type          [Label]        Size (MB)
  ------------------------------------------------------------------------------
     hda1        Boot        Primary   Linux raid autodetect              197.41  
     hda2                    Primary   Linux raid autodetect              518.20
     hda3                    Primary   Linux raid autodetect            22529.05
     hda4                    Primary   Linux raid autodetect           100274.39








      [Bootable]  [ Delete ]  [  Help  ]  [Maximize]  [ Print  ]
      [  Quit  ]  [  Type  ]  [ Units  ]  [ Write  ]

                  Toggle bootable flag of the current partition


Exakt dieselben Partitionen werden auf der zweiten Platte angelegt. Dazu wird wieder cfdisk gestartet:

 slackware# cfdisk /dev/hdc

 

IV. Raid-Devices anlegen

Nun werden die Raid-Devices angelegt; dazu legen wir eine kleine Tabelle im Verzeichnis /etc an:

 slackware# vi /etc/raidtab

mit folgendem Inhalt:

 /etc/raidtab
 raiddev /dev/md0
         raid-level              1
         nr-raid-disks           2
         nr-spare-disks          0
         persistent-superblock   1
         chunk-size              4

         device          /dev/hda1
         raid-disk               0
         device          /dev/hdc1
         raid-disk               1

 raiddev /dev/md1
         raid-level              1
         nr-raid-disks           2
         nr-spare-disks          0
         persistent-superblock   1
         chunk-size              4

         device          /dev/hda2
         raid-disk               0
         device          /dev/hdc2
         raid-disk               1

 raiddev /dev/md2
         raid-level              1
         nr-raid-disks           2
         nr-spare-disks          0
         persistent-superblock   1
         chunk-size              4

         device          /dev/hda3
         raid-disk               0
         device          /dev/hdc3
         raid-disk               1

 raiddev /dev/md3
         raid-level              1
         nr-raid-disks           2
         nr-spare-disks          0
         persistent-superblock   1
         chunk-size              4

         device          /dev/hda4
         raid-disk               0
         device          /dev/hdc4
         raid-disk               1

Nach Anlegen dieser Datei, können die Raids initialisiert werden; dafür muss nacheinander für jedes Raid-Array der Befehl mkraid abgesetzt werden:

 slackware# mkraid /dev/md0
 slackware# mkraid /dev/md1
 slackware# mkraid /dev/md2
 slackware# mkraid /dev/md3

 

V. Swap-Partition anlegen und aktivieren

Dummerweise erkennt das Slackware-Installationsprogramm keine Swap-Partitionen auf Raid-Devices, sodass wir die Swap-Partition per Hand formatieren und aktivieren müssen:

 slackware# mkswap /dev/md1
 slackware# swapon /dev/md1

 

VI. Slackware installieren

Möchte man die Raid-Partitionen direkt für die Dateisysteme verwenden, kann an dieser Stelle die ganz normale Installationsprozedur durchlaufen werden. Der Punkt "Swap Partition einrichten" muss aus oben genannten Gründen übersprungen werden. Der Installationsprozess wird -wie immer bei Slackware- durch den Start des setup-Programms gestartet:

 slackware# setup

Die Raid-Devices md0 - md1 werden als Ziel-Partitionen angeboten. /dev/md0 wird /, /dev/md1 wird ausgelassen (swap!), /dev/md2 und /dev/md3 können für weitere Dateisysteme vergeben werden: beispielsweise /usr und /home.

Option LVM
Möchte man dagegen den LVM für die Nicht-Systempartitionen verwenden, werden nur /dev/md0 als / und /dev/md2 als /usr (Beispiele) zur Installation freigegeben. Die Installationsroutinen werden im weiteren Verlauf wie oben durchlaufen.

Option LVM+
Möchte man den LVM bereits für Systembereiche verwenden (Beispiel: /usr, /var, /opt, /home) wird es kompliziert; da die nötigen LVM-Befehle während der Installation leider nicht zur Verfügung stehen. Man wird sich also mit einem Trick behelfen müssen. Mein Trick bestand darin, nur /dev/md0 als Installations-Zielpartition / auszuwählen und alle anderen Partitionen unberührt zu lassen.

Da /dev/md0 naturgemäß klein gewählt wurde, reicht der Platz nicht zur Installation des ganzen Systems. Schließlich soll der größte Teil ja eigentlich auf die LVM-verwalteten Plattenbereiche. Deshalb wird zu diesem Zeitpunkt nur das Nötigste installiert; dies sind aus den Disk-Serien a und ap die Pakete, die als "REQUIRED" gelten, und natürlich die «lvm»- und «raidtools» aus der Serie ap. Ich habe außerdem noch das Basis-TCP/IP-Paket aus der n-Serie installiert, damit ich die Netzwerk-Konfiguration gleich während der Installation durchführen konnte.

Mit der Installation weiterer Serien wartet man dann bis Punkt XI.

 

VII. Neues System von Platte starten

Wenn die Installationsprozedur erfolgreich durchlaufen ist, wird das System an dieser Stelle von der Platte neu gestartet. Man meldet sich an und führt die nötigen System-Konfigurationen durch. Falls der LVM nicht verwendet werden soll, geht's bei Punkt XII weiter.

 

VIII. Logical Volumes anlegen (Option LVM/LVM+)

Zunächst machen Sie aus den Partitionen md2 und md3 "Physical Volumes" im Sinne des LVM:

 darkstar# pvcreate /dev/md2
 darkstar# pvcreate /dev/md3

Nun legen Sie eine oder mehrere "Volume Groups" an:

 darkstar# vgcreate sysvg /dev/md2      <== Option LVM+
 darkstar# vgcreate datavg /dev/md3

In den VGs können dann die "Logical Volumes" angelegt werden, in der datavg (Option LVM und LVM+) z.B.:

 darkstar# lvcreate -L 8G -n home datavg

 lvcreate -- rounding size up to physical extent boundary
 lvcreate -- doing automatic backup of "datavg"
 lvcreate -- logical volume "/dev/datavg/home" successfully created
 darkstar# lvcreate -L 15G -n img datavg
 lvcreate -- rounding size up to physical extent boundary
 lvcreate -- doing automatic backup of "datavg"

 lvcreate -- logical volume "/dev/datavg/img" successfully created
           .
           .
           .

und in der sysvg (Option LVM+):


 darkstar# lvcreate -L 500M -n var sysvg
 lvcreate -- rounding size up to physical extent boundary
 lvcreate -- doing automatic backup of "sysvg"
 lvcreate -- logical volume "/dev/sysvg/var" successfully created
 darkstar# lvcreate -L 3G -n usr sysvg

 lvcreate -- rounding size up to physical extent boundary
 lvcreate -- doing automatic backup of "sysvg"
 lvcreate -- logical volume "/dev/sysvg/usr" successfully created
 darkstar# lvcreate -L 3G -n opt sysvg
 lvcreate -- rounding size up to physical extent boundary
 lvcreate -- doing automatic backup of "sysvg"

 lvcreate -- logical volume "/dev/sysvg/opt" successfully created

 

IX. Dateisysteme in den LVs anlegen (Option LVM/LVM+)

In den LVs können alle von Linux unterstützten Dateisysteme ganz normal angelegt werden (ext2, ext3, xfs, jfs, reiserfs). Ich empfehle ext3 oder xfs (mit xfs_growfs lässt sich ein Dateisystem nach Vergrößerung des LVs schnell nachziehen; dabei bleibt alles online). Beispielsweise:

 darkstar# mkfs.ext3 /dev/datavg/img
 mke2fs 1.34 (25-Jul-2003)
 Filesystem label=
 OS type: Linux
 Block size=1024 (log=0)
 Fragment size=1024 (log=0)
 32768 inodes, 131072 blocks
 6553 blocks (5.00%) reserved for the super user
 First data block=1
 16 block groups
 8192 blocks per group, 8192 fragments per group
 2048 inodes per group
 Superblock backups stored on blocks: 
         8193, 24577, 40961, 57345, 73729

 Writing inode tables: done                            
 Creating journal (4096 blocks): done
 Writing superblocks and filesystem accounting information: done

 This filesystem will be automatically checked every 26 mounts or
 180 days, whichever comes first.  Use tune2fs -c or -i to override.
           .
           .
           .

 

X. Dateisysteme umkopieren (Option LVM+)

Erinnern Sie sich? Wir hatten das komplette System zunächst auf /dev/md0 installiert (=> VI Slackware installieren). Darunter auch Verzeichnisbäume, für die eigentlich LVM-verwaltete Plattenbereiche vorgesehen sind. Diese müssen nun umkopiert werden. Im Beispiel wollen wir die /var-, /usr- und /home-Bäume auf den LVM-Bereich kopieren. Dafür vorgesehen seien die LVs

 /dev/sysvg/usr
 /dev/sysvg/var
 /dev/datavg/home
die wir alle unter IX formatiert hatten. Diese werden zunächst in den Verzeichnisbaum eingehängt:

 darkstar# mkdir /_usr /_var /_home
 darkstar# mount -t ext3 /dev/sysvg/usr /_usr
 darkstar# mount -t ext3 /dev/sysvg/var /_var
 darkstar# mount -t ext3 /dev/datavg/home /_home

Nun kann die Umkopieraktion gestartet werden:

 darkstar# cd /usr && tar cpf - . | ( cd /_usr && tar xvpf - )
 darkstar# cd /var && tar cpf - . | ( cd /_var && tar xvpf - )
 darkstar# cd /home && tar cpf - . | ( cd /_home && tar xvpf - )

Nach dem Umkopieren werden die alten Verzeichnisse gelöscht; und die neuen LVs stattdessen eingehängt:

 darkstar# umount /_usr
 darkstar# mv /usr /.usr
 darkstar# mkdir /usr
 darkstar# mount -t ext3 /dev/sysvg/usr /usr
 darkstar# rm -rf /.usr
 darkstar# rmdir /_usr

 darkstar# umount /_var
 darkstar# mv /var /.var
 darkstar# mkdir /var
 darkstar# mount -t ext3 /dev/sysvg/var /var
 darkstar# rm -rf /.var
 darkstar# rmdir /_var

 darkstar# umount /_home
 darkstar# mv /home /.home
 darkstar# mkdir /home
 darkstar# mount -t ext3 /dev/datavg/home /home
 darkstar# rm -rf /.home
 darkstar# rmdir /_home

Jetzt sind wir soweit: Wir haben Platz und können...

 

XI. Fehlende Pakete nachinstallieren (Option LVM+)

Falls Sie unter VI aus Platzmangel nicht alles installieren konnten, holen Sie es jetzt nach. Auf der Slackware-CD befinden sich alle Disk-Serien im Verzeichnis slackware:

a/  ap/  d/  e/  f/  k/  l/  n/  t/  tcl/  x/  xap/  y/
In jedem dieser Unterverzeichnisse befindet sich ein Skript "install-packages", mit dem die Pakete nachinstalliert werden können. Dafür müssen Sie die Ausführungsberechtigung auf der CD haben (mount -o exec /mnt/cdrom).

 

XII. «/etc/fstab» anpassen

Eine Datei /etc/fstab wird schon während der Installation angelegt. Sie enthält aber noch keinen Eintrag für den swap-Bereich (=> V. Swap-Partition anlegen und aktivieren). Fügen Sie also folgende Zeile hinzu:

 /dev/md1         swap         swap     defaults   0   0

Option LVM und LVM+:
Für die LVM-verwalteten Plattenbereiche muss jeweils ein Eintrag zur Datei /etc/fstab der Form

 /dev/datavg/home /home        ext3     defaults   1   2

hinzugefügt werden.

 

XIII. Kernel-Konfiguration anpassen

Zu diesem Zeitpunkt läuft das System noch mit dem Installations-Kernel. Wenn Sie damit zufrieden sind, ist jetzt alles abgeschlossen. Falls Sie aber einen eigenen, angepassten Kernel übersetzen möchten, beachten Sie, dass folgende Punkte in der Kernel-Konfiguration angewählt werden müssen

Kernel-Konfiguration (Ausschnitt):
Multi-device support (RAID and LVM)  --->

  +-+-------------------------------------------------------------------------+-+   
  | |         [*] Multiple devices driver support (RAID and LVM)              | |   
  | |         <*>  RAID support                                               | |   
  | |         <*>   Linear (append) mode                                      | |   
  | |         < >   RAID-0 (striping) mode                                    | |   
  | |         <*>   RAID-1 (mirroring) mode                                   | |   
  | |         < >   RAID-4/RAID-5 mode                                        | |   
  | |         < >   Multipath I/O support                                     | |   
  | |         <*>  Logical volume manager (LVM) support                       | |   

 

XIV. LILO-Konfiguration anpassen

Die LILO-Konfiguration, so wie sie während der Installation angelegt wurde, kann weigehend beibehalten werden. Die Zeile "boot=/dev/hda" kann gelöscht werden (stört aber auch nicht weiter). Ein Eintrag der Form

 /etc/lilo.conf (Ausschnitt)
 # Linux bootable partition config begins
 image = /vmlinuz
   root = /dev/md0
   label = Linux
   read-only
 # Linux bootable partition config ends

wurde bereits während der Installation angelegt. Eigentlich muss der LILO nur noch auf die zweite Platte geschrieben werden. Wir schreiben LILO an dieser Stelle auf beide Platten, sicher ist sicher:

 darkstar# lilo -b /dev/hda

 Added Linux *
 darkstar# lilo -b /dev/hdc
 Warning: /dev/hdc is not on the first disk
 Warning: The boot sector and map file are on different disks.
 Added Linux *

So gelangt der Linux Loader in den Master-Boot-Record beider Platten und das System bootet beim Ausfall einer Platte von der anderen.