Proxmox VE auf Linux Software RAID

Aus Wiki
Wechseln zu: Navigation, Suche


ISO Downloaden

Aktuelle Proxmox VE ISO [1] von der Webseite downloaden und auf einen Stick mit dd kopieren.

Achtung: ABC sollte die Type vom USB-Stick sein, da ansonsten was falsches überschrieben werden könnte.

dd if=proxmox-ve-3.3.iso of=/dev/ABC bs=1M

Installation

Ab Version 3.4 kann man dies nur noch mehr grafisch unter der Laufwerks Auswahl machen (Laufwerks Setup)

Die Installation kann Standart mäßig verlaufen, oder man passt es ein wenig boot screen an.

Ich werde es auf ext4 Installieren und die root, swap und vz größe etwas anpassen (Da meiner meinung nach 100GB für die root Partition schon etwas zu groß ist).

boot: linux ext4 maxroot=18 swapsize=12 maxvz=100
Option Beschreibung
linux ext4 Erstellt das Linux Dateisystem auf ext4 und nicht wie Standartmäßig auf ext3
maxroot=18 Systempartition auf 18GB gesetzt (/)
swapsize=12 Swap Partition auf 12GB gesetzt (da der Host 10GB hat)
maxvz=100 vz Partition auf 100GB gesetzt (OpenVZ und KVM Maschinen)

Subscription anpassen

Falls man einen Key von Proxmox hat, kann man ihn gleich eintragen, ansonsten muss man ein paar kleine Anpassungen vornehmen damit man auch von der aktuellen Proxmox no-subscription[2] Repositority [3] updaten kann.

# PVE-no-subscription repo
deb http://download.proxmox.com/debian wheezy pve-no-subscription

Und unter /etc/apt/sources.list.d/ die pve-enterprise.list löschen oder den Inhalt Auskommentieren.

Proxmox Installation auf den letzten Stand bringen

apt-get update &&apt-get dist-upgrade -y

Raid Pakete Installieren

apt-get install mdadm

Der Installationsprozess hat 2 Fragen, diese ohne Modifikation mit OK beantworten.

Partitions Tabelle Kopieren

Ab Proxmox VE 3.2 wird GPT verwendet, somit muss ein paar Schritte anders machen.[4]

sgdisk -R /dev/sdb /dev/sda
sgdisk -G /dev/sdb

Partitionstype von Partition 2 und 3 auf fd Linux-RAID-Autodetect ändern.

Achtung: Partition 1 ist grub_bios und darf auf keinen fall geändert werden.

Mit dem Befehl gdisk /dev/sdb kommt man in einen Interaktiven Modus wo man mit ? eine Befehls übersicht bekommt.

Wir machen weiter mit der Option t und werden nach der Partition von 1-3 gefragt (ist die Partition die Proxmox angelegt hat, wobei 1 die bios_grub Partition ist), zuerst nehmen wir die Partition 2 und geben danach mit fd00 die Partitionstype bekannt.

Wiederholen den schritt jetzt auch für die Partition 3, danach kann man mit w die änderungen auf die Platte schreiben und das Programm Beenden.

So sieht es in etwa mit einer Auflistung der Partitionstypen aus:

root@:~# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.5

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): t
Partition number (1-3): 2
Current type is 'EFI System'
Hex code or GUID (L to show codes, Enter = 8300): L
0700 Microsoft basic data  0c01 Microsoft reserved    2700 Windows RE
4200 Windows LDM data      4201 Windows LDM metadata  7501 IBM GPFS
7f00 ChromeOS kernel       7f01 ChromeOS root         7f02 ChromeOS reserved
8200 Linux swap            8300 Linux filesystem      8301 Linux reserved
8e00 Linux LVM             a500 FreeBSD disklabel     a501 FreeBSD boot
a502 FreeBSD swap          a503 FreeBSD UFS           a504 FreeBSD ZFS
a505 FreeBSD Vinum/RAID    a580 Midnight BSD data     a581 Midnight BSD boot
a582 Midnight BSD swap     a583 Midnight BSD UFS      a584 Midnight BSD ZFS
a585 Midnight BSD Vinum    a800 Apple UFS             a901 NetBSD swap
a902 NetBSD FFS            a903 NetBSD LFS            a904 NetBSD concatenated
a905 NetBSD encrypted      a906 NetBSD RAID           ab00 Apple boot
af00 Apple HFS/HFS+        af01 Apple RAID            af02 Apple RAID offline
af03 Apple label           af04 AppleTV recovery      af05 Apple Core Storage
be00 Solaris boot          bf00 Solaris root          bf01 Solaris /usr & Mac Z
bf02 Solaris swap          bf03 Solaris backup        bf04 Solaris /var
bf05 Solaris /home         bf06 Solaris alternate se  bf07 Solaris Reserved 1
bf08 Solaris Reserved 2    bf09 Solaris Reserved 3    bf0a Solaris Reserved 4
bf0b Solaris Reserved 5    c001 HP-UX data            c002 HP-UX service
ef00 EFI System            ef01 MBR partition scheme  ef02 BIOS boot partition
fd00 Linux RAID
Hex code or GUID (L to show codes, Enter = 8300): fd00
Changed type of partition to 'Linux RAID'

### Und nochmal für die Partition Nr. 3##

Command (? for help): t
Partition number (1-3): 3
Current type is 'EFI System'

Hex code or GUID (L to show codes, Enter = 8300): fd00
Changed type of partition to 'Linux RAID'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.
root@:~#

