Tomsk Sysadmins Forum

Unix => SuSE => Topic started by: kalif on November 15, 2009, 13:01:42

Title: Резервирование места в файловой системе
Post by: kalif on November 15, 2009, 13:01:42
Куда и зачем собственно резервируется место на дисках?

[attachment=325:sysm.png]
Title: Резервирование места в файловой системе
Post by: Safir on November 15, 2009, 14:42:49
Никогда на эту тему не копал, но вот 2 варианта: журнал (ибо Ex3), разница между свободными кластерами и общим объёмом. Первое кажется более вероятным. Если кто скажет точнее - буду рад узнать.
Title: Резервирование места в файловой системе
Post by: Kavka on November 16, 2009, 10:58:34
Это фича ext2/ext3. Они же с таблицами размещения, типа FAT (могу ошибаться). Вот они и отъедают объём.

Вот что нашёл в просторах интернета из расчёта на 20Гб раздел.
Quote
Ext3 has the worst inital capacity (92.77%), while others FS preserve almost full partition capacity (ReiserFS = 99.83%, JFS = 99.82%, XFS = 99.95%
Ext3 имеет наихудшую начальную ёмкость... дальше понятно.

PS: XFS и JFS тоже журналируемые, только чуть подругому.
Title: Резервирование места в файловой системе
Post by: xxx on November 16, 2009, 11:05:16
Quote from: Kavka
Это фича ext2/ext3. Они же с таблицами размещения, типа FAT (могу ошибаться).
немного ошиблись  - типа NTFS как в виндах.. сразу резервирует место под журнал исходя из общего объёма
Title: Резервирование места в файловой системе
Post by: Kavka on November 16, 2009, 11:46:22
Под журнал NTFS резервирует не более 64Мбайт.
Вот что под рукой есть - на разделе в 8 Гиг журнал ~54Мб, на разделе в 80 Гиг 64Мб.
Всё остальное, 10-12% от размера раздела, это резервирование для MFT-зоны, чтобы она фрагментировалась меньше. Хотя и тут не всё так однозначно.

PS: Как посмотреть размер журнала на NTFS? Вобщем, google, yandex и wikipedia вам в помощь.

PPS: Если уж затронули тему сравнения FS ,то вот пара страничек
http://www.mail-archive.com/debian-russian...g/msg00989.html (http://www.mail-archive.com/[email protected]/msg00989.html)
http://www.debian-administration.org/articles/388 (http://www.debian-administration.org/articles/388)
Title: Резервирование места в файловой системе
Post by: nuclight on November 16, 2009, 15:02:16
Ну вообще-то не надо путать место под структуры метаданных FS (и на юниксовых они совсем не похожи на таблицы FAT, кстати) и резервируемое место. Первое вообще нигде не будет видно в свободном месте. А второе на ufs/ext2fs резервируется потому, что при большой заполненности диска резко падает скорость работы fs. Причем это место доступно для записи руту, что в интернете порождает ошибочный слух, что оно предназначено для резерва руту. Настраивается в tunefs/tune2fs, ключ -m.
Title: Резервирование места в файловой системе
Post by: Kavka on November 16, 2009, 17:18:20
nuclight, спасибо за уточнение про резервирование на ufs/ext2/ext3. Про него я совершенно забыл.  

2kalif
К стати, в мане на tune2fs (настройжик ext2/ext3) написано, что по умочанию 5% резервируется, что как раз вписывается в цифры на картинке.
Title: Резервирование места в файловой системе
Post by: xxx on November 16, 2009, 17:42:50
Quote from: nuclight
А второе на ufs/ext2fs резервируется потому, что при большой заполненности диска резко падает скорость работы fs.
да, именно так, тока резервируется не потому что скоорость может упасть, а для того чтобы привилегированные процессы (типа syslog ) не создавали дефрагментацию и могли коррктно работать даже если другие процессы не смогуть писать на раздел (например, нет места уже) ..
перевод мана
Title: Резервирование места в файловой системе
Post by: _bob on November 17, 2009, 11:04:06
Всё гораздо проще. При исчерпании места на диске простым усером (и не только) система (для непривилегированного пользователя)
становится колом. Даже залогиниться усер (простой) не сможет.
Для этого и создаётся резерв (по умолчанию на ext2/3 он составляет 5%), доступный только для root, дабы он почистить/расклинить
систему мог. Ну и дабы сислог и привилегированные процессы нормально работали. Конечно, 5% от сотен гиг или нескольких терабайт
многовато, ИМХО.
Потому можно сей резерв уменьшить (man tune2fs на предмет опции -m).

Вот и всё.
==
С уважением.
Title: Резервирование места в файловой системе
Post by: xxx on November 17, 2009, 11:25:59
Quote from: _bob
Всё гораздо проще. При исчерпании места на диске простым усером (и не только) система (для непривилегированного пользователя)
становится колом. Даже залогиниться усер (простой) не сможет.
Для этого и создаётся резерв (по умолчанию на ext2/3 он составляет 5%), доступный только для root, дабы он почистить/расклинить
систему мог. Ну и дабы сислог и привилегированные процессы нормально работали. Конечно, 5% от сотен гиг или нескольких терабайт
многовато, ИМХО.
Потому можно сей резерв уменьшить (man tune2fs на предмет опции -m).
тогда уж квоты вводить для юзеров лучше , чем баловаться настройками , вернее будет, по-моему
и не надо жалеть для работоспособности системы 50 мегов от 1 гига  
Title: Резервирование места в файловой системе
Post by: _bob on November 17, 2009, 11:45:19
Quote from: xxx
==скипанул==
и не надо жалеть для работоспособности системы 50 мегов от 1 гига  
На ноутбуке (личном) 250 гиг диск. 50х250=12,5 гиг. Иногда жаба-то
и давит...
Квоты для себя, родного -- как-то некузяво...
Потому и было ИМХО.
==
С уважением.
Title: Резервирование места в файловой системе
Post by: xxx on November 17, 2009, 11:49:30
Quote from: _bob
На ноутбуке (личном) 250 гиг диск. 50х250=12,5 гиг. Иногда жаба-то и давит...
Квоты для себя, родного -- как-то некузяво...
ктож знал! для себя родного ничего не жалко  принимается ИМХО
Title: Резервирование места в файловой системе
Post by: nuclight on November 18, 2009, 17:04:57
Ну вот мы и видим этот самый слух про место для рута в действии, ага. А меж тем, думать полезно.

Quote
да, именно так, тока резервируется не потому что скоорость может упасть, а для того чтобы привилегированные процессы (типа syslog ) не создавали дефрагментацию

Фрагментацию тогда уж, а не дефрагментацию.

Quote
Всё гораздо проще. При исчерпании места на диске простым усером (и не только) система (для непривилегированного пользователя) становится колом. Даже залогиниться усер (простой) не сможет.
Для этого и создаётся резерв (по умолчанию на ext2/3 он составляет 5%), доступный только для root, дабы он почистить/расклинить систему мог. Ну и дабы сислог и привилегированные процессы нормально работали.

Опять же, тот же слух, а стоило бы копнуть глубже. Тот же syslog работает под рутом - вот он переполнит раздел невзирая на резерв, и что? Кстати, нормальной практикой безопасности является PermitRootLogin no в sshd_config, так что один фиг колом.

Далее, этот резерв при желании элементарно (шо означает и вероятность случайного непредумышленного) обходится простым юзером, простейший способ ping 127.0.0.1 > /path/file_on_partition_to_overflow и подождать. Другие способы в свое время рассматривались в рассылке lkml (linux-kernel), там же и сошлись на том, что это нифига не фича для безопасности, не поддерживается, рассчитывать на неё нельзя (используйте квоты), и что неплохо бы исправить документацию на эту тему, но всем было лень.

Происходит же он от того, что как раз при большой заполненности диска алгоритмы размещения блоков начинают работать хуже, как раз усиливается фрагментация (найти свободные куски достаточного размера всё сложнее), и как результат - падает производительность записи. В интернете можно найти рекомендации делать этот резерв даже больше, 10% (иногда и более) - по некоторым замерам, ниже этого порога производительность может упасть до 2 раз. Разумеется, всё это зависит от паттерна использования раздела - я на серверах на разделы с редкой записью делаю -m 0, некритично. На UFS он по умолчанию равен 8% (её структуры и алгоритмы несколько сложнее, чем на ext2).

Ну и наконец, стандартная документация mkfs.ext2 и документация ядра всё-таки упоминают проблему фргаментации, хоть и не были исправлены, чтобы прояснить вопрос окончательно. В конце концов, если бы предназначение этой фичи было лишь резервом места, то она присутствовала бы во всех файловых системах, либо вообще не в fs, а на уровне регулятора в /proc. Однако мы не видим её ни в Райзере, ни в XFS, и т.д., а только лишь в файловых системах со структурой и алгоритмами семейства ufs/ext2/ext3, что еще раз подтверждает зависимость от конкретных проблем конкретных FS.
Title: Резервирование места в файловой системе
Post by: xxx on November 18, 2009, 18:19:05
Quote from: nuclight
Ну вот мы и видим этот самый слух про место для рута в действии, ага. А меж тем, думать полезно.
все знают,что думать полезно, у вас есть серьёзные доводы,что здесь никто не думает?  
развеете слух - будете молодцом и умницей  
Quote
Фрагментацию тогда уж, а не дефрагментацию.
извиняюсь, описался думая о дефрагметации
Quote
Опять же, тот же слух, а стоило бы копнуть глубже. Тот же syslog работает под рутом - вот он переполнит раздел невзирая на резерв, и что? Кстати, нормальной практикой безопасности является PermitRootLogin no в sshd_config, так что один фиг колом.
причем здесь sshd? речь идёт о локальной работе и не о серверах..
так резюмируя,каков вывод? есть чтонить по делу, ведь некоторым людям жалко отдавать лишние гиги.
Title: Резервирование места в файловой системе
Post by: nuclight on November 19, 2009, 16:26:25
Есть, разумеется, я же писал про сервера с редкой записью, к примеру. Попробуйте внимательно читать, и еще и осмысливать написанное к своим условиям :)
Title: Резервирование места в файловой системе
Post by: _bob on November 20, 2009, 13:13:34
Вообще-то я писал не про сервера, а про рабочую станцию (у меня три раздела /boot swap и /).
Это для экономии места на диске ноутбука. В этом случае сислог (да и все остальные) конечно пишут в корень.
Сислог умеет ротировать логи, что снижает требования к резерву.
Но на рабочей станции даже в mc видно, сколько места осталось на корневом разделе.
Ну и df никто не отменял... Так что для рабочих станций (ноутбуков, десктопов) при грамотной эксплуатации
сия тема неактуальна.

