Кэширование данных в мультиконтейнерных системах
https://doi.org/10.15514/ISPRAS-2019-31(6)-7
Аннотация
Сегодня виртуализация – это ключевая технология облачных вычислений и современных центров обработки данных, обеспечивающая масштабируемость и безопасность, управление глобальной ИТ-инфраструктурой и снижение затрат. Среди методов виртуализации, наиболее популярной стала контейнеризация – изоляция связанных групп процессов, разделяющих общее ядро операционной системы. Эффективность контейнеризации в сравнении с классической аппаратной виртуализацией, проявляется в компактности контейнеров и меньших накладных затратах вычислительных ресурсов – памяти, диска, ЦПУ. Однако в сравнении с классическими архитектурами без изоляции процессов контейнеры могут обходиться дороже, и в любом случае, индустрия ждет дополнительной оптимизации – скорости запуска, экономии памяти и дискового пространства и других ресурсов. В этом может помочь различное кеширование – старейший механизм повышения производительности программ без радикальной модификации алгоритма и оборудования. Однако при этом возникают различные архитектурно-инженерные дилеммы вида «безопасность или эффективность» и здесь мы рассмотрим современные научно-технические подходы к их решению в разных аспектах – ускорение запуска, оптимизация совместного использования, ускорение сборки образов, а также некоторые проблемы безопасности, возникшие из-за агрессивного кэширования в процессорных архитектурах. А в некоторых сценариях использования мультиконтейнерных систем наоборот, скорость и задержки не важны, важно обеспечить максимальную загрузку физических серверов – в этом случае актуальны алгоритмы планирования и размещения контейнеров, и нами приведен обзор теоретических работ на эту тему.
Об авторах
Дмитрий Андреевич ГрушинРоссия
Научный сотрудник
Денис Олегович Лазарев
Россия
Cтажер-исследователь ИСП РАН, аспирант МФТИ
Станислав Александрович Фомин
Россия
Программист ИСП РАН, преподаватель МФТИ
Список литературы
1. Latency numbers every programmer should know. URL https://gist.github.com/hellerbarde/2843375, accessed 15.11.2019.
2. Увеличение плотности контейнеров на ноде с помощью технологии PFCACHE. Блог компании Rusonyx / Increase container density on a node using PFCACHE technology. Rusonyx company blog. URL https://habr.com/ru/company/rusonyx/blog/444696/, accessed 15.11.2019.
3. Virtuozzo User's Guide. URL https://docs.virtuozzo.com/pdf/virtuozzo_7_users_guide.pdf, accessed 15.12.2019.
4. Павел Емельянов. CRIU – как маленький open-source проект меняет жизнь большой компании. Материалы 11-й международная конференция Linux Vacation/Eastern Europe, 2015, http://0x1.tv/20150627H / Pavel Emelyanov. CRIU – how a small open-source project changes the life of a large company. In Proc. of the 11th International Linux Vacation / Eastern Europe Conference, 2015, http://0x1.tv/20150627H (in Russian).
5. Николай Ефанов. Единая теория восстановления деревьев процессов Linux – огибая подводные камни checkpoint-restore. Материалы 15-й Центрально-восточноевропейской конференция в России по разработке программного обеспечения, 2019, http://0x1.tv/20191115BN / Nikolay Efanov. The unified theory of Linux process tree restoration - enveloping the pitfalls of checkpoint-restore. In Proc. of the 15th Central & Eastern European Software Engineering Conference in Russia, 2019, http://0x1.tv/20191115BN (in Russian).
6. Mike Rapoport, Adrian Reber. To Kill or to Checkpoint – That is the Question. In Proc. of the Open Source Summit + Embedded Linux Conference & OpenIoT Summit Europe, 2018. https://static.sched.com/hosted_files/osseu18/2a/kill-or-checkpoint.pdf.
7. Grushin D.A., Kuzyurin N.N. On Effective Scheduling in Computing Clusters. Programming and Computer Software, vol. 45, issue 7, 2019, pp. 398–404. doi:10.1134/S0361768819070077.
8. Moritz Lipp, Michael Schwarz et al. Meltdown: Reading Kernel Memory from User Space. In Proc. of the 27th USENIX Security Symposium, 2018, pp. 973-990.
9. Paul Kocher, Jann Horn et al. Spectre Attacks: Exploiting Speculative Execution. In Proc. of the IEEE Symposium on Security and Privacy, 2019, pp. 1-19.
10. Paul Turner. Retpoline: a software construct for preventing branch-target-injection. URL https://support.google.com/faqs/answer/7625886, accessed 15.12.2019.
11. Николай Пасынков. Слои Docker для ускорения сборки проекта. Материалы 15-й Центрально-восточноевропейской конференция в России по разработке программного обеспечения, 2019, http://0x1.tv/20191114DJ / Nikolay Pasynkov. Docker layers to speed up project builds. In Proc. of the 15th Central & Eastern European Software Engineering Conference in Russia, 2019, http://0x1.tv/20191114DJ (in Russian).
12. Report to Congress on Server and Data Center Energy Efficiency: Public Law 109-431. U.S. Department of Energy, Office of Scientific and Technical Information. URL https://www.osti.gov/servlets/purl/929723, accessed 15.12.2019.
13. Dow Eli M. Decomposed Multi-Objective Bin-Packing for Virtual Machine Consolidation. PeerJ Computer Science, vol. 2, 2016, article e47.
14. Xia Binzhou, Zhiyi Tan. Tighter Bounds of the First Fit Algorithm for the Bin-Packing Problem. Discrete Applied Mathematics, vol. 158, issue 15, 2010, pp. 1668-1675.
15. György Dósa. The Tight Bound of First Fit Decreasing Bin-Packing Algorithm Is FFD(I) ≤ 11/9OPT(I) + 6/9. Combinatorics, Algorithms, Probabilistic and Experimental Methodologies. Lecture Notes in Computer Science, vol. 4614, 2007, pp. 1-11/
16. Roytman Alan, Aman Kansal et al. PACMan: Performance aware virtual machine consolidation. In Proc. of the 10th International Conference on Autonomic Computing, 2013, pp. 83-94.
17. Beloglazov Anton, and Rajkumar Buyya. Optimal Online Deterministic Algorithms and Adaptive Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in Cloud Data Centers. Concurrency and Computation: Practice and Experience, vol. 24, issue 3, 2012, pp. 1393-1550.
18. A Simple Proof of the Inequality FFD (L) ≤ 11/9 OPT (L) 1, ∀L for the FFD Bin-Packing Algorithm. Acta Mathematicae Applicatae Sinica, vol. 7, issue 4, 1991, pp, 321–331.
19. Piraghaj, Sareh Fotuhi, Amir Vahid Dastjerdi, Rodrigo N. Calheiros, and Rajkumar Buyya. A Framework and Algorithm for Energy Efficient Container Consolidation in Cloud Data Centers. In Proc. of the IEEE International Conference on Data Science and Data Intensive Systems, 2015, pp. 368 - 375.
20. Ali Qasim. Scaling web 2.0 applications using docker containers on vsphere 6.0. VMware VROOM! Blog. URL https://blogs.vmware.com/performance/2015/04/scaling-web-2-0-applications-using-docker-containers-vsphere-6-0.html, accessed 15.11.2019.
Рецензия
Для цитирования:
Грушин Д.А., Лазарев Д.О., Фомин С.А. Кэширование данных в мультиконтейнерных системах. Труды Института системного программирования РАН. 2019;31(6):125-144. https://doi.org/10.15514/ISPRAS-2019-31(6)-7
For citation:
Grushin D.A., Lazarev D.O., Fomin S.A. Data caching in multi-container systems. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2019;31(6):125-144. (In Russ.) https://doi.org/10.15514/ISPRAS-2019-31(6)-7