Действительно ли безопасно сделать символьные ссылки для всей машины?

У меня есть виртуальная машина с ограниченной суммой устройства хранения данных, которое стало проблемой. Мне связали мой корневой каталог с устройством хранения данных 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 /
6
задан 14 November 2017 в 06:29

2 ответа

Вы не можете сделать / символьная ссылка. Это просто не возможно. / должен быть каталог. Если / если бы символьная ссылка был, то это указало бы на некоторый путь — и разрешить, что путь, система прошла бы /, который является символьной ссылкой, так должен быть разрешен... Символьная ссылка, которая указывает под собой, будет всегда вызывать ошибку, когда она будет разыменована, но в любом случае, Вы не сможете сделать / символьная ссылка, так как это уже - существующий каталог.

То, что Вы можете сделать и достигнете эффекта, который Вы хотели, должно смонтировать файловую систему 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, удача, диагностируя отказ.)

10
ответ дан 23 November 2019 в 07:16

Нет. Это представило бы Вашу незагрузочную виртуальную машину. Система NFS загружается в определенный момент в процессе начальной загрузки. Перед этой точкой никакие файлы на NFS не будут доступны. Это означает, что машина не сможет получить доступ к файлам, в которых она нуждается для начальной загрузки. Они включают (но не ограничены), само ядро, оболочка по умолчанию /bin/sh и все под /bin который включает команды, необходимые для монтирования доли NFS.

Так не, это не хорошая идея. Что еще более важно, это не необходимо. Большинство каталогов в / не являются очень большими. Просто определите тот, который занимает место и помещает то там. Необходимо смочь переместить любое из следующего без главных проблем:

  • /var/cache
  • /usr/local
  • /usr самостоятельно может также обычно перемещаться, но удостоверяться, что ничто существенное не находится в /usr/local/bin. Это, вероятно, не будет, но проверка.

Это - вероятно, те занимающие место так или иначе.

10
ответ дан 23 November 2019 в 07:16

Другие вопросы по тегам:

Похожие вопросы: