Ce8ec3b1dbaa48e1138d87247bbe715a

Операционная система для дата-центра — как это работает?

Мы уже публиковали небольшой обзор новой операционной системы, созданной специально для дата-центров. Теперь давайте разберемся, зачем вообще дата-центру операционные системы. Вероятно, все дело в том, что с каждым днем появляется все больше новых классов приложений, которые разрабатываются не для отдельной машины, а для целой стойки. В качестве примера можно привести уже упоминавшиеся Apache Kafka, Apache Hadoop, Apache Spark и некоторые другие приложения.

При этом специалисты утверждают, что это уже не столько приложения, сколько системы, причем распределенные. Отдельное приложение преобразовалось в распределенную систему примерно таким же образом, как однопоточные приложения для конкретного ПК стало многопоточным. При этом операторам дата-центров достаточно сложно работать с отдельными распределенными системами.

Нужен другой уровень

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

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

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

Если же машина, составляющая важную часть какой-то группы, выходит из строя, то может прекратить работу и вся структура в целом. Единственный способ решить проблему — это заменить сервер, вышедший из строя, на другой, работоспособный. И еще минусом является то, что системы дата-центра «затачиваются» под работу с пиковыми нагрузками, а все остальное время мощности дата-центра остаются незадействованными.

Если приложение работает на каждой конкретной машине, то и настраивать приходится все приложения на всех машинах отдельно.

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

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

Как должная работать операционная система для дата-центров

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

При этом операционная система для дата-центров не является заменой привычных ОС, вроде Linux, Solaris или других. Это будет надстройка над привычной ОС, со своим набором программного обеспечения.

И каждая машина управлялась бы операционной системой отдельно, с настройкой отдельных ресурсов и процессов. Кроме того, в дата-центре должна была бы работать многопоточность.

Отдельный API?

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

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

Фактически, операционная система могла бы заменить человека — возможно, не всецело, но в большинстве случаей работала бы автоматика. Сейчас же разработчики используют такие приложения, для обнаружения и координации сервисов, как Apache ZooKeeper и etcd для CoreOS. Это приводит к необходимости работы с большим количетвом приложений и инструментов для управления этими приложениями.

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

Команда дата-центра разделилась бы на две части. Первая часть определяла бы количество ресурсов, которое нужно пользователю в конкретный момент времени, это были бы администраторы. А вторая часть команды, пользователи, выбирали бы приложения, которые нужно запустить именно сейчас, с использованием всех доступных в настоящий момент ресурсов. Процессы бы планировались автоматически, особенно процессы типа Apache Hadoop.

Является ли облако ОС для дата-центра?

На самом деле, нет, IaaS (подход «инфраструктура как услуга») и PaaS (подход «платформа как услуга») являются отдельным случаем, где все же приходится работать с каждой конкретной машиной отдельно.

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

PaaS же работает в полном взаимодействии с человеком, задействуя отдельные процессы, сервисы и прочие элементы для упрощения разработки и управления распределенными приложениями.

Операционная система для дата-центров очень нужна, это понимают многие. И именно поэтому первые шаги в этой сфере уже были сделаны.

comments powered by Disqus