Для серверов со многими усерами -- использовать квоты (хотя усеры в корень не пишут).
Сислог пишет не в корень, а в /var/log/ и потому сислогом корневая ФС переполниться не может.
Так что проблема на самом деле неактуальная, если грамотно разбит(ы) диск(и) сервера на разделы
(не на три раздела /boot  / и swap).
Ну и сисадмин существует для того, чтобы следить за системой и корректировать возникаюшие по ходу
эксплуатации проблемы, а не "поставил и забыл", как это часто делается.
Исходя из этого и на серверах проблем с переполнением корня не должно существовать.

==
С уважением.
Title: Резервирование места в файловой системе
Post by: xxx on November 20, 2009, 16:41:18
Quote from: _bob
Вообще-то я писал не про сервера, а про рабочую станцию (у меня три раздела /boot swap и /).
я вот и подумал,что речь идёт не о серверах - о них надо отдельный раздел заводить.  
вообще-то рекомендуется выносить / и /home на разные разделы - этому тоже было посвящено не мало статей и доводов
Quote
Это для экономии места на диске ноутбука.
где экономия если вместо двух разделов  на 400 и 20 гиг будет один раздел на 420 гиг?  
Quote
Сислог пишет не в корень, а в /var/log/ и потому сислогом корневая ФС переполниться не может.
Так что проблема на самом деле неактуальная, если грамотно разбит(ы) диск(и) сервера на разделы
(не на три раздела /boot  / и swap).
Ну и сисадмин существует для того, чтобы следить за системой и корректировать возникаюшие по ходу
эксплуатации проблемы, а не "поставил и забыл", как это часто делается.
Исходя из этого и на серверах проблем с переполнением корня не должно существовать.
собственно, потому и предагают разбивать ФС на / , /home , /tmp , /var ... (помимо /boot и /swap) в случае нагруженной разной работой сервера..