Я ищу руководство по настройке домашнего сервера. У меня есть микросервер HP Proliant Gen 8 G1610T с 12 ГБ оперативной памяти.
Я использовал его и планирую продолжать использовать его с некоторыми критически важными приложениями И как homelab для тестирования игры с новыми ОС, технологиями и решениями.
Фон
Короче говоря, мой план состоит в том, чтобы изолировать свою производственную среду от испытательной площадки, поэтому я не буду путаться со службами, которые должны быть запущены большую часть времени. Кроме того, я время от времени отдаляюсь от физического блока, поэтому, если я испорчу конфигурацию сети (что я сделал…) или мой хост не загрузится, я fubar. По этой причине я решил иметь одну ВМ для всех критические приложения и другие для тестирования, в соответствии с моими потребностями.
Что я хочу
- Отделение сред тестирования от сервисов, которые я не хочу ломать
- Иметь удаленный доступ для администрирования машины, установки / переустановки ОС
- Используйте снимки, чтобы иметь резервные копии на определенный момент времени, к которым я могу вернуться, если что-то пойдет не так
Вот диаграмма, которая показывает мой план:
План моей установки
проблема
Я нахожусь в процессе конструирования своей системы, и я сталкиваюсь с некоторыми фундаментальными проблемами, которые я должен пересмотреть, прежде чем двигаться дальше. Наиболее важным из них является то, как разделить хранилище между Host, VM и LXD контейнерами.
Подводя итог моей черновой настройке:
- ОС HOST: Ubuntu 18.04 с KVM на LVM на / dev / sda SDD с пулом ZFS RAIDZ1 из / dev / sd [b-e] 4xHDD
- VM: Ubuntu 18.04 как необработанное изображение на LVM в том же / dev / sda - когда я читаю, необработанные изображения имеют тенденцию быть немного быстрее, чем qcow2, и я все еще могу делать живые снимки благодаря LVM
- LXD контейнеры ВНУТРИ VM
Теперь я хочу наилучшим образом использовать хранилище ZFS, о котором заботится ОС HOST. Однако пул не может управляться ни VM, ни LXD из-за уровня виртуализации. Итак, мое решение:
- Предоставить общий доступ к блочному устройству ZVOL, установить его внутри виртуальной машины как / dev / vdb
- Использовать этот диск как блочное устройство для хранилища ZFS для LXD (чтобы я мог использовать функцию моментальных снимков в LXD)
- NFS монтирует бак / nextcloud из ОС HOST в один из контейнеров LXD, чтобы иметь больше места для хранения
Полагаю, в этот момент я понял, что слишком усложняю и иду против правила KISS. Я знаю, что могу просто хранить все контейнеры LXD непосредственно на хосте, но мои аргументы в пользу первоначального решения:
- Наличие всего в одной виртуальной машине делает ее более портативной, проще для резервного копирования
- В случае восстановления системы проще перезагрузить ВМ, чем ХОСТ
- Добавление дополнительного уровня виртуализации делает его более безопасным? Или это просто ложное чувство безопасности?
Вопросы
Я открыт для предложений и, конечно, хотел бы услышать мнение кого-то более опытного, чем я. В частности, у меня есть следующие вопросы:
- Есть ли серьезное снижение производительности ввода-вывода при создании пула ZFS для LXD из блочного устройства ZVOL? Я полагаю, что есть вопрос, это так плохо, что я вообще не должен этого делать?
- Является ли NFS монтирование формы HOST в контейнер LXD и / или ВМ хорошей идеей для предоставления хранилища для приложения, такого как nextcloud? Есть ли лучшие альтернативы?