Umgang mit redundanten Laufwerken (GRUB2): Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(Initial)
 
K (Bitte um Review)
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{UnderConstruction}}
+
{{Review|Kompletter Artikel}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 07:21, 19. Dez. 2013 (CET)
  
 +
[[Bild:DeviceGraphGRUB2Tests.png|right]]
 
An dieser Stelle soll der Umgang von [[GRUB 2]] mit redundanten Laufwerken untersucht werden.
 
An dieser Stelle soll der Umgang von [[GRUB 2]] mit redundanten Laufwerken untersucht werden.
  
Bei Installationen mit dem Anspruch auf hohe Verfügbarkeit werden Festplatten in sogenannten [[RAID]]-Arrays gespiegelt. Dabei wird der Inhalt der beiteiligten Devices ständig synchron gehalten. Für den Fall, dass eine Festplatte versagt, liegen die Daten verlässlich noch an anderer Stelle vor und das System sollte idealerweise in seiner Funktionalität nicht beeinträchtigt sein.
+
Bei Installationen mit dem Anspruch auf hohe Verfügbarkeit werden Festplatten in sogenannten [[RAID]]-Arrays gespiegelt. Dabei wird der Inhalt der beteiligten Devices ständig synchron gehalten. Für den Fall, dass eine Festplatte versagt, liegen die Daten verlässlich noch an anderer Stelle vor und das System sollte idealerweise in seiner Funktionalität nicht beeinträchtigt sein.
  
=Systembeschreibung=
 
 
Im Folgenden wurde für Tests eine virtuelle Umgebung innerhalb von [[VirtualBox]] aufgesetzt. Sie umfasst 2 Festplatten, welche per ''Linux Software Raid'' ([[mdadm]]) zu zwei [[RAID1]]-Verbünden zusammengefasst sind. Ein Verbund wird als Boot-Device verwendet, der andere beinhaltet den ganzen Rest in einem gecrypteten Container ([[dm-crypt]]). Die weitere Partitionierung erfolgt über [[LVM]].
 
Im Folgenden wurde für Tests eine virtuelle Umgebung innerhalb von [[VirtualBox]] aufgesetzt. Sie umfasst 2 Festplatten, welche per ''Linux Software Raid'' ([[mdadm]]) zu zwei [[RAID1]]-Verbünden zusammengefasst sind. Ein Verbund wird als Boot-Device verwendet, der andere beinhaltet den ganzen Rest in einem gecrypteten Container ([[dm-crypt]]). Die weitere Partitionierung erfolgt über [[LVM]].
  
Als Betriebssystem wird [[OpenSUSE]] 13.1 verwendet. Bei der Installation wurde GRUB2 in den [[MBR]] geschrieben.
+
Das gewählte Partitionierungslayout wird im Diagramm auf der rechten Seite verdeutlicht.
  
Partitionierung:
+
=Ergebnisse mit unterschiedlichen Distributionen=
<pre>
+
==Testfälle==
localhost:~ # lsblk
+
*Test 1: Boot-Partitionen im RAID abschalten
NAME                MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
+
:Nacheinander werden die Boot-Partitionen im RAID deaktiviert. Mit diesem Test soll ein Defekt explizit dieser Komponente simuliert werden. Dies wird erreicht durch ein Setzen des Parameters 'faulty'.
sda                  8:0    0    8G  0 disk 
+
*Test 2: Festplatten entfernen
├─sda1                8:1   0  509M  0 part 
+
:Zur Simulation einer ausgefallenen Festplatte wurde vor dem Start jeweils eine Festplatte aus der Konfiguration der virtuellen Maschine entfernt.
│ └─md0              9:0    0  509M  0 raid1 /boot
 
└─sda2                8:2    0  7.5G  0 part 
 
  └─md1              9:1    0  7.5G  0 raid1
 
    └─cr_md1        253:0    0  7.5G  0 crypt
 
      ├─system-root 253:1    0  6.5G  0 lvm  /
 
      └─system-swap 253:2   0    1G  0 lvm  [SWAP]
 
sdb                  8:16  0    8G  0 disk 
 
├─sdb1                8:17  0  509M  0 part 
 
│ └─md0              9:0    0  509M  0 raid1 /boot
 
└─sdb2                8:18  0  7.5G  0 part 
 
  └─md1              9:1    0  7.5G  0 raid1
 
    └─cr_md1        253:0    0  7.5G  0 crypt
 
      ├─system-root 253:1    0  6.5G  0 lvm  /
 
      └─system-swap 253:2    0    1G  0 lvm  [SWAP]
 
</pre>
 
  
Zustand des Arrays:
+
==Übersicht==
<pre>
+
{| class="wikitable" style="text-align:center"
localhost:~ # cat /proc/mdstat
+
|+
Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [linear]
+
|-
md0 : active raid1 sda1[0] sdb1[1]
+
! Testcase || OpenSUSE 13.1 !! Debian 7.3
      521152 blocks super 1.0 [2/2] [UU]
+
|-
      bitmap: 0/1 pages [0KB], 65536KB chunk
+
| Deaktivierung sda1 || OK || OK
 +
|-
 +
| Deaktivierung sdb1 || OK || OK
 +
|-
 +
| Deaktivierung sda  || Fehler || OK (1)
 +
|-
 +
| Deaktivierung sdb  || Fehler || OK
 +
|-
 +
|}
 +
(1): Funktionierte nicht out-of-the-box nach Installation, konnte aber manuell korrigiert werden.
  
md1 : active raid1 sda2[0] sdb2[1]
+
==Detailierte Beschreibungen der Testläufe==
      7866304 blocks super 1.0 [2/2] [UU]
+
*[[Umgang mit redundanten Laufwerken unter OpenSUSE 13.1 (GRUB2)]]
      bitmap: 1/1 pages [4KB], 65536KB chunk
+
*[[Umgang mit redundanten Laufwerken unter Debian 7.3 (GRUB2)]]
  
unused devices: <none>
+
=Links=
</pre>
+
*[[Partitionierung visualisieren]]
 
 
Details zum RAID:
 
<pre>
 
localhost:~ # mdadm -Evvs
 
mdadm: No md superblock detected on /dev/sr0.
 
mdadm: No md superblock detected on /dev/md0.
 
mdadm: No md superblock detected on /dev/dm-2.
 
mdadm: No md superblock detected on /dev/dm-1.
 
mdadm: No md superblock detected on /dev/dm-0.
 
mdadm: No md superblock detected on /dev/md1.
 
/dev/sdb2:
 
          Magic : a92b4efc
 
        Version : 1.0
 
    Feature Map : 0x1
 
    Array UUID : cbb0a19a:3ab9c866:a55c498b:dad77155
 
          Name : linux:1
 
  Creation Time : Thu Dec 12 21:41:51 2013
 
    Raid Level : raid1
 
  Raid Devices : 2
 
 
 
Avail Dev Size : 15732704 (7.50 GiB 8.06 GB)
 
    Array Size : 7866304 (7.50 GiB 8.06 GB)
 
  Used Dev Size : 15732608 (7.50 GiB 8.06 GB)
 
  Super Offset : 15732720 sectors
 
  Unused Space : before=0 sectors, after=96 sectors
 
          State : clean
 
    Device UUID : 3643b447:54e45c14:3ffbebc4:47a1727e
 
 
 
Internal Bitmap : -16 sectors from superblock
 
    Update Time : Fri Dec 13 19:37:03 2013
 
  Bad Block Log : 512 entries available at offset -8 sectors
 
      Checksum : 484ff8f3 - correct
 
        Events : 155
 
 
 
 
 
  Device Role : Active device 1
 
  Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
 
/dev/sdb1:
 
          Magic : a92b4efc
 
        Version : 1.0
 
    Feature Map : 0x1
 
    Array UUID : ce6547f1:6bcb31bc:02c20a67:2587a62a
 
          Name : linux:0
 
  Creation Time : Thu Dec 12 21:41:50 2013
 
    Raid Level : raid1
 
  Raid Devices : 2
 
 
 
Avail Dev Size : 1042400 (509.07 MiB 533.71 MB)
 
    Array Size : 521152 (509.02 MiB 533.66 MB)
 
  Used Dev Size : 1042304 (509.02 MiB 533.66 MB)
 
  Super Offset : 1042416 sectors
 
  Unused Space : before=0 sectors, after=96 sectors
 
          State : clean
 
    Device UUID : c37e1f95:4d6611e3:a7046773:e84fa160
 
 
 
Internal Bitmap : -16 sectors from superblock
 
    Update Time : Fri Dec 13 19:17:35 2013
 
  Bad Block Log : 512 entries available at offset -8 sectors
 
      Checksum : 4f7ccd48 - correct
 
        Events : 21
 
 
 
 
 
  Device Role : Active device 1
 
  Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
 
/dev/sdb:
 
  MBR Magic : aa55
 
Partition[0] :      1042432 sectors at        2048 (type fd)
 
Partition[1] :    15732736 sectors at      1044480 (type fd)
 
/dev/sda2:
 
          Magic : a92b4efc
 
        Version : 1.0
 
    Feature Map : 0x1
 
    Array UUID : cbb0a19a:3ab9c866:a55c498b:dad77155
 
          Name : linux:1
 
  Creation Time : Thu Dec 12 21:41:51 2013
 
    Raid Level : raid1
 
  Raid Devices : 2
 
 
 
Avail Dev Size : 15732704 (7.50 GiB 8.06 GB)
 
    Array Size : 7866304 (7.50 GiB 8.06 GB)
 
  Used Dev Size : 15732608 (7.50 GiB 8.06 GB)
 
  Super Offset : 15732720 sectors
 
  Unused Space : before=0 sectors, after=96 sectors
 
          State : clean
 
    Device UUID : 3a81e6b4:ea6a410b:cc3668e9:26fc95dc
 
 
 
Internal Bitmap : -16 sectors from superblock
 
    Update Time : Fri Dec 13 19:37:03 2013
 
  Bad Block Log : 512 entries available at offset -8 sectors
 
      Checksum : 2f0653f9 - correct
 
        Events : 155
 
 
 
 
 
  Device Role : Active device 0
 
  Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
 
/dev/sda1:
 
          Magic : a92b4efc
 
        Version : 1.0
 
    Feature Map : 0x1
 
    Array UUID : ce6547f1:6bcb31bc:02c20a67:2587a62a
 
          Name : linux:0
 
  Creation Time : Thu Dec 12 21:41:50 2013
 
    Raid Level : raid1
 
  Raid Devices : 2
 
 
 
Avail Dev Size : 1042400 (509.07 MiB 533.71 MB)
 
    Array Size : 521152 (509.02 MiB 533.66 MB)
 
  Used Dev Size : 1042304 (509.02 MiB 533.66 MB)
 
  Super Offset : 1042416 sectors
 
  Unused Space : before=0 sectors, after=96 sectors
 
          State : clean
 
    Device UUID : d3a6b43b:ec7adf57:042686a4:f665aa63
 
 
 
Internal Bitmap : -16 sectors from superblock
 
    Update Time : Fri Dec 13 19:17:35 2013
 
  Bad Block Log : 512 entries available at offset -8 sectors
 
      Checksum : 9f084160 - correct
 
        Events : 21
 
 
 
 
 
  Device Role : Active device 0
 
  Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
 
/dev/sda:
 
  MBR Magic : aa55
 
Partition[0] :      1042432 sectors at        2048 (type fd)
 
Partition[1] :    15732736 sectors at      1044480 (type fd)
 
</pre>
 
 
 
Diese grub.cfg wurde bei der Installation geschrieben:
 
<pre>
 
#
 
# DO NOT EDIT THIS FILE
 
#
 
# It is automatically generated by grub2-mkconfig using templates
 
# from /etc/grub.d and settings from /etc/default/grub
 
#
 
 
 
### BEGIN /etc/grub.d/00_header ###
 
if [ -s $prefix/grubenv ]; then
 
  load_env
 
fi
 
if [ "${next_entry}" ] ; then
 
  set default="${next_entry}"
 
  set next_entry=
 
  save_env next_entry
 
  set boot_once=true
 
else
 
  set default="${saved_entry}"
 
fi
 
 
 
if [ x"${feature_menuentry_id}" = xy ]; then
 
  menuentry_id_option="--id"
 
else
 
  menuentry_id_option=""
 
fi
 
 
 
export menuentry_id_option
 
 
 
if [ "${prev_saved_entry}" ]; then
 
  set saved_entry="${prev_saved_entry}"
 
  save_env saved_entry
 
  set prev_saved_entry=
 
  save_env prev_saved_entry
 
  set boot_once=true
 
fi
 
 
 
function savedefault {
 
  if [ -z "${boot_once}" ]; then
 
    saved_entry="${chosen}"
 
    save_env saved_entry
 
  fi
 
}
 
 
 
function load_video {
 
  if [ x$feature_all_video_module = xy ]; then
 
    insmod all_video
 
  else
 
    insmod efi_gop
 
    insmod efi_uga
 
    insmod ieee1275_fb
 
    insmod vbe
 
    insmod vga
 
    insmod video_bochs
 
    insmod video_cirrus
 
  fi
 
}
 
 
 
if loadfont unicode ; then
 
  set gfxmode=auto
 
  load_video
 
  insmod gfxterm
 
  set locale_dir=$prefix/locale
 
  set lang=
 
  insmod gettext
 
fi
 
terminal_output gfxterm
 
insmod part_msdos
 
insmod part_msdos
 
insmod diskfilter
 
insmod mdraid1x
 
insmod ext2
 
set root='mduuid/ce6547f16bcb31bc02c20a672587a62a'
 
if [ x$feature_platform_search_hint = xy ]; then
 
  search --no-floppy --fs-uuid --set=root --hint='mduuid/ce6547f16bcb31bc02c20a672587a62a'  f19541aa-6e4a-4954-8c29-2ac69b9a4e21
 
else
 
  search --no-floppy --fs-uuid --set=root f19541aa-6e4a-4954-8c29-2ac69b9a4e21
 
fi
 
insmod gfxmenu
 
loadfont ($root)/grub2/themes/openSUSE/DejaVuSans-Bold14.pf2
 
loadfont ($root)/grub2/themes/openSUSE/DejaVuSans10.pf2
 
loadfont ($root)/grub2/themes/openSUSE/DejaVuSans12.pf2
 
loadfont ($root)/grub2/themes/openSUSE/ascii.pf2
 
insmod png
 
set theme=($root)/grub2/themes/openSUSE/theme.txt
 
export theme
 
if [ x${boot_once} = xtrue ]; then
 
  set timeout=0
 
elif sleep --interruptible 0 ; then
 
  set timeout=8
 
fi
 
### END /etc/grub.d/00_header ###
 
 
 
### BEGIN /etc/grub.d/10_linux ###
 
menuentry 'openSUSE 13.1' --class 'opensuse-13-1' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9ca3c62f-d5b8-46a7-a494-8ce2270e2f47' {
 
load_video
 
set gfxpayload=keep
 
insmod gzio
 
insmod part_msdos
 
insmod part_msdos
 
insmod diskfilter
 
insmod mdraid1x
 
insmod ext2
 
set root='mduuid/ce6547f16bcb31bc02c20a672587a62a'
 
if [ x$feature_platform_search_hint = xy ]; then
 
  search --no-floppy --fs-uuid --set=root --hint='mduuid/ce6547f16bcb31bc02c20a672587a62a'  f19541aa-6e4a-4954-8c29-2ac69b9a4e21
 
else
 
  search --no-floppy --fs-uuid --set=root f19541aa-6e4a-4954-8c29-2ac69b9a4e21
 
fi
 
echo 'Loading Linux 3.11.6-4-desktop ...'
 
linux /vmlinuz-3.11.6-4-desktop root=/dev/mapper/system-root  resume=/dev/system/swap splash=silent quiet showopts
 
echo 'Loading initial ramdisk ...'
 
initrd /initrd-3.11.6-4-desktop
 
}
 
submenu 'Advanced options for openSUSE 13.1' $menuentry_id_option 'gnulinux-advanced-9ca3c62f-d5b8-46a7-a494-8ce2270e2f47' {
 
menuentry 'openSUSE 13.1, with Linux 3.11.6-4-desktop' --class 'opensuse-13-1' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.11.6-4-desktop-advanced-9ca3c62f-d5b8-46a7-a494-8ce2270e2f47' {
 
load_video
 
set gfxpayload=keep
 
insmod gzio
 
insmod part_msdos
 
insmod part_msdos
 
insmod diskfilter
 
insmod mdraid1x
 
insmod ext2
 
set root='mduuid/ce6547f16bcb31bc02c20a672587a62a'
 
if [ x$feature_platform_search_hint = xy ]; then
 
  search --no-floppy --fs-uuid --set=root --hint='mduuid/ce6547f16bcb31bc02c20a672587a62a'  f19541aa-6e4a-4954-8c29-2ac69b9a4e21
 
else
 
  search --no-floppy --fs-uuid --set=root f19541aa-6e4a-4954-8c29-2ac69b9a4e21
 
fi
 
echo 'Loading Linux 3.11.6-4-desktop ...'
 
linux /vmlinuz-3.11.6-4-desktop root=/dev/mapper/system-root  resume=/dev/system/swap splash=silent quiet showopts
 
echo 'Loading initial ramdisk ...'
 
initrd /initrd-3.11.6-4-desktop
 
}
 
