Компьютерная грамотность, помощь и ремонт

Файловые системы linux сравнение. Файловые системы Windows

(2010 год) с некоторыми дополнениями и уточнениями.

Журналирование

Прежде, чем говорить о файловых системах — давайте кратко рассмотрим понятие «журналирование «.

Журналирование в том или ином виде применяется практически во всех современных файловых системах.

Журналирование используется только при операциях записи на диск, и является своеобразным буфером для всех таких операций. Этот подход помогает решить проблемы, которые возникают во время операции записи на диск, при которых компьютер выключается, например — из-за отключения электричества. Без журналирования в таких случаях невозможно выяснить — какие файлы были записаны — а какие не были или были записаны частично.

При использовании журналирования — файл сначала записывается в журнал (или «лог»). После этого — файл записывается на жесткий диск а потом удаляется из журнала, после чего операция записи считается завершённой. Если во время записи выключилось питание — то после включения системы файловая система может проверить журнал, и найти незавершённые операции.

Самая главная проблема при использовании журналирования — это то, что для её использования требуются дополнительные ресурсы системы. Для того, что бы уменьшить такие накладные расходы — журналируемые файловые системы пишут в журнал не весь файл целиком — а только определённые метаданные.

Файловые системы Ext

Ext

Означает «Extended » (расширенная) файловая система, и она являлась первой, которая была разработана специально для Linux -систем. Всего на сегодняшний день существует 4 файловые системы Ext . Самая первая из них — просто Ext — являлась серьёзным обновлением ФС ОС Minix .

Характеристики Ext :

  • максимальный размер файла: 2GB;
  • максимальный размер раздела: 2GB;

Разработчик — , а первая версия появилась в 1992 году.

Мы не будем её рассматривать, т.к. скорее всего вы уже никогда с ней не столкнётесь.

Ext2

— не журналируемая ФС, выпущенная в 1993 году, основная задача для которой была поддержка устройств размером до 2 Террабайт. Т.к. у Ext2 нет журналирования — она выполняет намного меньше операций записи на диск, что сказывается на быстродействии и области её применения.

Характеристики:

  • максимальный размер файла: 16GB — 2TB;
  • максимальный размер раздела: 2 — 32 TB;
  • максимальный размер имени 255 символов.
  • в силу низкого количества операций записи-удаления данных — является идеальной для различных флеш-накопителей;
  • в то же время современные SSD -диски имеют улучшенные показатели их жизненного цикла (изноустойчивости элементов накопителя) и некоторые другие особенности, которые нивелируют недостатки Ext2 как не журналируемой ФС.

Ext3

— появилась в 2001 году, вместе с выпуском Linux Kernel 2.4.15. Фактически является той же Ext2 , но с поддержкой журналирования. Основной целью Ext3 была возможность её обратной совместимости с Ext2 без необходимости переформатирвоания разделов. К преимуществам же можно отнести тот факт, что большая часть тестирования, багфиксов и т.д. для Ext3 была то же, что и в Ext2 , что сделало Ext3 более стабильной и быстрой ФС.

Характеристики:

  • максимальный размер файла: 16GB — 2TB (в зависимости от размера блока);
  • максимальный размер раздела: 2 — 32 TB (в зависимости от размера блока);
  • подходит, если у вас используется Ext2 , и вы хотите исподьзовать журналирование;
  • в силу своей производительности и стабильности — вероятно, будет наиболее подходящей ФС для серверов баз данных;
  • возможно не лучший выбор для серверов, т.к. не поддерживает создание снимков (shapshot ) ФС и сложностей с восстановлением удалённых файлов.

Ext4

— как и Ext3 имеет обратную совместимость с предыдущими версиями ФС. Собственно говоря, вы можете смонтировать Ext2 или Ext3 как Ext4 -и при определённых условиях добиться большей производительности. Вы так же можете смонтировать Ext4 как Ext3 без каких-либо побочных эффектов.

Ext4 — стабильная версия была выпущена в 2008 году. Является первой ФС из «семейства» Ext , использующая механизм « «, который позволяет добиться меньшей фрагментации файлов и увеличить общую производительность файловой системы. Кроме того — в Ext4 реализован механизм отложенной записи ( ), который так же уменьшает фрагментацию диска и снижает нагрузку на CPU. С другой стороны — хотя механизм отложенной записи и используется во многих ФС — но в силу сложности своей реализации он повышает вероятность утери данных. См. для более подробной информации.

Характеристики:

  • максимальный размер файла: 16 TB;
  • максимальный размер имени файла: 255 символов.
  • наилучший выбор для SSD ;
  • наилучшая производительность по сравнению с предыдущими Etx -системами;
  • она так же отлично подходит в качестве файловой системы для серверов баз данных, хотя сама система и моложе Ext3 .

BtrFS

— разработана компание Oracle в 2007 году. По своей схеме схожа с ReiserFS , основной принцип её работы — это т.н. . BtrFS позволяет динамически выделять inode, создавать снимки ФС во время её работы, выполнять прозрачную компрессию файлов и делать дефрагментацию в рабочем режиме.

Хотя стабильная версия BtrFS ещё не включена в большинство дистрибутивов Linux (на сегодняшний день, судя по посту — только SUSE и Oracle Linux ) — она вполне может заменить Ext3/4 в обозримом будущем и уже предоставляет возможности по конвертации Ext3/4 в BtrFS . Кроме того, стоит упомянуть, что один из разработчиков Ext , сказал, что «BtrFS — это шаг в будущее».

Характеристики:

  • максимальный размер раздела: 16 EB;
  • максимальный размер имени файла: 255 символов.
  • в силу производительности, снимкам и другим возможностям — BtrFS является отличной файловой системой для сервера;
  • Oracle так же разрабатывает замену для NFS и CIFS , которая называется CRFS и которая призвана улучшить производительность для файловых хранилищ с BtrFS ;
  • тесты производительности показали отставание BtrFS от Ext4 на твердотельных носителях, таких как SSD и при операциях со сравнительно небольшими файлами:

ReizerFS

— представленная в 2001 году реализовала в себе многие возможности, которые никогда не смогут быть реализованы в Ext *. В 2004 на замену ReizerFS была выпущена ФС Reizer4 .

В то же время — разработка Reizer4 продвигается очень медленно, и до сих пор имеет ограниченную поддержку (?) в ядре Linux . В настоящее время реально доступной для использования остаётся только ReiserFS .

Характеристики:

  • максимальный размер файла: 1 EB ();
  • максимальный размер раздела: 16 TB;
  • максимальный размер имени файла: 4032 байт, но ограничено до 255 символов .
  • отличная производительность при работе с небольшими файлами, такими как файлы логов и отлично подойдёт для серверов баз данных или почтовых серверов;
  • ReiserFS хорошо поддаётся увеличению размера тома — но не поддерживает его уменьшение и шифрование на уровне ФС;
  • будущее Reiser4 пока остаётся под вопросом и пока BtrFS остаётся предпочтительным (?) выбором между этими двумя ФС.

ZFS

— стоит упомянуть тут, т.к. она так же разрабатывалась компание Oracle и имеет возможности, схожие с BtrFS и ReizerFS . Она так же стала весьма известна после того, как компания Apple о намерении использовать её в качестве ФС по умолчанию. Первый релиз ZFS состоялся в 2005 году.

В силу ограничений из-за лицензии — ZFS не может быть включена в ядро Linux , однако её поддержка возможна с помощью механизма Linux’s (FUSE ).

Характеристики:

  • максимальный размер файла: 16 EB ();
  • максимальный размер раздела: 256 ZiB (Zebibyte);
  • максимальный размер имени файла: 255 байт.
  • показыавет отличную производительность при работе с большими дисковыми массивами;
  • поддерживает возможности по объединению дисков в массивы, созданию снимков ФС, и работе со «расслоённым отображением» ( ) данных;
  • возможны сложности при попытке установки и использования в Linux -системах, в силу необходимости использования FUSE .

Swap

Swap — не является файловой системой вообще. Файл или раздел со swap -ом используется системой виртуальной памяти ядра и не имеет структуры файловой системы вообще. Её нельзя примонтировать и считать с неё данные, т.к. swap используется исключительно ядром Linux для записи страниц памяти не диск. Как правило — swap используется только в том случае, когда ОС испытывает недостаток в свободной RAM и «сбрасывает» часть данных из памяти в swap для её освобождения.

Операционная система Linux поддерживает огромное количество разнообразных типов файловых систем. С точки зрения Linux файловые системы можно условно разделить на четыре группы:

  • «Родные» файловые системы. Имеется в виду, что файловая система поддерживает все атрибуты, свойственные Linux: права доступа, временные метки, информацию о владельце файла и т.д.;
  • «Неродные» файловые системы. То есть файловые системы, не поддерживающие атрибуты Linux;
  • Виртуальные. Это файловые системы, которые не имеют физического носителя;
  • Сетевые файловые системы.

К «родным» файловым системам можно отнести:

  • reiserfs

Файловая система ext2

Ext2 - это одна из первых файловых систем, используемых в Linux (Если говорить более точно, то первая файловая система Linux - это minix. Но возможности этой fs весьма ограничены, и она применялась только на начальном этапе развития Linux. ). Она была создана в 1993 году. Система считается очень надёжной и проверенной временем. Но, поскольку ext2 разрабатывалась в те времена, когда жёсткий диск размером 300 Мбайт считался очень большим, ей присущи некоторые ограничения. Применять эту fs для больших разделов не имеет смысла, она начнёт «тормозить», когда в разделе будет большое количество файлов. То есть ext2 считается медленной (Понятие «медленная» очень относительное. Ext2 считается медленной в Linux. Но если сравнить её со стандартной файловой системой FreeBSD, окажется, что ext2 очень даже быстрая. ). Конечно, с увеличением размеров дисков, с появлением новых веяний, в файловую систему вносились изменения, улучшающие её работу и функциональность. Например, поддержка POSIX ACL. Но всё же её не коснулись глобальные изменения, позволяющие говорить:

Да, это та самая, единственная файловая система, которая меня полностью устраивает.

Кроме того, ext2 имеет серьёзные ограничения:

  • Максимальный размер файла - 2048 Гбайт.
  • Максимальный размер файловой системы - 32768 Гбайт.
  • Максимальное количество поддиректорий в одной директории - 32768.

Журналируемые файловые системы

Сейчас файловую систему ext2 уже практически не используют. И дело даже не в её ограничениях, ext2 достаточно надёжная файловая система. Всё дело в скорости загрузки Linux-серверов. Необходимо, чтобы сервер работал постоянно. Но чудес не бывает, сервера иногда приходится перегружать. Ваша задача - сделать так, чтобы после падения системы они перегружались как можно быстрее. При включении сервера происходит проверка дисков. Процедура проверки файловых систем, особенно больших, - достаточно длительная процедура. Если таких файловых систем несколько, то их проверка может занять очень много времени. А сервер должен работать!

Для уменьшения времени, тратящегося на проверку, и для увеличения надёжности были разработаны журналируемые файловые системы. Если вы работали с базами данных, вам наверняка известно такое понятие как транзакция. В транзакцию объединяют несколько SQL-операторов. Система должна выполнить все операторы. Если хотя бы один из них не срабатывает, то система откатывается на начало транзакции. Если система была отключена во время выполнения транзакции, при включении, если это возможно, она пытается выполнить оставшиеся операторы или вернуться на начало транзакции.

В современные файловые системы была добавлена поддержка журнала транзакций. С точки зрения работы файловой системы все операции с файлом выглядят как одна транзакция. Если посмотреть подробнее на файловые операции в Linux, запись или изменение файла - это довольно сложная процедура, состоящая из многих действий с данными на диске. При использовании журнала транзакций, прежде чем какие-либо физические изменения будут произведены на диске, в журнале открывается новая транзакция, в которой будут записаны все действия, которые будут производиться с файловой системой. И только после того, как транзакция будет сохранена на диске, будут производится изменения в файловой системе.

Если файловая система будет отключена некорректно, программа проверки сначала смотрит журнал транзакций и на основании данных, находящихся в нём, попытается либо вернуть (откатить) систему на момент начала транзакции, или, если это возможно, завершить действия, описанные в транзакции. Учитывая то, что журнал имеет небольшой размер (в файловой системе ext3 он равен 32 Мбайт), процесс восстановления файловой системы значительно ускоряется.

Файловая система ext3

Когда возникла необходимость внедрения журналируемых файловых систем в Linux, компания RedHat разработала файловую систему ext3. В RedHat пошли путём наименьшего сопротивления - за основу взяли хорошо известную ext2 и добавили поддержку журнала.

По своему физическому устройству ext2 идентична ext3. Эта особенность позволила применять для работы с ext3 такие же утилиты (создание, проверка и настройка файловых систем), как и для работы с ext2.

Несмотря на добавление журнала, ext3 работает быстрее, чем ext2. К достоинствам ext3 следует также отнести возможность журналирования не только необходимых действий, но и данных, что не позволяют делать другие журналируемые системы. Благодаря этой особенности ext3 считается очень надёжной.

Ext3 поддерживает три режима работы:

  • Writeback - в этом режиме не происходит журналирования данных. В журнал сначала помещаются так называемые метаданные (inode файла, ссылки на блоки). Только после того, как они попали в журнал, происходит запись данных в файловую систему.
  • Ordered (режим по умолчанию) - этот режим похож на описанный выше. Единственным отличием является то, что в режиме writeback в журнал сначала помещаются все метаданные, и только после этого происходят изменения в файловой системе. А в режиме ordered при помещении информации о блоке в журнал этот блок сразу же изменяется в файловой системе. Затем в журнал помещается информация о следующем блоке, и блок записывается, и так далее. То есть данные изменяются параллельно с изменением в журнале.
  • Journal - режим полного журналирования. В журнал попадают метаданные и данные. И только после этого происходит изменение в файловой системе.

Файловая система ReiserFS

