OVH Community, your new community space.

Dysk twardy duzo odczytów (r/s) - nowy serwer


victor
23-01-2013, 23:58
Cytat Napisał Linux admin
Skrypt ma trochę linii ale najważniejsze to
Kod:
echo 'check' > /sys/block/$array/md/sync_action
Poza tym mdadm jest uruchomiony z parametrem --monitor więc błąd tego checka spowoduje wygenerowanie maila do roota. Check nie tylko porównuje dane - podczas odczytu może napotkać bad block. Wtedy nadpisze to miejsce używając danych sprawnego dysku. To spowoduje remapowanie bloku w inne miejsce. Lepiej jest wykonać taką akcję w weekend w nocy (tak jak to robi cron w Debianie) niż podczas dużego ruchu.

Im wcześniej dowiesz się, że masz niespójne dyski tym lepiej, chyba lepiej dowiedzieć się tego z maila od mdadm niż przez telefon od panikującego klienta? To da szanse np. na odtworzenie danych z backupu.
Przy check/repair w sync_action w przypadku badblocka do messages lecą głupie i nieczytelne info o błędzie odczytu na kanale ata i tyle (nawet nie wykazujące powiązania z przeprowadzanym sprawdzaniem) - przetestowałem. Block pozostaje nieczytelnym badblockiem, ilosc pending sectors nie spada ... Co dopiero chcieć nadpisania tego bloku z innego urządzenia w raid - takie rzeczy to może w erze mają. Badblock faktycznie zotaje usunięty przy normalnym resync-u ale md nie ma nawet opcji zeby takowy włączyć bez wyjęcia i włożenia do macierz urządzenia (nie mówiąc już o wyborze kierunku resync-a czy zakresu). md to niezły troll jest Więc ani do usuwania badblocków to się nie nadaje ani do naprawiania (nie wie które urządzenie ma złe dane - tak jak i ty byś pewnie nie wiedział) - przynajmniej tak wynikało z moich testów na kernelu 3.2.

victor
23-01-2013, 23:57
Cytat Napisał borec
Oczywiście chodzi mi o check, a czy robić czy nie robić - dokumentacja mówi, żeby robić, ale nie rób, przekonasz się Zobaczysz taki mrożący krew w żyłach komunikat "out of sync" i zaczniesz wtedy robić

BTW, odczyty nie "zużywają" dysku
Jaka ty dokumentacje czytasz, bo chyba nie tą oryginalną
http://www.kernel.org/doc/Documentation/md.txt

out of sync to zobaczysz jak będziesz robił, o ile masz dużo nieszczęscia. I co dalej zrobisz? (repair to nie jest dobra odpowiedź)

Wg. mnie najwięcej "zużywają" ruchy ramienia więc odczyty i zapisy. Przemagnesowanie żelastwa i pozostałości w histerezie? to nie problem dzisiaj gdy wszystko inne pada wczesniej.

Linux admin
23-01-2013, 20:12
Cytat Napisał victor
A co jest w tym /usr/share/mdadm/checkarray ? Jeśli tam jest tylko check to wyrzuci tylko komunikaty do messages i w 99% nikt nie zareaguje. A repair jak wczesniej napisalem niczego nie rozwiązuje.

Skrypt ma trochę linii ale najważniejsze to
Kod:
echo 'check' > /sys/block/$array/md/sync_action
Poza tym mdadm jest uruchomiony z parametrem --monitor więc błąd tego checka spowoduje wygenerowanie maila do roota. Check nie tylko porównuje dane - podczas odczytu może napotkać bad block. Wtedy nadpisze to miejsce używając danych sprawnego dysku. To spowoduje remapowanie bloku w inne miejsce. Lepiej jest wykonać taką akcję w weekend w nocy (tak jak to robi cron w Debianie) niż podczas dużego ruchu.

Im wcześniej dowiesz się, że masz niespójne dyski tym lepiej, chyba lepiej dowiedzieć się tego z maila od mdadm niż przez telefon od panikującego klienta? To da szanse np. na odtworzenie danych z backupu.

borec
23-01-2013, 10:30
Cytat Napisał victor
e, nie można bo to nie są resync-e tylko check albo repair. To robi tylko odczyty a zapis (repair) tylko jeśli wykryje niespójność
Nie widzę jednak powodu by robić cyklicznie czy kiedykolwiek. Tylko zużywa dyski.
Oczywiście chodzi mi o check, a czy robić czy nie robić - dokumentacja mówi, żeby robić, ale nie rób, przekonasz się Zobaczysz taki mrożący krew w żyłach komunikat "out of sync" i zaczniesz wtedy robić

BTW, odczyty nie "zużywają" dysku

victor
23-01-2013, 03:40
Cytat Napisał Linux admin
Debian standardowo w pierwszą niedzielą miesiąca przez /etc/cron.d/mdadm :
Kod:
57 0 * * 0 root if [ -x /usr/share/mdadm/checkarray ] && [ $(date +\%d) -le 7 ]; then /usr/share/mdadm/checkarray --cron --all --idle --quiet; fi
A co jest w tym /usr/share/mdadm/checkarray ? Jeśli tam jest tylko check to wyrzuci tylko komunikaty do messages i w 99% nikt nie zareaguje. A repair jak wczesniej napisalem niczego nie rozwiązuje.

