В настоящее время я отвечаю за 2 действительно больших сервера (128 ГБ RAM и 32 процессора Xeon с 8 кодами каждый) в моем университете под управлением Ubuntu 12.04. Предполагается, что студенты будут использовать их для анализа больших данных. Мы хотим, чтобы каждый пользователь мог использовать все ресурсы, однако все становится немного запутанным. Пользователи могут устанавливать все, что им нравится, в свои домашние каталоги (например, Tomcat), но они начинают жаловаться на такие проблемы, как использование портов другими пользователями.
Кто-то предложил сделать какую-то виртуализацию (например, LXC) и предоставить пользователям доступ к контейнерам. Другие говорят, что мы делаем что-то вроде AWS и заставляем пользователей создавать ресурсы, необходимые им для работы.
Какие-либо предложения?
Виртуализация - отличный способ предоставить каждому свою «песочницу». LXC определенно является вариантом, но вы также можете просто использовать VMWare ESXi или Citrix XenServer. У обоих есть коммерческие варианты, но у них также есть бесплатные лицензии на один сервер.
Причина, по которой использование ESXi или XenServer может работать лучше, заключается в простоте возможности делать снимки или клонировать системы. Так что, если кто-то хочет что-то попробовать, вы можете сделать снимок, позволить им установить все, что угодно, и (после того, как это все сломает), откат.
Если вы выберете виртуализацию, я бы посоветовал вам использовать KVM и virt-manager для упрощения создания / управления виртуальными машинами. KVM - первоклассный гражданин Ubuntu, производительность отличная (тесты phoronix показывают, что KVM работает лучше, чем Xen на Ubuntu 12.04), поддержка отличная, она просто работает и очень надежна.
OpenStack - отличное программное обеспечение, но оно добавляет множество сложностей, с которыми вы, возможно, не захотите иметь дело сейчас.
Если вы пойдете по этому пути, несколько советов, которые сработали для меня: 1. Используйте устройства virtio для сети и дисков на своих виртуальных машинах; 2. Хорошо спланируйте свою сеть, я бы сказал, поддерживайте хост в качестве шлюза, DHCP-сервера и брандмауэра для всех виртуальных машин, используйте Shorewall для решения этой задачи; 3. Создайте и настройте базовую виртуальную машину с сервером ubuntu, используя виртуальное ядро (apt-get install linux-virtual), и оставьте ее нетронутой. Каждый раз, когда вам нужно настроить новую виртуальную машину для студента, все, что вам нужно сделать, это клонировать эту базовую установку, изменить / etc / hostname и / etc / hosts, чтобы дать виртуальной машине уникальное имя, и вперед.
Я предлагаю вам просто быстро попробовать KVM и virt-manager, прежде чем приступать к полной новой установке VMWare, XenServer или тому подобному, что потребует часов работы. Вы можете протестировать KVM + virt-manager за несколько минут, почти ничего не изменив в вашей текущей настройке ubuntu, это самый простой способ попробовать виртуализацию, и если вам это не нравится, ваши серверы по-прежнему будут работать так же, как и всегда. .
LXC или Docker были бы хорошей отправной точкой. В отличие от OpenStack, VMware или Xen / KVM вам не нужно строить вокруг него огромное количество инфраструктуры, то есть это небольшой проект.
И это позволит достичь цели создания отдельного стека TCP / IP для каждого пользователя, чтобы они не конфликтовали с портами.
Вы можете создавать шаблоны для компьютеров Docker, поэтому некоторые комментарии в других ответах неверны.
AWS - тоже крик, но это связано с расходами, и у вас будет два избыточных оборудования, поэтому я сначала остановлюсь на этом.
Похоже, вам стоит взглянуть на Openstack. Я знаю, что есть его реализация в Ubuntu по адресу Ubuntu | Openstack
Я мало что знаю о версии Ubuntu, но, безусловно, предложение RHEL должно позволить вам разрешить учащимся запускать свои собственные экземпляры приложений, которые им нужны, все из которых удобно заключены в тюрьму, а использование их ресурсов контролируется cgroups и т. Д. также позволяют студентам взаимодействовать с сервисом через браузер и заставляют их выбирать сервисы из заранее определенного набора предложений, вместо того, чтобы позволять им взламывать свои собственные версии.
Надеюсь, это поможет, нарисовал