2

Предположим, у меня есть ноутбук (2 ядра, 4G памяти, 512G обычный диск) под управлением Ubuntu и настольный компьютер (4 ядра, 16G памяти, 512G SSD-диск) без установленной операционной системы (т.е. новый набор вычислительных ресурсов - дисковое пространство, память мощность процессора и т. д.).

Интересно, могу ли я позволить своему ноутбуку "впитывать"(ноутбук - это интерфейс для взаимодействия человека с компьютером; т.е. нет устройства ввода для рабочего стола) новые вычислительные ресурсы. В общем, я хотел бы видеть, что после "поглощения", внезапно в системном мониторе на ноутбуке я вижу 6 ядер, 20 ГБ памяти, дисковое пространство становится 1 ТБ, запускает какое-то приложение (например, Firefox), и оно получает намного быстрее ... как то так.

И в следующий раз я куплю еще один рабочий стол, и он снова может быть "поглощен" двумя устройствами, образуя более мощный "кластер".

Я понимаю, что я хочу, звучит очень похоже на кластер. Да, я могу настроить NFS и MPI для формирования кластера. Но в этом случае, когда я открываю firefox на своем ноутбуке (обратите внимание, что ноутбук является единственным интерфейсом для взаимодействия человека с компьютером, а не устройства ввода для рабочего стола), он все равно будет работать локально на ноутбуке; Когда я загружаю все больше и больше файлов, сервер NFS снова заполняется, и как я могу добавить больше места на диске на новом компьютере?

Насколько я понимаю, с помощью кластера вы можете явно передавать вычислительные задачи (запускать консольную программу, которую вы написали) на определенные узлы; но здесь я действительно ищу способ легко расширить свои вычислительные мощности, который может принести мне пользу при ежедневном использовании с недавно приобретенным оборудованием - это нормально, если мне нужно установить специальную версию ОС (скажем, ABC GNU Linux), просто назови это. Отношение таково, ноутбук, ты мой слуга, и у тебя есть несколько мощных рабочих столов в качестве твоих рабов. Мне все равно, каким рабом вы пользуетесь, и не спрашивайте меня, какого раба я хочу выполнить, просто организуйте отправку самостоятельно и выполните работу как можно быстрее. В более профессиональных терминах я не должен указывать в команде, какой узел будет обрабатывать задачу. По сути и эквивалентно, у меня внезапно появляется ноутбук с большей мощностью, все остальное становится прозрачным для меня как пользователя.

Возможно, я не полностью понял суть кластеризации MPI - пожалуйста, укажите, могу ли я на самом деле добиться того, чего я хочу, с кластеризацией MPI.

Пожалуйста, просветите меня, спасибо.

1 ответ1

-1

Для чего ты это используешь? Это огромная тема.

Давайте оставим в чистом виде компоненты графического интерфейса, потому что для этих ресурсов ресурсы отличаются от памяти и процессора (человеко-компьютерные интерфейсы, графический процессор) и не могут быть распределены (конечно, вы можете распределить свой графический процессор для больших вычислительных нагрузок, но давайте пока оставим этот вариант использования вне уравнения).

Давайте поговорим о серверных приложениях (и возвращаясь к моему предыдущему вопросу, даже что-то ориентированное на пользователя, например, emacs, может быть запущено с серверным бэкэндом).

Вы можете создать кластер Kubernetes, чтобы в принципе вы могли планировать все, что вы хотите в любом месте кластера. Kubernetes запустит любой образ докера, выделяя его разумно, поэтому пределом является небо. Итак, с этим вы уже распределили свой процессор и оперативную память.

Теперь к вопросу о более стойком государстве. Где файлы? Где данные?

Вы можете сделать это многими, МНОГИМИ разными способами.

Вы должны начать с распределенной файловой системы (или распределенного блочного хранилища). "Правильный". В этой категории единственной звездой кажется LizardFS. Я бы держался подальше от Сефа.

Любой, откуда угодно, где бы ни располагал kubernetes, может получить доступ к конечной точке lizardfs.

Если вы используете базу данных, конечно, вы можете запустить кластерную базу данных. Где экземпляры базы данных, образующие кластер, в конечном итоге сохраняют данные? Одно из двух мест, которое я бы сказал:

  1. Экземпляры базы данных, формирующие кластер базы данных, являются просто контейнерами док-станции, распределенными как любое другое изображение докера kubernetes (с ограничением, конечно, иметь только один на физический узел), и могут использовать локальный диск, где бы они ни были распределены (в настоящее время не является постоянным томом).).

  2. Kubernetes предоставляет миллионы постоянных томов, которые будут доступны из экземпляров базы данных, работающих в кластере.

Обратите внимание, что сами провайдеры могут работать как рабочие нагрузки Kubernetes, по одной на физическую машину. При этом они используют ресурсы локального диска и делают его доступным для всего кластера.

К сожалению, LizardFS в настоящее время не включена, однако вы можете выставить LizardFS в качестве конечной точки NFS и использовать ее из кластера Kubernetes (я еще не видел, чтобы кто-нибудь делал это, если вы видите какие-либо ссылки, пожалуйста, поделитесь.)

он может использовать распределенное хранилище файлов (это может быть медленнее, есть "два уровня косвенности").

Обратите внимание, что распределение в случае хранения может привести к двум вещам:- HA тот факт, что у вас есть несколько копий данных, означает, что, если одна копия недоступна, вы продолжаете перемешивание. - Горизонтальное масштабирование. В основном данные отбрасываются и распределяются по разным узлам. (каждый осколок потенциально может работать в HA).

Конечно, существуют гибридные режимы, и все сводится к компромиссу в рамках теоремы CAP. Это сложная проблема. Например, посмотрите, как это делает Аранго.

Примеры баз данных включают в себя:

  • Янусграф с бэкэндом Кассандры
  • ArangoDB
  • OrientDB

У реляционных баз данных есть свои настройки HA, которые вы, конечно, можете запускать на K8S. Для HA/ Sharding все-в-одном ала ArangoDB, ну, это не так просто.

Другие технологии могут вас заинтересовать. Список «что я хочу запустить в своей локальной сети, когда стану настоящим мужчиной» :-). Обратите внимание, что к ним предъявляются более высокие требования к оборудованию, больше узлов, больше ОЗУ

  • Докер Рой
  • CoreOS

  • OpenStack

  • DCOS

  • OpenShift

  • Fabric8

PS: и да, вы можете запустить X-сервер в запланированном контейнере K8S .... Теперь я не хочу думать об этом, так как у меня на уме достаточно со стороны сервера. Я уверен, что есть достаточно людей, которым нечего делать, которые запускают серверы x в Kubernetes ... PS2: К сожалению, у меня достаточно репутации только для 2 ссылок, но все ключевые слова довольно легко найти.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .