Xen Cluster Management Mit Ganeti Auf Debian Etch - Seite 7

8 LVM Auf Dem Freien HDD Speicherplatz Einrichten

node1/node2:

Lass uns nun etwas über unsere Festplatte herausfinden:

fdisk -l

node1:~# fdisk -l


Disk /dev/sda: 53.6 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 1216 9767488+ 83 Linux
/dev/sda2 1217 1338 979965 82 Linux swap / Solaris
node1:~#

Wir werden jetzt die Partition /dev/sda3 erstellen (auf beiden physikalischen Systemen) indem wir den Rest der Festplatte verwenden und für LVM vorbereiten:

fdisk /dev/sda

node1:~# fdisk /dev/sda


Die Zahl der Zylinder für diese Festplatte ist auf 6527 eingestellt.
Das ist völlig in Ordnung, jedoch ist dies größer als 1024 und könnte in bestimmten Setups folgende Probleme verursachen:
1) Probleme mit der Software, die beim Hochfahren des Rechners startet (z.B. alte Versionen von LILO)
2) Probleme mit dem Boot Loader und Partitionierungssoftware von anderen Betriebssystemen (z.B DOS FDISK, OS/2 FDISK)

Command (m for help): <-- m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help): <-- n
Command action
e extended
p primary partition (1-4)
<-- p
Partition number (1-4): <-- 3
First cylinder (1339-6527, default 1339): <-- ENTER
Using default value 1339
Last cylinder or +size or +sizeM or +sizeK (1339-6527, default 6527): <-- ENTER
Using default value 6527

Command (m for help): <-- t
Partition number (1-4): <-- 3
Hex code (type L to list codes): <-- L

0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot
1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
5 Extended 41 PPC PReP Boot 85 Linux extended c7 Syrinx
6 FAT16 42 SFS 86 NTFS volume set da Non-FS data
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Hidden W95 FAT3 75 PC/IX
Hex code (type L to list codes): <-- 8e
Changed system type of partition 3 to 8e (Linux LVM)

Command (m for help): <-- w
The partition table has been altered!

Calling ioctl() to re-read partition table.


WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
node1:~#

Lass uns nun noch mal einen Blick auf unsere Festplatte werfen:

fdisk -l

node1:~# fdisk -l


Disk /dev/sda: 53.6 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 1216 9767488+ 83 Linux
/dev/sda2 1217 1338 979965 82 Linux swap / Solaris
/dev/sda3 1339 6527 41680642+ 8e Linux LVM
node1:~#

Sieht gut aus. Nun müssen wir beide physikalischen Systeme neu starten, sodass der Kernel in der neuen Partitionstabelle lesen kann:

shutdown -r now

Nach dem Neustart bereiten wir /dev/sda3 für LVM auf beiden Systemen vor und fügen sie der Volume Group xenvg hinzu:

pvcreate /dev/sda3
vgcreate xenvg /dev/sda3

Es empfiehlt sich, LVM so zu konfigurieren, dass es die DRBD Geräte nicht scannt. Daher öffnen wir /etc/lvm/lvm.conf und ersetzen die filter Zeile wie folgt:

vi /etc/lvm/lvm.conf


[...]
filter = [ "r|/dev/cdrom|", "r|/dev/drbd[0-9]+|" ] [...]

9 Installation von Ganeti

node1/node2:

Installiere zunächst docbook-utils:

apt-get install docbook-utils

Lade dann Ganeti runter und installiere es wie folgt:

cd /tmp
wget http://ganeti.googlecode.com/files/ganeti-1.2b1.tar.gz
tar xvzf ganeti-1.2b1.tar.gz
cd ganeti-1.2b1
./configure --localstatedir=/var
make
make install
mkdir /srv/ganeti/ /srv/ganeti/os /srv/ganeti/export

Kopiere das Ganeti init Skript nach /etc/init.d...

cp docs/examples/ganeti.initd /etc/init.d/ganeti

... und teile beiden Systemen mit, dass sie Ganeti beim Hochfahren starten:

update-rc.d ganeti defaults 20 80


10 Installation Des Ganeti Skripts Für Debian Etch Instances

node1/node2:

Als Nächstes installieren wir die Skripte, die Ganeti benötigt, um Debian Etch in einer virtuellen Maschine (oder instance) zu installieren:

cd /srv/ganeti/os
wget http://ganeti.googlecode.com/files/instance-debian-etch-0.1.tar
tar xvf instance-debian-etch-0.1.tar
mv instance-debian-etch-0.1 debian-etch

