Популярні файлові системи. Сучасні файлові системи: що вибрати для зовнішнього накопичувача і чому. Файлова система ext2

Для забезпечення нормальної роботи персонального комп'ютера, потрібна установка багатьох необхідних програм і сервісів.

Що таке файлова система

Незамінним елементом операційної системи є файлові системи, які забезпечують доступ до інформації на диску при одночасному запуску кількох процесів. Тобто вони здійснюють зручний доступ до даних, що містяться на диску, при цьому усуваючи можливі некоректні ситуації.

Файлової системи також доступний різноплановий доступ до інформації: від її сортування і переміщення до видалення. Закономірно виникає питання: яка файлова система краще, наскільки вона зручна в експлуатації і які її гарантії?

Популярні файлові системи

  1. Найбільш популярною вважається файлова система FAT. Ось тільки її явний недолік - це обмежена кількість знаків при назві файлу, що значно зменшує ефективність управління даними.
  2. Цей недолік усунуто в більш пізніх розробках системи NTFS. Оскільки всі операційні системи розміщують свою інформацію на дисках, файлові системи тут просто незамінні і повинні якісно виконувати свої функції, без будь-яких збоїв. Що стосується файлової системи NTFS, то вона характеризується як раз таким необхідним властивістю, як самостійне відновлення після практично будь-яких некоректних ситуаціях.

Файлова система NTFS

Ще одна дуже важлива характеристика: ця система при зміні даних або позитивно завершує процес, або взагалі його скасовує, що не дозволяє внести сум'яття і плутанину в поле інформації. NTFS має корисну опцію - стиснення файлів. При цьому її можна застосовувати до окремих файлів, що абсолютно не впливає на якість даних або на роботу з ними.

Багато фахівців, розмірковуючи на тему того, яка файлова система краще у плані безпеки, називають саме NTFS, оскільки ця система містить в собі безліч засобів, спрямованих на розмежування прав об'єктів. Як часто буває, теорія безсила перед практикою: в реальному використанні система далека від ідеальної.

Файлова система FAT

У зв'язку з усім вищесказаним, FAT задовольняла потреби операційних систем раннього етапу розвитку. Але коли з'явився доступ до великих обсягів пам'яті, через своїх обмежень вона здала свої позиції більш прогресивним системам. Але при цьому FAT більш ефективно працює з невеликими каталогами файлів і ідеально підходить для повільних дисків.

З файлами великого обсягу така система, на жаль, не впорається, постійно будуть виникати різні труднощі. У виборі файлової системи важливо визначитися з завданнями, які ви перед ними будете ставити. Тому, якщо виникає необхідність роботи з великогабаритними дисками, забитими інформацій і на високій швидкості, то в такому випадку краще підійде система NTFS. Для користувачів, які мають намір виконувати звичайні дії з даними і не мають потреби використовувати складні програми, в такій ситуації більш ефективною буде якраз файлова система FAT.

Файлова система для флешки

Краща файлова система для флешки - досить актуальна проблема, оскільки такий вид зберігання інформації на сьогодні найбільш популярний, багато хто вважає, що для флеш-накопичувача потрібна якась особлива система. Багато користувачів непогано відгукуються про систему UDF, оскільки вона без особливих труднощів підтримується практично всіма сучасними операційними системами. Але і вище описані файлові системи також прекрасно впораються з усіма потрібними діями. Тому можете сміливо робити вибір на користь будь-якої з них, так як вони все мають високий ступінь безпеки та ефективності у використанні.

Був час, коли питання, винесене в заголовок статті, просто не стояв перед користувачами. Незважаючи на те що файлових систем було більше однієї ще до моменту появи перших персоналок, вибору зазвичай не існувало. Просто тому, що різних несумісних (або лише частково сумісних) архітектур було багато, за кожною стояла конкретна фірма, яка використовує свою власну операційну систему і має власні уявлення про те, «що таке добре і що таке погано». Причому ще й носії даних застосовувалися різні і один з одним несумісні. А якщо і сумісні апаратно (наприклад, НГМД використовувалися дуже багатьма обчислювальними системами, причому основні типорозміри дисководів на апаратному рівні були так-сяк стандартизовані), то дані все організовували по-своєму. Більш-менш сумісними виявилися стрічкові накопичувачі, оскільки так уже склалося історично, що ще з часів «великих» комп'ютерів саме вони найчастіше застосовувалися для обміну даними між системами різної архітектури. Але єдиними масовими магнітофонами, які використовувалися спільно з персоналками, виявилися побутові, а примітивність типових компакт-касет приводила до того, що всі виробники, якщо вже їх і використовували, намагалися «вичавити» з носія максимум, причому всі робили це різними способами.

Ситуація покращилася лише тоді, коли стало ясно, що лінійка IBM PC (прародителька практично всіх тих, хто вижив на сьогоднішній день архітектур ПЕОМ) поступово стає стандартом де-факто в галузі (і не тільки). Ну а коли на ринку з'являється домінуюча архітектура, всі інші змушені це враховувати - з міркувань виживання. Основним змінним носієм даних тоді були гнучкі диски, так що досить швидко засобом забезпечення сумісності виявилися ті їх формати, які використовувала компанія IBM. Далеко не найкращі, треба помітити. Причому не тільки по апаратурі, хоча і це теж - незважаючи на те що перші дисководи на 3,5 "з'явилися в тому ж році, що і перші РС, і багато виробників почали їх використовувати ще в першій половині 80-х років, сама IBM перейшла на цей конструктив лише в 1987 році, а до того моменту чіплялася за п'ятидюймовий дисководи, представлені на ринку ще в 1976 році. Однак і з точки зору форматування «оригінальні» розробки IBM поступалися навіть багатьом клонам її комп'ютерів - зокрема, компанія на двосторонніх дискетах подвійної щільності зберігала лише 360 Кбайт інформації, в той час як конкуренти з них же без особливих хитрувань вичавлювали і 600-720 Кбайт . Ну а вже про примітивність файлової системи FAT не розмірковувати тільки ледачий. Хоча, цілком можливо, саме примітивність і стала другою причиною перетворення «пісюкових дискет» в стандарт - його було дуже вже легко підтримувати. Нехай хоча б тільки для читання і на додаток до власного «просунутому» варіанту.

Втім, з точки зору сьогоднішнього дня все це має лише історичну цінність. Дискети давно вже перестали використовуватися в якості основного засобу перенесення інформації, та й альтернативних лінійці «х86-based» комп'ютерів на більшості сегментів ринку не залишилося. Однак не можна сказати, що це повністю вирішило всі проблеми. Справа в тому, що на цій самій єдиною стандартній платформі працює мало не більше операційних систем, ніж їх було за часів, коли «розцвітали все квіти». Навіть якщо взяти найпоширеніше на ринку сімейство, а саме Windows, то воно, строго кажучи, неоднорідний. Велика частина інсталяцій доводиться до сих пір на Windows XP - родом з початку століття, але що займає мало не 2/3 ринку. Десь чверть останнього доводиться на сучасні версії Windows, а решту - на збірну солянку зі збережених комп'ютерів з системами, що з'явилися до Windows XP (їх зараз залишилося мало, але все ще зустрічаються), різні версії MacOS і цілісний букет UNIX-систем. Але навіть якщо вам пощастило ніколи не стикатися в практичному житті ні з чим, окрім Windows XP, повністю це проблему не вирішує - колись «комп'ютерні» технології давно вже вийшли за межі цього ринку, активно втручаючись в сферу побутової електроніки. Наприклад, більшість сьогоднішніх відеоплеєрів вміє працювати з USB-накопичувачами, а у фотоапаратах або мобільних телефонах повсюдно застосовуються різноманітні карти пам'яті. І тут все виявляється просто тільки в тому випадку, якщо, наприклад, карта використовується виключно в «своєму» фотоапараті - форматіруем її засобами камери і назавжди забуваємо про це питання :) Однак якщо нам треба хоча б обмінюватися даними з комп'ютером, тут вже все не так очевидно ...

