Feasibility of Application Containers in Embedded Real-Time Linux
Lammi, Toni Juhani (2018)
Lammi, Toni Juhani
2018
Sähkötekniikka
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2018-10-03
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201809052269
https://urn.fi/URN:NBN:fi:tty-201809052269
Tiivistelmä
Virtualization offers many benefits like information security and compatibility issue fixing. This technology is, however, not traditionally used in embedded systems due to the overhead it produces. Today’s embedded systems have more processing power than the systems in the past and container technology provides a low overhead solution for virtualization making virtualization possible for embedded devices.
The aim of this thesis was to study the feasibility of container-based virtualization in embedded real-time Linux. The test system was an embedded real-time Linux device used for Internet-of-Things solutions. The container technology used in the thesis was Docker. Docker was chosen as it has a comprehensive documentation and has been broadly adopted by the industry.
The feasibility was studied by measuring the performance and comparing these results to other studies and reading information security and software management documentation. The performance measurements considered POSIX inter-process communication latency, memory consumption and mass storage usage. The measurements were performed with both containerized and non-containerized systems to contrast the results. Information security and software management aspects were studied by inspecting documentation.
The measurements showed that the latency is not affected by the virtualization, memory consumption is slightly larger and the mass storage usage is considerably larger and should be taken into account when planning the virtualization. Containers were also perceived to help with information security and make software management easier. The information security of the containers should not, however, be carelessly trusted. Virtualisoinnilla on monia etuja, kuten tietoturva ja yhteensopivuusongelmien korjaus. Tätä teknologiaa ei kuitenkaan ole perinteisesti käytetty sulautetuissa järjestelmissä sen tarvitsemien resurssien takia. Nykypäivän sulautetuissa järjestelmissä on enemmän laskentatehoa kuin vanhemmissa laitteissa ja ohjelmistokonttiteknologia mahdollistaa virtualisoinnin pienellä resurssien käytöllä, mikä mahdollistaa virtualisoinnin sulautetuissa järjestelmissä.
Tässä diplomityössä tutkittiin ohjelmistokonttipohjaisen virtualisoinnin soveltuvuutta sulautettuun reaaliaika-Linuxiin. Testijärjestelmänä toimi esineiden internetissä käytetty sulautettu reaaliaika-Linux-laite. Työssä käytetty ohjelmistokonttiteknologia oli Docker. Docker valittiin, koska sillä on kattava dokumentointi ja se on teollisuudessa laajasti omaksuttu teknologia.
Soveltuvuutta tutkittiin mittaamalla järjestelmän suoritustasoa ja vertaamalla tuloksia muihin tutkimuksiin sekä lukemalla tietoturva- ja ohjelmistonhallintadokumentaatiota. Suoritustason mittaukset toteutettiin mittaamalla POSIX:n prosessien välisen kommunikoinnin viivettä, muistin kulutusta ja tallennustilan käyttöä. Mittaukset toteutettiin sekä ohjelmistokonteilla että ilman niitä, jotta tuloksia voitaisiin verrata. Tietoturvaa ja ohjelmistonhallintaa arvioitiin tutkimalla dokumentaatiota.
Mittausten perusteella voidaan päätellä, että virtualisointi ei vaikuta prosessien välisen kommunikoinnin viiveeseen, muistin käyttö kasvaa hieman ja tallennustilan käyttö kasvaa huomattavasti, mikä tulisikin ottaa huomioon virtualisointia suunnitellessa. Ohjelmistokonttien myös todettiin auttavan ohjelmiston hallinnassa ja tietoturvassa. Konttien tietoturvaan ei kuitenkaan tulisi luottaa varauksettomasti.
The aim of this thesis was to study the feasibility of container-based virtualization in embedded real-time Linux. The test system was an embedded real-time Linux device used for Internet-of-Things solutions. The container technology used in the thesis was Docker. Docker was chosen as it has a comprehensive documentation and has been broadly adopted by the industry.
The feasibility was studied by measuring the performance and comparing these results to other studies and reading information security and software management documentation. The performance measurements considered POSIX inter-process communication latency, memory consumption and mass storage usage. The measurements were performed with both containerized and non-containerized systems to contrast the results. Information security and software management aspects were studied by inspecting documentation.
The measurements showed that the latency is not affected by the virtualization, memory consumption is slightly larger and the mass storage usage is considerably larger and should be taken into account when planning the virtualization. Containers were also perceived to help with information security and make software management easier. The information security of the containers should not, however, be carelessly trusted.
Tässä diplomityössä tutkittiin ohjelmistokonttipohjaisen virtualisoinnin soveltuvuutta sulautettuun reaaliaika-Linuxiin. Testijärjestelmänä toimi esineiden internetissä käytetty sulautettu reaaliaika-Linux-laite. Työssä käytetty ohjelmistokonttiteknologia oli Docker. Docker valittiin, koska sillä on kattava dokumentointi ja se on teollisuudessa laajasti omaksuttu teknologia.
Soveltuvuutta tutkittiin mittaamalla järjestelmän suoritustasoa ja vertaamalla tuloksia muihin tutkimuksiin sekä lukemalla tietoturva- ja ohjelmistonhallintadokumentaatiota. Suoritustason mittaukset toteutettiin mittaamalla POSIX:n prosessien välisen kommunikoinnin viivettä, muistin kulutusta ja tallennustilan käyttöä. Mittaukset toteutettiin sekä ohjelmistokonteilla että ilman niitä, jotta tuloksia voitaisiin verrata. Tietoturvaa ja ohjelmistonhallintaa arvioitiin tutkimalla dokumentaatiota.
Mittausten perusteella voidaan päätellä, että virtualisointi ei vaikuta prosessien välisen kommunikoinnin viiveeseen, muistin käyttö kasvaa hieman ja tallennustilan käyttö kasvaa huomattavasti, mikä tulisikin ottaa huomioon virtualisointia suunnitellessa. Ohjelmistokonttien myös todettiin auttavan ohjelmiston hallinnassa ja tietoturvassa. Konttien tietoturvaan ei kuitenkaan tulisi luottaa varauksettomasti.