windows: close open file handles
@echo off SET WORKSPACE=C:\Domino\bin\jvm for /f "tokens=3,6,8 delims=: " %%i in ('"%~dp0handle.exe" /accepteula %WORKSPACE% ^| findstr /I %WORKSPACE%') do "%~dp0handle.exe" -c %%j -y -p %%i"
linux : jnlp dateien ausfuehren
in zusammenhang mit >diesem< artikel sei hier noch beschrieben, was man machen muss, falls "das eine etwas" fehlt auf dem system, auf dem man die datei ausfuehren moechte.
sudo apt-get install icedtea-netx
und dann einfach den befehl “javaws” mit der entsprechenden file ausfuehren:
javaws filename.jnlp
netgear GS108Ev3 firmware upgrade
fuer den heimgebrauch ist diese serie von netgear ja durchaus OK. selbst wenn man mit VLANs arbeitet, kann man da grundlegende konfigurationen machen und es funktioniert auch meistens. der preis der geraete entschaedigt fuer eventuelle unannehmlichkeiten.
ich wollte mal schauen, ob ich in der config auch einen syslog server eintragen kann… nix gefunden. also mal ein firmware update machen… vielleicht ruesten die sowas ja nach. (das schon vorneweg: nein)
also habe ich das geraet in den firmware-update-modus versetzt und versucht, die neue firmware ueber den browser hochzuladen. das hochladen ging auch… nur dann ist nix mehr passiert. also einmal neu gestartet… und da war das geraet nicht mehr unter der eingestellten ip erreichbar, sondern unter der default ip laut werkseinstellungen (192.168.0.239). firmware update hat trotzdem nicht funktioniert. aber das geraet war nun permanent im update modus.
dann habe ich versucht, tatsaechlich auf werkseinstellungen zurueck zu setzen… keine aenderung. immer noch im update modus.
auf irgendeiner netgear KB seite habe ich dann gelesen, dass es jemand mit allen moeglichen browsern probiert hat, aber nur mit chrome unter windows erfolg hatte. ich hatte auch schon alle moeglichen browser durch… unter anderem auch chromium unter linux. was solls… bevor ich das geraet wegschmeisse, probiere ich es auch mal mit windows und chrome aus…. und siehe da! firmware upgrade hat funktioniert! (anders als das ruecksetzen auf werkseinstelungen – meine einstellungen waren danach noch alle da.)
ich erwarte ja echt nicht viel von einem managebaren switch fuer 35 euro… zumal er ja schon vlans kann. aber man sollte wenigstens mit irgendeinem browser ein firmware update machen koennen und nicht extra dafuer ein windows vorhalten muessen.
proxmox: remove dead ceph node (osd/mon) after removing cluster node
after removing a pve cluster node that was also a ceph osd and monitor node i realised that i forgot to remove the ceph stuff before removing the node from the cluster. there is no possibility to remove it with the pve gui, so i have to do it on the command line.
to delete it from the ceph crush map:
ceph osd crush rm nodenametoremove
to remove the monitor:
ceph mon remove nodenametoremove
the edit the file /etc/ceph/ceph.conf and remove the complete section for the node.
then edit the file /etc/ceph/storage.conf and remove the ip address of the dead monitor node. this step can also be done via the gui.
verpackungswahnsinn
fuer dieses kleine platinchen:
brauchts diese verpackung? (das tuetchen liegt oben auf dem stapel)
workaround fuer javaws jnpl error “Cannot grant permissions to unsigned jars.”
in mein kleines serverchen habe ich ein “ASMB8-iKVM” rein gesteckt, damit ich nicht immer in den keller rennen muss, wenn ich mal ne vlan config versaut hab und die kiste nicht mehr erreichbar ist 😉
beim starten der java KVM console kam dieser fehler:
Fatal: Application Error: Cannot grant permissions to unsigned jars.
um das zu beheben, muss man in der datei java.security in dieser zeile:
jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024
...das "MD5" entfernen. (zeile kopieren, auskommentieren, aendern)
#jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024
jdk.jar.disabledAlgorithms=MD2, RSA keySize < 1024
bei meinem linux mint liegt die datei unter: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security
proxmox: eine partition als osd nutzen
gleich vorneweg: nicht offiziell von proxmox unterstuetzt, aber (fuer mich) funktionieren tuts. 😉
fuer meine aktuelle “spielwiesen-evaluierung” habe ich als boot platte eine 500 GB ssd gekauft. da das betriebsystem und swap nur wenige gigabytes benoetigen, moechte den restlichen platz als OSD fuer ceph verwenden. proxmox unterstuetzt von haus aus nur kompletten festplatten als OSD. mit ein paar tricks kann man das aber trotzdem eintueten. dafuer muessen ein paar vorraussetzungen eingehalten und die folgenden schritte ausgefuehrt werden.
1. als grundlage habe ich ein debian stretch installiert. dabei waehlt man am besten den modus “expert install” aus, da man nur in diesem den typ der partition table der festplatte setzen kann. der installer macht standardmaessig eine MBR patrition table, aber wir brauchen zwingend eine des typs GPT!
2. das debian system samt proxmox und ceph installieren (siehe proxmox wiki)
3. danach muss die OSD partition wie folgt angelegt und praepariert werden:
als erstes setzen wir ein paar variablen… der partition typecode “is designating a Ceph data disk”
PTYPE_UUID=4fbd7e29-9d25-41b8-afd0-062c0ceff05d
die festplatte, die verwendet werden soll:
disk=/dev/sda
die nuemmer der partition ist die naechste freie nummer:
part=4
und eine zufaellige UUID wird benoetigt, um die neue OSD zu identifizieren:
(wenns nicht funktioniert, vorher noch das paket “uuid-runtime” installieren)
OSD_UUID=`uuidgen -r`
wenn all diese variablen gesetzt sind, kann mit dem sgdisk kommando die neue partition angelegt werden:
sgdisk --largest-new=$part --change-name="${part}:ceph" --partition-guid=${part}:$OSD_UUID --typecode=${part}:$PTYPE_UUID $disk
der output koennte so aussehen:
Setting name!
partNum is 3
REALLY setting name!
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.
um die proxmox boardmittel nutzen zu koennen, muss man ein bischen in einem perl script rumpfuschen… und zwar das: /usr/share/perl5/PVE/API2/Ceph.pm
vorher bitte eine sicherungskopie anlegen, damit man die originale datei im anschluss wiederherstellen kann. (funktioniert mit pve 5.2)
suche in der datei nach diesem string:
$devname =~ s|/dev/||;
…und kommentiere diese und die folgenden zeilen bis zu dieser aus:
my $devpath = $diskinfo->{devpath};
dann fuege diese zeile darunter ein:
my $devpath = $devname;
jetzt suche nach
my $cmd = ['ceph-disk', 'prepare', '--zap-disk',
…und entferne am ende das argument “–zap-disk”, so dass die zeile so aussieht:
my $cmd = ['ceph-disk', 'prepare',
dann kann man endlich die OSD erstellen:
pveceph createosd /dev/sda4 --bluestore=0
(wenn die fehlermeldung “not a valid block device” kommt, ist noch ein reboot notwendig, damit der kernel die oben abgeaenderte partition table frisst.)
ich habe hier bluestore auf 0 gesetzt, da es bei mir nicht funktioniert hatte. (ich bin mir garnicht sicher, ob man bluestore ueberhaupt mit einer partition verwenden kann… vermutlich eher nicht.) so wird der herkoemmliche typ “filestore genommen und die partition mit xfs formatiert.
der output koennte so aussehen:
create OSD on /dev/sda4 (xfs)
meta-data=/dev/sda4 isize=2048 agcount=4, agsize=29150209 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=0, rmapbt=0, reflink=0
data = bsize=4096 blocks=116600833, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=56934, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
und zum schluss noch die OSD aktivieren, wodurch die partition gemountet und der zugehoerige OSD daemon gestartet wird
ceph-disk activate /dev/sda4
und schon ist die partiton unter proxmox als OSD verfuegbar. in der proxmox oberflaeche wird die ganze festplatte als OSD angezeigt, was mich aber nicht weiter stoert 😉
neue “server hardware” fuers home lab
man braucht ja noch projekte… ich baue mir mal ein neues proxmox cluster fuer zuhause. die sache mit den intel nuc’s ist zwar ganz schick, aber die loesung mit externen usb festplatten is doch irgendwie doof. fuer 90% meiner sachen reicht das vollkommen aus, aber manchmal darfs auch ein klein bischen mehr performance sein. da der ganze schrabel noch irgendwie im keller in mein kleines 19 zoll wandrack rein passen soll, ist die auswahl an bauform sehr gering. drei kurze 1he gehaeuse hab ich guenstig in UK erstanden. in den 5 1/4 zoll einbauschacht passt ein 6×2,5 zoll wechselrahmen dings rein, in welches dann ssd’s verbaut werden.
demnach brauche ich auch ein (mini itx) motherboard mit mindestens 6 sata anschluessen. die wahl fiel auf ein asus p10s-i, in welches man alle moeglichen cpu’s mit sockel 1151 stecken kann. angefangen von guenstigen celerons und pentiums bis hin zu guten xeons. zum evaluieren habe ich mir erstmal einen guenstigen pentium 2-core geholt. und prompt bin ich drauf rein gefallen und die cpu war zu neu fuer das board. haette ich vorher mal genauer in die kompatibilitaetsliste geschaut…
auf jeden fall hat das board zwei gigabit nics, welche dann im bond laufen sollen. mal schauen, ob ich spaeter noch eine 10gbe netzwerkkarte da rein bekomme. ein kleines zusatzplatinchen gibts auch, welches dem board zu einem IPMI interface verhilft, fuer welches auch schon ein dedizierter lan port verbaut ist.
RAM gibts fuer den anfang 16 GB an einem stueck. spaeter werden es dann sicherlich 32 GB als “usefull size” werden.
ssds sind ja gerade am billiger werden. anfangen werde ich mit 2x 500gb crucial mx500 als ceph osd’s. vier freie slots lassen noch luft nach oben.
die gehaeuse sind also gesetzt… und wenn dieser erste “prototyp” sich als brauchbar herausstellt, werde ich noch die innereien fuer die beiden anderen gehaeuse bestellen. installiert ist die kiste auf jeden fall schonmal. reingehaengt ins bereits laufende proxmox/ceph cluster ist eine migration ohne downtime und mit anschliessendem rueckbau der “alten” hardware moeglich. einfach nur genial 🙂