Ceph Mimic | Using loop devices as OSD

For quite some time we have been using ceph-deploy to deploy OSD in folders during the Ceph trainings held by Netways. This worked perfectly with jewel, but newer versions don’t allow this behaviour anymore.

There are several reasons for this, however, as we have a quite regulated setup for our training notebooks, we had to come up with some kind of workaround. This approach is, while working fine in our training setup, not recommended for production!

The following steps apply to a current CentOS 7 system.

As stated before, we will deploy an OSD on a block device. Though you could use a separate partition for this, we will use a loop device. For this, the first step is to create a file:

For this, create an OSD directory

 

$ mkdir -p /home/training/my-cluster/osd-$HOSTNAME
$ cd /home/training/my-cluster/osd-$HOSTNAME/

in this folder, create a file for later use


$ fallocate -l 30G 30GB.img

test it


# losetup -l -P /dev/loop1 "/home/training/my-cluster/osd-$HOSTNAME/30GB.img"
# wipefs -a /dev/loop1
# lsblk

This should then display your new loopdevice.

As loop devices are not reboot safe, you need to go some steps further. If you like to use rc.local for this, you’re free to do so.

We’re going to create a service, which will essentially execute the prior mentioned losetup command. For this, we need a script with the command and a .service file, which will execute the script:


rebloop.sh
#!/bin/bash
sudo losetup -l -P /dev/loop1 "/home/training/my-cluster/osd-$HOSTNAME/30GB.img"

and the service file:


rebloop.service
[Unit]
Description=Reattach loop device after reboot

[Service]
Type=simple
ExecStart=/bin/bash /usr/bin/rebloop.sh

[Install]
WantedBy=multi-user.target

These files have to be executable and be copied to the correct folders. Afterwards, the service must be enabled and can be started.


# chmod +x rebloop.*
# cp rebloop.sh /usr/bin/rebloop.sh
# cp rebloop.service /etc/systemd/system
# systemctl enable rebloop.service
# systemctl start rebloop.service

Ceph, however, will still not want to create an OSD on this device, instead give you following error message:

-->  RuntimeError: Cannot use device (/dev/mapper/<name>). A vg/lv path or an existing device is needed 

You have to make changes to /usr/lib/python2.7/site-packages/ceph_volume/util/disk.py on the OSD host:

in line 201, add “or TYPE==’loop'”:

# use lsblk first, fall back to using stat
TYPE = lsblk(dev).get('TYPE')
if TYPE:
return TYPE == 'disk' or TYPE == 'loop'

and in line 286, change the “skip_loop” switch from “True” to “False”:

 def get_block_devs(sys_block_path="/sys/block", skip_loop=False): 

For testing purposes, simply reboot your system and verify if the loop device gets reattached correctly.

If yes, you can deploy an OSD. We’re using ceph-deploy here:

$ ceph-deploy osd create --data /dev/loop1 $HOSTNAME

When the command was successfully executed on your hosts, you can create your first pool

# ceph osd pool create rbd 100 100 replicated

examine ceph status

# ceph status

tag the pool with an application

# ceph osd pool application enable rbd rbd

As you can see, there are quite some changes to be made, and each of it is failure-prone.

Best practice is to simply use a real block device and for production you really should stick to this.

If, however, there are certain needs to be fulfilled, ceph can be convinced to comply.

 

Sources:

http://tracker.ceph.com/issues/36603

https://tracker.ceph.com/issues/23337

https://github.com/NETWAYS/ceph-training

 

 

 

Tim Albert

Autor: Tim Albert

Tim kommt aus einem kleinen Ort zwischen Nürnberg und Ansbach, an der malerischen B14 gelegen. Er hat in Erlangen Lehramt und in Koblenz Informationsmanagement studiert, wobei seine Tätigkeit als Werkstudent bei IDS Scheer seinen Schwenk von Lehramt zur IT erheblich beeinflusst hat. Neben dem Studium hat Tim sich außerdem noch bei einer Werkskundendienstfirma im User-Support verdingt. Blerim und Sebastian haben ihn Anfang 2016 zu uns ins Managed Services Team geholt, wo er sich nun insbesondere um Infrastrukturthemen kümmert. In seiner Freizeit engagiert sich Tim in der Freiwilligen Feuerwehr - als Maschinist und Atemschutzgeräteträger -, spielt im Laientheater Bauernschwänke und ist auch handwerklich ein absolutes Allroundtalent. Angefangen von Mauern hochziehen bis hin zur KNX-Verkabelung ist er jederzeit einsatzbereit. Ansonsten kocht er sehr gerne – alles außer Hase!

