Мне нужно загрузить несколько серверов через загрузку PXE. Все они будут запускать один и тот же ramdisk (т.е. «по умолчанию» в каталоге pxelinux.cfg), а затем все они монтируют корневую файловую систему через NFS. Затем они выполняют команду switch_root для этого корневого образа NFS. Я хотел бы сделать этот образ NFS доступным только для чтения и использовать один и тот же для всех серверов, но тогда мои серверы в значительной степени бесполезны, поскольку даже / tmp доступен только для чтения.
Я думаю о leavings / tmp, / home и обо всем остальном, что требует постоянного уникального хранилища вне образа NFS, и вместо этого монтирую их с локальных жестких дисков. Это сработает? Если да, как мне сделать это в сценарии инициализации?
Как это делается в отрасли? Я уверен, что существуют стойки и стойки серверов, которыми нужно управлять и обновлять из одного источника. Я не могу быть единственным, кто хочет это сделать, верно? Я хочу, чтобы все «пользовательские» данные, уникальные для одного сервера, находились на локальных жестких дисках, а все файлы ОС (которые требуют регулярных обновлений и т. Д.) Поступали из загрузочного образа PXE и образа NFS.
Ссылки на обширную документацию по этому типу администрирования серверов были бы замечательными.
То, что вы хотите, это своего рода файловая система union, где экспорт NFS служит базой только для чтения, а оверлей чтения-записи представляет дельту. Дельта может быть сохранена в любой другой файловой системе, будь то диск, USB-накопитель, энергозависимая память или экспорт NFS с возможностью записи.
Linux поддерживает несколько реализаций объединенной файловой системы:
Похоже, что в наши дни предпочтение отдается aufs3.
Live CD с Linux используют аналогичную стратегию; вы можете изучить, как работают их сценарии инициализации. Еще лучший пример для изучения - FAI, который PXE загружает в корневую файловую систему aufs, состоящую из доступного только для чтения общего ресурса NFS и образа tmpfs.