ReiserFS разрабатывается Гансом Реизером (Hans Reiser) и его компанией Namesys (http://www.namesys.com). Это очень быстрая файловая система, хорошо приспособленная для хранения большого количества маленьких файлов.

В ней удалось решить проблему размещения на диске маленьких файлов. Например, в ext2/3 для размещения файла, содержащего единственный символ, на диске будет занят целый блок. Блок ext2/3 может иметь размер от 1 до 8 Кбайт (размер зависит от объема файловой системы ). А в ReiserFS в одном блоке могут быть размещены данные нескольких файлов. Более того, если размер файла очень мал, данные могут быть размещены в inode, то есть непосредственно в метаданных.

Файловая система базируется на оптимизированных деревьях (B tree). Это увеличивает скорость поиска в файловой системе и снимает вопрос ограничения количества файлов и директорий в директории.

С файлами большого размера данная файловая система тоже справляется весьма уверенно.

Для файловой системы ReiserFS версии 3.6 существуют следующие ограничения:

  • Максимальный размер файла - 8 Тбайт (для 32-битных компьютеров);
  • Максимальный размер файловой системы - 16 Тбайт.

Сейчас разрабатывается следующая версия ReiserFS - четвёртая. Ожидается, что она будет включена в ядрах версии 2.6.17 или 2.6.18.

Файловая система JFS

Эта файловая система разрабатывается компанией IBM и распространяется под лицензией GNU GPL. Описание JFS можно найти в Интернете на сайте . JFS используется не только в Linux, но и в других операционных системах, например, в AIX и OS/2.

JFS - журналируемая файловая система. Основной её конёк - использование совместно с LVM (Logical Volume Manager). LVM позволяет объединять несколько физических разделов жёстких дисков в один логический, который затем можно разбивать на разделы как обыкновенный жёсткий диск. При этом некоторые типы LVM позволяют на лету подключать новое дисковое пространство. И если на увеличивающихся разделах использовать файловую систему ext3, в один прекрасный момент вы получите сообщение о невозможности создания нового файла. Дело в том, что при форматировании раздела в ext3 в нём заранее, в зависимости от размера, резервируется конечное количество inodes. То есть заранее известно максимальное количество файлов. Если размер файловой системы не будет увеличиваться, то этого количества inodes вполне хватает для нормальной работы. В JFS есть возможность динамического увеличения файловой системы и количества inodes. Благодаря этому свойству, при увеличении размера файловой системы не возникает ограничение на количество создаваемых файлов.

Для файловой системы JFS существуют следующие ограничения:

  • Максимальный размер файла ограничивается разрядностью операционной системы.
  • Максимальный размер файловой системы - 512 Тбайт.

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

Файловая система XFS разрабатывалась в компании SGI (бывшая Silicon Graphics, Inc.). XFS появилась на свет в 1994 году и изначально поставлялась с операционной системой IRIX. Компания SGI славится своими рабочими станциями для производства видео, а также серверами для хранения данных. Поэтому файловая система оптимизирована для обслуживания большого количества огромных файлов и для поддержки больших директорий. Благодаря своей структуре, она так же хорошо поддерживает большое количество маленьких файлов. По своему быстродействию она сопоставима с файловой системой ReiserFS, а по надёжности превосходит файловую систему Ганса (Сколько данных было мной потеряно в файловой системе ReiserFS на пустом месте. Спасало только резервное копирование. Поэтому сейчас я ReiserFS на серверах не использую. ).

Поддержка больших файлов возможна благодаря тому, что XFS - это 64-битная файловая система. А скорость работы файловой системы достигается благодаря использованию В+ деревьев для поиска и описания внутренних структур.

Внутренне устройство файловой системы достаточно сложное, и я не вижу необходимости в кратком описании ее структуры. Тем более, что в Интернете есть хорошие статьи, подробно описывающие XFS:

Файловые системы компании Microsoft

Если говорить о файловых системах компании Microsoft, в Linux поддерживаются FAT и NTFS. С FAT всё очень просто, структура файловой системы известна, поэтому в Linux она поддерживается полностью. Единственное, что необходимо учесть при использовании FAT, в Linux существует две её разновидности:

  • msdos - FAT12/16.
  • vfat - FAT32.

Поддержку FAT следует включать в том случае, если вы предполагаете использовать гибкие диски и различные USB-накопители: флеш-карты, жёсткие диски и т.д. Дело в том, что все они обычно отформатированы в FAT.

C NTFS немного сложнее. Эта файловая система нормально поддерживается в режиме только для чтения. В режиме записи её не рекомендуется использовать. Хотя режим записи поддерживается, но если почитать документацию к драйверам NTFS, вы увидите, что там большими буквами написано: в режиме записи можно только изменять содержимое существующих файлов, ни в коем случае нельзя создавать новые файлы, удалять или изменять размер существующих - это может разрушить файловую систему.

Файловые системы iso9660 и udf

Эти файловые системы используются для хранения информации на CD- и DVD-дисках.

Изначально iso9660 была очень простой файловой системой с большим количеством ограничений. Например, имена файлов как в MS DOS, ограничение на количество вложений директорий. Поэтому для iso9660 было написано несколько дополнений, расширяющих её возможности. В том числе, дополнения, позволяющие сохранять атрибуты файлов UNIX. Все дополнения поддерживаются драйвером файловой системы, и никаких затруднений при работе быть не должно. Более того, драйвер iso9660 поддерживает, как это ни странно звучит, режим записи. Он применяется при создании образов CD-ROM.

С udf тоже не замечено особых проблем. Таким образом, работа с CD- и DVD-дисками поддерживается в Linux без каких-либо ограничений.

Файловая система proc

Относится ке разряду виртуальных фаловых систем. Очень полезная файловая система. В работе администратора вы очень часто будете обращаться к её возможностям. В одной из первых глав, рассказывающих об организации файловой системы Linux, я вкратце рассказывал о предназначении этой файловой системы. Просто напомню, что файлы, которые находятся в директории /proc - это отображение области данных ядра на файловую систему. То есть, если вы просматриваете содержимое какого-либо файла, на самом деле вы видите определённую часть области данных ядра.

Ниже опишу некоторые интересные файлы, которые вы можете встретить в директории /proc . Содержимое файлов в вашей системе будет отличаться от содержимого файлов, показанных в качестве примеров.

/proc/cmdline

Содержит командную строку, переданную ядру при его запуске.

# cat cmdline BOOT_IMAGE=Linux-2613 ro root=303 #

/proc/cpuinfo

Информация о процессоре или процессорах.

# cat cpuinfo processor: 0 vendor_id: GenuineIntel cpu family: 6 model: 9 model name: Intel(R) Pentium(R) M processor 1400MHz stepping: 5 cpu MHz: 1399.050 cache size: 1024 KB fdiv_bug: no hlt_bug: no f00f_bug: no coma_bug: no fpu: yes fpu_exception: yes cpuid level: 2 wp: yes flags: fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe est tm2 bogomips: 2800.93 #

/proc/devices

Список устройств.

# cat devices Character devices: 1 mem 2 pty 3 ttyp 4 /dev/vc/0 4 tty 4 ttyS 5 /dev/tty 5 /dev/console 5 /dev/ptmx 7 vcs 10 misc 13 input 14 sound 21 sg 116 alsa 128 ptm 136 pts 171 ieee1394 180 usb 226 drm 254 pcmcia Block devices: 3 ide0 7 loop 8 sd 11 sr 65 sd #

/proc/dma

Использование каналов DMA.

# cat dma 4: cascade #

/proc/filesystems

Список поддерживаемых файловых систем.

# cat filesystems nodev sysfs nodev rootfs nodev bdev nodev proc nodev sockfs nodev pipefs nodev futexfs nodev tmpfs nodev inotifyfs nodev eventpollfs nodev devpts ext3 ext2 nodev ramfs msdos vfat iso9660 ntfs udf nodev mqueue nodev usbfs #

/proc/interrupts

Распределение прерываний.

# cat interrupts CPU0 0: 850627 XT-PIC timer 1: 9691 XT-PIC i8042 2: 0 XT-PIC cascade 7: 2 XT-PIC parport0 8: 1 XT-PIC rtc 9: 6620 XT-PIC acpi 11: 238626 XT-PIC Intel 82801DB-ICH4, yenta, yenta, eth0, eth1, ohci1394, ehci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb3, uhci_hcd:usb4, radeon@pci:0000:01:00.0 12: 65575 XT-PIC i8042 14: 11538 XT-PIC ide0 NMI: 0 LOC: 0 ERR: 0 MIS: 0 #

/proc/modules

Список загруженных модулей.

# cat modules irtty_sir 5248 0 - Live 0xf8a09000 sir_dev 13548 1 irtty_sir, Live 0xf8a1d000 irda 107768 1 sir_dev, Live 0xf8a3f000 crc_ccitt 1792 1 irda, Live 0xf8a04000 parport_pc 24324 0 - Live 0xf8a16000 parport 30920 1 parport_pc, Live 0xf8a0d000 uhci_hcd 30416 0 - Live 0xf89e7000 ehci_hcd 27656 0 - Live 0xf897a000 usbcore 103740 3 uhci_hcd,ehci_hcd, Live 0xf8990000 ohci1394 31092 0 - Live 0xf895e000 ieee1394 86392 1 ohci1394, Live 0xf891e000 ipw2100 78204 0 - Live 0xf8936000 ieee80211 18948 1 ipw2100, Live 0xf8918000 ieee80211_crypt 4488 1 ieee80211, Live 0xf88f8000 eepro100 26512 0 - Live 0xf8909000 pcmcia 30568 4 - Live 0xf8900000 firmware_class 7680 2 ipw2100,pcmcia, Live 0xf88f2000 yenta_socket 20748 4 - Live 0xf8879000 rsrc_nonstatic 11264 1 yenta_socket, Live 0xf8875000 pcmcia_core 34640 3 pcmcia,yenta_socket,rsrc_nonstatic, Live 0xf88e2000 #

/proc/mounts

Содержит список подключенных файловых систем.

# cat mounts rootfs / rootfs rw 0 0 /dev/root / ext3 rw 0 0 proc /proc proc rw,nodiratime 0 0 sysfs /sys sysfs rw 0 0 none /dev ramfs rw 0 0 /dev/hda5 /usr ext3 rw 0 0 /dev/hda6 /home ext3 rw 0 0 /dev/hda1 /mnt/win ntfs ro,noatime,nodiratime,uid=0,gid=0,fmask=0177,dmask=077,nls=iso8859-1, errors=continue,mft_zone_multiplier=1 0 0 devpts /dev/pts devpts rw 0 0 usbfs /proc/bus/usb usbfs rw 0 0 #

/proc/partitions

Содержит список разделов всех подключенных накопителей.

# cat partitions major minor #blocks name 3 0 58605120 hda 3 1 10485688 hda1 3 2 506520 hda2 3 3 9775080 hda3 3 4 1 hda4 3 5 9775048 hda5 3 6 28062688 hda6 #

/proc/pci

Список устройств, обнаруженных на шине PCI.

Этот файл можно использовать для диагностики причин, почему не работают некоторые устройства. Обращайте внимание на прерывания: если оно равно 0, это значит, что устройству по какой-либо причине не было выделено прерывание. Я не буду полностью приводить содержимое этого файла, он очень большой.

# cat pci PCI devices found: Bus 0, device 0, function 0: Host bridge: Intel Corporation 82855PM Processor to I/O Controller (rev 3). Prefetchable 32 bit memory at 0xd0000000 . Bus 0, device 1, function 0: PCI bridge: Intel Corporation 82855PM Processor to AGP Controller (rev 3). Master Capable. Latency=96. Min Gnt=12. Bus 0, device 29, function 0: USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 1). IRQ 11. I/O at 0x1800 . #

/proc/swaps

Содержит список подключенных swap файлов и разделов.

# cat swaps Filename Type Size Used Priority /dev/hda2 partition 506512 0 -1 #

/proc/version

Содержит информацию о версии операционной системы и ядра Linux.

# cat version Linux version 2.6.13-rc3-my (root@master) (gcc version 3.3.6) #3 Tue Jul 19 22:25:23 GMT+3 2005 #

Информация о процессах

Кроме файлов в /proc находятся директории, имеющие в качестве имени число. Каждая директория описывает процесс, PID которого соответствует имени директории. Файлы в этой директории описывают параметры процесса. Содержимое одной из директория приведено ниже.

# ls /proc/4624 auxv cwd@ exe@ maps mounts oom_score seccomp statm task/ cmdline environ fd/ mem oom_adj root@ stat status wchan #

Только несколько из приведенных в примере файлов содержат информацию, которая была бы понятна без предварительной обработки.

cmdline

Содержит аргументы командной строки.

# cat cmdline -su #

environ

Содержит значения переменных среды окружения процесса.

# cat environ HZ=100TERM=xtermPATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/binHOME=/rootSHELL=/bin/bashUSER=rootLOGNAME=rootMAIL=/var/spool/mail/root #

status

Содержит информацию о состоянии процесса в формате понятном человеку.

# cat status Name: bash State: S (sleeping) SleepAVG: 98% Tgid: 4510 Pid: 4510 PPid: 4498 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 256 Groups: 0 1 2 3 4 6 10 11 VmSize: 2832 kB VmLck: 0 kB VmRSS: 1724 kB VmData: 388 kB VmStk: 88 kB VmExe: 628 kB VmLib: 1628 kB VmPTE: 12 kB Threads: 1 SigQ: 0/7168 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000010000 SigIgn: 0000000000384004 SigCgt: 000000004b813efb CapInh: 0000000000000000 CapPrm: 00000000fffffeff CapEff: 00000000fffffeff #

Другие директории

Коме директорий, описывающих процессы системы, в /proc могут находиться и другие директории. Ниже приведу назначение некоторых из них:

  • ide - информация об устройствах, подключенных к ide интерфейсу.
  • irq - информация о распределении прерываний.
  • net - информация о сети. Содержимое таблицы arp и таблицы маршрутизации. Статистика по сетевым интерфейсам и протоколом. И так далее.
  • scsi - информация о SCSI устройствах.
  • sys - содержит изменяемые параметры системы.

/proc/sys

Файловая система /proc/sys - это отдельная большая тема. При помощи файлов, находящихся в этой директории можно «на лету» изменять параметры системы. Достаточно записать нужное значение в определенный файл. Описывать /proc/sys я не буду, слишком много информации и слишком много надо знать, что бы понять для чего используются файлы. Поэтому я расскажу где найти документацию и описание по этой файловой системе:

Sysfs используется программой udev для динамического создания файлов устройств.

Если честно, многие люди задумываются о поисках лучшей файловой системы для своего компьютера. У пользователей 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 на одной машине, вам может быть интересна моя статья.

Похожие публикации