<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Bits, Bytes and my 5 cents &#187; LPIC</title>
	<atom:link href="http://blog.encodingit.ch/category/zertifizierung/lpic-zertifizierung/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.encodingit.ch</link>
	<description>Life is just a technical game</description>
	<lastBuildDate>Wed, 08 Feb 2012 07:57:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>»Wir gratulieren zur bestandenen LPI-Prüfung 201«</title>
		<link>http://blog.encodingit.ch/2011/05/wir-gratulieren-zur-bestandenen-lpi-prufung-201/</link>
		<comments>http://blog.encodingit.ch/2011/05/wir-gratulieren-zur-bestandenen-lpi-prufung-201/#comments</comments>
		<pubDate>Wed, 11 May 2011 17:35:58 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[LPIC]]></category>
		<category><![CDATA[LPIC 201]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=2160</guid>
		<description><![CDATA[Endlich sind die Resultate da von meiner letzten LPI-Prüfung 201!
Wenn ich mich erinnere, meine erste Prüfung (101) wurde noch nach Kanada geschickt zur Kontrolle. Da dauerte alles noch über einen Monat. Seit neuem können die Prüfungen direkt in der Schweiz korrigiert werden, wodurch alles gerade mal zwei Wochen gedauert hat.<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Endlich sind die Resultate da von meiner letzten LPI-Prüfung 201!<br />
Wenn ich mich erinnere, meine erste Prüfung (101) wurde noch nach Kanada geschickt zur Kontrolle. Da dauerte alles noch über einen Monat. Seit neuem können die Prüfungen direkt in der Schweiz korrigiert werden, wodurch alles gerade mal zwei Wochen gedauert hat:</p>
<blockquote><p>Erreichte Punkte: 620<br />
Erforderliche Punktzahl: 500<br />
Status: Pass</p></blockquote>
<p>Dass ich bestanden habe, hätte ich selbst nicht gedacht, da ich für diese Prüfung nur mal so zwischendurch neben Abschlussprüfungen, Abschlussarbeit und Lehrabschluss gelernt habe. Was sich auch im Ergebnis widerspiegelt:</p>
<blockquote><p> 60%            Linux Kernel<br />
 87%            System Startup<br />
 80%            Filesystem and Devices<br />
 66%            Advanced Storage Device Administration<br />
 76%            Networking Configuration<br />
 57%            System Maintenance<br />
 66%            Domain Name Server</p></blockquote>
<p>Diese Prüfung war für mich von der Schwierigkeit her vergleichbar mit 101 und um Längen schwerer als 102. Der Grund dafür sehe ich vor allem in den kernellastigen und sehr tief greifenden (auf das System bezogen) Themen, was selbst für mich, jemanden der auch geschäftlich mit Linux arbeitet, nicht alltäglich ist.</p>
<p>Wer wissen will, was wirklich alles dazu gehört, findet <a target="_blank" href="http://lpi.org/eng/certification/the_lpic_program/lpic_2/exam_201_detailed_objectives" >hier eine detaillierte Auflistung</a>.</p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/05/wir-gratulieren-zur-bestandenen-lpi-prufung-201/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<series:name><![CDATA[Vorbereitung LPIC 201]]></series:name>
	</item>
		<item>
		<title>Backup und Restore mit Linux</title>
		<link>http://blog.encodingit.ch/2011/03/backup-und-restore-mit-linux/</link>
		<comments>http://blog.encodingit.ch/2011/03/backup-und-restore-mit-linux/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 06:56:49 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[LPIC]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Bacula]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[LPIC 201]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=2002</guid>
		<description><![CDATA[Von den bisher vorgestellten Themen in LPIC 201 ist das folgende eines der interessanteren: Backup und Archivierung!
Wie in den Artikeln vorher schon erwähnt, ersetzt RAID nicht wirklich ein Backup und LVM schon gar nicht! Es muss also trotzdem noch eine Lösung her - und um die kümmern wir uns jetzt!
Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/03/software-raid-fur-linux/' rel='bookmark' title='Software RAID für Linux'>Software RAID für Linux</a> <small>Was also tun wenn die Platte langsam zu langsam wird...</small></li>
<li><a href='http://blog.encodingit.ch/2011/03/lvm-fur-linux-einrichten/' rel='bookmark' title='LVM für Linux einrichten'>LVM für Linux einrichten</a> <small>LVM ist eine andere Art von Festplatten Management, ähnlich einem...</small></li>
<li><a href='http://blog.encodingit.ch/2011/03/linux-von-acer-verbannt/' rel='bookmark' title='Linux von Acer verbannt'>Linux von Acer verbannt</a> <small>Da der Acer Aspire One von einer Kollegin nicht mehr...</small></li>
</ol><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Von den bisher vorgestellten Themen in LPIC 201 ist das folgende eines der interessanteren: Backup und Archivierung!<br />
Wie in den Artikeln vorher schon erwähnt, ersetzt RAID nicht wirklich ein Backup und LVM schon gar nicht! Es muss also trotzdem noch eine Lösung her &#8211; und um die kümmern wir uns jetzt!</p>
<h2>Arten</h2>
<p>Bevor man überhaupt mit einem Backup beginnt, muss man sich überlegen, was, wie und wie oft man etwas sichern möchte. Das was ist dabei relativ schnell gefunden, zum Beispiel das /home-Verzeichnis. Auch das wie oft ist ein kleineres Problem; jeden Abend sollte reichen.<br />
Doch nun muss man sich überlegen wie! Denn wenn ich jedes mal alle Daten von neuem Kopiere und allen alten Backups behalte, so leide ich schnell an Platzmangel. Deshalb muss man zuerst wissen, wie alles gesichert werden kann:</p>
<h4>Full</h4>
<p>Zu aller erst muss man ein Full-Backup anlegen. Dabei werden alle Daten welche im zu sichernden Ordner /home sind, gesichert.</p>
<h4>Inkrementell</h4>
<p>Inkrementell empfiehlt es sich, wenn man wenige Daten haben, welche sich immer ändern. Denn beim inkrementellen Backup werden nicht alle Daten, sondern nur die gesichert, welche seit dem letzten Backup verändert wurden.</p>
<h4>Differenziell</h4>
<p>Differenziell ist ähnlich wie inkrementell, jedoch werden hier immer die gesicherten Daten seit dem letzten Full-Backup gesichert</p>
<h4>Zeitplan</h4>
<p>Nun kann man sich sagen: &#8220;Ich mach immer inkrementell, da brauch ich am wenigsten Platz&#8221;! Dazu muss ich sagen, das stimmt durchaus, jedoch ist es halt nicht die beste Lösung.<br />
Gehen wir von der Situation aus, ich habe vor einem Monat ein Full-Backup angelegt und seither täglich inkrementelle Backups. Fällt mein System aus, so muss ich zuerst das Full und dann 30 inkrementelle Backups zurückspielen. Nicht nur aufwendig, sondern auch zeitraubend!</p>
<p><span id="more-2002"></span></p>
<p>Ein gutes Mittelmass wäre also zum Beispiel einmal im Monat ein Full-Backup, einmal pro Woche ein differenzielles und dann Täglich ein Inkrementelles. Dies natürlich nur auf einem System mit sehr wertvollen Daten wie einem Server auf dem täglich gearbeitet wird, ansonsten könnte man die inkrementellen Backups weglassen.<br />
Im schlimmsten Fall, also ein Ausfall ein Tag vor dem neuen Full-Backup, so müsste man nur das alte Full-Backup dann das differenzielle und bis zu 5 inkrementelle Backups zurückspielen. Klingt aufwendig &#8211; ist es auch! Aber besser als 30 inkrementelle Backups ist es garantiert&#8230;</p>
<h2>Housekeeping</h2>
<p>Um Speicherplatz zu sparen, sollte man auch an ein gut durchdachtes Housekeeping denken. Dabei wird festgelegt, welche Art von Backup wie lange behalten und wann gelöscht wird.<br />
Um auf obiges Beispiel zurück zu kommen, so sollte man ein Housekeeping wie das folgende in Betracht ziehen:</p>
<ul>
<li>die letzten beiden Full-Backups</li>
<li>die differenziellen Backups aus dem letzten und aktuellen Monat</li>
<li>die inkrementellen Backups der aktuellen Woche</li>
</ul>
<p>Somit ist man im schlimmsten Fall in der Lage bis zu zwei Monate zurück zu gehen. In der Praxis wird sich aber zeigen, meist sind Restores von über einer Woche sehr sehr selten, also könnte man das Housekeeping noch optimieren.</p>
<h2>Speicherort</h2>
<p>Ganz entscheidend für die langfristige Verfügbarkeit und auch die Geschwindigkeit beim Sichern und Restoren ist das Medium, auf welches gesichert wird.<br />
Die meisten werden dabei auf einfache Festplatten zurückgreifen. Sehr wenige noch auf DVDs und die allerwenigsten im privaten Bereich gar auf Tapes. Flash-Disks lasse ich hier auf Grund des hohen Preises mal aussen vor.<br />
Doch muss man wissen, dass eine Festplatte sehr anfällig für Fehler ist. DVDs sind leider ein bisschen Begrenzt, was die Kapazität angeht und Tapes für eine Privatperson sehr teuer.<br />
Auch hier gibt es wieder ein Abwägen des idealen Mittelmasses!</p>
<h2>Software</h2>
<p>Und auch bei der passenden Software wird es nicht einfacher! Die Qual der Wahl bleibt einem auch hier nicht erspart. LPIC beschränkt diese aber klar auf Amanda, Bacula und BackupPC, sowie die üblichen Verdächtigen wie tar, dd, rsync und mehr.</p>
<h4>tar</h4>
<p>tar ist ein Stück Softwar, das bestimmt schon mal jeder benutzt hat. Mir geht es auf jeden Fall so; jedes mal wenn ich es benütze, muss ich wieder nach den passenden Parametern zum (ent-)packen studieren.<br />
Alles was tar macht, ist alle Daten mitsamt deren Zusatzinformationen wie Owner, Rechte o.ä. in ein Archiv zu packen und, falls gewünscht, noch zu komprimieren:</p>
<pre class="brush: bash; title: ; notranslate">tar -cfv backup.tar Verzeichnis1 Verzeichnis2 Datei1 Verzeichnis3</pre>
<p>Die Komprimierung aktiviert man über den Parameter z:</p>
<pre class="brush: bash; title: ; notranslate">tar -cfvz backup.tar.gz Verzeichnis1 Verzeichnis2 Datei1 Verzeichnis3</pre>
<p>Zum Entpacken dann:</p>
<pre class="brush: bash; title: ; notranslate">tar -xfv backup.tar</pre>
<p>Oder auch wieder mit Komprimierung:</p>
<pre class="brush: bash; title: ; notranslate">tar -xfvz backup.tar.gz</pre>
<p>Und auch in tar steckt noch ein bisschen Logik. So kann über den Parameter -u verlangt werden, dass falls eine ältere Version innerhalb des Archives schon besteht, diese durch die neue ersetzt wird. Somit hat man auch ein sauberes Backup mit den neusten Daten und nicht noch alle veralteten Version der Datei mit drauf.</p>
<h4>cpio</h4>
<p>Auch Bestandteil von LPIC ist das Tool cpio. Doch grosse Neuerungen zu tar bringt es nicht, also ist es hier auch nicht erwähnenswert!</p>
<h4>Wegkopieren</h4>
<p>Wenn man nun sein Archiv erstellt hat, muss das natürlich auch noch an einen anderen Ort wie zum Beispiel ein Fileserver oder Tapelaufwerk.<br />
Für ersteres kann man ganz gut rsync verwenden:</p>
<pre class="brush: bash; title: ; notranslate">rsync -a backup.tar.gz fileserver:/backup/master/</pre>
<h4>Image-Kopie</h4>
<p>Eine Image-Kopie gibt es, wenn man von seiner Maschine ein Image erstellt. Dies bedeutet eine 1:1 Kopie seiner Festplatte, jedoch nicht auf Datei, sondern auf Byte-Ebene.<br />
Somit hat man nicht nur alle Dateien, sondern man hat die ganze Festplatte. Sollte die Maschine also im schlimmsten Fall mal formatiert werden, so sind nicht nur Daten sondern auch das System selbst verloren. Bei einem Server ist dies weniger ärgerlich, da ist neu aufsetzen eh die bessere Lösung. Bei einem Client aber könnte man hier ein Image zurückspielen. Dabei werden dann nicht nur die Daten sondern auch das ganze Dateisystem mit Partitionstabelle und MBR zurückgeschrieben.<br />
Erstellen kann man dies zum Beispiel mit dd. Jedoch sollte man beachten, das Image wird genau so gross, wie die Festplatte. Auch wenn diese nur zu 10% mit Daten beschrieben ist!</p>
<pre class="brush: bash; title: ; notranslate">sudo dd if=/dev/sda of=/backup/backup.img</pre>
<h4>Weitere Lösungen</h4>
<p>LPIC verlangt, dass der Kandidat weiss, dass es noch andere Lösungen wie Amanda, Bacula oder BackupPC gibt. Diese spezifisch einzurichten wird dabei bewusst aussen vor gelassen. Also wollen wir auch nur ein paar Worte dazu verlieren.</p>
<p>Natürlich sind tar und cpio keine Lösungen für ein Backup von mehr als einem kleinen PC. Der Aufwand zu jedem Server und Client in einem 1000 Personen Unternehmen zu gehen, da ein tar vom /home-Verzeichnis zu erstellen und an den Backup-Server zu schicken wäre kaum auszumalen!</p>
<p>Also gibt es Softwarelösungen wie zum Beispiel Bacula. Dieses basiert auf einem Kontrollserver, welcher programmiert und eingestellt wurde und dann über seine Agents auf den jeweiligen Maschinen im passenden Moment das Backup startet. Weiter leitet der Kontrollserver, welcher von Bacula übrigens liebevoll &#8220;Director&#8221; getauft wurde, die Daten von den Agents an den Storage-Deamon auf z.B. dem Tapelaufwerk weiter.<br />
Nebenbei bieten solche Lösungen auch noch weitere Features wie zum Beispiel Wiederherstellung-DVDs.</p>
<br /><p>Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/03/software-raid-fur-linux/' rel='bookmark' title='Software RAID für Linux'>Software RAID für Linux</a> <small>Was also tun wenn die Platte langsam zu langsam wird...</small></li>
<li><a href='http://blog.encodingit.ch/2011/03/lvm-fur-linux-einrichten/' rel='bookmark' title='LVM für Linux einrichten'>LVM für Linux einrichten</a> <small>LVM ist eine andere Art von Festplatten Management, ähnlich einem...</small></li>
<li><a href='http://blog.encodingit.ch/2011/03/linux-von-acer-verbannt/' rel='bookmark' title='Linux von Acer verbannt'>Linux von Acer verbannt</a> <small>Da der Acer Aspire One von einer Kollegin nicht mehr...</small></li>
</ol></p><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/03/backup-und-restore-mit-linux/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
	
		<series:name><![CDATA[Vorbereitung LPIC 201]]></series:name>
	</item>
		<item>
		<title>LVM für Linux einrichten</title>
		<link>http://blog.encodingit.ch/2011/03/lvm-fur-linux-einrichten/</link>
		<comments>http://blog.encodingit.ch/2011/03/lvm-fur-linux-einrichten/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 06:51:21 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[LPIC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[LPIC 201]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=1984</guid>
		<description><![CDATA[LVM ist eine andere Art von Festplatten Management, ähnlich einem RAID 0. Es bietet dabei, nicht wie ein normales RAID (1, 5, o.ä.) Redundanz, sondern dient nur dazu, eine weitere logische Ebene zwischen die Festplatten und das System oder die Daten zu bringen.
Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/03/software-raid-fur-linux/' rel='bookmark' title='Software RAID für Linux'>Software RAID für Linux</a> <small>Was also tun wenn die Platte langsam zu langsam wird...</small></li>
<li><a href='http://blog.encodingit.ch/2011/03/linux-von-acer-verbannt/' rel='bookmark' title='Linux von Acer verbannt'>Linux von Acer verbannt</a> <small>Da der Acer Aspire One von einer Kollegin nicht mehr...</small></li>
</ol><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>LVM ist eine andere Art von Festplatten Management, ähnlich einem RAID 0. Es bietet dabei, nicht wie ein normales RAID (1, 5, o.ä.) Redundanz, sondern dient nur dazu, eine weitere logische Ebene zwischen die Festplatten und das System oder die Daten zu bringen.<br />
Der Vorteil dabei liegt auf der Hand. Sollte der Platzanspruch irgendwann mal steigen, so muss eine Platte nicht durch eine grössere Ersetzt und alle Daten umkopiert werden, sondern es reicht, eine weitere Platte dem LVM zu zufügen. somit bietet LVM, was übrigens für die Kurzform von Logical Volume Management steht, mehr Flexibilität.</p>
<p>Ursprünglich kommt das Konzept von LVM von IBM entwickelt für deren Baby: AIX.</p>
<h2>Aufbau</h2>
<p>Der Aufbau von, nennen wir es mal einer Speichermöglichkeit, ist in zwei Schichten gegliedert:</p>
<p><img src="http://blog.encodingit.ch/wp-content/uploads/2011/03/hd.png" alt="" title="hd" width="109" height="121" class="alignnone size-full wp-image-1985" /></p>
<p>Zu unterst steht das Physical Volume wie /dev/sda, darauf kommt ein Dateisystem wie ext3.<br />
Wird nun aber LVM verwendet, so ändert sich der Aufbau:</p>
<p><img src="http://blog.encodingit.ch/wp-content/uploads/2011/03/lvm.png" alt="" title="lvm" width="137" height="235" class="alignnone size-full wp-image-1986" /></p>
<p>Es kommt auf das Physical Volume zuerst eine Volumegroup, also eine Art Speicherpool dazu und darauf die Logical Volumes, eine Art virtuelle Partition, welche dann mit dem Dateisystem formatiert wird.</p>
<p><span id="more-1984"></span></p>
<h2>Erzeugen</h2>
<p>Nun legen wir ein LVM auf unsere Platte. Damit das klappt, säubern wir zuerst die alte Platte von der Partitionstabelle, und der passende Partitionstyp muss geschrieben werden:</p>
<pre class="brush: bash; title: ; notranslate">dd if=/dev/zero of=/dev/sda bs=512 count=1
cfdisk /dev/sda</pre>
<p>Nun erstellen wir ein neues Physical Volume:</p>
<pre class="brush: bash; title: ; notranslate">pvcreate /dev/sda5</pre>
<p>Mit pvdisplay sieht man auch gleich, was man angestellt hat:</p>
<pre class="brush: bash; title: ; notranslate">pvdisplay</pre>
<p>Nun können wir darauf eine Volume Group legen:</p>
<pre class="brush: bash; title: ; notranslate">vgcreate vg1 /dev/sda6</pre>
<p>Darauf wiederum kommt nun ein Logical Volume mit der Grösse von zum Beispiel 5GiB:</p>
<pre class="brush: bash; title: ; notranslate">lvcreate -n lv1 -L 5120M vg1</pre>
<p>Nun kann man auf den eben erstellten Device über /dev/vg1/lv1 zugreifen.<br />
Damit da aber auch etwas drauf passt, muss man es zuerst noch formatieren mit einem passenden Dateisystem:</p>
<pre class="brush: bash; title: ; notranslate">mkfs -t ext3 /dev/vg1/lv1</pre>
<p>Und schlussendlich kann das ganze wie ein normales Dateisystem verwendet und eingehängt werden:</p>
<pre class="brush: bash; title: ; notranslate">mount -t ext3 /dev/vg1/lv1 /data</pre>
<h2>Logical Volume vergrössern</h2>
<p>Merkt man nun nachträglich, dass man noch mehr Platz benötigt, so kann das Logical Volume nachträglich vergrössert werden, indem diesem vom der Volume Group mehr Speicherplatz zugewiesen wird, z.B. über:</p>
<pre class="brush: bash; title: ; notranslate">lvextend -L+2048M /dev/vg1/lv1</pre>
<p>Nun muss man wieder die Hierarchie nach oben alles anpassen, also ist jetzt das Dateisystem dran:</p>
<pre class="brush: bash; title: ; notranslate">umount /data
e2fsck -f /dev/vg1/lv1
resize2fs /dev/vg1/lv1
mount -t ext3 /dev/vg1/lv1 /data</pre>
<h2>Logical Volume verkleiner</h2>
<p>Natürlich kann man mit lvreduce das ganze auch verkleinern, jedoch muss dabei zuerst dem Dateisystem etwas geklaut werden:</p>
<pre class="brush: bash; title: ; notranslate">umount /data
e2fsck -f /dev/vg1/lv1
resize2fs /dev/vg1/lv1 2048M
lvreduce -L 2048M /dev/vg1/lv1
mount -t ext3 /dev/vg1/lv1 /data</pre>
<h2>Volume Group ändern</h2>
<p>Doch was tun, wenn auf der VG kein Platz mehr vorhanden ist? Kein Problem! Einfach eine neu Disk rein, darauf ein neues Physical Volume, wie oben schon beschrieben, erstellen und dem VG zufügen:</p>
<pre class="brush: bash; title: ; notranslate">pvcreate /dev/sda7
vgextend vg1 /dev/sda7</pre>
<p>Nun wieder die Schritte von oben zum Vergrössern des LV durchführen und man hat mehr Platz zur Verfügung.<br />
Oder wenn man etwas verkleinern möchte, so kann ich dies natürlich auch gleich dem VG klauen:</p>
<pre class="brush: bash; title: ; notranslate">vgreduce -a vg1</pre>
<p>Oder ich schmeisse ein ganz bestimmtes Physical Volume aus der VG:</p>
<pre class="brush: bash; title: ; notranslate">vgreduce vg1 /dev/sda7</pre>
<p>Natürlich nur wenn ich mit folgendem Kommando keine Daten darauf finde:</p>
<pre class="brush: bash; title: ; notranslate">pvdisplay -v /dev/sda7</pre>
<h2>LVM löschen</h2>
<p>Will ich mein LVM wieder los werden, so kann ich auf folgenden Befehlssatz zurückgreifen:</p>
<pre class="brush: bash; title: ; notranslate">vgchange -a n</pre>
<h2>Snapshot-Volume</h2>
<p>Ganz interessant, besonders für sehr grosse Installation ist das Snapshot-Volume.<br />
Wenn man sehr viele Daten hat, so kann zum Beispiel bei einem Backup das Problem auftreten, dass während dem Sichern das System geändert wird.<br />
Wird also während dem Sichern ein neuer Benutzer angelegt, so könnte beispielsweise eine passwd- nicht mehr zur shadow-Datei passen&#8230; Ein Restore würde dadurch relativ aufwendig!<br />
Also kann man mittels LVM den Zustand eines Systems als Snapshot auf einem weiteren Volume einfrieren und dann von da aus wegsichern, wodurch der Betrieb nicht gestört wird!</p>
<p>Ein Snapshot-Volume wird auf der Ebene der LV erstellt, alles darunter muss also gegeben sein. Es wird einzig noch eine Option mehr gesetzt:</p>
<pre class="brush: bash; title: ; notranslate">lvcreate --snapshop --size 100M --name lvs1 /dev/vg1/lv1</pre>
<p>Dieses Volume unter /dev/vg1/lvs1 kann nun auch gemounted und dann von da aus gesichert werden.<br />
Gut zu wissen hierbei, es wird keine 1:1 Kopie angelegt, ein Snapshot ist also keine direkte Kopie. Trotzdem sollte drauf geachtet werden, dass genügend Platz vorhanden ist.</p>
<br /><p>Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/03/software-raid-fur-linux/' rel='bookmark' title='Software RAID für Linux'>Software RAID für Linux</a> <small>Was also tun wenn die Platte langsam zu langsam wird...</small></li>
<li><a href='http://blog.encodingit.ch/2011/03/linux-von-acer-verbannt/' rel='bookmark' title='Linux von Acer verbannt'>Linux von Acer verbannt</a> <small>Da der Acer Aspire One von einer Kollegin nicht mehr...</small></li>
</ol></p><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/03/lvm-fur-linux-einrichten/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<series:name><![CDATA[Vorbereitung LPIC 201]]></series:name>
	</item>
		<item>
		<title>Software RAID für Linux</title>
		<link>http://blog.encodingit.ch/2011/03/software-raid-fur-linux/</link>
		<comments>http://blog.encodingit.ch/2011/03/software-raid-fur-linux/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 09:29:16 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[LPIC]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[LPIC 201]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=1964</guid>
		<description><![CDATA[Was also tun wenn die Platte langsam zu langsam wird oder schlicht und einfach mehr Speicherplatz her muss?

Die Antwort heisst RAID und steht für Redundant Array of Independent Disks, zu deutsch in etwa "Redundante Anordnung unabhängiger Festplatten".
Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/03/linux-von-acer-verbannt/' rel='bookmark' title='Linux von Acer verbannt'>Linux von Acer verbannt</a> <small>Da der Acer Aspire One von einer Kollegin nicht mehr...</small></li>
</ol><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Die heutige Technik wächst rasend schnell. In einen Computer kann immer mehr RAM verbaut werden, die Taktrate einer CPU steigt andauernd und auch eine Grafikkarte wird immer leistungsfähiger. Die Festplatte hingegen bleibt ein bisschen auf der Strecke. Zwar steigern sich auch da die Spezifikationen, doch bei weitem nicht so schnell wie bei anderen Komponenten. Was also tun wenn die Platte langsam zu langsam wird oder schlicht und einfach mehr Speicherplatz her muss?</p>
<p>Die Antwort heisst RAID und steht für Redundant Array of Independent Disks, zu deutsch in etwa &#8220;Redundante Anordnung unabhängiger Festplatten&#8221; (<a target="_blank" href="https://de.wikipedia.org/wiki/RAID" >Wikipedia</a>).</p>
<p>Doch viel Entscheidender für den Einsatz von RAID als der Geschwindigkeitsgewinn ist die Redundanz. So kann eine Disk auf eine oder mehrere Disks, je nach Level, gespiegelt werden. Würde dabei dann eine Disk ausfallen, so wäre auf der oder den anderen Disks noch eine Sicherheitskopie, wodurch diese Wiederhergestellt werden kann.<br />
Natürlich muss man hier erwähnen: <strong>Dies ist KEIN ERSATZ für ein BACKUP!</strong></p>
<h2>RAID Level</h2>
<p>Der RAID Level bestimmt oder definiert, wie die Daten auf den Disks gespeichert werden. Mittlerweile gibt sehr viele verschiedene Levels, wobei die meisten wie 01, 10, 05 o.ä., aber nur Kombinationen aus den Grundlagen wie 0, 1, 5 und ggf auch noch 2, 3, 4 und 6.<br />
Bestandteil von LPIC 201 ist aber nur 0, 1 und 5, also werde ich mich hier auch auf diese Beschränken. Wer mehr dazu wissen will, findet hier eine <a target="_blank" href="https://de.wikipedia.org/wiki/RAID#RAID-Kombinationen" >schöne Übersicht</a>.</p>
<h3>RAID 0</h3>
<p>Wenn man es ganz korrekt will, so müsste man RAID 0, auch Striping genannt, eigentlich aus der Liste der RAIDs ausschliessen, weil hier keine Redundanz vorhanden ist. </p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/03/RAID_0.png"  rel="lightbox[1964]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/03/RAID_0.png" alt="" title="RAID_0" width="325" height="500" class="alignnone size-full wp-image-1965" /></a></p>
<p><span id="more-1964"></span></p>
<p>An vorhandenem Festplattenspeicher geht in diesem Level nichts verloren, da ja kein Speicher für die Sicherung reserviert werden muss. Der Vorteil aber der RAID 0 bieten kann: Die Last beim Lesen oder Schreiben auf oder von der Platte kann auf zwei Köpfe verteilt werden, wobei man an Geschwindigkeit gewinnt.</p>
<h3>RAID 1</h3>
<p>Auch Mirroring genannt bietet RAID 1 nun Redundanz. Alles was auf die Platte 0 geschrieben wird, wird auch auf der Platte 1 abgelegt.</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/03/RAID_1.png"  rel="lightbox[1964]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/03/RAID_1.png" alt="" title="RAID_1" width="325" height="500" class="alignnone size-full wp-image-1966" /></a></p>
<p>Somit verliert man den Speicherplatz einer ganzen Platte, bekommt dafür aber die Gewissheit, dass falls eine der beiden Platten mal ausfallen sollten, man die Daten wieder herstellen kann. Ein weiterer Vorteil ist, dass beim Lesen von beiden Platten gleichzeitig gelesen werden kann, was wiederum der Geschwindigkeit zu gute kommt.</p>
<h3>RAID 5</h3>
<p>RAID 5 kann eingesetzt werden, sobald genau oder mehr als 3 Platten vorhanden sind. In Level 5 wird die Redundanz aber nicht wie bei RAID 1 nur von einer Platte getragen, sondern die Spiegelung wird auf die vorhandenen Platten verteilt.</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/03/RAID_5.png"  rel="lightbox[1964]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/03/RAID_5.png" alt="" title="RAID_5" width="675" height="500" class="alignnone size-full wp-image-1967" /></a></p>
<p>Geht man von der Zahl X für die Anzahl an verbauten Festplatten aus, so werden beim Schreiben die Daten auf X-1 Festplatten verteilt. Die übrig gebliebenen Festplatte übernimmt dabei das Mirroring der eben geschriebenen Daten. Dieser Bereich wechselt für alle geschriebenen Daten zwischen allen Festplatten hin und her.<br />
Fällt nun eine Disk (z.B. 3) aus, so wurden entweder nur das Backup beschädigt, jedoch keine Daten (A) oder der betreffende Sektor (B, C &#038; D) kann aus dem Mirror wiederhergestellt werden. Schlussendlich kann also die ausgefallene Disk durch eine neue, leere ersetzt werden und diese wird automatisch durch den RAID-Verbund wiederhergestellt.</p>
<h2>RAID Controller</h2>
<p>Ein RAID wird immer von einer betreffenden Stelle aus gesteuert. Dies kann ein RAID Controller in Hardware- oder beim Software-RAID natürlich in Softwareform sein.<br />
Der Vorteil liegt hier klar beim Hardwarecontroller, da dieser neben Cache zum Zwischenspeichern nicht noch die CPU belasten muss. Jedoch ist er in der Anschaffung viel teurer, weshalb auch eine Softwarelösung helfen kann.</p>
<h2>Einrichten</h2>
<p>Da ein Softwareraid unter Linux auf Modulen des Kernels aufbaut, kann der Status jederzeit über die Datei /proc/mdstat abgefragt werden.<br />
Zum Einrichten eines neuen RAIDs wird das Paket mdadm benötigt. Die Testinstallation werde ich wieder unter Debian durchführen, unter Ubuntu oder anderen Derivaten sind aber keine grossen Abweichungen zu erkennen. Also:</p>
<pre class="brush: bash; title: ; notranslate">apt-get install mdadm</pre>
<p>Dann muss noch das passende Kernelmodul geladen werden. Soweit mir bekannt ist dies unter Ubuntu bereits seit längerem standardmässig im Kernel, unter Debian aber nicht. Also prüfen wir das zuerst:</p>
<pre class="brush: bash; title: ; notranslate">lsmod | grep md_mod</pre>
<p>Erhalten wir eine Ausgabe wie die folgende, so ist das Modul bereits geladen:</p>
<pre class="brush: bash; title: ; notranslate">md_mod                 73872  0</pre>
<p>Ansonsten muss dies noch nachgeholt werden:</p>
<pre class="brush: bash; title: ; notranslate">modprobe md_mod</pre>
<p>Nun kann das RAID eingerichtet werden. Für RAID 0 benutzt man den folgenden Befehl:</p>
<pre class="brush: bash; title: ; notranslate">mdadm --create --verbose /dev/md0 --auto=yes --level=0 --raid-devices=2 /dev/sda1 /dev/sdb1</pre>
<p>Für ein RAID 1 kann man den Aufbau schon erraten:</p>
<pre class="brush: bash; title: ; notranslate">mdadm --create --verbose /dev/md0 --auto=yes --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1</pre>
<p>Und für RAID 5 ist es auch nicht komplizierter:</p>
<pre class="brush: bash; title: ; notranslate">mdadm --create --verbose /dev/md0 --auto=yes --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1</pre>
<p>Nun kann das eben erstellte Laufwerk formatiert und gemounted werden:</p>
<pre class="brush: bash; title: ; notranslate">sudo mkfs.ext3 /dev/md0
mount /dev/md0 /data</pre>
<p>Hatten die Disks vorher schon mal ein RAID gespeichert, so sollten diese vor dem Erstellen erst &#8220;geputzt&#8221; werden von den alten Metadaten:</p>
<pre class="brush: bash; title: ; notranslate">mdadm --zero-superblock /dev/sda1
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdc1</pre>
<p>Damit das ganze auch dauerhaft anhält, solle man noch einen Eintrag in der /etc/fstab anlegen und alles in mdadm.conf eintragen:</p>
<pre class="brush: bash; title: ; notranslate">mdadm --examine --scan &amp;amp;gt;&amp;amp;gt; /etc/mdadm/mdadm.conf</pre>
<h2>Stoppen</h2>
<p>Will man das RAID mal nicht mehr, so muss es natürlich zuerst ausgehängt und ausgetragen und kann dann gestoppt werden:</p>
<pre class="brush: bash; title: ; notranslate">mdadm --stop /dev/md0</pre>
<h2>Erweitern</h2>
<p>Und wenn man mal eine Platte mehr zur Hand hat, so kann man diese natürlich auch nachträglich noch zufügen:</p>
<pre class="brush: bash; title: ; notranslate">sudo mdadm --add /dev/md0 /dev/sdd1</pre>
<p>Und dann das ganze RAID um den gewonnen Platz vergrössern:</p>
<pre class="brush: bash; title: ; notranslate">mdadm --grow --raid-devices=4 /dev/md0</pre>
<p>Und zum Schluss auch das Dateisystem nicht vergessen:</p>
<pre class="brush: bash; title: ; notranslate">resize2fs /dev/md0</pre>
<p>Und fertig ist die Einführung in Software-RAID.</p>
<p>[<a target="_blank" href="https://de.wikipedia.org/wiki/RAID" >Bildquelle</a>]</p>
<br /><p>Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/03/linux-von-acer-verbannt/' rel='bookmark' title='Linux von Acer verbannt'>Linux von Acer verbannt</a> <small>Da der Acer Aspire One von einer Kollegin nicht mehr...</small></li>
</ol></p><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/03/software-raid-fur-linux/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>das etwas andere Dateisystem: ISO-9660 &amp; UDF</title>
		<link>http://blog.encodingit.ch/2011/03/das-etwas-andere-dateisystem-iso-9660-udf/</link>
		<comments>http://blog.encodingit.ch/2011/03/das-etwas-andere-dateisystem-iso-9660-udf/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 10:16:03 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[LPIC]]></category>
		<category><![CDATA[CD]]></category>
		<category><![CDATA[Dateisystem]]></category>
		<category><![CDATA[DVD]]></category>
		<category><![CDATA[LPIC 201]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=1947</guid>
		<description><![CDATA[Auch wenn sich die wenigsten schon darüber Gedanken gemacht haben, aber auch für CD-ROM und DVD gibt es ein Dateisystem. Für CD ist dies standardisiert durch ISO und trägt den Namen ISO-9660. Natürlich kann jeder nach Belieben ein anderes Dateisystem für seine CD verwenden, aber 9660 ist nun mal der Standard.<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Auch wenn sich die wenigsten schon darüber Gedanken gemacht haben, aber auch für CD-ROM und DVD gibt es ein Dateisystem. Für CD ist dies standardisiert durch ISO und trägt den Namen ISO-9660. Natürlich kann jeder nach Belieben ein anderes Dateisystem für seine CD verwenden, aber 9660 ist nun mal der Standard.</p>
<p>Doch auch wenn es offiziell als Dateisystem bezeichnet werden kann, so hat es mit einem Dateisystem wie man es kennt (wie z.B. ext3) auf Grund seiner starken Einschränkung, nicht viel zu tun:</p>
<ul>
<li>so sind Dateinamen auf Grossbuchstaben, Ziffern und <a target="_blank" href="http://en.wikipedia.org/wiki/Underscore" >_</a> beschränkt.</li>
<li>Typ wird über das Kürzel nach dem Punkt definiert (wie unter Windows)</li>
<li>Beschränkung von 31 Zeichen für Dateinamen und 255 für den kompletten Pfad</li>
<li>Nicht tiefer als 8 Verschachtelungen für Verzeichnisse</li>
<li>Keine symbolischen Verknüpfungen</li>
</ul>
<p>Ein ganz entscheidender Nachteil ist natürlich jedem Bekannt. Ist eine CD einmal geschrieben, so kann diese nicht mehr verändert werden. Das Dateisystem ist also nur zum Lesen gedacht&#8230;</p>
<p>Um seine CD zu brennen, kann man auf diverse grafische Tools wie Brasero o.ä. zurückgreifen. Wer es aber spannender will, der macht das auf der Konsole <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Dazu verwende ich das Tool genisoimage (unter Debian). Unter Fedora und Derivaten gibt es noch mkisofs. Die Parameter sind aber bei beiden so ziemlich identisch:</p>
<pre class="brush: bash; title: ; notranslate">genisoimage -r -o image.iso ordner1 datei1 ordner2 ordner3</pre>
<p>Da das ISO für eine CD gedacht ist, verwende ich die Option -r. Damit sind die im ISO enthaltenen Daten automatisch für jeden Benutzer lesbar und im Besitz von root. Alles andere wäre kontraproduktiv wenn ich die Daten später an einer anderen Maschine lesen will.<br />
Sind die Daten immer für den selben Systemaufbau bestimmt (wie z.B. bei einem Backup) so empfiehlt sich die Option -R, wodurch alle Besitzer und Rechte erhalten bleiben.</p>
<p>Heraus kommt dann das Dateisystem für eine CD:</p>
<pre class="brush: bash; title: ; notranslate">root@master:~# file image.iso
image.iso: ISO 9660 CD-ROM filesystem data 'CDROM'</pre>
<p><span id="more-1947"></span></p>
<p>Da auch ein ISO nur ein Dateisystem ist, kann dieses auch im System gemounted und betrachtet werden:</p>
<pre class="brush: bash; title: ; notranslate">mount -o loop,ro -t iso9660 image.iso /mnt/</pre>
<p>Um das Tool nun zu brennen, kann man auf das Tool cdrecord zurückgreifen. Unter Debian hat man das Tool zwar mittlerweile gespickt, aber eine funktionsgleiche Alternative ist mir noch nicht bekannt.<br />
Zuerst muss das CD-Laufwerk gefunden werden, damit man auch weiss, wie dieses angesprochen werden muss:</p>
<pre class="brush: bash; title: ; notranslate">root@master:~# cdrecord -scanbus
scsibus1:
	1,0,0	100) 'SONY    ' 'CDRWDVD CRX880A ' 'KD09' Removable CD-ROM
	1,1,0	101) *
	1,2,0	102) *
	1,3,0	103) *
	1,4,0	104) *
	1,5,0	105) *
	1,6,0	106) *
	1,7,0	107) *</pre>
<p>In meinem Beispiel also wäre das CD-Laufwerk unter 1,0,0 zu suchen. Und nun kann auch endlich gebrannt werden:</p>
<pre class="brush: bash; title: ; notranslate">cdrecord -v dev=1,0,0 speed=4 -data image.iso</pre>
<p>Über -v gibt man dabei den Vortschritt [<a target="_blank" href="https://de.wikipedia.org/wiki/Sic" >sic</a>] <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  aus, mit -data wählt man die passende Schreibmethode (hier Daten, also TAO).</p>
<p>Nun aber sind CDs nicht mehr ganz Zeitgemäss und so wurde auch eine Alternative für ISO-9660 entwickelt: UDF (Universal Disk Format), welches natürlich auch normiert wurde (unter ISO 13346). Auch Verbesserungen bringt das neue Dateisystem natürlich einige mit:</p>
<ul>
<li>Dateinamen bis zu einer Länge von 255 Zeichen</li>
<li>Keine Beschränkung für die Verzeichnistiefe mehr</li>
<li>Beschränkung für Pfadlänge nun bei 1023 Zeichen</li>
<li>Gross- und Kleinschreibung in Dateinamen</li>
<li>Übernehmen von Dateiattributen von diversen Betriebssystemen</li>
</ul>
<p>Um auf eine CD / DVD zu brennen, erstellen wir zuerst wieder ein ISO und formatieren dieses:</p>
<pre class="brush: bash; title: ; notranslate">dd if=/dev/zero of=image.iso bs=1M count=0 seek=700
mkudffs image.iso</pre>
<p>Nun können wir unser Dateisystem mounten und beschreiben:</p>
<pre class="brush: bash; title: ; notranslate">mount -o loop image.iso /mnt
cp datei1 /mnt/</pre>
<p>Zum Brennen könnte man wieder cdrecord nehmen, jedoch werden darin DVDs nur in der kommerziellen Version unterstützt, also müssen wir auf growisofs zurückgreifen:</p>
<pre class="brush: bash; title: ; notranslate">growisofs -dvd-compat -Z /dev/dvd=image.iso</pre>
<p>Alles in allem relativ aufwendig und wenn ich ehrlich bin: Wenn ich rasch eine DVD brennen muss, so verwende ich ein grafisches Tool. Oder wie oft kommt es vor, dass man an einem Server ohne GUI DVDs brennen muss&#8230; Somit dünkt es mich auch ein bisschen Unsinnig, dass das noch in LPIC vorkommt.<br />
Wahrscheinlich aber noch ein Überbleibsel aus der guten, alten Zeit <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/03/das-etwas-andere-dateisystem-iso-9660-udf/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>ReiserFS und XFS</title>
		<link>http://blog.encodingit.ch/2011/03/reiserfs-und-xfs/</link>
		<comments>http://blog.encodingit.ch/2011/03/reiserfs-und-xfs/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 14:59:41 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[LPIC]]></category>
		<category><![CDATA[Dateisystem]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=1903</guid>
		<description><![CDATA[Nachdem ich in meinem letzten Artikel über ext2/3 geschrieben habe, kommt hier eine Fortsetzung zu ReiserFS und XFS, welche beide ebenfalls Bestandteil von LPIC 201 sind.
Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/03/ext2-ext3/' rel='bookmark' title='ext2 / ext3'>ext2 / ext3</a> <small>Ext2 steht für Extended Filesystem 2 und läuft relativ stabil...</small></li>
</ol><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich in meinem letzten Artikel über ext2/3 geschrieben habe, kommt hier eine Fortsetzung zu ReiserFS und XFS, welche beide ebenfalls Bestandteil von LPIC 201 sind.</p>
<h2>ReiserFS</h2>
<p>Das Dateisystem ReiserFS wurde von dem Entwickler Hans Reiser. Neben dieser grossartigen Entwicklung gibt es in seinem Leben noch ein ganz dunkles Kapitel, doch das soll hier nicht Thema sein.<br />
Das Filesystem ReiserFS hat den Vorteil, dass eine einzelne Datei nicht immer einem eigenen Block auf der Platte zugeordnet werden muss. Somit könne sehr kleine Daten mit der Grösse von ein paar Bytes effektiv gespeichert werden, da sich mehrere Datenstücke zusammen als Paket in einem Block speichern lassen.<br />
Somit ist das Filesystem besonders für Datenbanken oder anderen Applikationen mit sehr kleinen Datenbruchstücken geeignet.<br />
ReiserFS unterstützt wie ext3 auch ein Journal. Was genau das bedeutet, kann in meinem Beitrag über ext2 / ext3 nachgelesen werden.</p>
<p>Zum Anlegen kann mkfs, mkfs.reiserfs oder mkreiserfs verwendet werden:</p>
<pre class="brush: bash; title: ; notranslate">mkfs -t reiserfs /dev/sda1
mkfs.reiserfs /dev/sda1
mkreiserfs /dev/sda1</pre>
<p>Wie wir das auch schon von ext kennen, kann das Journal auf eine eigenen Partition ausgelagert werden:</p>
<pre class="brush: bash; title: ; notranslate">mkreiserfs --journal-device /dev/sdb1 /dev/sda1</pre>
<p>Um nachträglich Änderungen an der Platte durchzuführen kann das Programm reiserfstune verwendet werden. </p>
<p><span id="more-1903"></span></p>
<p>Dies akzeptiert etwa die selben Parameter wie bei ext vorgestellt.<br />
Speziell erwähnenswert finde ich aber die Vergrösserung. Zwar kann auch ext bei genügend Speicherplatz vergrössert oder verkleinert werden, jedoch muss die Platte dazu ausgehängt werden.<br />
ReiserFS bietet die Möglichkeit die Platte auch ohne auszuhängen zumindest zu vergrössern. So zum Beispiel auf 5GB:</p>
<pre class="brush: bash; title: ; notranslate">resize_reiserfs -s 5G /dev/sda1</pre>
<p>Oder gleich um 5GB:</p>
<pre class="brush: bash; title: ; notranslate">resize_reiserfs -s +5G /dev/sda1</pre>
<p>Oder ganz einfach bis zum Maximum:</p>
<pre class="brush: bash; title: ; notranslate">resize_reiserfs /dev/sda1</pre>
<p>Zum Prüfen der Platte gibt es reiserfsck. Im &#8220;Lese&#8221;-Modus kann dieser Befehl sogar auf eine gemountete Platte losgelassen werden. Will man aber dass dann auch etwas behoben wird kann man für die ausgehängte Platte die Option &#8211;fix-fixable, oder in extremen Fällen sogar &#8211;rebuild-tree verwenden:</p>
<pre class="brush: bash; title: ; notranslate">reiserfsck --rebuild-tree /dev/sda1</pre>
<h2>XFS</h2>
<p>XFS ist ein Dateisystem von Silicon Graphics Inc. (SGI) für ihr Hauseigenes Unix-System IRIX. Um ehrlich zu sein, weder der Name des Unternehmens, noch der des Unix-Systems ist mir vorher schon einmal untergekommen, aber seis drum.<br />
Immerhin ist es seit Kernel 2.6 Bestandteil von Linux.<br />
Als besonderes Feature bietet das Dateisystem ein so genannten Live-Bereich, auf welchen man besonders schnell zugreifen kann. Ob das stimmt oder nicht kann ich nicht wirklich sagen, jedoch unter Linux ist diese Funktion noch im Beta- oder sogar Alpha-Stadium.<br />
Erstellt wird das ganze mit:</p>
<pre class="brush: bash; title: ; notranslate">mkfs.xfs /dev/sda1</pre>
<p>Dabei können natürlich noch Dinge wie die Blocksize (-b), die Grösse (-i) oder ein Label (-L) festgelegt werden.</p>
<p>Das Dateisystem hat aber, so habe ich mir sagen lassen, einen ganz besonderen Nachteil. So soll XFS als ersten Block die 0 und nicht wie andere Dateisysteme die 1 verwenden, wodurch es zu Problemen mit dem Bootmanager kommt.</p>
<p>Ansonsten gibt es auch wieder die üblichen Verdächtigen zur Überprüfung wie xfs_check:</p>
<pre class="brush: bash; title: ; notranslate">xfs_check /dev/sda1</pre>
<p>Sollte dabei etwas kaputtes gefunden werden, so kann auf xfs_repair zurückgegriffen werden.</p>
<p>Will man ein XFS-Dateisystem vergrössern so verwendet man xfs_growfs. Ganz witzig dabei; es kann nur vergrössert werden, nicht aber verkleinert &#8211; und das alles nur in eingebundenem Zustand!<br />
Will man die Partition kleiner so muss man eine neue anlegen, und die Daten mit xfs_copy rüberziehen.</p>
<p>Lustig ist auch die Freeze-Funktion:</p>
<pre class="brush: bash; title: ; notranslate">xfs_freeze -f /home</pre>
<p>Dadurch kann das Dateisystem im laufenden Betrieb eingefroren werden. Dadurch kann nichts neues mehr gelesen oder geschrieben werden. Mit der Option -u (unfreeze) wird der Vorgang schliesslich wieder aufgehoben.</p>
<br /><p>Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/03/ext2-ext3/' rel='bookmark' title='ext2 / ext3'>ext2 / ext3</a> <small>Ext2 steht für Extended Filesystem 2 und läuft relativ stabil...</small></li>
</ol></p><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/03/reiserfs-und-xfs/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
	
		<series:name><![CDATA[Vorbereitung LPIC 201]]></series:name>
	</item>
		<item>
		<title>ext2 / ext3</title>
		<link>http://blog.encodingit.ch/2011/03/ext2-ext3/</link>
		<comments>http://blog.encodingit.ch/2011/03/ext2-ext3/#comments</comments>
		<pubDate>Mon, 07 Mar 2011 10:24:16 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[LPIC]]></category>
		<category><![CDATA[Dateisystem]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=1893</guid>
		<description><![CDATA[Ext2 steht für Extended Filesystem 2 und läuft relativ stabil schon seit Jahren unter Linux. Leider aber hat es auch ein paar Macken. Punkte wie Einzeladressierung oder die Tatsache, dass nach einem Crash immer die vollständige Platte auf deren Konsistenz überprüft werden muss, haben zu einer Weiterentwicklung geführt!<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Ein Urgestein unter Linux und wahrscheinlich so ziemlich jedem bekannt, ist das Filesystem ext2. Auch das ist, inklusive seinem Nachfolger ext3 Bestandteil von LPIC 201, also wollen wir das hier mal etwas genauer anschauen!</p>
<h2>Allgemein</h2>
<p>Ext2 steht für Extended Filesystem 2 und läuft relativ stabil schon seit Jahren unter Linux. Leider aber hat es auch ein paar Macken. Punkte wie Einzeladressierung oder die Tatsache, dass nach einem Crash immer die vollständige Platte auf deren Konsistenz überprüft werden muss, haben zu einer Weiterentwicklung geführt!</p>
<p>Der erste Schritt war die Einführung eines Journals. Damit versuchte man die lange Wartezeit, welche infolge einer Konsistenzprüfung anfallen konnten, zu verkürzen.<br />
Das Problem war, dass das beim Niederschreiben von Daten ins Filesystem nicht nur die eigentlichen Daten, sondern auch noch zusätzliche Blöcke wie Inodes, Verzeichniseinträge oder Superblock geschrieben werden müssen. Geht man nun im schlimmsten Fall davon aus, dass das Filesystem während dem Niederschreiben abstürzt, so wäre ein Teil der Blöcke geschrieben, andere nicht. Kurz gesagt das Filesystem wäre total durcheinander. Und damit genau das nicht passiert, folgt auf einen solchen Absturz immer eine Prüfung der Konsistenz um solche fehlerhaften oder nicht geschriebenen Blöcke zu eliminieren.<br />
Da eine solche pingelige Prüfung bei einer grösseren Platte aber relativ sehr lange dauern kann, kommt nun das Journal. Dieses überwacht jeden Schreibvorgang. Bevor auch nur ein Block an Daten geschrieben werden kann, speichert das Journal ab, wie und wo das Filesystem gleich einen Schreibvorgang starten wird. Stürzt das Filesystem nun während dem Schreiben ab, so weiss das System anhand des Journals jederzeit welche Blöcke abgearbeitet wurden und welche noch unvollständig sind. Eine Prüfung beschränkt sich somit von der gesamten Festplatte auf nur noch einen Sektor, wodurch die Wartezeit drastisch gesenkt werden kann.</p>
<h2>Erzeugen</h2>
<p>Um ein ext2- / ext3-Dateisystem zu erzeugen gibt es die Befehle mke2fs oder aber mkfs.ext2 und mkfs.ext3.</p>
<p>Für ext2 nimmt man die folgenden Befehle:</p>
<pre class="brush: bash; title: ; notranslate">mke2fs /dev/sda1
mkfs.ext2 /dev/sda1</pre>
<p>Für ein ext3 reicht es einen Parameter mehr zu setzen:</p>
<pre class="brush: bash; title: ; notranslate">mke2fs -j /dev/sda1
mkfs.ext3 /dev/sda1</pre>
<p>Will man nicht nur auf die Standardwerte zurückgreifen, so könnte man zum Beispiel mit der Option -b noch die Blockgrösse oder mit -i der Platz für Inodes festgelegt werden.</p>
<p><span id="more-1893"></span></p>
<h2>Migration</h2>
<p>Auch nachträglich kann ein ext2 Filesystem noch mit Journaling ausgestattet werden. Dazu gibt es das Programm tune2fs:</p>
<pre class="brush: bash; title: ; notranslate">tune2fs -j /dev/sda1</pre>
<p>Wird die Platte das nächste Mal eingehängt, so wird diese als ext3 erkannt. Wichtig aber, in der Datei /etc/fstab muss der Typ von sda1 von ext2 auf ext3 angepasst werden:</p>
<pre class="brush: bash; title: ; notranslate">root@master:/etc# cat fstab
# /etc/fstab: static file system information.
# &lt;file system&gt; &lt;mount point&gt;   &lt;type&gt;  &lt;options&gt;       &lt;dump&gt;  &lt;pass&gt;
proc            /proc           proc    defaults        0       0
/dev/sda1       /               ext3    errors=remount-ro 0       1
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0</pre>
<p>Und schliesslich ist auch ein Downgrade noch möglich, sprich das Journal kann nachträglich wieder gelöscht werden:</p>
<pre class="brush: bash; title: ; notranslate">tune2fs -O ^has_journal /dev/sda1</pre>
<h2>Journal</h2>
<p>Sollte das Journal nun extrem schnell, sehr gross werden, so gibt es noch die Möglichkeit, dieses auf eine eigene Partition oder Festplatte auszulagern:</p>
<pre class="brush: bash; title: ; notranslate">mke2fs -O journal_dev -b 4096 /dev/sdb1
tune2fs -J device=/dev/sdb1 /dev/sda1</pre>
<p>Oder noch unzählige Optionen zur Grösse und vielem mehr. Dazu aber mehr in den Manpages von tune2fs.</p>
<h2>Überprüfung</h2>
<p>Trotz Journal sollte man sein Dateisystem immer mal wieder komplett prüfen lassen, denn fehlerhafte Blöcke und sonstige kuriose Schreibfehler kann das Journal nicht abfangen. Das ext-Dateisystem hat dazu einen Lifecycle als Standard, dass immer nach 180 Tagen eine komplette Prüfung durchgeführt wird. Jedoch kann auch dieser Wert beliebig geändert werden, zum Beispiel auf alle 4 Monate:</p>
<pre class="brush: bash; title: ; notranslate">tune2fs -i 4m -c 0 /dev/sda1</pre>
<h2>Label</h2>
<p>Auch kann es ganz nützlich sein, ein Label zu setzen:</p>
<pre class="brush: bash; title: ; notranslate">tune2fs -L home /dev/sda2</pre>
<p>Dies hat den Vorteil, dass ich die mir keinen Dateipfad merken muss und zum Beispiel über das Label mounten kann:</p>
<pre class="brush: bash; title: ; notranslate">mount -t ext2 LABEL=home /home</pre>
<p>Oder aber ich kann eine Platte anhand des Labels anstatt der UUID in die fstab eintragen. Somit muss ich diese bei einer neuen Platte oder Partition nicht altern, sondern einfach das Label neu setzen.</p>
<h2>Grösse</h2>
<p>Ganz cool ist auch die Tatsache, ein ext-Filesystem jederzeit vergrössern oder verkleinern zu können. Dazu haben wir reseize2fs zur Verfügung:</p>
<pre class="brush: bash; title: ; notranslate">resize2fs /dev/sda1 60G</pre>
<h2>Superblock</h2>
<p>Will man nun wissen, wie es auf der eigenen Platte zur Zeit aussieht, so muss man den Superblock einsehen. Dazu kann ebenfalls auf tune2fs zurückgegriffen werden:</p>
<pre class="brush: bash; title: ; notranslate">tune2fs -l /dev/sda1</pre>
<p>Oder will man noch Informationen über einzelne Blöcke so verwendet man dumpe2fs:</p>
<pre class="brush: bash; title: ; notranslate">dumpe2fs /dev/sda1</pre>
<p>Und wer es ganz genau mag, der nimmt sogar debugfs, worauf ich hier aber auf Grund der Komplexität nicht eingehen möchte oder muss.</p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/03/ext2-ext3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<series:name><![CDATA[Vorbereitung LPIC 201]]></series:name>
	</item>
		<item>
		<title>Mehr Sicherheit durch OpenVPN</title>
		<link>http://blog.encodingit.ch/2011/03/mehr-sicherheit-durch-openvpn/</link>
		<comments>http://blog.encodingit.ch/2011/03/mehr-sicherheit-durch-openvpn/#comments</comments>
		<pubDate>Mon, 07 Mar 2011 06:54:25 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[LPIC]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=1873</guid>
		<description><![CDATA[Sicherheit wird ein immer wichtigeres Thema in der IT. Klar war es auch schon vor Jahren wichtig, jedoch bei weitem nicht so stark diskutiert, wie es das heute ist.
Das Problem von IT-Sicherheit: Auch das stärkste Glied ist nur so stark wie das Schwächste!
Es bringt mir also die beste Verschlüsselung nichts, wenn mein Gegenüber diese nicht auch verarbeiten und entschlüsseln kann. Oder ein Client kann noch so gut gesichert, gepatcht und geschützt sein, wenn das angeschlossene Netzwerk unverschlüsselt und für jeden Lesbar ist. Und damit möchte ich auch gleich übergehen zum Thema VPN. 
Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/03/dynamic-host-configuration-protocol/' rel='bookmark' title='Dynamic Host Configuration Protocol'>Dynamic Host Configuration Protocol</a> <small>Ein anderer Bestandteil von LPIC 201 ist DHCP. Doch bevor...</small></li>
</ol><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Sicherheit wird ein immer wichtigeres Thema in der IT. Klar war es auch schon vor Jahren wichtig, jedoch bei weitem nicht so stark diskutiert, wie es das heute ist.<br />
Das Problem von IT-Sicherheit: Auch das stärkste Glied ist nur so stark wie das Schwächste!<br />
Es bringt mir also die beste Verschlüsselung nichts, wenn mein Gegenüber diese nicht auch verarbeiten und entschlüsseln kann. Oder ein Client kann noch so gut gesichert, gepatcht und geschützt sein, wenn das angeschlossene Netzwerk unverschlüsselt und für jeden Lesbar ist. Und damit möchte ich auch gleich übergehen zum Thema VPN. </p>
<p>Mittels VPN lässt sich eine verschlüsselte Verbindung zwischen zwei Parteien aufbauen. Sehr zu empfehlen in öffentlichen WLANs und anderen frei zugänglichen Netzwerken.<br />
Zur Verfügung stehen Site-to-Site, Site-to-End und End-to-End:</p>
<p><img src="http://blog.encodingit.ch/wp-content/uploads/2011/03/vpn.jpeg" alt="" title="vpn" width="315" height="272" class="alignnone size-full wp-image-1878" /></p>
<p>Die Installation von OpenVPN ist eigentlich denkbar einfach. Ich verwende dazu einen Debian- und einen Fedora-Client.</p>
<p><span id="more-1873"></span></p>
<p>Beginnen wir mit Debian bei der Installation:</p>
<pre class="brush: bash; title: ; notranslate">apt-get install openvpn</pre>
<p>Nun legen wir einen neuen Key an, mit dem sich beide Seiten authentifizieren können:</p>
<pre class="brush: bash; title: ; notranslate">openvpn --genkey --secret /etc/openvpn/static.key</pre>
<p>Diesen muss natürlich auch noch auf dem Client übertragen werden:</p>
<pre class="brush: bash; title: ; notranslate">scp static.key client:/etc/openvpn/</pre>
<p>Nun legen wir eine Konfigurationsdatei an für Debian, welches die Rolle des Servers übernehmen wird:</p>
<pre class="brush: bash; title: ; notranslate">root@server:/etc/openvpn# cat tun0.conf
dev tun0
ifconfig 10.9.8.1 10.9.8.2
secret static.key</pre>
<p>Auch auf dem Client muss eine Konfigration eingerichtet werden:</p>
<pre class="brush: bash; title: ; notranslate">root@client openvpn# cat tun0.conf
remote 10.128.101.26
dev tun0
ifconfig 10.9.8.2 10.9.8.1
secret static.key</pre>
<p>Wenn man nun einen Blick in ifconfig wirft, so sieht man, dass ein neues Interface dazugekommen ist. Auf dem Server sieht das dann so aus:</p>
<pre class="brush: bash; title: ; notranslate">root@server:/etc/openvpn# ifconfig tun0
tun0      Link encap:UNSPEC  Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet Adresse:10.9.8.1  P-z-P:10.9.8.2  Maske:255.255.255.255
          UP PUNKTZUPUNKT RUNNING NOARP MULTICAST  MTU:1500  Metrik:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:100
          RX bytes:168 (168.0 B)  TX bytes:168 (168.0 B)</pre>
<p>Auf dem Client wiederum so:</p>
<pre class="brush: bash; title: ; notranslate">root@client openvpn# ifconfig tun0
tun0      Link encap:UNSPEC  Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet Adresse:10.9.8.2  P-z-P:10.9.8.1  Maske:255.255.255.255
          UP PUNKTZUPUNKT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:100
          RX bytes:168 (168.0 b)  TX bytes:168 (168.0 b)</pre>
<p>Will man nun prüfen, dass alles läuft, so kann man die jeweilige Gegenseite pingen. Sind die Tunnel korrekt aufgebaut, so geht das ohne Probleme.</p>
<br /><p>Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/03/dynamic-host-configuration-protocol/' rel='bookmark' title='Dynamic Host Configuration Protocol'>Dynamic Host Configuration Protocol</a> <small>Ein anderer Bestandteil von LPIC 201 ist DHCP. Doch bevor...</small></li>
</ol></p><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/03/mehr-sicherheit-durch-openvpn/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
	
		<series:name><![CDATA[Vorbereitung LPIC 201]]></series:name>
	</item>
		<item>
		<title>Dynamic Host Configuration Protocol</title>
		<link>http://blog.encodingit.ch/2011/03/dynamic-host-configuration-protocol/</link>
		<comments>http://blog.encodingit.ch/2011/03/dynamic-host-configuration-protocol/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 12:14:49 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[LPIC]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[DHCP]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[LPIC 201]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=1847</guid>
		<description><![CDATA[Ein anderer Bestandteil von LPIC 201 ist DHCP.
Doch bevor man sich auf die Installation eines DHCP-Servers stürzt, ist es ganz gut, mal zu wissen, wie das System dahinter funktioniert. Ich habe versucht alles ein bisschen grafisch darzustellen.
Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/03/domain-name-system-mit-bind9/' rel='bookmark' title='Domain Name System mit Bind9'>Domain Name System mit Bind9</a> <small>Also will ich mich mal ans repetieren machen und beginne...</small></li>
</ol><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Ein anderer Bestandteil von LPIC 201 ist DHCP.<br />
Doch bevor man sich auf die Installation eines DHCP-Servers stürzt, ist es ganz gut, mal zu wissen, wie das System dahinter funktioniert. Ich habe versucht alles ein bisschen grafisch darzustellen.</p>
<h2>IP beziehen</h2>
<p>Alles beginnt damit, dass ein Client gerne eine IP-Adresse hätte. Da er aber noch keine DHCP-Server im Netz kennt, schickt der DHCP-Client (auf Client 1) ein DHCPDISCOVER-Paket an den Broadcast. Dieser leitet das an alle Geräte im Netzsegment und über ein Relay auch an andere Netzsegmente weiter. Ist ein DHCP-Server innerhalb des Netzwerkes vorhanden, so wird dieser das Paket aufnehmen, alle anderen Typen werden das verwerfen.</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/03/dhcpdiscover.jpeg"  rel="lightbox[1847]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/03/dhcpdiscover-300x215.jpg" alt="" title="dhcpdiscover" width="300" height="215" class="alignnone size-medium wp-image-1848" /></a></p>
<p>Die DHCP-Server im Netzwerk wissen nun, dass ein Client eine IP sucht und prüfen ob in der lokalen Datenbank noch freie IP-Adressen verfügbar sind. Falls ja, schicken sie ein DHCPOFFER-Paket an den Broadcast mit der für den Client ausgewählten IP-Adresse. Über den Broadcast gelangt das ganze dann wieder zum Client. </p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/03/dhcpoffer.jpeg"  rel="lightbox[1847]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/03/dhcpoffer-300x218.jpg" alt="" title="dhcpoffer" width="300" height="218" class="alignnone size-medium wp-image-1849" /></a></p>
<p>Es kann gut sein, dass ein Angebote von mehreren Servern empfängt. Falls dann nichts anderes eingestellt wurde, wird nach dem &#8220;First Come First Served&#8221;-Prinzip abgerechnet.<br />
Hat sich der Client also für einen Server entschieden, so wird die Bestätigung der IP-Adresse und die ganze andere Konfiguration mit einem DHCPREQUEST-Paket angefragt. Dies geht wieder an den Broadcast, damit die anderen DHCP-Server auch wissen, das sich der Client nicht für sie entschieden hat.</p>
<p><span id="more-1847"></span></p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/03/dhcprequest.jpeg"  rel="lightbox[1847]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/03/dhcprequest-300x221.jpg" alt="" title="dhcprequest" width="300" height="221" class="alignnone size-medium wp-image-1850" /></a></p>
<p>Ist die IP-Adresse auf dem DHCP-Server immer noch verfügbar, so nimmt der Server die IP aus der Liste der Verfügbaren Adressen raus und bestätigt alles mit einem DHCPACK-Paket. Sobald der Client das empfängt, wird die IP-Adresse der Schnittstelle zugewiesen und der Vorgang ist abgeschlossen.</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2011/03/dhcpack.jpeg"  rel="lightbox[1847]"><img src="http://blog.encodingit.ch/wp-content/uploads/2011/03/dhcpack-300x221.jpg" alt="" title="dhcpack" width="300" height="221" class="alignnone size-medium wp-image-1851" /></a></p>
<h2>Bestätigen</h2>
<p>Wenn nun ein Client rebootet, so muss nicht nochmal der gesamte Prozess von vorne durchlaufen werden. Der Client prüft nach einem Reboot die zuletzt gespeicherten Parameter auf deren Gültigkeit (TTL) und lässt sich alles über ein DHCPREQUEST vom DHCP-Server bestätigen, welcher dann alles wieder mit einem DHCPACK bestätigt. Sollte irgendetwas nicht mehr in Ordnung sein, so lehnt der DHCP-Server die Anfrage mit einem DHCPNACK ab und der Client muss eine neue IP-Adresse beziehen.</p>
<p>Sollte ein Client nun aber so lange laufen, dass die Gültigkeit der Zuweisung (leasing) ablaufen würde, so kann der Client eine Verlängerung beantragen. Im Gegensatz zur Bestätigung nach einem Reboot wird dieser DHCPREQUEST aber direkt an den DHCP-Server adressiert und nicht an den Broadcast. Danach folgt die bereits oben beschriebene Bestätigung oder Ablehnung.</p>
<h2>DHCP-Server aufsetzen</h2>
<p>So nachdem wir nun wissen, wie das System hinter DHCP funktioniert, können wir uns an die Installation eines eigenen DHCP-Server machen:</p>
<p>apt-get install dhcp3-server</p>
<p>Konfiguriert wird alles über die Datei /etc/dhcp/dhcpd.conf.<br />
Eine ziemlich rudimentäre Konfiguration könnte so aussehen:</p>
<pre class="brush: bash; title: ; notranslate">root@master:/etc/dhcp# cat dhcpd.conf
ddns-update-style none;
option domain-name &quot;encodingit.ch&quot;;
option domain-name-servers master.encodingit.ch;

default-lease-time 600;
max-lease-time 7200;

authoritative;

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.50 192.168.1.80;
  option domain-name-servers master.encodingit.ch;
  option routers 192.168.1.1;
  option broadcast-address 192.168.1.255;
  default-lease-time 700;
  max-lease-time 7800;
}

host master {
  hardware ethernet 08:00:07:26:c0:a5;
  fixed-address 192.168.1.49;
}</pre>
<p>Dabei wird ein Range von 50-80 festgelegt und zusätzlich ein Host &#8220;master&#8221; definiert, welcher immer die selbe IP-Adresse erhalten wird.<br />
Zu Beginn in der Datei kann man Standardkonfigurationen festlegen, welche solange gelten, wie diese nicht innerhalb eines Subnets überschrieben werden, wie in meinem Beispiel ja der Fall.</p>
<p>Nun muss man noch alles starten:</p>
<pre class="brush: bash; title: ; notranslate">dhcpd eth0</pre>
<h2>Dynamische IP für Client</h2>
<p>Nachdem unser Server nun rennt, muss noch der Client auf DHCP umgestellt werden.<br />
Dafür ist die Datei /etc/network/interfaces verantwortlich. Diese wird mit folgendem Inhalt ersetzt:</p>
<pre class="brush: bash; highlight: [4]; title: ; notranslate">auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp
</pre>
<p>Wichtig hier ist die letzte Zeile mit dem Vermerk &#8220;dhcp&#8221;. Natürlich soll nicht bei jedem System das Interface eth0 eine dynamische IP beziehen, also zuerst überlegen und nicht einfach abschreiben <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Damit auch alles aktiv wird, noch rasch den Netzwerkservice neu starten:</p>
<pre class="brush: bash; title: ; notranslate">/etc/init.d/networking restart</pre>
<p>Und nun sollte das Interface eine IP-Adresse besitzen:</p>
<pre class="brush: bash; highlight: [2]; title: ; notranslate">root@master:/etc/dhcp# ifconfig eth0
eth0      Link encap:Ethernet  Hardware Adresse 00:25:64:c9:b1:6a
          inet Adresse:10.128.101.26  Bcast:10.128.101.255  Maske:255.255.255.0
          inet6-Adresse: fe80::225:64ff:fec9:b16a/64 Gültigkeitsbereich:Verbindung</pre>
<h2>DHCP-Relay</h2>
<p>Das Relay dient dazu, um auch die DHCP in einem anderen Netzsegment zu erreichen.<br />
Installiert ist ein Relay relativ einfach:</p>
<pre class="brush: bash; title: ; notranslate">apt-get install isc-dhcp-relay</pre>
<p>Während der Installation gibt man die IP des DHCPs an, zu welchem man weiterleiten möchte und schlussendlich noch das Interface, auf welche auf DHCP-Traffic gehorcht wird. Zwei mal Bestätigen und fertig!</p>
<h2>Probleme</h2>
<p>Bei Problemen kann die Syslog-Datei mehr Informationen liefern:</p>
<pre class="brush: bash; title: ; notranslate">tail -f /var/log/syslog</pre>
<p>Oder man kontrolliert den Traffic von Hand:</p>
<pre class="brush: bash; title: ; notranslate">dhcpdump</pre>
<p>Und fertig ist die dynamische IP-Vergabe im eigenen Netzwerk.</p>
<br /><p>Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/03/domain-name-system-mit-bind9/' rel='bookmark' title='Domain Name System mit Bind9'>Domain Name System mit Bind9</a> <small>Also will ich mich mal ans repetieren machen und beginne...</small></li>
</ol></p><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/03/dynamic-host-configuration-protocol/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<series:name><![CDATA[Vorbereitung LPIC 201]]></series:name>
	</item>
		<item>
		<title>Domain Name System mit Bind9</title>
		<link>http://blog.encodingit.ch/2011/03/domain-name-system-mit-bind9/</link>
		<comments>http://blog.encodingit.ch/2011/03/domain-name-system-mit-bind9/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 08:04:45 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[LPIC]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[LPIC 201]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=1723</guid>
		<description><![CDATA[Also will ich mich mal ans repetieren machen und beginne mit DNS, genauer Bind9 einrichten und konfigurieren. Später folgen dann nach und nach noch all die anderen Themen, wodurch eine Artikelserie daraus werden wird.

Doch zuerst zu DNS! Obwohl eigentlich sollte man es eher als Namensauflösung bezeichnen, denn es werden noch Dienste wie NIS oder Dateien wie /etc/hosts angesprochen.<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Zur Zeit bereite ich mich wieder auf eine neue LPI-Prüfung vor, dieses Jahr steht Nummer 201 an. Darin geht es um <a target="_blank" href="http://www.lpi.org/eng/certification/the_lpic_program/lpic_2/exam_201_detailed_objectives" >Themen</a> wie Linux Kernel kompilieren, patchen, Source kompilieren, Kernelmodule, Startup-Scripts, Grubshell, Filesystem, RAID und LVM oder Netzwerkkonfiguration und DNS.<br />
Eigentlich alles gar nicht so schwer, wäre da nur nicht die Tatsache, dass keine Unterlagen verwendet werden dürfen!</p>
<p>Also will ich mich mal ans repetieren machen und beginne mit DNS, genauer Bind9 einrichten und konfigurieren. Später folgen dann nach und nach noch all die anderen Themen, wodurch eine Artikelserie daraus werden wird.</p>
<p>Doch zuerst zu DNS! Obwohl eigentlich sollte man es eher als Namensauflösung bezeichnen, denn es werden noch Dienste wie NIS oder Dateien wie /etc/hosts angesprochen.</p>
<p>Aber alles von vorne! Also die einfachste Möglichkeit zum eine IP-Adresse auflösen ist über die Hosts-Datei unter /etc/hosts. Diese könnte in etwa so aussehen:</p>
<pre class="brush: bash; title: ; notranslate">
root@master:/etc# cat /etc/hosts
127.0.0.1	localhost
127.0.1.1	master.encodingit.ch	master

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
</pre>
<p>Jedoch wenn man mehr als nur ein, zwei Computer hat, so ist es relativ mühsam auf jedem diese Datei von Hand zu pflegen. Auch Sun bemerkte dies und entwickelte NIS (<a href="http://blog.encodingit.ch/2010/05/der-ur-verzeichnisdienst-nis-yp/" >darüber habe ich schon mal geschrieben</a>).<br />
Doch als auch das nicht mehr reichte, kam man zu DNS.<br />
Einfach gesagt ist es eine Hosts-Datei, welche an einem zentralen Ort verwaltet werden kann und von jeder Maschine bei Bedarf geladen wird. Komplizierter gesagt: dazu kommen wir noch <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Die wichtigsten Dateien für die Namensauflösung auf einem Client wären dabei:</p>
<blockquote><p>/etc/hosts > verantwortlich für die lokale Namensauflösung.<br />
/etc/resolv.conf > gibt an, welche Nameserver angefragt und welche Domains durchsucht werden sollen.<br />
/etc/nsswitch.conf > definiert die Reihenfolge ob zuerst der DNS, NIS oder die Hosts-Datei bei der Auflösung berücksichtigt werden soll.</p></blockquote>
<p>Dies war alles auf dem Client &#8211; nun aber zu unserem DNS Server. Zuerst mal installieren:</p>
<pre class="brush: bash; title: ; notranslate">
apt-get install bind9
</pre>
<p><span id="more-1723"></span></p>
<p>Gestartet wird der Dienst entweder über /usr/sbin/named oder über /etc/init.d/bind9 (unter Debian). Doch nach der Installation läuft er sowieso standardmässig.</p>
<p>Die Konfiguration ist ganz amüsant! LPIC will sich ja nicht auf eine Distribution festlegen, deshalb gibt es bei einem typischen Beispiel wie bind immer wieder Unterschiede.<br />
Unter Debian (unter welchem ich die Installationen gerade durchführe) liegt alles wie gewohnt unter /etc/bind. RedHat oder Suse packen die Konfigurationsdateien aber in /etc/named.conf und die Zonendateien in /var/named. Viel Spass beim Suchen <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Unter Debian läuft die Konfiguration von Bind und der Zonen in zwei einzelnen Files ab:</p>
<blockquote><p>named.conf.options > Darin werden alle Einstellungen definiert, wie sich der DNS-Server zu verhalten hat<br />
named.conf.local > Hier werden all die Einstellungen zu den Zonen definiert</p></blockquote>
<p>Nun wollen wir aber auch unser erstes Zonen-File anlegen.<br />
Zuerst der Forward Lookup von Domain -> IP. Dazu legen wir eine Datei in das Verzeichnis /etc/bind mit dem Namen unserer Domain:</p>
<pre class="brush: bash; title: ; notranslate">touch /etc/bind/encodingit.ch</pre>
<p>Diese befüllen wir nun mit dem DNS-Syntax, welcher sehr akribisch eingehalten werden muss:</p>
<pre class="brush: bash; title: ; notranslate">$TTL 2d
@ IN SOA master.encodingit.ch. root.encodingit.ch. (
               2011030401       ; serial
               3h               ; refresh
               1h               ; retry
               1w               ; expiry
               1d )             ; minimum

@              IN NS   master.encodingit.ch.
master          IN A    192.168.1.20</pre>
<p>Die Datei ist bei jeder Zone immer gleich aufgebaut. Auf der ersten Zeile wird die Time-To-Life festgelegt, Dann folgen Angaben über den DNS und die Email-Adresse des Admins (mit . anstatt @). Weiter geht es mit einer eindeutigen Nummer, Standardangaben und dann endlich die eigentlichen Lookups.<br />
Zuerst wird ein NS-Record für die Domain angelegt, danach wird der Name über einen A-Record einer IP zugewiesen.</p>
<p>Nun müssen wir noch den Reverse Lookup einrichten. Dazu machen wir wieder eine neue Datei:</p>
<pre class="brush: bash; title: ; notranslate">touch /etc/bind/1.168.192.in-addr.arpa</pre>
<p>Und befüllen auch diese:</p>
<pre class="brush: bash; title: ; notranslate">$TTL 2d
@ IN SOA master.encodingit.ch. root.encodingit.ch. (
               2011030401       ; serial
               3h               ; refresh
               1h               ; retry
               1w               ; expiry
               1d )             ; minimum

@     IN NS master.encodingit.ch.
20	   IN PTR		master.encodingit.ch.</pre>
<p>Nachdem die Zonen nun angelegt sind, muss man den DNS auch noch dazu zwingen, diese zu kennen. Dazu muss die named.conf.local mit einem Eintrag wie dem folgenden ergänzt werden:</p>
<pre class="brush: bash; title: ; notranslate">zone &quot;encodingit.ch&quot; {
type master;
file &quot;/etc/bind/encodingit.ch&quot;;
};

zone &quot;1.168.192.in-addr.arpa&quot; {
type master;
file &quot;/etc/bind/1.168.192.in-addr.arpa&quot;;
};</pre>
<p>Nun muss noch bind neu gestartet und dann der Client auf den neuen DNS gewechselt werden:</p>
<pre class="brush: bash; title: ; notranslate">/etc/init.d/bind9 restart
echo &quot;domain encodingit.ch&quot; &gt; /etc/resolv.conf
echo &quot;nameserver 127.0.0.1&quot; &gt;&gt; /etc/resolv.conf</pre>
<p>Und schon ist der DNS bereit!</p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/03/domain-name-system-mit-bind9/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<series:name><![CDATA[Vorbereitung LPIC 201]]></series:name>
	</item>
	</channel>
</rss>