OSCamp took a close look at Puppet

If you want to meet the masterminds behind a certain project, one of the best things to do is join OSCamp. Each event in the OSCamp-series throws a spotlight on another Open Source tool. OSCamp‘s second edition was on Puppet – one of the leading configuration management tools, that has been used in many productive environments for years.

Taking place in the same venue as OSMC, the Puppet users among the OSMC attendees took the chance to join the Camp and get in touch with a lot of experienced Puppet people.

From NETWAYS my colleague Dirk Götz took part in the OSCamp as a speaker. Here is his what he experienced that day:

With Walter Gildersleeve being ill we had a changed agenda, so Martin Alfke (picture) started with a great talk on how you should handle Puppet modules. It was one of the best explanaitions of the Roles and Profiles pattern you can get including many pitfalls you should avoid handling the upstream modules.

Tim Meusel‘s first talk was on scaling and monitoring Puppetserver full of practical tipps for configuring Puppetserver, Foreman, PostgreSQL, and PuppetDB.

Bram Vogelaar talked about bootstraping a cloud infrastructure with Puppet and the Hashicorp stack based on his experience from doing so at a costumer.

Containers, de-mystified

Martin volunteered to give his great “Ops hates containers. Why?” talk as a second one which shows a good example for what Devops should not look like. But then he de-mystified containers and explained how to combine container and configuration management in a good way.

After lunch I tried to squeeze all my tipps on deploying Foreman into an already existing Puppet environment into 30 minutes and to convince attendees to do so with a demo.

Kris Buytaert and Lander Van den Bulcke explained why it is so complicated to get on newer versions of Puppet in an enterprise environment and shared helpful information on how to get this done successfully.

Introduction into Vox Pupuli

Tim finished the round of talks with an introduction into Vox Pupuli the biggest community maintaining Puppet modules. It is always fascinating and inspiring to see how much work some Open Source communities do to get the tool of their choice into its best shape.

Afterwards a platform for open discussion was provided so people could share more knowledge, learn from each other and get new ideas and optimization hints for their own environment. Stay tuned to get to know what Open Source project the our next OSCamp will focus on!

Julia Hornung

Autor: Julia Hornung

Julia ist seit Juni 2018 Mitglied der NETWAYS-Crew. Vor ihrer Zeit in unserem Marketing Team hat sie als Journalistin und Produktionsassistentin in der freien Theaterszene gearbeitet. Ihre Leidenschaft gilt gutem Storytelling. Privat widmet sie sich dem Klettern und ihrer Ausbildung zur Yogalehrerin.

Entschleunigung vom Weihnachtsstress bei Netways

Seid Ihr schon im Weihnachtseinkaufstress?
Ja? dann schnell zur Entschleunigung bei uns im Online Shop vorbei schauen!

Im Netways Online Shop findet ihr alles was das Überwachungsherz begehrt, damit ihr euch beruhigt zurücklehnen könnt, wenn es um die Überwachung eures Serverraums geht. Mit unserem Netways Monitor könnt ihr einfach und problemlos die Temperatur und Luftfeuchte überwachen. Es können bis zu vier Sensoren am Netways Monitor angeschlossen werden.

Aber auch andere Produkte führender Hersteller wie die AKCP SensorProbe Serie oder Messgeräte von HW group könnt ihr bei uns im Online Shop bestellen.
Zu den Messgeräten gibt es natürlich auch eine große Auswahl an verschiedensten Sensoren wie z.B. Rauchsensoren oder der Temperatursensor zur Überwachung eures Kühlschranks mit einer Messspanne von -+30-+60C°.

Sucht ihr dagegen eine Lösung, die den automatisierten Versand von SMS Nachrichten ermöglicht, und habt hierfür noch keine konkrete Lösung gefunden? Dann lasst euch doch ein individuelles Angebot erstellen z.B. für das Braintower SMS Gateway als Desktop oder Rack Edition, welches viele Möglichkeiten bietet.

Möglichkeiten über Möglichkeiten… unser kompetentes Shop Team steht euch gerne beratend zur Seite.
Schickt eure Wunschliste also nicht an den Weihnachtsmann an den Nordpol, sondern direkt nach Nürnberg zu Netways!

Silke Panayiotou

Autor: Silke Panayiotou

Silke ist seit März 2018 wieder zurück bei NETWAYS und unterstützt nun das Sales Team. Hier ist sie für alle Belange des Online Stores verantwortlich und treibt den Ein- und Verkauf der Monitoring Hardware und die Weiterentwicklung des Shops mit ihrem bekannten Tatendrang gehörig voran. Da sie privat den Zweitjob Mama hat und sich um ihre kleine Tochter kümmert, ist sie nur vormittags im Haus.

OSMC Hackathon: Feature complete?

Our fourth OSMC hackathon started fully packed after an overwhelming conference – free form, and our introduction round provided many interesting topics to keep up with.

MQTT, OpenNMS, NSClient++, Elastic/Graylog, Migration from Nagios to Icinga 2, Zabbix, Prometheus, MySQL, ARM packages, Notification issues, Golang frameworks, Ansible, Puppet, Icinga Web 2 modules, Vsphere, Director, Maps, … holy moly, that’s super effective for just one day. Missed it? Join us next year!

Jens Schanz from Müller (Hint: The environment with 17k hosts and 200k services) mentioned a problem with missing notifications in his OSMC talk on Wednesday. So we did a deep dive in the production environment into one-time delayed notification without recovery for their ticket system integration. Turns out, that we’ve found a bug in Icinga, and also a quick workaround for production. Jens also knows how to use the debug console for future troubleshooting. Real #monitoringlove ❤️

Gian Arb from InfluxDB joined for the first hours, so “everyone who has questions, be quick”. Maybe he’ll stay longer next year, since he’s said that OSMC feels like home already. Rihards Olups shared Zabbix insights and focussed on improving MySQL monitoring. Our friends Tarus Balog and Ronny Trommer from OpenNMS looked into pushing sensor values into MQTT and OpenHAB, Tarus had his first success 🙂 Julien open-sourced an AMPQ adapter which forwards alerts from Prometheus.

Nicolai Buchwitz is building Icinga 2 for ARM hardware, and asked me to look into failing tests during the Debian package build. This turned out to be a very deep analysis with memory access violations and specific gcc and libstdc++ versions on this hardware, x86 works just fine. 50% are solved, more investigation needed.

Michael Medin implemented a huge new feature: Native Powershell support in NSClient++.  Cannot wait to see this being released! Dave Kempe started working on translation for the famous Icinga 2 book, together with Thomas Mr. Icinga Book. Or as they say: “Translating Austrian to Australian (English) …” 😉 Thilo jumped right into Jinja templates for the Icinga Ansible modules, and also offered help on enhancing the graph integration in mail notifications.

Noah and Jean played with the Gin library in Golang, providing an HTTP framework. They also discussed the state logic in Icinga 2 together with Eric and our friends from Syseleven, Max and Maurice. Max also did a deep-dive into new enhancements for Icinga Web 2 with more advanced scheduled downtime options. Together with Eric, he found a bug in the forms too. First time hackathon attendees discovered how to write Icinga Web 2 with the help from Eric.

The Map module for Icinga Web 2 received a docs patch from Jens, while Thomas Mr. Director looked into improvements for the business process module, Director, Cube (PR from Nicolai) and certainly the newly released Vsphere module. Last but not least, Flo was for the rescue and helped Jens to modify his Batman theme for Icinga Web 2. Dave also shared the color blind theme for Icinga Web 2 with Jennifer, and to mention too, Jean helped Jens with a DNS/network problem on Icinga startup.

It is INCREDIBLE what we achieved together as OSMC hacking family. We are never feature complete, always exploring and developing new things. See you next year, mark November 4th–7th, 2019 in your calendar!

Michael Friedrich

Autor: Michael Friedrich

Michael ist seit vielen Jahren Icinga-Entwickler und hat sich Ende 2012 in das Abenteuer NETWAYS gewagt. Ein Umzug von Wien nach Nürnberg mit der Vorliebe, österreichische Köstlichkeiten zu importieren - so mancher Kollege verzweifelt an den süchtig machenden Dragee-Keksi und der Linzer Torte. Oder schlicht am österreichischen Dialekt der gerne mit Thomas im Büro intensiviert wird ("Jo eh."). Wenn sich Michael mal nicht in der Community helfend meldet, arbeitet er am nächsten LEGO-Projekt oder geniesst das schöne Nürnberg mit #atasteofaustria 🙂

PDF manipulieren mit pdftk

In diesem Beitrag möchte ich zeigen wie einfach man PDF’s mit pdftk manipulieren kann, zB. Seiten aus einem mehrseitigen PDF herausschneiden und daraus ein neues PDF generiert.
Was ich unter anderem auch schon gemacht habe, Seiten aus Büchern per Scanner als PDF erzeugt und dann mittel pdftk zu einem mehrseitigen PDF zusammengesetzt habe, Schwierigkeit hierbei ist, das die Seiten- Zahlen wieder wie im gedrucktem Buch übereinstimmen.

Zuerst müssen wir je nach Linux-Distribution das Paket pdftk installieren, falls nicht vorhanden, in meinem Fall:
zypper install pdftk
Für Redhat oder Debian based Distributionen:
apt-get install pdftk
aptitude install pdftk
yum install pdftk

Jetzt werde ich ein paar Anwendungsbeispiele  aufzeigen:
Seiten herausschneiden aus einem mehrseitigen PDF
pdftk datei.pdf cat 4-7 12 output Dokument.pdf
Es werden aus datei.pdf die Seiten 4 bis 7 plus Seite 12 herausgeschnitten und als Dokument.pdf gespeichert.

Einzelne PDF’s zu einem mehrseitigen PDF zusammenfügen:
pdftk datei1.pdf datei2.pdf datei3.pdf cat output gesamt.pdf

Verschiedene Seiten aus mehreren PDF-Dateien zu einer neuen PDF-Datei zusammenführen:
pdftk A=datei1.pdf B=datei2.pdf cat A3-7 B2-6 A10 output neu-gesamt.pdf
In diesem Beispiel werden mit sogenannten “Handels”(A,B) zuerst die eingelesenen Files und dann die extrahierten Seiten angegeben herausgeschnitten und in ein neues PDF zusammengesetzt.

Aus einem mehrseitigen PDF-Datei Einzelseiten generieren:
pdftk mehrseitiges-pdf.pdf burst output ~/Zielverzeichnis/Seite_%02d.pdf
Hier wird das mehrseitige PDF-Dokument in seine Einzelseiten zerlegt und als Namen Seite_Seitenzahl.pdf benannt, wobei 2 d für zwei Dezimalstellen steht.

Ich könnte hier noch mehr Anwendungsmöglichkeiten aufzählen, aber fürs erste sollte es mal reichen,
die Man-Page man pdftk gibt eine detaillierte Beschreibung über dieses Tool und seine Anwendungsmöglichkeiten.

Mir hat dieses Tool schon öfters geholfen, z.B früher bei Bewerbungsmappen wo Zeugnisse oder Anlagen in eine Gesamt-Bewerbung-mappe als PDF zusammengesetzt wurden oder Bücher als PDF-Datei generieren, wobei man das gedruckte Exemplar in seine Einzelseiten zerlegen musste um es einzuscannen.

Noch etwas WICHTIGES:
WIR SUCHEN NOCH NEUE KOLLEGEN!! Bewerbung unter jobs@netways.de

 

Johannes Carraro

Autor: Johannes Carraro

Bevor Johannes bei NETWAYS anheuerte war er knapp drei Jahre als Systemadministrator in Ansbach tätig. Seit Februar 2016 verstärkt er nun unser Managed Services Team als Systems Engineer. In seiner Freizeit spielt Johannes E-Gitarre in einer Metalband, bastelt an Linux Systemen zuhause herum und ertüchtigt sich beim Tischtennisspielen im Verein, bzw. Mountainbiken, Inlinern und nicht zuletzt Skifahren