menuentry 'openSUSE 13.1, with Linux 3.11.6-4-desktop (recovery mode)' --class 'opensuse-13-1' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.11.6-4-desktop-recovery-9ca3c62f-d5b8-46a7-a494-8ce2270e2f47' {
 
load_video
 
set gfxpayload=keep
 
insmod gzio
 
insmod part_msdos
 
insmod part_msdos
 
insmod diskfilter
 
insmod mdraid1x
 
insmod ext2
 
set root='mduuid/ce6547f16bcb31bc02c20a672587a62a'
 
if [ x$feature_platform_search_hint = xy ]; then
 
  search --no-floppy --fs-uuid --set=root --hint='mduuid/ce6547f16bcb31bc02c20a672587a62a'  f19541aa-6e4a-4954-8c29-2ac69b9a4e21
 
else
 
  search --no-floppy --fs-uuid --set=root f19541aa-6e4a-4954-8c29-2ac69b9a4e21
 
fi
 
echo 'Loading Linux 3.11.6-4-desktop ...'
 
linux /vmlinuz-3.11.6-4-desktop root=/dev/mapper/system-root  showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe
 
echo 'Loading initial ramdisk ...'
 
initrd /initrd-3.11.6-4-desktop
 
}
 
}
 
 
 
### END /etc/grub.d/10_linux ###
 
 
 
