On Friday, December 21, 2012 12:42:23 PM Michał Górny wrote: > On Fri, 21 Dec 2012 12:31:28 +0100 > > "J. Roeleveld" <jo...@antarean.org> wrote: > > On Friday, December 21, 2012 12:02:34 PM Michał Górny wrote: > > > On Fri, 21 Dec 2012 11:24:45 +0100 > > > > > > "J. Roeleveld" <jo...@antarean.org> wrote: > > > > On Friday, December 21, 2012 09:57:25 AM Michał Górny wrote: > > > > > Just let me know when you have to maintain a lot of such systemd > > > > > and upgrade, say, glibc. Then maybe you'll understand. > > > > > > > > A shared /usr means I need to update ALL the systems at once. > > > > When /usr is not shared, I can update groups at a time. > > > > > > Yes, and this is what disqualifies it for the general case. If you > > > can't update one at some point, you can't update the others or it is > > > going to likely get broken in a random manner. > > > > Yes, but do you want to find out when the entire production environment is > > down? Or would you rather do the upgrades in steps and only risk having to > > rebuild a few nodes and have a lower performance during that time? > > There is a big difference between 50% performance and 0%. > > Didn't you just state that you *have* to update all at the same time?
Please re-read what I wrote. I said, with a *shared* /usr, then yes, I do need to update the entire environment at the same time. With a *non-shared*, this is not necessary. I also stated that that is one of the reasons why I do not *want* to share /usr between multiple hosts. > > > > To save time, a shared filesystem containing binary packages can > > > > easily be > > > > used and this is what I use myself. > > > > I have one VM that is used to rebuild the packages when I want to do > > > > an > > > > update and the real host then simply uses the binary packages. > > > > The configuration items needed for emerge are synchronized between the > > > > build system and the actual server. > > > > > > Wait, wait. So you have introduced even more hackery to get it working? > > > Good to hear. That's really a good reason to support your arguments. > > > 'I got it working with a lot of hackery, so it is a good solution!' > > > > Please explain, what is hackery about having a single host doing all the > > compiling for multiple servers? > > The only thing I need to synchronize between the "real" host and the > > "compile" host is "/etc/portage" and "/var/lib/portage/world" > > The hackery is about installing packages partially to local > and partially to shared location. I feel like I'm not following anymore > what actually happens there, not that it is worth my time. That type of hackery is what I do *not* do. Please see above. > > > > The main reason why I would never share an OS filesystem between > > > > multiple > > > > systems is to avoid the situation where a failed upgrade takes down > > > > the > > > > entire environment. > > > > > > And this doesn't happen in your case because...? Because as far as I > > > can see: > > > > > > 1) failed upgrade in /usr takes down the entire environment, > > > > > > 2) failed upgrade in / may take down the machine, > > > > > > 3) failed hackery you're doing to get it all working may have even more > > > unpredictable results. > > > > > > And yes, I prefer to take down the entire environment and fix it in one > > > step. That sounds much better than trying to get it back up and re-sync > > > all the machines which got into some mid-broken state. > > > > With shared OS filesystems, that is what you will get. > > With non-shared OS filesystems, the other nodes will keep working. > > Aren't we talking about shared OS filesystems *right now*? Yes, as a reason why *not* to do it. I don't ever intend to use a shared OS filesystem. That includes not sharing /usr because of the reasons I mentioned. The main reason mentioned for moving everything and the kitchen sink into /usr is to make it easier to share /usr between multiple servers. Doing that has the side-effect that a seperate /usr will not work without an init*. This makes me conclude that a decision has been made to: Break existing working environments to support an environment that has a built-in single point of failure. -- Joost