News-Latest with the TYPO3 Extension „news“ respectively „tx_news“

Who has used the TYPO3 extension tt_news in the last decade, certainly has built some pages with a news-latest preview. After upgrading to TYPO3 8.6 and the new fluid-based extension „news“ it is getting more difficult to realize this feature, since there is no comprehensive instruction in the online manual.The German speaking reader will find a verbal exchange (including scolding) in the TYPO3-forum, that even the developer of the extension couldn’t settle or calm down and the outcome was not a proper manual. Link:  tx_news: Latest Ansicht- Wie? The argument of the developer is, that there is no sense in having „news-latest“, since it is the same like „news-list“ with less items. But the tricky point is, how to implement a new template that will reduce the listed items to the demands of a preview.Since I usually have my news-preview („news-latest“) in the footer of the webpage, the next question was, how to display news with TypoScript and without the news-plugin-module. And then how to choose a different template for this implementation.My examples are in TYPO3 8.6 and with news version 5.3.2:

a. Structure of the Templates

We have 3 levels: Layouts, Templates and Partials.
Inside the templates  is the function, that renders the partials – the final „news-elements“.

The folder structure from the extension is as follows:


The Partial „Item.html“ consist of: date, headline, teaser, text … basically the news-message or news-element.
The Template „List.html“ is including/referring the partials (our news) and renders them.

So what we need to do is to built a new partial-html-file out of  „Item.html“, that we call „ItemLatest.html“, and where we put our DIVs and classes. And second, inside the Template „List.html“ a decision „if-it-is-latest“ then use the partial-file „ItemLatest.html“.

The word „template“ is often used with different meanings. In a structure sense it is a part of the following:
Layout = the outer part of a webpage, like header and footer, that never changes
Template = the part that is inside the Layout and can change for different webpages
Partial = you can have multiple partials on one single webpage inside a Template

And the word is used also for a file, that includes the setup and code for each of the above structure elements:

b. Copy the Template-Files which comes with the extension

If you want to avoid that your changes of the Template-Files getting overwritten with every update you must copy them into the fileadmin. I use the same folder structure in the fileadmin as TYPO3 regulates for every extension. This makes things easier, since I always know what is where. See also my other blog post: Folder Structure in TYPO3.

The original files are here: typo3conf->ext->news->Resources->Private->Layouts or Partials or Templates

I copy the content to:
fileadmin->Resources->Private->Layouts->NewsLayouts->(here I have what was is in the Layouts-Folder of the extension, not the folder Layouts itself)

To connect to the new template-files you need some TypoScript in your root-TypoScript-setup:
plugin.tx_news {
view {
templateRootPaths >
templateRootPaths {
0 = EXT:news/Resources/Private/Templates/
1 = fileadmin/Resources/Private/Templates/NewsTemplates/
partialRootPaths >
partialRootPaths {
0 = EXT:news/Resources/Private/Partials/
1 = fileadmin/Resources/Private/Partials/NewsPartials/
layoutRootPaths >
layoutRootPaths {
0 = EXT:news/Resources/Private/Layouts/
1 = fileadmin/Resources/Private/Layouts/NewsLayouts/

c. Changes in the copied Layouts, Templates and Partials

First we duplicate the file: fileadmin->Resources->Private->Partials->NewsPartials->Item.html and make the copy „ItemLatest.html„.
This is your new Partials-File that defines the news in the latest-view. Here you make your changes for DIVs and classes or just delete stuff you don’t need.

Second, you have to put a „if-then“ construction into the Template-File that calls the partials so it knows when to use which partial.


You have to do it at two places in the code of List.html:

This part is deleted:

<f:for each="{news}" as="newsItem" iteration="iterator">
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />

And replaced with this:

<f:for each="{news}" as="newsItem" iteration="iterator">
<f:if condition="{settings.templateLayout} == 9">
<f:render partial="List/ItemLatest" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />

This part is deleted:

<f:for each="{paginatedNews}" as="newsItem" iteration="iterator">
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />

And replaced with this:

<f:for each="{paginatedNews}" as="newsItem" iteration="iterator">
<f:if condition="{settings.templateLayout} == 9">
<f:render partial="List/ItemLatest" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />
<f:render partial="List/Item" arguments="{newsItem: newsItem,settings:settings,iterator:iterator}" />

As you can see we created a if-condition in the code, that asks for an argument „settings.templateLayout == 9″ and then goes for the partial: partial=“List/ItemLatest“. Now we have to add a „setting.templateLayout = 9“ to our news element. (The number you can choose, doesn’t have to be „9“.)

d. Creating a news-element with TypoScript

The basic code comes again – with some small changes – from the news extensions documentation: = USER {
  userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
  extensionName = News
  pluginName = Pi1
  vendorName = GeorgRinger
  switchableControllerActions {
        News {
          1 = list
  settings < plugin.tx_news.settings
  settings {
        //categories = 49
        limit = 2
        detailPid = 11
        overrideFlexformSettingsIfEmpty := addToList(detailPid)
        startingpoint = 18
        templateLayout = 9

We put the whole code in a „lib-variable“, so we can use it later in our FLUIDTEMPLATE for the whole webpage.

The last line creates the setting: „templateLayout =9“.

As we can see with „1 = list“, it is a list-template – in List.html we created before the if-condition.

„limit =2“ gives us maximum 2 news, „detailPid“ is the ID of the page with the single-news-view, „startingpoint =18“ is the news storage folder where our news are stored.

The setup of the FLUIDTEMPLATE for the webpage could look something like this:

(You will find many blogs dealing with FLUIDTEMPLATES.)

page.10 {
     template = FILE
     template.file = fileadmin/Resources/Private/Templates/mainTemplate.html
     partialRootPath = fileadmin/Resources/Private/Partials
     layoutRootPath = fileadmin/Resources/Private/Layouts
        variables {
           dceCont < styles.content.get
           txNews <
           rootlineNav < temp.rootlineNav
           socialNet < temp.socialNet
           metaNav < temp.metaNav

And then in your template for the whole webpage – so it is displayed in the footer:

<article class="footerNews"><h2 class="outline">The News from tt_news 2 Items</h2><f:format.raw>{txNews}</f:format.raw></article>


e. What to do if you want to use a regular news-plugin element

If we want to put the latest news somewhere in the normal content, we must tell the news-content-plugin that it has the setting number 9. Therefore we must give number „9“ a name in the root-page of your TYPO3-page-tree: /right-click on the root page/ edit->Resources->Page TSConfig:

tx_news.templateLayouts {
9 = ItemLatest

Now you can select ItemLatest in your news-plugin:

Plugin->Plugin Options->Template->Template Layout

different templates in the news-plugin

Since I have all my TypoScript code in a file, to put TS directly in the root-page is not so flexible, while going from one to the next webpage. If someone has a solution how to do it with simple TS, please leave a note in the comment section.


Additional information, added later on

In my TYPO3 master installation and basic layout for all websites, there is, in combination with Dynamic Content Elements, the need to add for every content element – including news – some wrapper-classes and sourrounding DIVs. This code must be inside the template-template-file, since it should not be repeated with every single news-element. In the footer latest-news though this DIVs and classes are disturbing, so there is an additional if-condition that has to go into the template-template-file.


<f:if condition="{news}">
<f:comment>The wrapper-class only for not-latest</f:comment>
<f:if condition="{settings.templateLayout} != 9">
<div class="news-list-container wrapper clearfix">
<div class="center">
<div class="news-list-all">

A second possiblity would be to call a different list-template (List2.html). Maybe the developer of the news extension can help with this topic, or some easy calling of different templates in combination with different partials.
If you have any improvements, please leave a comment!


Dieser Artikel ist  in Englisch, nicht um Ihnen das Leben schwer zu machen, sondern um den Autoren weltweit etwas zurückzugeben, die mir auch tagtäglich mit ihren Artikeln helfen!

Autor: Thomas Hezel

DCE pass on – how to reuse DCEs in TYPO3

The zazu-TYPO3-concept

Here at zazudesign in Berlin DCEs or Dynamic Content Elements got the main extension, that we use in combination with TYPO3. Since the basic structure of the extension TemplaVoila! was outdated, there was only the not so flexible concept of backend layouts to replace it.

Dynamic Content Elements makes it finally possible to code your own little backend modules, so the later user can easily change content, without interfering with the basic structure of a webpage.

In short: make a template, put variables at the places where the content should be placed and then use TYPO3s internal skills to create backend forms, to fill the variables with content – that’s it. Of course going into detail, there is much more behind it and much more it can do – a key word is here view-helpers.

In times of responsive web development this little modules need their own little intelligence, basically a clear CSS driven behaviour for different screen seizes.  So a developer has to create the input fields, the templates with variables and view-helpers and a bunch of CCS instructions. In other words you have to put a good amount of time and effort in it. In consequence one must find a way to pass on the DCEs from one TYPO3 installation to another. Better not one DCE, but your little collection, that you developed over time and you are ready to reuse in your basic setup, as an easy and proven installation to start from.

Structure makes work faster especially with a content management system

The folders

If you want to find your slider pictures or your TypoScript text files always at the same place, it is essential to use the same folder structure in all your TYPO3 installation. For the zazu-concept I basically took the structure and rules of the TYPO3 extension development and used it in the fileadmin. So experienced developers will already know where to find what:


  • fileadmin
    • Configuration
      • TypoScript
        • root.ts
        • news.ts
        • contact.ts
    • Resources
      • Private
        • Layouts
          • main-layout.html
        • Partials
        • Templates
      • Public
        • Downloads
        • Ext
          • Fotorama-4.6.
        • Fonts
        • Icons
        • Images
        • JavaScript
        • Styles
          • all.css
          • normalize.min.css
There are some rules about nomenclature:

a. folders always have a upper case letter at the beginning
b. files always have a lower case letter at the beginning
c. files that you want to be indexed by google (e.g. pictures) use hyphens (e.g. me-myself-and-i.jpg)

There is a big exception in this rules, „fileadmin“ itself and it’s surrounding folders are lower case.

Inside the folders you can have more folders e.g. inside Partials could be a folder with the „Powermail-Partials“, that you take along, and point to it, instead of the partials, what come with the extension and get overwritten with every update. In the Ext-folder I put everything (JavaScript, CSS, unique icons) that comes with jQuery extensions like Fotorama, just to make updates easier. Not so consistent is TYPO3 with singular and plural that gives me confusion from time to time. Usually it is plural like „Layouts“ but with „JavaScript“ it is singular for some reason. If you want to be stringent in your system go for plural.

Inside the „fileadmin“ folder there are two folders that are created by TYPO3, that is „_processed_“ and „_temp_“, if they are missing the install tool will give a warning and will help you to create them.

The folder „uploads“, that is on the same level as „fileadmin“, is also created by TYPO3 and hosts for example icons that you use inside a TYPO3 extension, so this folder also have to come along to your next website.

Steps to do, from a master project to at a new project

  1. create a master installation that has only placeholder content with all your DCEs
  2. update your master installation and all your extensions
  3. empty all caches, go through „Important Actions“ in install tool
  4. download your „fileadmin“ and „uploads“ folders
  5. make a database dump
  6. install TYPO3 on the new webspace for your new project
  7. install your standard extensions (in my case: dce, realurl, powermail, news, sourceopt, metaseo)
  8. overwrite the „fileadmin“ and „uploads“ folders with your folders from the master project
  9. run install tool „Important Actions“
  10. if you stay on the same TYPO3 level and extensions versions , you can import the complete database dump from your master installation
  11. run install tool „Important Actions“ again
  12. do a „DB check“ (button left side bottom in TYPO3)

A clean installation

TYPO3 was going lately through a lot of changes, so sometimes you don’t want to take along some old stuff (wrong relations m:n, NOT Null problems) in your database and prefer to start with a clean setup. In this case you can just use phpMyAdmin to export only the DCE related tables of the database from your master installation and import it in your new project, instead of importing a complete database dump.

The database tables that contain the DCE-information
Export only the DCE-tables
  • open phpMyAdmin (in most cases in the control center of your webspace provider)
  • go to „Export“, choose the option „custom or options“ („angepasst-zeige alle möglichen Optionen an“)
  • mark the tables „tx_dce_domain_model_dce“ and „tx_dce_domain_model_dcefield“
  • if you want you can save your choise as a pattern („Vorlage“)
  • export the tables to a file xxx.sql
DCE export with phpMyAdmin
Import the file
  • go to your new projects database inside phpMyAdmin
  • delete the tables „tx_dce_domain_model_dce“ and „tx_dce_domain_model_dcefield“
  • click „import“ and import your little database dump with the to tables you want to import
  • go to the TYPO3 backend, now you should see all your DCEs in the DCE-menu
What you miss

Now you miss your complete page-tree, that you have to create again, with all sys-folders for news, powermail, backend templates and so on. You also have to adjust your TypoScript to the new page ids and storage folder ids.

What I allways forget

Don’t forget to add the static templates to the root of your page-tree. If you see funny yellow stripes instead of a DCE-output then you didn’t include some static templates. (DCE doesn’t have a own static template but seems to be affected by the others.)

The new template „content element (fluid_syled_content)“ didn’t cover all backend functions of the DCE but I think the developer of DCE, Armin Vieweg, fixed it with one of the last updates (dce 1.4.2). Worst case you can run it together with ccs_styled_content.

CSS and DCE: how to connect specific CSS-blocks to a specific DCE

As mentioned above it is essential that each DCE gets its responsive CSS. The basic concept is to check the size of your browser screen with media queries.

In the template file of the DCE I put a „div“ outside the whole DCE-template and give it a class=“dxx“ with „xx“ for the DCE number of my collection.  2 columns divs start with „2“, 3 columns divs start with „3“.

Then I make my media queries for each DCE!

This seems to be a lot of checking but I couldn’t find any speed difference against having the media queries only ones in the whole CSS-file. Now each CSS instruction starts with „.dxx“ and therefore gives the DCE it’s unique behaviour.

If a DCE should have some different features on a specific page you should add a page count to the body-element (with TypoScript) of your web page and put it at the beginning: #page3 .d22 {background-color: pink;}

Now the CSS can travel directly (copy and paste) with it’s corresponding DCE and be reused in every setup!

Example CSS-code for the DCE with the class=“d22″:

/*DCE 22 - 2 columns text plus image*/
/*======= 320-NO Query === mobile first ======= border 5  = 310 ===*/
.d22 {
margin-bottom: 2em;
.d22 img {
width: 100%;
height: auto;
.d22 .colLeft {
margin-bottom: 2em;
/*======= 480 ========= MEDIA QUERIES ======= border  6 = 460 ===*/
@media only screen and (min-width: 480px) {
/*======= 760========= MEDIA QUERIES ======== border 16 = 728 ===*/
@media only screen and (min-width: 760px) {
.d22 .colRight {
float: left;
width: 45.74175824175824%; /*333px/728px*/
.d22 .colRight {
margin-left: 8.516483516483516%; /*62px/728px*/
/*======= 960 ======== MEDIA QUERIES ======== border 22 = 916 ===*/
@media only screen and (min-width: 960px) {
/*======= 1254 ======= MEDIA QUERIES ======== border 28 = 1198 ==*/
@media only screen and (min-width: 1254px) {
/*======= 2512 ======= MEDIA QUERIES ==== border 151-45 = 2396 ==*/
@media only screen and (min-width: 2512px) {
/*END-DCE 22*/

Avoiding to many server requests

At the end I clean up the code from all empty media queries and put it through a minimizer programme. After that I put all CSS (jQurey extensions, normalizer, my-css) together in one file. With TypoScript I enable then compression.

That’s it!



Armin Vieweg is the developer of the DCEs. As a lonely hero it’s a lot of work to follow all updates of TYPO3 and keep the extension running with the newest TYPO3 versions. So, please don’t forget to donate!

Additional features I would like to have

One concept for the future could be to have the CSS handled directly by the DCE extension. So like the „template-tab“ you also have a „css-tab“ in the backend. DCE could than put all single CSS-parts together in one file that goes in a folder of your choice – even remove empty media queries and minimize the file.  You could then put it in a all-css-file by hand and include that one in your page setup.

The database export of the DCE tables and the import could be handled inside DCE, instead of using phpMyAdmin. „Export all DCE tables to a sql-file“ and „Import DCE tables from a sql-file“ – option: „add to existing DCEs“ and „overwrite existing DCEs“.

May be even exporting single DCE-database-entries and import them – this could be the beginning of a DCE-share-platform with uploaded screen-shots, sql-files and corresponding CSS.

Will see what Armin will comment on this 🙂


Dieser Artikel ist  in Englisch, nicht um Ihnen das Leben schwer zu machen, sondern um den Autoren weltweit etwas zurückzugeben, die mir auch tagtäglich mit ihren Artikeln helfen!



HP-Netzwerk-Switch und Drucker Probleme

Bei den meisten Netzwerkdruckern wird bei der Einrichtung empfohlen das „Line Printer Daemon Protocol – LPD“ zu verwenden. Das Protokoll wurde ursprünglich für UNIX entwickelt und wird deshalb vor allem für den MAC empfohlen, da dieser auf einer UNIX-Plattform aufbaut. Bei der Einrichtung meines Canon Netzwerkdruckers wurden allerdings die Spooling-Dienste, also die Ausgabe der Druckdateien blockiert. Das reine Einrichten des Druckertreibers hat allerdings funktioniert. Nach langem Suchen und auch einigen Versuchen beim HP-Support, haben wir herausgefunden, dass es am Switch lag, der das „LPD-Protokoll“ blockiert hat. (Das IPP Internet Printing Protocol hat funktioniert.)

Das Problem liegt in den DoS-Attack-Einstellungen, die ziemlich mißverständlich sind.


Die Storm Control ist zwar aus, aber die Auto DoS Features sind immer noch an, obwohl es nicht den Anschein hat!

Invalid TCP Flags Attack ist der Bösewicht, der das Ganze blockiert!

Bild oben: So funktioniert das LPD-Protocol nicht!


So funktioniert das LPD-Printing-Protocol auch beim HP-Switch:


So funktioniert das LPD-Line-Printer-Daemon-Protocol auch mit dem HP-Switch



Kameratest Sony FS7 versus Sony FS5

Die Frage, die sich uns stellte war, kann man eine Sony PXW-FS5 als zweite Kamera neben einer Sony PXW-FS7 benutzen? Bei Interviews wäre es gut mit einer Kamera die Großaufnahme zu machen, und mit der zweiten Kamera eine totalere Einstellung.

Die Antwort ist schlicht und einfach: NEIN

Zu den Details:

Die FS7 wird von uns in der Regel im S-Log3 Modus, mit folgendem Codec betrieben:
XAVC-I-Mod.: HD 50p VBR, max. Bitr. 185 Mbit/s, MPEG-4 H.264/AVC
Dies ist ein „Intra-Codec“ d. h. es wird nur innerhalb eines einzelnen Bildes komprimiert, nicht aber über mehrere Bilder hinweg (Long-Gop).

Die FS5 bietet etwas ähnliches wie S-Log3, es nennt sich hier Modus 8 und ist wahrscheinlich eher so etwas wie ein „Picture Style“.
Als Codec kann man wählen zwischen einem 4K-Codec mit  100 Mbit/s und einem HD-Codec mit 50 Mbit/s. Beim 4K-Codec kommt man nur auf 25 Vollbilder pro Sekunde, was zu etwas ruckeligen Bewegungen führen kann, beim HD-Codec schafft man 50 Vollbilder pro Sekunde:

XAVC QFHD (3.840 x 2.160) bei 29,97p, 25p, 23,98p, 100 Mbit/s/60 Mbit/s

XAVC HD (1.920 x 1.080) bei 59,94p, 50p, 50 Mbit/s/35 Mbit/s

Die Erwartung war, dass der 4K-Codec heruntergerechnet auf HD, durch die Bitrate von 100 Mbit/s eine bessere Bildqualität ergibt, als der HD-Codec mit lediglich 50 Mbit/s, die dafür etwas ruckeligeren Bewegungen würde man dafür in Kauf nehmen. Beide Codecs der FS5 sind Long-Gop-Codecs, d. h. sie komprimieren nicht nur innerhalb eines einzelnen Bildes, sondern  über mehrere Bilder hinweg. Dabei wird nicht immer ein ganzes Bild gespeichert, sondern nur die Teile eines Bildes, die sich zum vorangegangenen Bild hin unterscheiden. Nach einer gewissen Anzahl von Bildern kommt dann wieder eine ganzes Vollbild.

Sony FS5 mit eingeschränkten Möglichkeiten.


Das Ergebnis war dann doch ziemlich ernüchternd. Auf dem folgenden Foto haben beide Kameras die gleiche Blende und benutzen das gleiche Objektiv von Canon (24-70 mm  f 2.8 Zoom):

Sony FS5 versus Sony FS7 Auflösungsvergleich: links die FS5 mit dem erhöhten Rauschen, rechts die FS7. Bitte auf das Bild KLICKEN um den Unterschied besser zu sehen!

Wenn man das Bild auf seine Orginalgröße vergrößert, sieht man das starke Griseln im Hintergrund und auch ein starkes Rauschen in den Schwarztönen, obwohl sie schon auf dem Wavemonitor ganz unten liegen, also zum vollen Schwarz hin tendieren müssten.

Erstaunlicherweise hatte auch die 4K-Aufnahme, auf HD verkleinert, den selben Effekt und war nicht von der HD-50 Mbit/s-Aufnahme der FS5 zu unterscheiden. Das FS7-Bild auf der rechten Seite sieht dagegen sauber und glatt aus. Hier spielen die 185 Mbit/s und die Intra-Frame-Kodiereung, zusammen mit dem echten S-Log3, ihre ganze Stärke aus.

Für ein normales TV-Interview kann man die FS5 sicherlich als zweite Kamera neben der FS7 benutzen. Wir sind aber meist in Afrika unterwegs, mit dunkelhäutigen Menschen in der grellen Sonne oder vor extremen hellen Hintergründen, da wird es nicht nur mit einer Beta-Cam sondern auch mit der FS5 sehr problematisch. Zudem werden unsere Filme auch bei Veranstaltungen gezeigt, d. h. auf großen Bildschirmen, wo dann das Rauschen der FS5 extrem unangenehm auffallen würde.

Mein Fazit

Lieber etwas mehr Geld ausgeben und mit zwei Sony FS7 reisen, zumal der Preisunterschied im Einkauf der Kameras, mit 6.000 Euro für das Gehäuse der FS5 und 7.500 Euro für das Gehäuse der FS7 nicht so groß ist. Die FS5 ist bei dieser Qualität auch einfach viel zu teuer.

Autor: Thomas Hezel








Dreharbeiten, filmen in Ghana

Montag Morgen, an einem kalten Tag im Januar, die Botschaft Ghanas, am Ende der Schönhauser Allee in Berlin, ist zum Bersten voll. Ghana scheint ein beliebtes Land zu sein. Allerdings warten die meisten Anwesenden am Schlater für Passangelegenheiten und nur wenige am Visaschalter. Nach Angaben der englischsprachigen Dame brauchen wir für die Dreharbeiten in Ghana lediglich eine Presseakkreditierung und die normalen Online-Visa. Ich bekomme nach einiger Wartezeit ein kopiertes Formular für die Presseakkreditierung.

Die Presseakkreditierung über die Botschaft einzuleiten dauert, so wie es aussieht, allerdings eher Wochen als Tage. Alle Visa für das Drehteam können aber nur mit der Vorlage der Presseakkreditierung beantragt werden.

Im Internet finde ich einen sogenannten „Fixer“ in Accra:

Sulley Lansah
+233 545067569
+233 302767198

Er reagiert auf meine Mail innerhalb von einer Stunde und versichert mir, dass bei Vorlage aller Unterlagen, er eine Akkredietierung beim Ministerium für Information innerhalb eines Arbeitstages beantragen kann. Ich bekomme von ihm eine pdf-Vorlage zur Presseakkreditierung zugeschickt, die sich geringfürgig von der unterscheidet, die mir die Botschaft mitgegeben hat. Da ich schon mit der Vorlage der Botschaft begonnen habe benutze ich diese. Für jedes Mitglied des Filmteams muss ein Formular ausgefüllt und unterzeichnet werden. Zudem will er gescannte Passbilder und auf einem offiziellen Briefpapier der Filmproduktion eine genaue Angabe über die geplanten Dreharbeiten plus eine Equipmentliste mit den Seriennummern aller Geräte. Angeblich sind die Seriennummern wichtig, um bei Diebstahl oder Verlust nachweisen zu können welches Gerät gestohlen wurde.

Da ich schon die Einladung unseres Drehortes in Ghana (Universität von Ghana) habe, lege ich auch diese bei.

Die Formulare für die Akkreditierung habe ich als PDF in Indesign hinterlegt und dann ausgefüllt und die Unterschriften gescannt darunter gepackt.


  • Passbilder gescannt
  • Brief auf offiziellem Papier der Filmproduktion mit genauen Angaben über die geplanten Dreharbeiten
  • ausgefülltes und von jedem Mitglied des Drehteams ausgefülltes Formular (bei der Botschaft erhältlich)
  • Equipmentliste mit Seriennummern und genauer Gerätebezeichung plus Wert der Geräte
  • (Einladungsschreiben des Drehortes in Ghana)
  • Kosten 90 USD pro Person (Januar 2016)

Auf der Seite der deutschen Botschaft in Accra findet man ebenfalls Angaben zur Presseakkreditierung und zu Dreharbeiten in Ghana:

Hier wird noch darauf hingewiesen, dass es trotz erfolgreicher schriftlicher Akkreditierung erforderlich ist, nach Ankuft in Accra, direkt beim Informationsminister persönlich vorzusprechen, um so die Akkreditierung abzuschließen. Dafür sollte man vorab einen Termin beim Ministerium buchen.
Diesen Schritt erledigt für uns Suley, da er dort wohl bekannt ist und seine Kunden das persönliche Vorsprechen erspart.

Für die Drehgenehmigungen vor Ort, schreibt mir Suley, dass er auch diesbezüglich behilflich sein kann. Falls Drehorte noch gesucht werden, könne er auch welche vorschlagen. Da wir lediglich an der Universität drehen, regelt dies jedoch die Fakultät für uns. Aber auch dies funktioniert „afrikanisch“, also mit sehr viel Respekt vor der Universitätsobrigkeit und klappt erst in letzter Minute.

Visum für Ghana, besser vor Ort bezahlen!




Jeder Visumantrag für Ghana beginnt auf der Online-Plattform der Botschaft. Man kann den Antrag auch beginnen und sich dann mit der Antragsnummer später wieder einloggen und weitermachen.

Es empfiehlt sich die Anweisungen sehr genau durchzulesen und zu beachten. Besonders amüsant sind die Angaben für die hochzuladenden quadratischen Fotos (Achtung kein biometrisches Passbild). Die Botschaft möchte einen neutralen Hintergrund und gibt dann das Speicherformt vor, die Pixelgröße, den Farbraum, die Kompressionsstärke etc. Wer sich mit Photoshop gut auskennt, für den ist dies sicher kein Problem (jpg mit weniger als 20:1 Kompression, sRGB, Pixelgröße etc.), für alle Anderen empfiehlt die Botschaft sich doch lieber gleich an einen professionellen Fotografen zu wenden und warnt, dass bei Fotos mit falschen technischen Spezifikationen der Antrag abgelehnt wird.

Zu beachten ist auch, dass nach zwei Einladungs-/Ansprechpartnern in Ghana gefragt wird, die jeweils mit einer Ausweiskopie ihre Identität bestätigen müssen. Ich habe zwei Universtitätsprofessoren angegeben, jedoch ohne Ausweiskopie. Dieses Vorgehen hat funktioniert, da es sich um Personen einer Institution und nicht um Privatpersonen handelte.

Scannen und hochladen muss man Folgendes:

  • Foto
  • Einladungsschreiben aus Ghana
  • Bestätigung/Beschreibung ausgestellt von der Filmproduktion auf offiziellem Papier (hier immer reinschreiben, dass die Firma alle Kosten für Unterkunft, Verpflegung und Transport übernimmt)
  • Flugplan/Tickets
  • Kopie Pass
  • (Bei mir noch Bescheinigung des deutschen Auftraggebers.)


Nach erfolgreichem Abschluß des Online-Antrages druckt man diesen aus und geht mit den ganzen Unterlagen (die zuvor schon hochgeladen wurden, plus dem Pass) zur Botschaft.

Nun gibt man den Antrag ab und kann, je nachdem was man beantragt hat, beim Schnell-Visum angeblich nach 3 Tagen und beim Normal-Visum in 1-2 Wochen mit einer abschließenden Bearbeitung rechnen. Man bekommt – manchmal aber nicht immer – eine Email oder eine SMS, die einem zur Abholung des Passes auffordert. Ansonsten kann man den Bearbeitungsstand auch online einsehen.


Auf der Online-Plattform steht, dass die Bezahlung für die Visumgebühr nur auf das Konto der Botschaft Ghanas bei der Deutschen Bank erfolgen kann. DIES IST FALSCH! Alle professionellen Visaagenten bezahlen bar am Schalter bei der Botschaft in Berlin. Bis meine Banküberweisung im Visasystem sichtbar war, dauerte es eine Woche, obwohl das Geld laut Aussage der Deutschen Bank schon am selben Tag auf dem Konto der Botschaft eingetroffen war.

Mein Schnellvisa für 100 Euro, das eigentlich innerhalb von 3 Tagen hätte ausgestellt werden sollen, wurde so erst nach einer Woche bearbeitet. Bei meiner persönlichen Nachfrage bei der Botschaft sagte die Bearbeiterin, dass sie das Geld noch nicht im System sehen würde und mein Antrag deshalb auch nicht bearbeitet würde. Ich war schon kurz davor doppelt zu bezahlen, als es dann, einen Tag vor Abreise, doch noch klappte.


Ghana gehört NICHT zur ATA-Carnet-Gruppe und erfordert deshalb besondere Zollformularitäten bei der Einreise mit einer professionellen Filmausrüstung.

Im Grunde funktioiert dies in Afrika eigentlich immer gleich:
Entweder man hinterlegt eine Sicherheit (in der Regel 20% des geschätzten/wahren Equipmentwertes), die man zwar zurückfordern kann, aber in der Regel nie wieder sieht oder man findet jemandem, der für die vollständige Wiederausfuhr des Equipments bürgt. Ein sogenannter „Custom Bond“ wird meist von Speditionen gegen eine Gebühr ausgestellt.
Die Alternative ist stundenlanges Verhandeln bei der Einreise mit einem Zöllner (bei mir waren es meist resolute Damen, unterstützt von mehreren Gehilfen),  um den Preis für die sogenannte „Hinterlegung“, die man jedoch nie wieder sieht, auszuhandeln. Das begann dann z.B. in Tanzania bei 20.000 bis 30.000 USD und endete nach 3 Stunden bei 2.000 USD, die ein schnell herbeigerufener Jugendfreund der Zöllnerin, der zufüllig eine Spedition betreibt, als „Bond-Gebühr“ ohne Quittung in seine Tasche steckte.

In Ghana erledigte die „Bond-Formalitäten“ Suley gegen eine Gebühr von 200 USD für zwei Filmausrüstungen, die an zwei verschieden Tagen ins Land kamen und mit einem Wert von 6.000 USD und 9.000 USD als Gebrauchtgeräte angegeben waren (ungefähr 15% des tatsächlichen Wertes).

Bei der Einreise am Flughafen in Accra geht man nach dem Gepäckband durch zwei Reihen von Zolltischen, an denen die Koffer kontrolliert werden. Ich war schon an allen Tischen vorbei, als am Ende die „übliche“ resolute Dame meinen Alukoffer entdeckte und mich zu sich an den Aufsehertisch beorderte. Sie legte zusammen mit ihren Gehilfen dann auch sofort los und als sie das Wort „Filmausrüstung“ hörte ,verlangte sie nach der Kaution oder einem „Custom-Bond“. Suley wollte mich zwar abholen, wartete aber draußen. Ich gab einem der Zöllner die Telefonnummer, worauf er Suley anrief und ihm durch die Eingangskontrolle half. Suley hatte die entsprechenden Papiere, die er schon beim Zoll am Nachmittag abgestempelt hatte. Es musste noch ein Formular ausgefüllt werden, dann war ich durch und erfolgreich in Ghana eingereist.

Als der Kameramann zusammen mit dem Tonmeister mit der zweiten Ausrüstung einreisten, waren alle Zolltische leer und weit und breit keine Zöllner zu sehen. Allerdings war es Sonntagnachmittag.


  • Presseakkreditierung (über den Fixer) pro Person 90 USD
  • Schnell-Visa pro Person 100 €
  • Zoll („Custom Bond“) 200 USD
  • Gage Fixer 400 USD
  • Minibus mit Fahrer über den Fixer pro Tag 120 USD

Ich habe dem Fixer Sulley Lansah gleich bei meiner Ankuft die komplette Summe, auch für das Team und den Minius vorab ausbezahlt. Das war ein kleines Waagnis, aber es hat mit gutem Vertrauen funktioniert.


Auch die schönste Reise beginnt mit den Formalien auf der Botschaft. Afrikanische Botschaften lieben Papier – viel Papier – und am besten mit schönen buten Stempeln.


Accra hat auch schöne Seiten, nur ging es hier um Entwicklungsprojekte, die natürlich genau dort ansetzen, wo es eben nicht ganz so schön ist. (Björn Geldermann – Ton, Peter Armin Petrides – Kamera, Ghana 2016 – für zazudesign – die Schwarzwald Werbeagentur in Berlin)









Linux Fileserver von Thomas Hezel - Teil 2 Software

Schneller Linux Fileserver / Datenserver im Eigenbau – Teil 2 Software


0. Inhaltsverzeichnis – Teil 2 Softwae

  1. Grundüberlegungen zur Server-Software
  2. Start mit dem AMI-BIOS
  3. Das BIOS des Adaptec-RAID-Controllers
  4. Ubuntu-Server installieren
  5. Den RAID-Controller und das RAID einrichten
  6. Samba Server Datenaustausch mit dem „smb-Protokoll“
  7. Sicherheitsmaßnahmen für Samba und SSH
  8. sFTP-Server mit openSSH-Server realisieren/teilweise
  9. Netzwerk von DHCP auf feste IP-Adresse umstellen, LAN-Leitungen bündeln
  10. Verschicken von Statusmeldungen per Mail
  11. Ungelöste Probleme
  12. Abschließende Betrachtungen

I. Grundüberlegungen zur Server-Software

Der Fileserver sollte schnell, einfach und sicher sein. Damit scheiden Produkte wie Windows Server von vorneherein aus und es bleibt eigentlich nur Linux. Bei Linux hat man die Wahl zwischen verschiedenen Distributionen (Wikipedia Linux Distributionen) und unter den Distributionen wiederum verschiedene „Flavours“, also Abwandlungen, die den „Geschmack“ einer bestimmten Benutzergruppe treffen.
Linux bezeichnet eigentlich nur den Kern des Betriebssystems, die Distributionen fügen das restliche Umfeld hinzu. Die deutsche „Linux-Bibel“ stammt von Michael Kofler („Der Kofler“) und ist gut verständlich geschrieben: Linux – Das umfassende Handbuch

Anmerkung: Als mündige Bürger sollten wir natürlich nicht beim großen Haifisch Amazon bestellen, sondern bei einer kleineren Plattform oder im Fachhandel.

Die am besten, für jemandem, der sich nicht täglich mit Linux beschäftigt, dokumentierte Distribution ist Ubuntu der südafrikanischen Firma Canonical. Es gibt einen einfachen Update-Mechanismus und eine sehr gute Community (sogar auf Deutsch), die bei Problemen und Fragen hilft Lösungen zu finden:
Der Nachteil bei Ubuntu ist, dass man nicht immer so genau weiß, was die Firma Canonical hinter verschlossenen Türen so alles treibt. Da es sich um Open-Source handelt kann man natürlich zumindest theoretisch (viele Linux-Helden tun das) den ganzen Programmcode durchsehen, dennoch hat sich Canonical z. B. mit der Übermittlung von Daten an Amazon (bei der Suche in der Desktop-Version) nicht gerade Freunde gemacht. (So werden sie die Amazon-Suche wieder los.)

Bei Open-Source-Software muss in der Regel alles was dazukommt ebenfalls wieder Open-Source sein. Dies ist manchmal sehr schwierig, wenn man z. B. einen Druckertreiber eines speziellen Druckers verwenden will, der z. B. von HP kommt. Verwendet man das „main-Package“ kommt man aber in der Regel ohne Erweiterungen klar, es sei denn, man hat ganz spezielle Grafikkarten oder ähnliches installiert. Beim Server ist es sowieso einfacher da man sich um Grafik, Drucker und Monitore keine Sorgen machen muss. Es ist zwar manchmal nicht schlecht mit Tastatur, Maus und Monitor direkt am Server zu arbeiten, aber dafür reichen die billigsten Standardgeräte aus, da man sie sowieso nur ganz selten braucht.

Es gibt bei Linux zwei wichtige Hauptfamilien, die jeweils auch eigene Software-Pakete auf eigenen Plattformen anbieten: einmal die Debian-Familie, zu der auch Ubuntu gehört (Debian-GNU/Linux-Derivat) mit dem DEB Packetmanager und die Fedora-Red Hat-SUSE Familie mit dem RPM Package Manager. Das Installieren von Software funktioniert jeweils mit etwas anderen Befehlen: „dnf“, „yum“, „zypper“ bei RPM und „apt-get“ bei Debian/Ubuntu.

Da meine Lebenszeit beschränkt ist und ich nicht die freie Zeit habe mich in etwas speziellere Linux-Distributionen einzuarbeiten (obwohl ich es natürlich gerne täte) habe ich mich für Ubuntu-Server entschieden.

Ubuntu Server

Es gibt Long-Term-Support LTS Versionen, die über fünf Jahre von Ubuntu eine Updategarantie bekommen. Dann gibt es neuere Versionen, die noch teileweise im Entwicklungsstadium sind. Für einen Server eignet sich eine LTS-Version, nur falls man Spam-Filter verwendet sollten diese natürlich immer am Puls der Zeit sein. Die LTS-Versionen werden mit dem Jahr und dem Monat der ersten Veröffentlichung bezeichnet. Bei mir ist dies Ubuntu 16.10 LTS mit dem Beinahmen „Yakkety Yak“.

Der Server bekommt folgende Hauptprogramme bzw. Dienste:

a. SSH-Server (verschlüsselte Fernwartung/Installation incl. secure-FTP)
b. Samba-Fileserver (Dateiaustausch)
c. Mail-Server (minimal, nur um Warnmeldungen zu senden)

Standardanforderungen an die Hardware für einen Ubuntu Server
1 GHz Prozessor
512 MB Arbeitsspeicher
1 GB Festplatte

Was hat unser Server an technischer Ausstattung
(siehe Hardware Teil)
Supermicro Mainboard mit 1,9 GHz, 6 Kernen und 12 Threads
integrierter Grafikprozessor
32 GB Arbeitsspeicher
120 GB SSD-Festplatte für das System
48 TB SATA-Festplatten für Daten am Raid-Controller im PCIe 3.0 Steckplatz

2 x 10 Gb/s LAN
USB 3.0 und 2.0
VAG Port für einen Monitor

BIOS 128 Mb SPI Flash mit AMI BIOS
UEFI 2.4

Beim AMI-BIOS gibt es Legancy-, UEFI- und DUAL-Boot-Mode.
Für UEFI gibt es eine UEFI-Shell in der man direkt ins System mit Befehlen eingreifen kann. (Dies ist aber auch ein Sicherheitsrisiko.)

EFI (UEFI = Weiterentwicklung von Windows) ist ein neues BIOS-System, das es erlaubt mehr als 2 TByte auf einer Festplatte zu verwalten und die Festplatten mit einer modernen GUID Partition Table (GPT) zu versehen. (Bei Windows ab Version 8 im Einsatz, beim Mac schon längere Zeit.) Da Linux GPT von Hause aus schon lange kann, kann man auch mit dem BIOS arbeiten. Zeitgemäßer ist jedoch UEFI, das aber eine 64-Bit-Version von Linux braucht und bei Ubuntu ab 12.10 in vollem Umgang funktioniert.

Das Mainboard ist laut Supermicro Internetseite für den Betrieb mit Ubuntu 14.10 LTS und 15.10 geeignet und getestet. Ob es mit 16.10 LTS läuft muss man also selbst testen. Bei mir hat es funktioniert.

II. Start mit dem AMI-BIOS

Ein Windows-Keyboard (mit Funktionstasten) und einen Monitor mit VGA-Kabel braucht man um direkt am Server zu arbeiten.

Schaltet man den Server ein, so meldet sich zuerst das AMI-BIOS des Mainboards und im Laufe des Startprozesse auch das BIOS des Raid-Controllers. Beide Prozesse kann man anhalten, um im jeweiligen System Einstellungen vorzunehmen.

Anhalten AMI-BIOS: F11 oder DELETE
Anhalten Raid-Controller BIOS: CTRL+A

BIOS Supermicro
BIOS Supermicro – schon mal ein gute Zeichen …

Raid-Controller BIOS

An Anfang des AMI-BIOS-Starts startet zuerst das Raid-Controller-BIOS. Hier noch mit einer RAID-50-Einstellung, die ich getestet habe. Man kann von hier aus ein ganzes Raid-System einrichten. Weiter unten dazu mehr. Will man Einstellungen vornehmen muss man „Ctrl-a“ drücken.

BIOS-Start anhalten

Wenn das AMI-BIOS startet, hat man ein paar Sekunden Zeit, alles zu lesen und noch rechtzeitig die F11-Taste zu drücken, damit man zu den Einstellungen kommt.


Den RAID-Controller lassen wir momentan wie er ist und widmen uns dem AMI-BIOS des Mainboards.


AMI-BIOS Startauswahl.

Im Startmenü hat man mehrere Möglichkeiten. Wichtig ist: „Enter Setup„, man erreicht den Eintrag mit den Pfeiltasten auf der Tastatur und mit „Enter“. Die Maus funktioniert hier nicht, falls man eine solche angeschlossen hat!

BIOS Main Setup

BIOS Main Setup ist die Startseite, von hier aus gelangt man in die anderen Menüs. Man sieht hier ob die Uhrzeit über das LAN richtig ankommt (Zeitserver im Router) und ob der RAM-Speicher in vollem Umfang erkannt wurde (unten links).

Unsere erste Aufgabe ist es dem BIOS mitzuteilen, dass wir für das System eine SSD verwenden. Dies geschieht unter „Advanced“.

BIOS Advanced

BIOS „Advanced“. Unter „SATA Configuration“ verbirgt sich natürlich das Festplattenmenü.

SATA-Konfiguration BIOS

SATA-Konfiguration im BIOS. Unter „SATA Port 0 / SATA Device Type ist noch [Hard Disk Drive] eingestellt. Mit den Pfeiltasten und „Enter“ kommen wir zum Menü und können auf SSD/Solid State Drive umstellen.

BIOS SSD einstellen

Im AMI-BIOS SSD einstellen. Beim Verlassen des BIOS muss das Ganze dann gespeichert werden!

Zweite Aufgabe im BIOS: IPMI einrichten

Intelligent Platform Management Interface (IPMI) ist eine Schnittstelle, über die man den Rechner überwachen und warten kann. Es gibt Daten zur Temperatur, zum Speicher, zu den Lüftern und alles Mögliche, was sich so auf dem Mainboard tut. Dafür gibt es eine eigene IPMI-LAN-Buchse über die man einfach ein LAN-Kabel auf den Switch legt. Um den Zugang zu erleichtern sollte man, genauso wie beim normalen Server-LAN auch IPMI eine feste IP-Adresse geben. Dies macht man im Router und trägt die gewählte Adresse dann hier ein. Es funktioniert aber auch mit einer dynamischen automatischen Zuweisung über DHCP.

IPMI IP-Adresse einstellen

IPMI IP-Adresse einstellen. Dazu braucht man noch einen „user name“ und ein „password“.

IPMI Default Passwort und User-Name Einstellungen sind: ADMIN und ADMIN.
Die sollten natürlich später auf alle Fälle ausgetauscht werden. Der Passwortwechsel funktioniert über das IPMI-Menü, nicht hier im BIOS.


Wenn man innerhalb des IPMI-Tools das Passwort unter „Configuration-Users“ für eine Benutzer ändert und das Passwort zu lang ist (> 20 Byte) dann wird es zwar angenommen und auch mit „Passwort geändert“ quittiert, nur kommt man dann beim Einloggen nicht mehr in das IPMI-Menü. Die Lösung darin besteht, das Passwort mit dem Linux-Programm „ipmitool“ wieder zu ändern. Passwort Probleme bei komplizierten SMPT-Mail-Passwörtern gibt es mit IPMI auch wenn man später die Mail-Benachrichtung einrichtet (siehe weiter unten).

Mit dem „ipmitool“ kann man das Passwort für den IPMI-Zugang ändern. Alternativ kann man IPMI auch ganz abstellen, wenn der Server mal läuft.
Zum ändern des Passwortes bei IPMI und zu Sicherheitsaspekten bei IPMI gibt es gute Beiträge von Thomas Krenn.

BIOS-Setup mit einem Passwort sichern

Wer einen Tor-Exit-Node betreibt und deshalb, wenn er im Urlaub ist, immer Besuch von der NSA bekommt, der kann auch das ganze BIOS mit einem Passwort absichern.

Der Server sollte nach einem Problem wieder alleine starten können und nicht an einer Passworteingabe hängen bleiben.

Hier kann man auch die Einstellungen zu „Secure Boot“ vornehmen: siehe weiter unten bei UEFI. Ich habe „Secure Boot“ auf „disabled“ gelassen.

BIOS absichern

BIOS mit einem Passwort absichern.

Von AMI-BIOS auf UEFI umstellen

Das „U“ bei UEFI steht für „unified“. Windows hat das EFI-System weiterentwickelt um die Sicherheitskomponente „Secure Boot“. Dies bedeutet, dass der Kernel nur startet, wenn auf dem Mainboard die entsprechenden Schlüssel hinterlegt sind. Damit kann man verhindern, dass schon beim booten Spionage- und Schadsoftware geladen wird. Leider haben die Boards in der Regel nur den Windows-Schlüssel hinterlegt. Die Distributionen müssen diesen bei Microsoft kaufen, damit sie ihn verwenden dürfen. Deshalb wird bei Linux diese Funktion meist nicht genutzt, obwohl Ubuntu den Windows-Schlüssel wohl gekauft hat und mit dem Windows-Schlüssel den Linux-Kernel starten kann.


Hier ist noch ein „DUAL-Boot-Mode“ eingestellt, was bedeutet, dass zuerst versucht wird im „EFI-Modus“ zu booten und falls dies misslingt versucht es der Treiber im „BIOS-Modus“.

Umschalten auf UEFI

Umschalten auf UEFI, damit Ubuntu auch tatsächlich den EFI-Modus anwendet.

UEFI Boot Mode

UEFI Boot Mode

UEFI Schell

EFI-Schell für ganz spezielle Einstellungen, falls diese nötig sind. Sie erscheint auch, wenn es irgendwo hakt oder etwas nicht ganz stimmt, automatisch. Hier hat der „EFI-BOOT“ nicht funktioniert, da er noch gar nicht eingerichtet war.

Einen Überblick über die möglichen Befehle gibt es unter „help“ oder im Netz: EFI-Shell-Befehle

III. Das BIOS des Adaptec-Raid-Controllers

Zu erreichen über „CTRL+a“ beim Raid-Controller-BIOS-Start, innerhalb des normalen BIOS-Starts.

Laut Hersteller sollte das BIOS jedoch nicht zur Verwaltung des RAID-Controllers benutzt werden, sondern der maxView-Storage-Manger, eine spezielle Software für diesen Controller. Dazu weiter unten mehr, hier aber trotzdem das RAID-Controller-BIOS:

Raid-Controller BIOS


Raid-Controller Bios Array

RAID-Controller-Bios. Hier mein schon angelegter RAID 50 Test-Array. Darunter sieht man links das „Create-Array-Menü“.

Einzelne Festplatten Controller

Einzelne Festplatten im RAID-Controller-BIOS und ihre Steckplätze. (Achtung: Die Bezeichnung der Kabelbuchsen (CNx) in der Bedienungsanleitung (welche Buchse ist wo auf dem Mainboard) ist falsch. Das kann man z. B. testen, indem man einzelne Platten abzieht oder mithilfe des maxView-Storage-Managers. Eine korrigierte Zeichnung findet man in „Teil 1– Hardware“, am Anfang.)

Über das RAID-Controller-BIOS kann man ein komplettes RAID anlegen, indem man einen Array bildet und den RAID-Level wählt. Alternativ – die einzig richtige Herangehensweise laut Hersteller – macht man dies über den maxView-Storage-Manager, einer Software, die auf dem Server installiert werden muss und die über LAN dann das komplette RAID verwaltet.

Alte Systemsoftware beim RAID-Controller

Bei mir war das Problem, dass im BIOS plötzlich Bezeichnungen waren wie „BOX00 :02“ oder „EXP0 : phy0“ oder einzelne Festplattenplätze „CNX : DEV XX“ doppelt vorkamen. Es wurden „Backplane-Anschlüsse“ und „Expander-Anschlüsse“ angezeigt, die es nicht gab. Alle meine Festplatten sind direkt und nicht über eine Backplane angeschlossen.
Der Servershop-Bayern hatte, als ich um Rat fragte, gleich die Vermutung, dass die Systemsoftware des RAID-Controllers wahrscheinlich veraltet war und deshalb falsche Dinge anzeigte. Nachdem ich den maxView-Storage-Manager installiert hatte und darüber die Systemsoftware des RAID-Controllers aktualisiert hatte, war das Problem behoben und die Anzeige sah so aus, wie oben auf dem Bild.
Eine zweite Falle ist die Anleitung zur Aktualisierung der Systemsoftware in der Bedienungsanleitung und auf der Homepage von Adaptec bzw. Microsemi. Angeblich muss man sich bei Microsemi einen Support-Account anlegen, dann dort im Support die neue Software herunterladen und installieren. Nach mehreren Stunden hatte ich dort aber trotz Anmeldung immer noch keine Seite mit einem Download gefunden.

Der Support hat mir dann den Link zum Firmware-Update des RAID-Controllers geschickt, aber mit dem maxView-Storage-Manager geht es noch einfacher und zwar auf Knopfdruck. Weiter unten mehr zu dieser Verwaltungssoftware für das RAID.


Die „CNX-Bezeichnungen“ beziehen sich immer auf eine Buchse (mini SAS HD connector x 4) auf dem RAID-Controller, in die ein Vierfach-Kabel kommt, das sich zu den Festplatten hin in vier einzelne Kabeln aufspaltet. Die Lage auf der Zeichnung in der Bedienungsanleitung, wie oben schon erwähnt, ist falsch. Im maxView-Storage-Manager werden aber auch die Festplattenseriennummern angezeigt und man kann ziemlich einfach herausfinden wo z. B. Buchse CN0 oder CN4 ist. Danach sollte man die Kabel mit einem Schild ebenfalls beschriften, damit man später noch weiß, was wohin gehört.


mini SAS x 4 Connector-Kabel

mini SAS x 4 HD Connector-Kabel

Hier kommt noch eine sehr nützliche Seite im Raid-Controller-BIOS, nämlich die Temperaturkontrolle des Flash-Backup-Moduls und dessen Stromversorgung. Das Backup-Module ist bei mir unterhalb des Netzteils verschraubt, also außerhalb jeglicher Hitzeansammlungen.

Temperatur Radi-Controller

Temperatur Flash-Backup-Modul

BIOS Raid-Controller speichern

BIOS-RAID-Controller, falls man Änderungen vorgenommen hat, speichern nicht vergessen!

IV. Ubuntu-Server installieren


Folgende Vorarbeiten sind erledigt:

  • SSD Platte angemeldet
  • IPMI funktioniert und wir können von der Ferne schon die Kerndaten des Mainboards sehen
  • BIOS ist auf UEFI umgestellt
  • Secure Boot ist aus

Was liegt zu diesem Zeitpunkt noch im Argen?

  • die Lüfter pumpen, da sie ständig unter die Mindestdrehzahl des Mainboards gehen
    Lösung: ipmitool, ein Linux-Programm
  • die Systemsoftware des RAID-Controllers ist veraltet, das BIOS zeigt falsche Werte an
    Lösung: maxView-Storage-Manager

Ubuntu-Server installieren Vorgehen

Auf der Seite von Ubuntu kann man die aktuelle Server-Long-Term-Version herunterladen. Achten Sie darauf, dass Sie die LTS-Version aussuchen. Es gibt auch spezielle Versionen z. B. für ARM-Chips. Bei mir war es die „Ubuntu Server 16.04.1 LTS“.

Man bekommt eine iso-Datei, die nun auf  einen USB-Stick, in einer ganz bestimmte Formatierung (startfähig), kopiert werden muss. Unter Linux ist dies einfach, aber wir gehen hier davon aus, dass Sie vielleicht noch keinen Linux-Desktop-Rechner eingerichtet haben. Die Vorgehensweise beim Mac ist etwas komplizierter, klappt aber dank „Terminal“ auch. Später habe ich festgestellt, dass es am Mac jedoch Probleme mit der Verifizierung geben kann.

Linux startfähiges USB-Stick-ISO-Image am Mac erstellen

  1. Teminal am Mac öffnen
  2. folgendes eingeben:
    hdiutil convert -format UDRW -o linuxServer.img /PFAD/Ubuntu.iso
  3. und dann nach einem Leerzeichen, die ISO-Datei von Ubuntu mit der Maus dahinter ziehen, damit schreibt das Terminal automatisch den Pfad der Datei ins Terminal – „linuxServer.img“ ist die Zieldatei, sie landet automatisch in Ihrem Heimatverzeichnis auf dem Mac, also das Verzeichnis das so heißt wie der User (macht man ein Finder-Fenster auf, dann ist es links in der Liste unter dem Benutzernamen zu finden)
  4. Nach erfolgter Kovertierung manuell das „.dmg“ am Dateinamen entfernen, so dass sie wirklich „linuxServer.img“ heißt und auf den Schreibtisch ziehen
  5. dem USB-Stick geben wir einen eindeutigen Namen z. B. „LINUX-SERV“
  6. im Terminal finden wir heraus, wie der Mac den USB-Stick intern bezeichnet, bzw. seinen Einhängepunkt
  7. im Terminal geben wir ein:
    diskutil list
  8. anhand der Größe, der Angabe „DOS_FAT_32“ und anhand des Namens finden wir den Einhängepunkt des USB-Sticks – bei mir „/dev/disk3/“
  9. nun geben Sie im Terminal den folgenden Befehl ein mit Ihrer Nummer ACHTUNG alle Daten auf dem USB-Stick werden gelöscht und sind Sie wirklich sicher, dass es die Nummer des USB-Sticks ist? Lieber zweimal prüfen! Fragezeichen in folgendem Befehl mit Nummer ersetzen:
    diskutil unmountDisk /dev/disk?
  10. nun kommt das Überspielen des linuxServer-Images auf den Stick:
    sudo dd if=/Users/thomas/Desktop/linuxServer.img of=/dev/rdisk3 bs=1m
    nach „if=“ einfach wieder die linuxServer.img-Datei mit der Maus hinziehen – rdisk? muss Ihre Nummer erhalten, die Sie weiter oben ermittelt haben
  11. man muss das Admin-User-Passwort eingeben, dann dauert es eine ganze Weile bis im Terminal die Übertragung bestätigt wird und ein Popup-Fenster erscheint mit dem man den USB-Stick auswirft – „Auswerfen“ klicken!
  12. USB-Stick abziehen

Wem das alles zu kompliziert ist, der kann es auch einfacher haben mit dem Mac-Programm Unetbootin oder unter Windows oder am einfachsten am Linux-Desktop mit dem startup-disk-creator.

Eine Suche im Netz ergibt etliche Anleitungen z. B. die für den Mac von timSchropp, auf die ich mich beziehe.

Linux startfähiges USB-Stick-ISO-Image am Ubuntu-Desktop erstellen

Als erstes kann man beim Installieren des Ubuntu-Servers den USB-Stick auf Konsistenz mit einer Prüfziffer analysieren. Leider schlug dies bei mir nach der Mac-Prozedur fehl. Es gab eine Inkonsistenz bei einer Datei. Der Stick hatte trotzdem soweit funktioniert, dennoch habe ich mit dem Ubuntu-Desktop-Rechner einen neuen Stick erstellt. Eine Anleitung findet man auf der Ubuntu-Internetseite unter create-a-usb-stick-on-ubuntu.

Ubuntu-Server auf dem neuen Server installieren

USB-Stick in die Buchse und den Server neu starten.

Es kommen diverse Abfragen, nach Land, Uhrzeit, Tastatur etc.

Netzwerk einrichten

Dann eine Abfrage nach der Netzwerkverbindung. Ich habe erst mal alles mit DHCP automatisch einrichten lassen und den 10GBASE-T-Netzwerkadapter gewählt. Um Duplex und dergleichen kümmere ich mich später. Wenn der Switch nur Gigabit hat, macht es unter Umständen auch Sinn 10GBASE-T ganz zu deaktivieren, da dessen Prozessor ganz schön warm wird (momentan das heißeste Bauteil auf dem Mainboard), also Strom in sinnlose Hitze verwandelt. Auf der anderen Seite kann man beim 10 GB Anschluss sicher sein, dass er bei 1 GB auch das Maximum was möglich ist liefert.


Netzwerk einrichten

Netzwerk einrichten

Festplatte partitionieren

Hier gab es einen ordentlichen Knoten, der sich lange einer Lösung verweigert hat:

Man sucht sich zuerst die komplette SSD aus und wählt „Manuell„. Alles was „Geführt“ heißt, bedeutet nicht „geführt“, sondern automatisch ohne Einflussnahme!

Partionierung Linux

Partionierung der Festplatte Linux-Ubuntu-Server

ganze SSD verwenden

ganze SSD verwenden

Das Mainboard haben wir auf UEFI gestellt. Die SSD-ist bereit komplett überschrieben zu werden, da sie nur das Linux-System aufnehmen soll und sonst weiter nichts. Das Home-Verzeichnis wird im Großen und Ganzen wahrscheinlich nicht benutzt werden, da alle Daten auf das RAID gehen. Man kann die SSD, wenn man sie vorher benutzt hat, mit dem Terminal am Mac komplett von allen Partionen befreien, um  sicher zu gehen, dass nicht mehrere EFIs angelegt werden, aber es geht auch ohne.

Dennoch kommt am Anfang eine Meldung, ob man wirklich mit EFI fortfahren will, da es anscheinend noch andere Betriebssysteme auf der SSD gibt. Diese gibt es nicht, also ruhig mit „Ja“ beantworten und mit EFI fortfahren und der Erstellung einer leeren Partionstabelle für die ganze SSD fortfahren.



UEFI und angeblich schon vorhandene Betriebssysteme, die es gar nicht gibt.

UEFI Ubuntu und xls

UEFI Ubuntu und xfs

Partionen für den Ubuntu-Server

  1. EFI-Partion mit 200 MB
  2. Swap-Partion mit 34 GB (2 GB mehr als der Arbeitsspeicher, Swap ist die Auslagerungspartion für den Arbeitsspeicher, falls er zu voll wird)
  3. System-Partion gemountet an ROOT: / – Größe 30 GB mit dem Dateisystem xfs ??? (es würden auch 20 GB reichen)
  4. Home-Partion gemountet an /home – Größe 50 GB mit dem Dateisystem xfs
  5. Rest als FREIER SPEICHER, falls man später irgendwo noch etwas braucht

Erst mal ist mir aufgefallen, dass automatisch immer vor der ersten Partion ein freier Speicherblock von 1 MB automatisch eingebaut wird. Das muss so sein, eine Erklärung gibt es unter: Ubuntu-Partionierung leerer Block mit 1 MB

Das ging soweit alles ganz gut, doch als ich den Server starten wollte landete ich immer bei der „grub-Bash“ mit dem Eingabe-Prompt: „grub>“.

grub Schell


Nach zweimaliger Eingabe von „exit“ landet man bei der „EFI-Bash“. Der Grub-Loader hatte also irgend ein Problem mit dem Laden des Kernel.

Beim Ubuntu-Desktop hatte ich ähnliche Angaben gemacht und da ging es, als ich ihn zum Testen auf dem Server installiert hatte. Mein erster Versuch war eine automatische Partionierung mit „Geführt – ganze Festplatte verwenden“ und siehe da es ging. Gab man in der Grub-Bash „ls“ ein und versuchte mit „ls“ wiederum den Inhalt der gelisteten Partionen anzuzeigen kam: „Dateisystem kann nicht gelesen werden“. Also habe ich meine manuelle Partionierung nochmals durchgeführt, aber dem System das Dateisystem „ext4“ mitgegeben und siehe da es ging plötzlich. Home habe ich auf „xfs“ gelassen.

Das Dateisystem „xfs“ geht nicht für die Systemdateien und GRUB bei Ubuntu-Server 10.16, es muss für das System z. B. „ext4″ gewählt werden!
Das hängt vielleicht damit zusammen, dass „xfs“ keinen Platz für einen Boot-Sektor lässt, den es bei EFI aber eigentlich gar nicht braucht? Hat jemand eine schlaue Erklärung?
(Stand Oktober 2016)



Sicherheitsupdates Ubuntu

Sicherheitsupdates Ubuntu

Sicherheitsupdates sollen automatisch installiert werden, andere Aktualisierungen macht man lieber manuell, damit sie nicht das System lahmlegen.

Software Pakete jetzt zusammen mit dem Ubuntu-System installieren

Ubuntu Server Software

Ubuntu-Server Software-Sammlungen installieren

Man braucht die „standard system utilities“, „OpenSSH server“ und „Samba File server“. Alles andere kann man später installieren, da man z. B. nicht einen vollen Mail-Server braucht um Mails bei Systemproblemen zu verschicken etc.

OpenSSH braucht man für die Fernwartung und der Samba-File-Server bildet den Kern unseres Fileservers.

Ubuntu stellt die Pakete zusammen und löst auch Abhängigkeiten auf, die zwischen Paketen bestehen, so dass immer alles gut zusammenpasst.

Ubuntu-Installation fertig

Ubuntu fertig installiert

Ubuntu fertig installiert

Nach einigen Minuten ist Ubuntu-Server fertig installiert. Wer die Abläufe nochmals im Detail nachlesen will findet Hilfe und Anleitungen auf der Ubuntu-Internetseite. Leider gab es keine Hinweise zum meinen Problemen mit dem Dateisystem „xfs“, das sich hauptsächlich für große Datenmengen eignet, aber von einigen Distributionen, auch so wie ich es vorhatte, generell eingesetzt wird.

Der kleine Hinweis am Bildschirm erinnert daran, dass man beim Neustart noch den USB-Stick abziehen sollte, da man sonst zwangsläufig wieder im Installationsmodus landet. Der Server startet neu und wenn man Glück hat bleibt der Startvorgang nicht an der Grub-Bash hängen, sondern fängt an etliche Dateien zu laden, bis er schließlich bei einem charmanten Eingabepromt in der Bash endet.

Ende gut alles gut!
Nicht ganz das Ende, aber jetzt geht es weiter in der Welt von LINUX.

Von nun an kann man alles über SSH, bequem vom Schreibtisch aus weiter installieren und einstellen. Ich benutze dazu das Terminal am Mac.

Einloggen mit SSH am Server

Am Mac öffnet man das Terminal und gibt folgendes ein, falls man am gleichen Router wie der Server hängt:

SSH username@servername


SSH username@IP-address

Danach wird man noch aufgefordert sein Passwort anzugeben, jetzt wird man verbunden. Beim ersten Mal wird der Fingerprint noch angegeben, d. h. der Sicherheitsschlüssel und man muss bestätigen, dass man dem Schlüssel vertraut und sich mit dem Server verbinden will.

Nachdem ich den Ubuntu-Server nochmals ganz neu eingerichtet habe (Versuch die RAID-Controller-Treiber einzurichten) musste ich am Mac erst den alten Sicherheitsschlüssel löschen, da der Mac bei zwei unterschiedlichen Schlüsseln vom Server mit dem selben Namen, eine „Man-in-the-middle-Attack“ vermutete.

Die ganze Software auf den neuesten Stand

Bevor man weitere Einstellungen vornimmt kann man die ganze Software einmal abgleichen und dann auf den neuesten Stand bringen. Das „-y“ sorgt dafür, dass Rückfragen (z. B. ob Abhängigkeiten mit aktualisiert werden sollen) automatisch mit „Ja“ beantwortet werden:

sudo apt-get update && sudo apt-get upgrade -y

Manchmal müssen bei einem Upgrade auch zusätzliche Pakete installiert werden, dies macht die obige Zeile nicht. Es kommt die Meldung: „Die folgenden Pakete sind zurückgehalten worden“. Will man beim Upgrade auch neue zusätzliche Pakete landen, dann braucht es diesen Befehl:

sudo apt update && sudo apt full-upgrade

Ein aufgeschobenes Problem behandeln: Die pumpenden Lüfter

Pumpender Lüfter WarnlampeDie rote Warnlampe Item 51/LED 8 : Dauerleuchten = Überhitzung, Blinken = PWR/PWM-Fehler oder Lüfterausfall. Bei mir hat sie geblinkt.

PWM Lüfter und PWR
PWM ist die Pulsweitenmodulation des Lüfters, ein Steuersignal des Mainboards gibt ein 25 kHz Signal an die Lüfterelektronik um den Lauf zu steuern. PWR steht denke ich für engl. „Pulse Width Regulation“ des Mainboards.

Wie wir im „Teil 1 – Hardware“ festgestellt haben, pumpen die zwei noctua-Lüfter. Sie fallen langsam auf eine niedrige Geschwindigkeit ab und das Mainboard steuert sofort dagegen, indem es die beiden 15 cm-Lüfter wieder auf ihre Maximalumdrehungszahl hochfährt. Dies liegt daran, dass das Mainboard von kleinen Lärmlüftern ausgeht, die direkt auf die Kühlkörper geschraubt sind und mindestens mit 700 U/Min. drehen sollen. Stellt das System fest, dass die Lüfter unter diesen Wert (Threshold) abfallen, werden sie künstlich wieder hochgefahren. Der Lösungsversuch des Problems besteht darin im System den „Threshold“ für die Lüfter zu ändern:

ipmitool installieren und gegebenenfalls die Kernelmodule laden

sudo apt install ipmitool

versucht man nun ipmitool zu starten mit
ipmitool sensor
Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory

Manchmal müssen erst noch entsprechende Kernelmodule dauerhaft eingeschaltet werden:
sudo modprobe ipmi_devintf
sudo modprobe ipmi_msghandler
sudo modprobe ipmi_poweroff
sudo modprobe ipmi_si
sudo modprobe ipmi_watchdog

(Details zu den IPMI-Modulen gibt es hier.)

Sollen diese immer beim Start geladen werden, dann muss man sie in /etc/modules Zeile für Zeile eintragen. Habe ich aber nicht gemacht, da sie trotzdem geladen wurden. Geladene Kernelmodule kann man anzeigen lassen mit:

sudo lsmod

Weiter mit dem ipmitool-Programm:

sudo ipmitool sensor

Das Ziel sind die folgenden Einstellungen für die großen noctua-Lüfter. Zu finden sind die Drehzahlen auf der noctua Homepage beim jeweiligen Lüftermodell.

sens|aktuell |Maß| Status| LNR   | LCR   | LNC   |  UNC   |   UC   |   UNR  |
FAN1|400.000 |RPM|  ok   |100.000|200.000|300.000|1300.000|1400.000|1500.000
FAN2|300.000 |RPM|  nc   |100.000|200.000|300.000|1300.000|1400.000|1500.000  

Die Abkürzungen bedeuten:

Lower Non-Recoverable = LNR
Lower Critical = LC
Lower Non-Critical = LNC

Upper Non-Crititical = UNC
Upper Critical = UC
Upper Non-Recoverable = UNR

Die weiteren Abkürzungen sind:
cr = critical
nc = non-critical
nr = non-recoverable
ok = ok
ns = not specified

Zum Ändern der Werte gibt man folgendes einmal für „lower“ und einmal für „upper“ ein:

ipmitool sensor thresh "*sensor name*" lower *lnr* *lcr* *lnc*
sudo ipmitool sensor thresh "FAN2" lower "100" "200" "300"

ipmitool sensor thresh "*sensor name*" upper *unc* *ucr* *unr*

Die Sternchen UND die Abkürzungen müssen natürlich ersetzt werden.

Eine sehr gute ipmitool-Anleitung gibt es im freenas-Forum.
Oder hier bei Thomas Krenn für die Thresholds und generell zum ipmitool.

Innerhalb des IPMI-Zugangs auf das Board muss im dortigen Menü unter: „Configuration – Fan Mode“, folgende Auswahl getroffen werden: „Set Fan to Optimal Speed„.

Bei meinem Board ist es so, dass die neuen Thresholds zwar gespeichert werden (im SDR-sensor-data-record -> siehe Link Thomas Krenn/Thresholds) und auch beim Neutstart wieder da sind, dass aber die Lüfter manchmal sehr lange brauchen (ein paar Stunden) bis sie sich einpendeln oder ich muss den Server neu starten (Strom weg und 30 Sekunden warten, setzt IPMI zurück) und hoffen, dass sie danach tatsächlich nicht mehr pumpen. Dafür habe ich noch keine Lösung und auch keine Hilfe/Idee von Supermicro bekommen.

Eine interessante Anmerkung von Thomas Krenn ist, dass manche Supermicro-Boards nur Lüfterwerte im Abstand von 135 U/Min erlauben. Das wäre dann:

sudo ipmitool sensor thresh "FAN1" lower "135" "270" "405"
sudo ipmitool sensor thresh "FAN2" lower "135" "270" "405"

Aber auch das hat bei mir keine Lösung gebracht.

Was momentan hilft, ist einfach den Server so oft neu zu starten (wirklich Strom weg und 30 Sekunden warten), bis es dann funktioniert und die Lüfter stabil mit 300-400 U/Min. laufen.

Die Spezifikation zu IPMI gibt es bei Intel als PDF und sie sagt, dass natürlich nur vom Hersteller vorgesehene Werte eingestellt werden können.


Eine momentane Lösung für die Lüfter, die funktioniert

Da die Lüfter nicht dauerhaft unter Kontrolle gebracht werden können, gibt es noch eine „Hardware-Teillösung“:
noctua-Lüfter werden mit einem kleinen Zwischenkabel (low noise adapter / L.N.A) ausgeliefert, das die maximale Drehzahl des Lüfters insgesamt begrenzt. Damit geht der Lüfter, falls er in den Pumpmodus verfällt nicht mehr über 900 U/min.
noctua: „Der NF-A15 PWM wird mit einem (L.N.A.) ausgeliefert, der die Maximalgeschwindigkeit von 1200 auf 900 rpm reduziert. Damit können Sie den Lüfter entweder mit konstanten 900 rpm betreiben oder die maximale Geschwindigkeit im PWM Betrieb begrenzen.“

Zusätzlich habe ich den oberen Lüfter im „Winterbetrieb“ abgeklemmt, so dass nur noch ein Lüfter betroffen ist, der dann auch im Zweifelsfalle höher drehen wird und somit nicht meh unter den Schwellwert von 300 U/min fällt.




SuperDoctor5 von Supermicro

SuperDoctor5 ist ein Programm des Mainboardherstellers Supermicro, das ebenfalls die ganzen Sensoren überwacht und graphisch darstellt. Man kann es  auch remote über das Netz aufrufen und es gibt die Möglichkeit Emails zu verschicken, falls Fehler auftreten.

Ich habe es nicht installiert, da es sich mit IPMI doppelt und bei meinem Testlauf keinen Zusatznutzen brachte.

Linuxprogramm lm-sensors

Ein Linuxprogramm, das ebenfalls diverse Sensoren anzeigt:

sudo apt-get install lm-sensors
sudo sensors-detect

V. Den RAID-Controller und das RAID einrichten

Erst mal schauen, was am Server so alles vorhanden ist an Festplatten und siehe da, das RAID funktioniert von Anfang an:

blkid -o list

Man bekommt eine ausführliche Liste aller „gemounteten“ und auch der „nicht-gemounteten“ Festplatten und Partionen. Auch das RAID wird angezeigt und kann auch gemountet werden. Inhalte können geschrieben werden etc.

Auf meinem Mainboard sind damit anscheinend Treiber vorhanden, die den RAID-Controller steuern können. Adaptec gibt zwar an, dass es besser wäre, die Adaptec-Treiber zu verwenden, aber momentan liegen noch keine Treiber für die erste Update-Version von Ubuntu 16.04 LTS also Ubuntu 16.04.1 vor. Will man originale adaptec-Treiber installieren, begibt man sich auf eine große, steinige Reise mit tiefen Gräben und schwarzen Löchern:

Es gibt zwei Möglichkeiten, einmal direkt mit dem Ubuntu-Betriebssystem installieren und einmal danach am schon bestehenden Ubuntu-System.

Adaptec-RAID-Controller-Treiber für Linux 16.04 installieren

Auf der Seite gibt man die Bezeichnung des RAID-Controllers ein, bei mir ist dies: Adaptec RAID 81605ZQ.

Manchmal gerät man dann in die Produktregistrierung und manchmal wird man weitergeleitet zur Betriebssystemauswahl. Das neueste was momentan (Okt. 2016) geboten wird ist Ubuntu 14.  Wenn man dort klickt kommt man zu „Ubuntu 14.04 LTS Downloads“ und findet dort den Treiber: AACRAID Drivers v1.2.1-52011 for Linux.

Klickt man wiederum auf den Treiberlink sieht man Details und siehe da unter Beschreibung steht: Ubuntu 14.04.4 and 16.04. Der Treiber passt also zu Ubuntu 14.04.04 und zum ersten Release von Ubuntu 16.04 aber nicht zu Ubuntu 16.04.1.

Immer über gehen, nach der Weiterleitung unten rechts in der Textspalte auf „Microsemi Adaptec Support“ klicken, dann über die Produktauswahl weiter. Alles andere führt in die Untiefen einer recht konfusen Internetseite von Microsemi.

Wenn es den neuen Treiber gibt, geht das Vorgehen am schon bestehenden Ubuntu-System so:

Das Treiberarchiv (tgz mit 150 MB) lädt man herunter und entpackt den passenden Ordner für ubuntu_16.04.1. Darin befinden sich nun Ordner für PowerPCs (Apple) „ppc64le“ und normale „x64“, als „tgz“ und als „deb“. Wir brauchen nur die „deb-Datei„, die man auf einen USB-Stick kopiert.

(Im tgz-Archiv verbergen sich die Dateien für einen Installation während man Ubuntu-Server installiert, zusammen mit einer README.txt-Anleitung. Dieses brauchen wir aber jetzt nicht.)

Das Shell-Kommando, das wir anwenden ist „dpkg“.
Debian Package „dpkg“ installiert einzelne „.deb-Packete“ /  -i = install

Eigentliche Installation des Treibers für den RAID-Controller auf ein bestehendes System

Den Ubuntu Packet-Index aktuallisieren:

sudo apt-get update

Falls sie noch fehlen, entsprechende Entpackungstools laden:

sudo apt-get install build-essential

Den USB-Stick einstecken und dann schauen wo er ist, das geht wieder mit „blkid“:

blkid -o list

Den USB-Stick mit dem Treiber darauf mounten (bei mir /dev/sdc1):

sudo mount /dev/sdc1/ /media

Treiber installieren:

sudo dpkg -i /media/aacraid-1.2.1-52011-Ubuntu16.04-x86_64.deb

Bei mir schlägt es fehl, da das Installationsprogramm versucht in „4.4.0-21-generic“ zu installieren, aber der neue Kernel bei der Ubuntu-Version 16.04.1 heißt schon „“!
Es gibt damit schlichtweg keinen Ordner mit der Bezeichnung „4.4.0-21-generic“.

Es soll in ein paar Monaten den aktuellen Treiber geben (Stand Oktober 2016).

Installation des Treibers für den RAID-Controller zeitgleich mit dem Ubuntu-System

Man kann den Treiber auch schon zusammen mit dem Ubuntu-OS-System installieren (beide zur selben Zeit), aber hier ist ein ähnliches Problem, folgt man der Anleitung, die im Archiv
„aacraid-1.2.1-52011-Ubuntu_16.04-Boot-x86_64.tgz“ mitgeliefert wird, dann kann man zwar den richtigen Kernel-Ordner-Namen angeben, bekommt am Ende aber ein „invalid module format aacraid.ko“.

Es kommt wirklich darauf an, dass man genau die richtige Version verwendet! Laut Hotline von adaptec in ein paar Monaten erhältlich.


maxView Storage Manager zur RAID-Verwaltung installieren

Der maxView Storage Manager ist ein schönes graphisches Programm, das bei Desktops direkt auf dem System perfekt funktioniert. Man kann RAIDs einrichten, Sensoren überwachen und sich eine Email schicken lassen, falls eine Störung auftritt.

Bei einem Server wird die Sache schwieriger. Es gibt verschiedene Möglichkeiten:

  1. BIOS des RAID-Controllers zur Verwaltung nutzen
  2. Mit einem bootfähigen USB-Stick, auf dem ein System plus maxView Storage Manager und das Kommandozeilenprogramm ARCCONF drauf ist, kurzfristig arbeiten.
  3. Command-Line-Utility ARCCONF und adaptec Event Monitor im Hintergrund, der Meldungen absetzt.
  4. Auf dem Ubuntu-Server maxView Storage Manager installieren (mit einem Apache Tomcat – CIM Server) und dann aus der Ferne über das Netzwerk mit einem Browser zugreifen.


  1.  Das BIOS ist nicht schlecht und für fast alle Aufgaben geeignet, Email-Benachrichtigung geht nicht, Systemupdate ist auch nicht möglich.
  2. Da man nur vom USB-Stick bootet und ein Minisystem hat, hat man keinen Internetzugang und kann z. B. keine Systemaktualisierungsdatei herunterladen. Die Menüs scheinen gekürzt im Gegensatz zur Vollversion. Email-Benachrichtigung geht nicht, da der USB-Stick ja wieder weg kommt.
  3. Die Command-Line-Utility ARCCONF ist, soweit ich das sehen konnte, nicht gerade übersichtlich, hat aber alle nötigen Befehle.
  4. Fernwartung mit maxView und CIM-Server-Installation auf dem Server, der die Überwachung weiterleitet. Aufwendig  und noch ein Serverprozess der läuft (Ist der sicher? – Wie ist der CIM-Server eingerichtet?), aber das Übersichtlichste, wenn mal eine Platte ausfällt und man einen Überblick braucht, was wo zu tun ist. In der Angst bei einem Festplattenausfall seine Daten zu verlieren macht man schnell mal einen Fehler, deshalb ist es wichtig ein einfaches und übersichtliches Programm zu haben.


1. Einstellungen und RAID anlegen im BIOS

Während des Startvorgangs „CTRL+a“ drücken, dann kommt man ins RAID-Controller BIOS. Das geht komfortabler als man denkt.

2. Einstellungen und RAID anlegen vom bootfähigen USB-Stick mit maxView

Unter wählt man in der rechten Spalte, rechts unten „Microsemi Adaptec Support“, dann klickt man sich über sein Produkt durch, bis man bei den Downloads ist, dort auf „Storage Manager Downloads“ dann kommt man auf bootable USB-Image.

Dieses Image herunterladen und als bootfähigen USB-Stick brennen. Hier versagt leider der oben erwähnte „Linux-create-boot-image-Agent“ des Ubuntu-Desktop-Systems, da er sich nur um Ubuntu-iso-Dateien bemüht und diese hier schnöde ignoriert. Es kommt also der nächste Agent zum Einsatz (die Mac-Terminal-Nummer – siehe weiter oben – hat wieder nicht funktioniert):

Diesmal ein Fedora-Programm für Windows. Man lädt den Fedore-USB-Creator herunter und installiert ihn auf einem Windows-Rechner (Fedora würde natürlich auch gehen.) Man muss das Programm mit einem „Rechtsklick“ starten, damit es mit Administratorrechen läuft! Dann brennt man damit das iso-Image auf den Stick.

Will man die Boot-Sequenz im BIOS des Ubuntu-Servers umstellen, muss man darauf achten, dass man von „EFI“ auf „DUAL“ umschaltet und dort den USB-Stick nach vorne holt, denn auf „EFI“ lädt der bootfähige USB-Stick natürlich nicht. Einmal neu starten und schon ist man in einem schönen Live-System und kann mit Firefox, nachdem man ihn als „Standard-Browser“ (wichtig!) ausgewählt hat, mit dem Benutzer „root“ und dem Passwort „root“ alle Einstellungen am RAID vornehmen.

Wie man von da aus eine Datei zum RAID-Controller-Systemupdate lädt, habe ich aber nicht herausgefunden, ich denke mal, dass es schlicht weg nicht geht, da dieses System weder über Internet verfügt noch andere USB-Sticks einbinden kann.

Da der Stick nach getaner Tat wieder weg kommt, kann man ihn natürlich auch nicht das System überwachen lassen, der Email-Versand bei Fehlern fällt also auch weg.

3. Commandline-Tool auch mit CIM-Server

Das Paket „Adaptec Event Monitor“ kommt zusammen mit dem Command-Line-Tool ARCCONF. Da das Commanline-Tool ebenfalls einen CIM-Server einrichtet, kann man sich die Mühe sparen und gleich zum graphischen maxView-Storage-Manager wechseln.

4. maxView Storage Manager mit CIM-Server und Fernwartung

Den Storage-Manager gibt es wieder auf der Adaptec Internetseite unter maxView Storage Manager. Man bekommt ein Archiv mit dem Manager und dem Commandline-Tool. Im Ordner des Managers gibt es verschiedene Dateien für Linux 64 bit und meinem Prozessor gilt die „xxx.deb-Datei“.

Die Datei auf den Server laden und dann installieren (die „X“ stehen für verschiedene Versionen, je nachdem wie die Datei zum aktuellen Zeitpunkt heißt):

dpkg-i StorMan-X.XX-XXXX_amd64.deb

Entgegen den Behauptungen der Bedienungsanleitung kann man nicht „nur den Dämon ohne die graphische Oberfläche“ anwählen. Stattdessen kommt am Schluss eine Fehlermeldung, dass das Desktop-Symbol nicht platziert werden konnte, da es keinen Desktop gibt.

Folge Angaben kann man während der Installation machen:

CIM Server HTTP Port: [default: 5988] – ich habe 5988 angegeben am Ende ist es aber doch 8443 geworden, warum auch immer. Dies kann man aber später bei Bedarf anpassen. (Beim CIM-Server handelt es sich um ein Apache-Tomcat -Modul).

Am Router sollte man dafür sorgen, dass die ganzen Ports, die intern genutzt werden, vom Internet aus geschlossen sind, höchstens man möchte von unterwegs das RAID steuern (Z. B. den Alarm ausschalten, damit die Nachbarn wieder schlafen können nach einem Festplattenausfall, denn der RAID-Controller produziert bei Problemen eine lautes Pfeifen.).

LocalHost Mode: [default: No]  – hier muss auf alle Fälle „No“ stehen, sonst geht die Fernwartung nicht und der Storage Manager erwartet das RAID auf dem eigenen Rechner (localhost).

maxView Storage Manager

maxView Storage Manager – bei mir ist es die „Network Connection“

Fernzugriff auf den Server mit dem maxView Storage Manager

Entgegen der Aussagen in der Bedienungsanleitung braucht man auf dem entferneten Rechner (Network Connection) den Storage Manager nicht installieren. Dieses wohl nur, wenn man dort auch ein RAID zum kontrollieren hat. Es reicht ein normaler Browser mit der folgenden Adresse:

https://[IP-Adresse des Servers]:8443/maxview/manager/login.xhtml

Die Zugangsdaten sind die Linux Zugangsdaten des Admin-Users.

Hier kommt gleich das nächste Problem:
Der maxView-Storage-Manager läuft in einem Mode, in dem man nur sehen kann ohne dass man etwas einstellen kann. Um an das Menü zu kommen, in dem man den Standardmodus auch für normale Nutzer freischaltet, braucht man aber Adminrechte (sudo – gibt es in dieser Umgebung nicht). Deshalb muss man bei Ubuntu einmal Root freischalten, dann mit Root und dem Root-Passwort sich bei maxView anmelden, den Standardmodus auch für normale Benutzer freischalten (System-System Settings), Root wieder in Ubuntu löschen und sich dann als normaler Ubuntu-Admin bei maxView wieder anmelden. Ein schöner Rundtrip.

Als erstes habe ich dann die Systemsoftware des RAID-Controllers auf den neuesten Stand gebracht.

Danach sollte der RAID-Controller laufen und man Zugang zu den Einstellungen über den maxView-Storage-Manager haben.


Ein RAID einrichten

Welchen RAID-Level, warum und wieso, dazu findet man jede Menge Literatur. Hier geht es um die konkrete Ausführung mit dem 81605ZQ-RAID-Controller von Adaptec.

Die oberste Ebene ist der Server, danach kommt der Controller und unter der Controller-Ebene braucht man jetzt ein „Logical Device“ also die logische Ebene die angesprochen wird.

  • Server
  • Controller
  • logical device, dies ist mein RAID
  • physical devices mit: 4 Connectors und an jedem Connector hängen 4 Festplatten

Ich habe RAID 6 genommen, da ich schon in der Testphase einen Festplattenausfall hatte und bei RAID 6 gleich 2 Platten auf einmal ausfallen können. Rein theoretisch müssten es somit 42 TB nutzbarer Speicher sein während man bei RAID 5 auf theoretische 45 TB kommt.

Da eine einzelne Platte aber in Wirklichkeit nur 2,729 TB hat kommt man auf folgende Werte:

44,67 TB gesamt
41,88 TB RAID 5
39,09 TB RAID 6 (maxView gibt an 39,059 TB)

Man klickt also auf „Controller“ und fügt ein „Logical Device“ hinzu. Dann wählt man „manuell“.

Hier noch ein paar Einstellungen die ich gewählt habe:

stripe size: 128 KByte (die Vorgabe 256 KB schien mir zu groß, trotz vieler Video-Dateien)
write cache: „enable write back“
read cache: „enable“

Was bedeutet das alles?

  • stirpe size = kleinster zu beschreibender Platz, also auch eine kleinere Datei braucht diesen Platz – die Festplatten haben Blöcke mit 512 KB, es passen also in jeden Block bei mir 4 x 128KB Daten-Stripes
  • write back = das RAID packt beim Schreiben alles in den Puffer und meldet an das Betriebssystem – alles geschrieben – schreibt aber erst später. Ist sehr schnell, aber nur mit Pufferbatterie zu empfehlen.
  • write through = erst wenn tatsächlich geschrieben ist, wird auch „geschrieben“ gemeldet. Ist der größte Bremser bei Tests.
  • read ahead = liest immer gleich schon mal auf Verdacht die Daten der Nachbarblöcke
  • adaptive read ahead = nur wenn zwei Nachbarblöcke gelesen werden, liest der Controller auch weitere Blöcke auf Verdacht schon mal in den Puffer
  • no read ahead

Detailwissen dazu findet man beim Tecchannel oder bei tom’s hardware.

Bevor man die Einrichtung abschließt ist es sinnvoll die Seriennummern der Festplatten aufzuschreiben und zu schauen, welche Platte laut maxView genau wo angebaut ist, so dass man bei Ausfällen nicht versehentlich die falsche Platte wechselt. Bei mir war in der Bedienungsanleitung die Connectorbezeichnung (Stecker für jeweils 4 Festplatten) falsch, dies kann schnell zu großen Verwechslungen führen!


Jetzt hat man also eine „nackte RAID-Festplatte“ mit 39,059 Millionen Megabyte oder mit 39 Tausend Gigabyte

Das hört sich sehr viel an, wenn man aber bedenkt, dass die dreitägigen Dreharbeiten für einen fünfminütigen Imagefilm, im normalen HD-Format, also nicht 4K oder dergleichen, mit allen Postproduktionsdateien ca. 1 Terabyte ausmachen, dann sind das gerade mal 39 Imagefilme die man mit diesem RAID produzieren kann. Also so eine Art „Berliner Flughafen“, der ja auch, falls er mal fertig werden wird, schon viel zu klein sein wird.

Energie sparen und Festplatten bei Nichtgebrauch herunterfahren

Über den maxView Storage Manager kann man festlegen, wann die Festplatten in den Ruhezustand gehen, falls für längere Zeit kein Zugriff erfolgt. Das Intervall sollte nicht zu kurz gewählt werden, da zu häufiges an und aus die Festplatten belastet.

Ich habe eine halbe Stunde gewählt, da dies meinem Arbeitsrhythmus entspricht. Wenn ich eine halbe Stunde nicht auf das Raid zugreife, dann habe ich die benötigten Daten heruntergeladen und arbeite wahrscheinlich gerade damit.


Einstellen kann man das Ganze auf der Ebene: „Controller-Logical Device-‚Device Name‘ “
Dann oben auf das „Ölfasssymbol“ klicken mit dem Zahnrädchen. Nach den Einstellungen für das Lese- und Schreibverhalten kommt man über den Reiter „Power“ auf das Stromsparmenü.


Power of Drives – nach Leerlauf Festplatten herunterfahren.
Power off Drives – nach Leerlauf Festplatten herunterfahren.


Beim Ruhezustand der Festplatten

Nachdem ich das Ganze so eingerichtet hatte, sind die Festplatten trotzdem nie in den Ruhezustand gegangen. Ich hatte die Vermutung, dass irgendeine Linux-Routine wahrscheinlich regelmässig auf das Raid zugreift und ein Herunterfahren verhindert. Hilfe brachte der Adaptec Support, der das Problem fand, nachdem ich ihm Logdateien zugeschickt hatte.

Die Funktion „Background Consistency Check“ hatte ich auf 42 Tage eingestellt. Dies bedeutet aber nicht, dass er alle 42 Tage checkt, sondern PERMANENT – „24/7“ wie es der Support nannte. Dies hat dann ein Herunterfahren verhindert. Ein sehr missverständliches Menü.

Den „Background Consistiency Check“ kann man unter der Rubrik: „Controller – Einstellungen – Data Protection – Raid Consistency Check“ ausschalten.

Will man die Datenkonsitenz regelmässig prüfen, dann gibt es folgenden Hinweis vom Support:
„Sie müssten dazu Ihr Array auswählen, dann unter der Logical Device Box auf Verify/Fix gehen und dann können Sie einen Verify with Fix planen (Schedule).“


Consitency Check
Achtung Falle, wenn der „Raid Consitency Check“ eingeschaltet ist, kommt es nie zum Ruhezustand und die Festplatten werden permanent am Laufen gehalten.


Das RAID-System partionieren und ein Datensystem einrichten

Erst mal schauen, was wir so alles haben:

blkid -o list

Das RAID ist bei mir auf „/dev/sda“ unmounted zu finden.

Jetzt können wir es mit „parted“ partionieren:

parted /dev/sda
(parted) print

Wir sind jetzt innerhalb von (parted) und bekommen mit „print“ den Zustand:
Wir haben 39060 GiB (1 GiB = 2 hoch 30 Byte) zur Verfügung und die Sektorengröße beträgt 512 Bytes (also nicht wie bei SSDs 4 KByte-Sektoren).

Dann eine GUID-Partionstabelle GPT anlegen, denn wir wollen uns nicht mehr mit MBR-Beschränkungen plagen. „mklabel“ löscht alle Daten, da wir noch keine haben, kein Problem:

(parted) mklabel gpt

Wir haben es zwar mit Festplattensektoren mit 512 Bytes zu tun, wollen uns aber trotzdem an einem Vielfachen von 4 kByte ausrichten, also in dem Fall ein Vielfaches von 1 MiB (Mega-Byte zur Basis von 2). Deshalb stellen wir erst einmal parted auf MiB um und rechnen ab jetzt in MiB.
Am Anfang einer Festplatte wird immer 1 MiB freigelassen, das bezieht sich zwar nur auf Systemfestplatten, kann aber nicht schaden und wir haben ja genügend MiBs zur Verfügung. Dann schaut man, dass die Sektoren genau aneinander grenzen, und zwar genau mit den 1 MiB-Grenzen. Die eine hört bei 38.000.001 Mega-Byte auf und der nächste Sektor beginnt bei 38.000.02 Mega-Byte.

(parted) unit MiB
(parted) print

Unser RAID hat  laut print-Ausgabe:  /dev/sda  39 997 430 MiB.

Für die erste Partion lassen wir am Anfang 1 MiB frei und dann geht es so weit nach hinten, dass wir am Ende genau 38 TB also 38.000.000 MiB Platz in der ersten Partion haben, die wir „partionP1“ nennen.
Die zweite Zahl muss um 1 höher sein als die 38 000 000, da uns am Anfang ja 1 MiB fehlt:

(parted) mkpart partionP1 1MiB 38000001MiB

Die nächste Partion beginnt dann genau über der ersten Partion ( 380 … 02) und ganz am Ende habe ich nochmals  1 MiB Platz gelassen (Gesamt-MiB-Zahl minus 1), wer weiß für was es gut ist. Die zweite Partion habe ich „partionPS“ genannt, das sie später verschlüsselt wird:

(parted) mkpart partionPS 38000002MiB 1997427MiB
(parted) print
Nummer  Anfang       Ende         Größe        Dateisystem  Name        Flags
1      1,00MiB      38000001MiB  38000000MiB               partionP1
2      38000002MiB  39997429MiB  1997427MiB                partionPS
(parted) quit
Informationen: Möglicherweise müssen Sie /etc/fstab anpassen.

Parted ist ein freundliches Programm und sagt beim Abmelden, dass man /etc/fstab anpassen muss, damit das RAID beim Server-Start auch automatisch eingebunden wird. Doch erst einmal brauchen wir ein Dateisystem für beide Partionen. Dazu dient der Befehl „mkfs“.

Für den großen Speicher unserer ersten Partion, der auch viele Video-Dateien aufnehmen soll eignet sich am besten das xfs-Dateisystem, das seit Ubuntu 16.04 auch direkt vom Kernel unterstützt wird:

sudo mkfs.xfs /dev/sda1


meta-data=/dev/sda1              isize=512    agcount=37, agsize=268435455 blks
...............=                       sectsz=512   attr=2, projid32bit=1
...............=                       crc=1        finobt=1, sparse=0
data........=                       bsize=4096   blocks=9728000000, imaxpct=5
...............=                       sunit=0      swidth=0 blks
naming........ =version 2              bsize=4096   ascii-ci=0 ftype=1
log........... =Internes Protokoll     bsize=4096   blocks=521728, version=2
...............=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime.......=keine                  extsz=4096   blocks=0, rtextents=0

Bei jedem Mountvorgang wird das Dateisystem bei xfs überprüft. Um es manuell zu überprüfen, muss man es „umount-en“ (der Befehl ist immer ohne „n“ nach dem „u“ also „umount“) und dann mit „xfs_check“ überprüfen und gegebenenfalls mit „xfs_repair“ versuchen zu reparieren.

Die erste Partion unseres RAIDs mounten:
-t bedeutet Type und der ist „xfs“
Als Mountpunkt nehmen wir das Verzeichnis /srv, das Daten von Systemdiensten enthalten soll (FTP, SMB etc.):

sudo mount -t xfs /dev/sda1 /srv


df -h

ergibt in der letzten Zeile, der gemounteten Dateisysteme:

/dev/sda1        37T     34M   37T    1% /srv

Mountpunkte und Verzeichnisse

  • /srv = „Service“, nehmen wir für unseren Samba-Server, dort einen Unterordner für den Fileserver:  „/srv/fServer“
  • /mnt  = hier hängen wir die verschlüsselte Partion unseres RAIDs ein
  • /var = hier liegen Dateien von E-Mail-Server, der Nachrichten bei Störungen verschickt

Verschlüsselung LUKS auf die Partion /dev/sda2 anwenden

Da wir eine sehr große Partion haben und eine kleine (knapp 2 TB) wollen wir die kleine Partion verschlüsseln. Schließlich hat man immer irgendwelche Daten, die man nicht die nächsten 100 Jahre bei der NSA, bei Prism, bei den Russen, Chinesen oder gar bei Google wiederfinden möchte.

Eine sehr ausführliche Anleitung zur recht „machtvollen“ Verschlüsselung von „LUKS“ findet man im Linux-Magazin 08/2005.

Das Projekt „LUKS“ ist dabei eine Weiterentwicklung von „Cryptsetup“.

Es sind verschiedene Schritte durchzuführen:

a. „cryptsetup“  mit „luksFormat“ und verschiedenen Variablen

-c bestimmt den Algorithmus („aes-cbc-essiv“ soll sehr gut sein)
-y bestimmt, dass die Passphrase zweimal eingegeben werden muss, am besten vorher schon einen schönen Satz ausdenken, den man sich auch merken kann
-s die Länge des Verschlüsselungsschlüssels, 128 oder 256

sudo cryptsetup -c aes-cbc-essiv:sha256 -y -s 256 luksFormat /dev/sda2

b. Mit „luksOpen“ einen virtuellen Namen und ein mapping erstellen

Dann weist man mit „luksOpen“ dem virtuellen verschlüsselten Laufwerk einen Namen zu (mapping). Hier als Beispiel: „meinLukusOrdner“. Dieser wird mit dem realen Laufwerk „/dev/sda2“ verknüpft. Dabei muss man muss die Passphrase angeben.

sudo cryptsetup luksOpen /dev/sda2 meinLukusOrdner

c. Dateisystem für das verschlüsselte Laufwerk erstellen

Nun ist das verschlüsselte virtuelle Laufwerk unter „/dev/mapper/meinLukusOrdner“ zu finden und braucht noch ein Dateisystem („xfs“). Danach bekommt man etliche Ausgaben:

sudo mkfs.xfs /dev/mapper/meinLukusOrdner

meta-data=/dev/mapper/meinLukusOrdner   isize=512    agcount=4, agsize=127835200 blks
.........=                             sectsz=512   attr=2, projid32bit=1
.........=                             crc=1        finobt=1, sparse=0
data.....=                             bsize=4096   blocks=511340800, imaxpct=5
.........=                             sunit=0      swidth=0 blks
naming   =version 2                    bsize=4096   ascii-ci=0 ftype=1
log      =Internes Protokoll           bsize=4096   blocks=249678, version=2
.........=                             sectsz=512   sunit=0 blks, lazy-count=1
realtime =keine                        extsz=4096   blocks=0, rtextents=0

d. mounten

Jetzt kann man das neue virtuelle, verschlüsselte Laufwerk mounten.
In meinem Beispiel an „/mnt“ :

sudo mount /dev/mapper/meinLukusOrdner /mnt

e. wieder verschließen, nicht nur „umount“

Das Ganze wieder verschließen, erst „umount“ und dann „luksClose“, das das Verzeichnis wirklich wieder abschließt! Ansonsten kann man ohne Passphrase wieder mounten.

sudo umount /mnt
sudo cryptsetup luksClose meinLukusOrdner

f. So bekommt man das verschlüsselte Laufwerk wieder aktiviert

sudo cryptsetup luksOpen /dev/sda2 meinLukusOrdner
Geben Sie die Passphrase für »/dev/sda2« ein:
sudo mount /dev/mapper/meinLukusOrdner /mnt


Man kann das Passwort auch in einer Datei liefern oder mehrere Passwörter hinzufügen, so dass mehrere Menschen mit unterschiedlichen Passwörtern auf das Verzeichnis zugreifen können. Ist ein Passwort kompromittiert, so kann man es löschen und durch ein neues ersetzen. Es gehen bis zu 8 Passwörter.

Neues Passwort hinzufügen:

cryptsetup luksAddKey /dev/sda2

Passwort löschen, wobei am Ende der Slot steht in dem der Key sich befindet, hier die „0“:

cryptsetup luksDelKey /dev/sda2 0

Crypto Metainformationen gibt es mit „luksDump“, hier werden auch die „Key-Slots“ angezeigt, nur welcher welcher ist kann man hier auch nicht sagen. Eigentlich sollte bei jeder Passwort-Eingabe auch dessen „Key-Slot“ (also seine Platznummer, um das Passwort zu identifizieren, da man es ja nicht lesen kann) angezeigt werden, aber vielleicht geschieht dies erst, wenn man mehr als nur ein Schlüsselwort hat.

cryptsetup luksDump /dev/sda2

Mehr im Linux-Magazin 08/2005 zur LUKS-Verschlüsselung.
Wie sicher welche Verschlüsselungstechnik ist zeigt das Linux-Magazin 10/2006.

Bei meinem Fileserver muss ich natürlich immer die Partion aufschließen und nach dem Benutzen wieder verschließen. Da dort aber nur wirklich persönliche Dinge gespeichert werden, ist dies nicht problematisch. Dass bei einem automatischen Server-Neustart in Abwesenheit, die private Partion zu bleibt ist auch zu verkraften.

Der normale Bereich (/dev/sda1 und das Linux-System) wird ja ebenfalls nach außen durch Passwörter geschützt, ist also nicht direkt zugänglich nur eben nicht verschlüsselt.

Beim Systemstart die Laufwerke einbinden mit /etc/fstab

Die Datei fstab sorgt dafür, dass Laufwerke gleich zu Beginn des Serverstarts auch gemountet werden. Für die systemrelevanten Laufwerke ist dies selbstverständlich und wird bei der Einrichtung berücksichtigt, für unser RAID müssen wir das händisch nachtragen:

Bevor wir beginnen brauchen wir die internen Bezeichnungsnummern (UUID) der Partionen bzw. Festplatten:



/dev/sda1: UUID="xxxxxxxx-xxxxxxxxx-xxxxxxxx" TYPE="xfs" PARTLABEL="RaidpartionZazu" PARTUUID="yyyyyyy-yyyyyyyy-yyyyy-yyyyyyy"

fstab öffnen mit vim

sudo vim /etc/fstab

dann die /dev/sda1 mit ihrer UUID angeben den gewünschten Einhängepunkt und ein paar Optionen / die Zwischenräume sind Tabulatoren:

UUID=xxxxxxxx-xxxxxxxxx-xxxxxxxx /srv/fServer  xfs   defaults  0   0

zur Erklärung:

  • Spalte 1 = UUID-Nummer der Partion /dev/sda1
  • Spalte 2 = Einhängepunkt
  • Spalte 3 = Dateisystem
  • Spalte 4 = Optionen für den Zugriff auf den Datenträger (hier „defaults“)
  • Spalte 5 = wird von Linux ignoriert deshalb „0“
  • Spalte 6 = in welcher Reihenfolge beim Systemstart zu überprüfen / Systempartion bekommt „1“ alle anderen „0“

Mit „ESC“ raus aus dem Schreibmodus und mit „:qw“ speichern, dann „reboot“.

Die verschlüsselte Partion beim Systemstart einbinden?

Dies bedeutet, dass bei jedem Systemstart, direkt am Terminal des Servers die Passphrase angegeben werden muss, ansonsten bootet das Server-System nicht.
Das ist eher lästig, da man immer einen Bildschirm und eine Tastatur am Server haben muss. Wer das dennoch will findet eine gute Anleitung zum Einbinden einer verschlüsselten Partion in der Linux-Community.

Hier muss mit den „gemappten Namen“ gearbeitet werden die UUID hat bei mir nicht funktioniert, bzw. der Server hat in den Notmodus gebootet. Man braucht zwei Einträge, einmal in die „/etc/crypttab“ und einmal in die „/etc/fstab„:

sudo vim /etc/crypttab
meinLukusOrdner /dev/sda2 none luks,check=xfs

sudo vim /etc/fstab
/dev/mapper/meinLukusOrdner /mnt auto defaults 1 1

Danach kommt beim Serverstart eine Aufforderung zur Eingabe der Passphrase. Anschließend wird die Partion gemountet.


VI. Samba Server Datenaustausch mit dem „smb-Protokoll“

smb ist ein Protokoll zum Datenaustausch, das bisher hauptsächlich auf Windows eingesetzt wurde. Ziel ist es ein entferntes Verzeichnis wie eine am Computer angeschlossene Festplatte zu behandeln.
Der Mac und Linux konnten zwar bisher auch mit smb kommunizieren, haben aber noch ihre eigenen Protokolle. Für den Mac ist es das AFP-Apple Filing Protocol und für Linux das klassische Unix-Protokoll NFS-Network File System. Apple setzt seit einiger Zeit ebenfalls vermehrt auf das smb-Protokoll, so dass dies momentan die beste Austauschplattform für alle Systeme bietet.

Samba besteht aus zwei Prozessen, einmal der nmbd-Prozess für die interne Verwaltung, Namensverwaltung und das Browsing um zu schauen, welche zugänglichen Verzeichnisse im Netz sind und den smbd-Prozess, der die Schnittstelle für Clients bereitstellt.

Samba-Server Config-Datei

Die zentrale Verwaltungsdatei für den smb-Server liegt unter:


Zuerst kopieren wir die Datei, damit man immer nachschauen, was im Original für Standardwerte enthalten waren. Die „Archiv-Datei“ heißt dann cmb.conf.orig

sudo cp smb.conf smb.conf.orig

Samba-Server Passwörter und  User-Level-Sicherheit

Samba hat verschiedene Sicherheitskonzepte. Bei kleineren Installationen wird in der Regel „User-Level-Sicherheit“ implementiert:

Wenn Anwender A auf Rechner A Daten vom Samba-Server S abrufen will, dann muss er sowohl auf Rechner A als auch auf Samba-Server S mit dem gleichen Namen und Passwort registriert sein. Darüber hinaus müssen beide Rechner zur selben Arbeitsgruppe gehören! Nur dann kann man ohne Passworteingabe zugreifen.

Stimmen die Passwörter zwischen Samba und lokalem Rechner nicht überein erscheint jedes Mal eine Dialogbox mit der Samba-Username und Samba-Passwort Aufforderung.

Nur ein registrierter Linux-User kann den Linux-Samba-Server nutzen! Deshalb ist es sinnvoll für User die mit dem Linux-Server sonst nichts zu tun haben den Linux-Account mit „lock = -l“ zu sperren:

passwd -l [userName]

Samba verwaltet seine Passwörter separat, weshalb sie auch verschieden sein können von den Linux-User-Passwörtern. Beide zu synchronisieren ist mit Hilfe von „pam password change“ möglich und auch in der Konfigurationsdatei von Samba schon vorgesehen. Dabei wird bei jedem Ändern des Samba-Passwortes auch das Linux-Passwort geändert. Dies geht aber nur, wenn man auch als eigener Benutzer angemeldet ist, also nicht von Root! Deshalb ist bei einer kleinen Umgebung mit wenigen Nutzern es sicher ausreichend, wenn man dies von Hand erledigt, also Samba-Passwort ändern und Linux-User-Passwort ändern, so dass man immer nur ein Passwort hat für beide Prozesse. Um die Synchronisation auszuschalten schreibt man in der smb.con:

unix password sync = no

In unserem Fall ist eine Synchronisation sowieso nicht notwendig, da der Ubuntu-Linux-Server-User nichts mit Samba zu tun hat, sondern nur den Server verwaltet. Für Samba werden eigene User angelegt, die den Server aber nicht verwalten können.

Samba einrichten

Eine gute Beschreibung gibt es auch von  Michael Kofler: Linux – Das umfassende Handbuch, eine schlechte Beschreibung liefert leider: Praxisbuch Ubuntu Server 14.04 LTS von Charly Kühnast und Daniel van Soest, hier wird das Thema nur gestreift.

Samba-User anlegen

Wir erstellen eine Minimaleinrichtung (kiss = keep it simple stupid), es gibt zwei User, die damit automatisch auch eine Gruppe besitzen mit demselben Namen. Der eine User heißt „angestellter“ der andere „chef“. Beide haben keinen Zugang zum Server direkt, da sie ohne Passwörter angelegt werden.

sudo useradd angestellter
sudo useradd chef

Beide bekommen auch kein Homeverzeichnis ansonsten: „useradd -m chef“

Auf dem Ubuntu-Server sind somit folgende User angelegt:

  • Root = deaktiviert (immer bei Ubuntu)
  • XXXXX = Ihr User mit dem Sie den Server verwalten, hat vollen Linux-Zugang und kann über „sudo“ sich wie „root“ verhalten
  • chef = Sie selbst, wird für Samba benutzt, kein Linux-Zugang
  • angestellter = sonstiger Samba-Nutzer, kein Linux-Zugang

Damit haben Sie eine klare Trennung zwischen Server-Verwaltung und Samba-Nutzung.

Nun bekommen die beiden User ein Samba-Passwort:

sudo smbpasswd -a angestellter
sudo smbpasswd -a chef

Alle vorhandenen User anzeigen:
Will man sich anzeigen lassen, was für User es auf dem System gibt, dann schaut man z. B. mit dem Programm vim in die Datei /etc/passwd.

Zuordnung zwischen lokalem Rechner Benutzernamen und Linux-(Samba)-Benutzernamen

Will man nicht jedes Mal, wenn man auf den Samba-Server zugreift, ein Passwort eingeben oder auch nicht das Passwort z. B. beim Mac im Schlüsselbund speichern, dann müssen die Passwörter auf dem lokalen Rechner, an dem man arbeitet und das Samba-Passwort übereinstimmen. Die Nutzernamen können aber mit Hilfe einer Datei zugeordnet werden. Heißt mein Account auf meinem Windows- oder Mac-Rechner „Thomas Hezel“ und mein Samba-Account „chef“, dann wird er zugeordnet, indem man die folgende Zeile in die Datei „smbusers“ schreibt. Hierfür kann man wieder „vim“ benutzen. Die smbusers-Datei hat bei meiner Ubuntu-Installation jedoch noch gar nicht existiert.

# /etc/samba/smbusers
chef = "Thomas Hezel"

Wenn jemand in dieser Datei „root“ einem entfernten Benutzer zuordnet oder Ihren Verwaltungsaccount sich selbst, dann besteht eine große Sicherheitslücke, deshalb die Datei „smbusers“ sorgsam ausfüllen und ihr entsprechende Rechte geben, so dass nur Root schreiben darf.

chmod 644 /etc/samba/smbusers

In der Samba-Einstellungsdatei „smb.conf“ muss dann noch die Zuordnungsdatei registriert werden:

# /etc/samba/smb.conf

username map = /etc/samba/smbusers

Ordner anlegen und Rechte einstellen

Wir erstellen auf unserem Dateisystem jeweils einen Ordner für die Firma mit dem Namen „Firma“ und einen zu dem nur der Chef Zugang hat „Chef“.

Zu Usern zugehörige Ordner werden, wie bei TYPO3, mit großem Anfangsbuchstagen geschrieben.

Der Ort ist natürlich die große Partion auf unserm RAID 6: /dev/sda1

Dieses  mounten und dann die Ordner erstellen, diesen Ordner die jeweilige Gruppe zuordnen (Ordner „Chef“ bekommt die Gruppe „chef“) und die Rechte auf 770 stellen, also Owner und Group dürfen lesen, schreiben und ausführen, der Rest hat keine Rechte „0“.

Ordner „Firma“ bekommt die Gruppe „angestellter“ und die Rechte 770.

Der verschlüsselte Bereich auf /dev/sda2 bekommt einen Ordner mit dem Namen „Sicher“, dieser bekommt die Rechte 770 und den Owner „chef“.

Dann fügen wir noch den „chef“ zur Gruppe „angestellter“ hinzu, so dass der Chef auch den Ordner für die Angestellten nutzen kann.

sudo usermod -aG angestellter chef

Und unser Linux-Administrator soll ja auch in die Ordner reinschauen können, also kommt dieser sowohl zur Gruppe „chef“ als auch zu Gruppe „angestellter“:

sudo usermod -aG angestellter xxx-linux-admin
sudo usermod -aG chef chef xxx-linux-admin

Achtung Gruppe-User Verwirrung:
Wenn man einen User Hans anlegt, dann entsteht automatisch auch die Gruppe Hans. Somit ist es möglich, dass User Lisa sich der Gruppe Hans anschließt und dann die Rechte bekommt, die für die Gruppe Hans eingestellt sind.

Wer ist nun in welcher Gruppe?
Diese Frage beantwortet ein Blick in die „group-Datei“:

sudo vim /etc/group

Zentrale Einstellungsdatei für den Samba-Server unter /etc/samba/smb.conf

Unter Linux gilt die Unix-Regel: „Alles ist eine Datei.“
Also sind auch alle Einstellungen, die man macht, in Dateien hinterlegt. In diesem Fall in „smb.conf“.
Zum Bearbeiten benutzt man einen Linux-Editor, also ein Programm, das Textdateien bearbeiten kann. Die bekanntesten sind „vim“ und „nano“. Ich benutze meist „vim“.

Die wichtigsten Kommandos bei „vim“ sind:

  • a = man kommt in den insert-Schreibmodus
  • esc-Taste = man kommt aus dem Schreibmodus heraus
  • :/ Suchbegriff = suchen
  • :q = quit ohne speichern (falls man Veränderungen gemacht hat, diese aber nicht speichern will heißt der Befehl „:q!“)
  • :wq = write and quit (also speichern und schließen)

Wenn man die obigen Kommandos beherrscht, hat man quasi schon einen Linux-Bachelor-Abschluss.
Eine sehr gute und „persönliche“ – man fühlt sich wie damals in der Grundschule –  Einführung in Linux gibt „Eli the Computer Guy“ in seinen Videos.

/etc/samba/smb.conf bearbeiten

Falls wir Unfug machen, erstellen wir erst mal eine Kopie der Datei, auf die wir in der Not zurückgreifen können:

sudo cp smb.conf smb.conf.orig

Einstellungsdatei smb.conf öffnen:

sudo vim smb.conf

Einstellungen vornehmen

workgroup = ZAZU
server string = [default]

wins support = yes
#wins support = yes, bedeutet ich agiere als wins-Server

# wins server =
#auskommentiert, da dies bedeutet ein Client zu sein, der Server aber schon ein wins-Server ist

dns proxy = yes
#samba soll auf DNS-Einträge vom Router zurückgreifen

unix password sync = no
#kein Abgleich zwischen Linux und Samba Passwörtern

map to guest = never
#keine Gäste zulassen

usershare allow guests = no
#nein Gäste sollen keine Verzeichnisse erstellen können

unter Share Definition:

valid users = @angestellter,@chef
path = /srv/smb/Firma
writeable = yes
public = no
guest ok = no
force group = +angestellter
create mask = 0660
directory mask = 0770
valid users = @chef
path = /srv/smb/Chef
writeable = yes
public =  no
guest ok = no
force group = +chef
create mask = 0660
directory mask = 0770
valid users = @chef
path = /mnt/Secure
writeable = yes
public =  no
guest ok = no<
force group = +chef
create mask = 0660
directory mask = 0770

public = no / bedeutet, dass man nur als registrierter Nutzer zugreifen kann
guest ok = no / keine Gäste, im Grunde dasselbe wie Public
force group = +chef / neue Dateien bekommen die Gruppe Chef
create mask = 0660 / neue Dateien bekommen die Rechte 660, lesen und schreiben für den Owner und die Gruppe
directory mask = 0770 / neue Ordner bekommen die Rechte 770, lesen, schreiben und ausführen für den Owner und die Gruppe

Unbedingt bei „force group“ auf das „+“ achten, ohne das Plus bedeutet es, dass jeder Zugriff, als ein Zugriff von dieser Gruppe gewertet wird. Dies ist ein Sicherheitsproblem!

Dann mit „ESC“ raus aus dem Schreibmodus und mit „:wq“ speichern.

Habe ich alles Richtig gemacht?
Prüfen mit
/etc/smb/ testparm

Es kommt bei mir:
WARNING: The "syslog" option is deprecated

Diese kann man auskommentieren.
syslog = 0 bedeutet eigentlich, dass nur Fehler protokolliert werden nicht Warnungen etc.

Jetzt muss der Samba-Service neu gestartet werden, damit die Änderungen eingelesen werden:

service samba reload


Änderungen, damit Samba als wins-server auftritt – FUNKTIONIERT BEI MIR NICHT

Bei mir geht nach der festen Vergabe von IP-Adressen das Browsing nicht mehr, d. h. ich sehe nicht mehr auf meinen Clients automatisch die smb-Freigaben, sondern muss mich immer per Kommando mit dem Server verbinden (Mac: „Mit Server verbinden …“). Mehr zu Browsing-List-Fähigkeiten gibt es bei Linux-Praxis, der folgende Korrekturen vorschlägt, die bei mir aber auch nichts genutzt haben. Wichtg ist wohl, dass es einen „guest account“ gibt, da das Browsing über diesen abgewickelt wird:

#neu Samba als localer wins-server, braucht guest account
wins server = #ist dies die eigene ip-Adresse?
guest account = nobody
local master = yes
preferred master = yes
os level = 65
map to guest = bad user

Auch diese Einstellung bringt keine Änderung. Der Name des Servers taucht NICHT automatisch im Finder des Mac auf. Ein Zugang zum Samba-Server muss immer über das Menü „Gehe zu – Mit Server verbinden …“ und der IP-Adresse eingeleitet werden.


Einen Papierkorb einrichten

Normalerweise sind bei Samba gelöschte Dateien einfach gelöscht. Es gibt nicht die Papierkorbfunktion. Ubuntu-Users gibt eine Anleitung, wie man dies jedoch mit Hilfe eines versteckten Ordners, „.recylcebin“ realisieren kann. Der Ordner muss dann von Zeit zu Zeit manuell gelöscht werden. Er wird bei der ersten Löschung automatisch eingerichtet. Die Angaben kommen in den allgemeinen Bereich, damit sie für alle Shares gelten:

# Ein Papierkorb wird eingerichtet:
vfs object = recycle
# Der Pfad zum Papierkorb relativ zur Freigabe (".recyclebin" ist Default).
recycle:repository = .recyclebin
# Im Papierkorb bleiben Pfad-Angaben erhalten.
recycle:keeptree = Yes
# Beim Verschieben wird der Zeitstempel angepasst.
recycle:touch = Yes
# Gleichnamige Dateien werden nicht überschrieben.
recycle:versions = Yes
# Keine Begrenzung der Dateigröße.
recycle:maxsize = 0

Die Einstellung gilt, wenn sie über den Shares steht, für alle Shares. In jedem Share entsteht der Ordner „.recyclebin“ und in diesem Ordner werden die Original-Ordner wieder hergestellt in denen die Datei lag, die gelöscht wurde. Liegt die gelöschte Datei in Ordner B und dieser in Ordner A so sind die beiden Ordner A+B und die Datei auch im „.recyclebin“ vorhanden.

Nur man darf das Löschen nicht vergessen, sonst frisst der Papierkorb irgendwann sehr viel Platz.

Zugriff auf den Samba-Server

Wichtig ist, dass auf dem entfernten Rechner die richtige „WORKGROUP“ eingestellt wird (anscheinend schreibt man die immer in Großbuchstaben). Voreingestellt ist meist „WORKGROUP“, das müssen wir in unserem Fall auf dem entfernten Rechner in „ZAZU“ ändern!

Beim Mac ist dies unter:
Systemeinstellungen–Netzwerk–Ethernet–Weitere Optionen–WINS

Dann kann man darunter noch die IP-Adresse unseres WINS-Servers (Samba-Servers) eintragen.

Zugriff von einem Mac aus

Falls der Server nicht unter den Festplatten im Findermenü links erscheint (was manchmal mit DHCP automatisch klappt), kann man im Finder-Menü über:

Gehe zu – Mit Server verbinden …

entweder auf „Durchsuchen“ gehen oder oben „smb://[IP-Adresse-Server / oder Servernamen]“ eine Verbindung herstellen. Da die Passwörter und Namen des entfernten Rechners bei mir nicht übereinstimmen muss man diese jetzt angeben. Gegebenenfalls kann man die Zugangsdaten jetzt auch im Schlüsselbund des Macs speichern. Danach öffnet sich ein Fenster mit dem ausgewählten Ordner des Samba-Servers.

Manchmal findet der Mac den vorhandenen Samba-Server auch von alleine und bietet ihn unter „Freigaben“ oder „Netzwerk“ im Findermenü direkt an. Das Einloggen bleibt aber das Gleiche. Will man nicht das Passwort im Schlüsselbund speichern und sich direkt einloggen, so müssen die Benutzernamen vom Mac und vom Samba-Server „gemappt“ werden (siehe oben) und die Passwörter müssen identisch sein.

Zugriff vom Ubuntu-Desktop

Auf das Aktenschranksymbol links klicken, „Mit Server verbinden“ auswählen „smb://[IP-Adresse-Server]“ eingeben und einloggen.

Zugriff von Windows 7 aus

Man muss den alten Internet-Explorer herauskramen und dort in der Pfadleiste eingeben:

\\[server-name oder ip-adresse]

Hier sind die „Rückstriche/Backslashes“ wichtig, die man über „AltGr+ß“ erreicht.

Dann öffnet sich ein Fenster und man kann sich mit Samba-User-Namen und Passwort verbinden. Es erschienen alle „Freigaben“ und man kann diejenigen für die der Name und das Passwort gilt anklicken und dann nutzten.

Bei mir war noch unter „Computer-Rechtsklick-Erweiterte Systemeinstellungen-Computername-Netzwerk-ID-Ändern …“ die Standard „WORKGROUP“ eingestellt, die ich auf „ZAZU“ geändert habe.

Zum Schluss Samba-Server absichern

(siehe dazu auch nächstes Kapitel)

Auf alle Fälle sollte die Firewall auf dem Router zu sein (TCP Ports: 135, 139, 445 und UDP-Ports 137, 138 und 445), damit man gegenüber dem Internet abgesichert ist. Samba ist für den Betrieb im Internet nicht geeignet!

Innerhalb des eigenen Netzwerks kann man noch den Zugang auf bestimmte Rechner oder IP-Adressen beschränken:

# /etc/samba/smb.cnf
bind interfaces only = yes
interfaces = [IP-Adresse],[IP-Adresse]
hosts allow = RechnerA RechnerB
map to guest = never

VII. Sicherheitsmaßnahmen für Samba und SSH

fail2ban für den Samba-Server – Kampf gegen Verschlüsselungserpressung

Man kann fail2ban, das im nächsten Abschnitt (openSSH) beschrieben wird, auch benutzen um bestimmte Dateien oder Dateiänderungen innerhalb von Samba zu unterbinden. Der User wird einfach ausgeloggt, bevor er länger Zeit hat um z. B. ein Verzeichnis zu verschlüsseln, damit der Besitzer später erpresst werden kann („Locky“).

Heise Security hat ein Ablauf entwickelt mit dem man fail2ban für Samba einsetzen kann. Eine gute Liste von Dateinamen und Endungen, die von Locky-Erpressern benutzt werden gibt es bei univention. Wie man die Portokollierung bei Samba auf Dateien bezieht findet man in Martin’s Blog.

Manche Dateien (samba.conf einmal unter „/etc/fail2ban/filter.d/“ und einmal unter „/etc/fail2ban/jail.d/“) muss man auch mit sudo touch anlegen, das ist bei Heise nicht sehr gut beschrieben. Die Logdateien landen im /var/log/syslog.

Bei meiner Konfiguration (siehe unter fail2ban und ssh) benutze ich „jail.local“ anstelle von „jail.conf“!

openSSH-Server absichern

SSH bietet direkten Zugang zum Server und dies auch aus dem Internet, vorausgesetzt im Router hat die Firewall den entsprechenden Port offen. Hat jemand Zugang zu SSH, dann hat er auch Zugang zum gesamten Server. Dies muss man verhindern.

Alles was auf dem Server passiert wird in den Log-Dateien vermerkt, also auch Angriffsversuche:

sudo vim /var/log/auth.log

Folgende Maßnahmen kann man treffen:

  • den Port ändern
  • root aussperren
  • alle Passwörter verschlüsselt?
  • nach zu vielen Fehlversuchen eine Zwangspause einlegen mit fail2ban
  • Sicherheitskonzept erhöhen mit Schlüsseln und Passwort

a. Den SSH-Port ändern

SSH-läuft standardmäßig auf Port 22, ändert man diesen z. B. auf Port 666, dann muss der Angreifer erst einen Portscan machen, bevor er überhaupt an den SSH-Server kommt. Nicht unmöglich, aber eine Hürde für automatisierte Angriffe:

sudo vim /etc/ssh/sshd_config
Port 666

Ganz oben den alten Eintrag auskommentieren und den neuen einfügen.

b. Root aus SSH aussperren

Sollte Root aktiviert sein (bei Ubuntu ausgeschaltet), dann muss ein Angreifer nur das Passwort von Root erraten, deshalb Root am Besten gleich für SSH deaktivieren. Der Defaultwert ist „prohibit-passwort“, was bedeutet Root darf nur mit einem Schlüssel aber nicht mit einem Passwort zugreifen. Ändern in sshd_config:

PermitRootLogin no
# zum speichern

c. Alle Benutzerpasswörter müssen verschlüsselt gespeichert sein

Die Datei in der man das sieht ist: /etc/shadow

Hier sollten für alle User, die ein Passwort besitzen, zwischen den ersten beiden Doppelpunkten eine lange Zeichenketten sein. Bei System-Accounts ist es ein Stern oder eine Ausrufezeichen. Falls es Benutzer gibt, die ein Passwort haben aber keine Verschlüsselungskette sollten Sie ihnen sofort ein Passwort geben:

sudo password [Name]

d. Fail2Ban oder Pause nach zu vielen Versuchen bei ssh

Das Programm kann alle möglichen Netzwerkdienste überwachen und erstellt Firewall-Regeln, nachdem es zu viele Fehlversuche entdeckt hat.

sudo apt-get update
sudo apt-get install fail2ban

Die Eistellungsdatei finden wir in: „/etc/fail2ban/“ – dort ist es die Datei: „jail.conf
Diese Datei kopieren wir als jail.local, die dann den Vorrang hat. So erhalten wir die alte Datei mit den Default-Werten, falls wir wieder zurück müssen und etwas schief gelaufen ist.

sudo cd /etc/fail2ban
sudo cp jail.conf jail.local

Nun ändern wir die jail.local-Datei:

enable = true einfügen:

port    = ssh
logpath = %(sshd_log)s
enable = true

Die Werte am Anfang der Datei sagen aus, dass 10 Minuten gesperrt wird, wer innerhalb von 10 Minuten 5 Fehlversuche gestartet hat. Dies Werte kann man global oder nur durch Eintrag im [sshd-Block] ändern:

# "bantime" is the number of seconds that a host is banned.
bantime  = 600

# A host is banned if it has generated „maxretry“ during the last „findtime“
# seconds.
findtime  = 600

# „maxretry“ is the number of failures before a host get banned.
maxretry = 5

Dann alles speichern und den Prozess starten:

sudo systemctl restart fail2ban
sudo systemctl enable fail2ban

Zustand kontrollieren:

sudo fail2ban-client status sshd

Status for the jail: sshd
|- Filter
|  |- Currently failed:    0
|  |- Total failed:    0
|  `- File list:    /var/log/auth.log
`- Actions
|- Currently banned:    0
|- Total banned:    0
`- Banned IP list:    

Eine sehr gute, erweiterte Anleitung zu fail2ban und openSSh, finden Sie bei DigitalOcean.

e. SSH mit Schlüsseln plus Passwort betreiben

Anleitungen finden sich im Internet und im Kofler-Linux-Buch. Da ich unterschiedliche Rechner nutze, um mich einzuloggen, müsste ich immer den Schlüssel dabei haben und auf dem jeweiligen Rechner installiern. Das ist mir zu umständlich.


VIII. sFTP-Server mit openSSH-Server realisieren / teilweise

Man kann mit dem Administrator und seinem Passwort ganz normal z. B. über das Programm „Transmit“ und der Einstellung „sFTP“ auf den kompletten Server zugreifen. Schön wäre es jedoch, dass man den Zugang auf einzelne Verzeichnisse beschränken könnte, um einzelnen Usern so einen eingeschränkten Zugang zu ermöglichen. Damit hätte man eine sichere SSH-sFTP-Kommunikation und könnte sich die Einrichtung eines FTP-Servers sparen, denn mehr Server bedeutet ja auch immer mehr Zugänge und mehr Zugänge bedeutet weniger Sicherheit.

Aber will man Samba und sFTP kombinieren, dann macht es Sinn, dass die Ordner außerhalb von „/home“ liegen, nur scheint das nicht zu gehen:

Der Versuch einen Ordner der außerhalb von „/home“ liegt als „chroot“ (Gefängnis aus dem der eingeloogte sFTP-User nicht herraus kommt, um auf dem Server Unheil zu stiften)  zu benutzen, um dort mit sFTP Inhalte abzulegen, hat nicht funktioniert. Anscheinend ist bei Ubuntu 16.10 hier irgendwo eine Sperre eingebaut (vielleicht appAmor).

Hier mein Vorgehen, falls noch jemand Tipps hat, bin ich dankbar für Anregungen!

Eine Anleitung für einen sFTP-Zugang mit chroot innerhalb von Home findet man z. B. bei „dann rate mal“ oder ausführlicher bei KaiRaven.

Sicherheitshalber die sshd_config duplizieren und das Original sichern und der Datei „sshd_config“ nur Schreibrechte für Root geben:

sudo cp sshd_config sshd_config.original
sudo chmod 640 /etc/ssh/sshd_config

Dann in der „sshd_config“ die Änderungen vornehmen:

sudo vim /etc/ssh/sshd_config

Subsystem auskommentieren und neue Subsystemzeile einfügen:

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Jetzt das „ChrootDirectory“ für den Nutzer einrichten:

#weiter sftp Einrichten zazu kunden
Match User kunden
ChrootDirectory /srv/Kunden
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no

Damit ist dieser Teil in der „sshd_config“ fertig. Wir legen, falls nicht vorhanden, den User „kunden“ an.

sudo adduser kunden

Verhindern, dass der User einen Shell-Zugang bekommt. Ein Shellzugang ist laut „man sshd_config“ bei sFTP nicht nötig:

sudo usermod -s /bin/false kunden

Im Ordner „srv/Kunden“ muss es „/srv/Kunden/home/“ und „/srv/Kunden/home/kunden/“ geben. Sie müssen alle „root“ gehören und kein anderer darf Schreibzugriff haben. Das Manual sagt:

man sshd_config

Specifies the pathname of a directory to chroot(2) to after authentication.  At session startup sshd(8) checks that all components of the pathname are root-owned directories which 
are not writable by any other user or group.  After the chroot, sshd(8) changes the working directory to the user's home directory."

Das müsste bedeuten, dass nachdem man „ge-chroot-ed“ ist, das „chroot-dirctory“ der neue Wurzelpunkt ist und von da an leitet chroot in das „home-directory“ (innerhalb des „chroot-directory“ für den User.

Folglich muss in der /etc/passwd-Datei folgendes stehen:


Siehe zum chroot-außerhalb von home auch den Artikel bei serverFault.

Jetzt den ssh-Server neu starten:

sudo /etc/init.d/ssh restart

Das funktioniert bei mir NICHT!

Solange ich mein „chroot-directory“ untehalb von „/home“ habe, also das reguläre Home-Verzeichnis des Users, geht alles prima und er kommt auch nicht aus seinem Home-Verzeichnis raus, also chroot funktioniert. Wenn aber mein Chroot-Ordner außerhalb von Home liegt geht das Ganze nicht.

Ideen? Anregungen?

IX. Netzwerk von DHCP auf feste IP-Adresse umstellen, LAN-Leitungen bündeln

Feste IP-Adressen für die Schnittstellen

Hat man mehr als einen Netzwerkadapter, dann kann man feststellen welche Controller es gibt. In der Regel sind die Intel-Controller am schnellsten:

lspci | grep -i net

Bei meinem Mainboard heißen die 10 Gb-Schnittstellen „rename 4“ und „rename5“ (macht Ubuntu beim Systemstart), deshalb habe ich sie zuerst umbenannt. Vorher müssen sie aber heruntergefahren werden:

sudo ip link set rename5 down
sudo ip link set rename5 name  zehnGb1
sudo ip link set zehnGb1 up

Kommt man zu der momentan aktiven Schnittstelle unterbricht man natürlich die SSH-Sitzung und muss am Server direkt den Namen ändern und die Schnittstelle wieder hochfahren.

Wie ich festgestellt habe hält dieses Umbenennen nur bis zum nächsten Neustart. Will man es permanent haben, so muss man händisch eine udev-Regel erstellen. Hier gibt es zudem Neuerungen seit Ubuntu 15.10. Es scheint, dass die Datei „/etc/udev/rules.d/70-persitent-net.rules“ nicht mehr automatisch erzeugt wird. Deshalb halten wir die Sache simpel und leben mit „rename4“ und „rename5“. Näheres zu „udev“ und den Regeln gibt es bei ask-ubuntu-networking und bei wiki-ubuntu-users.

Einzelne LAN-Adapter (das Mainboard hat 2 x 10 Gb/s) bündeln

Ändern der Schnittstelleneinstellungen in der  /etc/network/interfaces-Datei
mit dem Zusammenlegen zweier Schnittstellen für maximalen Datendurchsatz (bonding/Bündelung).

Eine Anleitung gibt es auch bei, bei oder im „Praxishandbuch Ubuntu Server 14.04 LTS“ von C. Kühnast und D. van Soest. Diesmal ist die Beschreibung im Praxishanbuch Server sogar richtig ausführlich.

Um „rename4“ und „rename5“ zu kombinieren benutzen wir das „IEEE 802.3ad-LACP-NIC-bonding-Protokoll“ (NIC-bonding  = network-interface-card-Bündelung). Es ist das am einfachsten zu etablierende und das einzige, das der Mac versteht. Außerdem entscheidet es selbstständig, wie es den höchsten Datendurchsatz bekommt und fällt beim Ausfall einer Schnittstelle automatisch auf die andere Schnittstelle zurück.

sudo vim /etc/network/interfaces
#rename4 ist manuell und ein "Slave" zu "bond0"
auto rename4
iface rename4 inet manual
bond-master bond0

#rename5 ist daseblbe damit ein 2-Link-Bond.
auto rename5
iface rename5 inet manual
bond-master bond0

# bond0 ist eine „gebondete“ Schnittstelle und kann
#wie jede andere Schnittstelle benutzt werden
# bond0 hat eine statische IP-Adresse
auto bond0
iface bond0 inet static
# bond0 benutzt das IEEE 802.3ad LACP
#bonding protocol (wie der Mac z. B. auch)
bond-mode 4
bond-miimon 100
bond-lacp-rate 1
bond-slaves rename4 rename5

Alles speichern und Service neu starten:
sudo service networking restart

Man kann dann schauen, wir der Zustand der Schnittstellen ist mit:

sudo ip address show

oder den Zustand des Bondings ausführlich darstellen:

sudo cat /proc/net/bonding/bond0

Wie der Bond die Pakete verteilt

Es gibt dafür verschiedene Möglichkeiten. Es werden entweder die MAC-Adressen benuzt oder zusätzlich die IP-Adressen. Die Bonding-Dokumentation gibt es bei und sie hat dazu einige Angaben.

Die Voreinstellung „layer2“ verteilt den ganzen Verkehr auf einen Slave. Es gibt für Linux dann noch „layer3+4“ die für die Berechnung der Pakete auch Layer 3 Informationen (IP-Adressen) benutzt. Wenn ich das richtig verstehe leitet „layer2“ immer alles über eine Leitung (Slave), weshalb man über folgende Einstellung „layer3+4“ setzten sollte:

bond-xmit_hash_policy layer3+4

Beim Switch (siehe weiter unten) kann man ebenfalls verschiedene Methoden einstellen. Was hier aber wirklich den besten Durchsatz bringt habe ich noch nicht getestet. Hier der Auszug aus der bond0 Abfrage am Server:

sudo cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: vX.X.X

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer3+4 (1)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0


Beim Switch habe ich momentan „Source/Destination MAC, Ethertype, Incoming Port“, was nur eine 1:10 Verteilung für die zwei LAN-Leitungen ergibt, also im Grunde geht alles über eine Leitung. Ein Umstellen auf „Source/Destination IP and TCP/UDP Port Fields“ hat aber auch nichts gebracht.

Bei meinem 10 GB Testordner gab es leider keine Unterschiede, es blieb bei den 2’40“ auch wenn ich am Switch zusätzlich von MAC-In/Out auf IP-In/Out umgestellt habe gingen doch alle Daten über eine einzelne Leitung. Nur die Netzwerkarktivitätsanzeige zeigte plötzlich werte wie 270 MB, die nicht stimmen können, da das theoretische Maximum bei 250 MB liegt und zudem die Zeiten dieselben sind und beim Paketmonitor des Switches man eindeutig sieht, dass alle Daten über eine einzlene Leitung gesendet werden.


Jetzt sollten wir aber zuerst den Switch einrichten.

Einen HP-Switch für Bonding einrichten

IP-Adressen im Switch einrichten

Ich habe einen Switch von der Firma HP genommen mit 24 Anschlüssen. Er muss managed/verwaltet sein. Ein Switch hat eine eigene Intelligenz und kann zwei Geräte im Heimnetz direkt (Layer 2) miteinander verbinden, ohne dass das Signal über den Router (Speedport/ etc.) gehen muss. Am Anfang verbindet man den Switch am Besten erst gar nicht mit dem Router, da man ihm zuerst die Adresse des Routers mitteilen muss. Und dafür muss man an die Einstellungsebene.

Um an die Einstellungsebene des Switches zu gelangen nur den Switch mit einem Rechner verbinden. Dann auf dem Rechner das Adressfeld des Switches einstellen. Beim Mac geht das ganz einfach:

Systemeinstellungen-Netzwerk (IP-Adresse nach HP-Swich-Bedienungsanleitung)

  1. Oben eine neue „Umgebung“ wählen oder eine alte „Umgebung“ bearbeiten.
  2. IP-Adresse:
  3. Teilnetzmaske:
  4. Router:

Dann „Anwenden“ drücken. Wenn die alte Mac-Netzwerkumgebung nicht überschrieben ist, können wir sie mit einem Klick später wieder herstellen. Wir brauchen diese Einstellung am Mac nur um einmal in den Switch zu kommen.

Jetzt in den Switch unter der HP-Vorgaben-IP-Adresse:, mit einem Browser einloggen. User ist „admin“, Passwort ist leer.

Dann hier die IP-Adresse des eigenen Routers eingeben und die IP-Adresse unter der sich der Switch am Router immer anmelden soll. Alles speichern und den Switch neu starten. Jetzt am Rechner, mit dem wir uns eingeloggt haben (bei mir war es, wie oben beschrieben, ein Mac), wieder den alten Zustand herstellen. Einfach wieder die alte Umgebung auswählen. Jetzt ist der Switch auf den eigenen Router eingestellt und man erreicht ihn unter seiner neuen IP-Adresse.

Bonding am Switch für den Server einrichten

Auf den Menüpunkt „Trunks“ gehen, dann auf „Configuration“ dann „TRK1“ markieren und auf „Edit“.



Auf einem HP-Switch bonding einrichten. „Static Mode“ auf „Disabled“!

„Static Mode“ muss man unbedingt auf „Disabled“ stellen, sonst ist es kein IEEE 802.3ad-LACP und passt nicht zu dem was wir auf dem Server eingerichtet haben und der Mac versteht es dann auch nicht. Dann noch aus der Port List die zwei Ports auswählen, in die später die zwei LAN-Kabel des Servers kommen und fertig.

Man sollte dann am Switch noch die Zeit einstellen, das Passwort ändern etc.

Und später noch das Bonding für den Mac einrichten. Das ist dann TRK2, mit den gleichen Werten wie für die Serveranschlüsse, bis auf die Ports in die die zwei LAN-Kabel es Mac kommen.


Bonding am MAC einrichten

Das Bonding am Server haben wir ja schon eingerichtet, das macht aber alles nur Sinn, wenn es auf der anderen Seite auch einen Rechner gibt, der ebenfalls auf zwei LAN-Leitungen gleichzeitig feuern und empfangen kann.

Am Mac versteckt sich das „Bonding“ oder „Truncking“  wieder im Dialog:

Dann oben „Ethernet“ auswählen und nun links unten am kleine Rädchen das Menü aufklappen und „Virtuelle Anschlüsse verwalten …“ wählen. Hier die beiden Ethernet-Anschlüsse auswählen und mit „Anwenden“ die Einstellung abschließen.

Jetzt zurück zum Switch und dort das Bonding für den Mac – wie oben beschrieben – einrichten!


Letzte Kontrolle am Server

Hat man den Server neu gestartet und mit „ip address show“ sind die LAN-Ports immer noch auf „down“ so kann man sie nochmals nach „up“ schieben und den Netzwerkprozess nochmals neu starten.

sudo ip link set zehnGb0 up
sudo ip link set zehnGb1 up
sudo service networking restart

Jetzt sollte man ein Funktionierendes Bond haben.

sudo cat /pro/net/bonding/bond0

 DNS Probleme Router und statische IP-Adresse

Nach der Vergabe einer statischen IP-Adresse können die Router, da sie nicht mehr DHCP anwenden meist den Namen des Servers nicht mehr automatisch in eine IP-Adresse umwandeln (localhost DNS) Abhilfe schafft beim MAC eine Änderung in der /etc/hosts-Datei. Im Terminal, direkt am Mac, im normalen Fenster ohne SSH-Einwahl:

sudo vim /etc/hosts

Dann unten erst die IP-Adresse des Servers eintragen und dahinter seinen Namen. Jetzt klappt das Einloggen in SSH wieder mit „user@servernamen„. Es kommt aber am Anfang eine Meldung, dass SSH diesen Servernamen mit der IP-Adresse so nicht kennt. SSH lässt aber ein Login trotzdem zu.


Wie schnell ist das Netzwerk, mit zwei gebündelten Mulitplex 1 Gb/s-LAN-Schnittstellen?

Mein Testordner hatte 10 GB und ca. 2.500 Dateien.

Wie schnell ist der Server und das RAID?

Vom Verzeichnis „/home“, das auf der Samsung-SSD liegt zum RAID 6 mit dem Adaptec Controller und zurück waren es folgende Werte:

SSD zu RAID 6 – 14,5 Sekunden = 690 MB/s Schreibgeschwindigkeit für das RAID
RAID 6 zur SSD – 13 Sekunden = 769 MB/s Lesegeschwindigkeit für das RAID

Wie schnell ist das Netzwerk?

Vom MacPro wurde derselbe Ordner einmal über das Netzwerk auf das RAID 6 geschrieben und einmal anders herum:

MacPro –> Netzwerk –> RAID 6 – 2 Minuten 41 Sekunden
RAID 6 –> Netzwerk –> MacPro – 2 Minuten 44 Sekunden

In Bytes und Bits

Eine Gigabit-LAN-Leitung sollte 1 Gigabit pro Sekunde machen. Da wir uns bei Leitungen auf der Hardwareseite befinden, und diese in Herz getacktet ist, ist damit ein Wert zur Basis 10 gemeint, also: 109 = bit.
Auf der Software Datenseite rechnet man aber im dualen System also zur Basis 2, dies meint: 1 Gigabit = 230 = 1.073.741.824 bit.

Der Leitungsdurchsatz ist damit 109/230 = 0,93132 Gibit/s – zur Basis 2.

Die kleinste adressierbare Adresse hat in der Computrtechnik 8 bit, weshalb man auf Softwareseite wiederum mit Bytes statt mit bits rechnet.

1 Gigabyte sind 8 Gigabit

Damit ist der theoretische Leitngsdruchsatz: 0,93132 Gibit/s geteilt durch 8 = 0,116415 GiByte/s oder 116,415 MiByte/s (das zusätzliche „i“ steht für zur Basis 2).

Unser Testdatei hatte 10 GiByte (zur Basis 2).
2’40“ sind 160 Sekunden. Also 10 GiByte geteilt durch 160 Sekunden = 0,0625 GiByte/s oder 62,5 MiByte.

Eine einfache LAN-Leitung macht theoretisch 116,415 MiByte/s, da sie gedoppelt ist müsste sie also theoretisch 232,83 MiByte/s machen.

Den tatsächlichen Durchsatz 62,5 MiByte/s geteilt durch den theoretischen von 232,83 MiByte/s macht 26,84%, das ist nicht greade üppig.
Es ist aber schwer nachvollziehbar, wo das Ganze, jenseits von normalen Protokollverlsuten und Overhead, hängt oder einen Engpass hat.

Es könnte der Mac-Client sein, der Switch oder die Serverkonfiguration. Hier gibt es noch Testbedarf. Ich freue mich auch über Anregungen und Tipps!


X. Verschicken von Statusmeldungen per Mail

Einrichten eines Mail-Servers, so dass man Statusnachrichten durch Ubuntu verschicken kann

Die Ventilatoren pumpen, der 10 GB-LAN-Controller wird zu heiß, fail2ban hat jemandem ausgeschlossen, es gibt viele Stellen, an denen einzelne Servermodule Nachrichten verschicken können. Doch ohne Mail-Server gibt es keinen Punkt an dem die Nachrichten abgeschickt werden können.

Mit dem Programm „postfix“ kann man einen Minimal-Mailserver einrichten, der genau das macht, nämlich Statusmeldungen an eine vorgegebene Emailadresse verschicken.

sudo apt-get update
apt-get -fym install postfix

postfix einrichten

Email-Server Postfix nur für Systemnachrichten

Man wählt „Nur lokal“, damit wird ein minimales System installiert, das aber alle Mails nur lokal vorhält und auch nur lokale Mails akzeptiert. Diese könnten mit dem Programm „Mutt“ auch gelesen werden, was aber natürlich zu umständlich ist. Deshalb gibt es noch Zusätze.

Als Domainabsender kann eine beliebige Doamain-Adresse gewält werden, z. B.

postfix-einrichten Doamain

Einen Domainnamen zuteilen.

Mails an Root nach außen weiterleiten

Um die Mails an Root nach außen zu leiten, muss die Konfiguration geändert werden, da es momentan auf „local“ begrenzt ist.

In der Datei „/etc/aliases“ trägt man die Zielmailadresse ein und für den Postmaster, der auch bestehen muss, ebenfalls:

sudo vim /etc/aliases

Dem Mailprogramm mitteilen, dass es Änderungen gibt und diese auch übernommen werden!
sudo newaliases

Nun muss die Datei „/etc/“ angepasst werden:

Beim relayhost (Zielhost) müssen die eckigen Klammern bleiben! Bei meinem Provider muss vor den Domainnamen noch der Zusatz „mail.“ (, dann musste ich die 587 angeben für eine verschlüsselte Verbindung und die nächste Zeile mit „smtp_tls_security_level = may“

sudo vim /etc/

myhostname = meinServer
mydestination = meinServer, localhost.localdomain, localhost

relayhost = []:587
smtp_tls_security_level = may

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl-passwd
smtp_always_send_ehlo = yes
smtp_sasl_security_options = noanonymous
#default_transport = error
#relay_transport = error

Um die  Verbindung zu meinem Provider zu ermöglichen muss noch „SMPT-Submission“ eingerichtet werden, das den Versand über Port 587 ermöglicht.

Auskommentieren aufheben/Rauten # entfernen

sudo vim /etc/postfix/
submission inet n - - - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_relay_restriction=permit_sasl_authenticated,reject

Speichern und Service neu starten. Siehe unten.

Dann habe ich noch die libsasl2-modules installiert. Ob das nötig ist weiß ich nicht, es gab aber einen Hinweis im Netz.

sudo apt-get install libsasl2-modules-sql

Als nächstes müssen die Zugangsdaten über für den Server, über den die Emails versendet werden sollen eingegeben werden. Dafür müssen wir im Ordner „sasl“ eine „sasl-passwd“-Datei anlegen. Bei meinem Provider muss wieder „mail.“ vor den Domainnamen. (Der Ordner „sasl“ scheint neu zu sein früher lag die Datei „sasl-passwd“ direkt in „/etc/postifix“.)


sudo touch sasl-passwd
sudo vim sasl-passwd loginname:passwort
#ESC-Taste drücken

Aktualisieren der Datenbank mit den neuen Angaben. Es wird mit „postmap“ eine „.db“ Datei kreiert, die man genauso wie die ursprüngliche Datei gegen fremden Zugriff schützen sollte, da sie beide das Mailpasswort unverschlüsselt enthalten.

sudo postmap /etc/postfix/sasl/sasl-passwd
sudo chmod 0600 /etc/postfix/saslasl-passwd /etc/postfix/saslsasl-passwd.db

Momentan wird über einen externen Server eine Email mit dem Absender versendet. Damit stimmen Absender-Account und Absenderadresse nicht überein und werden von den meisten Spamfiltern nicht durchgelassen. Deshalb muss jetzt noch die Absenderadresse mit der Adresse des eigentlichen Versandservers angeglichen werden.

sudo vim /etc/postfix/

canonical_maps = hash:/etc/postfix/canonical

Dann in der Canonical Datei:

sudo vim /etc/postfix/canonical

Aktualisieren („postmap“) der Datenbank mit den neuen Angaben:

sudo postmap /etc/postfix/canonical

„postmap“ kreiert jedes Mal eine neue Datei mit der Endung  „.db“ im selben Ordner.

Postfix neu starten:

sudo service postfix restart


sudo /etc/init.d/postfix reload

Ich beziehe mich hier wieder auf den „Kofler“, aber es gibt auch direkt bei Postfix gute Angaben zur Konfiguration.

Mailversand testen

Am Eingabeprompt von SSH muss man zu „telnet“ wechseln:

telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 mail ESMTP Postfix
helo localhost
250 mail
250 Ok
rcpt to:root
250 Ok
354 End data with <CR><LF>.<CR><LF>
Suject: Test von Thomas
Der Mailtext, der versendet werden soll.
250 Ok: queued as B58E141D33

Achtung der Punkt am Ende muss alleine in einer Zeile stehen und gehört dazu! Er bedeutet Data-Ende.

Falls es Problem gibt kann man Postfix neu konfigurieren.
Aber Achtung es werden zuvor auskommentierte Angaben in „“ unten wieder neu eingefügt.

dpkg-reconfigure postfix

IPMI-Statuswarnungen aktivieren und über einen externen Mail-Server direkt verschicken

Im Gegensatz zu Linux braucht IPMI keinen zusätzlichen Mailserver. Wählt man sich über den IPMI-LAN-Kanal am Mainboard ein, so kann man dort Email-Server-Daten hinterlegen, damit bei Problemen eine Statusmail verschickt werden kann. Im Gegensatz zum Einrichten mit Postfix (für die Satusmails die vom Linux-System kommen), gibt es bei IPMI eine Testmailfunktion, was die Sache wesentlich einfacher macht.


IPMI Mails settings

Status Mails von IPMI verschicken – Achtung mit den Sonderzeichen im Passwort hier gibt es Beschränkungen!

Die Mails werden über einen externen Provider verschickt – in der Regel Ihr normaler Email-Account. Die Daten sind die gleichen, wie sie auch in Email-Programmen eingegeben werden müssen.

Bei mir ging es nicht, ohne dass ein klar ersichtlicher Grund vorlag. Mein Provider ist dann für mich die Logdateien durchgegangen und konnte erkennen, dass das Passwort immer abgelehnt wurde.  (Es war Gott sei Dank nicht die Telekom oder sonst ein Verein mit grauenhafter Telefonhotline, sondern snafu in Berlin.) Das Passwort stimmte, nur hatte es ein paar Sonderzeichen z. B. ein „=“. Das führte wohl dazu, dass IPMI das Passwort geändert oder einzelne Zeichen ignoriert hat. Nachdem ich das Passwort vom Gleichheitszeichen befreit hatte, ging es plötzlich. Vielleicht lag es auch an der Passwortlänge, die bei IPMI auf 20 Bit beschränkt ist (siehe weiter oben unter IPMI).
Das sind Fehler, bei denen man endlos suchen kann! Danke an snafu und der Hotline, bei der ein Fachmann am Telefon sitzt und auch sofort den Hörer abnimmt – ohne Telefonvertröstungsanlage – boh ey!

Nachdem der Mailzugang bei einem externen Provider eingerichtet ist, kann man unter „Configuration – Alerts“ die gewünschten Benachrichtigungen einrichten.


IPMI Alerts

IPMI Benachrichtigungen einrichten. Die Destination-IP-Adressen-Nullen können ignoriert werden.

Hier kann man den Event einrichten und dann die Email-Adresse angeben. Klickt man im Menü zusätzlich auf „Help“, dann erscheinen rechtes Erklärungen. Die Destination-IP kann auf Null gelassen werden. Das Ganze speichern und dann per Knopfdruck: „Send Test Alert“, Testmail verschicken.


IPMI Test Mail

Test Mail um zu prüfen, ob alles funktioniert.


Da bei mir die Lüftersteuerung immer noch nicht verlässlich funktioniert und gerade im Winter auch mal unter den Schwellwert von 300 U/min geht, führt dies manchmal dazu, dass das System dann alle 5 Sekunden für die nächsten Tage Mails verschickt. Das kommen dann schnell ein paar Tausend Mails zusammen. Das kann, wenn man auf Reisen ist, sehr ärgerlich sein, da das Mail-Konto dann praktisch nicht mehr zugänglich ist. Deshalb habe ich die Funktion ausgeschaltet. Siehe dazu auch die Rubrik –> Ungelöste Probleme

Email-Nachrichten über den Zustand des RAIDs verschicken

maxView-Storage-Manager verwaltet und erstellt nicht nur RAIDs sondern das Programm kann auch Statusmeldungen per Email verschicken. Man muss links die Ebene unterhalb von „Enterprise View“ auswählen, das ist der Name des Servers, und dann unter „System“ – „System Settings“ die Einstellungen vornehmen.

Hier ist der zweite Reiter: „SMPT“, in den die Daten für den Zugang zu einem externen Mailserver kommen.

maxView Statusmails verschicken

maxView Statusmails verschicken – einrichten von SMPT – Achtung es muss mit der IP-Adresse gearbeitet werden, nicht mit dem Namen!

Für den Server muss eine IP-Adresse ausgewählt werden, da es hier nicht unbedingt einen Zugang zu einem DNS-Server gibt. (Bei mir hat es nur mit der IP-Adresse funktioniert.)

Für „From Email“ am besten die eigene Mail eintragen, die auch auf dem Mailserver angemeldet ist, damit es nicht zu Spam-Verwechslungen kommt.

In einem zweiten Fenster kann man dann die Art der Statusmeldungen und die dazugehörigen Email-Adressen anlegen:

maxView Statusmails

Einer Email-Adresse die jeweiligen Meldungen zustellen.

Von hier aus kann man wiederum Testmails verschicken.
Den Reiter Agent, der sich auf interne Meldungen bezieht, die man auch an Ubuntu schicken kann und den Reiter „Web Server“, der einen Port angibt, habe ich in den Voreinstellungen gelassen.

Anhand der zugestellten Testmail sieht es bei mir so aus, als ob das Programm Postfix für den Versand zum externen Server benutzen würde, da die angegebene „Event Source“ die Postfix-Serveradresse ist.

Unter „Agent“ kann man auch den Tonalarm einstellen und nach dem Auslösen wieder abstellen!


XI. ungelöste Probleme

  1. Die Lüfter pumpen nach wie vor manchmal nach einem Neustart des Servers. Manchmal funktionieren sie aber auch normal. Supermicro hat dazu keinen Rat, außer dass man kleine laute Lüfter nehmen soll, die mit über 700 U/Min. drehen und dass nach 30 Sekunden ohne Strom IPMI zurückgesetzt wird. Für das Mainboard, mit der riesigen Heatpipe, könnte ich auf die Lüfter ganz verzichten, aber der Raid-Controller und vor allem der Controller für das 10 GB-LAN entwickeln doch ein wenig Wärme (siehe den Hardware Teil).
  2. Bei smb funktioniert die Browsing Funktion nicht. Wer ist hier der WINS-Server? Man muss sich am Mac immer mit „Mit Server verbinden …“ einwählen. Normalerweise müsste das System selbstständig die vorhandenen Freigaben erkennen. Seit ich von DHCP auf feste IP-Adressen umgestellt habe geht dies nicht mehr. Alle Hinweise aus dem Netz habe bisher keinen Erfolg gebracht.
  3. Mein Router erkennt seit ich feste IP-Adressen habe auch den Servernamen nicht mehr. Hier half ein händischer Eintrag in „/hosts“ am Client-Mac. Wie man am Router die DNS-Einträge verwaltet habe ich nicht herausbekommen.
  4. sFTP und „chroot“ geht nur wenn das „chroot-Verzeichnis“ innerhalb von „/home“ liegt. Wenn es außerhalb von „/home“ liegt geht es mit dem Linux-SSH-Server nicht. Als Ersatz, habe ich jetzt für unsere Hauptfiliale im Schwarzwald einen VPN-Kanal eingerichtet und ganz auf FTP verzichtet.


XII. Abschließende Betrachtungen

Misst man das Ergebnis an den Vorgaben, so war das Projekt erfolgreich.
Die Lärmentwicklung ist so minimal, dass sie weit unter dem Rauschen der leisen Bleibtreustraße in Berlin liegt und auch unter dem Rauschen der Heizung im Winter, ganz zu schweigen von normalen NAS-Servern, die man sich neben den Schreibtisch stellen kann. Der Lüfter im Netzteil dreht extrem langsam und die beiden anderen Lüfter liegen momentan bei 300-400 U/Min. Der Stromverbrauch des gesamten Systems reicht zwischen 35 Watt im Ruhezustand und 110 bis 120 Watt bei Volllast. Beim Überspielen von 10 TB auf den Server lag der Stromverbrauch jedoch lediglich bei 45 bis 55 Watt. Die Geschwindigkeit des Serves und des RAIDs sind perfekt, mit ca. 14 Sekunden für 10 GB und 2.500 Dateien (lesen 769 MB/s und schreiben 690 MB/s). Die Geschwindigkeit über das gebündelte LAN mit 2 Minuten 40 Sekunden für 10 GB ist ebenfalls akzeptabel. Der längliche Quader hängt als schönes Objekt in unserem 4K-Video-Postproduktionsbüro und ist ordentlich schwer, dazu noch fest mit der Wand verbunden, so dass er nicht so einfach von potentiellen Einbrechern mitgenommen werden kann. Der Kamineffekt, mit der aufsteigenden warmen Luft innerhalb des Quaders, funktioniert perfekt.
Was die Software betrifft, so ist dies natürlich ein Objekt stetiger Optimierungen und Aktualisierungen. Dadurch, dass die beiden Systeme, Betriebssystem und Raid-Controller mit den Daten, komplett getrennt sind, sehe ich hier eine gewisse Beständigkeit für den Datenteil, der von Eingriffen in Ubuntu nicht tangiert wird. Den Gesamtpreis habe ich noch nicht ausgerechnet, aber er liegt für 39 TB effektiven Speicherplatz (RAID 6 – zwei Festplatten können ausfallen) und den oben angegebenen Geschwindigkeiten, unter 5.000 Euro.

In manchen Anleitungen wird am Anfang ein Zeitumfang angegeben. Für mich kann ich sagen, für das stückweise Entwickeln, sowohl auf Hardware- als auch auf Softwareseite, sind einige Monate ins Land gegangen. Meine Freundin fand es sehr amüsant, dass ich an manchen Tagen jeweils zweimal zum Baumarkt und zweimal zu Conrad-Electronic gefahren bin. Ein Prototyp hat so seine Tücken, gerade dann wenn man nicht nur Bauteile zusammensteckt, sondern ein eigenes Konzept hat, für das man das eine oder andere Bauteil anpassen oder auch herstellen muss.
Serverbau, als die Gestaltung schöner Objekte, die keinen Lärm erzeugen und mit wenig Strom auskommen, hat meiner Ansicht nach in Zeiten von Home- oder Büro-Clouds eine Zukunft. Nicht jeder möchte seine Daten zum Auswerten nach Amerika schicken und dann über Windows 10 jeglichen Zugriff protokollieren und verwerten lassen.
Insgesamt habe ich eine Menge gelernt, vor allem über Linux und das Funktionieren von Computern an sich. Über Anregungen und Optimierungsvorschläge würde ich mich freuen!


Linux Fileserver von Thomas Hezel - Teil 1 Hardware

Schneller Linux Fileserver / Datenserver im Eigenbau – Teil 1 Hardware

0. Inhaltsverzeichnis – Teil 1 Hardware

  1. Grundüberlegungen für den Fileserver
  2. Die Hardware
  3. Die Planung
  4. Montage, vorbereitende Maßnahmen
  5. Gewindehülsen einbringen und PVC-Platte an der Wand anbringen
  6. Befestigung der einzelnen Elemente auf der Grundplatte
  7. Verkabelung
  8. Erster Betriebstest
  9. Kühlerumbau zur Temperaturoptimierung
  10. Der Fileserver fertig verkabelt und montiert
  11. Deckel drauf und fertig
  12. Abschließende Betrachtungen

I. Grundüberlegungen für den Fileserver

Die wichtigsten Eigenschaften in Kürze:
sicher, schnell, leise, großer Speicher, einfach

Ein Fileserver für eine Werbeagentur, die auch sehr viele Videofilme produziert und entsprechend umfangreiche Daten verwalten muss, sollte einer ganzen Bandbreite von Ansprüchen genügen:

a. Anforderungen an die Hardware

  1. da er 24/7 laufen wird, sollte er nicht sehr viel Strom verbrauchen
  2. die Geräuschkulisse sollte so klein sein, dass er auch direkt im Büro aufgestellt werden kann
  3. der Server sollte über ein RAID-System verfügen, um gegen Festplattenschäden gewappnet zu sein
  4. zusätzlich sollte das ganze Gerät diebstahlsicher sein
  5. über das LAN-Netzwerk muss er so schnell Daten liefern, dass Videos direkt auf dem Server bearbeitet werden können, ohne dass man sie vorher auf die Festplatte zieht
  6. die Speicherkapazität sollte irgendwo zwischen 30 und 50 Terabyte liegen
  7. eine kostengünstige Lösung wäre von Vorteil
  8. ein schönes Gerät wäre einem hässlichen vorzuziehen

b. Anforderungen an die Software

  1. die Daten sollten vor fremden Zugriffen sicher sein und die Software vertrauenswürdig
  2. die Daten müssen auch über das Internet zugänglich sein
  3. im täglichen Betrieb sollte man, wie bei einer Festplatte an die Daten kommen
  4. die Daten sollten gut nach außen geschützt sein
  5. es sollten so wenig wie möglich sonstige Prozesse auf dem Server laufen, die die Sicherheit gefährden könnten
  6. Rechte und Zugänge sollte klar und einfach sein
  7. die Datenwiederherstellung bei Festplattenausfällen sollte so einfach sein, dass man nicht jedes Mal einen Herzinfarkt bekommt und den Gesamtverlust befürchten muss
  8. Updates sollten einfach und klar sein

II. Die Hardware

Der Stromverbrauch kommt durch das Mainboard, die Lüfter, die Festplatten und den RAID-Controller zustande. Unser alter TYPO3-Entwicklungsserver hatte z. B.  12 Lüfter und verbrauchte 330 Watt, das bedeutet, er war extrem laut und letztlich auch noch teuer (ca. 45 Euro Stromkosten pro Monat, bei durchgehendem Betrieb). Hieraus ergibt sich, dass der Fileserver möglichst mit wenig Lüftern auskommen sollte und der Prozessor zwar schnell sein sollte, aber nicht zu viel Strom verbrauchen.

Das Mainboard

Die klassische Lösung für ein Server-Mainboard, das wenig Strom verbraucht und die relativ einfache Aufgabe eines reinen Fileservers schnell bewältigt, sind Mainboards mit Intel-Atom-Prozessoren. Sie sind stromsparend und werden auch in vielen Mobilgeräten eingesetzt. Allerdings sind die Atom-Chips von ihrem Aufbau her schon relativ alt und längerfristig eher eine aussterbende Spezies. Bei AMD gibt es die Opteron-Prozessorserie, für die es aber nicht so viele Mainboards wie für Intel-Prozessoren gibt.
Die neueste Generation von Intel-Prozessoren heißt „Xeon“, für die ich mich letztendlich entschieden habe. Laut Intel sollen die Xeon-Prozessoren der stromsparenden Variante „Xeon-D 1500“ bei der Netzwerkverwaltung bis zu 5,4 mal schneller sein als vergleichbare Atom-Prozessoren und bis zu 6 mal schneller bei der Speicherverwaltung und dies bei einem niedrigeren Stromverbrauch. Hier geht es zur Intel-Xeon-Seite. Dann galt es aber abzuwägen, ob man mehr Kerne haben will oder eine höhere Taktfrequenz, also ob der Server mehr parallel laufende Aufgaben erledigen soll oder die einzelnen Aufgaben jeweils schneller abarbeitet. Die Wattzahl, also der Stromverbrauch, sollte dabei möglichst niedrig sein. Damit schieden diejenigen Prozessoren aus, die sowohl viele Kerne haben und viele Threads gleichzeitig verarbeiten können, als auch sehr schnell sind. Dann müssen die Prozessoren auch von Mainboardherstellern verbaut werden, was bei neuen Prozessoren nicht immer der Fall ist.
Bei mir standen am Ende (Sommer 2016) zwei Prozessoren zur Auswahl, zum einen der Xeon D-1518 mit 4 Kernen, 8 Threads und 2,2 GHz und zum anderen der Xeon D-1528 mit 6 Kernen, 12 Threads und 1,9 GHz. Die Leistungsaufnahme beträgt bei beiden 35 Watt. Obwohl so ein Fileserver nicht gerade umfangreiche Aufgaben zu erfüllen hat und eher schnell sein sollte, habe ich mich für den Xeon D-1528 entschieden, da ich darin mehr Zukunftssicherheit sehe und davon ausgehe, dass Softwareprodukte in Zukunft eher mehr parallel arbeiten werden, da die Steigerung der Taktrate an ihre physikalischen Grenzen stößt.
Die dazugehörigen Mainboards gibt es von Supermicro einmal das Supermicro X10SDV-4C-TLN4F für den D-1518 und das „Supermicro X10SDV-6C-TLN4F max. 128GB ECC 2x 10GbE 2x 1GbE IPMI USB 3.0″ für den D-1528. Auf beiden ist der Chip auf den Mainboards fest verbaut (engl. embedded). Beide waren im Sommer 2016 noch ganz neu und z. B.  über den Servershop Bayern zu beziehen, die mich am Telefon wirklich sehr ausgiebig und gut beraten haben!
Das reine Mainboard kostete dabei knapp unter 700 Euro, hat dafür aber eine gute Ausstattung: Dual 10GbE LAN und einen PCIe 3.0 16 Steckplatz, der für den RAID-Controller wichtig ist. Ebenfalls verbaut ist eine IPMI-Service-Netzwerk-Buchse, über die man das Mainboard direkt managen kann, was in Bezug auf die Lüfter später von Bedeutung wurde. Die Kühlung ist ein Thema für sich und wird weiter unten behandelt. Mein Mainboard kam ohne Lüfter und braucht deshalb ordentlich Luftzirkulation. Der Arbeitsspeicher muss extra gekauft werden. Hier gibt es 4 Steckplätze, die aber nur 2 Systembusse ansprechen, weshalb man mit ausgeglichener Speichergröße die 2 Hauptsteckplätze bestücken sollte, um Geschwindigkeitsverluste zu vermeiden. Hier habe ich noch zweimal Samsung DDR4-2133 16GB RAM verbaut (Devise: viel hilft viel), was mit weiteren 180 Euro zu Buche schlägt, mit 32 GB Arbeitsspeicher dem Server aber genügend Platz zur Verarbeitung großer Datenpakete gibt.

Bezüglich des Betriebssystems muss man vorher in den technischen Spezifikationen nachschauen mit welchem Betriebssystem das Mainboard klarkommt!

Hiermit ist das Herz des Servers schon einmal gut aufgestellt, neueste Technik, die vielleicht auch ein paar Jahre aktuell bleibt, genügend RAM-Speicher und ausreichend Steckplätze.



schema server board
Schematische Darstellung des Mainboards.

Der RAID-Controller

Braucht man einen RAID-Controller?

Was macht ein RAID?
Ein RAID (Wikipedia: Redundant Array of Independent Disks“, also „Redundante Anordnung unabhängiger Festplatten“) sorgt dafür, dass Daten auf verschiedenen Festplatten so verteilt werden, dass sie schneller zugänglich sind und – das Wichtigste – bei einem Ausfall einer (manchmal auch mehrerer) Festplatten die Daten wieder hergestellt werden können. Man unterschiedet verschiedene Vorgehensweisen, die man RAID-Level nennt. (Bei RAid 1 werden alle Daten einfach gleichzeitig auf zwei Festplatten geschrieben / Spiegelung.)

Die meisten Betriebssysteme können diesen Vorgang steuern, dann spricht man von einem Software-RAID. Es gibt aber auch externe RAID-Controller, die diese Aufgabe auslagern und nur für die Verwaltung und die Verteilung der Daten zuständig sind. Dies befreit das Mainboard von einer aufwendigen Aufgabe und kann mit RAID-Controllern in der Regel auch sicherer und schneller erledigt werden, da sie genau für diese Aufgabe konstruiert sind. Außerdem haben nicht immer alle Mainboards die Möglichkeit eine große Anzahl von Festplatten direkt anzusteuern.

Nicht jedes Mainboard kommt mit jedem RAID-Controller klar!

Die bekannte Marke Areca funktioniert z. B. nicht zusammen mit Supermicro-Mainboards. Hier hilft der kompetente Fachhandel aber mit gutem Rat. Die meisten RAID-Controller kommen mit einem eigenen Lüfter, was ich auf gar keinen Fall wollte, da die Lüfter meist sehr klein sind und mit hohen Geschwindigkeiten drehen und damit einen Höllenlärm vollführen und zudem Strom brauchen.
Die Hauptentscheidungskriterien sind aber, was für Festplatten angeschlossen werden können (SATA/SAS), mit wie vielen Festplatten der Controller klar kommen soll, was für RAID-Level er beherrscht und mit welcher theoretischen Geschwindigkeit er die Festplatten ansteuern kann (6 Gb/s oder 12 Gb/s).

Für die Frage nach der notwendigen Anzahl und Größe der Festplatten, helfen RAID-Berechungsprogramme, die berechnen, bei wievielen Festplatten, mit der entsprechenden Größe, man welchen nutzbaren Speicherplatz bekommt:

Online Raid-Berechnung

Alle Festplatten sollten die gleiche Größe haben, sonst richten sich die meisten RAID-Level an der kleinsten Festplatte aus, was zu sehr viel ungenutztem Platz führt.

Wenn man große Mengen kauft, kann es sein, dass man eine schlechte Marge erwischt und viele Ausfälle hat, deshalb lieber in kleinen Margen und vielleicht in verschiedenen Läden kaufen.

Ich habe mich am Ende für den „Adaptec RAID 81605Z 16-Port SAS/SATA 12 Gb/s“ mit zugehörigem Flash-Backup entschieden. Der Preis lag bei stolzen 699 Euro inklusive des Flash-Elementes. Der Controller kann mit SAS- und mit SATA-Festplatten umgehen, er ist mit 12 Gb/s in Bezug auf die Geschwindigkeit auf der Höhe der Zeit und hat eine kleine Zusatzplatine (Flash Backup), die verhindert, dass bei Stromausfall Daten verloren gehen, indem sie den Controller noch für eine Weile (ein paar Stunden) mit Strom versorgt. Der Controller braucht einen x8-PCIe 3.0 Steckplatz auf dem Mainboard.
Mein Controller kam ohne Lüfter und mit einem relativ kleinen Kühlkörper, der nur an 2 Punkten mit der Hauptplatine verbunden ist, was später noch zu etlichen Schwierigkeiten geführt hat (siehe Kühlung und Lüfter weiter unten).

Mit 16 Festplatten á 3 TB komme ich damit bei RAID-Level 6 auf 48 TB wovon 38,2 TB nutzbar sind, der Rest ist für die Datenrettung bei Ausfall zuständig. Es können bei RAID 6 zwei Festplatten gleichzeitig ausfallen, was bei 16 Festplatten durchaus im Bereich des Wahrscheinlichen liegt (mehr zu RAID-Leveln und Geschwindigkeiten weiter unten).


Adaptec Raid-Controller
Adaptec Raid-Controller 81605ZQ – 4×4 SATA Direktanschluss


Eine weitere grundsätzliche Entscheidung muss bei den Festplatten gefällt werden:
Festplatten sind entweder sehr schnell, dann brauchen sie aber auch viel Strom und sind tendenziell eher laut oder sie sind etwas langsamer, brauchen weniger Strom und wenn man Glück hat sind sie dann auch etwas leiser. Zudem sind schnelle Platten in der Regel teurer als langsame Platten. SSD-Platten brauchen wenig Strom, sind lautlos und extrem schnell, momentan aber noch einfach zu teuer.

Also zusammengefasst:
schnell, laut und teuer (Strom und Anschaffung) oder langsam, leise und kostengünstig.

Darüber hinaus gibt es noch die Ausfallstatistiken und die Anzahl an Schreibvorgängen, die eine Festplatte theoretisch macht und ob sie für Dauerbetrieb überhaupt geeignet ist. Mit all diesen Parametern kann man sich im Internet viele Tage beschäftigen.

Hier ein guter Artikel zu Ausfallraten verschiedener Modelle bei Großspeichern:
Ausfallraten von Festplatten / Annual Failure Rates

Meine Entscheidung fiel am Ende für Stromsparsamkeit und Geräuscharmut, was etwas entgegen der sonstigen Vorgehensweise bei diesem Server ist, die auf hohe Geschwindigkeit zielt. Die Schreib- und Lesegeschwindigkeit ist am Ende aber, in Zusammenarbeit mit dem RAID-Controller, doch sehr gut geworden.

Ich habe die normale „WD Red NAS Hard Drive“ mit 3 Terabyte SATA 6 Gb/s von Western Digital gekauft, die in den diversen Tests sehr leise war, sehr wenig Strom aufnahm und bei der Geschwindigkeit im Mittelfeld rangierte. (Achtung es gibt auch noch die „WD Red Pro“, die ganz andere Spezifikationen hat und ungefähr das Doppelte kostet.) Die normale Red dreht mit 5400 U/min, braucht zwischen 3 und 4 Watt, hat eine ungefähre Lärmkulisse von 27dB und soll angeblich im Schnitt 1 Million Stunden durchhalten, ist also für Dauerbetrieb geeignet. Der Preis lag bei etwas über 90 Euro pro Festplatte (im Großeinkauf, ansonsten sind es 120 Euro).

Für das Betriebssystem, das ja mit der Datenspeicherung direkt nichts zu tun hat, aber sehr schnell sein soll, benutzt man im Allgemeinen eine separate Festplatte und zwar eine SSD–Solid State-Drive-Platte, die ohne mechanische Elemente auskommt und deshalb um vieles schneller ist als eine normale Festplatte. Hier habe ich mich für eine „Samsung SSD 120 GB“ entschieden, die direkt an das Mainboard angeschlossen wird und später wirklich nur das Betriebssystem und die Programme enthält. Der Preis lag bei ca. 70 Euro. Für die direkte Stromversorgung der SSD vom Mainboard braucht man ein Molex-Adapterkabel, die Datenkabel sind beim Mainboard dabei.

Nichts geht ohne Strom: Das Netzteil

Meine erste Rechnung war die Addition aller Stromverbraucher zu einem Gesamtwert:

64 Watt (16 x 4 Watt) Festplatten
2 Watt SSD
45 Watt Mainboard (incl. Prozessor mit 35 Watt)
30 Watt Raid-Controller (geschätzt)
20 Watt zwei große Lüfter

ca. 160 Watt  gesamt (alles nach oben gerundet, bei voller Leistung)

Der Grundgedanke war, dass das Netzteil nicht zu stark überdimensioniert sein sollte, damit es nicht zu viel Strom selbst verbraucht. Der Verkäufer riet mir dennoch zum 550 Watt Netzteil von bequiet!, das angeblich eine Effizienz von bis zu 94 % hat.
Nichts desto trotz kann man aber davon ausgehen, dass Netzteile im unteren Auslastungsbereich nicht so effizient sind und einen großen Teil der Energie an die Umgebung als Wärme abgeben.
Was mir viel wichtiger war, ein Netzteil ohne Lüfter zu bekommen, ist mir nicht gelungen. Ich habe erst viel später gesehen, dass es solche Netzteile gibt, die aber entsprechend teuer sind.

Das BeQuiet „Dark Power Pro 11 550W 550 W ATX 80PLUS® Platinum“ kostete ca. 140 Euro, inklusive einem großen Haufen Kabel, von denen ich aber kaum eines gebrauchen konnte, da sie alle für normale Gehäuse-PC ausgelegt sind. Die Geräuschentwicklung ist aber wirklich minimal, da ein großer Lüfter nur langsam im Innern dreht.


Für technische Geräte gibt es Steckdosenleisten mit Überspannungsschutz. Damit ich nicht jedes Mal darauf achten muss, dass der Server auch in einer geschützten Dose steckt, habe ich mir von Brennstuhl eine einzelne Schutzdose gekauft, sie aufgebrochen und den technischen Inhalt innerhalb meines Servers verbaut.

Die Plastikhülle aufzubrechen, ohne das ganze Teil zu zerstören, war aber gar nicht so einfach.


III. Die Planung

Gehäuse oder so etwas ähnliches

Da das Ganze möglichst leise sein sollte und deshalb mit wenig Lüftern auszukommen hat, dachte ich sofort an den Kamineffekt, also eine Röhre, in die unten die kalte Luft reingeht und gerade – entsprechend ihrer natürlichen Ausbreitungsrichtung – nach oben durchgeleitet wird. Aus der Röhre wurde dann ein Kanal, der an die Wand geschraubt wird, um auch gegen Einbrecher einen gewissen Grundschutz zu bieten. Zudem wird so ein länglicher Quader an der Wand, mit einer schönen flächigen Abdeckung, nicht sofort als Server erkannt.

Das Grundelement bildet eine Hart-PVC-Platte mit 20 mm Dicke, 1800 mm Länge und 480 mm Breite, die ich bei der Firma online-plast im Internet bestellt habe. Preis 200 Euro mit Zuschnitt und Versand.

Die Platte habe ich zur zusätzlichen Schallisolierung noch auf beiden Seiten mit Schwerfolienmatten (5 kg/m2 auf Kunststoffbasis) beklebt. Zu beziehen über Akkustik-MaXX, 20 selbstklebende Platten für 67 Euro. Die telefonische Beratung bei Akkustik-MaXX war sehr gut, denn in diesem Segment gibt es unzählige Produkte, für die verschiedensten Anwendungen.

Die Platte mit den Schwerfolien beklebt wiegt jetzt um die 30 kg und wurde mit 6 dicken Schrauben und Abstandshülsen (silberne Wasserrohranschlussstücke aus dem Baumarkt) in unserem 4K-Video-Postproduktionsbüro in der Bleibtreustraße an die Wand geschraubt. Zusammen mit den Festplatten ist das Ganze ordentlich schwer und wird von keinem möglichen Einbrecher so schnell mitgenommen.


Hier der Plan zum Aufbau:

Fileserver Planung – nicht alle Kabel sind eingezeichnet
Fileserver Planung – nicht alle Kabel sind eingezeichnet


Montage und Kabellängen

Hart-PVC lässt sich bohren und ist nicht so hart, wie man denkt. Man kann auch direkt in das Material Gewinde schneiden, ich habe jedoch immer Gewindehülsen mit einem Schneidegewinde außen und einem metrischen Gewinde innen benutzt (gibt es im Baumarkt). Vorsicht, die Schneidegewinde tendieren dazu irgendwo einzuhaken und schräg in das Material zu gehen. Mehr dazu im Montageteil.
Wie man in der Zeichnung sieht, sind die kritischen Punkte die Kabellängen, vor allem für die Datenkabel der Festplatten. Ansonsten hätte man die Anordnung noch etwas auseinanderziehen können um die Abwärme noch mehr zu verteilen.
Das längste was laut Spezifikation bei SATA-Kabeln funktioniert sind 1 Meter lange 4-fach-Kabel, die am RAID-Controller in die Sammelbuchsen passen und sich am Festplatten Ende aufsplitten. Achtung, die kleinen Nummernschilder an den Kabeln stimmen nicht mit der Reihenfolge am RAID-Controller überein.
Zu beziehen über den Servershop Bayern: 4 Stück Delock Kabel Mini SAS HD SFF-8643 > 4 x SATA 7 Pin 1 m (83393) für insgesamt 130 Euro.

Bei den Stromversorgungskabeln ist es einfacher, da habe ich einfach normale SATA-Festplattenstromversorgungskabel genommen, sie in der Mitte auseinander geschnitten und ein Stück dazwischen gelötet. Man sollte nur aufpassen, dass man die einzelnen Kabelstücke nicht verwechselt. Deshalb immer nur eines nach dem anderen aufschneiden! Da der Lüfter des Netzteiles nach unten die Luft hinausbläst, musste das Netzteil dummerweise auch noch verkehrt herum eingebaut werden, was die Kabel noch länger machte.

Abdeckung mit einer Haube

Alle Elemente werden auf der PVC-Platte befestigt, danach wird die Platte mit einer Haube abgedeckt, die innen zwei Lagen Schallschutzmatten besitzt. Außen auf die Haube kommt farbiger Industriefilz, so dass man am Ende einen länglichen Filzquader an der Wand hängen hat, der ein Maximum an Schallabsorption bietet.
Die Schallschutzmatten gibt es wieder bei Akustik-MaXX: HTD-20 Dämm-Matten +PU-Folie / zwei Pakete á 20 Stück für insgesamt 120 Euro. Die Matten bestehen aus Schaumstoff, der außen eine Art Glanzfolie aufgebracht hat, die verhindert, dass das Ganze sich mit Staub vollsaugt.

Luftstrom und Kühlung

Mit zwei großen 15 cm Lüftern wird der Luftstrom unterstützt. Der untere Lüfter bläst direkt auf den Prozessorkühlkörper und über einen Kanal zwischen RAID-Controller und Netzteil auch auf den Kühlkörper des RAID-Controllers. Der obere Lüfter saugt die Luft von unten an und leitet sie weiter zwischen den Festplatten hindurch, die in Längsrichtung im Kühlstrom stehen. Das Netzteil wurde verkehrt herum eingebaut, so dass der Netzteillüfter nicht entgegen des sonstigen Luftstromes arbeitet und die Luft ebenfalls nach oben abgibt. Für die zwei Zusatzlüfter musste eine Standhalterung gebaut werden. Ich habe Lüfter von noctua benutzt: „NF-A15 PWM 150x140x25 mm“ für zusammen 45 Euro.


Da die Platte mit Abstandshülsen an der Wand hängt, habe ich hinten noch ein LED-Leuchtband aufgeklebt, das mit einer Fernsteuerung sogar in der Farbe gesteuert werden kann.  Über das Wechselmenü kann man die Farben auch automatisch durchwechseln lassen und so eine Art Computermonitorlichteffekt bei Nacht erzeugen, der Büroaktivität suggeriert und vielleicht den einen oder anderen Einbrecher abschreckt. LED-Leuchtbänder mit Fernsteuerung gibt es z. B. im Baumarkt schon für 15 Euro.

IV. Montage – vorbereitende Maßnahmen

Festplatten auf Basisplatte aufschrauben

Im Baumarkt gibt es Blechplatten und Winkel. Eine einfache Blechplatte dient als Basisplatte für die Festplatten. Erst müssen aber die passenden Löcher gebohrt werden. Die Abstände der Löcher in der Festplatte unterliegen unterschiedlichen Normen, können also unter Umständen anders sein als bei mir. Für meine Platten habe ich bei HGST Western Digital, nach langem Suchen, ein Bohrschema gefunden, das für meine Festplatten gepasst hat. Man kann natürlich auch einfach mit einem Messschieber messen. Bei mir waren die Lochabstände 60 mm und 41,6 mm. Die Löcher müssen außerhalb der Mitte der Grundplatte gebohrt werden, damit die Festplatte später mittig auf der Basisplatte sitzt!

Die Gewinde in den Festplatten sind Zollgewinde und brauchen Senkkopf-Festplatten-Zollschrauben. (z. B. von Conrad).
Die Festplatten müssen später genau senkrecht verbaut werden, da die drehenden Teile sonst Lagerschäden bekommen. Deshalb unbedingt auf einen genauen Außenabstand zur Basisplatte achten!!!


Festplatten Basisplatte
Festplatten Basisplatte – aus dem Baumarkt


Festplatte Basisplatte körnen
Mit dem Körner auf einen Zehntelmillimeter genau zu treffen ist gar nicht so einfach – wohl dem, der eine CNC Maschine hat!


Festplatte befestigen
Bohrergröße 3,5 mm – plus Senker für den Senkkopf der Schraube, damit die Basisplatte später plan aufliegt


Bohrständer Basisplatte
Mit dem Bohrständer und Maschinenschraubstock geht es einfacher – ohne wird es schwer.


Mit Schablone bohren
Wenn die erste Platte passt – ich habe ein paar Versuche gebraucht – dann kann man sie als Schablone verwenden.


Mit dem Kegelsenker Platz für den Senkkopf der Senkkopfschraube schaffen. Eignet sich auch zum entgraten der anderen Seite.


Festplattenschraube in Basisplatte
Festplattenschraube in der Basisplatte – der Kopf darf nicht hervorstehen, sonst wackelt die Festplatte später.


Oben und unten an der Basisplatte müssen noch die späteren Befestigungslöcher aufgebohrt werden. Ich habe DIN 912 M 5×20 Innensechskant-Schrauben rostfrei verwendet. Die Bohrung kann ruhig etwas größer sein (z.B. 8 bis 9 mm) damit man, wenn die Festplatte verschraubt ist, mit der Wasserwage justieren kann und in den Löchern etwas Spiel hat.


Festplatten vorbereitet
Alle 16 Festplatten sind vorbereitet und müssen vor der Montage wieder von der Basisplatte heruntergenommen werden, damit man sie bei der Montage nicht unnötig bewegt oder gar beschädigt. Denn, wo gehobelt wird, da fallen nicht nur Späne, sondern manchmal auch Festplatten vom Tisch.

Ein Pappkartonmodel zeigt die Platzverhältnisse

Serverbau Kartonmodel
Ein erstes Modell.


Kartonmodel Server
Zwischen Lüfter und Haube ist später noch die doppelte Schalldämmschicht angebracht.


Servermodel Pappe
Blick durch den Lüftungskanal.

Die noctua Lüfter haben nur Befestigungen für normale Gehäuse, deshalb brauchen sie Füße

Im Baumarkt gibt es breite Alu-Winkelschienen mit asymmetrischer Kantenlänge. Sie eigenen sich perfekt um Lüfterfüße zu bauen.

Aluschine als Lüfterfuß
Schritt 1 Mittelsteg einsägen und beide Enden rechtwinklig umbiegen. Das obere muss auch dran bleiben (anders wie auf dem Bild) und nach hinten gebogen werden!


Aluwinkel als Standfüße
Rechtwinklig den Fuß umbiegen. ACHTUNG: Später habe ich den kurzen Teil oben nicht abgesägt sondern zur anderen Seite weggebogen. Damit bekommt man zwei Füße im rechten Winkel zueinander. Davon habe ich leider keine Fotos!


Den Bogen (und die Haltelöcher) mit einem Bleistift anzeichnen und dann, nach alt bewährter Methode, mit bohren und feilen (Rundfeile), einen schönen Bogen erzeugen.


die fertigen Lüfterfüße
Die fertigen Lüfterfüße, spiegelbildlich für links und rechts! Hier sieht man auch den zweiten Fuß im rechten Winkel zum vorderen, so dass man später, mit zwei Schrauben pro Seite, die Füße an der Hart-PVC-Platte befestigen kann.


Die Halterungen (beachten beim Bohren der Befestigungslöcher) müssen nachher so an die Lüfter angeschraubt werden, dass die Füße nach unten schauen, also in die Richtung, aus der die Luft angezogen wird. (Auf dem folgenden Bild ist es falsch herum!)

noctua Eingenbau Standfüße
Fertig ist das schöne Kunstwerk. ACHTUNG: Auf dem Bild verkehrt, der Lüfter muss genau anders herum rein!

Bekleben der Hart-PVC-Platte mit den Schwerfolie-Dämmmatten

Die Dämmmatten haben eine Klebeschicht auf der Rückseite, die allerdings an den Kanten überhaupt nicht zuverlässig klebt, deshalb vorher unbedingt die Kanten und die Matten mit Patex einstreichen, trocknen lassen und kantenschlüssig verkleben. Ich musste später Stück für Stück, mit Schraubzwingen und Patex, die Kanten nachkleben.

Bevor es losgeht, bekommt die Platte noch am Kopfteil einen Durchbruch für das LED-Band, das auf der Rückseite später leuchten soll. Die zwei Kabel sind, zum einen die Stromversorgung und zum anderen eine Photodiode, die ganz oben aus dem Quader herausragen soll und die Verbindung zur LED-Fernbedienung herstellt. Das Steuerkästchen kommt auf die Vorderseite, das Leuchtband auf die Rückseite, die später zur Wand schaut.

Durchbruch für LEDs
Durchbruch für das LED-Leuchtband.




bekleben der Hart-PVC-Platte
Bekleben der Hart-PVC-Platte mit Schalldämm-Schwerfolie auf beiden Seiten.


nachkelben der Kanten
Leider mussten die Kanten bei mir nachgeklebt werden. Besser schon die Kanten vorher mit Patex einstreichen und trocken lassen, dann fest andrücken!
Befestigungsgewinde für die Haube
In die Seiten kommen pro Seite 4 x M8 Befestigungsgewinde für die Haube.
Die fertige Server-Grundplatte
Die fertige Server-Grundplatte.

V. Gewindehülsen einbringen und PVC-Platte an der Wand anbringen

Die Befestigungs-Schneid-Gewinde-Hülsen in die Hart-PVC-Platte einbringen

Das mühsamste Geschäft des ganzen Prozesses. Hier wünscht man sich wirklich eine CNC-gesteuerte Maschine, die die ganzen Gewindehülsen und Bohrungen präzise ins Material einbringt. Doch bevor es losgeht, ein letzter Platztest:

ein letzter Platztest
Ein letzter Platztest. Hier sieht man auch die Dämmmatten der Haube an den Seiten. Die gleichen Doppellagen kommen auch an die obere Seite.
gerade Linien
Die Festplatten müssen absolut gerade hängen, deshalb muss man sehr präzise die senkrechte Linie halten. Hier: mit Schraubzwinge und Wasserwage, den Abstand nach außen für jede Reihe markieren.
die Festplatten-Grundplatten
Jetzt habe ich die Festplatten von den Grundplatten entfernt. So kann man besser bohren und schrauben. Unter die Schraubenköpfe kommen später noch eine Unterlegscheibe und ein Moosgummi, der verhindern soll, dass kleinste Vibrationen übertragen werden.

Die Gewindehülsen (innen M5 und grobes Außengewinde) aus dem Baumarkt schneiden sich meist schräg in die Platte. Man muss erst ein Loch vorbohren (Durchmesser am besten vorher testen und nicht durchbohren) und dann kann man die Hülse mit einem Schraubendreher eindrehen, dabei rutscht sie aber meist in die Richtung, in der das Gewinde zuerst greift.
Ich habe mir deshalb dieses Hilfswerkzeug gebastelt:
Eine lange M5-Schraube mit unten einem Stück Gewinde. Je länger die Schraube ist, umso besser! Dann habe ich am unteren Ende auf das Gewindeende eine Hülse – sozusagen als Anschlag – gedreht. Nun kommt die Hülse unten vor die Anschlagshülse und man kann die Schraube plus Hülse mit der Hand gerade halten und mit dem Ringschlüssel eindrehen. Danach dreht man die Schraube wieder raus und die Anschlagschraube sollte verhindern, dass sich die Hülse im PVC wieder mitdreht. Das geht einigermaßen, wird aber doch immer ein wenig schief. Wer schenkt mir zu Weihnachten einen CNC-Automaten?

Gewindehülsten gerade einbringen
Ein Hilfswerkezug um die Gewindehülsen wenigstens einigermaßen gerade einzubringen.

Wandmontage der großen Hart-PVC-Platte

LED-Leuchtband auf der Rückseite der PVC-Platte anbringen. Die Photodiode bleibt auf der Vorderseite.
LED-Band ansetzen
Das LED-Band kam als gebogener Kreis und musste deshalb durchgeschnitten und flach wieder verbunden werden.
fertige LED-Rückseite
Der Server als indirekte Lampe getarnt. Diese Seite kommt jetzt gegen die Wand.
Wasserschellen aus dem Baumarkt
Wasserrohr-Abschlussstücke aus dem Baumarkt als Abstandshalter. Darunter wieder Moosgummi gegen Vibrationsübertragung, was aber bei dem Gewicht wahrscheinlich nicht viel nützt, da das Moosgummi sofort zerquetscht wird.
Jetzt wird die Platte mit sechs Schrauben GERADE an die Wand geschraubt. Wasserwaage verwenden und sehr genau bohren. Mit einem Loch anfangen und dann die Platte als Schablone nutzen. Währenddessen muss eine zweite Person immer die Wasserwaage kontrollieren!
Serverplatte hängt an der Wand
Die Serverplatte hängt an der Wand!

VI. Befestigung der einzelnen Elemente auf der Grundplatte

Festplatten Montage

Western Digital sagt dazu:

Physical mounting of the drive:

WD drives will function normally whether they are mounted sideways or upside down (any X, Y, Z orientation). Of course, the physical design of your system may limit the positions in which the drive can be mounted. However, in all cases, you should mount the drive with all four screws for good grounding. Also ensure that there is enough air space around the drive for adequate air flow, and avoid mounting the drive near sources of excessive heat (such as some CPUs).

Mount the drive in the system:

The drive can be mounted in a standard 3.5″ device bay. The drive can be mounted sideways, on end, or even upside down as long as the mounting screws are used properly. Use either the four bottom screws or four of the side mounting screws to support the drive. This will prevent vibration and provide additional electrical grounding.

Um eine möglichst lange Lebensdauer der schnell drehende Scheiben innerhalb der Festplatten und eine optimale Positionierung der Schreib- und Leseknöpfe zu erreichen müssen die Festplatten – nach allgemeiner Fachmeinung – jedoch möglichst senkrecht hängen (oder genau waagrecht liegen, was noch besser ist) und sollten nach einer gewissen Lebenszeit auch nicht in ihrer Lage geändert werden. Man liest in vielen Foren, dass die Oberseite nach unten für die Kopfsteuerung ebenfalls sehr problematisch wäre.

Was das oben erwähnte „electrical grounding“ betrifft, so geht es dabei um statische Aufladungen und „Masseströme“. Die Masse (negativer Pol) sollte z. B. bei Stereoanlagen immer sternförmig zu einem Punkt hin geführt werden, da man sonst in der Audiotechnik sogenannte „Masseschleifen“ und daraus resultierend „Massebrummen“ bekommt. Ich hatte erst angefangen, jede Grundplatte noch mit einem kleinen Kabel sternförmig zu einem gemeinsamen Massepunkt am Netzteil zu führen, bis ich festgestellt habe, dass die Stromversorgungskabel der Festplatten ebenfalls die Masse an das Festplattengehäuse und damit an die Grundplatte der Festplatte führen. Ein weiteres Kabel hätte somit eine „Masseschleife“ produziert. Deshalb habe ich das Kabel an der Grundplatte wieder weggelassen.

Festplatten im Lot montieren.
Festplatten im Lot montieren. Dazu die Schrauben an einer Seite leicht öffnen und mit der Wasserwaage ausrichten. Ich habe nur zwei Schrauben über Kreuz eingebracht.
Festplatten mit Mossgummi befestigt
Festplatten mit Moosgummi befestigt, zur Verhinderung der Übertragung von Vibrationen. Dazu eine Gürtellochzange nehmen und ein Loch in das Moosgummi stanzen.
obere Halteplatte
Obere Halteplatte mit drei Gewindestangen befestigen und mit Moosgummi unterlegen.
Festplatten fertig montiert.
Festplatten fertig montiert.

Vorausgesetzt die PVC-Grundplatte hängt im Lot, dann kann man mit dem Server, nur durch Lösen der PVC-Plattenschrauben, auch umziehen.

Nachträglicher Einbau von Dämpfungsfilzen unter den Festplatten

Nachdem ich den Server in Betrieb nahm, habe ich festgestellt, dass trotz der Schwerfolienbeschichtung der PVC-Grundplatte auf beiden Seiten, sich die Vibrationen der Festplatten auf die Grundplatte übertragen. Aus diesem Grund habe nachträglich noch unter jeder Festplatte eine Dämpfungsschicht aus 5 mm Filz angebracht. Für die Befestigungsschrauben musste ein 10 mm Loch aus der Filzplatte ausgestanzt werden (Stanzwerkzeug – wieder mal ein Gang zum Baumarkt).
Die Vibrationen sind nicht nur für die einzelne Platte problematisch, sie übertragen sich auch auf alle anderen Platten. Man kann sich vorstellen, wie schwer es für die Elektronik ist, unter solchen Bedingungen, die Lese- und Schreibköpfe in den Festplatten perfekt zu platzieren und auf Position zu halten.

Filz um Vibrationen zu dämpfen
Filz um Vibrationen der Festplatten zu dämpfen

Einbau des Netzteiles, der Lüfter und der restlichen Komponenten

Netzteil und Lüfter befestigen.
Netzteil und Lüfter befestigen. Unter dem dicken Kabel sieht man den Flashspeicher für den Raid-Controller.

Das Netzteil steht auf einer Winkelschiene (mit Moosgummi abgefedert) und ist mit einem Lochband, wie immer mit Moosgummi darunter, festgemacht. An der Frontseite halten noch zwei Winkelstücke mit den kleinen Schräubchen, die beim Netzteil dabei waren und in die dortigen am Netzteil vorgesehenen Gewinde passen, das Gehäuse zusätzlich fest.

Der Lüfter steht schräg, so dass er sowohl den RAID-Controller, als auch das Mainboard erreicht. Später gibt es hier noch etliche Verbesserungen. Siehe weiter unten.


Die Steuereinheit
Die Steuereinheit des Servers und der LED-Leiste.

In einem Plastikgehäuse sind folgende Elemente untergebracht:

a. LED-Stromversorgung
b. LED-Feinsicherung
c. LED-Ein/Aus-Schalter
d. Überspannungsschutz
e. Ein/Aus-Schalter für das Servernetzteil
f. Feinsicherung für den Server
g. Konverter für Strom-Ein-LED in rot

Im Hintergrund sieht man noch die Zugentlastung für die Kabel, die in eine Kabelspirale münden und 20 Meter lang sind (2 x LAN, 1 x IPMI-LAN, 1 x Netzkabel).

Dahinter ist die SSD-Festplatte zu erkennen, die mit Resten der Lüfterfüße-Winkelschienen befestigt ist.

Hier sehen Sie nun das Ganze fertig verkabelt. Im Deckel die Platine für die rote Power-LED (Conrad):

Steuereinheit verkabelt
Steuereinheit komplett verkabelt.
LED-Stromversorgung aus dem Steckergehäuse herausgenommen.

Die Steckdoseneinheit des LED-Bandes habe ich aufgesägt und nur die Unterschale behalten, in die ich dann die Platine mit Heißkleber wieder eingeklebt habe. Das Ganze wurde dann mit Plastikschrauben am schwarzen Gehäuse befestigt.

Plastikschrauben (gibt es bei Conrad in der Modellbauabteilung). Hinten sieht man die Metallabstandshülse, die mit einer solchen Schraube fixiert ist.
Den Überspannungsschutz habe ich ebenfalls mit roher Gewalt aus dem Originalgehäuse gewuchtet und dann mit Plastikschrauben in der schwarzen Kiste befestigt.

Am Überspannungsschutz sieht man eine kleine grüne LED, die leuchtet, wenn alles ok ist, also die Elektronik Strom hat und funktioniert. Sie schaut beim Server an der Seite der schwarzen Kiste zur Innenseite hin heraus.

guter Stecker
Endlich mal ein ordentlicher Stecker, mit Klemmen zum Schrauben, die auch halten. (Conrad)
Server Startimpuls und Reset
links: An/Aus für den Server, daneben für die LEDs und rechts: Server Startimpuls (rot) und Reset (schwarz)

Neben der schwarze Kiste habe ich auf einem Winkelstück den Startknopf für das Mainboard und den Reset-Knopf untergebracht. Daneben sieht man die rote LED, die anzeigt, dass das Netzteil Strom bekommt. Sie ist an einem langen Kabel, könnte deshalb noch als einziges sichtbares Zeichen durch die Haube nach vorne geführt werden, so dass unten am Quader immer ein kleines rotes Lichtchen leuchtet. Da der Filz der Abdeckung später rot werden soll, würde es kaum auffallen. Momentan muss man sich auf den Boden legen, um zu sehen ob der Server Strom bekommt. Dafür gibt es nach außen kein sichtbares Zeichen von Elektronik oder Server, was in Bezug auf Büroeinbrecher auch nicht schlecht ist

VII. Verkabelung

Die Kabel für die Festplattenstromversorgung müssen verlängert werden. Wenn man sie aufschneidet, fächert sich die äußere Hülle sofort auf und man muss auf der Stelle den Schrumpfschlauch darüber ziehen und erst dann löten.

Stromkabel verlängern
Festplatten-Stromkabel verlängern. Immer nur ein Kabel durchschneiden, sonst kommt man schnell durcheinander.
verlängerte SATA-Stromversorgungskabel
Verlängerte SATA-Stromversorgungskabel.
LED-Steuereinheit mit Photodiode am oberen Ende der PVC-Platte. Langes Kabel mit Winkelstecker von Conrad.
Zugentlastung für die Kabel, nicht schön, aber es funktioniert. Die Kabel sind mit Isolierband umwickelt.
erster Testlauf
Ich habe zum Testen ein Ubuntu-Desktop-System aufgespielt. Links neben dem Netzteil sind die Festplatten-Stromversorgungskabel nochmals in einer Hülle untergebracht (gibt’s bei Conrad).

VIII. Erster Betriebstest

Temperatur und Lüfter

Mich haben vor allem die Temperaturwerte des Mainboards und des RAID-Controllers interessiert. Bei fast allen Servern, die in normalen Gehäusen untergebracht sind, würde sowohl auf dem Mainboard-Prozessor-Kühlkörper, als auch auf dem RAID-Controller-Kühlkörper ein kleiner Lüfter sitzen, der mit 1.500 Umdrehungen und mehr pro Minute dreht und direkt den Kühlkörper von oben anströmt, aber einen Höllenlärm veranstaltet. Auch wenn durch den fehlenden Deckel noch kein Kamineffekt vorhanden ist, wollte ich trotzdem sehen, wie heiß das Ganze wird.

Der RAID-Controller mit dem Flashmodul hat eine erlaubte Betriebstemperatur von 0 °C bis 50 °C, gemessen in 2,5 cm Entfernung vom Controller. Der Ausfallabstand wird bei 40 °C angegeben, bei dieser Temperatur wurde der Controller vom Werk getestet. Ferner verlangt der Hersteller einen Luftstrom am Controller von 200 lfm (linear feet per minute). Der Air Flow Conversion Calculator rechnet aus, dass bei meinem Kubus ca. 30 m3 Luft pro Stunde durch den Kanal gepumpt werden müssten. Die noctua Lüfter NF-A15 PWM machen (ich gehe mal davon aus, bei der höchsten Drehzahl von 1.200 U/min gemessen) 115,5 m3/h. Sie haben eine Minimaldrehzahl von 300 U/min und laufen bei mir mit 500 U/min D. h. bei mir sind es 48 m3/h, die jeder Lüfter bewegt. Der Luftstrom des unteren Lüfters wird  noch aufgeteilt auf das Mainboard und RAID-Controller, wobei der obere Lüfter ja auch noch Luft ansaugt. Rein rechnerisch müsste es also geradeso reichen, wenn die Lüfter auf kleinster Stufe laufen.

Sowohl der RAID-Controller, als auch das Mainboard waren innerhalb der Toleranzen, aber im oberen Bereich.

Dies verringert die Haltbarkeit aller Elemente und ist natürlich nicht sehr betriebssicher. Ich habe deshalb beschlossen beide Kühlkörper auszutauschen und durch etwas „richtig Großes“ zu ersetzen. Schließlich will ich auch nicht, dass meine beiden großen Lüfter ständig auf Hochtouren laufen.


Pumpende Lüfter:
Die großen Lüfter hatten auch ein ständiges Abfallen der Geschwindigkeit und erneutes Hochpumpen bis an den Anschlag. Darum habe ich mich später gekümmert (Threshold). Die Mainboardhersteller gehen anscheinend davon aus, dass man immer die kleinen Lärmerzeuger verwendet, die mit hohen Umdrehungszahlen drehen und in einem möglichst engen Gehäuse  untergebracht sind (zur Lüftersteuerung, siehe Teil 2 Software).

IX. Kühlerumbau zur Temperaturoptimierung

Strategie beim Kühlerumbau

Das Servermainboard ist ein Stromsparboard, das, verglichen mit einem schnellen Desktop-PC, sehr wenig Wärme produziert. Wenn ich nun große Kühlkörper mit Heatpipes benutzen würde, dann müssten meine zwei großen leisen Lüfter mehr als genug Kühlung produzieren. Das einzige Problem war, große CPU-Kühler zu finden, die auch auf das Server-Mainboard und den RAID-Controller passen. Zudem wollte ich am Netzteil noch ein Luftleitblech anbauen, damit keine Luft zur Seite abweicht, sondern der ganze Luftstrom des unteren Lüfters auf den Kühlkörpern landet.

Großer Kühler für das Server-Mainboard

Hier wurde ich sehr schnell fündig, beim Hersteller noctua aus Österreich. Der NH-U9S-Kühlköper ist asymmetrisch aufgebaut, so dass er nicht mit den Speichermodulen kollidiert und hat 5 Heatpipes, die für meinen kleinen Prozessor mehr als ausreichend sein sollten. Mit 12,5 cm Höhe und 524 Gramm Gewicht, ist er ein stattlicher Koloss. Die Anschlüsse und Verbindungselemente passen natürlich nicht auf mein Serverboard, können aber leicht angepasst werden. Zudem hat er am Kopf eine Bohrung, die durch alle Kühllamellen geht und die später wichtig für meine Montage sein wird. Gefunden habe ich den Kühlkörper ab Lager zur Abholung (am Samstag Morgen) bei Caseking in Berlin für 60 Euro.

neuer Kühler Serverboard
noctua Heatpipe für das Serverboard. Ganz schön groß der NH U9S verglichen mit dem original „Kühlerchen“, das unten noch zu sehen ist.
Serverboard ohne Kühler
Serverboard ohne Kühler

Der alte Kühler ging erst nicht ab und klebte mit der Wärmeleitpaste ziemlich fest. Ich habe dann einfach alles angeschlossen und den Server 10 Minuten laufen lassen, bis der Prozessor warm war, dann ging alles ab wie Butter.

Rückseite des Serverboards
Die Rückseite des Serverboards hat immerhin einen kleinen Rahmen, der Teile des Gewichtes abfangen kann. Da das Board senkrecht an der Wand hängt und das Gewicht des Kühlers somit oben zieht und unten drückt, habe ich das Gewicht noch mit einem Rahmen abgefangen. Siehe weiter unten.
Modellbefestigung aus Pappe
Modellbefestigung aus Pappe

Pappmodell: Die eigentliche Befestigung des noctua-Kühlers habe ich entfernt. Die seitlichen Flügel des Kühlerfußes können mit einem einfachen Metallblättchen verlängert werden, so dass sie bis zu den Originalschrauben, die durch das Serverboard kommen, reichen.
An der Stirnseite rechts sieht man den kleinen Kühlkörper des LAN-Prozessors. Diesen wollte ich erst mit einem kleinen Alublech abschirmen, damit die Hitze der Kühlkörperröhren nicht auf ihn abstrahlen. Später habe ich gemerkt, dass die Röhren der Heatpipe überhaupt nicht heiß werden und somit auch keine Wärme abstrahlen, da war es besser das Hitzeschild wieder zu entfernen und dem Luftstrom in meinem Server-Quader die Möglichkeit zu geben auch am LAN-Prozessor-Kühlkörper vorbeizukommen.

Verlängerung des Fußes
Verlängerung der Befestigungsflügel am Fuße des Kühlkörpers mit zwei einfachen Blechen. In den Fußflügel habe ich M4-er Gewinde eingebracht.
Kühlkörper befestigt
Kühlkörper fertig befestigt. Man sieht schön das Verlängerungsblech und die Schrauben die durch das Serverboard von der unteren Halteplatte kommen.

Da die noctua-Heatpipe asymmetrisch ist, muss man darauf achten, dass der etwas freiere Raum auf der Seite der RAM-Speicher-Chips ist. Hochwertige Wärmeleitpaste wird von noctua mitgeliefert. Die Federn stammen aus dem Baumarkt, darüber ist eine Unterlegscheibe und zwei Kontermuttern. Die Kopfmutter ist einfach ein Zierabschluss und hat keine Funktion.
Die ganze Heatpipe wird nur durch die Federn angedrückt, damit auch bei Hitzeausdehnungen des Materials immer ein schlüssiger Kontakt zum Prozessor-Chip besteht.

Das Hitzeschild, das ich später wieder entfernt habe. (Hier haben die Befestigungsschrauben des Kühlkörpers noch keine Federn.)

Das Hitzeschild war mit einem Arm in der Mitte des Fußes festgeschraubt. Ich habe es später wieder entfernt, da es den Luftstrom zum LAN-Prozessor-Kühlkörper blockiert hat und die Röhren der Heatpipe nicht wirklich warm werden.


Um das Gewicht (524 Gramm) der großen Heatpipe abzufangen ein Haltebügel.

Um das Gewicht abzufangen habe ich einen Haltebügel gebaut, der am Kopfende der Heatpipe eine Schraube hat, die in das vorhandene Montageloch in den Kühllamellen passt.

Abfangbügel fertig
So sieht der Abfangbügel fertig montiert aus. Links sieht man das Luftleitblech.
Das Luftleitblech aus Alu verhindert, dass die Luft seitlich zum Netzteil geht. Der aufgeklebte Moosgummi verhindert Vibrationsgeräusche am Lüfter.
Luftleitblech montiert
Der Luftstrom des Lüfters soll zum Raid-Controller und Serverboard, nicht zum Netzteil. Das Loch in der Mitte ist für die unteren zwei Datenkabel der Festplatten, die hier an das RAID-Controllerboard gehen.

Damit ist der Umbau der Server-Prozessor-Kühlung fertig.

Umbau der Kühlung des RAID-Controller-Prozessors

Hier hab ich keine wirklich gute Lösung gefunden, da der Originalkühlkörper nur mit zwei Federschräubchen festgeklemmt war und aus einem Mini-Alu-Noppenkühlkörper bestand. Um die Klemmstifte herum sind in der Platine ganz knapp Leiterbahnen angebracht, so dass man auch nichts größeres, z. B.  Schrauben mit Muttern, verwenden konnte.
Meine Strategie war dann einfach durch Masse die Wärme besser abzuleiten und zu verteilen. Ich habe deshalb einen normalen 90 mm Alu-Elektronikkühlkörper genommen, den es als Stangenware gibt (Conrad). Das Zusägen und Einbringen der Aussparungen (ich wollte ja soviel wie möglich Masse erhalten) war dann ohne Fräsmaschine ein ziemliches „Gemetzel“.

alter und neue Kühlkörper
Neuer und alter Kühlkörper für den RAID-Controller. Man sieht schön die kleinen Federstifte, mit denen der kleine Kühlkörper lediglich auf den RAID-Controller aufgeklemmt war. Den neuen Kühlkörper habe ich so abgesägt, dass er gerade zwischen die Datenkabelbuchsen geht.
Kühlkörper bearbeiten
Wieder mal, wohl dem, der eine Fräsmaschine sein Eigen nennt. Aussparungen für diverse Bauteile auf der Platine des RAID-Controllers. Mit der Bohrmaschine „rausgebissen“.

Da der Kühlkörper nun über den ganzen mittleren Teil der Platine reicht, mussten etliche Aussparungen für Elektronikbauteile gemacht werden, die höher als der Prozessor sind. Rechts neben der Klemmschraube sieht man schwach auch eine Mulde, die vor allem verhindert, dass eine ganze Reihe von Kondensatoren an den Kühlkörper anstoßen. Die Kontaktfläche habe ich abgeklebt und den Kühlkörper an der Unterseite mehrfach lackiert, damit eine Isolationsschicht entsteht, falls es aus irgendwelchen Gründen doch einmal zu einem Kontakt eines Bauelementes mit dem Kühlkörper kommt. Das blockiert etwas die Wärmeabstrahlung, aber besser weniger Abstrahlung als Kurzschlüsse.

Aussparungen am Kühlkörper
Aussparungen am Kühlkörper. Am Ende sieht es gar nicht so schlecht aus. Der Klemmstift muss durch alle Kühllamellen hindurch.
Der zweite Klemmstift und die Aussparung für die Datenkabelbuchsen.
Dreipunktbefestigung Kühlkörper
Dreipunktbefestigung des Kühlkörpers, Schraube in der Mitte.

Ein Stuhl braucht mindestens drei Beine, damit er steht. Die zwei Klemmstifte waren eine wackelige Angelegenheit, vor allem, da der Prozessor nicht sehr groß ist und nur eine kleine Auflagefläche für den Kühlkörper bietet. Die dritte Schraube mit Feder geht lose durch den Kühlkörper und ist am Metallrahmen des RAID-Controllers befestigt. Siehe nächstes Bild.

Hier sieht man die Metallschiene (oben an der Platine) des RAID-Controllers, die bis zur vorderean Abdeckung geht, die normalerweise außen am PC-Gehäuse zu sehen ist. Direkt an den Lamellen des Mainboard-Kühlkörpers sieht man schwach die Öse mit der Schraube für den dritten Befestigungspunkt des RAID-Controller Kühlkörpers.

Damit ist der Umbau der beiden Kühlkörper abgeschlossen.

Fazit für den Kühlkörperumbau

Die Lösung beim RAID-Controller ist ziemlich wackelig und wirklich suboptimal, aber sie funktioniert. Mit rohen Kräften sollte man allerdings nicht dagegen stoßen. Die Lösung für das Serverboard mit der noctua-Heatpipe ist wirklich gut gelungen und der Umbau war nicht schwierig. Der Halterahmen hält jetzt auch das Luftleitblech und man kann schön die Kabel daran befestigen. Eine runde Sache.

Die Wärmewerte

Für das Serverboard, wie zu erwarten, sind die Werte perfekt. Der Prozessor geht auch bei Volllast selten mal über 40 °C, in der Regel liegt er irgendwo bei 36 °C (gemessen mit dem Linux-Programm „sensors“).

Für den RAID-Controller sind die Werte nicht um soviel besser geworden, allerdings sind die Spitzen gekappt, da die große Masse des neuen Kühlkörpers die Wärme wirklich viel besser auffängt, als der kleine Minikühlkörper. Die Temperatur liegt jetzt bei 51 °C, gemessen über das Programm „sensors“.

Benutzt man das Linux-Programm „sensors“ so erhält man jetzt folgende Werte:
RAID-Controller: +51°C – (hoch: +120 °C, kritisch +110 °C)
Hauptprozessor: +36 °C – (hoch: +82 °C, kritisch +104 °C)

Die Temperatur sollte laut RAID-Controller-Datenblatt in 2,5 cm Entfernung vom Controller gemessen werden. Das wäre dann sicherlich noch um etliches geringer, als meine Messungen, die ich elektronisch über das Linux-Programm „sensors“ ermittelt habe.

Die Werte von „sensors“ beziehen sich auf Sensoren innerhalb des Chips, die ihre Daten an das Betriebssystem melden, deshalb der hohe Wert beim RAID-Controller. Warum beim RAID-Controller der Wert für „hoch“ größer ist als für „kritisch“ ist schwer zu sagen.

Es gibt zudem das Programm „SuperDoctor5 – Doktor mit „c“=Doctor“ von Supermicro das man über den Browser aufruft:

Alle Temperaturen in °C, erster Wert momentan, zweiter Wert Höchstwert:

  • FAN1 400 RPM (minimal ist hier laut noctua 300 RPM +/– 20%)
  • FAN2 400 RPM
  • CPU 37/102,2
  • System 27/80,6
  • Peripherie 43/109,4
  • MB_10G 53/127,4 (der 10-Gigabit-LAN-Controller wird am wärmsten)
  • DIMM A1 21/89,6
  • DIMM A2 31/87,8

X. Der Fileserver fertig verkabelt und montiert

Anschlüsse stimmen nicht
Achtung die Anschlüsse des Raid-Controllers sind anders als in der Bedienungsanleitung. Für die Belegung von CN0-CN3 siehe das RAID-Controller Schema ganz am Anfang des Blogbeitrags.
gute Beschriftung
Man sollte die Festplatten gut beschriften, damit man bei einem Ausfall auch die richtige Platte findet.

Am besten alle Seriennummern der Platten und ihre genaue Position auf der PVC-Platte vorher aufschreiben, denn im Kontrollprogramm des RAID-Controllers (maxView Storage Manager) werden die „Steckplätze“ und die Seriennummern der Platten angegeben. Bei einem normalen Server sind an den Steckplätzen meist noch Leuchtdioden angebracht, da sie über einen Festplattensockel angesteuert werden. Hier fällt dies weg, deshalb ist es bei einem Ausfall wichtig, genau zu wissen, wo welche Platte angeschlossen ist!

SSD Befestigung
Die SSD-Festplatte bekommt ihren Strom direkt über ein Molexkabel mit Adapter vom Serverboard.
oberer Lüfter
Die Festplattenstromversorgung kommt über ein Kabel, das sich am Ende in vier Stecker aufsplittet. Die SATA-Stromkabel stecken alle nochmals in einem Hüllenschlauch, damit es etwas ordentlicher aussieht (ganz links).
10 Gb/s LAN
Links oben die zwei 10 Gb/s LAN-Kabel (blau und gelb) vorne das IPMI-Kabel. Hier sieht man auch, dass die Heatpipe gut auf die Platine passt. Der RAID-Controller ist über einen Winkel am oberen Ende fixiert, so dass er nicht aus den Kontakten rutschen kann.
zwei Lüfter und Kühlkörper
Die zwei Lüfter und die neuen Kühlkörper. Links das Luftstromleitblech.
von unten der Fileserver
von unten, der Fileserver
Fileserver fertig verkabelt
Der Fileserver fertig montiert und verkabelt.

XI. Deckel drauf und fertig

Die Winkelbleche an den Seiten der PVC-Grundplatte anbringen

Schon im ersten Arbeitsschritt haben wir auf jeder Seite der PVC-Grundplatte vier Bohrungen eingebracht und mit 8 mm Gewinden direkt im PVC versehen. Jetzt kommt an jede Bohrung eine Winkelblech aus dem Baumarkt. Die lange Seite muss für ihre Länge folgendes berücksichtigen:

  • die Dicke der Hart-PVC-Platte plus
  • die Dicke der zwei Schwerfolien plus
  • die Höhe des höchsten Bauelementes auf der Platte (CPU-Kühlerbügel) plus
  • Platz für zwei Lagen Dämmschaummatten

Dabei kam bei mir eine Länge von 232 mm heraus. Das kurze Stück der Bügel dient zur Befestigung der Deckelplatte.

Winkelbügel für die Abdeckhaube
Winkelbügel für die Abdeckhaube
Befestigung der Bügel
Befestigung der Bügel mit einer M8 Innensechskantschraube

Die Abdeckplatten gibt es im Baumarkt, sie heißen dort HAFA-Platten (Hartfaserplatten – gerne als Schrankrückwand genutzt), einseitig weiß beschichtet. Man kann auch Platten aus Leichtkunststoff verbauen, doch die kosten nicht 20 Euro sondern gleich 200 Euro.

Die weiße Seite muss nach innen, damit die Klebeschichten der Dämmmatten daran halten. Auf der Holzseite ist das Zeug ganz schön bröselig, so dass sich mit der Zeit Klebebänder lösen würden. Auf der Holz-Außenschicht wird dagegen später Filz aufgebracht, den man mit Holzkleber (Ponal) kleben kann, der das bröselige Holz bindet.

Die seitlichen Platten müssen genau dieselbe Breite haben wie die Bügel lang sind, also 232 mm, die Länge beträgt 1800 mm – entsprechend der Länge der Hart-PVC-Grundplatte.

Die Breite der HAFA-Deckelplatte ergibt sich aus folgenden Überlegungen:

  • Hart-PVC Grundplatte mit 480 mm
  • 2 x Metallbügeldicke 4 mm
  • 2 x HAFA-Plattendicke 10 mm

Macht für die Deckelplatte: 494 mm x 1800 mm

Hartfaserlatten (HAFA) an den Metallbügeln befestigen

Die HAFA-Platten werden mit Nieten an den Metallbügeln fixiert. Dafür kann man die vorhandenen Löcher nutzen, man muss jedoch von innen mit 4 mm bohren. Außen werden Senkungen angebracht, damit die Nieten nicht überstehen und später den Filz ausbeulen, der oben drauf kommt.

Nieten der Platten
Nieten der Platten, mit Senkungen für die Nieten, damit sie nicht überstehen und später Beulen verursachen.
Nieten 4 mm Alu
Nieten 4 mm Alu mit Nietzange aus dem Baumarkt
Platten auf Bügel befestigen
Platten an den Bügeln befestigen – oben und unten jeweils vier Nieten
Die Seitenteile der Haube
Die Seitenteile der Haube.
Die kurzen Seiten der Winkel
Die kurzen Seiten der Winkel, hier wird die Deckplatte befestigt.
Nieten positionieren
In die kurzen Seiten der Winkel kommen jeweils drei Nieten, da hier Hebelkräfte auftreten können.
Kofler Linux für die Montage
Der „Kofler – Linux das umfassende Handbuch“ – hilft auch bei der Montage. Er ist ordentlich dick und hat einen stabilen Deckel. Unentbehrlich beim Serverbau und auch als Fußverlängerung zu gebrauchen!

Fertige Haube mit Dämmplatten auskleiden

Die Schalldämmplatten mit Klebefolie und PU-Versiegelung zur Staubabwehr gibt es bei Akustik-Maxx. Damit wird die Haube in zwei Schichten ausgekleidet, so dass man eine maximale Schallabsorption erreicht.

Schalldämmplatten in zwei Lagen in die Haube einkleben.

Da ich bei den Schwerfolien, die auf die Hart-PVC-Platte kamen, gemerkt habe, dass die Klebeschicht nicht besonders gut klebte, habe ich hier zusätzlich jede Menge doppelseitiges Teppichklebeband verklebt und zwar sowohl bei der ersten Schicht, als auch bei der zweiten.

Teppichklebeband hält auf alle Fälle
zweite Schicht Dämmmatten
Zweite Schicht Dämmplatten, auch hier kommt ordentlich Teppichklebeband darunter, obwohl die Platten selbst auch eine Klebeschicht haben.
Seitenteile ebenfalls mit Doppelschicht
Seitenteile ebenfalls mit Doppelschicht.

Bei den Seitenteilen muss natürlich am Rand Platz gelassen werden für die Auflage der Hart-PVC-Platte. Zusätzlich habe ich auf der Höhe des Netzteiles ein kleines Stück weit die zweite Schicht weggelassen, da es dort Platz braucht für die vielen Stromkabel, die zu den Festplatten führen.

Haube mit Dämmung ausgekleidet
Haube mit doppelter Dämmung ausgekleidet

So sieht die fertige Haube innen aus, gut gedämmt und ein Kanal, in dem die heiße Luft nach oben steigen kann – der Kamineffekt.

Der Serverschacht von oben
Der Serverschacht von oben.
Der Serverschacht von unten.
Der Serverschacht von unten, über dem Lüfter und über dem CPU-Kühlerbügel ist noch ein wenig Platz.

In die äußeren HAFA-Platten wird eine Öffnung eingebracht, so dass die Innensechskantschrauben direkt auf den Metallbügeln aufliegen. Nachdem noch die 5 mm Filzplatten aufgeklebt sind, verschwindet die Schraube dann komplett in einer runden Öffnung im Filz und ist von vorne nicht mehr zu sehen.

Befestigungsschrauben Dämmhaube
Befestigungsschrauben Dämmhaube

So sieht die fertige Schalldämmhaube nach der Montage aus. Momentan fehlen nur noch die roten 5 mm Filzplatten, die anschließend mit Ponal-Holzkleber aufgeklebt werden. An den Stellen der acht Befestigungsschrauben wird eine 14 mm kreisrunde Öffnung aus den Filzplatten ausgestanzt.

Fertige Haube ohne Filzauflage
Fertige Haube ohne Filzauflage.

Filz kann man in den unterschiedlichsten Farben fertig zugeschnitten über die Filzkönigin beziehen.


Mit normalem Ponal-Holzkleber wird die 5 mm Filzschicht aufgeklebt.
Die Öffnungen für die Befestigungsschrauben werden nach dem Aufkleben ausgestanzt.
Die verschiedenen Lagen der Schallschutzhaube.
Die Schrauben rot lackiert.
Die Filzauflage auf der fertigen Schallschutzhaube, nicht nur ästhetisch schön sondern auch weiter dämpfend.

XII. Abschließende Betrachtungen

Der schwierigste Teil des Hardware-Aufbaus waren immer die Stellen, an denen es auf Präzision ankam. Die Bohrungen für die Festplatten-Grundplatten, das präzise Einbringen der Gewindehülsen in die Hart-PVC-Platte etc. Mit entsprechenden Maschinen tut man sich hier sicherlich viel leichter. Aber, in der Beschränkung zeigt sich ja bekanntlich erst der wahre Meister und wenn es nicht auf einen Zehntelmillimeter genau passt, dann kann man meist das Loch einfach ein wenig aufbohren.
Der Umbau der Kühlkörper hat wirklich viel gebracht. Hier braucht es sicherlich auch eine andere Produktionsphilosophie bei den Mainboard- und RAID-Controller-Herstellern. Es gibt keinen Grund laute und stromfressende Lüfter zu verbauen, wenn man genügend Platz für große Kühlkörper hat. Man kann an Firmen wie nocuta sehen, dass es auf dem Zubehörmarkt schon etliche innovative Unternehmen gibt, nur die Computerindustrie selbst scheint momentan lediglich auf Rackmontage mit flachen Gehäusen zu setzen. Die Home- oder Büro-Cloud wird aber in Zukunft immer wichtiger werden, da wir immer mehr Daten produzieren und diese, als verantwortlich handelnde Menschen, auf alle Fälle sowohl privat als auch geschäftlich unter eigener Kontrolle halten müssen.

Falls sich SSD-Festplatten in Zukunft durchsetzen und sie auch in großen Mengen bezahlbar werden, wird dieser Aufbau sicherlich ein Relikt der Vergangenheit werden. Mit SSD-Platten wird alles kleiner, auch das Netzteil. Bei der Montage kann man die Platten einfach stapeln und zudem verursachen sie keinen Lärm, also fällt auch die Schallschutzhaube weg. Zusammen mit zwei großen Heatpipes für den Prozessor und den RAID-Controller, kann man sich dann eine schöne kleine Kiste basteln, die z. B. als Teetassenabstellhocker neben dem Schreibtisch stehen könnte. Das ist vielleicht dann das nächste Projekt …

Weiter geht es jetzt mit Teil 2, der Softwareinstallation >>>



duplicate content by thomas Hezel

SEO – „Duplicate Content“ oder „Doppelte Inhalte“

Google hat in den letzten Jahren mit dem Begriff „Duplicate Content“ oder zu deutsch „Doppelte Inhalte“, für sehr viel Aufregung gesorgt. Plötzlich machten sich alle Gedanken über Serverkonfigurationen und .htaccess-Dateien um zum Beispiel zu verhindern, dass eine Website einmal mit dem vorangestellten „www“ und ohne das „www“ zu erreichen war. Das Grundproblem war am Anfang, dass manche Agenturen versuchten durch mehrere Domainnamen, unter denen der gleiche Inhalt zu erreichen war, eine besser Positionierung zu bekommen, da damit vorgegaukelt wurde, dass es sich um wichtige Dinge handle, die im Internet sehr oft vorhanden waren (z. B. eben die Inhalte der eigenen Website).

Doch wie sieht es mit SEO und „Duplicate Content“ im Jahr 2016 aus?

Verkürzt kann man wahrscheinlich antworten, dass Google seine Algorithmen angepasst hat oder wie es Andrey Lipattsev, der bei Google Irland für die Suchqualität zuständig ist, ausgedrückt hat: „Dann bauen wir halt eine weiteres Datenzentrum.“

Johannes Müller (aka JohnMu oder John Mueller), der bei Google Zürich für Webmaster Trends zuständig ist, hat das Ganze so umschrieben:
Wenn man in einem Shop zum Beispiel für ein Produkt die Herstellerbeschreibung verwendet und Google nun in mehreren Online-Shops oder Ladengeschäften genau dieselbe Beschreibung findet, wird die Suchmaschine einen dieser Shops aussuchen, der weitere Merkmale aufweist, von denen Google annimmt, dass sie zu dem Suchenden oder zu der jeweiligen Suchanfrage passen. Google wird also nicht die Herstellerseite nehmen, mit dem originalen ursprünglichen Inhalt, sondern, falls es sich zum Beispiel um ein Ladengeschäft handelt, das Geschäft, das in der geringsten Entfernung zum Suchenden liegt.

Andrey Lipattsev weist darauf hin, dass auch ein Online-Shop, der durch verschiedene Auflistungen von Produkten (z. B. alle Schuhe nach Farbe, alle Schuhe nach Größe, alle Schuhe nach Männer/Frauen etc.) die Produkte in seinen URLs natürlich mehrfach auflistet kein Problem für Google bedeuten würde. Er meint sogar, dass selbst wenn es 30.000 verschiedene Seiten geben würde, die alle bestimmte Produktauflistungen wären, Google in der Lage wäre daraus dann eine Seite zu finden, von der Google annimmt, dass sie am besten zur Suchanfrage passen würde. Er ergänzt allerdings, dass es für Suchmaschinen dann sehr schwer sein könnte, wenn man eine Seite mit ganz neuen tollen Schuhen hätte, diese Seite innerhalb der Unzahl der anderen Seite auch zu finden und hervorzuheben. Aber auch dafür gibt es eine Lösung und zwar Google über eine aktuelle Sitemap mitzuteilen, dass es etwas neues gibt und wo es genau liegt.

Da viele Seiten mittlerweile sowohl als „http“, als auch als „https“ zu finden sind tritt das Problem mit „www“ und ohne „www“ wieder in einem neuen Kontext auf.  Auch dazu sagt Andrey Lipattsev, dass dies der Natur des Internet entsprechen würde und seinem technischen Aufbau und dass Google damit gut klar käme.

„Duplicate Content“ bzw. „Doppelte Inhalte“ und „Canonical Tag“

Was ist ein „Canonical Tag“?
Ein „Canonical Tag“ ist eine Angabe in den Metadaten einer Webseite, welches diejenige Webseite ist, die bei mehrfach verfügbaren Inhalten als die Hauptseite anzusehen ist und von den Suchmaschinen angezeigt werden soll.

In Bezug auf den „Canonical Tag“ sagt Johannes Müller von Google Zürich, dass die Suchmaschine dieses als „Hint“, also „Hinweis“ nehmen würde um es in die Berechnung seiner Suchergebnisse einfließen zu lassen und sehr wahrscheinlich auch diejenige Seite anzeigen wird, die im „Canonical Tag“ angegeben wird.
Versuche hab gezeigt, dass das Wort „Hint“ etwas zu vorsichtig ausgedrückt ist und Google zu fast einhundert Prozent diesem „Hinweis“ im „Canonical Tag“ auch folgt.

„Duplicate Content“ und „Structured Data“ („Strukturierte Daten“ wie z. B.

Mit strukturierten Daten kann man innerhalb der normalen Webseitenprogrammierung zusätzlich Informationen unterbringen, die vom normalen Nutzer nicht gesehen werden, die aber den Suchmaschinen helfen die Angaben innerhalb einer Webseite richtig einzuordnen.
Man kann z. B. sagen „dies ist die Hauptadresse“ oder „dies ist eine Person und sie hat diese Funktion innerhalb der Firma“. Dies hilft einer Suchmaschine natürlich enorm, da der Webmaster schon einen Teil der komplexen Einordnung von Gegebenheiten für Google vornimmt. Der Webmaster kreiert quasi schon eine Struktur die sich an ein vorgegebenes Muster hält (z. B. und die Suchmaschine kann genau diese Struktur direkt übernehmen.

Auch innerhalb von strukturieren Daten kann man „Duplicate Content“ Hinweise hinterlegen, welches die Hauptinhalte sind oder wo sich das Original eines Inhaltes befindet.  „mainEntityOfPage“ ist bei eine solche Bezeichnung.

Johannes Müller von Google Schweiz warnt aber natürlich sofort, da Google schon immer sehr darauf bedacht war, dass Suchmaschinen nicht ausgetrickst werden und die sogenannten „Crawler“, mit denen das Netz durchsucht wird, auch genau das sehen, was der normale User sieht.
(Z. B. ist Text, der die gleiche Farbe wie der Hintergrund hat, für den normalen User nicht sichtbar, für die Suchmaschinen aber schon. Achtung, dies ist ein sehr einfaches Beispiel, das Google längst erkennt.)
Bei strukturierten Daten betont Johannes Müller deshalb, dass man die Inhalte so gut es geht aber auch auf der Webseite direkt, also dem User sichtbar macht und nicht mit strukturierten Daten „versteckt“.

„Duplicate Content“ und robots.txt

Was ist „robots.txt“?
Dies ist eine Datei mit der man Suchmaschinen darauf hinweist, welche Inhalte einer Webseite durchsucht werden sollen und welche nicht. Dies kann sich auf einzelne Seiten, Daten (z.B. Bilder) oder auf ganze Ordner beziehen.

Man kann mit Hilfe der Datei robots.txt verhindern, dass doppelte Inhalt, also „Duplicate Content“ von den Programmen, die das Internet für die Suchmaschinen durchsuchen, überhaupt durchsucht werden. Hier ist jedoch darauf zu achten, dass wenn Links von außen auf eine mit Hilfe von robots.txt ausgeschlossene Seite weisen dann verloren gehen, da Google diese Seite schlichtweg nicht findet und man „Link-Power“ verschenkt.

Zusammenfassung „Duplicate Content“ 2016:

Zusammenfassend lässt sich feststellen, dass Google wahrscheinlich viele neue Datenzentren gebaut hat und deshalb besser mit doppelten Inhalten („Duplicate Content“) klar kommt als zuvor. Am Ende bleibt das Credo das immer und immer wieder von Google betont wird, das lautet: einzigartiger guter Inhalt, der sich von anderen Inhalten eindeutig unterschiedet, ist der Schlüssel zum Erfolg.
Ob man nun die Herstellerangabe für ein Produkt in einem Shop verwendet oder die Beschreibung einer Person eines Unternehmens mehrfach auf der Internetseite auftritt ist Google im Grunde egal, da es sich dann einfach auf die anderen Bereiche konzentriert um herauszufinden, ob es dort etwas relevantes gibt, das diese Seite von den anderen Seiten hervorhebt und es deshalb wahrscheinlicher wird, dass die Seite in den Suchergebnissen auch angezeigt wrid.



FS7 gegen FCPX

Achtung Schlaumeier-Bug: Final Cut Pro X Import von Material der Kamera Sony FS-7

Dreht man mit der Sony FS-7, so wird auf dem Speicherchip eine feste Ordnerstruktur gebildet. Diese Struktur sieht so aus:

    • Clip
    • Edit
    • General
    • Sub
    • Take
    • Thmbnl
    • UserData

Es macht durchaus Sinn diese Struktur, so wie sie ist, beim Sichern der Daten zu übernehmen. Verwendet man Programme wie ShotPutPro zur kontrollierten und geprüften Datenübertragung, dann passiert automatisch sowieso genau das:
Die Daten werden mit einer Prüfziffer eins zu eins übertragen. Das hat später den Vorteil, dass man mit Sony-Programmen wie dem Content-Browser wieder darauf zugreifen kann.

Erstellt man mit Final Cut Pro X eine neue Mediathek und will die Daten anschließend importieren, interpretiert FCPX allerdings die Ordnerstruktur als Speicherkarte und dupliziert die Daten trotz des markierten Feldes, „Dateien am ursprünglichen Ort lassen“ in den Ordner „Original Media“ der Mediathek, d. h. man hat die Daten am Ende doppelt auf dem Rechner. Hier will FCPX wieder extra schlau sein und fragt nicht nach, sondern ignoriert die Einstellung und fängt an wie wild zu kopieren, ohne dass man dieses sofort merkt.

Die Lösung des Problems besteht darin, die Daten der Kamera aus dem Ordner „XDROOT“ herauszunehmen und den dann leeren Ordner „XDROOT“ auf dieselbe Ebene mit den anderen Dateien und Ordnern zu packen. FCPX erkennt nun keine Speicherkarte mehr und unterlässt das hinterhältige Kopieren. Das Ganze kann mit einem kurzen Verschieben der Daten zurück in den „XDROOT-Ordner“ jederzeit wieder rückgängig gemacht werden.

So sieht die Ordnerstruktur auf der Festplatte aus:

  • 01012016-001-Drehtag
    • XDROOT
    • Clip
    • Edit
    • General
    • Sub
    • Take
    • Thmbnl
    • UserData

Der Drehtag-Ordner dient als Strukturierungshilfe mit Nummerierung der Speicherkartenabfolge. Das Datum steht am Anfang, damit nach dem Zeitablauf sortiert wird. Das Ganze packe ich dann wiederum in einen Dreh-Daten-Ordner innerhalb des Projektordners.



bild für blogbeitrag fotorama und dce

Bildunterschriften bei Fotorama in TYPO3 mit Dynamic Content Elements DCE

Die Fotorama Diashow ist sehr flexibel und in etliche Content Management Systeme integriert.
Für die Darstellung einer Bildunterschirft, die innerhalb des jeweiligen Bildes erscheint, benützt Fotorama das „data-tag“.

<div class=“fotorama“>
<img src=“1.jpg“ data-caption=“Bildunterschrift eins“  />
<img src=“2.jpg“ data-caption=“Bildunterschrift zwei“  />
 Die genaue Anleitung gibt es bei Fotorama hier:

 Vorgehen bei TYPO3 – 7.x mit Dynamic Content Elements DCE

Innerhalb der Definition des DCE kreiert man ein Feld für Bilder. Als Backend-Element benutzt man:

File Abstraction Layer (recommended)

DCE fal viewhelper

Hier nicht vergessen in der Definition des Backend-Feldes (TCA) die Variable eintragen:
In meinem Fall wird die Vorgabe: „fal“ durch „sliderImg“ ersetzt. Es gibt auch einen Hinweis in brauner Schrift.

Mit dieser Definition erhält man im Backend ein Feld zur Eingabe von Bildern, die ausgewählt werden können und dann automatisch den richtigen HTML-Code bekommen:

Backend DCE für FAL
TYPO3 Backend FAL

Der zugehörige HTML-Code sieht so aus:

<section class=“slider“>

<div class=“fotorama“ id=“fotorama“ data-nav=“thumbs“ data-allowfullscreen=“native“ data-autoplay=“4000″ data-stopautoplayontouch=“false“>

<img src=“fileadmin/Resources/Public/Images/sliderImg/slider01_805_480.jpg“ width=“805″ height=“480″ alt=“kommt von fal“  />

<img src=“fileadmin/Resources/Public/Images/sliderImg/slider02_805_480.jpg“ width=“805″ height=“480″ alt=“kommt vom fal“ />

<img src=“fileadmin/Resources/Public/Images/sliderImg/slider03_805_480.jpg“ width=“805″ height=“480″ alt=“from fal“ />

<img src=“fileadmin/Resources/Public/Images/sliderImg/slider04_805_480.jpg“ width=“805″ height=“480″ alt=“from fal“ />


Das Alt-Attribut kommt vom FAL = File Abstraction Layer, also von der Bildverwaltung des Bilderordners im „fileadmin“. Dort kann man das Alt-Attribut angeben, nachdem man auf den Bildnamen geklickt hat. Genauso kann man dort das Title-Attribut angeben! Die Bilder bekommen diese Attribute also zentral für alle Verwendungen mit.

Wie bekommt man das „data-caption =“Die Bildunterschrift des Bildes“ in den Code?

Die Antwort steckt im „f:image-ViewHelper“ der innerhalb der DCEs verwendet wird:

Die Referenzseite findet man hier:

Nachdem man wie oben beschrieben das Backend-Eingabefeld angelegt hat, muss man für das DCE noch im Template das Ganze zum Leben erwecken und fügt folgende Zeile in das Template ein:

<section class=“slider“>
<div class=“fotorama“ id=“fotorama“ data-nav=“thumbs“ data-allowfullscreen=“native“ data-autoplay=“4000″ data-stopautoplayontouch=“false“>
<f:for each=“{dce:fal(field:’sliderImg‘, contentObject:contentObject)}“ as=“fileReference“>   <f:image  src=“{fileReference.uid}“ treatIdAsReference=“1″  data=“{caption: fileReference.title}“ />

Der entsprechende vom DCE schon vorgegebene ViewHelper heißt:
„dce-fal“ indem wiederum der TYPO3 ViewHelper „f:image“ steckt.

dce fal-viewhelper

Der f:image-ViewHelper muss nun um das Data-Attribut erweitert werden, damit am Ende innerhalb des Data-Attributes die Texte erscheinen, die man im Title angegeben hat:

<f:image  src=“{fileReference.uid}“ treatIdAsReference=“1″  data=“{caption: fileReference.title}“ />

Dies bedeutet, dass im Data-Object „fileReference“, das zuvor mit dem ViewHelper kreiert wurde, der Titel ausgelesen wird und das Data-Attribut den Namen „caption“ nach dem Bindestirch bekommt, also „data-caption“:

Ausgabe am Ende:

<img data-caption=“here you see the title“ src=“fileadmin/Resources/Public/Images/sliderImg/slider01_805_480.jpg“ width=“805″ height=“480″ alt=“kommt von fal“ title=“here you see the title“ />

Etwas unschön ist, dass der ViewHelper gleichzeitig ein „title-tag“ mit demselben Inhalt erstellt.


Weitere Möglichkeiten mit dem „fileReference-object“

zeige ich in einem anderen Blogbeitrag, der sich um reine Bildabfolgen kümmert und wie man unter diese verschiedene Bildunterschriften setzen kann:

TYPO3-DCE – Mit dem FAL-Viewhelper Bildunterschriften (figcaption) erzeugen