### BEGIN /etc/grub.d/20_linux_xen ###
 
### END /etc/grub.d/20_linux_xen ###
 
 
 
### BEGIN /etc/grub.d/20_memtest86+ ###
 
### END /etc/grub.d/20_memtest86+ ###
 
 
 
### BEGIN /etc/grub.d/20_ppc_terminfo ###
 
### END /etc/grub.d/20_ppc_terminfo ###
 
 
 
### BEGIN /etc/grub.d/30_os-prober ###
 
### END /etc/grub.d/30_os-prober ###
 
 
 
### BEGIN /etc/grub.d/40_custom ###
 
# This file provides an easy way to add custom menu entries.  Simply type the
 
# menu entries you want to add after this comment.  Be careful not to change
 
# the 'exec tail' line above.
 
### END /etc/grub.d/40_custom ###
 
 
 
### BEGIN /etc/grub.d/41_custom ###
 
if [ -f  ${config_directory}/custom.cfg ]; then
 
  source ${config_directory}/custom.cfg
 
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
 
  source $prefix/custom.cfg;
 
fi
 
### END /etc/grub.d/41_custom ###
 
 
 
### BEGIN /etc/grub.d/90_persistent ###
 
### END /etc/grub.d/90_persistent ###
 
</pre>
 
 
 
