ESXi Netzwerkverbindung mit 65535Mbps [gelöst]

Bei meinem ESXi Server hatte ich das Problem das er nach ein paar Tagen nicht mehr erreichbar war.

Der Server selbst und die VMs waren aber nicht betroffen. Kein Absturz oder sowas.

Als ich mit der Support Konsole mir das Problem näher angesehn habe, musste ich feststellen dass mein Netzwerkadapter für das Management etwas komische Werte hatte.

Link: Up <- auch bei abgezogenen Netzwerkkabel ?

Linkspeed: 65535Mbs <- bei einem Gigabit Netzwerk ?

Duplex: Half

Da ein neustart des Management Netzwerks nichts gebracht hat versuchte ich mein Glück mit esxcfg-nics -a vmnic0.

Das resultat war das die werte wieder korrekt waren und der Server wieder mit dem vSphere Client erreichbar war.

Damit ich nicht immer zum Server hinrennen muss hab ich ein kleines Python Script geschrieben das dass Management Netzwerk automatisch wieder zurechtrückt.

Das Script: nic_check.py
Viel Spaß

Softwareentwicklung aus Sicht eines Testers

In Zeiten immer schnellerer Computer mit Arbeitsspeicher jenseits der 4GB Grenze verschlingen die neuen Programme zunehmend mehr und mehr dieser Resourcen.
Ich meine hier nicht die neuen 3D Spiele die immer bessere Grafik aufweisen, bei denen finde ich das OK.
Das aber Entwickler von Client/Server Applikationen auch mal eben alles in den RAM pusten und dort halten weil es einen „Performancezuwachs“ bringt halte ich für sehr bedenklich.
Mir ist bewusst dass das jetzt klingt als wäre ich im gestern stehen geblieben aber meiner Meinung nach sollte jede Anwendung (auch ihre Komponenten) ihren Arbeitsspeicher möglichst intelligent verwalten, um auch anderen Anwendungen eine Koexistenz zu ermöglichen bzw. dem System selbst auch noch was übrig zu lassen.
In meiner Tätigkeit als Software Tester konnte ich dies schon mehrmals beobachten.

Bei meinen Recherchen ob das gängige Praxis ist bin ich mehrmals auf die regeln

  • make it run
  • make it right
  • make it fast
  • (make it small)

Source: James Coplien and Kent Beck, „After all, we can’t ignore efficiency – part 2“

gestoßen. Aus meiner Sicht umfassen diese Stichpunkte genau das was wirklich wichtig ist.

** Die folgende auflistung gibt nur meine Meinung zu den Stichpunkten wieder. **

make it run:
Hier sollte die Spezifikation der Applikation zusammen mit Kunden, Entwicklern und Testern erfolgen.
Die sogenannten Kick Off Meetings. Dies bedeutet man bringt das Projekt ans laufen.

make it right:
Zu diesem Zeitpunkt ist das Projekt schon in den Händen der Entwickler.
Diese sollten in dieser Phase darauf achten das ihr Source Code Modularisiert, Kommentiert, Wiederverwendbar und Wartbar ist.

Da die Tester nicht immer Zugriff auf den Source Code der Applikation haben (Blackbox), sollten Schnittstellen für Automatisiertes Testen ebenfalls implementiert werden damit wiederkehrende Testaufgaben schneller überprüft werden können.
Ein Exploratives Testen ist meist sehr Zeitaufwendig und kann von Tester zu Tester zu unterschiedlichen Ergebnissen führen. Daher sollte der Anteil der Automatisierten Tests bei ca. 60 – 70% liegen.
Die restlichen Prozente müssen von Hand durchgeführt werden, da ein Automatisierter Test schlecht die Benutzerfreundlichkeit einschätzen oder wenn erforderlich den PC Herunterfahren und sich neue Hardware einbauen kann.
Sicher es gibt Virtualisierungssoftware die auch Hardware durchreichen kann (Passthrough), nur dann stellt sich die frage verhält sich die Hardware jetzt auch ordnungsgemäß.

