В настоящее время у меня есть сервер CentOS 7, настроенный как хост виртуальной машины с использованием KVM. Он имеет массив ZFS 4 ТБ (2x2 ТБ зеркала), который будет использоваться для виртуальных машин и файлового хранилища. Это было настроено как часть процесса восстановления домена AD с нуля поверх Server 2012 R2 (текущий домен 2008 R2, оставленный старым ИТ-специалистом, немного беспорядок и работает на старой версии Core 2. настольная машина). Нам нужен Server 2012 R2 для реализации групповой политики. Существует сочетание машин 7 / 8.1 / 10, но все, вероятно, будут работать под управлением Windows 10 в течение нескольких месяцев. У пользователей есть общий ресурс на сервере, который подключен к их машине как Z:
, а также они получают доступ к общим ресурсам на сервере, в которых хранятся документы, используемые различными отделами. Мы также собираемся внедрить новую систему резервного копирования (наиболее вероятными вариантами на данный момент являются Crashplan / Carbonite / Mozy).
Сеть состоит из примерно 55 компьютеров в главном офисе, а также других компьютеров за пределами офиса, которые будут подключены позже через OpenVPN. Всего я смотрю около 150 компьютеров. Также, по крайней мере, так много пользователей. Кроме того, в новом домене будет от одной до двух десятков групп безопасности.
Я пытаюсь решить, как лучше всего организовать хранение и совместное использование файлов в сети. В частности, следует ли мне возиться с Samba или нет, и если нет, следует ли мне хранить файлы в образе диска или создавать том данных в массиве ZFS, который затем передается на виртуальную машину Server 2012 в качестве необработанного блочного устройства хранения .
Хранение файлов в образе диска для использования виртуальной машиной всегда казалось мне плохим решением. Это просто и будет работать, но мне это не особо нравится. Если мне нужно передать эти файлы на сервер Windows, мне нужно либо смонтировать образ, либо загрузить виртуальную машину. Хранение всех файлов в одном образе удобно для передачи, но это проблема, если передача прерывается. Это можно решить, используя что-то вроде rsync, но это означает, что я ограничен переносом только на другой Linux-сервер. Другая проблема с использованием образа диска заключается в том, что я ограничен запуском программного обеспечения для резервного копирования внутри виртуальной машины (иначе я потеряю доступ на уровне файлов). Хотя я полагаю, что мог бы смонтировать образ только для чтения на хосте или добавить образ на другую виртуальную машину с доступом только для чтения специально для программного обеспечения резервного копирования.
Я знаю, что ZFS позволяет создавать тома данных, которые функционируют как устройства блочного уровня, которые затем могут быть переданы виртуальной машине как физический диск. В основном это означало бы наличие раздела NTFS в массиве ZFS. Я мог бы предоставить доступ только для чтения к этому тому другой виртуальной машине, которая будет обрабатывать программное обеспечение резервного копирования, или я мог бы смонтировать том как доступный только для чтения на машине с «голым железом» и потенциально запустить программное обеспечение резервного копирования внутри контейнера Docker. Я также мог передать файлы на другой хост Linux через моментальный снимок ZFS. Передача на хост Windows по-прежнему будет означать монтирование тома или запуск виртуальной машины.
Последний вариант - сохранить все файлы непосредственно в массиве ZFS и запустить Samba, чтобы поделиться ими по сети. Я ожидаю, что у меня будет довольно сложная иерархия разрешений, и я беспокоюсь об управлении ею через Samba (я когда-либо использовал Samba только в средах домашнего сервера). С другой стороны, я знаю, что могу эффективно управлять иерархией в Server 2012 R2, особенно с Powershell. Также следует учитывать, что я могу запускать Samba непосредственно на хосте виртуальной машины, внутри виртуальной машины или внутри контейнера Docker, так что это довольно гибко.
Какой из этих вариантов даст мне максимальную гибкость в долгосрочной перспективе без ненужных накладных расходов или сложности? Я хочу, чтобы мои обязанности были настолько разделены, насколько это возможно, поэтому мне нравится идея, чтобы Samba делилась файлами, в то время как Server 2012 R2 обрабатывает AD и групповую политику (хотя я также мог бы запустить отдельный экземпляр Server 2012 R2 вместо Samba для этого цель). Однако, как я уже сказал, я не решаюсь использовать Samba в сети такого масштаба. Меня также беспокоят трудности с устранением неполадок с правами доступа к файлам, если я использую Samba (Windows и так достаточно плоха, и это собственный вариант).
Также приветствуются любые другие возможные решения.
У нас есть аналогичная установка с одним большим преимуществом: наше хранилище ZFS предоставляется Solaris. Почему это так важно? Что ж, у Solaris есть интегрированный SMB-сервер. Если ваши пулы Zpools защищены таким образом, чтобы вы могли спокойно спать по ночам, я бы порекомендовал что-то вроде этого:
Преимущества:
Я могу предоставить вам свою документацию по установке, если вы решите пойти по пути UNIX