Устройство файловой системы VDS на FreeBSD

Материал из wiki.p3.ru

Как устроена файловая система VDS?

Файловая система Виртуального Выделенного Сервера (VDS / VPS) - это результат слияния дискового шаблона для VDS, в котором находится всё предустановленное программное обеспечение, и собственных файлов пользователя. Для владельца VDS это выглядит как единая файловая система, но подобная организация имеет следующие плюсы:

  • Предустановленное программное обеспечение не занимает дискового пространства выделенного для VDS в рамках его тарифа.
  • При обновлении программного обеспечения в дисковом шаблоне, все изменения на всех VDS вступают в силу немедленно.

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

Как посмотреть только собственные файлы VDS?

Так как файловая система VDS выглядит как единое целое, то для владельца VDS, работающего с файловой системой через shell, невозможно достоверно определить принадлежит тот или иной файл к дисковому шаблону или к собственным файлам виртуального сервера. Но для просмотра собственных файлов VDS можно использовать панель управления VDSmanager

Ссылка на вход в панель управления VDSmanager расположена в панели управления http://stat.p3.ru. Перейдите по ссылке, в поле "Логин" введите основной IP-адрес вашего VDS, в поле "Пароль" введите пароль пользователя root вашего виртуального сервера. После авторизации в VDSmanager перейдите в модуль "Собственные файлы".

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

Как удалить файл из дискового шаблона?

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

rm имя_файла

Как восстановить файл из дискового шаблона?

Как описано выше, если вы изменяете файл из дискового шаблона, то он помещается в собственные файлы виртуального сервера. Если у вас возникла необходимость восстановить вместо вашего файла файл из дискового шаблона, то сначала необходимо удалить этот файл:

rm имя_файла

а потом восстановить файл из дискового шаблона командой:

rm -W имя_файла

Аналогичным способом можно восстановить файл из дискового шаблона, если он был удалён (см. "Как удалить файл из дискового шаблона?"). Просмотреть список файлов имеющихся в дисковом шаблоне, но удаленных на вашем VDS можно командой:

ls -Wl

Удалённые файлы имеют необычные атрибуты "w---------", рассмотрим всё вышеописанное на подробном примере:

cd /usr/bin
ls -l yes
-r-xr-xr-x 1 root wheel 3052 12 окт 2005 yes
rm yes
ls -lW | grep yes
w--------- 0 root wheel 0 1 янв 1970 yes
rm -W yes
ls -l yes
-r-xr-xr-x 1 root wheel 3052 12 окт 2005 yes

Дерево портов и свободное дисковое пространство

После того как я поискал файлы при помощи команды

find / -name ...

на моем VDS исчезло 20-30 мегабайт дискового места. В чем дело и от чего такая ситуация могла возникнуть?

Дело в том, что директории, из-за особенностей файловой системы unix, тоже занимают место на диске. Существует коллекция портов, которая находится в /usr/ports и насчитывает около 17000 каталогов. Каталог с портами занимает около 20 мегабайт на диске. При любом обращении к директориям они из-за особенностей реализации файловой системы создаются в приватной директории пользователя. Как вариант решения проблемы можно удалить /usr/ports и восстановить его из темплейта (команда rm -W), но мы не рекомендуем это делать.