make it fast:
Bei diesem Schritt soll die Applikation noch optimiert werden in Hinblick auf Ladezeiten, Speicherverbrauch und Code Optimierung.

Bei der Code Optimierung muss allerdings darauf geachtet werden das die Wartbarkeit des Codes nicht darunter leidet und das Kommentare auch nachgezogen werden.

make it small:
Bezogen auf den benötigten Festplattenplatz würde ich dies verneinen aber im Hinblick auf den Arbeitsspeicherverbrauch, naja da sagt der vorangegangene Text eigentlich alles.

Soviel jetzt zu meiner Meinung. Was ist eure? Was haltet ihr von der Resourcenverschlingerei der neuen Programme?

Networkscanner written in Batch

Wie der Titel schon verät handelt es sich hierbei um einen Netzwerscanner der in Batch geschrieben ist.

Nach der eingabe des IP-bereiches listet dieser alle vorhandenen Geräte in einer CSV-Datei auf.

Die auflistung funktioniert aber nur solange der Host auf einen Ping antwortet, ist dies nicht der fall findet sich ein entsprechender vermerk in der CSV-Datei.

Nun aber zum wesentlichen, zum Source Code.

Source:
@echo off

if exist ips.csv del ips.csv > nul

echo *****************
echo * Batch IP-Scan *
echo * *
echo *****************
echo Listet alle sich im Netzwerk befindlichen Computer auf.
echo Bitte geben Sie den ersten Teil der IP ein:
echo z.b. 192.168.0.
set /p ip=

echo _IP._IP._IP._IP; Hostname >> ips.csv

for /L %%N IN (1, 1, 255) DO (
echo Die IP: %ip%%%N wird nun angepingt
ping %ip%%%N -n 1 -w 1 | find "TTL" >NUL
if errorlevel 1 (
echo %ip%%%N; Kein Host oder durch Firewall blockiert >> ips.csv
) else (
nslookup %ip%%%N | find /i "Name:" >NUL
if errorlevel 1 (
echo %ip%%%N; N/A >> ips.csv
) else (
for /f "tokens=2" %%i in ('nslookup %ip%%%N ^| find /i "Name:"') do (
echo %ip%%%N; %%i >> ips.csv
)
)
)
)

Für etwas mehr Komfort sorgt die Namensauflösung für die entsprechende IP.
Viel Spass damit.

Hier der Source Code als TXT-Datei.
ipscan source

Das Leben 2.0 – Wie 1.0 bist du?

Beim Lesen von ein paar Blogs bin ich auf den aufruf zu einer Blogparade gestoßen an der ich mich beteiligen möchte.

Den Ursprung hat die Blogparade hier, ich bin allerdings erst durch den Blog von Bluecon draufgekommen.

Hier also meine Antworten dazu:

CDs oder mp3-Player? – beides
Festnetz oder Mobiltelefonie? – Mobiltelefonie + VoIP
Handy oder Smartphone? – Das Smarte Handy mit Touch :)
Notebook oder Tablet-PC? – Notebook
Buch oder E-Book-Reader? – definitiv Buch
Buch oder Hörbuch? – s. o.
Brettspiel oder Spiel-Konsole? – iPhone u. Konsole
Tagebuch oder Weblog? – Blog
Bargeld oder EC-Karte? – EC-/Kreditkarte + Bares
Poesiealbum oder Social Network? – Social Network
Kabel-/Satelliten-TV oder IpTV? – Kabelsalat – IpTV geht hier nicht
Videothek oder Online-Videothek? – Was sind Videotheken?
Ladengeschäft oder Online-Shop? – beides aber mehr Online
Brief oder E-Mail? – Beides (Brief ist Persönlicher)
Urlaubspostkarte oder MMS? – Postkarte. Braucht zwar länger aber man hat was zum anfassen.
Straßenkarte oder Navigationsgerät? – Beides. Beim Stadtplan kann der Akku nicht leer werden.
Duden oder Online-Duden? – Duden
Pizza-Zettel mit Anruf oder Online-Pizza-Bestellung? – Beides
Briefmarke oder Online-Frankierung? – Briefmarke
Papierrechnung oder Online-Rechnung? – Papier
Mehr OFFline oder ONline? – Äh, wann war ich das letzte mal OFF?

