Я знаю, что вы можете настроить несколько виртуальных машин на физический компьютер. Мне интересно, можно ли заставить несколько физических компьютеров вести себя как одно логическое устройство?
По сути, я представляю себе, как это работает: в один день можно разместить 10 компьютеров в помещении. У вас есть один клиент, которому требуется эквивалент двух компьютеров, и 100 других, которым потребляются оставшиеся 8. По мере изменения требований вы просто перераспределяете логические ресурсы, возможно, клиенту из двух компьютеров теперь требуется третья физическая система. Вы просто добавляете его в облако и не беспокоитесь о сегментировании базы данных или переносе данных на новый сервер.
Может ли так работать?
Если да, то зачем кому-то больше делать такие вещи, как ручное разделение серверов баз данных? Просто добавьте больше вычислительных ресурсов. Вы масштабируете оборудование по горизонтали, но сервер кажется масштабируемым по вертикали. Нет необходимости изменять поддерживающую инфраструктуру вашего приложения для поддержки нескольких баз данных и т. Д.
Звучит ОЧЕНЬ похоже на сеточные вычисления, попробуйте взглянуть на это: http://en.wikipedia.org/wiki/Grid_computing
Доступные облачные сервисы также позволят вам сделать некоторые виды этого, например. S3 Storage от Amazon, где вы просто загружаете свои данные в большое «ведро», а они будут перемещать данные по своим многочисленным машинам - вы по-прежнему просто используете свой «файловый указатель» (ключ) для доступа к нему.
Вы даже можете мультиплексировать свои данные с помощью того, что они называют CloudFront (http://aws.amazon.com/cloudfront/), но это подразумевается как «сеть доставки контента», предоставляющая вам множество быстрых веб-серверов, отправляющих данные миллионам пользователей. Многие крупномасштабные веб-сайты уже используют их.
Что касается прозрачности работы программы, которая требует больше энергии, вы можете либо запрограммировать что-то, что будет передавать задание / ретранслировать его, но у вас будет какой-то механизм распределения для обработки этого. Либо как часть вашей операционной системы, либо, если она больше ориентирована на приложения, просто приложения, работающие вместе в «компьютерной сети / ферме».
Большинство крупных программ 3D-рендеринга, таких как MAYA и 3D Studio MAX, также имеют программное обеспечение Renderfarm. Вы размещаете все свои физические аппаратные машины в сети и «активируете их как узлы рендеринга», а на «главный сервер» размещаете свои проекты для рендеринга. Затем каждый узел будет запрашивать «задание» у мастера, и они будут рендерить части анимации и после этого отправлять результаты обратно в мастер / место назначения.
Тот же трюк использовался / используется проектом SETI. http://www.seti.org/
Они предоставляют вам небольшую «заставку», и эта заставка загружает немного данных из их гигантского центра обработки данных - затем программы начинают обрабатывать загруженные данные. После завершения анализа он загружает результаты в мастер и запрашивает новый. Все происходит, если вы ничего не делаете, кроме как установить «узел».
Таким образом, тысячи компьютеров, на которых работает этот маленький клиент, помогут в гигантской грид-сети.
Если бы у всех была «компьютерная операционная система», вы бы никогда не узнали, что, кто и сколько работает на вашем компьютере - это могло бы вызвать некоторые интересные проблемы с безопасностью + если ваша система «взломана» ... что тогда? вся сеть не работает или только ваша сеть?
Для справки, пожалуйста, посмотрите также "THE BORGS" и "STAR TREK" ... LOL!
Это можно сделать, но не способом «бросить их туда, подключить оборудование и заставить его работать автоматически» (по крайней мере, насколько мне известно). Вы можете настроить сервер для работы в качестве прокси (на стороне сервера в Интернете) и приложений на каждом сервере. Таким образом, пользователи входят в прокси-сервер, который передает их серверу приложений. Затем сервер приложений берет на себя всю работу, требующую интенсивного использования процессора (простая передача битов с одной стороны на другую не так сильно нагружает процессор). Затем приложения могут взаимодействовать с сервером (ами) базы данных.
Citrix работает так.
А Кластер Беовульф примерно так, хотя он специализируется на научных вычислениях.
Кроме того, OpenVMS имеет (да, имеет) возможность кластеризации, разделяя диски и память, и я думаю, что он был перенесен на Ultrix, который сейчас мертв (возможно, HP перенесет его на HPUX, кто знает)