{"id":313,"date":"2020-10-06T15:00:00","date_gmt":"2020-10-06T13:00:00","guid":{"rendered":"https:\/\/jet0jlh.de\/?p=313"},"modified":"2020-10-06T15:02:05","modified_gmt":"2020-10-06T13:02:05","slug":"nextcloud-bauen-mit-jet-10","status":"publish","type":"post","link":"https:\/\/jet0jlh.de\/?p=313","title":{"rendered":"Nextcloud bauen mit Jet #10"},"content":{"rendered":"\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Mit dem RAID zur Hardwaresicherheit | Nextcloud bauen mit Jet #10\" width=\"625\" height=\"352\" src=\"https:\/\/www.youtube.com\/embed\/AdqKp13g9Vs?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Um nun unsere Cloud auch noch gegen Hardwareausf\u00e4lle zu sch\u00fctzen ist es Sinnvoll wie bei unserer NAS Serie ein RAID zu verwenden. Sprich: Wir halten die Daten auf mehreren Datentr\u00e4ger vor. Die Vorraussetzung ist das wir mindestens \u00fcber zwei gleich gro\u00dfe und gleich schnelle Datentr\u00e4ger verf\u00fcgen.<\/p>\n\n\n\n<p>Dieser Artikel geht davon aus, dass die Cloud bereits mit einem Datentr\u00e4ger (Wie in Teil 2 gezeigt) eingerichtet wurde. Sollte der dazukommende Datentr\u00e4ger nicht gleich gro\u00df sein, so muss er zumindest kleiner sein, als der, der bereits im Einsatz ist. Sollte das nicht der Fall sein, so m\u00fcssen alle Daten zuerst auf den neuen (gr\u00f6\u00dferen) Datentr\u00e4ger kopiert werden und das RAID wird dann mit dem kleineren begonnen. (<em>Hintergrund ist der, dass das kleinste Ger\u00e4t in einem RAID die Gr\u00f6\u00dfe vorgibt. Sollten aber zu beginn des RAIDs  nicht alle Datentr\u00e4ger verf\u00fcgbar sein (So wie bei uns weil wir noch Daten vorhalten m\u00fcssen) so muss der hinzugef\u00fcgte Datentr\u00e4ger mindestens gleichgro\u00df oder gr\u00f6\u00dfer sein!<\/em>) <\/p>\n\n\n\n<p>Wir beginnen indem wir uns mit <code>sudo -s<\/code> Adminrechte veschaffen und die Cloud mit <code>systemctl stop apache2<\/code> au\u00dfer Betrieb nehmen.<br>Nun bringen wir erst mal den Pi auf den neusten Stand und installieren das Programm f\u00fcr unser Software RAID<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apt update\napt upgrade\napt install mdadm<\/pre>\n\n\n\n<p>Nun k\u00f6nnen wir unser Level 1 RAID erstellen. Ich gehe hier davon aus, dass \/dev\/sda euer bisheriger Datentr\u00e4ger ist und \/dev\/sdb der neu hinzugekommene. Da momentan daher auf \/dev\/sda unsere Cloud Daten sind, werden wir diesen Datentr\u00e4ger erst mal nicht ins RAID einbinden und dieses nur mit \/dev\/sdb wie folgt erstellen:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mdadm --create \/dev\/md0 --level=1 --raid-devices=2 \/dev\/sdb missing<\/pre>\n\n\n\n<p>Jetzt sollten wir wenn wir <code>lsblk<\/code> eingeben einen neuen Datentr\u00e4ger \/dev\/md0 entdecken welcher sich unterhalb von \/dev\/sdb befindet.<br>Wenn das geklappt hat werden wir nun das RAID mit einer Partitionstabelle versehen und eine neue Partition erzeugen.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">fdisk \/dev\/md0\n#fdisk l\u00e4sst sich \u00fcber Buchstaben steuern. Daher diese wie unten angeben und eventuell auftretende Meldungen mit &lt;return> best\u00e4tigen\ng\nn\nw<\/pre>\n\n\n\n<p>Nun sollte wenn wir lsblk eingeben sp\u00e4testens jetzt auch eine Partition md0p1 auftauchen. Dieser verpassen wir nun ein Filesystem, erstellen einen Ordner wo wir das RAID Mounten k\u00f6nnen und tun dies auch gleich.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mkfs.ext4 \/dev\/md0p1\nmkdir \/media\/temp\nmount \/dev\/md0p1 \/media\/temp<\/pre>\n\n\n\n<p>Nun k\u00f6nnen wir beginnen und unsere Clouddaten vom ersten Datentr\u00e4ger in das RAID zu kopieren. (Pfade gehen vom Tutorial aus und m\u00fcssen ggf. angepasst werden)<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cp -R \/media\/festplatte\/* \/media\/temp<\/pre>\n\n\n\n<p>Nun sollten all unsere Clouddaten im RAID vorhanden sein. Um zu testen ob wir alles richtig gemacht haben, h\u00e4ngen wir nun den ersten Datentr\u00e4ger und das RAID aus und h\u00e4ngen das RAID an der richtigen Stelle ein und setzen die Zugriffsrechte.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">umount \/media\/temp\numount \/media\/festplatte\nmount \/dev\/md0p1 \/media\/festplatte\nchown -R www-data:www-data \/media\/festplatte<\/pre>\n\n\n\n<p>In dem Zuge sollten wir nun noch unseren Startvorgang anpassen und Raspbian mitteilen, dass es zuk\u00fcnftig nicht mehr die Partition sda1 f\u00fcr die Cloud mounten soll, sondern md0p1. Daher bearbeiten wir die <code>\/etc\/fstab<\/code> Datei und passen den vorhandenen Eintrag wie folgt an:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/dev\/sda1\t\/media\/festplatte\text4\tdefaults\t0\t0\nzu\n\/dev\/md0p1\t\/media\/festplatte\text4\tdefaults\t0\t0<\/pre>\n\n\n\n<p>Nun k\u00f6nnen wir testen und die Cloud mit systemctl start apache2 wieder starten. Sollte der Zugriff auf die Cloud klappen, so steht dem Finale nichts mehr entgegen.<br>Wir k\u00f6nnen daher nun endlich auch unseren ersten Datentr\u00e4ger dem RAID hinzuf\u00fcgen.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mdadm --manage \/dev\/md0 --add \/dev\/sda<\/pre>\n\n\n\n<p>Nun sollte der Datentr\u00e4ger zum RAID geh\u00f6ren. Dies l\u00e4sst sich \u00fcber <code>lsblk <\/code>einsehen. Allerdings werden beide Datentr\u00e4ger erst noch synchronisiert. Noch genauer sehen wir es \u00fcber <code>mdadm --detail \/dev\/md0<\/code>.<br>Hier sehen wir auch den Fortschritt des synchronisierens der beiden Datentr\u00e4ger. Der Pi sollte nun solange durchlaufen bis beide Datentr\u00e4ger als synchron angezeigt werden.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Um nun unsere Cloud auch noch gegen Hardwareausf\u00e4lle zu sch\u00fctzen ist es Sinnvoll wie bei unserer NAS Serie ein RAID zu verwenden. Sprich: Wir halten die Daten auf mehreren Datentr\u00e4ger vor. Die Vorraussetzung ist das wir mindestens \u00fcber zwei gleich gro\u00dfe und gleich schnelle Datentr\u00e4ger verf\u00fcgen. Dieser Artikel geht davon&#8230; <a href=\"https:\/\/jet0jlh.de\/?p=313\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,5],"tags":[16,17,28,4],"class_list":["post-313","post","type-post","status-publish","format-standard","hentry","category-nextcloud","category-tutorials","tag-cloud","tag-nextcloud","tag-raid","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/jet0jlh.de\/index.php?rest_route=\/wp\/v2\/posts\/313","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jet0jlh.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jet0jlh.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jet0jlh.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jet0jlh.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=313"}],"version-history":[{"count":5,"href":"https:\/\/jet0jlh.de\/index.php?rest_route=\/wp\/v2\/posts\/313\/revisions"}],"predecessor-version":[{"id":319,"href":"https:\/\/jet0jlh.de\/index.php?rest_route=\/wp\/v2\/posts\/313\/revisions\/319"}],"wp:attachment":[{"href":"https:\/\/jet0jlh.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=313"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jet0jlh.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=313"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jet0jlh.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}