{"id":167,"date":"2013-01-02T20:50:25","date_gmt":"2013-01-02T19:50:25","guid":{"rendered":"http:\/\/blog.techmedia.pl\/?p=167"},"modified":"2015-02-19T23:39:38","modified_gmt":"2015-02-19T22:39:38","slug":"raid-1-w-ubuntu-12-04-stan-i-naprawa","status":"publish","type":"post","link":"https:\/\/www.techmedia.pl\/blog\/raid-1-w-ubuntu-12-04-stan-i-naprawa\/","title":{"rendered":"Raid 1 w Ubuntu 12.04 &#8211; stan i naprawa"},"content":{"rendered":"<p>Je\u017celi korzystamy z softwarowego raid poziomu 1 w Ubuntu, powinni\u015bmy co jakich czas sprawdza\u0107 jaki jest jego stan. Mo\u017cemy to uczyni\u0107 poni\u017cszym poleceniem:<\/p>\n<pre>root@server:# <strong>cat \/proc\/mdstat<\/strong><\/pre>\n<p>po jego wydaniu z konsoli powinni\u015bmy otrzyma\u0107 co\u015b podobnego:<\/p>\n<pre>Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]\r\nmd0 : active raid1 sda1[0] sdb1[1]\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 3905524 blocks super 1.2 [2\/2] [UU]\r\n\r\nmd1 : active raid1 sda2[0] sdb2[1]\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 1943747448 blocks super 1.2 [2\/2] [UU]\r\n\r\nunused devices: &lt;none&gt;<\/pre>\n<p>powy\u017csze oznacza, \u017ce obie macierze md0 i md1 s\u0105 aktywne i oba dyski w ka\u017cdej macierzy s\u0105 zsynchronizowane:<!--more--><\/p>\n<p>Szczeg\u00f3\u0142y dla ka\u017cdej macierzy mo\u017cemy uzyska\u0107 wydaj\u0105c z konsoli poni\u017csze polecenie:<\/p>\n<pre>root@server:# <strong>mdadm --detail \/dev\/md0<\/strong><\/pre>\n<p>w jego wyniku otrzymamy co\u015b zbli\u017conego do poni\u017cszego:<\/p>\n<pre>\/dev\/md0:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Version : 1.2\r\n\u00a0 Creation Time : Wed May 25 23:50:25 2012\r\n\u00a0\u00a0\u00a0\u00a0 Raid Level : raid1\r\n\u00a0\u00a0\u00a0\u00a0 Array Size : 3904500 (3.72 GiB 4.00 GB)\r\n\u00a0 Used Dev Size : 3904500 (3.72 GiB 4.00 GB)\r\n\u00a0\u00a0 Raid Devices : 2\r\n\u00a0 Total Devices : 2\r\n\u00a0\u00a0\u00a0 Persistence : Superblock is persistent\r\n\r\n\u00a0\u00a0\u00a0 Update Time : Wed Jan\u00a0 2 20:26:37 2013\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 State : clean\r\n\u00a0Active Devices : 2\r\nWorking Devices : 2\r\n\u00a0Failed Devices : 0\r\n\u00a0 Spare Devices : 0\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Name : server:1\u00a0 (local to host server)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 UUID : f068f485:77ceddce:238a697e:2b43391d\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Events : 178\r\n\r\n\u00a0\u00a0\u00a0 Number\u00a0\u00a0 Major\u00a0\u00a0 Minor\u00a0\u00a0 RaidDevice State\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 18\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0 active sync\u00a0\u00a0 \/dev\/sda1\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1\u00a0\u00a0\u00a0\u00a0\u00a0 active sync\u00a0\u00a0 \/dev\/sdb1<\/pre>\n<p>lub dla macierzy md1:<\/p>\n<pre>root@server:# <strong>mdadm --detail \/dev\/md1<\/strong><\/pre>\n<p>wynik b\u0119dzie podobny jak wcze\u015bniej.<\/p>\n<p>Je\u015bli po wydaniu polecenia <em><strong>cat \/proc\/mdstat<\/strong><\/em> otrzymany komunikat jest podobny do poni\u017cszego:<\/p>\n<pre>Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]\r\nmd0 : active raid1 sda1[0]\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 3904500 blocks super 1.2 [2\/1] [U_]\r\n\r\nmd1 : active raid1 sda2[0]\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 728665976 blocks super 1.2 [2\/1] [U_]\r\n\r\nunused devices: &lt;none&gt;<\/pre>\n<p>oznacza to, \u017ce obie macierze s\u0105 uszkodzone i musimy je naprawi\u0107. Przyczyn\u0105 prawdopodobnie jest uszkodzenie jednego z dysk\u00f3w lub w najlepszym wypadku brak synchronizacji w macierzach &#8211; w tym przypadku wykonujemy tylko punkt drugi.<\/p>\n<p>W pierwszej kolejno\u015bci wymieniamy uszkodzony dysk na sprawny i tworzymy na nim dok\u0142adnie takie partycje jakie s\u0105 na dysku sprawnym.Mo\u017cna to zrobi\u0107 programem fdisk:<\/p>\n<pre>root@server:# <strong>fdisk \/dev\/sdb<\/strong><\/pre>\n<p>W drugim kroku, po utworzeniu partycji dodajemy do macierzy kolejno, ka\u017cd\u0105 nowo utworzon\u0105 partycj\u0119:<\/p>\n<pre>root@server: mdadm \/dev\/md1 -a \/dev\/sdb2<\/pre>\n<pre>root@server: mdadm \/dev\/md0 -a \/dev\/sdb1<\/pre>\n<p>Po wydaniu powy\u017cszych polece\u0144 macierz b\u0119dzie si\u0119 odbudowywa\u0142a. Status mo\u017cemy w ka\u017cdej chwili sprawdzi\u0107 wydaj\u0105c poni\u017csze polecenie:<\/p>\n<pre>root@server:# cat \/proc\/mdstat<\/pre>\n<p>po jego wydaniu powinni\u015bmy otrzyma\u0107 wynik podobny do poni\u017cszego:<\/p>\n<pre>Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]\r\nmd1 : active raid1 sda2[0] sdb2[1]\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 728665976 blocks super 1.2 [2\/1] [U_]\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 [===========&gt;.........]\u00a0 recovery = 58.8% (429044480\/728665976) finish=66.8min speed=74722K\/sec\r\n\r\nmd0 : active raid1 sda1[0] sdb1[1]\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 3904500 blocks super 1.2 [2\/1] [U_]\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 resync=DELAYED\r\n\r\nunused devices: &lt;none&gt;<\/pre>\n<p>z powy\u017cszego wida\u0107, \u017ce macierz md1 jest odbudowywana, stan zaawansowania to 58,8%, a pozosta\u0142y czas do zako\u0144czenia procesu to 66,8min. Druga macierz md0 czeka w kolejce do synchronizacji, kt\u00f3ra si\u0119 rozpocznie po zako\u0144czeniu pierwszego procesu.<\/p>\n<p>Je\u017celi chce \u015bledzi\u0107 proces odbudowy macierzy mo\u017cemy u\u017cy\u0107 poni\u017cszego polecenia wydanego z konsoli:<\/p>\n<pre>root@server:# <strong>watch cat \/proc\/mdstat<\/strong><\/pre>\n<p>Je\u017celi musimy uruchomi\u0107 serwer, a w\u0142a\u015bnie trwa sprawdzanie macierzy wystarczy wyda\u0107 poni\u017csze polecenie \u017ceby zatrzyma\u0107 test (poni\u017cej dla raid md0).<\/p>\n<pre>root@server:# echo idle &gt; \/sys\/block\/md0\/md\/sync_action<\/pre>\n<p>Na zako\u0144czenie warto jeszcze zadba\u0107 o uruchomienie systemu w przypadku uszkodzenia podstawowego dysku, z kt\u00f3rego startuje system. W tym celu wystarczy zainstalowa\u0107 GRUB&#8217;a na drugim, nowo dodanym dysku:<\/p>\n<pre>root@server:# <strong>grub-install \/dev\/sdb<\/strong><\/pre>\n<p>oraz w pliku <code><em><strong>\/etc\/initramfs-tools\/conf.d\/mdadm<\/strong><\/em> ustawi\u0107:<br \/> <\/code><\/p>\n<pre><code>BOOT_DEGRADED=true<\/code><\/pre>\n<p>i zaktualizowa\u0107 initramfs:<\/p>\n<pre><code>update-initramfs -u<\/code><\/pre>\n<p>Dodatkowo mo\u017cemy jeszcze wykona\u0107\u00a0 kopi\u0119 MBR pierwszego i drugiego dysku poleceniem:<\/p>\n<pre>root@server:# dd if=\/dev\/sda of=\/home\/administrator\/mbr_sda.bak bs=512 count=1<\/pre>\n<pre>root@server:# dd if=\/dev\/sdb of=\/home\/administrator\/mbr_sdb.bak bs=512 count=1<\/pre>\n<p>W przypadku awarii dysku, mo\u017cemy przywr\u00f3ci\u0107 rekord rozruchowy wraz z tablic\u0105 partycji dla dysku sda poni\u017cszym poleceniem:<\/p>\n<pre>root@server:# dd if=\/home\/administrator\/mbr_sda.bak of=\/dev\/sda bs=512 count=1<\/pre>\n<p>lub bez tablicy partycji dla dysku sda w przypadku zmiany na dysk o innym rozmiarze:<\/p>\n<pre>root@server:# dd if=\/home\/administrator\/mbr_sda.bak of=\/dev\/sda bs=446 count=1<\/pre>\n<p>Po przywr\u00f3ceniu partycji z kopii, aby by\u0142y one widoczne dla systemu bez jego ponownego uruchamiania, nale\u017cy wykona\u0107 polecenie:<\/p>\n<pre>root@server: hdparm -z \/dev\/sda<\/pre>\n<p>Ponown\u0105 konfiguracj\u0119 <strong><em>mdadm<\/em><\/strong> mo\u017cemy wykona\u0107 poleceniem:<\/p>\n<pre>root@server: <strong>dpkg-reconfigure mdadm<\/strong><\/pre>\n<p>Zatrzymanie utworzonej wcze\u015bniej macierzy:<\/p>\n<pre>root@server: mdadm --stop \/dev\/md1<\/pre>\n<p>Usuni\u0119cie dysku z dzia\u0142aj\u0105cej macierzy:<\/p>\n<pre>root@server: mdadm \/dev\/md1 --fail \/dev\/sda1 --remove \/dev\/sda1<\/pre>\n<p>\u00a0Dodanie dysk\u00f3w z utworzon\u0105 macierz\u0105 na innym komputerze:<\/p>\n<pre>root@server: <strong>mdadm --assemble --scan<\/strong><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Je\u017celi korzystamy z softwarowego raid poziomu 1 w Ubuntu, powinni\u015bmy co jakich czas sprawdza\u0107 jaki jest jego stan. Mo\u017cemy to uczyni\u0107 poni\u017cszym poleceniem: root@server:# cat \/proc\/mdstat po jego wydaniu z konsoli powinni\u015bmy otrzyma\u0107 co\u015b podobnego: Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sda1[0] sdb1[1] \u00a0\u00a0\u00a0\u00a0\u00a0 3905524 blocks super [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[95,75,98],"yst_prominent_words":[],"_links":{"self":[{"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/posts\/167"}],"collection":[{"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/comments?post=167"}],"version-history":[{"count":22,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/posts\/167\/revisions"}],"predecessor-version":[{"id":1781,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/posts\/167\/revisions\/1781"}],"wp:attachment":[{"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/media?parent=167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/categories?post=167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/tags?post=167"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/yst_prominent_words?post=167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}