BUSE: Block Device in Userspace
BUSE: Blokové zařízení v uživatelském prostoru
rigorous thesis (RECOGNIZED)
![Document thumbnail](/bitstream/handle/20.500.11956/180121/thumbnail.png?sequence=5&isAllowed=y)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/180121Identifiers
Study Information System: 247788
Collections
- Kvalifikační práce [11264]
Author
Advisor
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software Systems
Department
Department of Software Engineering
Date of defense
19. 4. 2023
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Recognized
Keywords (Czech)
linux|zařízení|ovladačKeywords (English)
linux|device|driverAčkoliv je implementace ovladače blokového zařízení v uživatelském prostoru mo- derního operačního systému možná, je velmi neobvyklá a často dosahuje velmi nízkého výkonu. Možnost snadno implementovat vysoce výkonný ovladač bloko- vého zařízení v uživatelském prostoru by dovolila rychlejší ověřování vědeckých poznatků z oblasti datových úložišť a umožnila by navrhovat bloková zařízení, která fungují velmi odlišně od těch tradičních. V této práci představujeme "Block Device in Userspace" (BUSE), což je linuxový modul a komunikační protokol, který umožňuje vývoj vysoce výkonného ovla- dače blokového zařízení v uživatelském prostoru. V porovnání s dosud existují- cími přístupy BUSE výborně škáluje na moderních vícejádrových architekturách, poskytuje nejméně 7x vyšší propustnost a nabízí výrazně jednodušší nastavení. Modul komunikuje s ovladačem v uživatelském prostoru přes sdílenou paměť, což eliminuje nadbytečné kopírování paměti. BUSE dále řeší případné konziste- nční problémy typu zápis po zápisu či čtení po zápisu, které jsou způsobeny více frontami bez synchronizace v příslušné části operačního systému. Tím je výrazně usnadněna implementace ovladače v uživatelském prostoru, která se může plně věnovat problémové doméně. Jako demonstraci použití BUSE práce dále představuje "Block Device in S3" (BS3). Jedná...
Implementation of block device drivers in userspace of modern general-purpose operating systems, although possible, is fairly uncommon, poorly supported and usually achieves only low performance. Being able to implement high- performance drivers in userspace with ease would allow for faster iterations in storage research and would make it possible to design block devices which operate in radically different ways. In this thesis, we present Block Device in Userspace (BUSE), a Linux ker- nel module and communication protocol which makes it easy to develop userspace block-device drivers. Compared to the existing approaches, BUSE can scale on modern multicore architectures and provides at least 7x higher throughput with significantly simpler setup. Furthermore, the kernel module communicates with the userspace driver through shared memory, eliminating an extraneous memory copy. BUSE also solves the write-after-write and read- after-write consistency issues which stem from the use of multiple hardware queues in the Linux storage stack, allowing the implementation to focus on the domain of the problem. As a proof-of-concept, we implemented Block Device in S3 (BS3), a userspace block device implementation backed by Amazon S3 (or any other S3-compatible storage) on top of BUSE. BS3 can be used as a generic disk...