Wir brauchen außerdem das debootstrap Paket:

apt-get install debootstrap


11 Initialisierung Des Clusters

Node 1:

Nun können wir unser Cluster initialisieren (dies muss nur einmal pro Cluster erfogen). Unser Clustername ist cluster1.example.com und ich möchte, dass node1.example.com der Master ist. Daher lassen wir folgenden Befehl auf node1.example.com laufen:

gnt-cluster init cluster1.example.com


12 node2.example.com Dem Cluster Hinzufügen

Node 1:

Da nun node1 unser Master ist, lassen wir alle Befehle zur Verwaltung des Clusters auf on node1 laufen. Um node2.example.com dem Cluster hinzuzufügen, führen wir Folgendes aus:

gnt-node add node2.example.com

Dies wird wie folgt aussehen:

node1:/srv/ganeti/os# gnt-node add node2.example.com
The authenticity of host 'node2.example.com (192.168.0.101)' can't be established.
RSA key fingerprint is 1c:83:24:cc:05:ab:9a:d6:51:ba:4d:31:42:1f:0a:6f.
Are you sure you want to continue connecting (yes/no)? <-- yes
root@node2.example.com's password:
node1:/srv/ganeti/os#

Lass uns nun überprüfen, ob unser Cluster wirklich aus node1 und node2 besteht:

gnt-node list

Etwas in der Art solltest Du erhalten:

node1:/srv/ganeti/os# gnt-node list
Node DTotal DFree MTotal MNode MFree Pinst Sinst
node1.example.com 40700 40700 203 64 124 0 0
node2.example.com 40700 40700 203 64 124 0 0
node1:/srv/ganeti/os#

13 Eine Instanz einrichten

node1:

Lass uns nun unsere erste virtuelle Maschine erstellen (in Ganeti Sprache Instanz genannt), inst1.example.com. Ich möchte dafür DRBD (entferntes RAID1) verwenden, node2 soll das primäre System sein und die Instanz soll 5 GB Festplattenspeicher, 256 MB Swap und 64 MB RAM haben. Nochmals lassen wir den Befehl auf dem Cluster Master, node1.example.com, laufen:

gnt-instance add -t remote_raid1 -n node2.example.com --secondary-node node1.example.com -o debian-etch -s 5g --swap-size 256 -m 64 inst1.example.com

Das kann etwas dauern. So sieht die Ausgabe dann aus:

node1:~# gnt-instance add -t remote_raid1 -n node2.example.com --secondary-node node1.example.com -o debian-etch -s 5g --swap-size 256 -m 64 inst1.example.com
* creating instance disks...
adding instance inst1.example.com to cluster config
Waiting for instance inst1.example.com to sync disks.
- device sda: 18.90% done, 2661 estimated seconds remaining
- device sda: 22.10% done, 1278 estimated seconds remaining
- device sda: 26.40% done, 1611 estimated seconds remaining
- device sda: 30.70% done, 1301 estimated seconds remaining
- device sda: 34.70% done, 1524 estimated seconds remaining
- device sda: 38.80% done, 894 estimated seconds remaining
- device sda: 43.30% done, 1753 estimated seconds remaining
- device sda: 48.40% done, 1195 estimated seconds remaining
- device sda: 52.70% done, 1213 estimated seconds remaining
- device sda: 57.70% done, 1011 estimated seconds remaining
- device sda: 61.10% done, 730 estimated seconds remaining
- device sda: 64.60% done, 698 estimated seconds remaining
- device sda: 69.40% done, 595 estimated seconds remaining
- device sda: 73.80% done, 430 estimated seconds remaining
- device sda: 78.30% done, 438 estimated seconds remaining
- device sda: 82.00% done, 169 estimated seconds remaining
- device sda: 85.80% done, 298 estimated seconds remaining
- device sda: 91.20% done, 146 estimated seconds remaining
- device sda: 95.50% done, 85 estimated seconds remaining
- device sda: 99.20% done, 18 estimated seconds remaining
Instance inst1.example.com's disks are in sync.
creating os for instance inst1.example.com on node node2.example.com
* running the instance OS create scripts...
* starting instance...
node1:~#

Ganeti hat eine komplette virtuelle Maschine erstellt (mittels Debian Etch), die Du jetzt nutzen kannst.

0 Kommentar(e)

Zum Posten von Kommentaren bitte