Главная » Просмотр файлов » Математическое моделирование изменения рабочего набора процесса для интегральной живой миграции

Математическое моделирование изменения рабочего набора процесса для интегральной живой миграции (1187402), страница 3

Файл №1187402 Математическое моделирование изменения рабочего набора процесса для интегральной живой миграции (Математическое моделирование изменения рабочего набора процесса для интегральной живой миграции) 3 страницаМатематическое моделирование изменения рабочего набора процесса для интегральной живой миграции (1187402) страница 32020-09-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

Системные вызовы из контекста сохраняемого процесса;4. Netlink socket interface - интерфейс мониторинга и управления сетевыми сокетами.Файловая система ProcfsФайловая система proc - это особая файловая система в Linux. Этовиртуальная файловая система, то-есть содержащиеся в ней файлы нехранятся на диске а являются своеобразными интерфейсами для получения текущего состояния ядра Linux. По умолчанию в Linux системахэта файловая система монтируется в директорию /proc. Если провестилистинг этой директории то можно увидеть большое количество фалов,каждый из них предоставляет возможность узнать о процессах, соответствующую информацию. При попытке чтения этих файлов ядро создаетнеобходимые данные с актуальной информацией о процессе.

При сохранении состояния процесса CRIU использует интерфес proc для получениятакой информации о процессе, как список созданных процессом таймеров (/proc/<pid>/timers), список открытых файлов по номерам файловых дескрипторов (/proc/<pid>/fd/<id>), информация об этих файлах:сдвиг в файле, режим доступа и статус (/proc/<pid>/fdinfo/<id>), тамже находится информация о дескрипторах нотификации о событиях, получения процессом сигналов, и многое другое. Полученные из proc данные позволяют получить и сохранить в образы, широкий спектр необходимых для восстановления данных, также они позволяют облегчитьдальнейший сбор информации об объектах.Напрмер для posix-таймеров, реализация поддержки которых былавводным заданием в проекте, чтение /proc/<pid>/timers дает возможность узнать количество созданных таймеров, ID каждого таймера, каким образом вызвавший процесс должен быть уведомлен о срабатывании4таймера, а также с какими часами связан таймер .

Все это необходимо4Нехватка последнего для восстановления таймеров была обнаружена в течение разработки идобавлена в ядро Linux, сейчас эта функциональность уже находиться в основном ядре.12для воссоздания posix-таймеров а также для получения дополнительнойинформации на последующих этапах сохранения снимка.Механизм контроля процессов PtracePrace это интерфейс ядра Линукс, который позволяет одному процессу “наблюдателю” рассматривать и контролировать исполнение другогопроцесса - “наблюдаемого”.

Он позволяет изучать и изменять память ирегистры наблюдаемого процесса. В основном его используют в программах для отладки(gdb, dbx), и отслеживания системных вызовов.В CRIU он используется для подключения к работающему приложению, его замораживания, записи и чтения блоков памяти в специальнонайденное свободное место в памяти приложения. При сохранении программы, после чтения из procfs информации о ядерных объектах, происходит подключение к приложению, записываются нужные данные впамять процесса, и запускается, так называемый, паразитный код, который используя эти данные до собирает информацию об объектах, ккоторой извне нет доступа.Далее происходит выход из контекста процесса, это подразумевает копирование полученных данных из памяти приложения и освобождениявсей занятой CRIU памяти.

Вся собранная информация записываетсяв снимки, и дальше необходимо разморозить процесс. Для разморозкииспользуется хитрый механизм, который восстанавливает состояние регистров и вычищает последний собственный код из памяти приложенияпутем создания специального прерывания. Данный подход позволяет получить необходимую дополнительную информацию и при этом не оставить следов подключения к приложению.Интерфейс SyscallВ режиме паразитного кода в контексте приложения используетсякомпактный код для извлечения дополнительных неизвестных данных осостоянии процесса с использованием обычных системных вызовов, тоесть вызовов, которыми обычное приложение могло бы считать нужнуюему для работы информацию.13Интерфейс NetlinkКомандой CRIU была разработана функциональность получения информации сетевых сокетов(tcp repair mode) и внедрена в ядро Линукс винтерфейс Netlink.

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

Дляэтого используются все те же четыре интерфейса ядра Linux.Файловая система procfs позволяет не только считывать информацию о состоянии процесса, но и помогать при восстановлении объектовядра. Например, proc позволяет получить возможность восстановлениянекоторых объектов с заданным ID. Путем записи в специальный файлтребуемого ID объекта. При следующем создании такого объекта ядро создаст объект с данным ID, с ограничением, конечно, что этот IDдолжен быть изначально не занят.

