Yaghmour: A practical approach to Linux clusters on SMP hardware
Jul 24, 2002 — by LinuxDevices Staff — from the LinuxDevices Archive — 4 viewsKarim Yaghmour writes . . .
In continuing my work on the Adeos nanokernel and following many discussions at the OLS, I concentrated on the idea of running multiple Linux kernels in parallel on SMP hardware in order to obtain SMP clusters. What started as a high-level investigation eventually turned out to be an in-depth search for a viable architecture.
At this point, I think I have figured out the exact components required (including how to boot multiple independent Linux kernels on SMP hardware), their interactions, and the additions to be developed. I wrote a paper (see link at the bottom) detailing these issues in order to encourage discussion over the ideas and techniques.
Instead of a high-level overview or an explanation of the virtues of SMP clusters, this paper presents many low-level implementation details and outlines the exact steps required to obtain a fully functional system.
To get there, I looked at a lot of previous work. Running multiple OS instances on the same hardware to enhance scalability is an idea that has actually been investigated before. The most documented example is Disco (which was implemented by the very folks that eventually brought us VMWare). Disco is a virtual machine monitor that enables multiple IRIX kernels to coexist on the same hardware.
The main “flaw” of the approach is that the authors started with assumption that modifying the OS to run multiple copies of it wasn't permitted. The architecture described in my paper is based on the assumption that minor kernel modifications are permitted as long as they are very isolated and easily removable. Hence, no virtualization whatsoever.
These are the main features of the architecture being presented:
- No changes to the kernel's virtual memory code.
- No changes to the kernel's scheduler.
- No changes to the kernel's lock granularity.
- Minimal low-level changes to kernel code.
- Reuse of many existing software components.
- Short-term accessibility.
Paper title: A Practical Approach to Linux Clusters on SMP Hardware
Paper outline:
- Introduction
- Previous work
- Overall system architecture
- Adeos nanokernel
- Kernel-mode bootloader
- Linux kernel changes
- Virtual devices
- Clustering and single system image components
- Work ahead
- Caveats and future work
- Conclusion
The paper is 12 pages long, including references, and should make for an interesting read even if you aren't interested in clustering or scalability. I could go on and provide more details, but if you're still reading this, then you better grab the paper and have a look for yourself. Here's the paper in various formats: Postscript / PDF / HTML
Feedback and suggestions on the architecture being presented are encouraged.
Best regards,
Karim
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.