RAID Initialisieren

mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb2
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb3

Kopiere /boot auf /dev/md0

mkfs.ext4 /dev/md0
mkdir /mnt/boot
mount /dev/md0 /mnt/boot
cp -ax /boot/* /mnt/md0

In der /etc/fstab:

UUID=6f1daa2b-0fb9-4d0b-ae68-b95d4fe4d8cc /boot ext4 defaults 0 1

die UUID für /boot mit /dev/md0 ersetzen.

/dev/md0 /boot ext4 defaults 0 1

Danach System neustarten mit reboot oder shutdown -r now.

Nach dem Reboot Prüfen ob /boot auf /dev/md0 zeigt

mount |grep boot
/dev/md0 on /boot type ext4 (rw,relatime,barrier=1,stripe=4,data=ordered)

Grub auf /dev/md0 umstellen

Folgende Einträge werden noch in der /etc/default/grub, /etc/modules und in /etc/initramfs-tools/modules hinzugefügt.

echo 'GRUB_DISABLE_LINUX_UUID=true' >> /etc/default/grub
echo 'GRUB_PRELOAD_MODULES="raid dmraid"' >> /etc/default/grub
echo raid1 >>/etc/modules
echo raid1 >>/etc/initramfs-tools/modules

Nach diesen änderungen Installieren wir Grub auf sda und sdb neu.

Dabei sollte die Ausgabe ähnlich ohne fehler aussehen.

root@:~# grub-install /dev/sda
Installation finished. No error reported.

root@:~# grub-install /dev/sdb
Installation finished. No error reported.

Grub updaten

root@:~# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-34-pve
Found initrd image: /boot/initrd.img-2.6.32-34-pve
Found linux image: /boot/vmlinuz-2.6.32-32-pve
Found initrd image: /boot/initrd.img-2.6.32-32-pve
Found memtest86+ image: /memtest86+.bin
Found memtest86+ multiboot image: /memtest86+_multiboot.bin
done

Initramfs neu Aufbauen:

root@:~# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-2.6.32-34-pve
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.

Die Meldung mdadm: /etc/mdadm/mdadm.conf defines no arrays. kommt, da man das RAID noch nicht in der mdadm.conf eingetragen haben.

Machen wir aber noch zur Sicherheit zum Schluss.

Füge sda2 zu md0 hinzu

Zuerst wieder die Partitionstype von /dev/sda2 wie vorher ändern.

root@:~# gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.5

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): t
Partition number (1-3): 2
Current type is 'EFI System'

Hex code or GUID (L to show codes, Enter = 8300): fd00
Changed type of partition to 'Linux RAID'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.

Und dem RAID1 Array hinzufügen.

mdadm --add /dev/md0 /dev/sda2

LVM auf md1 verschieben

Zum Glück setzt das ganze Proxmox auf LVM auf, was das Handling sehr start vereinfacht.

md1 zur Volumegruppe pve hinzufügen.

pvcreate /dev/md1

vgextend pve /dev/md1

PV pve auf md1 verschieben.

Falls dies per Fernwartung geschieht, wäre es von Vorteil dies in einer screen Sitzung zu starten, da dies mehrere Stunden dauern kann (Xeon 2Ghz 1TB ca. 2-3 Stunden).

pvmove /dev/sda2 /dev/md1

/dev/sda3 vom LVM System entfernen.

vgreduce pve /dev/sda3
pvremove /dev/sda3

Füge sda3 zu md1 hinzu

Zuerst die Partitionstype ändern, danach zu /dev/md1 hinzufügen.

root@:~# gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.5

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): t
Partition number (1-3): 3
Current type is 'EFI System'

Hex code or GUID (L to show codes, Enter = 8300): fd00
Changed type of partition to 'Linux RAID'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot.
The operation has completed successfully.
mdadm --add /dev/md1 /dev/sda3

Jetzt kann man mit cat /proc/mdstat den RAID Status und Fortschritt überprüfen.

root@:~# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda2[2] sdb2[1]
      521920 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sda3[2] sdb3[1]
      1952858944 blocks super 1.2 [2/1] [_U]
      [>....................]  recovery =  2.4% (47754368/1952858944) finish=235.9min speed=134563K/sec

unused devices: <none>

RAID in mdadm.conf eintragen

Aus Sicherheitsgründen und weil es schonmal mit der Auto erkennung schief gelaufen ist [5], gebe ich die RAID Konfiguration in der /etc/mdadm/mdadm.conf bekannt.

mdadm --examine --scan >>/etc/mdadm/mdadm.conf

Wenn man jetzt in die mdadm.conf schaut sollte die 2 Array's in der letzten Zeile hinzugefügt sein.

root@:~# cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays

# This file was auto-generated on Thu, 18 Dec 2014 12:31:36 +0100
# by mkconf 3.2.5-5
ARRAY /dev/md/0 metadata=1.2 UUID=3cb1ad37:495eee24:5791842a:fb0142e5 name=ASG6213VH1:0
ARRAY /dev/md/1 metadata=1.2 UUID=a1dff244:8768b07d:1fc24561:6f408879 name=ASG6213VH1:1
root@:~#

Links

  1. Proxmox VE ISO Download
  2. Proxmox Lizenz Beschreibung /Preise
  3. Proxmox VE Repo Howto
  4. Erklärung der 2 Befehle unter Festplattenaustausch im Software RAID
  5. md Array nach einem Neustart nicht vorhanden