Такой функционал существует в ядре Линукс например для семафоров(/proc/sys/kernel/sem_next_id), дляразделенной памяти(shm_next_id) и сообщений(msg_next_id). Все этовозможно в основном благодаря изменениям ядра Линукс внесеннымикомандой CRIU.С помощью системных вызовов воссоздаются объекты ядра используемые приложением.В конце восстановления используется Ptrace для того, чтобы аналогично как и на сохранении снимков “разморозить” приложение и очистить его контекст от следов CRIU, который его воссоздавал.Для воссоздания сетевых сокетов был добавлен в ядро механизм починки сокетов(tcp repair mode) который позволяет их полностью воссоздавать используя интерфейс Netlink.141.3. ТестированиеCRIU это проект призванный увеличить надежность системы, по этому его тестированию отведено особенное внимание. Система CRIU находится под постоянным тестированием, на все реализованные в CRIUфункциональные части одновременно готовятся модульные тесты и внедряются в автоматически тестирующую систему ZDTM + Jenkins.

Также существуют некоторые отдельные тесты которые тестируют например RPC и сохранность памяти. Пакет тестирования дает существенныепоказатели покрытия кода, примерно 90% покрытия функций и 70% процентов покрытия кода.1.3.1. ZDTMZDTM это сокращение от Zero Down Time Migration [15]. Это система автоматического тестирования унаследованная проектом CRIU отOpenVZ, разработанная для тестирования работоспособности всех компонент отвечающих за миграцию. Система состоит из множества атомарных тестов - каждый переводит процесс в некоторое состояние: открывает файл, выделяет сегмент памяти, отправляет данные в пайп, запускаеттаймеры, и др.

Потом происходит сохранение и восстановление теста, азатем тест проверяет сохранность состояния: нужный файл открыт, выделенный сегмент памяти на месте, данные приходят из пайпа, таймерысрабатывают через правильный интервал.Данная система также имеет различные опции, например можно запускать тесты в выделенном пространстве имен, или хранить снимки впамяти, а не на диске. Система непрерывной интеграции через некоторые интервалы пересобирает проект из главного репозитория и прогоняет на нем тесты с различными параметрами. Такой подход позволяетподдерживать высокое качество кода CRIU.Проект также проходил тестирование членами команды CRIU нареальных приложениях, среди них: Apache, Nginx, MySQL, MongoDB,Oraсle, Make, gcc, tar, gzip, screen, LXC контейнеры, Java, VNC сервер.151.4.

ИспользованиеВозможный спектр вариантов использования CRIU довольно широк.1. Создание снимков для долго загружающихся приложений в концезагрузки, для последующего быстрого запуска, путем восстановления из снимка.2. Прелинковка больших библиотек.3. Создание снимка “за секунду до” для возможности расширеннойработы по устранению ошибок, или в качестве исчерпывающегосообщения об ошибке, для последующего воссоздания проблемына системе специалиста.4. Перенос приложений на высокопроизводительный кластер или нанизкопроизводительную систему в зависимости от ситуации.5. Создание резервных снимков, для восстановления при неисправностях.6.

При обнаружении тупиков и условий гонки, откат на предыдущийснимок и запуск в “безопасном” режиме.И основной целью которую воплощает CRIU является реализация живоймиграции приложений.16Глава 2. Дедупликация2.1. Проблема использования оперативнойпамяти при миграцииДля оптимизации процесса миграции была написана дополнительнаяфункциональность для CRIU для дедупликации образов памяти.

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

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

Старые снимки будут использованны только для «подхвата» не измененных страниц во время окончания миграции при восстановлении программы. Таким образом освобождение памяти от старых страниц в родительских образах не повлияет навосстановление в конце.172.2. АлгоритмБыл разработан алгоритм и внедрен в процесс снятия итеративногоснимка, который при получении нового блока данных находил старыеданные для этого блока, и очищал от них родительские снимки. Этафункциональность возможна благодаря механизму Sparce-файлов (разряженных файлов), он полностью поддерживается файловой системойtmpfs. Таким образом можно взять файл лежащий в оперативной памяти(на tmpfs) и в необходимом месте освободить определенный объемпамяти.

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

Характеристики

Список файлов ВКР

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее