Устройство файловой системы VDS на FreeBSD
Как устроена файловая система 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), но мы не рекомендуем это делать.