Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > файловая система FreeBSD


Автор: Гость_Nick 16.1.2006, 00:04
Сразу скажу, что поиск я использовал и хэндбук по FreeBSD читал и в английском и в русском варианте) тем не менее - все равно не понимаю, как же устроена файловая система этой ОС smile ... поставил себе в качестве второй операционки FreeBSD 6.0... но в *nix'ах еще очень зеленый... дальше консоли и настройки сети не ушел))


система, насколько я понимаю, древовидная, начинается с корневого каталога "/"... а дальше пошли подкаталоги и файлы... вроде просто... но, допустим, я хочу добавить в систему новый жесткий диск... я его могу вроде бы смонтировать например в "/myfcs/newdisk1/", допустим я хочу добавить еще диск... монтирую его опять же например в "/myfcs/newdisk2/"... так, а вот теперь я хочу установить программу размером, к примеру, 3 ГБ... могу ли я проверить свободное место на моих файловых системах, чтобы понять, где оно есть, а где нет?
Далее - я абсолютно любую программу смогу установить туда, куда хочу? т.е. потенциально я могу установить, например, текстовый редактор ЕЕ в каталог, скажем, "/myfcs/newdisk2/texteditors/ee/"? или есть ограничения?
еще непонятно - системные каталоги вроде usr/var/etc и т.п. расположены где? вне файловых систем (оО)? иди в самой первой файловой системе, той, которая корневая? т.е. если у меня три жестких диска, на первом из которых установленна фрибсд, то получается (очевидно) что все системные папки лежат на первом hdd, их размер, например благодаря логам может возрастать, свободное для меня место лежит начиная от "/"...там я могу создавать свои подпапки и монтировать новые файловые системы из двух оставшихся дисков?
еще дальше - что-то я совершенно запутался с партициями фрибсд... читаю вот это:

File systems are contained in partitions. This does not have the same meaning as the common usage of the term partition (for example, MS-DOS partition), because of FreeBSD's UNIX® heritage. Each partition is identified by a letter from a through to h. Each partition can contain only one file system, which means that file systems are often described by either their typical mount point in the file system hierarchy, or the letter of the partition they are contained in.

хмм... если я могу монтировать по древовидной системе системе вроде бы целую кучу файловых систем, то почему каждая партиция может содержать только одну файловую систему? т.е. уже вроде бы было понятно, что два диска можно смонтировать на "/myfcs/newdisk1,2"... а тут получается, что нельзя? или я что то не понимаю...
во вторых - что это еще за обозначения от A до H... ведь вроде бы договорились, что буквы не используем... или обращаться по типу "A:\mydocs\" в FreeBSD можно? О_О
где эти партиции расположены физически?

а вообще я тут подумал, легче рассказать то, что я думаю, что понимаю, чем то, что не понимаю)

значится так:

-партиция в MS Dos/Windows = слайс в FreeBSD
-в случае одного слайса он делится на партиции, с условными названиями от A до H... (каждая партиция - это типа логического диска в MS Dos/Windows???)
-новые файловые системы пихаются как точки монтирования в корневую файловую систему (кажись партиция А)... потом можно заливать в них любую нужную инфу
-некоторые партиции служат специальным целям (типа партиция E для каталога var)...

примерно так?

если я хочу установить, например, базу данных... я могу указать ей путь "/myfcs/newdisk4/superbase/"? а потом настроить путь хранения данных, скажем, "/myfcs/newdiskraid1/sbd/"?


Извиняюсь за сумбурность и некую несвязность написанного... я просто понимаю, что ничего не понимаю и хочу понять, что же именно я упустил... а в инете сплошь цитирования хэндбука.... хочу разобраться подробно, чтобы потом не маятся smile
спасибо...

Автор: DENNN 16.1.2006, 09:38
Цитата(Гость_Nick @ 16.1.2006, 00:04 Найти цитируемый пост)

могу ли я проверить свободное место на моих файловых системах, чтобы понять, где оно есть, а где нет?

df -iH

Цитата(Гость_Nick @ 16.1.2006, 00:04 Найти цитируемый пост)

я абсолютно любую программу смогу установить туда, куда хочу? т.е. потенциально я могу установить, например, текстовый редактор ЕЕ в каталог, скажем, "/myfcs/newdisk2/texteditors/ee/"? или есть ограничения?

теретически - да.
Цитата(Гость_Nick @ 16.1.2006, 00:04 Найти цитируемый пост)

еще непонятно - системные каталоги вроде usr/var/etc и т.п. расположены где? вне файловых систем (оО)?

Нет. Они будут располагаться на том слайсе, на котором хранятся эти каталоги.
Цитата(Гость_Nick @ 16.1.2006, 00:04 Найти цитируемый пост)

во вторых - что это еще за обозначения от A до H... ведь вроде бы договорились, что буквы не используем... или обращаться по типу "A:\mydocs\" в FreeBSD можно? О_О

Это не относится к дискам, а относиться к разделам. Просто способ их условного перечисления. Вообще введено для удобства описания и нигде в самих файловых системах не используется.
Цитата(Гость_Nick @ 16.1.2006, 00:04 Найти цитируемый пост)

-партиция в MS Dos/Windows = слайс в FreeBSD

Да
Цитата(Гость_Nick @ 16.1.2006, 00:04 Найти цитируемый пост)

-в случае одного слайса он делится на партиции, с условными названиями от A до H... (каждая партиция - это типа логического диска в MS Dos/Windows???)

Полный бред. Слайс не делитсься ни на что другое, он содержит в себе файловую систему определенного типа.
Цитата(Гость_Nick @ 16.1.2006, 00:04 Найти цитируемый пост)

-новые файловые системы пихаются как точки монтирования в корневую файловую систему (кажись партиция А)... потом можно заливать в них любую нужную инфу

Нет. Монтировать можно в любую точку (кроме самого корня разумеется).
Цитата(Гость_Nick @ 16.1.2006, 00:04 Найти цитируемый пост)

-некоторые партиции служат специальным целям (типа партиция E для каталога var)...

Да и нет. каталог var ничем не отличается от других. Специальный слайс - это место под swap. Остальные виды слайсов содержат файловые системы или их имитацию (экзотические системы в расчет не берем).
Цитата(Гость_Nick @ 16.1.2006, 00:04 Найти цитируемый пост)

если я хочу установить, например, базу данных... я могу указать ей путь "/myfcs/newdisk4/superbase/"? а потом настроить путь хранения данных, скажем, "/myfcs/newdiskraid1/sbd/"?

Это твое личное дело - на своем хосте ты хозяин. Другое дело, что скомпилировать нужно правильно или конфиги исправить smile

Автор: cenix 16.1.2006, 10:50
Гость_Nick
В общем вот тебе ссылник с кучей книжечек, в том числе по фре, может быть они и цитирование хендбука, но мне кажется более подробное.
http://www.linuxcenter.ru/enc/unix.phtml
ЗЫ: в частности, у федорчука я прочитал хде-то год назад про устройство файловой системы во фре и в принципе я думаю там офигенно написано.

Автор: bilbobagginz 16.1.2006, 11:36
во первых очень жаль что ты не зарегистрированный. вопрос приятный smile
хочется дать те в репу даже за него.

теперь ближе к телу.

на самом деле тебя не интересует 'устройство' файловой системы, а ее:
структура ( где что лежит обычно ), методы использования и что нам это дает.

для начала договоримся об общем языке:
  • directory = папка. ( = folder )
  • partition = раздел
  • slice = кусок

smile

куски versus разделы...
  • DOS-way:
    DOS, linux и Windows используют принцип и ограниченность PC-BIOS в отношении жестких дисков, т.е. на жестком диске невозможно создать более 4 частей (кусков). в Линукс, ДОС и виндовс используется трюк DOS v.3 и выше, с помощью которого определяли одну часть (кусок) как 'Extended', внутри которой можно было добавлять дополнительные логические части. все: и 1 ис четырех и эти логические части в мире ДОС/Линукс и называют 'разделы', и для них создается в системе специальное устройство.
  • UNIX-way
    BSD - это настоящая UNIX. здесь не хотят зависеть от BIOS, поэтому сама часть созданная BIOS, fdisk и т.д. называется 'куском'. Внутри этого куска создаются внутренние суб-куски - по имени 'разделы'. т.е. в BSD любой 'кусок' (slice) - что-то типа extended partition. а 'раздел' (partition) - что-то типа логического диска. как ты и предполагал. smile

напр., создав на 1-м физическом диске ATA кусок но.1 и разбив оного на 3 части имеем 4 файлa устройств:
/dev/ad1s1 ( сам 'кусок' )
/dev/ad1s1a ( первый раздел )
/dev/ad1s1b ( второй раздел )
/dev/ad1s1c ( 3-й раздел )

о структуре и корнях:
файловая система имеет в Юникс один корень: /
и под ним лежат разные папки. любая локальная папка под / может прикрепить (смонтировать) под себя другую внешнюю файловую систему (может быть искл. - lost+found - папка потерянных индекс-нодов... сервисная). после того как это происходит, корень той, внешней подключается в наше дерево в той папке, которая наз-ся 'точка монтирования' ( это как садисты-огородники-мичуринцы 'прививают' ветки к основному стволу )
после этого мы можем гулять по внешней ФС будто она - локальная.

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

начальное создание этих мета-данных называют 'форматирование' или 'создание файловой системы'.

и на самом деле все это тебя НЕ интересует.

Эксплуатация всего свыше:
расставим точки над i:
  • каждый кусок в BSD - имеет разделы, которые можно прикреплять/отключать к/от своей файловой системе с помощью команд mount,umount, в куске может быть намного больше разделов, чем по конвенции PC-BIOS. лишь один из них при установки выбирается корневым, и его прикрепляют НА /, посредством chroot, все остальные подключаются под него.
  • если мы монтируем не пустую папку /usr/test, то ее настоящие (локальные) данные после mount исчезают и мы видим под ней файлы внешнего (это может быть - другой раздел, флешка, диск, кассета, виндовый share, nfs volume, afs volume ) подключенного дерева файловой системы ( они не исчезают - их мы просто перестаем видеть. когда отключаем удаленную файловую систему - увидим обратно )
  • Если ты заполнил диск, то новый диск не будет использован всей системой - только новые папки смогут использовать новых диск.
т.е. да, ты можешь добавить диск, разбить его на куски и куски на разделы (fdisk, disklabel) , создать в них ф.с командой mkfs, и прикрепить их к основному дереву "/" командой mount.
но:
если вдруг захочется изменить величину одного раздела, а другой вообще освободить - тебе понадобится заново затирать разделы, и разрушать ф.с., т.е. о изменении величины не может быть и речи.

если ты точно знаешь сколько твой сервер будет использовать диска - это вовсе не проблема. но проблема возникает когда ты постоянно расширяешься и тебе нельзя на несколько минут/часов/дней 'перезагрузиться'.
что же делать ?

решение VVM = Vinum Volume Manager.
короче, само решение - дело техники, почитай уже мануал.

но идея - используется программа, которая работает сама с разделами, а пользователь работает с логическими (виртуальными) устройствами, которые можно изменять, добавлять и отключать по мере надобности. Изменение величины делается прыжками в какую-то определенную величину.

ладно, копай, думаю все ты уже сам справишься.

тут с сообщениями до меня есть некоторые разногласия... позже отнесусь к ним.

Удачи.

Автор: Trionyx 16.1.2006, 12:58
вот это да!!!
cenix -- очень большое спасибо... наиценнейший линк!
всем жить там! )))

админам предложение прилепить ряд ссылок на литературу... очень полезно!

Автор: Kagor 16.1.2006, 13:39
Цитата(cenix @ 16.1.2006, 11:50 Найти цитируемый пост)
ЗЫ: в частности, у федорчука я прочитал хде-то год назад про устройство файловой системы во фре и в принципе я думаю там офигенно написано.
Ты случайно не про http://unix.ginras.ru/bsd/sys000.html.

Автор: batigoal 17.1.2006, 09:21
bilbobagginz
Это надо в FAQ.

Автор: cenix 17.1.2006, 12:44
Kagor
Цитата

Ты случайно не про это.

угу, про это. Только я это почитал в каком то журнале, и мне очень понравилось его изложение.

Автор: Reisende 18.1.2006, 08:00
Всем спасибо, немного разобрался... буду разбираться и дальше smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)