Компания ByteDance прСдставила своё Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для выполнСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ядСр Linux

ΠšΠΈΡ‚Π°ΠΉΡΠΊΠ°Ρ компания ByteDance, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π°Ρ сСрвис TikTok, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° Π² спискС рассылки Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ядра Linux ΠΏΠ°Ρ‚Ρ‡ΠΈ с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ систСмы Parker (PARtitioned KERnel), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСсколько ядСр Linux Π±Π΅Π· примСнСния Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. По Ρ€Π΅ΡˆΠ°Π΅ΠΌΡ‹ΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ Parker Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ нСсколько Π΄Π½Π΅ΠΉ Π½Π°Π·Π°Π΄ прСдставлСнный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Multikernel, Π½ΠΎ отличаСтся ΠΎΡ‚ Π½Π΅Π³ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ.

Π’ Parker примСняСтся сСкционированиС ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ ядСр CPU, памяти ΠΈ устройств. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ запускаСмый экзСмпляр ядра основываСтся Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ±Ρ‰Π΅ΠΌ ΠΎΠ±Ρ€Π°Π·Π΅ ядра, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ настройки ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ΅ ядро (Boot Kernel) осущСствляСт распрСдСлСниС ΠΈ сСкционированиС Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… устройств. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ экзСмпляры ядра Linux (Application Kernel) Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с привязанными ΠΊ Π½ΠΈΠΌΠΈ ядрами CPU, ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ устройствами Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°.

Π’ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ для сниТСния Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов ΠΈ упрощСния Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ отсутствуСт ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈ всС ядра ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ изоляции (domain), Ρ‚.Π΅. ошибка Π² любом экзСмплярС ядра ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ Π²ΠΎ всСй систСмС. Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ возмоТности для изоляции экзСмпляров ядра. Π’ качСствС области примСнСния Parker ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ с большим числом ядСр CPU, с ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π°Ρ‡ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Для управлСния Π² Parker Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ интСрфСйс Π½Π° Π±Π°Π·Π΅ kernfs, Π° для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… экзСмпляров ядра Π² Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ области памяти примСняСтся kexec. ΠŸΠ΅Ρ€Π΅Π΄ запуском Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ядСр ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ΅ ядро освобоТдаСт ядра CPU, Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ отвязываСт PCI-устройства для ΠΈΡ… использования Π² сСкционированном ядрС. Для Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° Π·Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ядром Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΎ своё PCIe-устройство, Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ NVMe-Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΡŒ ΠΈΠ»ΠΈ сСтСвой Π°Π΄Π°ΠΏΡ‚Π΅Ρ€. ПослС запуска экзСмпляра ядра ΠΎΠ½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ядрами.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