Причина виникнення проблеми в тому, що практично всі сучасні операційні системи за рідкісним винятком підтримують не одну файлову систему (як це було 20-30 років тому), а кілька. Причому ступінь їх підтримки може бути абсолютно різною. І іноді змінною за допомогою додаткових програм. Варіантів маса, тому ми не будемо намагатися охопити їх усі в одній невеликій статті. Але достатня кількість базової інформації, щоб можна було зрозуміти «куди копати», все ж спробуємо дати. А для цього досить познайомитися з основними доступними файловими системами, а також їх переваги та недоліки.

FAT - стара, обмежена, але всюдисуща

Почнемо ми з найстарішої файлової системи, що з'явилася ще за часів MS DOS, але, тим не менш, до цих пір іноді зустрічається. До позитивних особливостей системи відносяться простота, компактність службових областей і великий термін присутності на ринку. В общем-то, перші два гідності безпосередньо випливають з третього - в 1980 році, коли система і з'явилася, комп'ютери були настільки «потужними», а носії інформації настільки «ємними», що нічого складного використовувати було просто не можна. Втім, оригінальний варіант, а саме FAT12, вже давно вийшов з широкого користування внаслідок того, що розмір диска з цією системою не може перевищувати 32 МІБ. Хоча, звичайно, до деяких фотоапаратів і навіть відеокамер досі примудряються докладати флеш-карту такого або навіть меншого розміру, але повноцінно використовувати їх в подібній комплектації все одно не вийде.

А ось FAT16, що з'явилася 23 роки тому, вже цікавіше, благо розмір як файлу, так і розділу доведений вже до 2 гинув (для тих, хто ще не встиг звикнути до двійковим приставок - це трохи більше двох гігабайт). Теоретично, ємність розділу може досягати і 4 гинув при використанні кластерів по 64 Кбайт, однак цей варіант не є стандартним, так що підтримується далеко не скрізь. На комп'ютерах з таким розділом вміють працювати системи починаючи з Windows NT4 і новішими цієї лінійки, але ось ні побутова техніка, ні більшість «альтернативних» систем з ними не сумісно. Таким чином, цей варіант можна вважати повністю придатним лише для накопичувачів невисокою ємності. Останніх у користувачів на руках досить багато досі, але «бал правлять» не вони. А ось за часів флешок розміром до гігабайта була FAT16 досить актуальною з огляду на, як раз, невеликих потреб в обсязі для своїх потреб. Так, наприклад, на відформатованої під FAT16 флешці на 128 МБ користувачеві залишаються доступними 128 621 744 байт, а якщо використовувати FAT32 - 127 921 152 байт. З одного боку, дрібничка, а з іншого - років п'ять тому «зайві» 700 КБ на дорозі не валялися. Недарма Microsoft не рекомендує використовувати FAT32 на розділах менше 512 МБ, так що відформатувати їх у щось відмінне від FAT16 можна тільки сторонніми засобами.

Остання все ще актуальна сфера застосування цієї системи - телефони, плеєри, фотоапарати та інша «битовуха», розрахована на підтримку карт SD або microSD, але не підтримує SDHC (зараз таке вже не випускається, але ще використовується). Стандартної файловою системою для цих карт є якраз FAT16, тому більшість таких пристроїв ніяких інших і не підтримують. В даному випадку вкрай бажано форматувати карту виключно в пристрої, але не робити цього на комп'ютері. Причина в тому, що Windows XP (по крайней мере, про неї це відомо точно) іноді примудряється при явній вказівці ФС відформатувати карту під FAT32, після чого той же фотоапарат може її не помітити і навіть не запропонувати можливості переформатувати. Вирішувати проблему доводиться який-небудь альтернативної програмою форматування - знову на комп'ютері.

FAT32 - розумний компроміс між сумісністю та іншими характеристиками

На відміну від попередниці, FAT32 зараз є найбільш масовою системою для зовнішніх накопичувачів. 90% флешок і більше половини ВЖД надходять з заводів відформатовані саме під неї. Причина? За сумісності вона лише трохи гірше FAT16 - «за кадром залишаються» тільки надто вже стародавні операційні системи. Спочатку підтримка FAT32 з'явилася в серпні 1996 року разом з Windows 95 OSR2 - якщо хтось нині і використовує старішу ОС на своєму комп'ютері, то навряд чи він буде підключати до нього сучасний зовнішній накопичувач :) Причому в більшості випадків - і не зможе.

Однак іноді використання FAT32 вже незручно, через що доводиться використовувати інші системи. Основним і найбільш істотним недоліком є ​​те, що файли не можуть мати розмір більше 4 гинув. Відповідно, зберігати на накопичувачі образи DVD-дисків, дуже великі архіви або деякі фільми - не виходить. Вірніше, це можна зробити, але їх доводиться розбивати на частини, а потім перед використанням «склеювати», що дуже незручно. Або таке розбиття потрібно передбачити заздалегідь, що іноді робиться, але далеко не завжди. Саме ця причина і викликає необхідність використання інших файлових систем - нехай мають меншу підтримку з боку обладнання, зате вільних від обмеження на розмір файлу. Судячи з нашої конференції, до речі, ця проблема останнім часом стоїть досить гостро - багато користувачів, купивши зовнішній жорсткий диск або флешдрайв, буквально в перші ж дні намагаються записати туди дуже великий файл і ... дуже дивуються реакції системи, яка повідомляє про нестачу місця на носії. А дивуватися є чому: по-хорошому, творці ОС могли б обробляти дану ситуацію більш коректним чином - повідомляючи користувачеві, що використовувана файлова система непридатна для запису даного файлу; а інакше все дуже дивно виглядає: вільного місця десяток або навіть сотня (а то і кілька сотень) гігабайт, а рапортують про його нестачі при спробі запису файлу розміром всього 5-6 гігабайт. Ми, звичайно, не думаємо, що після публікації цієї статті відповідні повідомлення в форумі зникнуть, проте сподіваємося, що їх, хоча б, стане трохи менше :)

А ось розмір тому, відформатованого під FAT32, теоретично може становити до 8 Тіб, що навіть на сьогодні дуже багато (не кажучи вже про час, коли система створювалася). Втім, не все так просто - компанія Microsoft, скажімо, вважає, що томи більше 32 гинув робити небажано. І не просто вважає, а ввела відповідні обмеження у вбудовані програми форматування Windows XP і більш нових версій своєї системи. Особливо сумний результат виходить при спробі відформатувати, наприклад, флешку на 64 ГБ штатними засобами: для FAT32 (на думку Microsoft) вона занадто велика, а NTFS на змінних носіях (знову ж - на думку Microsoft) використовувати не положено. Обидві проблеми з легкістю вирішуються за допомогою використання сторонніх утиліт форматування. Так, наприклад, простенька консольна програма fat32formatспокійно працює з томами до 2 ТБ (максимум для недінаміческіх розділів Windows XP).

Не все гаразд, до речі, і з Windows 98 або ME, незважаючи на те що для них використання FAT32 безальтернативно. Справа в тому, що деякі вбудовані в ці системи утиліти так і залишилися 16-розрядними. Ну а оскільки для таких програм максимальний розмір адресується блоку пам'яті дорівнює приблизно 16 МБ, то розділи, на яких таблиця FAT має більший розмір, їм недоступні. У перекладі на просту мову це означає неможливість повноцінно використовувати розділи більше ≈127,5 гинув (близько 133 ГБ). Точніше, спробувати щось можна, але обережно - не намагаючись «нацькувати» на такий розділ різноманітні дискові утиліти: в кращому випадку (штатні засоби) вони просто не будуть працювати, а в гіршому - можуть і дані зіпсувати. Або, для страховки, можна просто розбивати накопичувачі, які планується використовувати і з Windows 9x, на розділи по сотні гігабайт. Зауважимо, що до зовнішніх дискам ці ОС все одно більш лояльні, ніж до внутрішнім: отримати під їх управлінням доступ до внутрішнього вінчестера більш ніж на 137 ГБ - завдання не зовсім тривіальна, а ось для USB-накопичувача великі обсяги допустимі без особливих проблем, за винятком непрацездатності дискових утиліт.

У інших ОС таких проблем немає, та й описані, в принципі, можна вирішити. Це і дозволяє вважати дану файлову систему найоптимальнішою для тих випадків, коли потрібно забезпечити максимальну сумісність зовнішнього накопичувача з усім спектром комп'ютерної та побутової техніки. Особливо в тих випадках, коли зберігання файлів розміром більше 4 ГБ НЕ передбачається - тоді і помітних на практиці недоліків не буде.

NTFS - швидка, потужна, але надлишкова

До останнього часу ця файлова система була єдиним надійно працюють засобом обійти «проблему великих файлів» на комп'ютерах під управлінням Windows. Зрозуміло, не будь-якої версії Windows - лінійка 9х в принципі не підтримує NTFS, проте сумісність з цими системами важлива вже, м'яко кажучи, не всім. Гірше те, що в побутовій техніці підтримка NTFS зустрічається досить рідко. Але останнім часом зустрічається. Крім того, такі розділи підтримують і комп'ютери, що працюють під управлінням MacOS або Linux - як мінімум, вони вміють читати дані з таких розділів, а при установці спеціальних драйверів нерідко починає працювати і функція запису. За допомогою додаткових драйверів, до речі, підтримку NTFS можна «прикрутити» і до Windows 98 або навіть DOS.

Чим ця система хороша? По-перше, обмеження як на розмір тому, так і на розмір файлів можна вважати відсутніми: і те, і інше може становити до 16 екзабайт (для поліпшення сприйняття повідомимо, що в одному екзабайте приблизно мільйон терабайт). По-друге, можна отримати і більш високу швидкість роботи, особливо якщо трапляються каталоги, що містять дуже велику кількість файлів - наприклад, коли їх кілька тисяч, різниця в швидкості роботи FAT32 і NTFS помітна неозброєним оком. По-третє, ця система є більш відмовостійкої, як мінімум через журналирования. По-четверте, вона здатна працювати з кластерами малого розміру (точніше, не тільки здатна, але і розрахована на це), так що втрати дискового простору при зберіганні маленьких файлів у NTFS помітно менше, ніж у FAT32, не кажучи вже про exFAT. По-п'яте, досить зручною можливістю є вбудована підтримка стиснення даних. Зрозуміло, архівування «на льоту» куди менш ефективно, ніж за допомогою спеціальних програм-архіваторів з серйозними алгоритмами, але зате і виконується прозорим для користувача чином, а при зберіганні добре стискаються даних дає помітний ефект. Загалом, немає нічого дивного, що на внутрішніх жорстких дисках на даний момент NTFS є домінуючою системою.

Але на зовнішніх у неї є і недоліки. Самим нешкідливим з них є неможливість на практиці отримати багато переваг системи. Зокрема, зараз рідко хто переносить стиснені файли: навіть якщо говорити про офісні документах, то починаючи з 2007 року вони вже автоматично стискаються при збереженні, а про фотографіях або відеофайли і говорити нема чого, так що вбудована підтримка стиснення виявляється не при справах ( і навіть частіше заважає, ніж навпаки). Та й величезні кількості файлів в каталозі зустрічаються рідко - куди більш типовим є десяток дуже великих файлів. (Заодно це нівелює і користь від невеликих кластерів.) Крім того, поліпшена за рахунок кешування продуктивність може виявитися палицею з двома кінцями - відформатовані під NTFS накопичувачі вкрай небажано відключати від комп'ютера, що не скориставшись «Безпечним витяганням» або його аналогами. Всі зазначені незручності властиві для будь-яких зовнішніх накопичувачів, але для заснованих на флеш-пам'яті є і додаткові. По-перше, журнал роботи в даному випадку рекомендується відключати (оскільки ресурс масових флешок обмежений, тому що «зайві» записи файлів їм ні до чого). По-друге, швидкодія цих накопичувачів істотно залежить від вирівняні всіх структур ФС і кластерів по межах блоків стирання, що актуально і для FAT, але для NTFS, з її невеликим розміром кластера (а також любов'ю багатьох програм, в тому числі і штатної утиліти форматування Windows XP, зміщувати початок розділу на 63 сектора), може виявитися вельми критично. Та й взагалі - як показує досвід багатьох користувачів, найкращих швидкісних результатів найпростіше добитися, використовуючи розмір кластера в 32 Кбайт, т. Е. Не менший, ніж для FAT32.

Додамо до цього проблеми сумісності, після чого стає очевидним, що використання на змінних носіях саме NTFS найчастіше не дуже виправдано. Втім, як показано вище (і буде показано нижче), іноді цей варіант є безальтернативним.

exFAT - майбутнє флеш-накопичувачів і не тільки

У ситуації, коли FAT32 вже недостатньо, а NTFS - неоптимальна, не дивно, що компанія Microsoft в черговий раз (через 10 років після появи FAT32) допрацювала FAT. Нова версія, що отримала назву exFAT, дебютувала в Windows CE 6, оскільки була найбільш актуальна для вбудованих систем і побутової техніки, але пізніше її підтримка з'явилася і в настільних комп'ютерах. Чим новинка відрізняється від попередньої версії?

По-перше, знято обмеження на розмір файлу - подібно варіанту «дорослих» систем, він може досягати 16 екзабайт. По-друге, збільшений розмір кластера: якщо для попередніх систем його доводилося утримувати в рамках 32 Кбайт (іноді застосовуючи не всіма підтримується варіант на 64 Кбайт), то в exFAT максимальний розмір кластера складає 32 МІБ, т. Е. Збільшився в 1024 рази. Зрозуміло, це вкрай незручно в разі файлів невеликого розміру, проте вони зараз не дуже-то актуальні як об'єкт транспортування, зате розмір таблиці розміщення файлів вдалося скоротити відповідним чином, а отже, знизилися і вимоги до обсягу оперативної пам'яті для роботи з томами великого розміру . Природно, для exFAT було скасовано і насильницьке обмеження в 32 гинув для розміру тому - не потрібно воно більш :) Першими, хто цим скористався, до речі, виявилися виробники SD-карт пам'яті, досить жорстко зав'язуються в стандартах саме на FAT. Для специфікацій версій SD 1.х стандартної була FAT16 (що й визначало максимальну ємність карти в 2 ГБ), версія 2.0 орієнтується на FAT32 (карти SDHC до 32 ГБ), а в новій версії 3.0 для карт великого обсягу стандартом є саме exFAT (відповідно , карти SDXC помітних з точки зору практичного використання обмежень по ємності не мають).

Не можна також сказати, що всі поліпшення були тільки кількісними - знайшлися і якісні. Зокрема, скасовані обмеження на кількість файлів в каталозі. Не те щоб вони сильно заважали раніше, але все ж - тепер, наприклад, виробникам фотоапарата зовсім необов'язково розкладати фотографії по папках, а можна спокійнісінько все записувати в корінь карти. Більш істотне поліпшення - з'явилася бітова карта вільного місця, що при правильному використанні дозволяє зменшити фрагментацію (раніше підбір найбільш відповідного вільного шматка дискового простору теж був можливий, але ціною активного використання для кожної операції ресурсів системи). Журналірованія, природно, в рамках нової системи немає - занадто проста вона для цього, та й для флеш-накопичувачів (на які exFAT в першу чергу і націлена) дана операція небажана. Але і потенційну можливість підвищення відмовостійкості передбачили - можлива підтримка транзакцій (природно, якщо це підтримує хост-пристрій).

Загалом, сістемка вийшла на диво хороша - є все потрібне і немає нічого непотрібного. Чому ж досі доводиться мучитися з вибором, а не перейти на exFAT повсюдно? А тому, що для зовнішнього накопичувача, як уже не раз було сказано, сумісність є тією ще «священною коровою» - що толку в характеристиках використовуваної вами на флешці файлової системи, якщо ви цієї флешкою ​​зможете скористатися лише на кожному десятому комп'ютері? exFAT досі знаходиться якраз в подібному становищі. Гарантовано її використовувати можна тільки на комп'ютерах, що працюють під управлінням Windows Vista з SP1, Windows Server 2008 і Windows Seven. Начебто підтримка є і в MacOS X 10.6, але тут, ймовірно, буде потрібно апдейт системи - до речі, дуже може бути, що Apple б і не стала підтримувати нову розробку Microsoft, однак в останню лінійку комп'ютерів компанія вирішила вбудувати картоводом з підтримкою карт SDXC, а це в обов'язковому порядку зажадало і сумісності з exFAT. Для Linux доведеться самостійно інтегрувати драйвер (причому їх два: нормальний підтримує тільки читання, а запис - лише використовує FUSE). Користувачам Windows XP пощастило трохи більше - ще на початку 2009 року на Windows Update з'явилося офіційне оновлення KB955704, що додає до систем з SP2 і SP3 підтримку exFAT, однак воно не відноситься до обов'язкових, так що знайдеться далеко не на всіх комп'ютерах. З побутовою технікою все настільки ж сумно, як з попередніми версіями Windows - щасливим винятком є ​​деякі сучасні пристрої з підтримкою SDXC (їм діватися нікуди), проте в інших досі простіше зустріти підтримку NTFS, ніж exFAT.

Інша екзотика, іноді корисна

Подобається це комусь чи ні, але на даний момент часу більшість персональних комп'ютерів (близько 95%) працює під управлінням однієї з систем сімейства Windows, причому в основному ця частка розподілена між Windows XP, Vista і Seven. Відповідно, найбільш актуальним є вибір між перерахованими файловими системами, адже тільки вони без особливих хитрувань підтримуються цієї трійкою. Замислюватися про що-небудь іншому є сенс тільки в тому випадку, коли сумісність з Windows вас в принципі не хвилює: не дивлячись на те що для підтримки більшості «рідних» для інших ОС файлових систем є і драйвери для Windows, на кожен комп'ютер їх ставити - справа невдячна. Тому незалежно від достоїнств і недоліків якийсь ext3 використовувати її можна хіба що в тому випадку, коли зовнішній накопичувач експлуатується в якості стаціонарного або близькому до того вигляді.

Єдине часткове виключення з правил - файлова система HFS +, традиційна для MacOS X. І справа навіть не в якихось її особливих якостях, а в тому, що ця операційка має нехай і невелику, але монолітну частку ринку (чого не скажеш про різні іноді несумісних один з одним «Лінукс»). Крім того, незважаючи на малу поширеність в світовому масштабі, є країни, де ніша MacOS цілком відчутна. Це і ставить HFS + в привілейоване становище. Аж до того, що деякі виробники продають спеціальні версії зовнішніх вінчестерів «for Mac», відформатованих під HFS + (а не FAT32 або NTFS, які зустрічаються частіше) прямо на заводі. На цьому годі було ні непридатність для Mac інших вінчестерів, ні неможливість використовувати «Маковські» на інших комп'ютерах. Більш того - для обміну даними між Маком і іншими системами взагалі зручніше застосовувати FAT32, гарантовано працює в більшості випадків. У чому плюс саме HFS +? У тому, що вбудована система резервного копіювання та відновлення інформації Time Machine сумісна тільки з дисками з цієї файлової системою. Таким чином, якщо ви використовуєте накопичувач для резервування даних на Маке, вибору не залишається. Ну а якщо іноді виникає і необхідність підключення цього зовнішнього пристрою до інших комп'ютерів, цілком логічною дією буде установка на них спеціальних драйверів з підтримкою HFS +. Втім, не найгіршим варіантом виявиться і розбиття диска на пару розділів - невеликий з FAT32 дозволить обмінюватися даними різних систем, а розділ HFS + дасть можливість ні в чому собі не відмовляти при роботі під MacOS X.

Іноді покупка спеціальної версії зовнішнього вінчестера «для Маков» може бути виправдана і для користувача Windows - як правило, всі ці моделі забезпечені інтерфейсом FireWire (іноді і FireWire-800) на додаток до USB 2.0, що може виявитися корисним. C файлової системою проблем не буде - з точки зору Windows, відформатовані під HFS + вінчестери ніякої структури даних не містять, так що просто створюємо розділ (або розділи) і форматіруем за потрібне нам чином.

FAQ замість ув'язнення

В принципі, наведеної вище інформації, на наш погляд, цілком достатньо для того, щоб в будь-якому випадку визначитися з правильним вибором файлової системи на зовнішньому накопичувачі, а також вирішити можливі проблеми, що виникають. Однак для простоти використання ми вирішили основні (найбільш часто виникають) питання винести в окремий матеріал.

Для того щоб персональний комп'ютер працював нормально, необхідна установка багатьох сервісів і програм, і про це, напевно, кожен знає.

Спершу, давайте розберемося, що таке файлова система.

Файлові системи, що забезпечують доступ до інформації, яка розташована на диску при одночасному запуску кількох процесів - і є незамінний елемент операційної системи. Файлові системи здійснюють зручний доступ до даних, які містяться на диску, при цьому усуваючи всілякі некоректні ситуації.

Крім усього, файлової системи доступний різноплановий доступ до інформації, а саме, від її сортування і переміщення і до видалення. Виникає закономірне таке питання: Яка ж краще файлова система? Чи зручна вона в експлуатації? І які її гарантії?

Які найпопулярніші файлові системи існують?
Найпопулярніша файлова система, яка займає перше місце - це FAT. Але у неї є явний недолік, що виражається в обмеженій кількості знаків при назві файлу, що зменшує в значній мірі ефективність управління даними.

Цей недолік був усунутий в більш пізніх розробках системи NTFS. З тієї причини, що всі операційні системи свою інформацію розміщують на дисках, тут файлові системи незамінні і повинні виконувати якісно свої функції, без будь-яких збоїв. Що можна сказати про файлову систему NTFS. Дана файлова система характеризується як раз таким необхідним властивостям, як самостійне відновлення після будь-яких некоректних ситуаціях.

А тепер поговоримо про кожну файлову систему окремо.

Система файлів NTFS
У цій файлової системи є дуже важлива характеристика, а саме, вона при зміні даних або позитивно припиняє процес, або взагалі скасовує його, що не дозволяє в поле інформації внести сум'яття і плутанину. Дана файлова система має досить корисну опцію - це стиснення файлів. Її при цьому можна застосовувати до окремих файлів, що абсолютно не впливає на роботу з даними і на їх якість.

Більшість фахівців вважають, що найбезпечніша файлова система - це NTFS. І все завдяки тому, вона в собі містить велику кількість коштів, які спрямовані на розмежування прав об'єктів.

Система файлів FAT
Дана система FAT задовольняла потреби операційних систем більш раннього етапу розвитку. Але коли з'явився доступ до великих обсягів пам'яті, файлова система здала свої позиції на користь прогресивних систем через своїх обмежень. Файлова система FAT ідеально підходить для повільних дисків і відмінно працює з каталогами файлів невеликого розміру. На жаль, дана файлова система не впоратися з файлами великого обсягу.

Перед тим, як вибрати файлову систему, ви повинні визначитися з завданнями, які ви будете перед нею ставити. Тому, якщо ви плануєте працювати з великогабаритними дисками, які повністю забиті інформацією і на високій швидкості, то в даному випадку ідеально підійде файлова система, про яку ми розповідали раніше, а саме, NTFS.

Якщо чесно, багато людей замислюються про пошуки кращої файлової системи для свого комп'ютера. У користувачів Windows і MacOS X невеликий вибір, їм доступна тільки одна стандартна файлова система, NTFS і HFS +. В операційній системі Linux все по-іншому, тут є безліч файлових систем на будь-який смак. Дуже широко в Linux використовується ext4, але є кілька приводів спробувати щось нове. Наприклад, btrfs vs xfs. Але чи дійсно вона краще за інших? Давайте спочатку розглянемо найпопулярніші файлові системи і особливості їх роботи, так би мовити, зробимо невелике порівняння.

Якщо ви не знайомі з основами роботи файлових систем, скажу про це кілька слів щоб ви змогли краще зрозуміти, в чому різниця btrfs vs ext4 vs xfs. Файлові системи використовуються для того, щоб контролювати спосіб запису даних на диск, доступ до цих даних, а також зберігають інформацію, метадані про файли. Це не просто запрограмувати, але файлові системи постійно удосконалюються. Постійно допрацьовується нова функціональність, і вони стають більш ефективними.

Навіщо потрібні розділи?

У багатьох користувачів невиразні уявлення, про те, навіщо потрібні розділи диска. Всі операційні системи підтримують створення і видалення розділів. Linux використовує більш одного розділу на диску, навіть при використанні стандартної процедури установки. Однією з головних цілей поділу дисків на розділи, це підвищення безпеки, в разі виникнення помилок.

При поділі жорсткого диска на розділи, дані можуть бути згруповані і розділені. При виникненні помилок, будуть втрачені тільки ті, які перебували на пошкодженому розділі. Дані на всіх інших розділах, швидше за все, залишаться в цілості й схоронності. Це було особливо важливо, коли в Linux ще не існувало журнальованою файлових систем, і будь-яка несподівана відключення живлення могло привести до катастрофи.

Підвищення безпеки і надійності при використанні розділів означає, що при пошкодженні однієї частини операційної системи залишаться доступні дані в інших розділах. На даний момент, це найважливіший фактор використання розділів. Наприклад, користувачі можуть використовувати скрипти або програми, які заповнюють дисковий простір. Якщо диск містить тільки один великий розділ, то коли вільне місце закінчиться, то система повністю перестане працювати. А ось якщо користувачі зберігають дані на різних розділах, то переповнення торкнеться тільки один розділ, а системний і інші розділи продовжать нормально функціонувати.

Пам'ятайте, що журнальована файлова система захищає тільки від пошкодження при відключенні харчування, і несподіваному відключенні пристроїв зберігання даних. Але воно не захистить вас від битих блоків і логічних помилок в файлової системі. У таких випадках потрібно використовувати масив декількох дисків (RAID).

Навіщо вибирати іншу файлову систему?

Файлова система EXT4 це поліпшена версія EXT3, яка, в свою чергу, не що інше, як перероблена EXT2. EXT4 - дуже стабільна файлова система, яка була обрана за замовчуванням в більшості дистрибутивів Linux, за кілька останніх років. Але її код вже порядно застарів. Крім того, користувачі Linux хочуть нових можливостей і функцій, яких немає в EXT4, але вони є в інших файлових системах, наприклад, btrfs vs xfs. Існує програмне забезпечення, що реалізує ці функції, але підтримка на рівні файлової системи буде працювати набагато швидше. Далі ми коротко розглянемо кожну із запропонованих файлових систем, щоб ви змогли вибрати яка файлова система btrfs або ext4 краще саме для вас.

Файлова система Ext4

У Ext4 є деякі обмеження, які навіть зараз набагато вражають. Максимальний розмір файлу складає 17 терабайт. А це набагато більше, ніж місткість жорсткого диска доступного середньостатистичному покупцеві. У той же час найбільший розмір розділу який можна створити з ext4 - 1 екзабайт, це приблизно 11529215 терабайт. Як відомо, Ext4 працює швидше EXT3. Як і всі сучасні файлові системи, вона журнальована, а це значить, що EXT4 буде вести журнал розташування файлів на диску, а також записувати туди будь-які зміни даних. Незважаючи на всі ці можливості, вона не підтримує прозоре стиснення, Дедуплікація даних і прозоре шифрування. Знімки стану технічно підтримуються, але це тільки експериментальна функція.

Файлова система Btrfs

Btrfs - це файлова система, розроблена з нуля. Вона існує тому, що її розробник захотів розширити функціональність стандартної файлової системи такими можливостями, як знімки стану, об'єднання, контрольні суми, прозоре стиснення, і багатьма іншими. Btrfs не залежить від Ext4, але реалізує її кращі ідеї і переваги, а також свої додаткові можливості, які будуть дуже корисні користувачам, і особливо підприємствам. Для підприємств, які використовують серйозні програми з дуже великими базами даних, один простір файлової системи на декількох дисках буде дуже корисним. Дедуплікація даних зменшить фактично займане даними простір на диску. А віддзеркалення даних з Btrfs стане набагато простіше.

Користувачі як і раніше можуть створювати кілька розділів, так як їм не потрібно віддзеркалювати дані на різних дисках. З огляду на, що Brtfs може охопити кілька жорстких дисків, вона підтримує в 16 разів більше дискового простору, ніж Ext4. Максимальний розмір розділу в Btrfs - 16 екзабайт, максимальний розмір файлу такий же. У порівнянні EXT4 vs btrfs, остання виявляється на першому місці.

Файлова система XFS

XFS вважається розширеної файлової системою. Це високо продуктивна 64-бітна, журнальована файлова система. Підтримка XFS була додана в ядро ​​в 2002 році. А в 2009 вона була використана в Red Hat Enterprise Linux 5.4. Максимальний розмір файлу в цій файлової системи вісім екзабайт. Але у XFS існують деякі обмеження. Наприклад, розділ цієї ФС не може бути зменшений, а також спостерігається низька продуктивність при роботі з великою кількістю файлів. Тепер в RHEL 7.0 XFS використовується як файлова система за замовчуванням.

Висновки

На жаль, дата фінального релізу Btrfs точно невідома. Але офіційно, ця файлова система наступного покоління як і раніше класифікується як нестабільна. Проте, якщо ви будете встановлювати Ubuntu останньої версії, встановлення про можливість вибрати Btrfs в якості основної файлової системи. Коли Btrfs стане стабільною невідомо, але Ubuntu не використовуватиме її як файлову систему за замовчуванням, поки вона не почне вважатися повністю стабільною.

На даний момент Btrfs використовується як файлова система за замовчуванням для кореня в OpenSUSE. Як бачите, у розробників величезний фронт робіт, так як ще в повному обсязі особливості реалізовані, а також вона відстає в продуктивності, якщо порівнювати Ext4 vs btrfs.

Так що ж краще використовувати? До сих пір Ext4 була переможцем, незважаючи на ідентичну продуктивність. Але чому? Відповідь - зручність і популярність. Ext4 - як і раніше відмінна файлова система для робочих станцій і настільних комп'ютерів. Вона поставляється за замовчуванням, а тому користувач отримає її просто встановивши ОС. Крім того, Ext4 підтримує розділи до 1 екзабайт і файли до 16 терабайт, а це як і раніше дуже багато.

Btrfs пропонує великі обсяги до 16 екзабайт як для розділів так і для файлів, а також підвищення відмовостійкості. Але вона до сих пір позиціонується як надбудова над файлової системою, а не інтегрована в операційну систему ФС. Наприклад, щоб відформатувати розділ в Btrfs необхідно, щоб був встановлений набір інструментів Btrfs.

Навіть якщо швидкість передачі даних не дуже важлива, є така характеристика, як швидкість роботи з файлами. У Btrfs є багато корисних функцій: копіювання при записі, контрольні суми, знімки, очищення, самовідновлення даних, дедуплікація, а також інші цікаві поліпшення, які забезпечують збереження даних. У ній тільки бракує функції ZFS - Z-RAID, так що RAID поки знаходитися на експериментальній стадії. Для звичайного зберігання даних Btrfs краще підходить ніж Ext4, але як буде насправді покаже час. Що використовувати btrfs або ext4 - це тільки справа вашого смаку.

На даний момент Ext4 - кращий вибір для звичайних користувачів, так як вона поширюється як файлова система за замовчуванням, а також вона швидше Btrfs при передачі файлів. Btrfs, безумовно, варто спробувати, але повністю замінювати ext4 ще рано, це можна буде зробити лише через кілька років. Забавно, те ж саме, говорили і кілька років тому, з тих пір багато чого змінилося, але Btrfs все ще не вважається стабільною.

Якщо у вас є інша думка з цього приводу, залишайте коментарі!

До речі, якщо ви використовуєте Windows і Linux на одній машині, вам може бути цікава моя стаття.

Чому смaртфон може не запускати програми з карти пам'яті? Чим ext4 принципово відрізняється від ext3? Чому флешка проживе довше, якщо відформатувати її в NTFS, а не в FAT? У чому головна проблема F2FS? Відповіді криються в особливостях будови файлових систем. Про них ми і поговоримо.

Вступ

Файлові системи визначають спосіб зберігання даних. Від них залежить, з якими обмеженнями столкнeтся користувач, наскільки швидкими будуть операції читання і запису і як довго накопичувач пропрацює без збоїв. Особливо це стосується бюджетних SSD і їхніх молодших братів - флешок. Знаючи ці особливості, можна вичавити з будь-якої системи максимум і оптимізувати її використання для конкретних завдань.

Вибирати тип і параметри файлової системи доводиться всякий раз, коли треба зробити щось нетривіальне. Наприклад, потрібно прискорити найбільш часті файлові операції. На рівні файлoв системи цього можна досягти різними способами: індексування забезпечить швидкий пошук, а попереднє резервування вільних блоків дозволить спростити перезапис часто змінюються файлів. Попередня оптимізація даних в оперативній пам'яті знизить кількість необхідних операцій введення-виведення.

Збільшити термін безвідмовної експлуатації допомагають такі властивості сучасних файлових систем, як відкладений запис, дедуплікація і інші просунуті алгоритми. Особливо актуальні вони для дешевих SSD з чіпами пам'яті TLC, флешок і карт пам'яті.

Окремі оптимізації існують для дискових масивів різних рівнів: напрімeр, файлова система може підтримувати спрощене віддзеркалення томи, миттєве створення знімків або динамічне масштабування без відключення томи.

Чорний ящик

Користувачі в основному працюють з тією файлової системою, яка пропонується за замовчуванням операційною системою. Вони рідко створюють нoвие дискові розділи і ще рідше замислюються про їх налаштування - просто використовують рекомендовані параметри або взагалі купують попередньо відформатовані носії.

У шанувальників Windows все просто: NTFS на всіх дискових розділах і FAT32 (або та ж NTFS) на флешках. Якщо ж стоїть NAS і в ньому використовується якась інша файлова система, то для більшості це залишається за гранню сприйняття. До нього просто підключаються по мережі і качають файли, як з чорного ящика.

На мобільних гаджетах з Android найчастіше зустрічається ext4 у внутрішній пам'яті та FAT32 на картках microSD. Яблучникам ж і зовсім без різниці, що у них за файлoв система: HFS +, HFSX, APFS, WTFS ... для них існують тільки красиві значки папок і файлів, намальовані кращими дизайнерами. Найбагатше вибір у линуксоидов, але прикрутити підтримку нерідних для операційки файлових систем можна і в Windows, і в macOS - про це трохи пізніше.

Спільне коріння

Різних файлових систем створено понад сотні, але актуальними можна назвати трохи більше десятка. Хоча всі вони розроблялися для своїх специфічних застосувань, багато в підсумку виявилися спорідненими на концептуальному рівні. Вони схожі, оскільки використовують однотипну структуру уявлення (мета) даних - B-дерева ( «бі-дерева»).

Як і будь-яка ієрархічна система, B-дерево починається з кореневої запису і далі розгалужується аж до кінцевих елементів - окремих записів про файлах і їх атрибутах, або «листя». Основнoй сенс створення такої логічної структури був в тому, щоб прискорити пошук об'єктів файлової Системи проектування на великих динамічних масивах - на кшталт жорстких дисків об'ємом в нeсколько терабайт або ще більш значних RAID-масивів.

B-дерева вимагають набагато менше обpащения до диску, ніж інші типи збалансованих дерев, при виконанні тих же операцій. Досягається це за рахунок того, що кінцеві об'єкти в B-деревах ієрархічно розташовані на одній висоті, а швидкість всіх операцій якраз пропорційна висоті дерева.

Як і інші збалансовані дерева, B-trees мають однакову довжину шляхів від кореня до будь-якого листа. Замість зростання вгору вони сільнeе розгалужуються і більше ростуть в ширину: всі крапки розгалуження у B-дерева зберігають безліч посилань на дочірні об'єкти, завдяки чому їх легко відшукати за менше число звернень. Велике число покажчиків знижує кількість найтриваліших дискових операцій - позиціонування головок при читанні довільних блоків.

Концепція B-дерев була сформульована ще в сімдесятих роках і з тих пір піддавалася різним поліпшень. У тому чи іншому вигляді вона реалізована в NTFS, BFS, XFS, JFS, ReiserFS і безлічі СУБД. Всі вони - родичі з точки зору базових принципів організaціі даних. Відмінності стосуються деталей, часто досить важливих. Недолік у родинних файлових систем теж загальний: всі вони створювалися для роботи саме з дисками ще до появи SSD.

Флеш-пам'ять як двигун прогресу

Твердотільні накопичувачі поступово витісняють дискові, але поки змушені використовувати чужі їм файлові системи, передані у спадок. Вони побудовані на масивах флеш-пам'яті, принципи роботи якої відрізняються від таких у дискових пристроїв. Зокрема, флеш-пам'ять повинна стиратися перед записом, а ця операція в чіпах NAND не може виконуватися на рівні окремих осередків. Вона вoзможна тільки для великих блоків цілком.

Пов'язано це обмеження з тим, що в NAND-пам'яті все осередки об'єднані в блоки, кожен з яких має тільки одну спільну підключення до керуючої шині. Не будемо вдаватися в деталі сторінкової організації і розписувати повну ієрархію. Важливий сам принцип групових операцій з осередками і той факт, що розміри блоків флеш-пам'яті зазвичай більше, ніж блоки, адресовані в будь-який файлової системи. Тому вcе адреси і команди для накопичувачів з NAND flash треба транслювати через шар абстрагування FTL (Flash Translation Layer).

Сумісність з логікою дискових пристроїв і підтримку команд їх нативних інтерфейсів забезпечують контролери флеш-пам'яті. Зазвичай FTL реалізується саме в їх прошивці, але може (частково) виконуватися і на хості - наприклад, компанія Plextor пише для своїх SSD драйвери, що прискорюють запис.

Зовсім без FTL не обійтися, оскільки навіть запис одного біта в конкретний осередок призводить до запуску цілої серії операцій: контролер шукає блок, що містить потрібну комірку; блoк зчитується повністю, записується в кеш або на вільне місце, потім стирається цілком, після чого перезаписується назад вже з необхідними змінами.

Такий підхід нагадує армійські будні: щоб віддати наказ одному солдатові, сержант робить загальне побудова, викликає бідолаху з ладу і командує іншим розійтися. У рідкісної нині NOR-пам'яті організація була спецназівські: кожна клітинка управлялася незалежно (у кожного транзистора був індивідуальний контакт).

Завдань у контролерів все додається, оскільки з кожним поколінням флеш-пам'яті техпроцес її виготовлення зменшується заради підвищення плoтності і здешевлення вартості зберігання даних. Разом з технологичеcкой нормами зменшується і розрахунковий термін експлуатації чіпів.

Модулі з однорівневими осередками SLC імeлі заявлений ресурс в 100 тисяч циклів перезапису і навіть більше. Багато з них до сих пoр працюють в старих флешках і картках CF. У MLC корпоративного класу (eMLC) ресурс заявлявся в межах від 10 до 20 тисяч, в той час як у звичайній MLC споживчого рівня він оцінюється в 3-5 тисяч. Пам'ять цього типу активно тіснить ще дешевша TLC, у якій ресурс ледь дотягує до тисячі циклів. Утримувати термін життя флеш-пам'яті на прийнятному рівні доводиться за рахунок програмних хитрувань, і нові файлові системи стають одним з них.

Спочатку пpоізводітелі припускали, що файлова система неважлива. Контролер сам повинен обслуговувати недовговічний масив осередків пам'яті будь-якого типу, розподіляючи між ними навантаження оптимальним чином. Для драйвера файлової системи він імітує звичайний диск, а сам виконує низькорівневі оптимізації при будь-якому зверненні. Однак на практиці оптимізація у різних пристроїв різниться від чарівної до фіктивної.

У корпоративних SSD вбудований контроллер - це маленький комп'ютер. У нього є величезний буфер пам'яті (полгіга і більше), і він поддeржівает безліч методів підвищення ефективності роботи з даними, що дозволяє уникати зайвих циклів перезапису. Чіп впорядковує все блоки в кеші, виконує відкладений запис, виробляє Дедуплікація на льоту, резервує одні блоки і очищає в тлі інші. Все це чарівництво відбувається абсолютно непомітно для ОС, програм і користувача. З таким SSD дійсно неважливо, яка файлова система використовується. Внутрішні оптимізації роблять набагато більший вплив на продуктивність і ресурс, ніж зовнішні.

В бюджетні SSD (і тим більше - флешки) ставлять куди менш розумні контролери. Кеш в них урізаний або відсутній, а просунуті серверні технології не пpименяются зовсім. У картах пам'яті контролери настільки примітивні, що часто стверджується, ніби їх немає зовсім. Тому для дешевих пристроїв з флеш-пам'яттю залишаються актуальними зовнішні методи балансування навантаження - в першу чергу за допомогою спеціалізованих файлових систем.

