Образы дисков виртуальной машины в файловой системе ZFS: несколько вопросов

583
Joel

Фон

Я использую Ubuntu 16.04.4 LTS (преобразованный в сервер с рабочего стола), установленный в файловой системе ZFS, которая сама находится на твердотельном накопителе Samsung 840 Evo 120 ГБ. У меня также есть четыре жестких диска, которые являются двумя зеркалами (зеркала 1 ТБ и 2 ТБ), которые также являются ZFS.

Я использую систему для хранения, но и для виртуализации. Я использую виртуализацию KVM в Ubuntu, и для одной из виртуальных машин я сохраняю образ диска ОС VM (который монтируется в «/») на SSD, а образ диска хранения (который монтируется в «/ home») на жестком диске 1 ТБ. зеркало.

Система имеет 16 ГБ ОЗУ ECC, а на SSD - 8 ГБ тома SWAP (сжатие ZLE). Виртуальная машина установлена ​​на 8192 МБ, поэтому с другими службами на хосте она дает прибл. 7,8 ГБ для ZFS ARC.

Я заметил, что при записи большого количества данных в виртуальных машинах на образы дисков виртуальных машин размер ZFS ARC значительно увеличивается. Хотя это ожидаемое поведение ARC, поскольку данные получают хиты, у меня есть несколько вопросов, касающихся использования ZFS в отношении хранения и использования образов виртуальных машин, в которых я не уверен ниже.

случай

Пожалуйста, обратите внимание на следующее:

  • Образы дисков ВМ не хранят каких-либо важных данных - они просто используются для размещения и экспериментов, поэтому целостность не так важна;
  • Образы дисков хранятся в файловой системе внутри файловой системы - поэтому, если каталогом является «/ MyMirror / VM /», то «MyMirror» является исходной файловой системой, а последняя («VM») является файловой системой внутри;
  • Образы дисков имеют формат RAW (* .img).

Вопросы

Принимая во внимание вышеизложенное и рассматривая дело ...

  1. Есть ли какая-то польза от наличия образов дисков VM в ZFS по сравнению с ext4?
  2. Есть ли логическая причина / преимущество для ARC, кэширующего образ диска виртуальной машины?
  3. Я делаю это правильно?

Номер 2 меня больше всего сбивает с толку, так как я изо всех сил пытаюсь увидеть логику и любые потенциальные преимущества ARC-кэширования образов дисков. Я мог бы полностью упустить момент (возможно, облачный ум), но как кэширование образа диска на хосте помогает хосту или даже самой виртуальной машине?

Я понимаю, что номер 3 может быть скорее мнением (которого я хотел избежать), но я не уверен, что пойду по этому «правильному» пути. Возможно, есть лучший способ хранить и использовать виртуальные машины, учитывая мои настройки.

Заранее спасибо!

3
Прямо сейчас это очень широкий пост с несколькими вопросами. Пожалуйста, сфокусируйтесь на одном конкретном вопросе для каждого из ваших постов, чтобы мы могли получить единый правильный ответ на каждый вопрос. music2myear 6 лет назад 1
Возможно небольшое редактирование. Из моего прочтения видно, что три вопроса действительно задают одну и ту же вещь, или, точнее, ответ на любой из этих трех вопросов обязательно охватил бы два других в качестве фона и проработки. Dawn Benton 6 лет назад 0

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

2
Dan
  1. Есть ли какая-то польза от использования ZFS для дискового хранилища виртуальных машин?

Возможно. ZFS имеет встроенные функции сжатия, дедупликации, моментальных снимков и клонов, а также многие другие функции, которые вы можете использовать для уменьшения занимаемой памяти, упрощения репликации этих файловых систем в другую систему и т. Д. Это действительно зависит от вашего варианта использования. Не для того, чтобы быть фанатиком;), но, может быть, иметь возможность использовать эти функции, если они вам нужны, достаточно, чтобы сказать «да»?

  1. ARC делает что-нибудь полезное?

Из того, что вы сказали, я не могу сказать, много ли у вас виртуальных машин, и если да, то разделяют ли они какие-либо блоки друг с другом (либо через снимки / клоны, либо через дедупликацию). Если это так, то кэш может принести вам пользу, поскольку наличие данных в одном из них будет способствовать повышению производительности всех остальных. Если нет, то преимущества, вероятно, будут минимальными, потому что гостевые ОС обычно имеют кэш страниц всего, что они прочитали или написали в любом случае. Однако эта память будет быстро удалена, если будет какое-либо давление со стороны вашей операционной системы, потому что к ней будет доступ только один раз (и она будет в списке LRU в ARC), поэтому я не буду беспокоиться о потраченном впустую пространстве.

  1. Я делаю это правильно?

Полностью зависит от вашего варианта использования. Для описанного вами простого случая это выглядит хорошо, но с другой стороны, в значительной степени все будет. Если вы пытались создать устройство хранения данных для большой фермы виртуальных машин:

  • вы можете рассмотреть возможность использования ZFS ZVOL для хранения вместо файлов внутри файловых систем ZFS
  • вы, вероятно, будете запускать свои виртуальные машины на другом сервере, отличном от вашего хранилища (чтобы вам было легче масштабировать ОЗУ и ЦП, а также вы могли бы изолировать производительность хранилища от производительности виртуальной машины); в этом случае вы бы выставили ZVOL как цели iSCSI или FibreChannel
  • для повышения производительности вы можете захотеть добавить гораздо больше оперативной памяти, включить дедупликацию и сжатие для экономии памяти (в оперативной памяти и на диске), добавить выделенное устройство SLOG для более быстрой синхронизации записей, добавить устройство L2ARC для расширения кэша до SSD
  • для обеспечения устойчивости данных вы, вероятно, захотите включить RAID-Z или аналогичный
  • чтобы обеспечить время простоя обслуживания, вы, вероятно, захотите, чтобы другой резервный хост находился в режиме ожидания, чтобы вы могли реплицировать данные на использование zfs sendи zfs receive, а затем каким-то образом переключать хосты виртуальной машины в другое место (или, может быть, каким-то другим способом восстановления после сбоя; это просто один вариант)

Вы можете в значительной степени усложнить произвольное развертывание, если оно достаточно серьезное. Но если у вас нет никаких претензий к тому, как ваша система работает сейчас, то какой вред держать ее такой, какая она есть?

Спасибо за ваш ответ, Дэн. Вы выделили много хороших моментов. В конце дня, как вы указали, как оно работает, тогда какой смысл его менять? Сначала я был совершенно не уверен, какие преимущества дает ARC для образов дисков виртуальных машин, но даже если в этом случае он предлагает почти ничего, тогда я просто должен принять это, поскольку именно так работает ZFS. Я хотел бы запускать виртуальные машины на своем собственном оборудовании, но это требует затрат на новое оборудование, электричество и трудности с миграцией (если возможно) виртуальных машин. Joel 6 лет назад 0

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