Ставьте Proxmox VE на машину, создайте тучу виртуалок(можно пакетно через местный CLI) с read-only диском(где будет развернута ОС) или со смонтированным ISO в CD-ROM, заведите для каждой виртуалки пользователя в Proxmox(пользователи: UserX, виртуалки: X, где X — порядковый номер).
1. После обновления образа в источнике необходимо будет перезагрузить все виртуалки(одна команда)
2. Пользователю Proxmox дает доступ к виртуальному монитору через TightVNC в браузере(java). Для подключения используется адрес:
host.ru/vnc?vm=102&user=test&password=pass.
3. Пользователя подключать к свободной виртуалке
Вам создание виртуалок on-demand, скорее всего, не нужно. Вам достаточно хранить инфу о занятых и перегружать VM при закрытии сессии.