Also vom gefühl her bin ich noch 1.0 lastig.

ESXi 4.0 Disaster recovery

Einer der Schlimmsten Fälle ist wenn das Virtualisierte Produktivsystem einem im stich lässt.

Hier der Problemfall:

Aufgrund eines Systemfehlers wird der Datastorage auf dem die virtuellen Maschinen liegen nicht mehr erkannt und im vSphere Client wird dieser beim versuch ihn hinzuzufügen als leer dargestellt.

Lösungsansatz:

Da die Partition (Datastorage) mit den virtuellen Maschinen ein für Windows unbekanntes Dateisystem (vmfs) ist, entfällt die Möglichkeit die Daten über diesen Weg zu sichern.

Für Linux ist das VMFS-Dateisystem zwar auch nicht von haus aus lesbar, aber es gibt die so genannten vmfs-tools bei einigen Distributionen direkt im Repository um genau dies zu ermöglichen.

Für die Rettung der Maschinen empfehle ich die Debian 6 Distribution, da diese ausreichend getestete und stabile Pakete im Repository hat.

Nun aber auf zur Rettung der VMs:

  • ESXi System herunterfahren (sofern nicht schon geschen)
  • Eine zusätzliche Festplatte in das System einbauen

Die Festplatte sollte groß genug sein um die virtuellen Maschinen aufzunehmen!

  • Debian 6 mit SSH aber ohne Desktop auf der neuen Festplatte installieren
  • Als root anmelden und die vmfs-tools installieren. (apt-get install vmfs-tools)
  • Mit fdisk -l sich die Partitionen anzeigen lassen
    • Beispiel: VMFS Partition ist /dev/sda3
  • Mounten der VMFS Partition mit vmfs-fuse
    • zuerst modprobe fuse ausführen
    • Mountpoint in /media erstellen
    • Partition mounten
      vmfs-fuse /dev/sda3 /media/<mountpoint>

Wenn die Partition erfolgreich eingebunden wurde kann man jetzt die virtuellen Maschinen einfach auf die Linuxpartition kopieren.

Um die so gesicherten VMs direkt auf einen neuen ESXi Server (4.1) zu kopieren, aktiviert dessen SSH zugriff in den Troubleshoot Options.

Kopiert jetzt die gesicherten VMs mit Hilfe von scp auf den neuen ESXi.
scp -r <VM_directory> root@<your_ESXi_Server_IP>:/vmfs/volumes/<DataStorageName>

Im nächsten Schritt muss man die so auf den ESXi kopierten VMs mit Hilfe des vSphere Clients einbinden um diese starten zu können.

  1. Starten Sie den vSphere Client und melden sich am ESXi als root an
  2. Öffnen Sie in der Übersicht der Bestandsliste das Kontextmenü des Datenspeichers auf den Sie die VMs kopiert haben und wählen Sie den Punkt „Datenspeicher durchsuchen…“ aus.
  3. Navigieren Sie nun zu einer der kopierten VMs und öffnen den Ordner
  4. Öffnen Sie das Kontextmenü der .vmx Datei und wählen den Punkt „Zur Bestandsliste hinzufügen“ aus

How to enable / disable screen saver in Windows from VB

Method
To enable or disable the screen saver, use the SystemParametersInfo Windows API.

Here is an example on how to use it from VB. For more information, search for Microsoft article Q126627 in the MSDN help. You can also use the VB API Viewer to copy and paste the declarations used in this example.

Code Example
Option Explicit

