<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=324953</guid>
        <pubDate>Fri, 26 Mar 2004 09:56:46 +0000</pubDate>
        <title>ФСы -- ext2, ext3, reiser.</title>
        <link>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=324953</link>
        <description><![CDATA[the_Shadow: 2 DEil.<br>Выходит -- хорошо? А как входит? :-DDD<br>Да, кстати, насколько я понял, ты Слаке решил с Фряхой изменить или я промазал? ;-D]]></description>
        <author>the_Shadow</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=324635</guid>
        <pubDate>Thu, 25 Mar 2004 18:29:44 +0000</pubDate>
        <title>ФСы -- ext2, ext3, reiser.</title>
        <link>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=324635</link>
        <description><![CDATA[DEiL: 2the_Shadow -&gt; знайемс, пробовали :-)<br>у меня на втором компутере кластер в 32кб на ФАТ32 имеется. и ничего, живём.. блин.. =)]]></description>
        <author>DEiL</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=324176</guid>
        <pubDate>Thu, 25 Mar 2004 09:17:17 +0000</pubDate>
        <title>ФСы -- ext2, ext3, reiser.</title>
        <link>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=324176</link>
        <description><![CDATA[the_Shadow: Ну, если тачка достаточно мощная и каких-то особонаворочанных в смысле вычислений задач нет, да и винты если здоровые, то можно ставить что угодно. :-D В моих условиях -- PII 350, 128, 4Gb (ещё 2 под M&#036;, итого 6), лучше не рисковать. :-D]]></description>
        <author>the_Shadow</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=323937</guid>
        <pubDate>Wed, 24 Mar 2004 20:54:00 +0000</pubDate>
        <title>ФСы -- ext2, ext3, reiser.</title>
        <link>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=323937</link>
        <description><![CDATA[SergeS: <strong class='tag-b'>the_Shadow</strong>, <br>
Ну - я ж ставил с дистримбом , себе ради интереса потом прицепил Реизер]]></description>
        <author>SergeS</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=323714</guid>
        <pubDate>Wed, 24 Mar 2004 13:35:42 +0000</pubDate>
        <title>ФСы -- ext2, ext3, reiser.</title>
        <link>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=323714</link>
        <description><![CDATA[the_Shadow: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>DEiL &#064; 24.03.04, 02:46</span><div class='quote '>вообще, для декстоп-юзеров (да и наверное уже не только для них) подобная тема плавно переходит в разряд &quot;зачем мне реализовывать quicksort, если мой p4-3.2EE может перемолоть милионный массив bubble sort&#39;ом за 1мс?&quot; ..</div></div><br>
Угу... Угу... Угу... :-)<br>
А теперь прикола ради создай <em class='tag-i'>1 файл</em> на <em class='tag-i'>100 байт</em>. А теперь прикинь -- 100 байт, да? А размер блока минимальный -- <em class='tag-i'>4096 байт</em>, так? И... какова, интересно, потаённая суть и сермяжная правда <em class='tag-i'>столь экономного</em> расхода дискового пространства? А что будет, если таких файлецов будет тысяч несколько? :-D <br>
<br>
Дальше. А вот представь теперь -- создаёшь ты такие вот мелкие tmp-файлы... По окончании &quot;процесса&quot; ты их удаляешь. Вот теперь вопрос -- а зачем все эти муки ФС по поводу упорядочения структур данных именно в ФС (которые свершают все журналирующие ФС)? <br>
<br>
Я не спорю с тем, что новое -- хорошо и прекрасно, но вопрос его внедрения должен быть хорошенько обдуман. У меня слишком мало времени на эксперименты... :-( <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='8' style='font-size:8pt;'><strong class='tag-b'>Добавлено в <time class="tag-mergetime" datetime="2004-03-24T13:38:52+00:00">24.03.04, 13:38</time></strong>:</span></span><br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>SergeS &#064; 23.03.04, 21:54</span><div class='quote '>.... у меня стоит reiserfs у него ext3 ....</div></div><br>
Я бы даже ext3 и не ставил бы... Остановился бы (да, собственно, так и сделал) на ext2... :-)]]></description>
        <author>the_Shadow</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=323278</guid>
        <pubDate>Tue, 23 Mar 2004 22:52:50 +0000</pubDate>
        <title>ФСы -- ext2, ext3, reiser.</title>
        <link>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=323278</link>
        <description><![CDATA[CKulT: скорость записи - ~17 МБ/сек с веника FAT32 на веник ResierFS, вплоть до остатка свободного места 50 Мб на райзере :)]]></description>
        <author>CKulT</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=323258</guid>
        <pubDate>Tue, 23 Mar 2004 21:46:31 +0000</pubDate>
        <title>ФСы -- ext2, ext3, reiser.</title>
        <link>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=323258</link>
        <description><![CDATA[DEiL: вообще, для декстоп-юзеров (да и наверное уже не только для них) подобная тема плавно переходит в разряд &quot;зачем мне реализовывать quicksort, если мой p4-3.2EE может перемолоть милионный массив bubble sort&#39;ом за 1мс?&quot; .. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='8' style='font-size:8pt;'><strong class='tag-b'>Добавлено в <time class="tag-mergetime" datetime="2004-03-23T21:47:58+00:00">23.03.04, 21:47</time></strong>:</span></span><br>
-)<br>
<br>
но читать было интересно&#33;  :)]]></description>
        <author>DEiL</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=323107</guid>
        <pubDate>Tue, 23 Mar 2004 18:58:50 +0000</pubDate>
        <title>ФСы -- ext2, ext3, reiser.</title>
        <link>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=323107</link>
        <description><![CDATA[SergeS: <strong class='tag-b'>the_Shadow</strong>, <br>
Скорость записи ... хм - погоняю .... занимает - не мерял %) ( при моём диске оно меня не так интересуент )]]></description>
        <author>SergeS</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=323042</guid>
        <pubDate>Tue, 23 Mar 2004 17:25:07 +0000</pubDate>
        <title>ФСы -- ext2, ext3, reiser.</title>
        <link>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=323042</link>
        <description><![CDATA[the_Shadow: Ха&#33; Читает -- быстрее. Не спорю, а вот пишет файлы и сколько всё это хозяйство место занимает (насколько полно использует винт) -- вопрос. :D]]></description>
        <author>the_Shadow</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=323028</guid>
        <pubDate>Tue, 23 Mar 2004 16:54:54 +0000</pubDate>
        <title>ФСы -- ext2, ext3, reiser.</title>
        <link>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=323028</link>
        <description><![CDATA[SergeS: У меня дома два одинковых компа - мой и отца ( купили в одно время туже модель ) - у меня стоит reiserfs у него ext3 .... и сто - у меня комп летает в 1.5 раза быстрее]]></description>
        <author>SergeS</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=322971</guid>
        <pubDate>Tue, 23 Mar 2004 15:42:05 +0000</pubDate>
        <title>ФСы -- ext2, ext3, reiser.</title>
        <link>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=322971</link>
        <description><![CDATA[grustnoe: вот как у Vit-а сервер начнет нормально работать - поверим в преимущество ext2 :)]]></description>
        <author>grustnoe</author>
        <category>*nix</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=322886</guid>
        <pubDate>Tue, 23 Mar 2004 14:17:58 +0000</pubDate>
        <title>ФСы -- ext2, ext3, reiser.</title>
        <link>https://forum.sources.ru/index.php?showtopic=49082&amp;view=findpost&amp;p=322886</link>
        <description><![CDATA[the_Shadow: <strong class='tag-b'>WARNING&#33; WARNING&#33; WARNING&#33;<br>
Господа, всё нижесказанное -- моё IMHO и не более.</strong><br>
<br>
<strong class='tag-b'>0. Итак, обещаное продолжение.</strong><br>
Проблема, напомню, заключалась в том, что при разборе вопроса одного из <br>
наших уважаемых коллег, мы никак не могли сойтись во мнении, какая же ФС<br>
более &quot;производительна&quot;. <br>
<br>
Суть проблемы была в том, что при работе/тестировании открывалось множество<br>
файлов, записывалась туда небольшая порция данных и файл закрывался. Причем,<br>
работа строилась на основе <em class='tag-i'>smbfs</em>. Подробнее см. тему -&gt;<br>
<br>
Я рискую утверждать что в ряде случаев (особенно это касается множества мелких<br>
файлов и &quot;серверных&quot; систем) все-таки лучше использовать более старую систему<br>
<em class='tag-i'>ext2fs</em>, нежели более новые <em class='tag-i'>ext3fs</em> и <em class='tag-i'>reiserfs</em>. <em class='tag-i'>Лучше <br>
использовать</em> именно в смысле <em class='tag-i'>скорости исполнения операций записи</em>, а<br>
не в смысле утверждения что <em class='tag-i'>лучше потому, что ext2fs -- отстой</em> или <em class='tag-i'>*fs --<br>
рулёз фарэва, все остальное -- отстой</em>. Подобного рода аргументация не проходит,<br>
точнее, не в данном случае и не в данном разделе Форума. Извините... Задолбалллло.<br>
Я не великой спец в области ФС, но с кое-какими выводами из своих &quot;развлечений&quot;<br>
познакомить могу. Оговорюсь сразу -- я использую наиболее старую ФС -- ext2. <br>
<br>
В данной теме я намерен:<br>
1. Разобраться с тем, а как вообще вся эта <em class='tag-i'>к</em>рень работает. Это я про ФС.<br>
2. Обосновать ранее приведенное высказывание.<br>
3. Если я не прав, то увидеть <em class='tag-i'>аргументированное</em> обоснование своей неправоты.<br>
4. <strong class='tag-b'>Я не претендую на роль &quot;истины в последней инстанции&quot; или ещё какого варианта<br>
&quot;супербизона&quot;.</strong><br>
<br>
<strong class='tag-b'>1. &quot;Печка&quot;.</strong><br>
Как вообще строится ФС в Linux? Я говорил это раньше и повторю это сейчас. В Linux выстроена <br>
<em class='tag-i'>уникальная</em> система по обработке файлов. Т.е. основа любой ФС в Linux -- <em class='tag-i'>Virtual File <br>
System</em>, в задачи которой входит обработка данных именно на уровне ядра. Т.е. безразлично <br>
<em class='tag-i'>какой конкретно ФС</em> мы пользуемся на данной машине и в данный момент времени. <em class='tag-i'>Для ядра</em> <br>
любая подмонтированная ФС суть точно такая же как и любая другая подмонтированная ФС.<br>
<br>
Кстати сказать. Не помню до какой версии, но раньше VFS строилась на базе ext2fs, которая<br>
была &quot;несущей конструкцией&quot; для неё (<em class='tag-i'>root filesystem</em>). Сейчас, я подчеркиваю, <em class='tag-i'>любая</em> <br>
ФС строится на базе VFS, в т.ч. и ext2fs. <br>
<br>
Итак, <em class='tag-i'>любая ФС</em> строится на базе единых строительных блоков (базовых понятий, если угодно).<br>
<br>
Это:<br>
- <em class='tag-i'>суперблок ФС</em>. Это структура данных, характеризующая данную ФС. Естественно, <br>
общей для нескольких различных ФС будет только структура суперблока, но не его содержание.<br>
Если Вы монтируете новую ФС, то именно этот суперблок и заполняете. В ядре структуры, описывающие<br>
суперблоки, связаны в список. <br>
<br>
См. <em class='tag-i'>/include/linux/fs.h</em>. <em class='tag-i'>Это суперблок VFS&#33;</em> Учтите это&#33; Суперблоки для конкретных<br>
ФС разложены по каталогам соотв. ФС&#33; Делать выводы о суперблоке для <em class='tag-i'>smbfs</em> на основе этого <br>
файла -- глупость&#33;<br>
<br>
Вообще-то указанный файлец довольно занимательный -- он определяет работу самого верхнего уровня <br>
абстракции в ФС. Абстракции ядерного уровня. И не только он. К примеру, <em class='tag-i'>fs_struct.h</em>. Там, к <br>
примеру, выставляется <em class='tag-i'>root filesystem</em>... Т.е. именно та ФС, которая будет монтироваться в <br>
каталог <em class='tag-i'>/</em> и в которую будут монтироваться остальные ФС.<br>
<br>
Кстати, в этом же файле (<em class='tag-i'>fs.h</em>) Вы увидите <em class='tag-i'>VFS helper functions</em>. Когда Ваш процесс чего-то <br>
делает с файлецом, то вызываются именно эти функции. А вот далее, в зависимости от того, каково положение<br>
целевого файла, вызывается обработчик той ФС, которая нам нужна в данном случае. И который, кстати,<br>
реализует логику работы целевой ФС. Это несколько упрощенная модель и прежде всего потому, что у <br>
каждой ФС, расположенной &quot;ближе&quot; к подмонтированному разделу есть <em class='tag-i'>свой суперблок</em>, определяющий<br>
имено какие-то специфичные для данной ФС моменты. На более низких уровнях абстракции, если мы об <br>
&quot;абстракциях&quot;.<br>
<br>
См. подкаталоги соотв. ФС в <em class='tag-i'>/usr/src/linux-&lt;ver&gt;/fs</em>. Даже простенькое сравнение подкаталогов по<br>
составу файлов наталкивает на некие интересные мысли. А, если начинаем сравнивать те же каталоги по <br>
размеру, то получается вообще всё интересно... См. ниже.<br>
<br>
Только не надо мне рассказывать, что сравнение по размеру ничего не доказывает. <em class='tag-i'>Это куски кода, который <br>
исполняется всякий раз, когда Вы чего-то пишете в файл, к примеру.</em> Ха&#33; Есть и другие аспекты и мы<br>
рассмотрим их ниже -- в частности, <em class='tag-i'>производительность при чтении</em> ФС. Их-то этот код и реализует и <br>
там он выгоден. А пока вернёмся к нашим структурам ФС. И, в частности, к суперблоку. Выводы по скорости <br>
записи в файл здесь напрашиваются сами, не так ли?<br>
<br>
Чем ещё это все интересно. Не так прост этот самый суперблок. Что происходит, к примеру, при потере<br>
питания? Комп. гасится, но в этот момент не происходит выполнения синхронизации буферов ФС и <br>
содержимого раздела диска. Т.е. не происходит выполнения команды <em class='tag-i'>sync/fsync</em> и демонтажа<br>
ФС. Т.е. при следующем включении система делает вывод о том, что суперблок необходимо восстанавливать<br>
и запускает <em class='tag-i'>fschk</em> (там есть &quot;флажок&quot;, который система проверяет и на основании его состояния<br>
принимает решение -- восстанвливать структуру или нет). Видели, наверное, к чему это ведет... И не <br>
раз... :D По этой-то причине я и говорю о том, что любая UNIX-система должна быть хорошо защищена по <br>
питанию. Они в таких случаях все ведут себя одинаково. Правда, журналирующие ФС приятное исключение, <br>
но... У всего есть свои минусы...<br>
<br>
Ладно. Далее. Получается, что у VFS есть некоторые <em class='tag-i'>дисковые буферы</em> для кеширования дисковых <br>
данных. И верно -- есть. См. сырцы. Больше на имена файлов не ссылаюсь, IMHO, понятно. Именно эти <br>
буферы и должны периодически сбрасываться на диск в процессе нормальной работы через определённые <br>
промежутки времени и полностью зачищаться при остановке системы. <br>
<br>
Кстати, в той теме, которая меня сподвигла на написание этой, я говорил о том, что для &quot;ушустрения&quot;<br>
работы ФС требуется уменьшить один из временн<em class='tag-i'>ы</em>х параметров. Что это за параметр см. <br>
<em class='tag-i'>/usr/src/linux-&lt;ver&gt;/fs/buffer.с</em>. Он относится к VFS.<br>
<br>
Просмотреть значения можно:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">$ cat /proc/sys/vm/bdflush</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
Шестая слева цифирь -- оно и есть. Это параметр, указывающий демону ядра <em class='tag-i'>bdflush</em> как часто<br>
сбрасывать данные из неиспользуемых буферов на диск. Он относится к подсистеме виртуальной машины,<br>
по этой причине и хранится в указанном выше каталоге. Собственно, команда <em class='tag-i'>sync/fsync</em> (см. <br>
утилита <em class='tag-i'>update</em> -- здесь можно поменять) ему и дают команду сбросить буферы. Ранее уже <br>
обсуждалось, так что батоны прессовать по этому поводу ещё раз, IMHO, излишнее, господа.<br>
<br>
Для более близкого знакомства с ФС есть фунции С <em class='tag-i'>statfs/fstatfs</em>.<br>
<br>
- <em class='tag-i'>i-node</em>.<br>
Суперблок содержит в себе данные о логической структуре диска, образованной <em class='tag-i'>i-node</em>&#39;ами или,<br>
проще, <em class='tag-i'>индексными дескрипторами</em>. Кстати сказать, практически все ФС UNIX-систем <br>
относятся к т.н. <em class='tag-i'>inode filesystems</em>.<br>
<br>
Что это. Это описание какого-то конкретного элемента ФС (будь то файл или каталог, или символическая<br>
ссылка), которым может управлять ФС. Для VFS inode содержит ряд параметров, характеризующих <br>
подмонтированную ФС. Для подмонтированной ФС все несколько по-интереснее. Там хранится инфа о <br>
размещении файлов/каталогов по блокам, размер файла, симв. ссылки, ID пользователя, группы, защита,<br>
тип файла, время создании/модификации/последнего доступа, .... <br>
Вообще-то для более близкого знакомства с <em class='tag-i'>inode</em>&#39;ами есть хорошая функция языка С -- <em class='tag-i'>stat <br>
(lstat/fstat)</em>. :D Ближе, IMHO, некуда... :D<br>
<br>
- <em class='tag-i'>блоки</em>.<br>
Это просто отдельные элементы хранения любых данных, которые могут храниться в ФС и которые <br>
учитываются в inode. Точнее, это -- <em class='tag-i'>filesystem block</em>. Размеры блоков могут варьироваться<br>
как правило, от 1К до 4К. Здесь важен ряд моментов:<br>
<br>
- при планировании ФС все-таки лучше себе чётко представить -- какой процент данных будет более<br>
полно укладываться в некоторое число, кратное размеру блока. Чем ближе Вы угадаете, тем больше места<br>
будет использоваться максимально эффективно. Ну, наверное, понятно, что мэйл-сервер и сервер БД<br>
работают с различными по размеру файлами и, как следствие, размеры блоков нужны различные. Если <br>
для первого случая не плохо было бы 1К поставить, то для второго и 4К не жаль. На десктопе у меня <br>
1К и... все нормально... Не жужжу... :D Единой методики для &quot;угадывания&quot; просто нет. <br>
<br>
- как обрабатываются блоки. См. ниже.<br>
<br>
Есть ещё такие элементы как <em class='tag-i'>каталоги</em>, <em class='tag-i'>сиволические ссылки</em>. И, вполне возможно, может <br>
использоваться ряд других элементов конкретной ФС, но нас в данный момент они мало интересуют. Т.е., <br>
определяется как именно должны храниться каталоги -- выделяется ли для них отдельное место в пределах <br>
ФС или нет, они хранятся в inode&#39;ах (в ext2, к примеру). Как хранятся символические ссылки -- <br>
выделяется ли для них  отдельное место и где. К примеру, в ext2 ФС не выделяется -- они хранятся там <br>
же в inode. <br>
<br>
Гораздо интереснее с точки зрения скоростных характеристик ФС другое -- (<em class='tag-i'>preallocating <br>
techniqe</em>) -- как и что из данных кэшируется. Т.е., к примеру, система должна прочесть некоторый <br>
файл, занимающий N блоков. Ок. Как и что будет кэшироваться -- список блоков, который нужно прочесть <br>
или содержимое этих самых блоков? <br>
<br>
Как раз это и определяет <em class='tag-i'>скорость ФС на чтение</em>. Т.е. со стороны кажется что чтение произведено<br>
&quot;мнгновенно&quot;. Но, как видите, это не так. Да, при кэшировании содержимого блоков занимается больше<br>
памяти и размер внутренних структур данных может значительно возрасти при достаточно большой нагрузке.<br>
Но эти данные копируются не с диска в память (как при кэшировании номеров блоков), а из памяти,<br>
находящейся в распоряжении ядра, в память прикладного процесса. Разница-то есть? <br>
<br>
Далее кэшироваться могут каталоги. Это значит, что поиск файлов может осуществляться более быстро,<br>
нежели при отсутствии такового (и вопрос, кстати сказать, как именно кэшируются каталоги, к примеру,<br>
в reiserfs используется вариант двоичного дерева, что несомненно ускоряет поиск как в кэше, так и<br>
формирование кэша из таблиц на диске). Есть ещё ряд тонкостей, характерных для различных ФС. <br>
<br>
Конкретнее -- как именно реализуется алгоритм журналирования, который весьма слабо связан с кэшированием. <br>
Связан-то связан, но для &quot;журнала&quot; используются свои &quot;подразделы&quot; в пределах root filesystem и, как<br>
правило, работа с этими &quot;подразделами&quot; представляет отдельный аспект работоспособности ФС (по большей<br>
части это именно запись данных, а не чтение). Короче, ну его в пень -- читайте сами доки и сырцы. <br>
Сравнивайте.<br>
<br>
Я могу обосновать <em class='tag-i'>только <strong class='tag-b'>свою</strong> позицию</em> по данному вопросу -- дело в принципе <em class='tag-i'>KISS</em>, <br>
точнее в следовании ему. Я не считаю нужным тратить ресурсы <em class='tag-i'>своей</em> системы на то, чтобы <br>
пользоваться тем, что мне не нужно, т.к. лишние для меня возможности -- лишние такты и байты памяти <br>
моей машины. Если <em class='tag-i'>простая</em> ФС мои задачи решает, то зачем мне сложная? Откуда убежденность<br>
в том, что, даже, скажем, я сделаю свой сайт, то он будет суперпопулярен и именно &quot;производительность&quot;<br>
ФС при поиске/чтении документов с винта будет &quot;бутылочным горлышком&quot; всей системы? <br>
<br>
IMHO, если кто-то хочет использовать более сложную ФС и может обосновать это, то почему бы и <br>
нет? :D Принцип <em class='tag-i'>KISS</em> не догма, а руководство к действию, не правда, ли? :D<br>
<br>
Далее. Я не отрицаю и не думаю даже спорить с тем, что в ряде случаев более новые ФС могут превзойти<br>
<em class='tag-i'>ext2</em>. Но я и не собираюсь спорить с тем, что программисты только и делают, что совершают <br>
ошибки и забывают чего-то тестировать... :D По этой причине, я не доверяю всем последним пискам <br>
моды и суперновым технологиям. :D Они должны пройти &quot;обкатку&quot;, обрасти доп. возможностями, пакетами,<br>
а дальше -- поговорим. На данный момент самая старая из ФС (ext2) -- самая проработаная в этом плане<br>
ФС. Для неё есть ряд доп. пакетов, реализующих (здесь не всё из возможного):<br>
- прозрачная компрессия -- <a class='tag-url' href='ftp://opensource.captech.com/e2compr/' target='_blank'>ftp://opensource.captech.com/e2compr/</a><br>
- дефрагментация -- <a class='tag-url' href='ftp://ftp.uk.linux.org/pub/linux/sct/defrag/' target='_blank'>ftp://ftp.uk.linux.org/pub/linux/sct/defrag/</a><br>
- изменение размера раздела -- <a class='tag-url' href='http://www.dsv.nl/~buytenh/ext2resize/' target='_blank'>http://www.dsv.nl/~buytenh/ext2resize/</a><br>
- редактор раздела -- <a class='tag-url' href='http://sunsite.unc.edu/pub/Linux/system/Filesystems/ext2/' target='_blank'>http://sunsite.unc.edu/pub/Linux/system/Filesystems/ext2/</a><br>
- undelete -- <a class='tag-url' href='http://amadeus.uprm.edu/~undelete' target='_blank'>http://amadeus.uprm.edu/~undelete</a><br>
- ...<br>
<br>
Не спорю, ряд пакетов из перечисленного списка при использовании новых ФС просто не нужен, т.к. в<br>
более новых ФС это всё уже реализовано за счёт более совершенных алгоритмов, но и так ни один из этих <br>
пакетов не обязателен -- он просто наводит глянец на работающую ФС и не более. Можете не ставить -- <br>
не умрёте. :D Да и потом -- по поводу совершенства алгоритмов -- давайте не будем делать <br>
скоропалительных выводов -- не к месту. Прошло ещё слишком мало времени. :D<br>
<br>
<strong class='tag-b'>2. Сводная &quot;табличка&quot; ФС.</strong><br>
В &quot;таблицу&quot; сведены три ФС -- <em class='tag-i'>ext2</em>, <em class='tag-i'>ext3</em>, <em class='tag-i'>reiserfs</em>. <br>
2.1 &quot;Filesize&quot;.<br>
Вы говорите это неважно? Хмммм... Поглядим... <br>
- ext2 -- 11 файлов сишных сырцов, 127 386 байт. <br>
- ext3 -- 10 файлов, 230 385 байт.<br>
- reiserfs -- 22 файла, 681 073 байт... <br>
Ула-ла... :D<br>
Ээээээ... Правда &quot;неважно&quot;? Серьёзно? ;) <br>
<br>
2.2 Возможности.<br>
2.2.1 ext2/3.<br>
Если не рассматривать &quot;журналирование&quot;, необходимого для восстановления ФС (прежде всего&#33;) <em class='tag-i'>ext3</em><br>
является расширением <em class='tag-i'>ext2</em>. По этой причине мы можем считать их одной системой в том, что <br>
касается иных параметров, в частности, физической структуры базовых блоков, inodes, каталогов. <br>
<br>
Итак, ext-ФС решают сходные задачи по оптимизации операций чтения/записи данных. При записи данных<br>
резервируется до восьми блоков на винте с тем, чтобы разместить данные по возможности более плотно.<br>
Действительно, имеет смысл, т.к. в этом случае, при чтении, головкам винта не надо будет долго <br>
парить над поверхностью с тем, чтобы считать очередной блок. Блоки будут располагаться практически<br>
рядом. Проблема дефрагментации возникает, если файлы не помещаются в выделенные блоки и начинают <br>
дробиться на восьмиблоковые куски. Вот только ext3 ещё должна сделать &quot;пометки&quot; в журнале... :D <br>
<br>
При чтении файла все несколько интереснее. Так же, до восьми блоков одного файла (если есть в файле<br>
столько блоков), будут последовательно считаны в буфер ядра. Это делается по причине того, что если<br>
считан один блок данных из файла, то, если там более одного блока, с высокой вероятностью потребуются <br>
и последующие. Размер блока определяется при создании ФС -- 1К, 2К, 4К. <br>
<br>
2.2.2 reiserfs.<br>
Самая главная особенность -- не журналирование, IMHO, а упорядочение данных. Сразу. При записи. И<br>
расширенные возможности кэширования данных.<br>
<br>
Журналирование вообще -- вкусный крем поверх пирожка. В любом случае, при записи данных, существуют<br>
задержки в журнале ФС и журнале транзакций, которые обеспечивают отказоустойчивость системы. Дело<br>
в том, что при аварийном останове системы, после её запуска, система делает попытку вначале провести<br>
в журнале блоков транзакции из журнала транзакций, а потом попытается из журнала блоков перенести<br>
успешные операции записи в ФС. Это выглядит здорово, пока я не подумаю о накладных расходах на операции <br>
записи, т.к. мало пары журналов, так ещё при записи ФС строит двоичное дерево файлов/каталогов и <br>
отображения их на пространство inоdes. И упорядочивает его по мере необходимости. Создали файл/удалили<br>
файл, должна вычислиться соотв. хэш-функция... :( Записали чего-то/удалили чего-то... Записи в <br>
журнале транзакций, при закрытии -- перенос их журнал блоков и, в завершение, в систему... Хэш-функции<br>
так же считаются, т.к. без них в b-tree никуда... :(<br>
<br>
Для того, чтобы всё не бвло бы всё очень &quot;грустно&quot; в смысле производительности ФС, размер блока <br>
установлен в 4К, т.к. если поставить 2К или 1К, то объём вычислений остаётся большим, а вот объём <br>
записываемых данных уменьшается. См. выше -- хорошо это или плохо -- 4К. <br>
<br>
Кстати сказать, то, что русские программисты приняли самое активное участие в этом проекте, вызывает<br>
дополнительную гордость. Проект (как идея, так и реализация) -- просто класс. Тут M&#036; обещает в<br>
новой ОС какую-то очередную революционную ФС, имеющую возможности &quot;базы данных&quot; при поиске файлов...<br>
Меня гнетут смутные сомнения, что я знаю где они скоммуниздили, если не сам релиз (было бы грубо),<br>
так идею... :D <br>
<br>
Да&#33; И, кстати, о &quot;дефрагментации&quot;... Угадайте -- по сколько блоков система пытается читать/писать<br>
данные? :D<br>
<br>
<strong class='tag-b'>3. Куда бежать?</strong><br>
А никуда не надо бежать. Если Вас гнетут размышления на тему, какая же ФС лучше, то я могу сразу<br>
сказать -- все. И никакой. Смотря для чего. Во всём есть свое рациональное зерно и однозначный <br>
ответ Вы можете получить только от &quot;специалиста по маркетингу&quot;, а не &quot;технаря&quot;. Лично мне непонятна<br>
гонка &quot;ядер&quot;, при которой народ только и делает, что апгрейдит и преустанавливает систему. Ааааа...<br>
Когда работает? Т.е. когда делает то, за что ему (народу) платят &quot;бабки&quot;? <br>
<br>
Точно так же не ясны побудительные мотивы в гонках ФС. Т.е. получается, что как только выходит<br>
новая ФС я её <em class='tag-i'>должен</em> поставить? Аааа... Зачем? Меня и старая более чем устраивает и, если<br>
я добавлю &quot;больше объёма, больше блеска&quot; в свою систему, то не заторможу ли я систему? Ладно...<br>
Где-то с <strong class='tag-b'>DEiL</strong>&#39;ом мы это уже обсуждали. Раньше было... <br>
<br>
Да и потом -- в ядре колупаться дело благородное. Но деньги я зарабатываю не этим. Когда приходят <br>
какие-то идеи, я, по мере возможности, стараюсь их реализовать (для себя). Вот, в принципе, и всё.<br>
Для выпусков новых public-версий/патчей для старых есть народ, именуемый <em class='tag-i'>kernel-hacker</em>&#39;ами. <br>
Я не из них, т.к. предпочитаю работать в режиме <em class='tag-i'>private</em>. Ладно, Бог бы с ним со всем.<br>
<br>
Давайте лучше разберем несколько примеров. Хотя, я хочу подчеркнуть -- <em class='tag-i'>различия между всеми этими<br>
ФС настолько малы, что проявляются только при <strong class='tag-b'>весьма</strong> значительной нагрузке на них</em>. И,<br>
зачастую &quot;суровая&quot; оптимизация ничего не даёт кроме траты времени. Как, к примеру, я его сейчас<br>
трачу... :D  <br>
<br>
Ещё один важный момент -- <em class='tag-i'>какова вообще-то хост-среда на рассматриваемой в каждом примере машине и <br>
каковы программные технологии, используемые для доступа к файлам</em>? Только ли то, что указано, или <br>
ещё чего-то &quot;болтается&quot;? В принципе, я видел... Хммм... &quot;Оригиналов&quot;, у которых <em class='tag-i'>на одной машине</em> <br>
крутились и самба, и прокс, и весь мэйл-сервер, и тут же были &quot;прикручены&quot; iptables, webmin, swat, <br>
Apache, MySQL, ... Ещё Бог знает чего... По-моему, вообще, всё, что только было возможно и <br>
невозможно... Но основной софт (за что платились деньги) был написан на... крепитесь, люди, на... <br>
<em class='tag-i'><strong class='tag-b'>FoxPro</strong></em> с... &quot;ассемблерными вставками&quot;&#33;&#33;&#33; Я не шучу это -- <em class='tag-i'>цитаты</em>&#33; Ж~D<br>
<br>
При этом было ещё два сервера (под Windows и под Novell), на которых смотрели как на священных коров. <br>
Попытки предложить распределить функции Linux (снеся хотя бы Novell, т.к. Windows была &quot;Корпоротивной <br>
Политикой&quot;, а Linux только-только пробивала себе дорогу) воспринимались как жутчайшее святотатство. <br>
<br>
И которые при всём при том... <em class='tag-i'>старались <strong class='tag-b'>оптимизировать</strong> систему</em>... Переписав какие-то <br>
жутко &quot;секретные системные параметры, которыми с ними хакеры поделились&quot;. Ж~D А ещё им нехватало <br>
&quot;блокировок на уровне записей в .dbf-файлах в Самбе&quot;... Как вспомню, так lol&#33;&#33;&#33; Особенно то, как <br>
сии доблестные викинги Фокспры и ассемблера заколёбывали своим сканированием внутренней сети... <br>
Организацией &quot;туннелей&quot; через наш прокс. И как всё было весело, когда я, как админ, просто рубанул к <br>
чертям собачьим всю их подсетку, хотя и не был особо жесток -- &quot;отлучение от ИНета&quot; было сделано в <br>
терапевтических целях и всего на пару недель, опосля месяца уговоров вести себя в каких-то рамках и <br>
отказаться (добровольно&#33;) от особотяжких глупостей и излечиться от особовредных заблуждений -- ну,<br>
хотя бы фигней с тоннелями не заниматься, т.к. от меня &quot;наверх&quot; должна уходить сводка чего, сколько,<br>
откуда за месяц выкачалось <em class='tag-i'>всем заводом</em>. А в их логах чётко просматривался тоннель, а меня<br>
просто ломало в свои логи цеплять данные с их хостов (при всей общей <em class='tag-i'>&quot;хакеранутости&quot;</em> всё-таки<br>
это было возможно Ж~D). Порнухи там явно не было (на тот момент, когда проверял), а остальная хрень <br>
типа patch&#39;ей на одну из Linux-систем или новых SQUID&#39;ов меня мало заботили... Так нет. Надо было <br>
извратиться -- всенепременно тоннель организовать... Ж~D Тоннель хорош, когда админу не &quot;в лом&quot; <br>
подняться парочкой этажей выше и просто на одном из хабов выдернуть шнурок, так... Чтоб конфиги не <br>
править лишний раз... И всё -- &quot;никто никуда не идёт&quot;... <em class='tag-i'>Принцип KISS</em> в действии... :D<br>
<br>
Ладно, будет ужо над убогими ржать... :D Это <em class='tag-i'><strong class='tag-b'>не оффтопик</strong></em>&#33; Это иллюстрация на тему <br>
первичноси и вторичности задач. &quot;Важного и неважного&quot;. Итак... <br>
<br>
3.1 Если Вы ставите сервер для SAMBA + 1:C, то лучше Вам поставить <em class='tag-i'>ext2</em> или <em class='tag-i'>ext3</em>.<br>
Ответ прост. 1:С написана на M&#036; C/C++, использует т.н. базы данных ISAM (<em class='tag-i'>Index-Sequency Access <br>
Method</em>), так? Т.е. данные (при самой напряженной операции -- поиске, т.к. поиск идет по <br>
индексному файлу, представляющему собой по идее, все тот же .dbf-файл, но только упорядоченый по <br>
некоторому индексу) читаются последовательно, несмотря на все ухищрения. <br>
<br>
Файлы достаточно большие. Т.е. нам все их в памяти держать смысла нет, т.к. это просто затормозит<br>
работу при большом числе пользователей. Вообще, на мой взгляд, 1:С -- не самый лучший продукт. <br>
Главная его прелесть в том, что он есть. Все остальное... Хмммм... Ладно. :D <br>
<br>
Пользователи &quot;ломятся&quot; по <em class='tag-i'>smbfs</em>, что ещё добавляет &quot;радости&quot;, т.к. если &quot;родные&quot; Linux-ФС<br>
ещё как-то кэшируют именно <em class='tag-i'>данные</em>, то smbfs кэширует содержимое каталогов (имена файлов и<br>
подкаталогов), обо всем остальном заботится VFS или root filesystem по запросу VFS. <br>
<br>
Забыл сказать -- сервер защищен по питанию УПСом, демон <em class='tag-i'>apmd</em> настроен, проведена проверка<br>
реакции системы на отключение питания и полный разряд батарей. Система смогла автоматически <br>
остановить ФС, корректно завершить работу. После включения питания все поднялось нормально.<br>
<br>
Т.е., продолжая тему, получаем, что отключение питания нам не страшно -- УПС и <em class='tag-i'>apmd</em> не<br>
дремлют. Суперблок под защитой. С файлами более-менее разобрались. Теперь вопрос -- а какую же<br>
все-таки систему выбрать-то -- <em class='tag-i'>ext2</em> или <em class='tag-i'>ext3</em>. А вот здесь думайте сами -- чем шустрее<br>
процессор, тем более сложную систему можно ставить. Хотя, в принципе, различия между ФС довольно <br>
малы, но все-таки, они есть. См. выше.<br>
<br>
3.2 Web-сайт (ftp-site). Причем, с серьёзной нагрузкой. Множество файлов, каталогов. Чем быстрее <br>
сервант &quot;отдаст&quot; документ в полном объёме -- тем лучше. Никак нет возможности определить какой <br>
документ (файл) в какой момент может быть затребован (классический случай <em class='tag-i'>случайного процесса</em>).<br>
Следовательно, чем быстрее будет найден документ (файл) и чем быстрее записан в сокет (отгружен <br>
клиенту), тем лучше. А особо частоиспользуемые (во как&#33; :D ) лучше бы вообще не скидывать из памяти... <br>
:D <em class='tag-i'>Reiserfs</em>, IMHO.<br>
<br>
3.3 Сервант некоторой конторы, где водятся дятлы, до которых никак не дойдёт, что деньги на УПС&#39;ы<br>
тратить <em class='tag-i'>надо</em>. Любая из систем будет слабо гарантировать защиту от отказов. Хуже всех, конечно<br>
же -- <em class='tag-i'>ext2</em>. Лучше -- <em class='tag-i'>reiserfs</em>. Но не обольщайтесь -- всё до каких-то пределов...<br>
<br>
3.4 Десктоп. Здесь всё интереснее. С одной стороны -- <em class='tag-i'>reiserfs</em>, как самая кэширующая и<br>
скоростная на чтение ФС, с другой стороны -- <em class='tag-i'>ext2/3</em> ФС. Сразу вопрос -- как насчёт УПСа? <br>
Далее -- какие всё-таки задачи решаются? Какие размеры файлов в среднем? Как много файлов (склонны <br>
ли Вы устраивать на своём винте файловые &quot;помойки&quot;)? А, может, у Вас на машине будут &quot;крутится&quot; <br>
какие-то серверы, работающие на всё предприятие в общем и целом (ведь в UNIX любой хост может быть <br>
как клиентом, так и сервером)? Словом, вот этот вариант всё-таки по-сложнее любого другого будет.<br>
Как я его решил -- см. выше. Как Вы решили -- дело Ваше. :D<br>
<br>
А, вообще, если есть желание <em class='tag-i'>реально</em> ускорить дисковую подсистему, то просто поменяйте<br>
винты с IDE или аналогичных, на SCSI. Не прогадаете, говорю на основании собственного опыта, т.к.<br>
при любом раскладе IDE-винты только <em class='tag-i'>приближаются</em> по своим характеристикам к SCSI. Здесь<br>
играет роль ряд факторов -- и наличие на контроллере SCSI буфера памяти (в те времена, когда я <br>
с ними &quot;резвился&quot;, до 16 MB было, как сейчас -- посмотреть спецификации надо бы), и сама по себе <br>
более быстрая шина, ... Ну не настолько же гениальны Apple&#39;овцы, чтобы самим разработать SCSI и <br>
не настолько тупы, чтобы не ставить его на свои системы. А посмотрите на Mac&#39;и, там практически <br>
вся дисковая подсистема, в т.ч. и CD-ROM построены на SCSI. И не зря.<br>
<br>
Хочу сразу предостеречь от &quot;тонкой настройки&quot; дисковой подсистемы через <em class='tag-i'>hdparm</em>. Иногда<br>
встречаются бредовые идеи по &quot;разгону&quot; дисков и &quot;оптимизации доступа&quot; через выставление <br>
принудительно через <em class='tag-i'>hdparm</em> параметров доступа. Это, по сути дела, род &quot;разгона&quot;. Всё это <br>
здорово, но этак можно получить режим работы, который Ваша система не воспримет как корректный. <br>
Ну, при установке системы, ведь уже выставились некоторые параметры, которые систему удовлетворяют,<br>
чего ещё-то надо? Слишком хорошо -- оно то же не хорошо, IMHO. Дело в том, что при таком раскладе,<br>
можно &quot;на раз&quot; &quot;убить&quot; винчестер. Вам это надо? Хотя, если Вы хотите hardcore&#39;ных экспериментов, <br>
то такая возможность есть... Почему бы и нет? :D<br>
<br>
<strong class='tag-b'>4. Библиография.</strong><br>
<br>
- <em class='tag-i'>/usr/doc/Linux-HOWTO/Filesystems-HOWTO</em>. Документ, на мой взгляд, не<br>
полный, но основная идея -- продемонстрировать как и с какими ФС можно работать.<br>
Даны краткие характеристики некоторых ФС. С этими задачами документ справляется <br>
на все 100%. Почитайте -- не пожалеете.<br>
<br>
- <em class='tag-i'>&quot;The Linux Kernel&quot; by David A Rusling</em>. &quot;Теоретические основы&quot; можно<br>
найти именно здесь, но моя версия документа слегка устарела.<br>
<br>
- как всегда в подобных случаях -- <em class='tag-i'>/usr/src/linux-&lt;ver&gt;</em>.<br>
Здесь интересно следующее -- <em class='tag-i'>/Documentation/filesystems</em>, <em class='tag-i'>/fs</em>,<br>
ряд подкаталогов в ветке <em class='tag-i'>/include</em>... Сырцы ядра, короче, ждут Вас. :D<br>
<br>
<strong class='tag-b'>PS</strong><br>
<em class='tag-i'>Весь объём данных</em> одному &quot;поднять&quot; просто невозможно. За скобками остались ещё<br>
интересные ФС, да и многие особенности этих трёх ФС. Читайте, разбирайтесь... Всё в <br>
Ваших руках.<br>
<br>
Я никого ни за какую ФС не агитировал&#33; Всё вышесказанное, господа, не более чем моё<br>
IMHO&#33;<br>
<br>
Успеха&#33; :D]]></description>
        <author>the_Shadow</author>
        <category>*nix</category>
      </item>
	
      </channel>
      </rss>
	