Clustered LVM auf Debian Lenny ohne RHCS
Die Debian Pakete des clvmd werden ueblicherweise gegen die RHEL Cluster Suite gebaut. Nachdem fuer die RHCS etliche Tools und umstaendliche Konfigurationen notwendig sind und generell nur ein Lockmanager gebraucht wird, bietet sich an openAIS als Lockmanager einzusetzen. Dieser wird in den Repositories angeboten, allerdings ist der clvmd aus den Repositories nicht dagegen gebaut. Ergo wird ein eigenes clvm Paket benoetigt – und wie folgt gebaut:
apt-get install dpkg-dev apt-get build-dep clvm apt-get install libopenais-dev cd /usr/local/src/ apt-get source clvm |
In den Quellen muss ein wenig umgebaut werden:
rm lvm2-2.02.39/debian/clvm.init wget -O lvm2-2.02.39/debian/clvm.init http://wissen.netzhaut.de/wp-content/uploads/2010/05/clvm.init chmod 644 lvm2-2.02.39/debian/clvm.init rm lvm2-2.02.39/debian/control wget -O lvm2-2.02.39/debian/control http://wissen.netzhaut.de/wp-content/uploads/2010/05/control.txt chmod 644 lvm2-2.02.39/debian/control rm lvm2-2.02.39/debian/rules wget -O lvm2-2.02.39/debian/rules http://wissen.netzhaut.de/wp-content/uploads/2010/05/rules.txt chmod 755 lvm2-2.02.39/debian/rules cd lvm2-2.02.39 dch -i dpkg-buildpackage -rfakeroot -uc -b cd .. |
Jetzt sollte ein eigenes clvm_2.02.39-*.deb erstellt worden sein. Vor der Installation muss noch openais installiert und konfiguriert werden:
apt-get install openais mkdir /etc/ais adduser --no-create-home --disabled-password --disabled-login --gecos openAIS ais |
openAIS unterhaelt sich im Verbund via Multicast, von daher muss in der Konfiguration eine einheitliche Multicast IP eingetragen werden, zusaetzlich muss zum binden des Dienstes auf das richtige Interface die (oder „eine“) IP des entsprechenden Interfaces als bindnetaddr angegeben werden.
DIe Konfigurationsdatei wird nicht vom Paket mitgeliefert, sondern muss angelegt werden:
/etc/ais/openais.conf |
Beispielhaft fuer einen Rechner der fuer das cluster Netzwerk die IP 10.31.32.4 hat; hier ist die Node-ID 160 vergeben – jeder Node benoetigt eine eindeutige ID. Hier kann z.B. auch das letzte Oktet der IP Adresse herhalten:
totem { version: 2 # How long before declaring a token lost (ms) token: 10000 # How many token retransmits before forming a new configuration token_retransmits_before_loss_const: 20 # How long to wait for join messages in the membership protocol (ms) join: 120 # How long to wait for consensus to be achieved before starting a new round of membership configuration (ms) # consensus MUST be at least 1.2 x the token time consensus: 14800 # Turn off the virtual synchrony filter vsftype: none # Number of messages that may be sent by one processor on receipt of the token max_messages: 200 # Limit generated nodeids to 31-bits (positive signed integers) clear_node_high_bit: yes # Disable encryption secauth: off # How many threads to use for encryption/decryption threads: 0 # Optionally assign a fixed node id (integer) nodeid: 140 interface { ringnumber: 0 # bindnetaddr should end in 0 for a Class C bindnetaddr: 10.31.32.0 # mcastaddr should NEVER utilize 224/8 as this is reserverd for Systemmessages mcastaddr: 226.94.1.1 mcastport: 5405 } } logging { debug: on fileline: off to_syslog: yes to_stderr: yes syslog_facility: daemon timestamp: on } amf { mode: disabled }
Abschliessend sollte der openAIS automatisch gestartet werden:
update-rc.d openais start 62 S . start 50 0 6 . |
In der LVM Konfiguration muss der locking_type geaendert werden, danach kann das frischgebaute clvm Paket installiert und gestartet werden:
sed -i 's,locking_type = 1$,locking_type = 3,g' /etc/lvm/lvm.conf dpkg -i /usr/local/src/clvm_2.02.39*.deb /etc/init.d/clvm stop /etc/init.d/lvm2 stop /etc/init.d/openais start /etc/init.d/lvm2 start /etc/init.d/clvm start |
Aktualisierte Pakete der Version Debian Lenny 2.02.8 (Security Fix v. 22.08.2010, siehe http://seclists.org/fulldisclosure/2010/Aug/238 )