Не слушайте никого насчёт виртуалок. Всё (кроме аппаратных ключей) можно ставить на них. При этом если вы обеспечиваете их резервное копирование, ничего у вас не накроется. А вот миграция всех серверов с аппаратного сервера на аппаратный сервер - дело только производительности вашей сети. На то они и виртуалки. Разницы в производительности вы не ощутите.
Теперь по существу вопроса. На 20 пользователей вам понадобится: 1 виртуальный сервер 1С, 1 виртуальный сервер СУБД, 1 аппаратный "сервер" для аппаратных ключей защиты и столько виртуальных серверов для менеджеров лицензий, сколько у вас аппаратных ключей.
В качестве базовой инструкции по развёртыванию на Linux вы можете использовать вот эту замечательную статью:
habrahabr.ru/post/155735
В нашей организации архитектура развёртывания выглядит следующим образом:
![38f310a6a3de467d9c128e6083340063.png](https://habrastorage.org/files/38f/310/a6a/38f310a6a3de467d9c128e6083340063.png)
(сервер 1С и СУБД)
![4dc46ded95a14324b59bd501c64d07e6.png](https://habrastorage.org/files/4dc/46d/ed9/4dc46ded95a14324b59bd501c64d07e6.png)
(управление лицензиями)