=Funktionale Tests=
 
==Test 1: Boot-Partitionen im RAID abschalten==
 
Mit diesem Test wird der Ausfall jeweils einer Partition simuliert. Das System sollte dank der Redundanz fehlerfrei booten.
 
 
 
Eine Boot-Partition aus dem RAID entfernen:
 
<pre>
 
localhost:~ # mdadm --set-faulty /dev/md0 /dev/sda1
 
mdadm: set /dev/sda1 faulty in /dev/md0
 
localhost:~ # cat /proc/mdstat
 
Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [linear]
 
md0 : active raid1 sda1[0](F) sdb1[1]
 
      521152 blocks super 1.0 [2/1] [_U]
 
      bitmap: 0/1 pages [0KB], 65536KB chunk
 
...
 
 
 
localhost:~ # reboot
 
</pre>
 
Reboot funktionierte problemlos.
 
 
 
Partition hinzufügen (etwas warten bis Recovery-Prozess abgeschlossen ist) und andere entfernen:
 
<pre>
 
localhost:~ # mdadm --re-add /dev/md0 /dev/sda1
 
mdadm: re-added /dev/sda1
 
 
 
localhost:~ # mdadm --set-faulty /dev/md0 /dev/sdb1
 
mdadm: set /dev/sdb1 faulty in /dev/md0                                                             
 
