Fedora Project Considering "Stateless Linux"
Havoc Pennington writes "Red Hat developers have been working on a generic framework covering all cases of sharing a single operating system install between multiple physical or virtual computers. This covers mounting the root filesystem diskless, keeping a read-only copy of it cached on a local disk, or storing it on a live CD, among other cases. Because OS configuration state is shared rather than local, the project is called 'stateless Linux.'
The post to fedora-devel-list is here, and a PDF overview is here."
I don't see the purpose. Maybe I'm just unitiated, but wouldn't a linux terminal server work better, or perhaps some other solution. This in particular doesn't look that amazing, but I could be wrong. Does anyone out there have specific uses for this? (TFA won't load for me, so I'm going on what I see)
Those who study history are doomed to watch others repeat it.
Stateless installs? Sounds a bit like the terminal server project. I smell thin clients...are they going into fashion again?
Thin clients WOULD be a blessing, I imagine. Single configuration, one update, all the "personal files" in a server somewhere -- makes for easy updating and backing up. Also keeps hardware requirements down...which [buzzword warning] "helps lower TCO and increase ROI"
Unless i've caught a large case of the stupids, it looks like we're heading back to the days of the mainframe computer which many terminals plug into. Is this good or bad or neutral? I think this is a good way to keep corporate/school/etc computer costs down while making sysadmin jobs at least a little easier.
-- Checking emails and kicking cheats `till the day I die.
On behalf of non-geeks, let me be the first to say... HUH?
I mean, I know the words. It's mostly English, and that's my first language, and I'm pretty handy with computers, but that was the most incomprehensible load of babble I've heard since the last time I watched TNG.
Can someone explain what this means, in plain English, to a regular user (i.e. non-hacker geek types)?
Wow - this is really HUGE project. I mean - it spreads from kernel, through init scritps, through X managers & enviroments to easy to use administration tools. If they suceed this could be really "Linux killer application".
And please all the "NFS root is enough" posts - read the article!
It's really disconcerting for me that practically all the distros want you to have root access even to install a simple MP3 player from their package files; and extremely distrubing that they do it by popping up KDE or Gnome windows asking for root paswords.
Isn't this what we blame microsoft for?
Disk space is cheap enough, we don't need more sharing of config stuff - we need more separation so users can use the benefits of package managers without having to get in the way of other users.
This is similar to what clusters try and do. It is important to maintain the same OS state on all nodes. Take a look at Rocks Clusters. Rocks will push the same OS image out to the nodes of the cluster. There is no reason the cluster nodes could not be workstations on a desk.
HPC for Primates. Read Cluster Monkey
Posts like:
NFS read-only & shared root is enough
+
LTSP
+
Thin clients
=> please read the article
Back when mainframes were popular (the first time), they were large, expensive, and consumed lots of power... but in the long run less expensive than putting full workstations on every desk and maintaining local copies of settings, software etc. My personal feeling as to why desktops took off is because, at the time of their introduction, it seemed rediculous to have a mainframe in the home. Local copies were fine since most people only had one computer to worry about. This has changed. People now have multiple computers, or at the very least, constantly transfer info between home and work machines. Now, mainframe power is available cheeply and in a small formfactor... and with the use of broadband increasing, it is becomming more and more popular to rid the home and office of multiple full machines, and replace them with terminals that can connect to a shared environment. Personally, I would love to see this take off. It would be nifty if I could "pause" my work at one terminal, and resume it at another in another location. Also reduces overall cost for people who have, let's say, one computer for the parents and one for the kids (the latter more prone to breaking). Cheap thin-clients would be really useful here.
Mak'tal shree lok'tak mek'ta sa'tak Oz! - Daniel Jackson
If you'd bother to read the white paper or howto (sure, I'm new here) you'd have read that this is more than NFS mounted roots.
It's a framework for managing the servers, cached operation, integrated authentication etc. You can use this framework to manage roaming devices like laptops, allowing automatic install images, etc. etc.
An NFS solution requires network connectivity the whole time, this doesn't.
Cheers Koz
From the article:
The Free desktop that Just Works
same install image will work on a lot of different hardware i.e a laptop with all the power saving features, IDE hard drives and a P4 M processor that same install image will work on a AMD desktop system with scsi drives...
thats it in a nutshell....
This must be Thursday, I never could get the hang of Thursdays.
If you read the article, you will see that:
1) they don't want users to need root for hardware (but do want users to need the admin to install certain software). This info is in the PDF. They already see that needing root for hardware install or configuration needs to be worked around.
2) the design is a hybrid or amalgamation of thin and fat client, trying to cherry pick the best of both:
applications run on local systems
software and data cached on local disk
central management and configuration of nodes
they call it a cached client technology
3) they have a plan for laptops. Stateless... instantiation, sync... things that sound vague, but they seem to have a plan because this stuff is considered in the howto. There are some notes in the how-to covering the different types of clients:
" diskless clients, which boot directly from a snapshot stored on the server
caching clients, which boot from a copy of a snapshot, cached locally on a hard drive.
Live CD clients, which boot from a copy of a snapshot burned onto a CD
thick clients, which don't use snapshots and must be maintained by another means.
"
The idea has some very cool potential for a business or network situation. I can't imagine this is ready for production, but it could be soon.
-A
First of all, I'm not associated with the project.
However, I've read what they're talking about, and here is where many people are misinterpreting:
This is not a 'thin' client in the traditional sense. The client in this case does the computations.. i.e. it actually runs the app.
In other words, the computer is not merely a display, and as such shouldn't suffer from the traditional mainframe/client shortcomings.. (you have all the CPU power you normally have)
When you think about this, think KNOPPIX and other live-cds, that is the nearest (and quite near, imho) to what they're discussing.
So... why is this different from a normal install?
A normal install has a read-write root, whereas here they're shooting for a read-only root, even if it is still on the local harddrive.
I've been thinking about this way of doing things more and more since the appearance of Knoppix, FAI, Adios, and various cluster installation facilities--and clearly, so has Redhat.
Most importantly, this
1. avoids the absurdity of moving all processing, and indeed disk to a central server
2. focusses attention on development and maintenance of prototype installations for different types of machines
Some of the implementation techniques don't seem pleasant--but they're doing things in a way that appears forward-looking.
I look forward to seeing more of this.
Matt
Heh. I once made a stateless distro, based on Red Hat, on a hard drive. The intention was to use it as a car ogg player.
/var cannot be mounted read-only (needs /var/run, etc), so I mounted it as a 16M ramdisk, the contents of which was downloaded from /var.tgz at boot time. It worked splendid. Eventually, the slowest part of the boot process was waiting for the BIOS POST to finish.
It had / mounted read-only.
You could power down the thing whenever the hell you liked and never see fsck run.
"Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
A file/directory is either
- Static (not changed except by action of the system administrator), or
- Variable (subject to change at any time
and either- Shareable (multiple machines can have a common copy), or
- Unshareable (each machine needs a separate copy).
In an effort that is conceptually equivalent to the separation of the kernel tree into architecture-dependent and -independent subtrees for the Alpha port, which made subsequent architectures far easier, a lot of people have devoted their efforts to determining just how little of what goes into the file hierarchy really has to be unique to the machine.The 'aha moment' comes when you think of groups of workstations with identical hardware, which are candidates for having a common image from which they can be built, and realize that you can build a relational database that correlates MAC addresses (possibly to some other locally-unique but shorter machine number) to the HW configuration. Now, conceptually all of those cookie-cutter-identical machines are a single entity for the purposes of configuration. A lot of what FHS considers 'unsharable' is now quite 'sharable' within such a HW config group.
As workstations age, the IT department brings in a couple samples of the next HW configuration, loads drivers, tests against the app suite, and when they're ready for primetime, the vendor delivers them, the MAC addresses are added to the database, the workstations boot up, find Mommy (bootp server), and Just Work. The user can log out of an old computer and into a new one, and find all his 'stuff' right where he left it. It's the only sane way to compute in an institutional environment.
[100% ISO 646 Compliant]
SVM, ERGO MONSTRO.
This sounds like a great step forward for laptops as well as desktops that are to be "locked down".
I think there should be a more general concept of overlayed filesystems, where a FS could be mounted on top of another FS "with transparency", so that you can see all the files in the entire "stack". A standard "ls" would show 1 instance of each file, with the "highest level" FS taking precedence. A modified program might be able to see all the versions of a particular file and be able to copy one to another (if permissions allow).
If each FS could be mounted RO or RW, then you could have a local copy of everything on a CD or DVD, but make it appear writable by mounting another FS on top (either a local HD, USB pen drive, NFS mountpoint, etc). Recovering back to the original install would be just wiping out the modified files, so the underlying files are now visible.
This would be good for:
- fully functional Linux systems based of a CD or DVD
- FS snapshots for backup or testing
- intrusion detection (diff across file versions)
- version control of the entire OS image
Now, if only I were smart enough to actually write the code.
This is a very interesting project. As I understand the article, the point - long term - of the development effort is to try to get Linux (RedHat) adopted on the desktop by appealing to the TCO mentality of the IT department rather than by appealing to the desire of the end user to actually get stuff done. In other words, if the savings to IT of administering your machine centrally outweighs the benefits of you (corporate cube dweller) being able to configure your machine to your liking and use it as you see fit, then IT wins, and Linux makes an appearance on the Fortune 2000 desktop.
'Thin client' was the first attempt to dethrone MS in this way, but this approach appears much more sophisticated, and consequently much more likely to succeed. Without seeing how the whole thing plays out I really have no idea whether the approach is successful or not. But it's a really nifty shot across the MS bows.
Whether this goes anywhere or not ends up being decided by (as with most IT projects) whether the services provided by IT to the end users are adequate (in which case IT gets their way) or so obnoxiously limited that the end user cabal ends up storming the IT department with burning torches.
Well, most of us don't /really/ want to relearn *anything*. Sometimes, however, when you hear a new idea relating to an area you work in, the penny drops, and you are left thinking "wow, what a great idea".
For instance, I work in a scientific research environment (high energy physics) where most of our software is Free (capital F), we work in different places at different times (planning, lab, analysis), we have a great deal of customized and hand written software and the ideal development environment so far has been NFS mounted home directories (running RedHat and now Fedora). In theory every machine I log into is running the same OS, with /usr/local NFS mounted from an [application|file] server, I login though NDIS and my home directory is also NFS mounted.
This works fine in theory - except without a serious admin budget, different OS versions spring up... I have access to machines running RH9, FC1, FC2... and that's an improvement, whilst RedHat were still supporting RHL, we had 7.3, 8.0 and 9.0, with wildly different GCC versions. What happens? I end up using specific machines with a similar enough environment that all my simulations will at least compile without tweaking, and all my scripts etc work the same way. Homogenous environments, no matter how ideal, are not a possibility without a manpower commitment that many SMBs and other small operations can't afford.
This stateless project LEAPS out at me as an ideal way for small operations (like up to 100 seats) to be managed by a single (even part time) admin.
Not to mention the attempt to tackle laptops - which is the reality of the workplace. Many people have laptops. A lot of them (and their CTOs) would love to be running the same environment as the workplace LAN. At my lab most people have a laptop due to the amount of travelling we do - I'd guess that 90% of them are running XP, since even if they did run linux, they'd have to administer it themselves, wouldn't have clearance to access the NFS shares for $HOME and /usr/local.
Although the laptop aspect still has a troubling achilles heel: most of us (well, my colleagues at least) have laptops in order to present our work to others. Even ignoring the ubiquitousness of PowerPoint, who amongst us would want to be on the road with a "cached client" laptop with NO write-access to anything but $HOME. Sure, the system worked at the office, and you fixed all the bugs that cropped up when you connected from home on you DSL, but what about a strange environment. You need to connect over someone elses WiFi to get the latest figures (sure, TFA talked about user-configured WiFi, but still, what if they have different security like WEAP that needs a new package and root access), or if you NEED to plug in a USB key to give a collaborator or customer your files. What then?
Regardless, this to me is a prospective Killer App for linux, and is definitely tackling a bunch of issues that may niggle an admin for several years before they could even define what the problem is. Automatic updates across _all_ your workstations. Backups that require 10 minutes work after a crash - and I can attest that a recent HD crash to our "distributed" system took a few hours to get the machine back together, but several days before all the little minor tweaks we needed had been applied (things like monitor resolution, 'sudo' configuration, extra packages, sound drivers.
For the first time, I stand up and say, THANK YOU REDHAT and THANKS FEDORA. This project tells me that you are thinking about your installed customer base and offering _really_ innovative ideas to the community. Anyone want to moan about how Linux is always playing catchup to MS and Apple and how F/OSS is doomed to lag behind forever?
I am currently running 200 workstations in a thin client environment and we really could not be happier. Not to mention that those 200 are running of a single redhat cluster with nearly 100% uptime for the year. What possible benifit am I going to get over my current environment? Our clients are a mixture of junk we got from a recycler, cdboot from a hacked slax distro or flashboot mini-itx boxes. Total maintenance time per month is measured in mere minutes. And no I am not running LTSP, to complex and I can just buy neoware boxes already configured as a redhat x terminal.
Got Code?