victor
23-01-2013, 03:33
Cytat Napisał borec
Software'owy raid nie robi automatycznie żadnych resynców, a bez tego można mieć poważne kłopoty w razie wymiany dysku.
e, nie można bo to nie są resync-e tylko check albo repair. To robi tylko odczyty a zapis (repair) tylko jeśli wykryje niespójność
Nie widzę jednak powodu by robić cyklicznie czy kiedykolwiek. Tylko zużywa dyski. Nie pomaga to na badsectory, a w przypadku gdyby faktycznie stan był niespójny z powodu np. promieniowania kosmicznego () to masz 50% gwarancji ze md raid akurat wybierze dysk który miał poprawny stan (a wybiera chyba pierwszy który był do macierzy dodany i jednoczesnie nie ma możliwości zmiany tej kolejności ). Gdyby chociaż w przypadku >=3 dysków w raid1 był wybierany jako zły ten który ma inną porcję danych, ale widziałem by to tak się działo.

Linux admin
22-01-2013, 21:47
Cytat Napisał borec
+1. Dodać co crona, conajmniej raz w tygodniu. Software'owy raid nie robi automatycznie żadnych resynców, a bez tego można mieć poważne kłopoty w razie wymiany dysku.
Debian standardowo w pierwszą niedzielą miesiąca przez /etc/cron.d/mdadm :
Kod:
57 0 * * 0 root if [ -x /usr/share/mdadm/checkarray ] && [ $(date +\%d) -le 7 ]; then /usr/share/mdadm/checkarray --cron --all --idle --quiet; fi

borec
22-01-2013, 19:01
Cytat Napisał victor
Jakiż system coś takiego wykonuje defaultowo? to byś musiał sobie check albo repair zapisac do sync_action zeby tak się stało
+1. Dodać co crona, conajmniej raz w tygodniu. Software'owy raid nie robi automatycznie żadnych resynców, a bez tego można mieć poważne kłopoty w razie wymiany dysku.

victor
22-01-2013, 00:51
Cytat Napisał Linux admin
Masz RAID1 - dyski są identyczna kopią. Aktualnie ta kopia się wykonuje - kiedy dyski będą miały identyczną zawartość nie ma potrzeby synchronizacji. Zazwyczaj raz w miesiącu system zweryfikuje czy dyski mają identyczne dane - to będzie sprawdzenie i nie będzie obciążało maszyny (chociaż tę prędkość też możesz regulować).
Jakiż system coś takiego wykonuje defaultowo? to byś musiał sobie check albo repair zapisac do sync_action zeby tak się stało

Linux admin
21-01-2013, 21:51
Cytat Napisał Polak_war
ok, a co jaki czas mam synchronizować ? bo mam RAID SOFT - 0/1
Masz RAID1 - dyski są identyczna kopią. Aktualnie ta kopia się wykonuje - kiedy dyski będą miały identyczną zawartość nie ma potrzeby synchronizacji. Zazwyczaj raz w miesiącu system zweryfikuje czy dyski mają identyczne dane - to będzie sprawdzenie i nie będzie obciążało maszyny (chociaż tę prędkość też możesz regulować). Synchronizację trzeba robić tylko po awarii np. wymianie dysku.

Polak_war
21-01-2013, 21:23
ok, a co jaki czas mam synchronizować ? bo mam RAID SOFT - 0/1

Linux admin
21-01-2013, 20:40
Cytat Napisał Polak_war
serwer resetowalem kilka razy, wylaczalem tego mysql...

log:
Kod:
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md1 : active raid1 sdb1[1] sda1[0]
      20971456 blocks [2/2] [UU]

md2 : active raid1 sdb2[1] sda2[0]
      1932012480 blocks [2/2] [UU]
      [===>.................]  resync = 19.0% (367530496/1932012480) finish=172.8min speed=150822K/sec

unused devices: 
rozumiem ze serwer padł i coś tam sprawdza czy synchronizuje ? resync - czy mozna to wyłaczyć jeśli tak to czy warto ?
Musi się zsynchronizować, inaczej RAID nie będzie redundantny. Możesz jednak ograniczyć prędkość synchronizacji jeżeli to zbyt spowalnia serwer np.

Kod:
echo '10000' > /sys/block/md2/md/sync_speed_max
Ograniczy do 10MB/s

borec
21-01-2013, 20:04
Cytat Napisał Polak_war
serwer resetowalem kilka razy, wylaczalem tego mysql...

log:
Kod:
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md1 : active raid1 sdb1[1] sda1[0]
      20971456 blocks [2/2] [UU]

md2 : active raid1 sdb2[1] sda2[0]
      1932012480 blocks [2/2] [UU]
      [===>.................]  resync = 19.0% (367530496/1932012480) finish=172.8min speed=150822K/sec

unused devices: 
rozumiem ze serwer padł i coś tam sprawdza czy synchronizuje ? resync - czy mozna to wyłaczyć jeśli tak to czy warto ?
Nie można i nie należy. Żeby software'owy RAID1 spełniał swoją funkcję, dyski muszą być zsynchronizowane, czyli zawierać dokładnie to samo. Jeśli miałbyś sprzętowy kontroler RAID on robiłby to w tle, automatycznie. Przy soft-raid musisz sam uruchamiać cyklicznie resync.

Polak_war
21-01-2013, 19:27
serwer resetowalem kilka razy, wylaczalem tego mysql...

log:
Kod:
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md1 : active raid1 sdb1[1] sda1[0]
      20971456 blocks [2/2] [UU]

md2 : active raid1 sdb2[1] sda2[0]
      1932012480 blocks [2/2] [UU]
      [===>.................]  resync = 19.0% (367530496/1932012480) finish=172.8min speed=150822K/sec

unused devices: 
rozumiem ze serwer padł i coś tam sprawdza czy synchronizuje ? resync - czy mozna to wyłaczyć jeśli tak to czy warto ?

Linux admin
21-01-2013, 19:12
Cytat Napisał Polak_war
Witam, zakuiłęm niedawno serwer (ovh nie kimsufi) i pojawił sie problem po kilku dniach serwer normalnie se leciał - działa na nim tylko MYSQL i niedawno po prostu się wyłączył, gdzy sie już załączył zaczeło się dziwne mulenie logowanie do ssh trwalo dość długo.. sprawdziłem iostat:

log:
Kod:
Linux 3.2.13-grsec-xxxx-grs-ipv6-32 (ns387839.ovh.net)  21.01.2013      _i686_  (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,70    0,00    0,91    0,53    0,00   97,86

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sdb               1,47    10,91    2,24 1729,59   395,51 222740,91   128,84    24,02   13,87   0,49  84,30
sda               6,20     1,25 1735,78    1,11 222891,00   226,18   128,46     1,90    1,10   0,19  33,30
Zwróc uwagę na zapisy do sdb - co pokazuje cat /proc/mdstat ?

Polak_war
21-01-2013, 18:06
Witam, zakuiłęm niedawno serwer (ovh nie kimsufi) i pojawił sie problem po kilku dniach serwer normalnie se leciał - działa na nim tylko MYSQL i niedawno po prostu się wyłączył, gdzy sie już załączył zaczeło się dziwne mulenie logowanie do ssh trwalo dość długo.. sprawdziłem iostat:

log:
Kod:
Linux 3.2.13-grsec-xxxx-grs-ipv6-32 (ns387839.ovh.net)  21.01.2013      _i686_  (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,70    0,00    0,91    0,53    0,00   97,86

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sdb               1,47    10,91    2,24 1729,59   395,51 222740,91   128,84    24,02   13,87   0,49  84,30
sda               6,20     1,25 1735,78    1,11 222891,00   226,18   128,46     1,90    1,10   0,19  33,30
md2               0,00     0,00    6,69    1,17   749,63   211,03   122,24     0,00    0,00   0,00   0,00
md1               0,00     0,00    0,55    1,00    21,26    13,63    22,50     0,00    0,00   0,00   0,00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,00    0,00    1,51    0,00    0,00   98,49

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sdb               0,00     0,00    0,00 1770,00     0,00 226560,00   128,00    30,66   17,31   0,56 100,00
sda               0,00     0,00 1771,00    0,00 226688,00     0,00   128,00     0,30    0,17   0,17  30,00
md2               0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00   0,00   0,00
md1               0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00   0,00   0,00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,00    0,00    0,25    0,51    0,00   99,24

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sdb               0,00    64,00    0,00 1451,00     0,00 192312,00   132,54    25,48   17,69   0,69 100,00
sda              45,00     2,00 1454,00    5,00 189568,00    56,00   129,97     0,71    0,44   0,23  34,00
md2               0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00   0,00   0,00
md1               0,00     0,00    0,00    7,00     0,00    56,00     8,00     0,00    0,00   0,00   0,00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,00    0,00    0,25  1076432905,76    0,00  100,25

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sdb               0,00    47,00    0,00  151,00     0,00 26128,00   173,03     1,35    9,25   1,40  21,20
sda               0,00     0,00  176,00    2,00 24832,00    16,00   139,60     0,98    5,87   0,45   8,00
md2               0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00   0,00   0,00
md1               0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00   0,00   0,00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0,00    0,00    0,51    0,00    0,00   99,49

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sdb               0,00     0,00    0,00 1233,00     0,00 157824,00   128,00    22,71   18,24   0,64  78,40
sda               0,00     0,00 1263,00    0,00 161664,00     0,00   128,00     2,19    1,74   0,25  31,20
md2               0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00   0,00   0,00
md1               0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00   0,00   0,00

potem iotop
Kod:
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
co mam zrobić ? nigdy nie miałem tego typu problemów z dyskami... nie wiem dysk pada czy coś ?