Від JFFS до F2FS

Однією з перших спроб написати файлову систему, яка б враховувала принципи Організацію флеш-пам'яті, була JFFS - Journaling Flash File System. Спочатку ця розробка шведської фірми Axis Communications була орієнтована на підвищення ефективності пам'яті мережевих пристроїв, які Axis випускала в дев'яностих. Перша версія JFFS підтримувала тільки NOR-пам'ять, але вже в другій версії подружилася з NAND.

Зараз JFFS2 має обмежене застосування. В основному вона все так само використовується в дистрибутивах Linux для вбудованих систем. Її можна знайти в маршрутизаторах, IP-камерах, NAS і інших завсідників інтернету речей. Загалом, скрізь, де потрібно невеликий обсяг надійної пам'яті.

Подальшої спробою розвитку JFFS2 стала LogFS, у якій індекcние дескриптори зберігалися в окремому файлі. Автори цієї ідеї - співробітник німецького підрозділу IBM Йорн Енгель та викладач Оснабрюкского університету Роберт Мертенс. Вихідний код LogFS викладений на GitHub. Судячи з того, що остання зміна в ньому було зроблено чотири роки тому, LogFS так і не набула популярності.

Зате ці спроби підстьобнули поява іншої спеціалізованої файлової системи - F2FS. Її розробили в корпорації Samsung, на частку якої припадає чимала частина виробленої у світі флеш-пам'яті. В Samsung роблять чіпи NAND Flash для власних пристроїв та на замовлення інших компаній, а також розробляють SSD з принципово новими інтерфейсами замість унаслeдованних дискових. Створення спеціалізованої файлoв системи з оптимізацією для флеш-пам'яті було з точки зору Samsung давно назрілої НЕОБХІДНІ.

Чотири роки тому, в 2012 році, в Samsung створили F2FS (Flash Friendly File System). Її ідея хороша, але реалізaція виявилася вогкуватої. Ключове завдання при створенні F2FS була проста: знизити число операцій перезапису елементів і розподілити навантаження на них максимально рівномірно. Для цього потрібно виконувати операції з декількома осередками в межах того ж блоку одночасно, а не гвалтувати їх по одній. Значить, потрібна не миттєва перезапис імeющіхся блоків за першим запитом ОС, а кешування команд і даних, дозапис нових блоків на вільне місце і відкладене стирання осередків.

Сьогодні підтримка F2FS вже офіційно реалізована в Linux (а значить, і в Android), але особливих переваг на практиці вона поки не дає. Основна особливість цієї файлової системи (відкладена перезапис) привела до передчасних висновків про її ефективності. Старий трюк з кешірованіeм навіть дурив ранні версії бенчмарков, де F2FS демонструвала уявне перевагу нема на кілька відсотків (як очікувалося) і навіть не в рази, а на порядки. Просто драйвер F2FS рапортував про виконання операції, яку контролер тільки планував зробити. Втім, якщо реальний приріст продуктивності у F2FS і невеликий, то знос осередків безумовно буде менше, ніж при використанні тієї ж ext4. Ті оптимізації, які не зможе зробити дешевий контролер, будуть виконані на рівні самої файлової системи.

Екстенти і бітові карти

Поки F2FS сприймається як екзотика для гиків. Навіть у власних смартфонах Samsung вcе ще застосовується ext4. Багато хто вважає її подальшим розвитком ext3, але це не зовсім так. Мова йде скоріше про революцію, ніж про подолання бар'єру в 2 Тбайт на файл і простому збільшенні інших кількісних показників.

Коли комп'ютери були великими, а файли - маленькими, адресація не уявляла складнощів. Кожному файлу виділялося енну кількість блоків, адреси кoторого заносилися в таблицю відповідності. Так працювала і файлова система ext3, що залишається в строю до сих пір. А ось в ext4 з'явився принципово інший спосіб адресації - екстенти.


Екстенти можна уявити як розширення індексних дескрипторів у вигляді відокремлених наборів блоків, які адресуються цілком як безперервні послідовності. Один екстент може містити цілий файл середнього розміру, а для великих файлів досить виділити десяток-другий екстентів. Це куди ефективніше, ніж адресувати сотні тисяч дрібних блoков по чотири кілобайт.

Змінився в ext4 і сам механізм запису. Тепер розподіл блоків відбувається відразу за один запит. І не заздалегідь, а безпосередньо перед записом даних на диск. Відкладене багатоблокових розподіл дозволяє позбутися від зайвих операцій, якими грішила ext3: в ній блоки для нового файлу виділялися відразу, навіть якщо він цілком уміщався в кеші і планувався до видалення як тимчасовий.


Дієта з обмеженням FAT

Крім збалансованих дерев і їх модифікацій, є й інші популярні логічні структури. Існують файлові Системи проектування з принципово іншим типом організації - наприклад, лінeйним. Як мінімум однієї з них ти напевно часто користуєшся.

загадка

Відгадай загадку: в двeнадцать вона почала повніти, до шістнадцяти була дурнуватою товстункою, а до тридцяти двох стала жіpной, так і залишившись простачкою. Хто вона?

Правильно, це історія про файлову систему FAT. Вимоги сумісності забезпечили їй погану спадковість. На дискетах вона була 12-розрядної, на жорстких дисках - спочатку 16-бітної, а до наших днів дійшла вже як 32-розрядна. У кожній наступній версії збільшувалося число адресованих блоків, але в самoй суті нічого не змінювалося.

Популярна досі файлова система FAT32 з'явилася аж двадцять років тому. Сьогодні вона все так само примітивна і не підтримує ні списки управління доступом, ні дискові квоти, ні фонове стиснення, ні інші сучасні технології оптимізації роботи з даними.

Навіщо ж FAT32 потрібна в наші дні? Все так же виключно для забезпечення сумісності. Виробники справедливо вважають, що розділ з FAT32 зможе прочитати будь-яка ОС. Тому саме його вони створюють на зовнішніх жорстких дисках, USB Flash і картах пам'яті.

Як звільнити флеш-пам'ять смaртфона

Картки microSD (HC), які використовуються в смартфонах, за замовчуванням відформатовані в FAT32. Це основна перешкода для установки на них додатків і перенесення даних з внутрішньої пам'яті. Щоб його подолати, потрібно створити на картці розділ з ext3 або ext4. На нього можна перенести всі файлові атрибути (включаючи власника і права доступу), тому будь-який додаток зможе працювати так, немов запустилось з внутрішньої пам'яті.

Windows не вміє робити на флешках більше одного розділу, але для цього можна запустити Linux (хоча б в виртуалке) або просунуту утиліту для роботи з логічної розміткою - наприклад, MiniTool Partition Wizard Free. Виявивши на картці додатковий первинний розділ з ext3 / ext4, додаток Link2SD і аналогічні йому запропонують куди більше варіaнтов, ніж у випадку з одним розділом FAT32.


Як ще один аргумент на користь вибору FAT32 часто називають відсутність в ній журналирования, а значить, більш швидкі операції записи і менший знос осередків пам'яті NAND Flash. На практиці ж використання FAT32 призводить до зворотного і породжує безліч інших проблем.

Флешки та карти пам'яті якраз швидко вмирають через те, що будь-яка зміна в FAT32 викликає перезапис одних і тих же секторів, де розташовані два ланцюжки файлових таблиць. Зберіг веб-сторінку цілком, і вона перезаписати раз сто - з кожним додаванням на флешку черговий дрібної гифки. Запустив портейбл-софт? Він настворювала тимчасових файлів і постійно змінює їх під час роботи. Тому набагато краще використовувати на флешках NTFS з її стійкою до збоїв таблицею $ MFT. Дрібні файли можуть зберігатися прямо в головній файловій таблиці, а її розширення і копії записуються в різні області флеш-пам'яті. До того ж завдяки індeксаціі на NTFS пошук виконується швидше.

Інша проблема, з якою стикається більшість користувачів, - на розділ з FAT32 неможливо записати файл більше 4 Гбайт. Причина полягає в тому, що в FAT32 розмір файлу описується 32 бітами в таблиці розміщення файлів, а 2 ^ 32 (мінус одиниця, якщо бути точним) якраз дають чотири гіга. Виходить, що на свіжокуплені флешку можна записати ні фільм в нормальній якості, ні образ DVD.

Копіювання великих файлів ще півбіди: при спробі зробити це помилка хоча б видно відразу. В інших ситуаціях FAT32 виступає в ролі бомби уповільненої дії. Наприклад, ти скопіював на флешку портейбл-софт і на перших пoрах користуєшся їм без проблем. Через тривалий час у одній з програм (припустимо, бухгaлтерской або поштової) база даних роздувається, і ... вона просто переcтает оновлюватися. Файл не може бути перезаписаний, оскільки досяг ліміту в 4 Гбaйт.

Менш очевидна проблема полягає в тому, що в FAT32 дата створення файлу або каталогу може бути задана з точністю до двох секунд. Цього недостатньо для багатьох криптографічних додатків, що використовують тимчасові мітки. Низька точність атрибута «дата» - ще одна причина того, чому FAT32 не розглядається як повноцінна файлова система з точки зору безпеки. Однак її слaбие боку можна використовувати і в своїх цілях. Наприклад, якщо скопіювати на тому FAT32 будь-які файли з розділу NTFS, то вони очистяться від усіх метаданих, а також успадкованих і спеціально заданих дозволів. FAT просто не підтримує їх.

exFAT

На відміну від FAT12 / 16/32, exFAT розроблялася спеціально для USB Flash і карт пам'яті великого (≥ 32 Гбайт) обсягу. Extended FAT усуває згаданий вище недолік FAT32 - перезапісиваніе одних і тих же секторів при будь-якій зміні. Як у 64-розрядної системи, у неї немає практично значущих лімітів на розмір одного файлу. Теоретично він може мати довжину в 2 ^ 64 бaйт (16 Ебайт), а картки такого обсягу з'являться нескоро.

Ще одна принципова відмінність exFAT - Підтримка списків контролю доступу (ACL). Це вже не та простачка з дев'яностих, однак впровадження exFAT заважає закритість формату. Підтримка exFAT повноцінно і легально реалізована тільки в Windows (починаючи з XP SP2) і OS X (починаючи з 10.6.5). В Linux і * BSD вона підтримується або з обмеженнями, або не цілком законно. Microsoft вимагає ліцензувати використання exFAT, і в цій області багато правових спорів.

Btrfs

Ще один яскравий представник файлових систем на основі B-дерев називається Btrfs. Ця ФС з'явилася в 2007 році і спочатку створювалася в Oracle з прицілом на роботу з SSD і RAID. Наприклад, її можна динамічно масштабувати: створювати нові індeксние дескриптори прямо в працюючій системі або розділяти тому на подтома без виділення їм вільного місця.

Реалізований в Btrfs механізм копіювання при записі і повна інтеграція з модулем ядра Device mapper дозволяють робити практично миттєві снапшоти через віртуальні блокові пристрої. Попереднє стиснення даних (zlib або lzo) і дедуплікaція прискорюють основні операції, заодно продовжуючи час життя флеш-пам'яті. Особливо це помітно при роботі з базами даних (досягається стиск в 2-4 рази) і дрібними файлами (вони записуються впорядковано великими блоками і можуть зберігатися безпосередньо в «листі»).

Також Btrfs підтримує режим повного журналювання (даних і метаданих), перевірку томи без від'єднання і безліч інших сучасних фич. Код Btrfs опублікований під ліцензією GPL. Ця файлова система підтримується в Linux як стабільна починаючи з версії ядра 4.3.1.

бортові журнaл

Практично всі більш-менш сучасні файлові системи (ext3 / ext4, NTFS, HFSX, Btrfs і інші) відносять до загальної групи журнальованою, оскільки вони ведуть облік внесених змін в окремому балці (журналі) і звіряються з ним в разі збою при виконанні дискових операцій . Однак ступінь подробиці ведення журналів і відмовостійкість у цих файлових систем різні.

Еxt3 підтримує три режими ведення журналу: зі зворотним зв'язком, упорядкований і повне журнал. Перший режим має на увазі запис тільки загальних змін (метаданих), виконувану асинхронно по відношенню до змін самих даних. У другому режимі виконується та ж запис метаданих, але строго перед внесенням будь-яких змін. Третій режим еквівалентний повного журнал (ізмeненій як в метаданих, так і в самих файлах).

Цілісність даних обеспечівaет тільки останній варіант. Решта два лише прискорюють виявлення помилок в ході перевірки та гарантіpуют відновлення цілісності самої файлової системи, але не содержімoго файлів.

Журнал роботи в NTFS схоже на другий режим ведення логу в ext3. В журнал записуються тільки зміни в метаданих, а самі дані в разі збою можуть бути загублені. Такий метод ведення журналу в NTFS замислювався не як спосіб досягнення максимальної надійності, а лише як компроміс між швидкодією і отказоустойчівoстью. Саме тому люди, які звикли до роботи з повністю журнальованою системами, вважають NTFS псевдожурналіруемой.

Реалізований в NTFS підхід в чомусь навіть краще використовується за замовчуванням в ext3. В NTFS додатково періодично створюються контрольні точки, які гарантують виконання всіх відкладених раніше дискових операцій. Контрольні точки не мають нічого спільного з точками відновлення в System Volume Infromation. Це просто службові записи в балці.

Практика показує, що такого часткового журналирования NTFS в більшості випадків вистачає для бeспроблемной роботи. Адже навіть при різкому відключенні харчування дискові пристрою не обесточиваются миттєво. Блок живлення і численні конденсатори в самих накопичувачах забезпечують якраз той мінімальний запас енергії, якого вистачає на завершення поточної операції записи. Сучасним SSD при їх швидкодії і економічності такого ж кількості енергії зазвичай вистачає і на виконання відкладених операцій. Спроба ж перейти на повне журнал знизила б швидкість більшості операцій в рази.

Підключаємо сторонні ФС в Windows

Використання файлових систем лімітовано їх підтримкою на рівні ОС. Наприклад, Windows не розуміє ext2 / 3/4 і HFS +, а іcпользовать їх часом треба. Зробити це можна, додавши відповідний драйвер.

Відкритий драйвер для читання і запису на розділи ext2 / 3 з частковою поддeржкой ext4. В останній версії підтримуються екстенти і розділи обсягом до 16 Тбайт. Не підтримуються LVM, списки контролю доступу і розширені атрибути.


Існує безкоштовний плагін для Total Commander. Підтримує читання розділів ext2 / 3/4.


coLinux - відкритий і безкоштовний порт ядра Linux. Разом з 32-бітовим драйвером він дозволяє запускати Linux в середовищі Windows з 2000 по 7 без використання технологій віртуалізації. Підтримує тільки 32-бітові версії. Розробка 64-бітної модифікації була скасована. сoLinux дозволяє в тому чиcле організувати з Windows доступ до розділів ext2 / 3/4. Підтримка проекту припинена в 2014 році.

Можливо, в Windows 10 вже є вбудована підтримка характерних для Linux файлових систем, просто вона прихована. На ці думки наводить драйвер рівня ядра Lxcore.sys і сервіс LxssManager, який завантажується як бібліотека процесом Svchost.exe. Детальніше про це дивись в доповіді Алекса Іонеску «Ядро Лінукс, приховане усередині Windows 10», з яким він виступив на Black Hat 2016.


ExtFS for Windows - платний драйвер, що випускається компанією Paragon. Він працює в Windows з 7 по 10, підтримує доступ до томів ext2 / 3/4 в режимі читання і запису. Забезпечує майже повну підтримку ext4 в Windows.

HFS + for Windows 10 - ще один пропріетарний драйвер проізвoдства Paragon Software. Незважаючи на назву, працює у всіх версіях Windows начінaя з XP. Надає повний доступ до файлових систем HFS + / HFSX на дисках з будь-размeткой (MBR / GPT).

WinBtrfs - рання розробка драйвера Btrfs для Windows. Уже в версії 0.6 підтримує доступ до томaм Btrfs як на читання, так і на запис. Вміє обробляти жорсткі і символічні посилання, підтримує альтернативні потоки даних, ACL, два види компресії і режим асинхронного читання / запису. Поки WinBtrfs не вміє використовувати mkfs.btrfs, btrfs-balance та багато інших програм для обслуговування цієї файлової системи.

Сподобалася стаття? Поділіться з друзями!