Я понимаю, что Xen может загружать экземпляры, используя монтирование NFS в качестве корневой файловой системы. Я хочу нечто подобное, но не знаю, как этого добиться.
Я бы хотел, чтобы все мои гости Xen видели блочное устройство только для чтения и монтировали его как нечто иное, чем root. Я знаю, как этого добиться, просто указав блочное устройство, доступное для dom0, в каждом из файлов конфигурации гостя. Это тривиально, если у меня может быть одно «общее» устройство на одну хост-систему, но мне нужно только одно разделяемое устройство в сети.
Я не хочу просто использовать NFS в каждой из гостей, потому что я не хочу, чтобы они находились в той же сети, что и мой сервер NFS. Я лучше просто выставлю девайс.
Любые идеи?
Я не думаю, что это касается модулей ядра или деревьев портежей, не так ли? Вот для чего я видел этот механизм ...
Так что, конечно же, легко сделать так, чтобы у всех ваших гостей был прикреплен файл образа файловой системы в качестве блочного устройства только для чтения. Также очень просто установить это где-нибудь в гостевой (/etc/fstab
И весь тот джаз). Право собственности, о которой вы, вероятно, позаботитесь в любом случае на блочном устройстве (при условии, что вы используете тип файловой системы, в которой хранятся эти метаданные, но если вы используете, скажем, VFAT, владение в любом случае остается только возможностью монтирования).
Уловка заключается в обработке обновлений. После того, как вы подключите свое "блочное устройство" к любому гостю, ничего можно разрешить обновить его. Это просто не сработает, потому что никто не знает, что кто-то обновляет содержимое, поэтому все разваливается. Вместо этого вам нужно создать копию файла с образом файловой системы, внести необходимые изменения, а затем запустить какое-то действие обновления, чтобы гости размонтировали старую «файловую систему», после чего dom0 может отсоединить старый файл и прикрепите новый, прежде чем гость перемонтирует файловую систему.
В тех случаях, когда я использовал это, у нас на самом деле был некоторый код в файлах конфигурации domU (поскольку они в любом случае просто Python), чтобы найти новейшее из этих блочных устройств и прикрепить его, тогда обычные средства монтирования во время загрузки сделали правильные вещь. Итак, для нас «процесс обновления» был «перезагрузкой гостя». Однако работает ли это для вас - это вопрос, на который я не могу ответить, потому что я не знаю, для чего вы пытаетесь это использовать.
В качестве альтернативы, просто имейте второй сервер NFS, который используется только для передачи этих файлов вашим domU. Это, вероятно, проще, чем все это блочное устройство frufru (у нас были довольно специфические требования, которые делали его наименее худшим вариантом, но я не думаю, что они применимы в вашем случае - на самом деле, я знать они не применимы в вашем случае, потому что у вас уже есть сервер NFS).