Стратегия разрешений файловой системы для общей папки KVM

473
AlanObject

У меня есть среда гипервизора Ubuntu / KVM, которая имеет доступ (через NFS) к наборам данных ZFS (или файловым системам). Я размещал образы виртуальных машин в файловой системе ZFS, которая, хотя и не самая быстрая в мире, делает их очень стабильными.

Я хотел бы предоставить гостевым виртуальным машинам прямой доступ к файловой системе ZFS с помощью общей функции KVM, чтобы предоставить виртуальным машинам доступ к набору данных ZFS и монтирование его в гостевой системе. Для этого есть две причины:

  1. Я надеюсь на повышение скорости, потому что будет сохранена только одна структура файловой системы - ZFS - вместо ext4 по сравнению с ZFS, которая есть у меня сейчас.

  2. Я хочу, чтобы пользователи могли получить доступ к функции моментальных снимков ZFS.

Мне удалось смонтировать тома, как описано, но я не смог смонтировать их, чтобы они были доступны для записи. Выполняя поиск в Интернете, я обнаружил, что эффективное имя пользователя - libvirt +, но я не смог найти параметр chmod для целевой файловой системы, которая будет работать.

Может кто-нибудь указать мне руководство о том, как справиться с этим?

2

1 ответ на вопрос

2
Dan

Чтобы ответить на тактическую часть вашего вопроса, похоже, что вы используете NFS для совместного использования гостя / хоста. Тогда это просто сводится к вопросу о разрешениях NFS. На хосте убедитесь, что он является общим для чтения / записи, например, zfs set sharenfs="rw=@w.x.y.z/N" tankгде w.x.y.z/Nнаходится набор IP-адресов, которым вы хотите предоставить доступ к этому общему ресурсу. Более полный пример смотрите здесь .

Но также, о ваших целях:

  1. Если хост хранит файлы виртуальных дисков на ZFS, а гостевая система использует ext4, маловероятно, что ZFS увеличит нагрузку на файловую систему с точки зрения производительности. В конце концов, KVM будет редко (если вообще когда-либо) создавать новые файлы в этом режиме, поэтому метаданные не нужно будет обновлять в ZFS очень часто. Я предполагаю, что если вы не выполняете очень чувствительную к производительности рабочую нагрузку на виртуальных машинах (высокопроизводительная база данных и т. Д.), Вы не заметите большой разницы.

  2. Я не знаю какого-либо способа показать функциональность снимков ZFS пользователям гостей. Это можно сделать с зонами в Solaris, а также с джейлами во FreeBSD и, возможно, с Docker / lxd / lxc в Linux (я не уверен в этом), но определенно не с KVM + QEMU. Я думаю, что единственный способ сделать это с помощью KVM - предоставить вашим пользователям доступ к zfs snapshotсамому хосту (либо с прямым доступом по SSH, либо через службу или что-то в этом роде).

Существуют и другие причины, по которым хранение файлов данных на хосте имеет смысл (консолидация, плюс все обычные преимущества ZFS: более простое резервное копирование, целостность данных, размещение квот и резервирование и т. Д.), Но я не думаю, что эти два будут особенно проще в вашей новой конфигурации.

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