Vlákno názorů k článku
Defragmentace disků v Linuxu
Jak defragmentovat FAT
Re: Jak defragmentovat FAT
Re: Jak defragmentovat FAT
Re: Jak defragmentovat FAT
Re: Jak defragmentovat FAT
Re: Jak defragmentovat FAT
Re: Jak defragmentovat FAT
Re: Jak defragmentovat FAT
Re: Jak defragmentovat FAT
Re: Jak defragmentovat FATRe: Jak defragmentovat FAT
Dalsi duvod, proc jsem na Linuxu.No, já bych možná připomenul, že na Windows už se nějaký ten pátek dá používat i novější FS než FAT.
Ale jinak Váš příspěvek je v kontextu ostatních, které se hádají o tom, že na Linuxu není kloudný defragmenter žádný (kromě "kopírovacího" přístupu), docela vtipný.
Re: Jak defragmentovat FATRe: Jak defragmentovat FAT
2) Reiser4 se ani po 2 letech nezfragmentoval tak, abych to musel resit. 0,5% fragmentace nebudu resit
Re: Jak defragmentovat FATRe: Jak defragmentovat FAT
2) Ale jak tu už dost lidí psalo, záleží na způsobu využití FS a na jeho zaplnění. Jak to je tedy u Vás?
Re: Jak defragmentovat FATRe: Jak defragmentovat FAT
FS je reiser4, system Gentoo.
Re: Jak defragmentovat FATRe: Jak defragmentovat FAT
Re: Jak defragmentovat FAT
Podle me nejlepsi defrag je koupit si jeste jeden disk a vsechno na nej zkopirovat a pak to prekopirovat zpatky. Pravda, neni to nejlevnejsi, ale stoprocentni a od jiste valikosti defragmentace i nejrychlejsi. Navic to ma vedlejsi efekt - zalohu.
Re: Jak defragmentovat FAT
Takovy defrag by ale slo asi jen s obtizemi pouzit na primountovanem oddilu.Proč? Programy snad nepřistupují ke konkrétním sektorům, ale drží si nějaké file descriptory a to že tomu "něco" bude přehazovat soubory pod rukama vůbec nemusí vidět. (Jo, tak bude to složitější na implementaci než kopírování, ale nevidím důvod, proč by to nemělo jít.)
Podle me nejlepsi defrag je koupit si jeste jeden disk a vsechno na nej zkopirovat a pak to prekopirovat zpatky.Jistě. Taky nejlevnější. A hlavně to budu určitě dělat na běžícím systému.
Re: Jak defragmentovat FAT
Proč? Programy snad nepřistupují ke konkrétním sektorům, ale drží si nějaké file descriptory a to že tomu "něco" bude přehazovat soubory pod rukama vůbec nemusí vidět. (Jo, tak bude to složitější na implementaci než kopírování, ale nevidím důvod, proč by to nemělo jít.)
Ano, existujú online repackery (defrag), napr. pre XFS, plánované (tj. neviem v akom stave je implementácia) sú pre Ext4 a Reiser4.
Ono najlepší "defrag", čo sa týka vplyvu na výkon je aj tak zobrať súbory, ku ktorým jedna aplikácia/proces pristupuje a prekopírovať ich (typický alokátor spraví to, že sa ich bude snažiť naalokovať blízko seba, čím spôsobí menšie seekovanie). Naopak "obyčajný defrag" nemá ani šajnu v súvislostiach ktorý fajl sa bude ako používať, takže ich síce môže defragmentovať, ale zároveň rozhádzať po disku (a bude to seekovať viac).
BTW defrag mal skôr zmysel v DOSe, kde sa čítal jeden fajl v jednom momente (dnes je to tak skôr kvôli dobrému pocitu modulo extrémne prípady, keby sme rozsypali fajly po disku jak čaj). Moderné FS alokujú fajly nie po jednotlivých blokoch, ale po extentoch (premenlivo dlhý súvislý pás blokov), tu delayed allocation dosť pomáha proti fragmentácii preventívne.
Pr. XFS má niekoľko B+ stromov, podľa jedného hľadá voľný extent najbližšej vhodnej veľkosti, podľa druhého hľadá extent/blok v blízkosti predchádzajúceho, tie B+ stromy sú tuším per AG (allocation group, ale už si to nastropro nepamätám).
Počet fragmentov na MB apod. je absolútne nič nehovoriaca metrika (nehovorí nič o čase seeku/"vzdialenosti" medzi fragmentami, nezaoberá sa o koreláciami medzi čítaním súborov atď).
Re: Jak defragmentovat FAT
Těžko budete hledat extent nejbližší vhodné velikosti, když netušíte, jak bude soubor velký. A přiznejme si, zpravidla to nevíte. Aplikace vytvoří prázdný soubor, a mnoho FS už v tu chvíli alokuje (NTFS udělá jen záznam v MFT). Zapíšete pár byte nebo kB, postupně připisujete... Jestli víte o alokátoru s rozostřeným viděním času, rád si o něm přečtu. Zatím jsem četl jen o výtazích s rozostřeným viděním času ve Stopaři ;)
Re: Jak defragmentovat FAT
Je k tomu nejaký link jak presne to robia? (robí to nejaký explicitný proces, sám NTFS driver, meria sa počet prístupov, počet čítaní, počet čítaných blokov...?) Inak mi neni jasné, načo sa pozerá na súbory použité pri štarte, tie budú spravidla úplne iné než tie, ktoré sa budú používač pri štarte (až na psychologický efekt zrýchlenia štartu o trocha).
XFS má stratégiu podľa alokátoru, inak sa bude správať u defaultného a inak u filestreams alokátoru. Je pravda, že uhádnuť dopredu veľkosť súboru obecne nejde, ale s delayed allocation sa dajú aspoň naalokovať maximálne dlhé extenty až sa mine pamäť (ďalšie sa budú hľadať typicky v rovnakej AG, v závislosti od alokátoru a voľného miesta). Allocation groups (AG) sú volené tak, aby v rámci nich bol seek krátky (po začatom zápise sa až po zaplnení "preskočí" do ďalšej AG).
BTW vytvoriť záznam o existencii súboru je možné okamžite (s alokáciou miesta sa dá počkať až sa rozbehne zápis, jak to scheduluje XFS).
Re: Jak defragmentovat FAT
Re: Jak defragmentovat FAT
Čekat s alokací "až se mine pamäť" (předpokládám až se naplní paměť) je špatně. Vede to k hromadě dirty pages, a když pak z nějakého důvodu paměť potřebujete, musíte nejprve zuřivě hrabat po disku (a ten kdo tu paměť potřeboval čeká). Navíc v případě problému typu výpadku proudu přijdete o velkou spoustu dat, což je nepřijatelné. OS se naopak má snažit, aby data dostal na disk bez zbytečného prodlení. V případě serverových aplikací by pak mělo být zaručeno, že když se navrátí synchronní volání, případný výpadek napájení nezpůsobí ztrátu dat (aneb proč jsou důležité baterií zálohované řadiče).
NTFS drží metadata souboru v MFT, a vlastní data buď v MTF (pokud je jich málo), nebo zvlášť. Protože alokační blok s metadaty stejně musíte modifikovat při změně dat souboru, je původně-malý soubor (v řádu kB - musel bych se podívat) přímo v MFT spolu s metadaty. Když se zvětší, bude se alokovat mimo MFT (včetně dat zapsaných původně do MFT), záznam v MTF se zaktualizuje, a tam uložená data souboru zneplatní. Tím je zajištěno, že malé soubory jsou pohromadě se svými metadaty, což je rychlé. V běžném scénáři to nevede ke ztrátě výkonu.
Re: Jak defragmentovat FAT
Samozrejme delayed allocation je blbá pri výpadku prúdu apod. Samozrejme je stále možné otvárať súbory alebo mountiť FS sychrónne (čo zase brzdí výkon). XFS má naviac "writebarrier", čo umožňuje dokonca zaistiť, že dáta nezostali len v HDD cache a že sa dostali "na platne". Nepoznám iný "bežný" FS s touto featurou.
XFS a Reiser3,4 robia tiež tail-packing (tj. držia malé adresáre/súbory hneď pri metadátach, aj keď u XFS neviem či to robí aj pre súbory). Tail-packing je dobrý pre zmenšovanie fragmentácie a ak read o hodne prevyšuje write/append (kvôli výkonu).
Inak mať MFT na začiatku partície neni moc dobrý nápad, pretože sa potom musí moc seekovať medzi čítaním dát a metadát.
Re: Jak defragmentovat FAT
Ve Windows můžete použít CreateFile s flagem FILE_FLAG_WRITE_THROUGH.
MFT by hlavně neměla být příliš fragmentovaná, což NTFS celkem dobře zajišťuje.
Re: Jak defragmentovat FAT
Re: Jak defragmentovat FAT
http://support.microsoft.com/kb/227463
http://support.microsoft.com/kb/174619
http://www.amosdec.com/pdf/DIVERS/DSKvsW2000defrager.pdf
Re: Jak defragmentovat FAT
Ne, nemám takový pocit. A to mimo jiné proto, že vím, jak vypadá MS API pro defragmentaci (které používá mimo jiné defrag vestavěný ve Windows).
http://msdn2.microsoft.com/en-us/library/aa363911(VS.85).aspx
Re: Jak defragmentovat FAT
Re: Jak defragmentovat FAT
Re: Jak defragmentovat FAT
Re: Jak defragmentovat FAT
http://support.microsoft.com/kb/227463