localhost:~ # cat /proc/mdstat                                                 
 
Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [linear]                           
 
md0 : active raid1 sda1[0] sdb1[1](F)                                                               
 
      521152 blocks super 1.0 [2/1] [U_]                                                             
 
      bitmap: 0/1 pages [0KB], 65536KB chunk
 
...
 
 
 
localhost:~ # reboot                                               
 
</pre>
 
Reboot funktionierte problemlos.
 
<pre>
 
localhost:~ # mdadm --re-add /dev/md0 /dev/sdb1
 
mdadm: re-added /dev/sdb1
 
</pre>
 
'''Fazit:''' OK
 
 
 
==Test 2: Festplatten entfernen==
 
Zur Simulation einer ausgefallenen Festplatte wurde vor dem Start die Festplatte aus der Konfiguration von [[VirtualBox]] entfernt.
 
 
 
===Fall 1: Nur Festplatte 1 im System===
 
Beobachtung: Das Menü von GRUB erscheint. Bei Start des Systems kommt es zu einer Endlosschleife, ohne dass die Passphrase für [[dm-crypt]] eingegeben werden kann:
 
<pre>
 
PARTIAL MODE. Incomplete logical volumes will be processed.
 
Volume group "system" not found
 
No volume groups found
 
</pre>
 
 
 
===Fall 2: Nur Festplatte 2 im System===
 
Beobachtung: Das Menü von GRUB erscheint '''nicht'''.
 
 
 
Vermutung: GRUB-Installation fehlt im [[MBR]] auf zweiter Festplatte.
 
 
 
Lösungsversuch 1: Installation nachgeholt:
 
<pre>
 
localhost:~ # grub-install.unsupported /dev/sdb
 
Probing devices to guess BIOS drives. This may take a long time.
 
/dev/md0 does not have any corresponding BIOS drive.
 
</pre>
 
Ergebnis: Bootet nicht.
 
 
 
