Q1, я не уверен, как настроить клиент самбы на дистрибутиве Linux, которые используют домен окон для соединения с ним.
Я ни в коем случае не предлагаю, чтобы Вы использовали Ubuntu - но поскольку пример, гуглящий для 'аутентификации самбы окон человечности', включает ссылку здесь с замечательным пошаговым руководством для включения пользователя Windows / аутентификация по паролю. Почему бы не использовать существующий сервер/контроллер домена для совместного доступа к файлам?
Q2, да там - существующий домен и да для внутренней разработки.
Если цена является беспокойством - Вы знаете, что Tomcat будет работать очень хорошо на системном праве Windows XP и работать отлично для группы разработчиков. Если Вам не будут нужны больше чем 4 ГБ поршня, то Windows XP 32 будет работать отлично, и вероятно у Вас есть запасная машина, перебрасывающая Вас, мог использовать для этого.
Я предпочитаю во всех случаях, чтобы Брандмауэры были отчетливо отдельными системами - даже не виртуализированный. Можно установить одну из многочисленных систем Linux/BSD, разработанных для брандмауэров на любом драндулете, который Вы имеете в офисе. Я использовал бы Ваш WRT54G в качестве брандмауэра, прежде чем я использовал свой файловый сервер.
Дистрибутив Linux сможет обработать все эти потребности?
Да - НО не ДЕЛАЮТ IT. Поскольку я вышеизложенный - сохраняю Ваш брандмауэр, логически отделяются от любых данных. Я даже предостерег бы против совместного использования сервера разработки и файлового сервера. Используйте VMWare/Xen для сегментации файла/сервера разработки если вообще возможный.
Следующие повышаются, прежде sharding или любые другие сложные изменения структуры дб должен иметь 1 главный сервер для записей, но использовать несколько дублируемых серверов от этого для чтений. Это предполагает, что Ваш веб-сайт/приложение следует за типичным башмаком значительно большего количества чтений, чем записи.
Дополнительно Вы могли рассмотреть установку кластера, однако этот уровень часто пропускается, потому что это сложно и дорого и масштабируется менее хорошо, чем более новые методы масштабируемости.
Вы могли считать sharding Вашими наборами данных на нескольких серверах или использовать репликацию "главный-подчиненный" и выполнить все Ваши чтения против ведомого устройства (устройств).
Необходимо рассмотреть текущие рабочие нагрузки, данные и можно ли просто получить увеличение производительности, которое Вы хотите от обновления Ваших аппаратных средств.