У меня есть виртуальная машина с ограниченной суммой устройства хранения данных, которое стало проблемой. Мне связали мой корневой каталог с устройством хранения данных NFS на сервере, и это функционировало без проблемы. Но я теперь должен связать свою всю машину с NFS, а также я постоянно испытываю нехватку устройства хранения данных!
Я только задаюсь вопросом, безопасно ли связать всю машину (то есть все:/) к NFS?
Я хочу использовать следующие команды, чтобы сделать это:
/storage/nfs
в основном мой смонтированный NFS.
$ mkdir /storage/nfs/myvmroot
$ sudo cp -rp /* /storage/nfs/myvmroot
$ sudo mv /* /old-root
$ sudo ln -s /storage/nfs/myvmroot /
Вы не можете сделать /
символьная ссылка. Это просто не возможно. /
должен быть каталог. Если /
если бы символьная ссылка был, то это указало бы на некоторый путь — и разрешить, что путь, система прошла бы /
, который является символьной ссылкой, так должен быть разрешен... Символьная ссылка, которая указывает под собой, будет всегда вызывать ошибку, когда она будет разыменована, но в любом случае, Вы не сможете сделать /
символьная ссылка, так как это уже - существующий каталог.
То, что Вы можете сделать и достигнете эффекта, который Вы хотели, должно смонтировать файловую систему NFS как корневую файловую систему, вместо того, чтобы монтировать локальную файловую систему, как обычно делается. Это возможно и поддерживается Ubuntu. Существует учебное руководство на сообществе Ubuntu Wiki (это покрывает полную бездисковую установку, можно пропустить части о TFTP, если Вы сохраняете /boot
локально). Перемещение существующей системы несколько отличается от выполнения начальной установки, не ожидайте следовать учебному руководству к букве.
Необходимо удостовериться, что initramfs содержит необходимые драйверы. initramfs сгенерирован командой update-initramfs
на основе конфигурации существующей системы и на конфигурационных файлах под /etc/initramfs-tools
. Необходимо будет явно добавить настройки NFS к /etc/initramfs-tools/initramfs.conf
, по крайней мере, добавьте строку BOOT=nfs
(Я думаю, что другие параметры могут быть указаны во время начальной загрузки, но BOOT=nfs
необходимо для включения драйверов NFS, и DEVICE=…
может быть необходимым также для включения драйвера Ethernet). После того как Вы изменили /etc/initramfs-tools/initramfs.conf
, выполненный update-initramfs
.
Я рекомендую сохранить /boot
как локальный раздел, отделитесь от /
, если это уже не.
Не использовать cp -rp /* /storage/nfs/myvmroot
скопировать файлы, которые не работали бы. Необходимо исключить смонтированные файловые системы из копии. Передайте -x
опция. Кроме того, используйте -a
вместо -rp
, существуют атрибуты это -rp
не сохраняет.
cp -ax /* /storage/nfs/myvmroot
или, в случае, если копия прервана
rsync -axAX / /storage/nfs/myvmroot
Другой, вероятно, более легкая опция состоит в том, чтобы сохранить корневую файловую систему локальной, и только переместить часть ее. Вы будете обычно получать значительно лучшую производительность и надежность от локальной файловой системы, чем от NFS, даже с быстрым сервером и быстрой сетью.
Вы не можете просто сократить нигде: что Вы помещаете, удаленно не должен быть необходим слишком рано в процессе начальной загрузки. Я думаю, сокращая в /usr
официально не поддерживается Ubuntu в эти дни, но это - родительским распределением Ubuntu Debian, таким образом, это имеет шанс работы. Другое место, которое имеет хороший шанс работы, /usr/share
. Я не рекомендую /var
, это, вероятно, будет стычка, если что-нибудь повредится, так как это - то, где журналы сохранены. (Если клиент NFS недоволен чем-то, и это пытается записать журналы в /var/log
но /var
не reponding, удача, диагностируя отказ.)
Нет. Это представило бы Вашу незагрузочную виртуальную машину. Система NFS загружается в определенный момент в процессе начальной загрузки. Перед этой точкой никакие файлы на NFS не будут доступны. Это означает, что машина не сможет получить доступ к файлам, в которых она нуждается для начальной загрузки. Они включают (но не ограничены), само ядро, оболочка по умолчанию /bin/sh
и все под /bin
который включает команды, необходимые для монтирования доли NFS.
Так не, это не хорошая идея. Что еще более важно, это не необходимо. Большинство каталогов в /
не являются очень большими. Просто определите тот, который занимает место и помещает то там. Необходимо смочь переместить любое из следующего без главных проблем:
/var/cache
/usr/local
/usr
самостоятельно может также обычно перемещаться, но удостоверяться, что ничто существенное не находится в /usr/local/bin
. Это, вероятно, не будет, но проверка. Это - вероятно, те занимающие место так или иначе.