Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam cechuje mnie kiepska znajomości debiana dlatego proszę o pomoc przy konfiguracji raid1 za pomocą pakietu mdadm (przeprowadzenie za rączkę ;) ). Postępuję zgodnie z http://www.ladogorski.com/software_raid stanąłem na
---------------------------------------
No to partycje mamy, teraz trzeba utworzyć na nich system plików i podmontować je. A więc do dzieła:
# mkfs.ext3 /dev/md0
# mkfs.ext3 /dev/md1
# mkswap /dev/md2
# mkfs.ext3 /dev/md3
# mkdir /mntroot
# mkdir /mntboot
# mkdir /mnthome
# mount /dev/md0 /mntboot
# mount /dev/md1 /mntroot
# mount /dev/md3 /mnthome
---------------------------------------
Rozumiem, że raid jest w tym tutorialu dla partycji a nie dla dysku. Czy nie można zrobić tego dla dysku ? Chociaż w sumie nie wiem jakie by miały być tego korzyści.
Jak mogę sprawdzić czy powyższe polecenie np. mkswap /dev/md1 (md1 jest pierwszą partycję logiczną, tworzoną w ramach partycji rozszerzonej) odniosło zamierzony skutek. Dla celów orientacyjnych przedstawiam układ partycji systemu:
fdisk -l /dev/sdb Dysk /dev/sdb: 1000.2 GB, bajtów: 1000204886016 głowic: 255, sektorów/ścieżkę: 63, cylindrów: 121601 Jednostka = cylindrów, czyli 16065 * 512 = 8225280 bajtów Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512 Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512 Identyfikator dysku: 0x0004db05 Urządzenie Rozruch Początek Koniec Bloków ID System /dev/sdb1 * 1 1216 9764864 83 Linux /dev/sdb2 1216 121602 966994945 5 Rozszerzona /dev/sdb5 1216 1270 432128 82 Linux swap / Solaris /dev/sdb6 1270 121602 966561792 83 Linux
Czy dla dev/sdb2 nie tworzy się partycji ? U mnie zakończyło się to jakimś komunikatem o błędzie.
Dodatkowe info dla rozeznania sytuacji.
df -h System plików rozm. użyte dost. %uż. zamont. na /dev/sdb1 9,2G 674M 7,6G 8% / tmpfs 109M 0 109M 0% /lib/init/rw udev 105M 168K 104M 1% /dev tmpfs 109M 0 109M 0% /dev/shm /dev/sdb6 908G 61G 801G 8% /home sfdisk -l Dysk /dev/sda: cylindrów: 121601, głowic: 255, sektorów na ścieżce: 63 Uwaga: partycja rozszerzona nie zaczyna się na granicy cylindra. DOS i Linux inaczej zinterpretują jej zawartość. Jednostka = cylindry, czyli 8225280 bajtów, bloki 1024-bajtowe liczone od 0 Urządz.Rozr. Początek Koniec #cyl. #bloków Id System /dev/sda1 * 0+ 1215- 1216- 9764864 fd Linux RAID autodetect /dev/sda2 1215+ 121601- 120386- 966994945 5 Rozszerzona /dev/sda3 0 - 0 0 0 Brak /dev/sda4 0 - 0 0 0 Brak /dev/sda5 1215+ 1269- 54- 432128 fd Linux RAID autodetect /dev/sda6 1269+ 121601- 120332- 966561792 fd Linux RAID autodetect Dysk /dev/sdb: cylindrów: 121601, głowic: 255, sektorów na ścieżce: 63 Uwaga: partycja rozszerzona nie zaczyna się na granicy cylindra. DOS i Linux inaczej zinterpretują jej zawartość. Jednostka = cylindry, czyli 8225280 bajtów, bloki 1024-bajtowe liczone od 0 Urządz.Rozr. Początek Koniec #cyl. #bloków Id System /dev/sdb1 * 0+ 1215- 1216- 9764864 83 Linux /dev/sdb2 1215+ 121601- 120386- 966994945 5 Rozszerzona /dev/sdb3 0 - 0 0 0 Brak /dev/sdb4 0 - 0 0 0 Brak /dev/sdb5 1215+ 1269- 54- 432128 82 Linux swap / Solaris /dev/sdb6 1269+ 121601- 120332- 966561792 83 Linux Dysk /dev/md2: cylindrów: 241640158, głowic: 2, sektorów na ścieżce: 4 sfdisk: BŁĄD: sektor 0 nie zawiera sygnatury MSDOS /dev/md2: nierozpoznany typ tablicy partycji Nie znaleziono żadnej partycji Dysk /dev/md1: cylindrów: 108029, głowic: 2, sektorów na ścieżce: 4 sfdisk: BŁĄD: sektor 0 nie zawiera sygnatury MSDOS /dev/md1: nierozpoznany typ tablicy partycji Nie znaleziono żadnej partycji Dysk /dev/md0: cylindrów: 2440942, głowic: 2, sektorów na ścieżce: 4 sfdisk: BŁĄD: sektor 0 nie zawiera sygnatury MSDOS /dev/md0: nierozpoznany typ tablicy partycji Nie znaleziono żadnej partycji
Ostatnio edytowany przez bonus (2011-05-13 12:35:08)
Offline
Wiesz co? napisz co chcesz osiągnąć (tak nawiasem: raid 1 nie zapewnia ochrony danych tylko zabezpiecza przed awaria pojedynczego dysku/partycji) bo na razie masz totalną rozpierduchę.
Ostatnio edytowany przez andreq (2011-05-13 18:08:12)
Offline
bonus napisał(-a):
Jak mogę sprawdzić czy powyższe polecenie np. mkswap /dev/md1 (md1 jest pierwszą partycję logiczną, tworzoną w ramach partycji rozszerzonej) odniosło zamierzony skutek.
# swapon /dev/md1
# cat /proc/swaps
to, czy zrobisz softowy raid na partycjach czy na całych dyskach nie ma wpływu na wydajność pracy dysków, wyłącznie kwestia organizacji. rób jak chcesz.
a jeśli interesuje cię ochrona danych, zainteresuj się cryptfs ;)
Offline
To może zacznę od tego co chcę osiągnąć :/ jak wspomniał andreq. Jestem początkującym użytkownikiem debiana więc wybaczcie ...
Muszę stworzyć serwer do kopii danych użytkowników ok. 25 hostów środowiska niezarządzalnego - brak DC, stacje win xp pro i home, win 7 pro. Mam do tego celu sprzęt z procem Celeron 2,0 GHz 256 MB Ram. Ponadto mam do dyspozycji kontroler raid sata (faik-raid). Zakupiłem 2 dyski 1TB, ale oprócz tego dysponuję kilkoma dyskami 40 i 80 GB.
Aktualnie mam zainstalowane system Debian 6.0 stable na pojedynczym dysku 1TB z wydzielonymi partycjami na /, swap i /home. Postawiłem na tym sambe, proftpd (narazie robię za jego pomocą kopie baz z niededykowanych serwerów microsoft sql server - hosty użytkowników). Ze względu na słabe rozeznanie w temacie wpadłem na taki o to pomysł.
Na stacjach klienckich podczas bootowania windowsa odpalać się będzie *.bat mapujący zasób serwera użytkownika samby, jego katalog /home (login i hasło inne niż w systemie windows). W pliku *.bat niestety będzie jawnie zdefiniowana nazwa usera oraz hasło z samby :/ (lub można też wymusić na użytkowniku ich wpisanie), a to dlatego żeby w oparciu o lokalna bazę SAM hosta użytkownik mógł i był zobowiązany do zmiany hasła w oparciu lokalne polityki co 30 dni i nie był uzależniony do bazy samby.
Teraz zastanawiam się czy ... obecnie planowane rozwiązanie wdrożyć zabezpieczając się tylko poprzez dołożenie drugiego dysku 1TB sata i replikacje tabeli partycji dysku /dev/sdb oraz zastosowanie mdadm - raid 1. Czy może lepiej ... stworzyć raid 1 dla dysków /dev/sda i /dev/sdb dla samego /home i przenieść root katalog / na osobny dysk 40 GB i robić codziennie jego kopię na drugi taki dysk na wypadek uszkodzenia dysku lub systemu (tutaj bez raid jakaś synchronizacja rsync), na wypadek moich błędów administracyjnych.
W ten sposób będę mógł przywrócić stan systemu z dnia poprzedniego. Kopię danych hostów jakie chcę archiwizować to dokumenty służbowe, oraz pliki lokalnych klientów e-mail użytkowników. Chciałem do tego celu zastosować aplikacje Cobian Backup 10 z powiadamianiem e-mail o błędach w wykonywaniu zleconych zadań oraz możliwością zdalnej konfiguracji, ale ostatnio czytałem o rozwiązaniach Amanda i Bacula.
Co poradzicie początkującemu w związku z zaistniałym problemem, jakie rozwiązanie zastosować jak to ugryźć? Wiem zastosowanie chociażby samby jako DC rozwiązało by problem uwierzytelniania, zarządzania userami lecz narazie chcę to zostawić na później.
Zaznaczę, że kopie mają się wykonywać tylko z sieci lokalnej, brak użytkowników mobilnych.
// Dziel wypowiedzi na jakieś akapity, bo przy takich strumieniach świadomości przeciętnemu człowiekowi wyłącza się czytanie. Tym razem sam to zrobiłem (choć nie wiem czy dobrze, wymienione zjawisko i u mnie wystąpiło) — azhag
Ostatnio edytowany przez azhag (2011-05-14 21:13:05)
Offline
Ja dopiszę jeszcze, że z powodu wolniejszego zapisu, nie ma sensu robić swapa na macierzy raid1, lepiej swap zostawić na oddzielnych dyskach, a w /etc/fstab w opcjach ustawić:
/dev/sda5 swap swap pri=1 0 0
/dev/sdb5 swap swap pri=1 0 0
oczywiście typ sda5 zmień z powrotem na swap
bonus napisał(-a):
Na stacjach klienckich podczas bootowania windowsa odpalać się będzie *.bat mapujący zasób serwera użytkownika samby, jego katalog /home (login i hasło inne niż w systemie windows). W pliku *.bat niestety będzie jawnie zdefiniowana nazwa usera oraz hasło z samby :/ (lub można też wymusić na użytkowniku ich wpisanie), a to dlatego żeby w oparciu o lokalna bazę SAM hosta użytkownik mógł i był zobowiązany do zmiany hasła w oparciu lokalne polityki co 30 dni i nie był uzależniony do bazy samby.
Montowanie udziałów za pomocą skryptów bat/cmd nie jest konieczne, wystarczy w eksploratorze windows wybrać opcje mapuj dysk sieciowy. Niestety, wg Twoich założeń, zmiana hasła windows nie spowoduje zmiany hasła danego usera w Sambie.
bonus napisał(-a):
Teraz zastanawiam się czy ... obecnie planowane rozwiązanie wdrożyć zabezpieczając się tylko poprzez dołożenie drugiego dysku 1TB sata i replikacje tabeli partycji dysku /dev/sdb oraz zastosowanie mdadm - raid 1. Czy może lepiej ... stworzyć raid 1 dla dysków /dev/sda i /dev/sdb dla samego /home i przenieść root katalog / na osobny dysk 40 GB i robić codziennie jego kopię na drugi taki dysk na wypadek uszkodzenia dysku lub systemu (tutaj bez raid jakaś synchronizacja rsync), na wypadek moich błędów administracyjnych.
Problem uszkodzenia jednego dysku załatwi raid1, robienie kopii zapasowej systemu, zwłaszcza gdy zakładasz błędy administracyjne, jest wysoce wskazane. To ile dysków użyjesz zależy wyłącznie od Ciebie, na Twoim miejscu poprzestałbym na tych dwóch i ew, robił kopię systemu. W większości przypadków stosuje się system produkcyjny i testowy, wszelkie zmiany robione są na testowym, testowane i przenoszone na produkcję.
Offline
rychu napisał(-a):
to, czy zrobisz softowy raid na partycjach czy na całych dyskach nie ma wpływu na wydajność pracy dysków, wyłącznie kwestia organizacji. rób jak chcesz.
andreq napisał(-a):
Ja dopiszę jeszcze, że z powodu wolniejszego zapisu, nie ma sensu robić swapa na macierzy raid1, lepiej swap zostawić na oddzielnych dyskach, a w /etc/fstab w opcjach ustawić:
/dev/sda5 swap swap pri=1 0 0
/dev/sdb5 swap swap pri=1 0 0
Z powyższego wnioskuję, że lepiej jest zastosować raid1 dla partycji, z pominięciem partycji swap?
andreq napisał(-a):
Montowanie udziałów za pomocą skryptów bat/cmd nie jest konieczne, wystarczy w eksploratorze windows wybrać opcje mapuj dysk sieciowy. Niestety, wg Twoich założeń, zmiana hasła windows nie spowoduje zmiany hasła danego usera w Sambie.
Wykorzystanie do tego celu exploratora windows nie spełni planowanego zadania, ponieważ po ponownym uruchomieniu komputera nie pojawi się okienko do wpisania danych użytkownika samby, z którego uprawnieniami chcemy uzyskać dostęp do zasobu sieciowego. Jego podmontowanie nastąpi dopiero gdy użytkownik spróbuje wejść do niego klikając dwukrotnie na odpowiadającą temu literę dysku, wtedy pojawi się owy ekran do uwierzytelnienia.
Plik bat wyświetli w wierszu cmd za każdym razem po ponownym uruchomieniu komputera prośbę o login i hasło, a w przypadku zdefiniowania ich jawnie w tym pliku bat podmontuje zasób automatycznie. Zasób ma być podmontowany na początku pracy użytkownika by aplikacja zgodnie z ustalonym harmonogramem mogła robić kopie do tej lokalizacji.
Ponadto zmiana hasła windows ma następować co 30 dni, natomiast do zasobu sieciowego nie ... bo nie da się tego dokonać bez dc, którego nie planuję narazie lub mojej ingerencji w bazę tdbsam.
Jak zatem mogę usunąć obecnie utworzone md..., następnie chciałbym przy waszej pomocy poprawnie utworzyć macierze raid1 dla partycji. Chciałbym jeszcze zaznaczyć, że zastosowanie macierzy raid1 tylko na potrzeby /home (dyski 1TB) i przechowywanie systemu na oddzielnym dysku było by korzystne w przypadku zmiany komputera, przepięcie dysków do nowego sprzętu i podmonotowanie macierzy, tak mi się wydaje. Dobra przyjmijmy scenariusz taki, że chcę stworzyć 2 osobne macierze raid1 dla partycji sdb1, sdb6 swap stworzyć na obu dyskach zgodnie z zaleceniem. Jak zacząć?
Offline
Zrobiłem
mdadm -S /dev/md0 mdadm -S /dev/md1 mdadm -S /dev/md2
oraz
dd if=/dev/zero of=/dev/hda bs=512 count=1
teraz jest jak przed jakimkolwiek działaniem zaczynam od nowa. Spróbuję z http://www.howtoforge.com/software-raid1-grub-boot-debian-etch-p2 jednak pomoc dla początkującego mile widziana ;)
Hmm, dałem
sfdisk -d /dev/sdb | sfdisk /dev/sda
jednak zwraca ostrzeżenie i nie wykonuje polecenia, wiem że mogę to wymusić atrybutem --force ale nie wiem czy nie będzie z tego tytułu jakich konsekwencji. Może jakaś podpowiedź/objaśnienie na ten temat?
Oto wynik powyższego polecenia
sfdisk -d /dev/sdb | sfdisk /dev/sda Sprawdzanie czy nikt nie używa teraz tego dysku... Uwaga: partycja rozszerzona nie zaczyna się na granicy cylindra. DOS i Linux inaczej zinterpretują jej zawartość. OK Dysk /dev/sda: cylindrów: 121601, głowic: 255, sektorów na ścieżce: 63 sfdisk: BŁĄD: sektor 0 nie zawiera sygnatury MSDOS /dev/sda: nierozpoznany typ tablicy partycji Stara sytuacja: Nie znaleziono żadnej partycji Nowa sytuacja: Jednostka = sektory 512-bajtowe, liczone od 0 Urządz. Rozruch Początek Koniec #sektorów Id System /dev/sda1 * 2048 19531775 19529728 83 Linux /dev/sda2 19533822 1953523711 1933989890 5 Rozszerzona /dev/sda3 0 - 0 0 Brak /dev/sda4 0 - 0 0 Brak /dev/sda5 19533824 20398079 864256 82 Linux swap / Solaris /dev/sda6 20400128 1953523711 1933123584 83 Linux Uwaga: partycja 1 nie kończy się na granicy cylindra sfdisk: Nie podobają mi się te partycje - nie zmieniono (jeśli na pewno tak mają wyglądać - proszę użyć opcji --force).
Partycje /dev/sdb były tworzenie z poziomu kreatora systemowego podczas instalacji systemu.
Ostatnio edytowany przez bonus (2011-05-16 12:51:07)
Offline
sfdisk: BŁĄD: sektor 0 nie zawiera sygnatury MSDOS
/dev/sda: nierozpoznany typ tablicy partycji
Stara sytuacja:
Nie znaleziono żadnej partycji
To nie powinno dziwić, bo zamazałeś MBR zerami...
dd if=/dev/zero of=/dev/hda bs=512 count=1
sfdisk: Nie podobają mi się te partycje - nie zmieniono
(jeśli na pewno tak mają wyglądać - proszę użyć opcji --force).
Tu po prostu sfdisk twierdzi, że masz dziwny układ partycji, i trochę ma rację...dziwi mnie pierwsza partycja, która nie zaczyna się od zera. Zawsze możesz utworzyć partycje przy pomocy innego programu np. cfdisk
Offline
andreq napisał(-a):
Tu po prostu sfdisk twierdzi, że masz dziwny układ partycji, i trochę ma rację...dziwi mnie pierwsza partycja, która nie zaczyna się od zera. Zawsze możesz utworzyć partycje przy pomocy innego programu np. cfdisk
Nie wiem czy dobrze rozumuję ale "debianowy partycjoner" widocznie dzieli dysk w oparciu o bloki, a nie o sektory. Muszę poczytać odnośnie budowy bloków z sektorów (bo chyba tak to jest).
fdisk /dev/sdb UWAGA: tryb kompatybilności z DOS-em jest przestarzały. Zdecydowanie zaleca się wyłączyć ten tryb (polecenie 'c') i zmienić jednostki wyświetlania na sektory (polecenie 'u'). Polecenie (m wyświetla pomoc): v Pozostało 7597 nieprzydzielonych sektorów 512-bajtowych
Może w związku z powyższym dokonać zmiany rozmiaru/korekty partycji dyskowych? Czy mogę spokojnie działać dalej? Wolę to uporządkować na początku, niż potem robić to jeszcze raz ...
Póki co postępuję dalej.
Musiałem zaimportować okład partycji inaczej:
sfdisk -d /dev/sdb > sdb.out Uwaga: partycja rozszerzona nie zaczyna się na granicy cylindra. DOS i Linux inaczej zinterpretują jej zawartość. sfdisk -f /dev/sda < sdb.out Sprawdzanie czy nikt nie używa teraz tego dysku... OK Dysk /dev/sda: cylindrów: 121601, głowic: 255, sektorów na ścieżce: 63 sfdisk: BŁĄD: sektor 0 nie zawiera sygnatury MSDOS /dev/sda: nierozpoznany typ tablicy partycji Stara sytuacja: Nie znaleziono żadnej partycji Nowa sytuacja: Jednostka = sektory 512-bajtowe, liczone od 0 Urządz. Rozruch Początek Koniec #sektorów Id System /dev/sda1 * 2048 19531775 19529728 83 Linux /dev/sda2 19533822 1953523711 1933989890 5 Rozszerzona /dev/sda3 0 - 0 0 Brak /dev/sda4 0 - 0 0 Brak /dev/sda5 19533824 20398079 864256 82 Linux swap / Solaris /dev/sda6 20400128 1953523711 1933123584 83 Linux [b]Uwaga: partycja 1 nie kończy się na granicy cylindra[/b] Zapisano nową tablicę partycji Ponowny odczyt tablicy partycji... Jeśli utworzono lub zmieniono partycję typu DOS, np. /dev/foo7, należy użyć dd(1), aby wyzerować pierwsze 512 bajtów: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (więcej w fdisk(8))
Efekt:
fdisk -l Dysk /dev/sda: 1000.2 GB, bajtów: 1000204886016 głowic: 255, sektorów/ścieżkę: 63, cylindrów: 121601 Jednostka = cylindrów, czyli 16065 * 512 = 8225280 bajtów Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512 Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512 Identyfikator dysku: 0x00000000 Urządzenie Rozruch Początek Koniec Bloków ID System /dev/sda1 * 1 1216 9764864 83 Linux /dev/sda2 1216 121602 966994945 5 Rozszerzona /dev/sda5 1216 1270 432128 82 Linux swap / Solaris /dev/sda6 1270 121602 966561792 83 Linux Dysk /dev/sdb: 1000.2 GB, bajtów: 1000204886016 głowic: 255, sektorów/ścieżkę: 63, cylindrów: 121601 Jednostka = cylindrów, czyli 16065 * 512 = 8225280 bajtów Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512 Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512 Identyfikator dysku: 0x0004db05 Urządzenie Rozruch Początek Koniec Bloków ID System /dev/sdb1 * 1 1216 9764864 83 Linux /dev/sdb2 1216 121602 966994945 5 Rozszerzona /dev/sdb5 1216 1270 432128 82 Linux swap / Solaris /dev/sdb6 1270 121602 966561792 83 Linux
teraz za pomocą fdisk pozmieniałem ID partycji /dev/sda oto efekt
fdisk -l Dysk /dev/sda: 1000.2 GB, bajtów: 1000204886016 głowic: 255, sektorów/ścieżkę: 63, cylindrów: 121601 Jednostka = cylindrów, czyli 16065 * 512 = 8225280 bajtów Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512 Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512 Identyfikator dysku: 0x00000000 Urządzenie Rozruch Początek Koniec Bloków ID System /dev/sda1 * 1 1216 9764864 fd Linux RAID autodetect /dev/sda2 1216 121602 966994945 5 Rozszerzona /dev/sda5 1216 1270 432128 82 Linux swap / Solaris /dev/sda6 1270 121602 966561792 fd Linux RAID autodetect Dysk /dev/sdb: 1000.2 GB, bajtów: 1000204886016 głowic: 255, sektorów/ścieżkę: 63, cylindrów: 121601 Jednostka = cylindrów, czyli 16065 * 512 = 8225280 bajtów Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512 Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512 Identyfikator dysku: 0x0004db05 Urządzenie Rozruch Początek Koniec Bloków ID System /dev/sdb1 * 1 1216 9764864 83 Linux /dev/sdb2 1216 121602 966994945 5 Rozszerzona /dev/sdb5 1216 1270 432128 82 Linux swap / Solaris /dev/sdb6 1270 121602 966561792 83 Linux
Zgodnie z wcześniejszymi założeniami pozostawiłem partycję /dev/sda5 z id 82.
Wykonałem
mdadm --zero-superblock /dev/sdb1 mdadm --zero-superblock /dev/sdb5 mdadm --zero-superblock /dev/sdb6
mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sda1 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sda6 Continue creating array? y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md1 started.
cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active (auto-read-only) raid1 sda1[1] 9763768 blocks super 1.2 [2/1] [_U] md1 : active (auto-read-only) raid1 sda6[1] 966560632 blocks super 1.2 [2/1] [_U]
mkfs.ext3 /dev/md0 mkfs.ext3 /dev/md1 mkswap /dev/sda5
cat /proc/swaps Filename Type Size Used Priority /dev/sdb5 partition 432120 0 -1
Tutaj mam pytanie ... wykonałem polecenie
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.org mdadm --examine --scan >> /etc/mdadm/mdadm.conf
Wynikiem było dodanie do pliku konfiguracyjnego następujących wpisów
ARRAY /dev/md/0 metadata=1.2 UUID=7f84c463:bcc2a680:c092675a:b7f0aadb name=storage1:0 ARRAY /dev/md/1 metadata=1.2 UUID=49ababde:2884e470:c1601d46:effec6f1 name=storage1:1
jednak odbiegają one od tych które widnieją w tutku http://www.howtoforge.com/software-raid1-grub-boot-debian-etch-p2. Chciałbym się dowiedzieć czy do tego momentu jest wszystko ok.
Ostatnio edytowany przez bonus (2011-05-17 10:55:26)
Offline
Macierze działają, wg mnie brakuje Ci w /etc/mdadm/mdadm.conf wpisu
DEVICE /dev/sd[ab][16]
Offline
Rozumiem, że mam dodać ten wpis do pliku konfiguracyjnego a dalej postępować zgodnie z tutkiem?
Ostatnio edytowany przez bonus (2011-05-17 22:12:12)
Offline
Wpis ma być na początku mdadm.conf, poczytaj pomoc man
mdadm.conf
Co do opisu, z grubsza wg niego, tylko dostosuj wpisy w fstab do Twoich realiów. Konfigurację, gruba sobie daruj, pewnie masz grub2, pierwszy raz system wystartuj z macierzy poprzez "ręczne" podanie kernelowi parametru root=/dev/md0 (naciśnij e przy ekranie gruba), potem update-grub powinno załatwić sprawę.
Nie zapomnij skopiować danych na macierz, przed restartem...
Wcześniej pobierz sobie, jak nie masz, jakieś livecd na. ewentualne problemy ze startem systemu, polecam http://grml.org/download/
Offline
Hmm jak to skopiować, nie zrobi synchronizacji z /dev/sdb ? Czy mogę prosić o instrukcję krok po kroku nie wiem czy teraz montować /dev/md... do /mnt/md... Jak te dane przekopiować ?
Zgodnie z zaleceniem dodałem do mdamd.conf
cat /etc/mdadm/mdadm.conf DEVICE /dev/sd[ab][16] ...
Ostatnio edytowany przez bonus (2011-05-18 14:53:00)
Offline
Dobrze zaczynasz...
Montujesz macierze np. /dev/md0 do /mnt/md0, /dev/md1 do /mnt/md1.
Potem zgodnie z instrukcją kopiujesz dane, np:
cp -dpRx /* /mnt/md0 cp -dpRx /home/* /mnt/md1
Obecnie nie zrobi Ci synchronizacji z /dev/sdb, bo zrobiłeś zdegradowaną (uszkodzoną) macierz z samych sda. Dopiero gdy po przekopiowaniu danych uruchomisz system z macierzy (bez danych raczej nie wstanie), dodajesz dyski sdb do odpowiednich macierzy i wtedy rozpocznie się synchronizacja.
Offline
Podczas
cp -dpRx /* /mnt/md0
Zapełnił mi się dysk ... nic dziwnego bo jeszcze home się kopiuje czy można zrobić jakieś wyłączenie z tego polecenia tego folderu?
teraz wykonuje się
cp -dpRx /home/* /mnt/md1
i trwa ... (jakieś 200GB) jak to jest skoro nie ma póki co macierzy. Czemu tak długo trwa kopiowanie danych do /mnt/md... ? Czy dane są kopiowane w tej chwili na oba dyski /dev/sdb i /dev/sda.
Ostatnio edytowany przez bonus (2011-05-19 12:05:48)
Offline
bonus napisał(-a):
Podczas
Kod:
cp -dpRx /* /mnt/md0Zapełnił mi się dysk ... nic dziwnego bo jeszcze home się kopiuje czy można zrobić jakieś wyłączenie z tego polecenia tego folderu?
Właśnie dziwne, zdawało mi się, że masz /home na innej partycji, więc opcja x powinna pominąć kopiowanie. Spróbuj jeszcze raz, wcześniej odmontowując /home.
bonus napisał(-a):
teraz wykonuje się
Kod:
cp -dpRx /home/* /mnt/md1i trwa ... (jakieś 200GB) jak to jest skoro nie ma póki co macierzy. Czemu tak długo trwa kopiowanie danych do /mnt/md... ? Czy dane są kopiowane w tej chwili na oba dyski /dev/sdb i /dev/sda.
Nie nie są kopiowane jednocześnie na oba dyski - masz zdegradowana macierz z samego dysku sda.
Czemu długo? Policz ile sekund będzie trwało przekopiowanie 200 GB danych, przyjmując, że transfer wynosi 100 MB/s (to jest bardzo dobry transfer w przypadku dysku mechanicznego)
Offline
Wykonanie
cp -dpRx /home/* /mnt/md1
trwało jakieś 20-30 minut co jest bardzo dziwne. Dyski sata są podłączone do kontrolera fake-raid na pci :/. Przerzucam tymczasowo cały /* do /mnt/md1/calosc potem usunę /home i całą resztę przeniosę do /mnt/md0, oczywiście trwa to bardzo długo zostawiłem kompa w pracy włączonego ... do jutra się zrobi napewno :).
Offline
bonus napisał(-a):
Wykonanie
Kod:
cp -dpRx /home/* /mnt/md1trwało jakieś 20-30 minut co jest bardzo dziwne. Dyski sata są podłączone do kontrolera fake-raid na pci :/.
Dziwne?!
Przyjmijmy, że:
200 GB => 200 000 000 000 B
transfer wynosi 100 MB/s => 100 000 000 B/s
czyli przekopiowanie potrwa:
200 000 000 000 / 100 000 000 = 2000 s
co daje: 33 minuty 20 s
Offline
może pomyliłeś raid0 z raid1 ;)
Offline
rychu napisał(-a):
może pomyliłeś raid0 z raid1 ;)
tak jasne ...
zrobiłem
umount /dev/sd6
i ponownie
cp -dpRx /* /mnt/md0
Tak jak przed odmontowaniem wywaliło
cp: czytanie `/proc/sysrq-trigger': Błąd wejścia/wyjścia
i "wisi" w procesach też widnieje to polecenie i rezerwuje pamięć jednak nic się nie zmienia, znaczy brak aktywności procesu ...
zakończyłem proces ctrl+c bo co mam zrobić? Wszystko się nie skopiowało co można wywnioskować chociażby z zajętości dysku na /dev/sdb1 /mnt/md0. Zainstalowałem rsync jakie polecenie rozwiąże problem skopiowania i wyłączenie /proc/*.
Ostatnio edytowany przez bonus (2011-05-20 08:50:38)
Offline
Możesz kopiować katalogi pojedynczo, przy pomocy cp pomijając /proc i /sys. Jak chcesz użyć rsync to:
rsync -auHx --exclude=/proc/* --exclude=/sys/* /* /mnt/md0/
Potem musisz utworzyć katalogi proc i sys
mkdir /mnt/md0/proc /mnt/md0/sys
I nadać im odpowiednie prawa dostępu:
chmod 555 /mnt/md0/proc chmod 755 /mnt/md0/sys
Offline
Dobra skopiowane ... Na początek dalszych rozważań zaznaczę, że Grub wersja 1.98.
Wyedytowałem plik /etc/fstab
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # / was on /dev/md0 during installation /dev/md0 / ext3 errors=remount-ro 0 1 # /home was on /dev/md1 during installation /dev/md1 /home ext3 defaults 0 2 # swap was on /dev/sda5 during installation UUID=8db19870-9a42-4a9f-8ff0-6655ebd8457b none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
także uuid'y zmienione na /dev/mdx jak wyżej
Potem robię reboot i edytuję wpis gruba na root=/dev/md0. Czy nie muszę zmienić jeszcze set root='(hd0,msdos1)'? Chociaż hd0 wskazuje na sda, sam nie wiem ... W każdym razie przy takiej konfiguracji w grub'ie
insmod part_msdos insmod ext2 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set c39401f2-a51d-4aed-bc93-dc75e2fa1037 echo 'Loading Linux 2.6.32-5-686 ...' linux /boot/vmlinuz-2.6.32-5-686 root=/dev/md0 ro quiet echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.32-5-686
Ctrl+x odpala się normalnie pierwsze są monity o braku jednego dysku w raid'zie potem normalnie. Nie wiem z jakiego dysku ładuje się teraz system, ale żadnej synchronizacji tu nie widzę. Co dalej mam z tym robić?
Poszedłem dalej :)
Dokonałem zmiany typu partycji dysku /dev/sdb na fd (Linux RAID autodetect). Przy próbie zapisu
Tablica partycji została zmodyfikowana! Wywoływanie ioctl() w celu ponownego odczytu tablicy partycji. UWAGA: ponowny odczyt tablicy partycji zakończył się błędem 16: Urządzenie lub zasoby zajęte. Jądro nadal używa starej tablicy. Nowa tablica będzie używana po następnym restarcie systemu albo po uruchomieniu partprobe(8) lub kpartx(8) Synchronizacja dysków.
Zrobiłem restart.
Teraz dodałem partycje /dev/sdb do odpowiednich macierzy
mdadm --add /dev/md0 /dev/sdb1 mdadm: added /dev/sdb1
mdadm --add /dev/md1 /dev/sdb6 mdadm: added /dev/sdb6
chyba leci :)
cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb1[2] sda1[1] 9763768 blocks super 1.2 [2/1] [_U] [===>.................] recovery = 19.3% (1887552/9763768) finish=7.0min speed=18710K/sec md1 : active raid1 sdb6[2] sda6[1] 966560632 blocks super 1.2 [2/1] [_U] resync=DELAYED
Teraz jak uporządkować sprawę partycji swap i gruba?. Chyba wszystko dobrze zrobiłem. Byłem ciekaw czy raid 1 może działać bez 1 dysku twardego z tego wynika, że może :) tylko zapewne podczas synchronizacji nie można wykonywać żadnych zmian w systemie bo potem mogą wystąpić niespójności? Wytłumaczcie proszę ? Mam w pracy serwer z raid 1 na mdadm i ciekaw jestem czy wstanie, gdyby jeden dysk padł.
Hmm podczas synchronizacji nie pracuję w trybie single user i wykonała mi się na ftp kopia bazy sql mam nadzieje, że nic się przez to nie sknoci? Dane skopiowały się na /dev/md1 podczas dodawania /dev/sda6.
Offline
Dobra zajmijmy się swapem, masz w fstab:
# swap was on /dev/sda5 during installation
UUID=8db19870-9a42-4a9f-8ff0-6655ebd8457b none swap sw 0 0
Powinieneś zmienić kolumnę sw, na sw,pri=1 oraz dodać swap na sdb5 (oczywiście będzie miał inny UUID), też z sw,pri=1
Teraz grub... wpis:
set root='(hd0,msdos1)'
w grub.cfg wskazuje, że grub ładowany jest z dysku sda, mniemam, że na dysku sdb gruba nie instalowałeś. Musisz wykonać:
# grub-install /dev/sda # grub-install /dev/sdb
Może być konieczne, chwilowe usuniecie partycji na sdb z macierzy. Po ewentualnym dodaniu z powrotem partycji i synchronizacji macierzy, dodaj do grub.cfg (a raczej będziesz musiał pobawić się plikami w /etc/grub.d/ - bo wpisy w grub.cfg są generowane z pliku /etc/defaurt/grub i plików w /etc/grub.d/) wpis:
insmod part_msdos
insmod ext2
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set c39401f2-a51d-4aed-bc93-dc75e2fa1037
echo 'Loading Linux 2.6.32-5-686 ...'
linux /boot/vmlinuz-2.6.32-5-686 root=/dev/md0 ro quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-5-686
A przed poprzednim wpis set falback=2, gdzie numer 2 jest pozycją w menu grub-a, która ma być załadowana po niepowodzeniu ładowania pozycji default. Tu masz przykładowy skrypt (skrypty w debianie nie załatwiają tej opcji) http://wiki.ubuntuusers.de/GRUB_2/Skripte#Fallback-Skript
O kopię bazy nie musisz się martwić, dane na macierzy (w twoim przypadku, bez jednego dysku) są automatycznie kopiowane na drugi po jego dodaniu do macierzy. W czasie jej odbudowy dane zapisywane są już na dwóch dyskach.
Offline
Wybacz andreq ale nie wiem jak zabrać się za konfigurację grub'a po wykonaniu wskazanych czynności bez modyfikacji gruba zrobiłem restart. System oczywiście nie wstał, monity:
najpierw
... fd0 read error
następnie
Loading Linux 2.6.32-5-686 error: file not found Loading iniial ramdisk ... error: you need to load the krenel first Failed to boot both default and fallback entries Press any key to continue ...
Offline
Wyświetla Ci się menu gruba, przypuszczam, że tak. Jak wyświetli się menu, naciśnij c, pojawi się znak zachęty gruba
grub>
wpisz:
grub> insmod raid grub> insmod ext2 grub> set root=(md0) grub> search --no-floppy --fs-uuid --set c39401f2-a51d-4aed-bc93-dc75e2fa1037 grub> linux /boot/vmlinuz-2.6.32-5-686 root=/dev/md0 ro quiet grub> initrd /boot/initrd.img-2.6.32-5-686 grub> boot
Po każdej komendzie działa uzupełnianie TAB-em.
Innym sposobem, mniej męczacym, jest użycie livecd, zamontowanie macierzy z systemem, wykonanie chroot-a i wykonanie
# dpkg-reconfigure grub-pc
Offline