Fórum Root.cz
Hlavní témata => Server => Téma založeno: rado3105 22. 08. 2012, 12:29:03
-
Mam debian squeeze server. Su tam dva disky, primarny-systemovy SSD. Druhy ako ulozisko. Chcel by som aby kontrola toho druheho disku neprebiehala pri restarte (3tb a trva dlho kym statrtne system) a ci je nejaka moznost az po nabehnuti systemu a potom po kontrole ak su chyby znova restartovat system. Dakujem...(momentalne to je nastavene v fstab ako defaults, 0 2)
-
napr. takto:
tune2fs -c 0 /dev/sdb1
-
A teraz prikaz ktory mi sam skontroluje disk po kazdom restarte ale az po nabehnuti systemu - pricom sam si ho najprv odpoji, ak su chyby restartuje system...
?
-
Jedním příkazem to, obávám se, udělat nepůjde. :)
Fsck při startu se obvykle dělá preventivně při určitém počtu připojení a/nebo uběhnutí dostatečně dlouhé doby (co přijde dřív...).
Informace o tom získáš z:
tune2fs -l /dev/sdaX
Z požadovaných hodnot (Mount count a Last checked) si podmínkou ověříš, jestli je čas na kontrolu a pokud jo, tak disk odpojíš a spustíš fsck s takovými parametry, které se hodí na to, co potřebuješ. Teoreticky si můžeš udělat i víc úrovní kontrol, třeba preventivně jednou měsíčně a jednou ročně hlubší kontrolu...
Pokud by byl oddíl blbě odpojen a mohl být poškozen, tak by to IMHO měl mount zahlásit a skončit s chybou bez provedení mountu (ale jistý si tím nejsem) - nicméně, jestli připojuješ automaticky přes fstab, tak tahle kontrola stejně proběhne při startu, ať chceš, nebo ne...
-
PS: a nezapomeň, že při odpojeném disku ti stále běží klientské služby! Pokud tam máš třeba nějaký samba share, nebo www (a přistupují na ten disk), tak ty služby před odpojením disku zastav, určitě nechceš najednou dostávat samé 404/500/... chyby.
-
A teraz prikaz ktory mi sam skontroluje disk po kazdom restarte ale az po nabehnuti systemu - pricom sam si ho najprv odpoji, ak su chyby restartuje system...
?
Slusny clovek by napisal dakujem
-
Dakujem chladic ak ta to potesi. Ale pravdepodobne si nepochopil co chcem. To co si napisal dokazem urobit v fstabe zmenenim 0 2 na 0 0. Alebo sa mylim?
Vlastne teraz rozmyslam ako to spravit.
Vypnem kontrolu toho disku v fstabe.
Je pripojeny ako /dev/sda1 na /media/xxx.
Takze ked odmountujem, tak klientske sluzby tam nebudu pristupovat, lebo tie pristupuju na /media/xxx nie na /dev...
Bezi tam len samba share....
Potreboval by som nejaky prikaz, ktory vzdy po zapnuti systemu - nabehnuti os, skontroloval dany disk a opravil ho, ak by trebalo restartovat tak restartoval pc.
Hlboka kontrola sa robi akym prikazom?
A velmi pekne dakujem za kazdu radu.....
-
Prostě si do spouštěcího init scriptu v runlevelu S dáš kontrolu disku přes fsck a pak ten disk namontuješ příkazem mount (případně před tím restartuješ). To je všechno.
-
A ked ho nepojde mountnut lebo tam bude vela chyb a bude treba restart?
Aky je prikaz na hlboku kontrolu disku?
-
Napsal bych si jednoduchý skript, který bych umístil třeba do /etc/rc.d/rc.local:
#!/bin/bash
#Odpojit sluzby, ktere pristupuji na kontrolovany disk
/etc/init.d/samba stop
#Odpojit disk - ke kontrole musi byt odpojeny
umount /dev/sda1
#Kontrola disku
if mountpoint -q /media/xxx
then
echo "kontrola nebyla provedena, disk je pripojen" >> /dev/null
else
fsck -fyv /dev/sda1
vystup=$?
#The following are the possible exit codes for fsck command.
#0 – No errors
#1 – Filesystem errors corrected
#2 – System should be rebooted
#4 – Filesystem errors left uncorrected
#8 – Operational error
#16 – Usage or syntax error
#32 – Fsck canceled by user request
#128 – Shared-library error
[ $(vystup) = "2" ] && restartuj pocitac
fi
-
Linux pořád ještě neumí background fsck?
-
Kontrola disku
if mountpoint -q /media/xxx
then
echo "kontrola nebyla provedena, disk je pripojen" >> /dev/null
else
fsck -fyv /dev/sda1
vystup=$?
Toto som moc nepochopil.
Predtym sa disk odmountuje, odpoja sa sluzby. Tento prikaz hovori ze ak je disk pripojeny tak sa neurobi kontrola, ak nie je tak sa urobi.
Lenze disk sa odmountuje, disk nevyzaduje kontrolu - takze nebude mountnuty.....asi by bolo vhodnejsie dat umount a vypnutie sluzieb po else a spojit to nejako s fsck alebo ? dakujem...
-
K čemu vám prosím je background fsck, když to potřebujete mít odpojené? ::)
-
Preco by som to potreboval mat odpojene? Uvital by som background fsck, na btrfs sa tesim ako male decko....
Ale zatial to potrebujem vyriesit v zavislosti od realnej situacie a fsck sa pusta az po odpojeni....
-
Protože jinak hovno opravíš. Jinak už jsme ti v minulém threadu napsali, ať si pořídíš UPSku, ono totiž normálně žádný problém není, když ten server přestaneš vypínat/restartovat jako prase, tak se ti nebude fsck spouštět při každém rebootu.
-
K čemu vám prosím je background fsck, když to potřebujete mít odpojené? ::)
Odpojené to potřebuje mít možná extX, ale principielní nutnost to není.
Kirk McKusick, the developer of Berkeley FFS, solved this problem with Soft Updates: all pending meta-data updates are kept in memory and written out to disk in a sorted sequence (“ordered meta-data updates”). This has the effect that, in case of heavy meta-data operations, later updates to an item “catch” the earlier ones if the earlier ones are still in memory and have not already been written to disk. So all operations on, say, a directory are generally performed in memory before the update is written to disk (the data blocks are sorted according to their position so that they will not be on the disk ahead of their meta-data). If the system crashes, this causes an implicit “log rewind”: all operations which did not find their way to the disk appear as if they had never happened. A consistent filesystem state is maintained that appears to be the one of 30 to 60 seconds earlier. The algorithm used guarantees that all resources in use are marked as such in their appropriate bitmaps: blocks and inodes. After a crash, the only resource allocation error that occurs is that resources are marked as “used” which are actually “free”. fsck( 8 ) recognizes this situation, and frees the resources that are no longer used. It is safe to ignore the dirty state of the filesystem after a crash by forcibly mounting it with mount -f. In order to free resources that may be unused, fsck( 8 ) needs to be run at a later time. This is the idea behind the background fsck: at system startup time, only a snapshot of the filesystem is recorded. The fsck can be run later on. All file systems can then be mounted “dirty”, so the system startup proceeds in multiuser mode. Then, background fscks will be scheduled for all file systems where this is required, to free resources that may be unused. (File systems that do not use Soft Updates still need the usual foreground fsck though.)
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/configtuning-disk.html
http://www.freebsd.org/doc/handbook/snapshots.html
http://static.usenix.org/publications/library/proceedings/bsdcon02/mckusick/mckusick_html/index.html
-
Nikto neporadi na co som sa pytal? Phil ok to neries, proste sa nieco pytam....a rad by som keby niekto poradil....
-
Kontrola disku
if mountpoint -q /media/xxx
then
echo "kontrola nebyla provedena, disk je pripojen" >> /dev/null
else
fsck -fyv /dev/sda1
vystup=$?
Toto som moc nepochopil.
Predtym sa disk odmountuje, odpoja sa sluzby. Tento prikaz hovori ze ak je disk pripojeny tak sa neurobi kontrola, ak nie je tak sa urobi.
Lenze disk sa odmountuje, disk nevyzaduje kontrolu - takze nebude mountnuty.....asi by bolo vhodnejsie dat umount a vypnutie sluzieb po else a spojit to nejako s fsck alebo ? dakujem...
-
asi by bolo vhodnejsie dat umount a vypnutie sluzieb po else a spojit to nejako s fsck alebo ? dakujem...
Aha, takže místo toho, aby se kontrola spustila normálně při bootu, opravily se případné chyby a naběhl systém, tak po této vyfikundaci se:
- spustí se služby
- načež se služby opět ukončí
- zkontroluje se disk
- a následuje reboot
Rozumím tomu "vylepšení" správně? Jsem jediný, komu to přijde padlé na hlavu? ::)
-
Problem je ze ked je systemovy disk v poriadku, system nenabehne, lebo tento druhy disk, kde su len data ukazuje chyby a treba urobit manualne fsck....
-
no a co mas ve fstabu? melo by zafungovat "0 0", jak uz nekdo radil
jestli to nezafunguje, tak muzes zkusit do options napsat noauto, anebo normalne zakomentuj celej radek s /media # a bude
pak se nebude pripojovat ani kontrolovat.
prikaz k oprave trochu zalezi na pouzitym filesystemu, jestli mas extX, tak e2fsck -f -y -D /dev/neco
jak to opravis, tak oddelas ve fstabu #, manualne primoutujes (mount /media) a eventuelne prestartujes
hod sem /etc/fstab
-
Problem je ze ked je systemovy disk v poriadku, system nenabehne, lebo tento druhy disk, kde su len data ukazuje chyby a treba urobit manualne fsck....
Normální je spustit tu kontrolu ve chvíli, kdy neběží služby, které by chtěly ten disk využívat. Takže:
- ve fstab je parametr noauto, tj. disk se nenamontuje
- případnou kontrolu spustit dřív než se pouštějí služby tento disk využívající. To se dělá obvykle někde v /etc/rc.S (a v tom skriptu ten disk následně namontovat), případně pokud chce mít člověk puštěný třeba ssh, tak si ty služby uspořádá jinak
-
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# / was on /dev/sda1 during installation
UUID=4fbdeeae-3bf4-433c-91b6-2a88d4745f2f / ext3 errors=remount-ro 0 1
# swap was on /dev/sda2 during installation
UUID=c9077f09-038e-45d5-9dff-c7716fcc8a05 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
UUID=a3d1a1df-cc46-4c7a-a7f5-2ac4641a7177 /media/wd1500GB ext4 defaults 0 2
Ked nedam kontrolu a budu chyby na tom disku, tak ho nepripoji, alebo sa mylim?
-
nevim, kazdej filesystem to ma trochu jinak, i ruzny didtribuce ruzne zachazi s tim poslednim cislem, ktery bys mel dat na 0
rozhodne jestli mas podezreni, ze tam chyby jsou, tak dej za defaults,noauto nebo celej radek zakomentuj #, pak se urcite nepripoji a ty udelas rucne kontrolu po nabehnuti systemu, to jsi chtel, ne?
-
při errors=remount-ro se filesystem při výskytu chyb přimontuje read-only, takže ho nemůžeš poškodit ještě víc. Netýká se to ovšem kontroly při startu, ale v situaci, kdy se objeví chyba na přimontovaném disku při spuštěném systému.
-
Nie to som nechcel. Este jedenkrat to napisem nanovo.
Potrebujem aby mi tento disk pripojilo vzdy po starte. Kedze ak sa na tomto druhom disku(ulozny) nachadzaju chyby velakrat je potrebne urobit manualne fsck - avsak nie vzdy to je mozne + nenabehne ani system kde su ine sluzby ktore potrebujem aby nabehli.
Tak som sa pytal, ci je mozne urobit nieco tak aby ten druhy disk kontrolovalo az po nabehnuti systemu a vsetkych funkcii.
Ak obsahuje chyby a je potrebny restart nech ho restartuje a nanovo zapne a namountuje. Proste aby vzdy po zapnuti systemu ho mountlo a ak nejde mountnut urobilo kontrolu toho druheho disku(ale az po zapnuti a nabehnuti systemu).
Ten skript co tu bol poslany mi vyhovuje ale nerozumil som tej strednej casti....
-
Takze co chcem dosiahnut.
Disk sa pri starte nenamountuje. Po nabehnuti prebehne systemu sa spusti skript kde bude prikaz na kontrolu fsck, ak fsck ukaze chyby a bude treba restart, system sa restartuje. Ak nebude obsahovat chyby mountne sa.
-
No, napiš to klidně ještě vosumkrát. Když tam chyby nebudou, tak to sice tvým postupem bude dál, ale zato tam bude horší cesta. Zatímco když tam chyby budou, tak to sice taky bude dál, ale zato tam bude ... ještě horší cesta. Čas to neušetří vůbec žádný. A zcela jistě jednou dopadneš tak, že přijdeš o data. Tak prosímtě přestaň rvát kabel ze zdroje, zaplať si někoho, kdo ti tam připojí tu UPS a přestaň vymejšlet krávoviny.
-
Takze co chcem dosiahnut.
Disk sa pri starte nenamountuje. Po nabehnuti prebehne systemu sa spusti skript kde bude prikaz na kontrolu fsck, ak fsck ukaze chyby a bude treba restart, system sa restartuje. Ak nebude obsahovat chyby mountne sa.
Děláš si srandu, nebo jsi mentálně zaostalý? Vždyť ti to tady různí lidi několikrát napsali.
-
Takze co chcem dosiahnut.
Disk sa pri starte nenamountuje.
toho dosahnes jen pomoci parametru noauto ve fstabu, jak tu jiz nekolikrat zaznelo
aby se nekontroloval dlouhym fsck pri startu, je potreba na konci radku mit 0, jak tu jiz nekolikrat zaznelo
Po nabehnuti prebehne systemu sa spusti skript kde bude prikaz na kontrolu fsck, ak fsck ukaze chyby a bude treba restart, system sa restartuje. Ak nebude obsahovat chyby mountne sa.
jasne, udelas si skript, nebo to udelas rucne, jak je libo, ale uz asi chapes, ze se bez toho predchoziho kroku neobejdes?
jinak celkem nechapu, proc chces porad pri chybe restartovat? jestli je chyba, tak opravis, mountnes, pustis sambu a jedes dal, ne?
takze jeste doplnenim toho prvniho kroku by bylo zabranit automatickymu spousteni samby, aby se pustila az po kontrole a mountnuti toho /media disku, trebas z nejakyho skriptu
ten tvuj skript prijde do /etc/rc.local (jestli se nepletu) a automaticky pusteni samby zrusis treba timto: update-rc.d -f samba remove
-
No, napiš to klidně ještě vosumkrát. Když tam chyby nebudou, tak to sice tvým postupem bude dál, ale zato tam bude horší cesta. Zatímco když tam chyby budou, tak to sice taky bude dál, ale zato tam bude ... ještě horší cesta. Čas to neušetří vůbec žádný. A zcela jistě jednou dopadneš tak, že přijdeš o data. Tak prosímtě přestaň rvát kabel ze zdroje, zaplať si někoho, kdo ti tam připojí tu UPS a přestaň vymejšlet krávoviny.
Já to celkem chápu. Jednou jsem musel udělat tftp server, který po výpadku nabootuje do 1min. a začne poskytovat služby. Jde to, ale člověk musel trochu kouzlit. (read-only kritické filesystémy a pod.)
-
Já to celkem chápu. Jednou jsem musel udělat tftp server, který po výpadku nabootuje do 1min. a začne poskytovat služby. Jde to, ale člověk musel trochu kouzlit. (read-only kritické filesystémy a pod.)
No jistě, ale to jaksi vůbec neřeší to, že tady má na tom disku (kde je permanentně rozdrbaný FS kvůli tomu, že tazatel nechápe, jak funguje UPS) data, která servíruje přes sambu. Takže mu systém sice naběhne, ale ta Samba stejně nepojede, dokud nedoběhne fsck. Fakt nevím, jaký rozdíl je mezí tím, že server neběží, protože fsck, a mezi tím, že server neběží, protože fsck, zato musím navrch psát zbytečně skripty a nesystémově spouštět a restartovat služby). A to teda ještě pomlčím o tom, že původně chtěl problém "řešit" tím, že tam dá BTRFS, protože ten nemá fsck a tak problém zmizí. ;D ::)
Pochopím, že si někdo kvůli tomuhle přenastaví periodickou kontrolu filesystému po X rebootech přes tune2fs, ale provozovat takovéhle harakiri kvůli tomu, že nejsem schopen vypnout normálně server, to je teda úplně praštěné na hlavu.
-
Prepacte ale chcem poradit, dovod preco to nerobim tak ako niekto pise nemusite riesit. Ak nechcete poradit nemusite, ale prosim vas nepiste tu blbosti, preco to nerobim tak a tak. Keby tam bol filesystem ako ZFS stavalo by sa mi to iste ako sa mi stava pri ext4? nie...krista ved uz ma konecne pochopte...
-
Viz (http://forum.root.cz/index.php?topic=4840.msg41626#msg41626)
-
Prepacte ale chcem poradit, dovod preco to nerobim tak ako niekto pise nemusite riesit. Ak nechcete poradit nemusite, ale prosim vas nepiste tu blbosti, preco to nerobim tak a tak. Keby tam bol filesystem ako ZFS stavalo by sa mi to iste ako sa mi stava pri ext4? nie...krista ved uz ma konecne pochopte...
Jediný 100% bezpečný způsob, jak nepoškodit žádná data při výpadku, který znám, je mít to read-only (ideálně vypálené v ROM). Dokud budeš mít neustále výpadky, tak se kontrol jinak nezbavíš, tak to už pochop. A nebo se prostě vykašli na kontroly, mountuj to bez nich a akorát pak nechoď s dotazem "jak zachránit data z totálně rozsypaného FS".
-
Prepacte ale chcem poradit, dovod preco to nerobim tak ako niekto pise nemusite riesit. Ak nechcete poradit nemusite, ale prosim vas nepiste tu blbosti, preco to nerobim tak a tak. Keby tam bol filesystem ako ZFS stavalo by sa mi to iste ako sa mi stava pri ext4? nie...krista ved uz ma konecne pochopte...
- zakaž automatický mount toho filesystému (noauto ve fstabu)
- zakaž automatický start té Samby
- do rc.local si dej skript, který udělá fsck (bez dotazů) a pak startne tu Sambu
V tomhle postupu nevidím žádný problém, jen musíš nějak zajistit, aby Ti někdo jiný nemountnul ten FS dřív ...
-
Linux pořád ještě neumí background fsck?
Jak který fs. Ext4 mě dokonce překvapila svým background (lazy) mkfs. mkfs udělá potřebné minimum a další věci se dějí po prvním mountu, přičemž ale s tím jde normálně pracovat.
XFS a JFS nemají zvláštní check a místo toho se dělá kontrola / oprava v rámci mountu (a netrvá to tak dlouho, jako fsck.ext3).
-
rado3105, ty jsi fakt dobrej. Přijdeš si sem, začneš házet dotazy stylem "Rozkazuju vám, ať mi poradíte" a když ti i přes to někdo poradí, tak mu ještě vynadáš. A ani jednou jsi ještě nepoděkoval.