Private Declare Function SystemParametersInfo Lib "user32" _
Alias "SystemParametersInfoA" _
(ByVal uAction As Long, ByVal uParam As Long, _
ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long

Const SPI_GETSCREENSAVEACTIVE=16
Const SPI_SETSCREENSAVEACTIVE=17
Const SPIF_SENDWININICHANGE=&H2

Public Sub EnableScreenSaver(enable As Boolean)

SystemParametersInfo SPI_SETSCREENSAVEACTIVE, _
enable, 0&, SPIF_SENDWININICHANGE

End Sub

Public Function IsScreenSaverActive() As Boolean

Dim pvParam As Long
SystemParametersInfo SPI_GETSCREENSAVEACTIVE, 0, pvParam, 0
IsScreenSaverActive=(pvParam=1)

End Function

To enable the screen saver, call EnableScreenSaver with an argument of True.

EnableScreenSaver True

To disable the screen saver, call EnableScreenSaver with an argument of False.

EnableScreenSaver False

HOWTO Setup more simultaneous TCP connections

TcpNumConnections

Registry:

HKLMSYSTEMCurrentControlSetServicesTcpipParameters

Keyname: TcpNumConnections

Data type Range Default value
REG_DWORD 0x0 – 0xFFFFFE 0

Description
Determines the maximum number of connections that TCP can have open simultaneously.
If the value of this entry is 0, you cannot establish any connections.

Note Image Note
Windows 2000 does not add this entry to the registry. You can add it by editing the registry
or by using a program that edits the registry.

LINKS
http://technet.microsoft.com/en-us/library/cc938216.aspx
http://www.windowspage.de/frame.php?http://www.windowspage.de/tipps/021202.html

ESXi 4: SSH und SNMP

SSH

Um beim VMWare ESXi 4 Server die SSH Konsole zu aktivieren gehen Sie wie folg vor:

  • Drücken Sie in der Konsole [ALT]+[F1]
  • Geben Sie unsupported ein und drücken Sie [ENTER]
  • Geben Sie das Passwort des Benutzers „root“ ein um sich einzuloggen
  • Wechseln Sie in das Verzeichnis /etc und öffnen Sie mit „vi inetd.conf“ die Konfigurationsdatei für den Start der Dienste.
  • Scrollen Sie nach unten bis Sie einen Eintrag finden der mit #SSH beginnt und löschen das führende „#“ mit drücken der [ENTF]-Taste.
  • Um die Datei abzuspeichern Drücken Sie zunächst [ESC] und geben dann „:wq“ ein. Bestätigen Sie die Eingabe mit [ENTER] und die Datei wird gespeichert.

Um den SSH Zugang zu aktivieren muss der INETD-Superserver neu gestartet werden. Dazu können Sie den ESXi entweder neu Starten oder den inetd Daemon selbst neu starten um eventuell laufende VMs nicht beenden zu müssen. Gehen Sie dazu wie folgt vor:

  • Geben Sie in der Konsole „ps | grep inetd“ ein

Die Ausgabe sollte folgendermaßen aussehen:
"4864 4864 busybox inetd" (Die Ziffern können abweichen)

  • Geben Sie jetzt in der Konsole „kill 4864“ ein um den Daemon „abzuwürgen“
  • Um den Daemon neu zu starten geben Sie einfach „inetd“ ein

SNMP

Um SNMP zu aktivieren wechseln Sie zunächst in das Verzeichnis /etc/vmware und öffnen die Datei „snmp.xml“ mit Hilfe des „vi„.

Die Datei sollte „unkonfiguriert“ wie folgt aussehen:

<config><snmpSettings><enable>false</enable><communities></communities><targets></targets></snmpSettings></config>

Ersetzen Sie „false“ gegen „true“ und tragen sie direkt hinter <communities> "public" ein.

Jetzt sollte die Datei wie folgt aussehen:

<config><snmpSettings><enable>true</enable><communities>public</communities><targets></targets></snmpSettings></config>

Zum Schluss müssen die Dienste neu gestartet werden, um dies zu erreichen geben Sie „services.sh restart“ in der Konsole ein.