Fehlermeldung: keine (alles schwarz, Cursor blinkt nicht)
 
 
 
 
 
Lösungsversuch 2: Per [[YaST]] nach sdb schreiben
 
 
 
Beim Start von Yast gibt es schon diesen Hinweis:
 
<pre>
 
localhost:~ # yast2 bootloader
 
Perl-Bootloader: 2013-12-13 22:53:57 <3> yast-1572.1 MBRTools::examineMBR.189: Error: Examine MBR cannot open /dev/md
 
</pre>
 
Das explizite Schreiben über
 
*Boot Loader Location
 
**Custom Boot Partiton => /dev/sdb
 
brachte nichts. Ohne die erste Disk bootete das System nicht.
 
 
 
Links:
 
*[http://lists.opensuse.org/opensuse/2013-03/msg00221.html Root and boot partitions on a sw raid volume (opensuse 12.2 - 12.3 rc1 64bit)]
 
*[https://bugzilla.novell.com/show_bug.cgi?id=811830 Bug 811830 - Root and boot partitions on a sw raid volume, system cannot boot]
 
  
 
[[Kategorie:Bootmanager]]
 
[[Kategorie:Bootmanager]]

Aktuelle Version vom 19. Dezember 2013, 06:21 Uhr

Höhe=24px Dieser Artikel oder Teile davon wurden mit 'Review' markiert. Das bedeutet, dass größere Arbeiten am Inhalt des Artikels abgeschlossen sind und der Autor eine Korrekturlesung durch andere User zur Qualitätssicherung für angebracht hält.

Zu sichtende Teile: Kompletter Artikel

Bitte hilf LinuxClubWiki, indem du den zu sichtenden Teil überprüfst und den Artikel gegebenenfalls überarbeitest!

--Gehrke (Diskussion) 07:21, 19. Dez. 2013 (CET)

DeviceGraphGRUB2Tests.png

An dieser Stelle soll der Umgang von GRUB 2 mit redundanten Laufwerken untersucht werden.

Bei Installationen mit dem Anspruch auf hohe Verfügbarkeit werden Festplatten in sogenannten RAID-Arrays gespiegelt. Dabei wird der Inhalt der beteiligten Devices ständig synchron gehalten. Für den Fall, dass eine Festplatte versagt, liegen die Daten verlässlich noch an anderer Stelle vor und das System sollte idealerweise in seiner Funktionalität nicht beeinträchtigt sein.

Im Folgenden wurde für Tests eine virtuelle Umgebung innerhalb von VirtualBox aufgesetzt. Sie umfasst 2 Festplatten, welche per Linux Software Raid (mdadm) zu zwei RAID1-Verbünden zusammengefasst sind. Ein Verbund wird als Boot-Device verwendet, der andere beinhaltet den ganzen Rest in einem gecrypteten Container (dm-crypt). Die weitere Partitionierung erfolgt über LVM.

Das gewählte Partitionierungslayout wird im Diagramm auf der rechten Seite verdeutlicht.

Ergebnisse mit unterschiedlichen Distributionen

Testfälle

  • Test 1: Boot-Partitionen im RAID abschalten
Nacheinander werden die Boot-Partitionen im RAID deaktiviert. Mit diesem Test soll ein Defekt explizit dieser Komponente simuliert werden. Dies wird erreicht durch ein Setzen des Parameters 'faulty'.
  • Test 2: Festplatten entfernen
Zur Simulation einer ausgefallenen Festplatte wurde vor dem Start jeweils eine Festplatte aus der Konfiguration der virtuellen Maschine entfernt.

Übersicht

Testcase OpenSUSE 13.1 Debian 7.3
Deaktivierung sda1 OK OK
Deaktivierung sdb1 OK OK
Deaktivierung sda Fehler OK (1)
Deaktivierung sdb Fehler OK

(1): Funktionierte nicht out-of-the-box nach Installation, konnte aber manuell korrigiert werden.

Detailierte Beschreibungen der Testläufe

Links