<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Adventures of Systems Boy! &#187; ThreePlatformsOneServer</title>
	<atom:link href="http://systemsboy.com/category/threeplatformsoneserver/feed" rel="self" type="application/rss+xml" />
	<link>http://systemsboy.com</link>
	<description>Big, Honkin' Systems Stuff</description>
	<lastBuildDate>Fri, 30 Dec 2011 23:09:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Three Platforms, One Server Part 12: AFP Network Home Accounts</title>
		<link>http://systemsboy.com/2006/09/three-platforms-one-server-part-12-afp-network-home-accounts.html</link>
		<comments>http://systemsboy.com/2006/09/three-platforms-one-server-part-12-afp-network-home-accounts.html#comments</comments>
		<pubDate>Mon, 25 Sep 2006 05:06:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NIX]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[ThreePlatformsOneServer]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2006/09/three-platforms-one-server-part-12-afp-network-home-accounts/</guid>
		<description><![CDATA[I hit another minor but infuriating snag in my plan to unify the network, though this one was all Apple. It&#8217;s another case of Apple making serious changes to the way you&#8217;re supposed to set your server and clients and never really trumpeting much about it. Seems everything I used to do with my server [...]]]></description>
			<content:encoded><![CDATA[<p>I hit another minor but infuriating snag in my plan to unify the network, though this one was all Apple. It&#8217;s <a href="http://systemsboy.com/2006/09/three-platforms-one-server-part-10.html">another case</a> of Apple making serious changes to the way you&#8217;re supposed to set your server and clients and never really trumpeting much about it. Seems everything I used to do with my server and clients is done either slightly — or in some cases radically — differently in Tiger than it was in Panther. I must admit, I never checked the manuals on this, but something as simple setting up AFP networked home accounts has become a much more complex process in Tiger than it ever was in Panther, and it took me quite a while to figure out what I had to do to make it work like it did in the Panther glory days.</p>
<p>Now, to remind, we don&#8217;t really use AFP networked home accounts for most users. Our users&#8217; home accounts live on an NFS server — a separate machine from our authentication server — which is auto-mounted on each client at boot. The only value the authentication server stores for most users&#8217; home accounts is where those home accounts can be found on the client machines, which in our case is <span style="font-family:courier new;">/home</span>. So I haven&#8217;t had to worry too much about AFP network home accounts. Until last week.</p>
<p>There is one exception to the above standard. Certain Macromedia products do not function properly when the user&#8217;s home account is located on our NFS server, for some reason. In particular, Flash is unable to read the publishing templates, effectively disabling HTML publishing from the app. This has been a long term problem and has affected every version of Flash since we moved to our NFS home account server almost three years ago. Our solution has been to create a special user — the FlashUser — whose home account lives in an AFP network home account. When people need to work with Flash, they are encouraged to use this FlashUser account so that they can use the publishing features. This is inconvenient, but it works and we&#8217;re used to it, so we keep doing it until we find a better solution. Unfortunately, when I built my master authentication server (actually, when I rebuilt it) I forgot to add the FlashUser. The teacher of the Flash class eventually came to my office and asked about the account, and I told him it should just take a minute or two to get it set up. Boy was I wrong.</p>
<p>The FlashUser account was always a simple AFP network user account. The user&#8217;s account information and actual home account data were both stored on the same server, the data shared via an AFP share point, and configured in Workgroup Manager&#8217;s &#8220;Sharing&#8221; pane as an auto-mounted home folder. According to <a href="http://docs.info.apple.com/article.html?path=ServerAdmin/10.4/en/c2fs11.html">this article</a> guest access must be enabled on the AFP share to auto-mount. Well, that&#8217;s new in 10.4, and I had no idea. And beyond that, I think it sucks. Why should guest access be enabled on a home account share point? This didn&#8217;t used to be the case, and it seems way less secure to me in that by doing this you open the entire AFP home account share to unauthenticated access. Bad. Why in the hell would they change this? Not only is it less secure, but it breaks with tradition in ways that could (and in my cases did) cause serious headaches for admins setting up AFP networks home accounts.</p>
<p>Fortunately, after many hours of trial and error, I discovered a way to accomplish the same thing without enabling guest access on the share. It is possible, but it&#8217;s quite a pain. Nevertheless, it&#8217;s what I did.</p>
<p>Guest access can be foregone if trusted directory binding is set up between the client and the computer (which still makes no sense to me. You either have to go totally insecure, or set up an insanely secure system. Seems like we could skip the trusted binding thing if you&#8217;d just let us set up the shares sans guest access like we used to do.) Trusted binding is a bit of a pain to set up in that, as far as I know at this point, the only way to set it up is to go to every machine, log in, and run the Directory Access application. Apple really, really, really needs to give us admins some command-line tools for controlling DA. The current set is paltry at best, though I do need to look and see if there is one for setting up client-server binding (there might be, in fact it might be called <a style="font-family: courier new;" href="http://cbutera.wordpress.com/2006/01/20/setting-directory-access-by-command-line/">dsconfigladp</a> though this tool can not be used for setting authentication sources, for some ungodly reason, and I have yet to try it for the purposes of directory binding). But before you set up your clients, you must be sure &#8220;Enable Directory Binding&#8221; on your server is checked in the Server Admin application. By default it&#8217;s not. And, at least in my case, after enabling directory binding, I had to restart my server. Fun stuff. Also, I&#8217;m fairly certain this requires a properly functioning Kerberos setup on the server, so if you&#8217;re just starting out, be sure to get Kerberos running right.</p>
<p>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3965/1130/1600/DirectoryBinding.png"><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/3965/1130/400/DirectoryBinding.png" alt="" border="0" /></a><br /><span style="font-size:85%;"><span style="color: rgb(102, 102, 102);">Directory Access: Enable Directory Binding</span><span style="color: rgb(102, 102, 102);"><br />(click image for larger view)</span></span></div>
<p>Next you need to go to your client machines one by one and bind them to the server. If you&#8217;ve already joined your clients to a server for authentication, you can simply navigate to the server configuration in DA, click &#8220;Edit&#8230;&#8221; to edit it, and you&#8217;ll be presented with a &#8220;Bind&#8230;&#8221; button that will walk you through the process. If you haven&#8217;t yet joined a client you will be asked to set up trusted directory binding when you do. From there you need to enter the hostname of the client machine, the name of a directory administrator on your server, and that user&#8217;s password. In my case, I needed to also reboot the client machine. Like I said, kind of a pain.</p>
<p>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3965/1130/1600/DA1.png"><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/3965/1130/400/DA1.png" alt="" border="0" /></a><br /><span style="font-size:85%;"><span style="color: rgb(102, 102, 102);">Directory Access: Configure LDAP</span><span style="color: rgb(102, 102, 102);"><br />(click image for larger view)<br /></span></span></div>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3965/1130/1600/DA2.png"><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/3965/1130/400/DA2.png" alt="" border="0" /></a><br /><span style="font-size:85%;"><span style="color: rgb(102, 102, 102);">Directory Access: Edit Server Config</span><span style="color: rgb(102, 102, 102);"><br />(click image for larger view)</span></span></div>
<div style="text-align: center;"><span style="font-size:85%;"><a style="color: rgb(102, 102, 102);" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3965/1130/1600/DA3.png"><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/3965/1130/400/DA3.png" alt="" border="0" /></a><span style="color: rgb(102, 102, 102);"><br />Directory Access: Hit &#8220;Bind&#8230;&#8221; to Set Up Trusted Directory Binding</span><span style="color: rgb(102, 102, 102);"><br />(click image for larger view)</p>
<p></span></span></div>
<p>But that&#8217;s it. You&#8217;re done. (Well, 25 computers later, that is.) I now have my F</p>
<p>lashUser set up again, and auto-mounting its home account in the usual way (none of that &#8220;Guest Access&#8221; shit), albeit with considerably more effort than it took in Panther. This is, in my opinion, just one more reason to hate Tiger, which I generally do, as long-term readers are well aware. It&#8217;s another case in which Tiger has gotten harder and more complicated to use and set up, with no apparent advantage, or at least no immediate one.</p>
<p>I can only hope this is going somewhere good, because from my perspective the basic things I&#8217;ve come to rely on in both Mac OS X Server and Client (can you say &#8220;search by name?&#8221;) have gotten harder to do in Tiger. Significantly harder. And that&#8217;s too bad, &#8217;cause that&#8217;s just not what I&#8217;m looking for from Apple products. If I wanted something difficult to use, I&#8217;d switch to Linux. (I&#8217;d never switch to Windows.) And if Apple software continues along its current trajectory — the Tiger trend towards a more difficult OS — and Linux software continues along its current trend towards easier software, you may see more Linux switchers than ever. Apple&#8217;s draw is ease-of-use. The more they move away from that idea in the implementation of their software, the less appealing they become, to me personally, as a computing platform, and the less distinguishable they become from their competitors.</p>
<p>But for now, I&#8217;m sticking by my favorite computer platform. <a href="http://en.wikipedia.org/wiki/Mac_os_x#Mac_OS_X_v10.3_.28Panther.29">Panther</a> was an amazing OS — it truly &#8220;just worked&#8221;. It&#8217;s kind of sad that Tiger has been the OS that&#8217;s made start considering, however peripherally, other options. Here&#8217;s hoping they do better with <a href="http://www.apple.com/macosx/leopard/index.html">Leopard</a>.</p>
<p>BTW, here are a couple more links of interest regarding the topic of AFP newtork home accounts in Tiger. I don&#8217;t have time to read them right now, but they may prove interesting at some point.</p>
<p><a href="http://docs.info.apple.com/article.html?path=ServerAdmin/10.4/en/c6um2.html">Creating a Home Directory for a Local User at a Server</a><br /><a href="http://docs.info.apple.com/article.html?path=ServerAdmin/10.4/en/c6um4.html">Creating a Custom Home Directory</a><br /><a href="http://docs.info.apple.com/article.html?path=ServerAdmin/10.4/en/c2fs11.html">Automatically Mounting Share Points for Clients</a><br /><a href="http://docs.info.apple.com/article.html?path=ServerAdmin/10.4/en/c6um5.html">Setting Up an Automountable AFP Share Point for Home Directories</a></p>
<p><span style="font-weight: bold;">UPDATE:</span><br />A fellow SysAdmin and blogger, Nigel, from <a href="http://explanatorygap.net/">mind the explanatory gap</a> (one of my systems faves) has some beefs with this article, and shares some of his own experiences which are quite contrary to what I&#8217;ve reported. Just to be clear, this article reflects my own experiences, and there&#8217;s a bit more to my own scenario than I shared in the article, mainly because I didn&#8217;t think the details were important. They may be, and I discuss it at greater length in my response to Nigel&#8217;s comment. Thanks, Nigel, for keeping me on my toes on this one.</p>
<p>I&#8217;m not really sure what&#8217;s going on here, but if I get to the bottom of it, I&#8217;ll certainly report about it, either here or in a follow up post. But please read the comments for the full story, as there&#8217;s really a lot missing in the article, and things start to get clearer in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2006/09/three-platforms-one-server-part-12-afp-network-home-accounts.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Three Platforms, One Server Part 11: From the BDC to the lookupd</title>
		<link>http://systemsboy.com/2006/09/three-platforms-one-server-part-11-from-the-bdc-to-the-lookupd.html</link>
		<comments>http://systemsboy.com/2006/09/three-platforms-one-server-part-11-from-the-bdc-to-the-lookupd.html#comments</comments>
		<pubDate>Fri, 08 Sep 2006 03:40:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NIX]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[ThreePlatformsOneServer]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2006/09/three-platforms-one-server-part-11-from-the-bdc-to-the-lookupd/</guid>
		<description><![CDATA[Well, I did not have time to test my replica on Windows clients. I did, however, set up my BDC (Backup Domain Controller) on said replica and re-bind my Windows clients to the new master server once the replica was in place. Oddly, after doing so, Windows logins got a bit sketchy: sometimes they worked, [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I did not have time to test my replica on Windows clients. I did, however, set up my BDC (Backup Domain Controller) on said replica and re-bind my Windows clients to the new master server once the replica was in place. Oddly, after doing so, Windows logins got a bit sketchy: sometimes they worked, sometimes not. I just figured it was a fluke and would go away. (Yes, that&#8217;s my version of the scientific method. But that&#8217;s the suck thing about intermittent problems. Very hard to track, or even — as in this case — be sure they exist.) Anyway, today the Windows login flakiness persisted, and was starting to really be a problem. So I investigated. A good friend and colleague recommended I check Windows&#8217; Event Manager (which I did not know about — hey, I&#8217;m still new at Windows — until today). There I saw messages that referenced problems connecting to the replica, which shouldn&#8217;t have been happening. Thinking this might have something to do with the login problems, I turned off Windows services on the replica. Sure enough, Windows logins immediately began working perfectly. I had only two Windows services running on the replica: the BDC, which is supposed to provide domain controller failover should the PDC (the Primary Domain Controller on the master server) cease to function; and Windows file sharing, which hosts a backup of our Windows roaming profile drive. I&#8217;m not sure which service caused the problem as I simply stopped all services. So when I get a chance I will test each service individually and see which is the culprit. Hopefully it&#8217;s the file sharing, because if we can at least keep the BDC running, we have some authentication failover: in the event of a master failure, users would still be able to log in, though their roaming profiles would be temporarily unavailable. If it&#8217;s the BDC causing problems, then we effectively have no failover for Windows systems, which would blow big, shiny, green chunks. If that&#8217;s the case, I give up. Yup, you heard me. I give up. With no clues, failing patience, a serious lack of time, and no good time to test it, I&#8217;d pretty much be giving up on the BDC, at least until I got some better info or until the winter break. Or both. For all I know, this is a bug in Tiger Server.</p>
<p>On the plus side, I was able to observe some good behavior for a change on my Mac clients. In the <a href="http://systemsboy.com/2006/09/three-platforms-one-server-part-10.html">last article</a> I&#8217;d mentioned that it&#8217;s the clients that are responsible for keeping track of the master and replica servers, and that they get this info from the master when they bind to it, and that this info was probably refreshed automatically from time to. Well, this does indeed seem to be the case. Mac clients do periodically pull new replica info from the master, as evidenced by the presence of the replica in the <span style="font-family:courier new;">DSLDAPv3PlugInConfig.plist</span> file where once none existed, and on machines I&#8217;d not rebound. Nice. Guess I won&#8217;t be needing to rebind the Mac clients after all. For those interested in theories, I believe this gets taken care of by <span style="font-family:courier new;">lookupd</span>. If I understand things correctly, <span style="font-family:courier new;">lookupd</span> manages directory services in Mac OS X, particularly the caches for those services. Mac OS X caches <span style="font-style: italic;">everything</span>, and in Mac OS X, even Directory Service settings are cached. DNS. NetInfo. SMB, BSD, NIS. All cached. Most of these caches — like DNS, for example — have pretty short life spans. But some services don&#8217;t need refreshing so often. Things like Open Directory services stay in cache for a bit longer. There&#8217;s even a way to check and set the time-to-live for various service caches, but I&#8217;m not quite there yet. But I believe it&#8217;s <span style="font-family:courier new;">lookupd</span> that grabbed the new settings from the server, or at least expired the cache that tells the client to go get those settings. In any case, there&#8217;s a <span style="font-family:courier new;">lookupd</span> command I&#8217;ve found increasingly handy if you&#8217;ve just made changes to certain settings and they&#8217;re not yet active on your system:</p>
<p><span style="font-family:courier new;">sudo lookupd -flushcache</span></p>
<p>This will, obviously, flush the <span style="font-family:courier new;">lookupd</span> cache, and refresh certain settings. For instance, DNS changes sometimes take a bit of time to become active. This command will take care of that lag. My favorite use, though, is on my server. See, when I create a new OD user, I use the command <span style="font-family:courier new;">dscl</span>. Apparently, using the Workgroup Manger GUI will flush the cache, and the user will be instantly recognized by the system. Smart. But if, like me, you use a script that calls <span style="font-family:courier new;">dscl</span> to add or remove an OD user (remember, OD users are managed by a directory service, as are local NetInfo users, for that matter), the system won&#8217;t become aware of said user until the cache is flushed. I used to add a new user, <span style="font-family:courier new;">id</span> them, and sometimes get nothing for the first few minutes. Or freakier, delete a user and still be able to <span style="font-family:courier new;">id</span> them in the shell. Until I found out more about <span style="font-family:courier new;">lookupd</span> I thought I was going crazy. Now I just know to include the above command in my <span style="font-family:courier new;">AddUser</span>  and <span style="font-family:courier new;">DeleteUser</span> scripts. Nice. Nicer still to know I&#8217;m not losing my mind. At least not in the case of adding or removing users.</p>
<p>Anyway, when I get &#8217;round to my final Windows services tests, I will post an update.</p>
<p>God, I&#8217;m sick of this replica shit.</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2006/09/three-platforms-one-server-part-11-from-the-bdc-to-the-lookupd.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three Platforms, One Server Part 10: The Saga Continues</title>
		<link>http://systemsboy.com/2006/09/three-platforms-one-server-part-10-the-saga-continues.html</link>
		<comments>http://systemsboy.com/2006/09/three-platforms-one-server-part-10-the-saga-continues.html#comments</comments>
		<pubDate>Mon, 04 Sep 2006 22:30:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NIX]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[ThreePlatformsOneServer]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2006/09/three-platforms-one-server-part-10-the-saga-continues/</guid>
		<description><![CDATA[Last week I was having all manner of problems setting up a replica of my master authentication server. After a significant deal of effort I believe I have solved these problems, though I won&#8217;t know for sure without further testing, which I will be unable to perform anytime soon due the beginning of the Fall [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I was having <a href="http://systemsboy.com/2006/08/three-platforms-one-server-part-9.html">all manner of problems</a> setting up a replica of my master authentication server. After a significant deal of effort I believe I have solved these problems, though I won&#8217;t know for sure without further testing, which I will be unable to perform anytime soon due the beginning of the Fall semester, which is Tuesday.</p>
<p>Getting this working has been a saga of nearly epic proportions. I&#8217;d long suspected that my replica problems were due to latent Kerberos problems on the master, which occurred in the initial stages of its installation and setup, and I still believe this is indeed the case. Loathe as I was to rebuild a seemingly perfectly working master, I was considering trying it when circumstances beyond my control, and I believe completely unrelated to the problems I was having, forced my hand. Towards the end of the week the master server committed suicide.</p>
<p>I was doing some work on the server when I noticed that the system drive was inexplicably full. Odd, considering that this is a 20GB partition, and the system, apps, and my files should have been using no more than 6GB. Where had all that space gone? Some quick investigating led me to the folder <a href="http://www.afp548.com/forum/viewtopic.php?showtopic=4390"><span style="font-family:courier new;">/var/spool/atprintd</span></a> which was hogging about 10-15GB of disk space. (I&#8217;m recalling all this from memory, so details might not be perfectly accurate.) A surely related symptom of all of this was that, whenever I went to set print preference for computers in Workgroup Manager&#8217;s &#8220;Computers&#8221; list, I&#8217;d get a spinning wheel, but never a graphic or access to the control. Didn&#8217;t think much of &#8217;til I discovered this print queue spooling dangerously out of control. Still, no big, I figured, and I deleted the spool files, and deleted the queue (I wasn&#8217;t even using it) and rebooted the machine. Problem solved, right? Wrong.</p>
<p>After reboot the master server formerly know as &#8220;Open Directory Master&#8221; listed as it&#8217;s role &#8220;Connected to a Directory System&#8221; in Server Admin&#8217;s Open Directory settings pane. Huh? Exactly what Open Directory System was it connected to? Itself, apparently, as Directory Access showed it as being connected to 127.0.0.1, which is what it should be set to if it&#8217;s a master. For some reason the server had somehow relinquished its role as master and handed it over to none other than itself. Talk about schizophrenic. Now, I have no idea — nor time to figure out at this point — how all this role stuff is managed down in the guts of the system.  In fact, with the semester looming and all the replica problems I&#8217;d been having, I took this as a sign that maybe it was time to rebuild the server. And that&#8217;s what I did.</p>
<p>Mac OS X Server, for all its relative ease-of-use, sure is amazingly finicky about a great many things when it comes to installation and initial setup. And once it&#8217;s set up wrong,  it seems the only way to reset all its various databases and services is to wipe it clean and start from scratch. There are settings (like the IP address) that get so ingrained into every database and config file that it&#8217;s nearly impossible to find every instance and change it. Kerberos, the LDAP database, and UNIX flat files all need to accurately know about things like the IP address and the Fully Qualified Domain Name of the server before you start any services. And DNS had better be working perfectly somewhere on the network you&#8217;re OS X Server is on, and it better have a perfect record for your server or you&#8217;re going to just be screwed. Maybe not so screwed that you can&#8217;t fix the problem, but probably screwed enough that rebuilding your server from scratch is the preferable option. I believe what caused all my problems — and I haven&#8217;t proven this yet, but I believe it to be so — was a dot. That&#8217;s right, a dot. One, single, stupid little dot I forgot to enter in my reverse DNS table. You know the one. You&#8217;ve surely forgotten it yourself at some point. The entry should look like:<br /><span style="font-family:courier new;">34.1        IN    PTR        server.systemsboy.domain.com.</span></p>
<p>But instead you wrote:<br /><span style="font-family:courier new;">34.1        IN    PTR        server.systemsboy.domain.com</span></p>
<p>Ooops! See the difference? No dot. No period at the end of the sentence. Kids, punctuation counts in DNS. And DNS counts on Mac OS X Server. Big time.</p>
<p>So now you&#8217;re fucked and you don&#8217;t even realize it. You go and you build your server, and things seem fine, and then all of a sudden the simplest of things — building your replica — suddenly don&#8217;t work, and you&#8217;ve no idea why. There are no error messages, no warning dialogs. Things just don&#8217;t work.</p>
<p>There were some other facts that I learned about over the course of this saga as regards the finickiness of Mac OS X Server. In Tiger Server 10.4+, f you want to host a replica, Kerberos has to be running properly. The Apple folks will tell you that once you set your server to &#8220;Open Directory Master&#8221; Kerberos will just set itself up and start automagically, which it will, as long as your DNS is set up right. Otherwise it will not do anything, and, as per the manual, you can start it up later, by hand, in Server Admin. But if you&#8217;ve already gone and done a bunch of other Kerberos-dependent stuff on your server — stuff like adding users, or creating a replica — and you then try to Kerberize your server, you&#8217;re most likely quite fucked. And there&#8217;s no easy way out. You&#8217;re best bet is to rebuild the server from scratch. The alternative is to scour the numerous databases and config files in an attempt to correct the problem. But you&#8217;ll never be sure it&#8217;s right. So you rebuild the server.</p>
<p>I rebuilt the server.</p>
<p>It wasn&#8217;t so bad. I&#8217;m getting really good at batch importing users into Open Directory (which will be the subject of a later post). The worst part was that the Windows machines all had to be rejoined to the new server by hand. Otherwise, with a proper DNS configuration — and, just to be on the safe side, with the master and the replica added to the <span style="font-family:courier new;">/etc/hosts</span> table — rebuilding the server was as easy as it&#8217;s supposed to be. And now I have a server in which I have a great deal more confidence. Kerberos, in particular, seems to be working properly now. The weird error messages and inability to authenticate via Kerberos using the OD admin user are finally gone.</p>
<p>If I may make an aside to wax bitchy here for one moment: It seems to me that Apple needs to make a much bigger deal of all these dependencies. Proper server operation — especially Kerberos configuration — is heavily reliant on proper DNS configuration. I&#8217;ve known that for a while, mostly from forums and admin sites rather than from Apple&#8217;s server documentation. But also, replication is dependent upon proper Kerberos configuration, which I never knew until I scoured the forums. I don&#8217;t even use Kerberos, so I never worried about it being configured properly. And back in Panther you could easily replicate without it. That&#8217;s changed and it would be nice if someone hollered about it quite loudly in the manuals. Also, it would be really great to have a way to put everything back to spec. FQDN assignment is done automatically by the server, and you no longer have the option to do it by hand. This happens quite early in the boot process and is completely dependent upon proper DNS. But if you screw up your DNS, there appears to be no safe way to go  back and redo the FQDN assignation. Everything gets hosed by one little mistake. I&#8217;d like a button that resets everything on the server — Kerberos, FQDN, IP address and OD Database — back to the settings just after a clean install, and then brings you to the Setup Assistant to redo all the settings. At least then you wouldn&#8217;t have to reinstall everything. (You do realize, of course, that there is no &#8220;Archive and Install&#8221; feature<br />
for Mac OS X Server. So any install requires the multi-megabyte software updates, and the reinstallation of any users, shares, computers and the like. Which is a big, fat, nasty pain.)</p>
<p>Okay, so the burning question: What about the replica? Did the rebuild yield a usable replica? The answer is not pretty: I think so.</p>
<p>Once I had my master server rebuilt (and cloned for easy restore!) I tried the replica. Replication seemed to go fine, but then, it did before too, so that wasn&#8217;t necessarily reassuring. Once the replica was built I pulled the plug on the master. This time, things were even worse than before. No authentication was able to take place on the clients. They just didn&#8217;t see the replica. But why?</p>
<p>One of the things I learned through all of this is that it&#8217;s the client who maintains the list of replicas. It gets this list from the master OD server when it binds to said server — i.e. when you open Directory Access and set it up — and it probably also refreshes the settings here periodically, perhaps when mcx cache is refreshed, but I&#8217;m not really sure. You can see all these settings in one particular preference file, called <span style="font-family:courier new;">DSLDAPv3PlugInConfig.plist</span>, located in <span style="font-family:courier new;">/Library/Preferences/DirectoryService</span>. One of the things you&#8217;ll see in this file is the IP address of your master server, and if there are any replicas, they will be listed as well. Checking this file on my clients showed that they had not gotten the replica info from the new server. They had no idea about the replica. So I plugged the master back in, and re-bound a client machine. It got the replica info. I unplugged the master again, and after a few minutes, my client could again authenticate to the replica. It worked! Finally!</p>
<p>Now all of this occurred on Friday at around 9PM. I&#8217;d worked about 52 hours by that point. Testing the replica on a larger scale, and on Windows in particular, would have required effort I was no longer capable of nor willing to exert — i.e. un-joining Windows systems from the master, removing them from the computer list, rejoining them, pulling the plug, testing the behavior, and the like, all of which would have taken at least another hour or so to do properly. And whether it worked or not, I&#8217;d still have to go rebind every machine one by one the following week, just to be safe. So I quit. And that&#8217;s why, when you ask me, &#8220;Did the replica work?&#8221; I can only answer, &#8220;I think so.&#8221;</p>
<p>To qualify: I think we have a winner. It seems to work on the Macs, and I think it will work on Windows (though how well it  works on Windows, and if it works like we hope it does is anyone&#8217;s guess). The previous difficulties seem to have been caused by Kerberos-related problems on the master OD server, but I haven&#8217;t thoroughly tested it yet. And if it doesn&#8217;t work, then that&#8217;s that. We&#8217;ll probably give up on the whole replica idea for the semester, since the only way to test it is to effectively bring down the network, and I&#8217;m not so willing to pull plugs when school is in session.  So next week I will test a Windows machine if I can find a good time to do it. Either way, I will be rebinding all Macs and Windows machines to the new server in the hopes that replication is indeed working. But if there&#8217;s no time to test it, we may not know for sure until the master server dies. Sure. It&#8217;s a little scary. But I&#8217;ve seen worse.</p>
<p>One last thing: I did have the strangest problem with my latest master/replica setup during testing. After pulling the plug on the master, and then plugging it back in, I was unable to authenticate to the master as the directory admin user from WGM, Server Admin or ARD. I was able to <span style="font-family:courier new;">ssh</span> in, but I could not reboot the machine from the shell because <span style="font-family:courier new;">sudo</span> from both the directory admin account and the local admin account would not accept the root password. I was totally locked out. The only thing I could do was hard reboot the server by holding the power button on the machine. Fortunately, after doing so, the server began behaving normally again, and root access was again right with the universe. Sure did make me nervous though.</p>
<p>Anyway, thus ends, essentially, the saga of our replica, at least for now, as well as, for the most part, the saga of <a href="http://blogsearch.google.com/blogsearch?hl=en&#038;num=100&amp;c2coff=1&#038;as_eq=&amp;bl_url=systemsboy.com%2F&#038;lr=&amp;scoring=d&#038;q=blogurl%3Asystemsboy.com%2F+inposttitle%3A%22Three+Platforms%2C+One+Server%22&amp;btnG=Search+Blogs">Three Platforms, One Server</a>. We&#8217;re now in the final stage of the project: going live. Class begins on Tuesday, and we&#8217;ll get to see how our master authentication server holds up under load. If disaster ensues, expect more posts on the subject. If all goes well — knock wood with me, people — I will post a final round-up article and this series will be concluded. Also, if I get a chance to more thoroughly test my new replica I will post the results either here or in another article.</p>
<p>Okay, everyone. Have a great school year!</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2006/09/three-platforms-one-server-part-10-the-saga-continues.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three Platforms, One Server Part 9: Replica Problems</title>
		<link>http://systemsboy.com/2006/08/three-platforms-one-server-part-9-replica-problems.html</link>
		<comments>http://systemsboy.com/2006/08/three-platforms-one-server-part-9-replica-problems.html#comments</comments>
		<pubDate>Mon, 28 Aug 2006 17:59:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NIX]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[ThreePlatformsOneServer]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2006/08/three-platforms-one-server-part-9-replica-problems/</guid>
		<description><![CDATA[This post will be a short one. Promise. We&#8217;re finishing up this project, and so far it looks like it&#8217;s going to be a success. We&#8217;re just adding the last little bits and finishing touches right now, but we&#8217;ve been putting out internal authentication server through it&#8217;s paces for the past couple of months, and [...]]]></description>
			<content:encoded><![CDATA[<p>This post will be a short one. Promise. We&#8217;re finishing up this project, and so far it looks like it&#8217;s going to be a success. We&#8217;re just adding the last little bits and finishing touches right now, but we&#8217;ve been putting out internal authentication server through it&#8217;s paces for the past couple of months, and all seems well.</p>
<p>In a few places along <a href="http://blogsearch.google.com/blogsearch?hl=en&#038;num=100&amp;c2coff=1&#038;as_eq=&amp;bl_url=systemsboy.com%2F&#038;lr=&amp;scoring=d&#038;q=blogurl%3Asystemsboy.com%2F+inposttitle%3A%22Three+Platforms%2C+One+Server%22&amp;btnG=Search+Blogs">the travails of this series</a> I mentioned the need for a fail over in the event our master authentication server goes belly up. The rationale is that, with all our eggs in the one server basket, if our master goes down, no one can log  in — not on Windows, not on Mac, not on Linux. Fortunately, Mac OS X Server allows for what&#8217;s known as a replica. A replica is a read-only copy of your Open Directory data hosted by another server. But it&#8217;s a bit more than that. The replica also provides what&#8217;s known as fail over. That is, if the master server goes down, the replica knows to take over and start serving authentication to the clients. The replica, in effect, becomes the master in the event of the master&#8217;s absence, until said master returns to service, at which point the replica gracefully hands control back to the master. You can actually have multiple replicas for fail over, and for redundancy in the event of slow or separate networks. Brilliant! I&#8217;ve wanted one for a long time. And now I have it.</p>
<p><a href="http://systemsboy.com/2005/12/three-platforms-one-server-part-4.html">Setting up a replica</a> is easy as pie: Set the server&#8217;s &#8220;role&#8221; to &#8220;Replica&#8221;, point at its master, authenticate and you&#8217;re off to the races. That is, if you&#8217;ve set everything just perfectly on both your master server and the replica. That&#8217;s the thing about Mac OS X server, and always has been: if you set it up wrong initially, you&#8217;re in for a potential world of hurt. As I rediscovered last week.</p>
<p>After building my replica, I next went on the requisite testing spree. The test involved physically pulling the network cable from the master server, and then observing the behavior of the clients. Initially, the replica seemed to do a fine job of picking up right where the master left off. After about two minutes&#8217; time, clients could log right back in. But after about 5 minutes&#8217; time, nearly every client on our network beachballed indefinitely, and any attempt to login would hang the machine. This hanging was so sudden and so thorough, it actually froze my machine mid-cube-effect as I attempted to fast-user-switch to the login window. Some fail over! Not cool.</p>
<p>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3965/1130/1600/FrozenCube.jpg"><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/3965/1130/400/FrozenCube.jpg" alt="" border="0" /></a><br /><span style="font-size:85%;"><span style="color: rgb(102, 102, 102);">Fast User Switch: Frozen in Time</span><span style="color: rgb(102, 102, 102);"><br />(click image for larger view)</span></span></div>
<p>So I&#8217;ve spent a great deal of time figuring out the solution. The logs were no help. Google turned out to be a wash. Manuals? Pfft! For the first time in quite a while, it was an <a href="http://docs.info.apple.com/article.html?artnum=302332">Apple Knowledge Base Article</a> that offered the fix. The article was written for people who were having problems getting a 10.4.2 replica to remain a replica. Apparently there was an issue that involved these servers reverting back to &#8220;Standalone&#8221; roles after being switched from &#8220;Replica&#8221; to &#8220;Standalone&#8221; and back again. Though this was not my problem, nor did any of the symptoms reflect what I was seeing, I finally decided to try the recommendations in the article as they seemed fairly universally applicable, and as I was desperate and had tried everything else. The article essentially details methods for cleaning out every part of the master database that references the replica, and then re-promoting the replica to a clean master. Honestly, my master database looked pretty clean to me, but there was one bit of advice that I was not aware of, and it&#8217;s my suspicion that this was what did the trick for me: The OD Administrator of the replica&#8217;s database can NOT have the same UID or short name as that of the master. The article recommends creating a separate OD Admin account on the master, and using this separate account when binding the replica to the master. Honestly, I had no fucking idea. Would&#8217;ve been nice if this had been more explicitly mentioned in the manuals. Believe me, I&#8217;ve read the section entitled &#8220;Setting Up an Open Directory Replica&#8221; numerous times by now. It&#8217;s not there. Fortunately, it&#8217;s in that article, and now I know (and knowing&#8217;s half the battle).</p>
<p>And now you know.</p>
<p>So, in a couple weeks we go live with our unified internal network. I&#8217;ll let you know how it goes.</p>
<p><span style="font-weight: bold;">UPDATE 1:</span><br />Actually, my replica seems to still not be working, at least not very reliably. What happens is that about two minutes after the plug is pulled on the master, the replica picks up. At this point, clients — both Mac and Windows — can successfully log in. Shortly thereafter — maybe four minutes later — we start having problems: the Macs can&#8217;t log in, or only some can log in; Windows machines log in intermittently — one time it works, the next time it doesn&#8217;t, it works after a reboot, then it doesn&#8217;t; and, perhaps strangest of all, network connections to the Macs  — ARD, <span style="font-family:courier new;">ssh</span>, anything but <span style="font-family:courier new;">ping</span> — become all but impossible, hanging at the attempts. This is totally a guess, but it seems to me like the clients are having serious trouble binding to the replica. They keep attempting to do so, with some initial or intermittent success, and in their attempts network connections get locked up and the machines bog down. It&#8217;s almost like the replica server is saying, &#8220;Yes, you can bind to me,&#8221; and then changing it&#8217;s mind and saying. &#8220;Wait, no you can&#8217;t. Never mind. Screw you.&#8221; Again, I&#8217;m only guessing. There is nothing clear cut in the logs, and I can&#8217;t find anything in Apple&#8217;s Discussion forums or Knowledge Base that specifically addresses my problem. I only pray that it isn&#8217;t a problem with my master server, but the master works perfectly, and it seems to me that a replica of a perfectly working master should work perfectly. The current replica is running on a Mac mini with limited RAM, and a 10/100 BT NIC, and I want to rule out potential problems that might be caused by the hardware as well as the software set up. So my next step will be to build a new replica from scratch on a G5. I&#8217;ll let you know if that solves the problem.</p>
<p>Another thing I absolutely should mention: For Windows replication, the replica server must be set up as a Backup Domain Controller (BDC). This is done in the Server Admin application in the Windows section. It&#8217;s fairly straightforward to set up, so I won&#8217;t go into detail, but just for the record, it&#8217;s important to be aware of this, and I wasn&#8217;t until recently, so I mention it here for completeness&#8217; sake.</p>
<p>Having this replica isn&#8217;t absolutely critical to our plan. That is, we can go forward with this plan without the replica. But having a working replica will provide an important safety net that I&#8217;d really like to have working as the semester begins. There&#8217;s no good way to test it while the semester is in session. So I&#8217;m working hard to get it up and running in the final week of the summer.</p>
<p>So much for this post being short. More to come.</p>
<p><span style="font-weight: bold;">UPDATE 2:</span><br />I built the new server today. From scratch. On a G5. No joy. I honestly don&#8217;t know what the problem<br />
could be. I can only guess that something either broke with the latest 10.4.7 update, or that there&#8217;s something slightly off with my master server and it&#8217;s causing problems on the replica. But it&#8217;s weird, because if I bind directly to the replica using Directory Access it works perfectly, which leads me to suspect a problem on the client. But it affects Windows machines as well, so that doesn&#8217;t quite figure either. I hate to admit it, but I&#8217;m stumped. And, unfortunately, I don&#8217;t have time to worry about it right now.  I will revisit this issue at a later date, when I get some time. When I do, I&#8217;ll probably post a new entry with the solution, that is, if I&#8217;m able to find a solution. I hate this kind of thing. Is anyone else having a similar problem? I feel like I&#8217;m going nuts. And I can&#8217;t believe I&#8217;ve spent so much time on something that should be really, really easy. Fuck. What a bummer.</p>
<p><span style="font-weight: bold;">UPDATE 3:</span><br />I&#8217;ve pretty much given up on this for now. No time. And no good time to test, what with the students coming back next week. But today I noticed something strange, and it occurred to me it might be related to my replica problems. Today, when trying to make an AFP connection to the master server from a client using a simple &#8220;Connect to Server&#8230;&#8221; I got a Kerberos prompt that refused my admin credentials. Hmmm&#8230; Kerberos problems&#8230; On the master&#8230; Not good&#8230; So who knows? I may be rebuilding the master server at some point. But not now. Oh, Lordy, not now.</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2006/08/three-platforms-one-server-part-9-replica-problems.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Three Platforms, One Server Part 8: A Minor Snafu</title>
		<link>http://systemsboy.com/2006/05/three-platforms-one-server-part-8-a-minor-snafu.html</link>
		<comments>http://systemsboy.com/2006/05/three-platforms-one-server-part-8-a-minor-snafu.html#comments</comments>
		<pubDate>Thu, 25 May 2006 07:02:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NIX]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[ThreePlatformsOneServer]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2006/05/three-platforms-one-server-part-8-a-minor-snafu/</guid>
		<description><![CDATA[So far we&#8217;ve hit only one very minor snag in our migration to a single, unified authentication server for Mac, Windows and Linux. Since Mac and Linux behave so similarly with regards to authentication — in fact, I&#8217;d say they&#8217;re practically identical — and since Windows is so utterly, infuriatingly different, you can expect most [...]]]></description>
			<content:encoded><![CDATA[<p>So far we&#8217;ve hit only one very minor snag in our migration to a single, <a href="http://blogsearch.google.com/blogsearch?hl=en&#038;num=100&amp;c2coff=1&#038;as_eq=&amp;bl_url=systemsboy.com%2F&#038;lr=&amp;scoring=d&#038;q=blogurl%3Asystemsboy.com%2F+inposttitle%3A%22Three+Platforms%2C+One+Server%22&amp;btnG=Search+Blogs">unified authentication server</a> for Mac, Windows and Linux. Since Mac and Linux behave so similarly with regards to authentication — in fact, I&#8217;d say they&#8217;re practically identical — and since Windows is so utterly, infuriatingly different, you can expect most of our problems to happen on the Windows side. At this point it should go without saying. This latest snag is no exception.</p>
<p>Today we discovered that applications to be used by network users on Windows machines must be installed by a network user, and this network user must be a domain admin. Put another way, if a Windows application is installed by a local administrator, it will not be fully accessible by users who authenticate via the domain hosted by the Authentication Server. Typical.</p>
<p>The solution is fairly easy, albeit kind of a pain. On each client workstation, you must give the network admin user (i.e., a user whose account exists only on  the authentication server) full access to the &#8220;C&#8221; drive. You heard me: On <span style="font-style: italic;">each computer</span>. Giving full access to a user on Windows requires logging in as a local admin and granting the network user full access rights. Windows then changes the access permissions on <span style="font-style: italic;">every file</span> on the machine, which takes a long-ass time. You heard me: <span style="font-style: italic;">long-ass</span>.</p>
<p>If we had to do this on every machine by hand, I&#8217;d be grumpy about it (but I&#8217;d do it anyway). Fortunately, we&#8217;ll be building our Windows boxes from clones, which means we only have to do this once on a master build. the change should propagate via the clones after that. So I&#8217;m a pretty happy camper. And we&#8217;re back on track.</p>
<p>Still, Windows, what the fuck?</p>
<p>And just to be clear on this, I honestly don&#8217;t know enough about Windows or Active Directory to understand why this is happening. All I know is what we&#8217;ve observed, which is that Windows apps fail to run properly for network users when installed by local users. We tried matching the users and groups we&#8217;d had on the old Windows Server, but that did no good. Setting full access locally for a networked user was the only thing we could find that worked. It&#8217;s very possible, however, that there&#8217;s a better solution than the one we&#8217;re using. If anyone can enlighten me, I&#8217;m all ears.</p>
<p>Oh, and yes, our network user has full access privileges for the directory domain. Confused? Me too.</p>
<p>More to come&#8230;</p>
<p><span style="font-weight: bold;">UPDATE:</span> I found a better solution. A network user can be added to the &#8220;Administrators&#8221; group via the Users and Groups control panel. Doing so is not particularly intuitive, but it works and saves us the trouble of having to modify permissions on the entire &#8220;C&#8221; drive.</p>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3965/1130/1600/comp-manage-groups.gif"><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/3965/1130/400/comp-manage-groups.png" alt="" border="0" /></a>
<div style="text-align: center;"><span style="font-size:85%;"><span style="color: rgb(102, 102, 102);"> Windows &#8220;Advanced&#8221; Users and Groups: By &#8220;Advanced&#8221; I Think They Mean &#8220;Annoying&#8221;</span></span><span style="font-size:85%;"><span style="color: rgb(102, 102, 102);"><br />(click image for larger view)</span></span></div>
</div>
<p>It essentially requires logging in as a local Administrator, navigating to the &#8220;Advanced&#8221; window in Users and Groups, and then adding the user to the &#8220;Administrator&#8221; group.</p>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3965/1130/1600/power-users.gif"><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/3965/1130/400/power-users.png" alt="" border="0" /></a><br /><span style="font-size:85%;"><span style="color: rgb(102, 102, 102);">Group Properties: Do We Really Need This Window?</span><span style="color: rgb(102, 102, 102);"><br />(click image for larger view)</span></span></p>
</div>
<p>Windows doesn&#8217;t see a network user unless she&#8217;s logged in, so you have to know how to enter a network user. It should look something like this: DOMAIN\user, where &#8220;DOMAIN&#8221; is your Active Directory Domain,  and &#8220;user&#8221; is the user name.</p>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3965/1130/1600/search-for-users.gif"><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/3965/1130/400/search-for-users.png" alt="" border="0" /></a><br /><span style="font-size:85%;"><span style="color: rgb(102, 102, 102);">Add the User Here: Who&#8217;d a Thunk It?</span><span style="color: rgb(102, 102, 102);"><br />(click image for larger view)</span></span></div>
<p>You can find more complete instructions <a href="http://www.colorado.edu/its/windows2000/adminguide/joindomaintolocal.html">here</a>, which is where I got these images.</p>
<p>Fun stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2006/05/three-platforms-one-server-part-8-a-minor-snafu.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three Platforms, One Server Part 7: Testing&#8230;</title>
		<link>http://systemsboy.com/2006/05/three-platforms-one-server-part-7-testing.html</link>
		<comments>http://systemsboy.com/2006/05/three-platforms-one-server-part-7-testing.html#comments</comments>
		<pubDate>Mon, 22 May 2006 18:03:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NIX]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[ThreePlatformsOneServer]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2006/05/three-platforms-one-server-part-7-testing/</guid>
		<description><![CDATA[So, our primary authentication server, which will be used to enable network home accounts for our entire internal network — Mac, Windows and Linux — is up and running. I&#8217;ve installed it in our server room, put it on the KVM, and switched over all the workstations. So far, so good. (My fingers are so [...]]]></description>
			<content:encoded><![CDATA[<p>So, our primary authentication server, which will be used to enable network home accounts for our entire internal network — Mac, Windows and Linux — is up and running. I&#8217;ve installed it in our server room, put it on the KVM, and switched over all the workstations. So far, so good. (My fingers are so crossed they hurt.)</p>
<p>For the Windows quota requirements we went with the first solution mentioned in <a href="http://systemsboy.com/2006/05/three-platforms-one-server-part-6-more.html">this article</a>, and outlined in detail <a href="http://systemsboy.com/2005/12/three-platforms-one-server-part-2.html">here</a>: Windows roaming profiles are on a separate, quota-enabled volume on the authentication server. This — and the Windows implementation in general — is my biggest concern, and will require a great deal of testing. Summer Session has begun, and this will give us the opportunity to test on live subjects as a limited pool of students begins using the systems for work again.</p>
<p>There are a couple of immediate benefits of this new system. For one, users can now change their password lab-wide from any Mac in the lab. Now, users don&#8217;t tend to do this much, but they can if they want to, and it&#8217;s easy as pie. But as an admin, the most exciting benefit to all this is the ease with which new users can now be created. In the past, creating a new user was a multi-step, multi-computer process that involved coordination between multiple sysadmins: Admin 1 gets the user info, creates the Linux and Windows accounts and hands it off to admin 2, who then creates the Mac account and uploads the Mac skel. This process was lengthy and extremely error-prone. Using the new system, user creation is a breeze. One single, easy-to-use script on the authentication server pretty much does it all. Any sysadmin — or even a trained assistant — can do it. Just log in to the authentication server, run the script, and you&#8217;re basically done. It&#8217;s fast, easy and accurate. Which is really the whole reason we&#8217;re doing all this. I&#8217;m pretty happy about it.</p>
<p>There are a few minor details I need to work out. The main one is file sharing. In addition to being an authentication server, our original Mac server is also a file server. On it there are numerous shares for various purposes — one for staff, one for students, etc.. At this point I&#8217;m thinking of keeping the file server and the authentication server separate. This will reduce the load on both, and mitigate the need to migrate any data. The catch is that user authentication data on the file server will need to match that of the new authentication server. This should be a simple matter of changing the old server&#8217;s role to &#8220;Connected to a Directory System&#8221; and pointing it at the new authentication server. I&#8217;ve never done this though, and it&#8217;s complicated by the fact that the old server is running Panther whereas the new one is running Tiger. Probably the best thing to do will be to wipe the old server (yes, I have a backup) and put Tiger on it, then redo the shares. But I&#8217;ll probably test with Panther first, just to see what happens. I&#8217;ll let you know.</p>
<p>In any case, this is, again, a minor problem that shouldn&#8217;t affect the overall plan much and should be relatively easy to figure out and implement. It&#8217;s just one of those little things you forget about when you&#8217;re drawing up your master plan for world conquest. &#8220;Oh yeah&#8230; What about the file server?&#8230;&#8221;</p>
<p>Otherwise, the conversion is on and seems to be going smoothly so far. Once we get into serious testing I&#8217;ll post the results. Hopefully this will all be done in the next few weeks and the conversion will finally be complete.</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2006/05/three-platforms-one-server-part-7-testing.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three Platforms, One Server Part 6: More Windows Quota Problems</title>
		<link>http://systemsboy.com/2006/05/three-platforms-one-server-part-6-more-windows-quota-problems.html</link>
		<comments>http://systemsboy.com/2006/05/three-platforms-one-server-part-6-more-windows-quota-problems.html#comments</comments>
		<pubDate>Sun, 07 May 2006 19:05:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NIX]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[ThreePlatformsOneServer]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2006/05/three-platforms-one-server-part-6-more-windows-quota-problems/</guid>
		<description><![CDATA[Of course I knew it was too good to be true. I&#8217;ve found the first fatal flaw in my plan to unify authentication on the internal network. It goes back to the Windows quotas problem I studied some time ago, and to which I&#8217;d thought I&#8217;d found a solution. I won&#8217;t go into great detail [...]]]></description>
			<content:encoded><![CDATA[<p>Of course I knew it was too good to be true. I&#8217;ve found the first fatal flaw in my plan to <a href="http://blogsearch.google.com/blogsearch?hl=en&#038;num=100&amp;c2coff=1&#038;as_eq=&amp;bl_url=systemsboy.com%2F&#038;lr=&amp;scoring=d&#038;q=blogurl%3Asystemsboy.com%2F+inposttitle%3A%22Three+Platforms%2C+One+Server%22&amp;btnG=Search+Blogs">unify authentication on the internal network</a>. It goes back to the <a href="http://systemsboy.com/2005/12/three-platforms-one-server-part-2.html">Windows quotas problem</a> I studied some time ago, and to which <a href="http://systemsboy.com/2005/12/three-platforms-one-server-part-3.html">I&#8217;d thought I&#8217;d found a solution</a>.</p>
<p>I won&#8217;t go into great detail about the problems and various solutions to the Windows roaming profile issue. I&#8217;ve already written plenty on it, and the previous posts outline it all fairly well. I will say that the intended solution was to provide Windows roaming profile quotas by setting them locally on each workstation. But, last week, as we moved forward with the plan, one of my fellow sysadmins, who is far more capable with Windows than I happen to be, pointed out the fact that certain applications (i.e. Photoshop, Maya, etc.) need a certain amount of disk space for temp files and what-not in order to operate. Setting small local quotas effectively keeps these applications from running properly.</p>
<p>We are currently testing a few other scenarios in which quotas for Windows roaming profiles can be implemented to our satisfaction:
<ol>
<li>The Authentication Server (Mac OS X Server 10.4.6) has a separate volume for Windows roaming profile storage and that drive has quotas enabled (this was the original plan). The drawback to this is that the user&#8217;s home account data is stored separately for Mac and Linux — which keep this data on the home account server — than for Windows, which would store this data on a reserved volume. The other drawback is the fact that the client machine is not aware of the quotas until the user logs out and the Windows client attempts to upload the new data, at which point Windows issues an error if the user has exceeded his quota. But the user is not warned about quota violations until logout, and this could cause some minor problems. </li>
<li>The Windows Server continues to host roaming profiles and determine quotas for Windows users, but gets user authentication information through a connection to our Mac Authentication Server. The drawback here is that we have to continue using the Windows Server, which we don&#8217;t really want to do, though it does seem to give us a slightly higher level of control than does the Mac Server. This method is also complicated by the fact that we are currently running Windows Server 2000, which does not include native authentication to LDAP, so third-party solutions would be required. This method could also complicate user creation. </li>
<li>Through some combination of Windows and Mac Servers, we convince the Windows roaming profiles to be situated on the Temp volume of the local workstations, rather than the default location on the &#8220;C&#8221; drive in the &#8220;Documents and Settings&#8221; folder, and then set quotas for the Temp volume. I&#8217;m skeptical that this is even possible. Windows seems to be hard-coded in ways that make specifying the location of roaming profiles anywhere other than &#8220;C:\Documents and Settings&#8221; impossible. So this last option seems the least likely to succeed, though if it did it would match the way Mac and Linux behave much more closely. And if we could figure out how to do this without the Windows server, it would be almost ideal.</li>
</ol>
<p>(Actually, I just thought of a problem with this last method: The Windows Temp drives get erased every Friday. If users happen to be working during the deletion period, what happens to their roaming profiles? The same thing happens on the Mac, but the deletion script on Mac does not delete work owned by the currently logged in user. Can such a scenario be implemented on Windows?)</p>
<p>Most likely we will go with the first solution. We already know that it works. It&#8217;s a little extra effort when creating new users, but that&#8217;s totally scriptable. We plan to do user creation from a single script from now on anyway, so these extra few steps, once incorporated into our user creation script, won&#8217;t really be a big deal at all. The only other problem with this is that our replica will now need to sync the Windows roaming profile volume as well if it&#8217;s to work as a proper fallback system. This, too, should not be terribly difficult to accomplish. Overall, this solution is less elegant than the original one, but it should be workable. Hopefully, Windows Vista will mitigate a lot of these problems. (Yes, that was totally a joke. Please chuckle softly to yourself and move on.)</p>
<p>I guess what amazes me still is how contrary to other operating systems the Windows OS is. Everything we&#8217;re doing here can be done the same way on Mac as it can on Linux, or virtually any other *NIX system: home accounts can be read directly from a network disk, their locations can be specified, and therefore, all this quota nonsense is unnecessary. On Windows, roaming profiles apparently must be downloaded to the client machine (an unbelievably stupid requirement), and the location of said profiles apparently must always be on the root drive in the &#8220;Documents and Settings&#8221; folder. I guess these are the ways in which Windows continues to force people to use Microsoft products (I can almost hear Bill Gates whispering in my ear, &#8220;Wouldn&#8217;t it all be easier if you just used Windows Server?&#8221;) But for software that&#8217;s become the dominant standard in both the business and personal markets, Windows sure seems non-standard in baffling and infuriating ways. Though this may be how Microsoft has managed to stay on top all these years, I still, perhaps naively, believe that some day, if they don&#8217;t change this strategy, it will hurt them. Frankly, though I&#8217;m sure they&#8217;re out there, I don&#8217;t know a single sysadmin that likes Windows. Can you blame them?</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2006/05/three-platforms-one-server-part-6-more-windows-quota-problems.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three Platforms, One Server Part 5: Away We Go!</title>
		<link>http://systemsboy.com/2006/05/three-platforms-one-server-part-5-away-we-go.html</link>
		<comments>http://systemsboy.com/2006/05/three-platforms-one-server-part-5-away-we-go.html#comments</comments>
		<pubDate>Fri, 05 May 2006 16:17:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NIX]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[ThreePlatformsOneServer]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2006/05/three-platforms-one-server-part-5-away-we-go/</guid>
		<description><![CDATA[So it&#8217;s the last week during which students have access to the lab, and that means I can finally implement my plan to unify internal network user authentication. Finally! I&#8217;m so jazzed. I&#8217;ve been waiting for months (well, years, really) for the chance to do this, and it&#8217;s here at last. The general outline of [...]]]></description>
			<content:encoded><![CDATA[<p>So it&#8217;s the last week during which students have access to the lab, and that means I can finally implement my plan to unify internal network user authentication. Finally! I&#8217;m so jazzed. I&#8217;ve been waiting for months (well, years, really) for the chance to do this, and it&#8217;s here at last.</p>
<p>The general outline of what I&#8217;ll be doing over the next few days goes something like this:
<ul>
<li>Backup my current Mac server (for safety)</li>
<li>Build my master authentication server</li>
<li>Backup a clone of the clean server install</li>
<li>Configure the new server with:</li>
<ul>
<li>Users and Groups</li>
</ul>
<ul>
<li>Home account automounting</li>
</ul>
<ul>
<li>Home account sharing to SMB (for Windows Roaming Profiles)</li>
</ul>
<ul>
<li>A skel account for Windows users (to live on the home account server)</li>
<li>Other share points</li>
</ul>
<li>Create a replica of the new master server</li>
</ul>
<p>What I did today:<br />Well, it&#8217;s amazing how long a base install of Tiger Server can take. I&#8217;ve pretty much been doing that all day. Not that I&#8217;m so incompetent that I can&#8217;t install the software in seconds flat, but software updates take forever and a day. Planning and getting drives to do all this on was a bit of an effort too. Plus I just wanted to make sure I did it right the first time, so I went slow, gave myself the day. I&#8217;m also making clones of everything along the way, for building my replica, and in case I goof and need to start over. So that takes a while. I guess I&#8217;m just saying that I&#8217;m taking my time with this, &#8217;cause I want it to be as perfect as possible from the get-go.</p>
<p>By Monday we should have:
<ul>
<li>A base install of Tiger Server 10.4.6 with requisite Software Updates on a firewire drive</li>
<li>A backup of our old Mac Server</li>
<li>A new Tiger 10.4.6 authentication server that&#8217;s configured to host Mac, Windows and Linux users</li>
<li>A replica of same</li>
</ul>
<p>We will spend part of next week pointing all our workstations at the new server. The Windows machines will be the biggest pain as 1) they are running Windows, and 2) they need local quotas set (which could really be just a subset of point 1, but whatever). The reason for all this quota nonsense, you ask? Well, for the answer, you&#8217;ll just have to read the previous posts on the matter. Suffice to say, I&#8217;m hoping the quota setting nonsense will be the worst part of this job, which it should if all goes according to plan, which, I&#8217;m sure you&#8217;re aware, it rarely does.</p>
<p>Finally, I wanted to mention this quote that I read on <a href="http://daringfireball.net/">Daring Fireball</a>, by someone called <a href="http://en.wikipedia.org/wiki/Gall%27s_law">John Gall</a>, author of <a href="http://en.wikipedia.org/wiki/The_Systems_Bible"><span style="font-style: italic;">Systemantics</span></a>, as it really jives with a lot of the stuff I&#8217;ve been thinking about with regards to the lab:</p>
<blockquote><p><span style="font-style: italic;">“A complex system that works is invariably found to have evolved from a simple system that worked….A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system.”</span><br />— John Gall</p></blockquote>
<p>Next week should be interesting. I&#8217;ll keep you posted.</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2006/05/three-platforms-one-server-part-5-away-we-go.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three Platforms, One Server Part 4: Redundancy</title>
		<link>http://systemsboy.com/2005/12/three-platforms-one-server-part-4-redundancy.html</link>
		<comments>http://systemsboy.com/2005/12/three-platforms-one-server-part-4-redundancy.html#comments</comments>
		<pubDate>Fri, 09 Dec 2005 00:58:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NIX]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[ThreePlatformsOneServer]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2005/12/three-platforms-one-server-part-4-redundancy/</guid>
		<description><![CDATA[One of the major hurdles in our server unification project, mentioned in Part 1 of this series, is that of redundancy. In the old paradigm, each platform&#8217;s users were hosted by a separate server. Mac users authenticated to a Mac Server, Windows users to a Windows Server, and Linux users to an NIS server. While [...]]]></description>
			<content:encoded><![CDATA[<p>One of the major hurdles in our <a href="http://systemsboy.com/category/threeplatformsoneserver">server unification project</a>, mentioned in <a href="http://systemsboy.com/2005/12/three-platforms-one-server-part-1.html">Part 1</a> of this series, is that of redundancy. In the old paradigm, each platform&#8217;s users were hosted by a separate server. Mac users authenticated to a Mac Server, Windows users to a Windows Server, and Linux users to an NIS server. While this is exactly what we&#8217;re trying to avoid by hosting all users on a single server, it does have one advantage over this new approach: built-in redundancy. That is, if one of our authentication servers fails, only the users on the platform hosted by said server are affected. For example, if our Windows Server fails, Windows users cannot login, but Mac users and Linux users can. In our new model, where all authentication for all platforms is hosted by a single server, if that server fails, no user can log in anywhere.</p>
<p>Servers are made to handle lots of different tasks and to keep running and doing their jobs under extreme conditions. To a certain extent, that is the very nature of being a server. To serve. Hence the name. So servers need and tend to be very robust. Nevertheless, they do go down from  time to time. That&#8217;s just life. But in the world of organizations that absolutely must have constant, 24 hour, &#8217;round-the-clock uptime, this unavoidable fact of life is simply unacceptable. Fortunately for me I do not inhabit such a world. But, also fortunately for me, this notion of constant uptime has provided solutions to the problem of servers crashing. And while I probably won&#8217;t lose my job if a server crashes periodically, and no one is going to lose millions of dollars from the down-time, no SysAdmin likes it when he has to tell his users to go home for the night while he rebuilds the server. It just sucks. So we all do our best to keep key systems like servers available as much as possible. It&#8217;s just part of the deal.</p>
<p>So how are we going to do this? Well, one of the reasons I decided to use a Mac for this project is that it has built-in server replication for load balancing, and, yes failover. We&#8217;re not too concerned with the load balancing; failover is what we&#8217;re after. Failover is essentially a backup database that is a replica of a primary database, and that takes over in the case of a failure of the primary database. Mac Server has this built-in, and from what I read, it should be fairly easy to set up. Which is exactly what we&#8217;re about to do.</p>
<p>The first thing we need is our primary server. This is the main server. The one that gets used 99% of the time (hopefully). We have this (or at least a test version of it) built already as discussed in <a href="http://systemsboy.com/2005/12/three-platforms-one-server-part-1.html">Part 1</a>. What we need next is what is called the replica. The replica is another Mac OSX Server machine that is set to be an &#8220;Open Directory Replica,&#8221; rather than an &#8220;Open Directory Master.&#8221;</p>
<p>So I&#8217;ve built a plain old, vanilla, Mac Server, and set it initially to be a Standalone Server. I&#8217;ve given it an IP address, and done the requisite OS and security upgrades. (Oy! What a pain!) In the Server Admin application, I set the new server  to be an &#8220;Open Directory Replica.&#8221; I&#8217;ll be asked for some information here. Mainly, I&#8217;ll need to tell this replica what master server to replicate. Specifically I&#8217;m asked to provide the following at the outset:</p>
<blockquote style="font-style: italic;"><p>IP address of Open Directory master:<br />
Root password on Open Directory master:<br />
Domain administrator&#8217;s short name on master:<br />
Domain administrator&#8217;s password on master:</p></blockquote>
<p>(The domain administrator, by the way, is the account used to administer the LDAP database on the master.)</p>
<p>Once I fill in these fields I&#8217;ll get a progress bar, and then, once the replica is established, I&#8217;m basically done. There are a few settings I can tweak. For instance, I can set up secure communications between the server with SSL. But for my purposes, this would be overkill. I&#8217;m pretty much going with the out-of-the-box experience at this point. So for setup, that should be it. Setting up a replica is pretty easy stuff.</p>
<div style="text-align: center;"><a href="http://photos1.blogger.com/blogger/3965/1130/1600/replicaSetup04.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/3965/1130/400/replicaSetup04.jpg" border="0" alt="" /></a></p>
<p><span style="color: #666666;">Establishing the Replica: Could it </span><span style="font-style: italic; color: #666666;">Be</span><span style="color: #666666;"> Any Easier?</span><br />
<span style="color: #666666;">(click for larger view)</span></div>
<p>Now here comes the fun part: testing. What happens if our primary server goes offline? Will the replica take over authentication services? Really? I&#8217;d like to be sure. What I&#8217;m going to do now is test the behavior of the Master/Replica servers to make sure it acts as intended. The best way I know to do this is to simulate a real-world crash. So I am binding one of my clients to my Master server, with Replica in place. Then I&#8217;m going to pull the plug. In theory, users should still be able to login to the bound client. Let&#8217;s try it&#8230;</p>
<p>Bang! It works! I&#8217;m a bit surpsrised; last time I tried it, years ago, it (or I) failed. This time, though, it worked. We bound a client to the Master, our mother-ship server. Authentication worked as expected. (We knew we were bound to the new server because the passwords are different.) And then we killed it. We killed the master and logged out. There was some beachballing at logout. But after a few minutes &#8212; like two or three, not a long wait at all &#8212; we were able to complete logout, and then log right back in as though nothing had happened. I tell you, it was a thing of beauty.</p>
<p>So let&#8217;s briefly recap where we&#8217;ve been and what&#8217;s left to do.</p>
<p>Where we&#8217;ve been:</p>
<ul>
<li>We&#8217;ve built our Mama Server. Our authentication server for the entire lab.</li>
<li>We&#8217;ve figured out how to migrate our users to Mama, and how to handle the required password change.</li>
<li>We&#8217;ve solved the inherent problems with Windows clients and figured out a few solutions for handling them involving quotas and various roaming profile locations.</li>
<li>We&#8217;ve built and tested the operation of the Open Directory Replica, and it is good.</li>
</ul>
<p>What&#8217;s left to do:</p>
<ul>
<li>Well, honestly, not a whole Hell of a lot.</li>
<li>The next step, really, is real-world testing. We have a basic model of how our servers and clients should be configured, and it&#8217;s basically working. To really test this, we&#8217;ll need to take some actual clients from the lab and set them up to use the new system.</li>
<li>Stress testing (i.e. seeing if we can break the system, how it holds up under load, etc.) would also be good, and might be something to do over Winter break a bit, and definitely in the Summer. To do this, we&#8217;ll need to set up several client systems, and get users (guinea pigs) to do some real work on them all at the same time.</li>
<li>Once stress testing is done, if all is well, I&#8217;m pretty sure we can go ahead and implement the change. I can&#8217;t foresee any other problems.</li>
</ul>
<p>So I&#8217;m at a stopping point. There&#8217;s not much else I can do until the break, at which point I&#8217;ll be sure and post my test results.</p>
<p>Hope to see you then!</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2005/12/three-platforms-one-server-part-4-redundancy.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three Platforms, One Server Part 3: Another Quota Solution</title>
		<link>http://systemsboy.com/2005/12/three-platforms-one-server-part-3-another-quota-solution.html</link>
		<comments>http://systemsboy.com/2005/12/three-platforms-one-server-part-3-another-quota-solution.html#comments</comments>
		<pubDate>Wed, 07 Dec 2005 18:43:00 +0000</pubDate>
		<dc:creator>systemsboy</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[NIX]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Systems]]></category>
		<category><![CDATA[ThreePlatformsOneServer]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://systemsboy.com/2005/12/three-platforms-one-server-part-3-another-quota-solution/</guid>
		<description><![CDATA[Another solution to the problem of quotas occurred to me today: local quotas. Since the Windows workstation copies everything in the roaming profile from the server to the local machine at login, and uses that data as the user works, it actually makes a lot more sense for quotas to happen on the local workstation [...]]]></description>
			<content:encoded><![CDATA[<p>Another solution to <a href="http://systemsboy.com/2005/12/three-platforms-one-server-part-2.html">the problem of quotas</a> occurred to me today: local quotas. Since the Windows workstation copies everything in the roaming profile from the server to the local machine at login, and uses that data as the user works, it actually makes a lot more sense for quotas to happen on the local workstation itself. This way, rather then becoming aware of quotas at logout only, the workstation is always aware of the state of the user&#8217;s home account quota, because that quota exists on the volume where the profile actively lives.</p>
<p>Doing this also prevents the error message at logout due to exceeding a server-side quota. In this new, local-quota scenario, the user is alerted the instant he exceeds his quota and can rectify the situation immediately. But if he doesn&#8217;t, no problem. As long as the local quota and the server-side quota match, he&#8217;ll never run into the problem of being unable to save his settings to the server, since he&#8217;ll never be able to exceed his quota anyway.</p>
<p>It turns out that, unlike on Mac OS X, setting quotas for NTFS volumes is incredibly easy. In fact, it&#8217;s a simple matter of viewing the properties of the drive on which you want to set quotas.</p>
<p>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3965/1130/1600/win_quota_settings.0.jpg"><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/3965/1130/400/win_quota_settings.jpg" alt="" border="0" /></a><br /><span style="font-size:85%;"><span style="color: rgb(102, 102, 102);">Windows Quota Settings: Easy as Pie</span><br /><span style="color: rgb(102, 102, 102);">(click for larger view)</span></span></div>
<p>Here, go to the Quotas tab and click &#8220;Enable quota management&#8221; and &#8220;Deny disk space to users exceeding quota limit,&#8221; set the limits, and you&#8217;re basically done. The administrator will have no quotas, and any new user will have the quotas specified in this panel. You may, however, want to set certain users (particularly other admin or local users) to have larger quotas, or none at all. Again, exceptionally easy: Click that badly named, but ever-useful little &#8220;Quota Entries&#8230;&#8221; button and you&#8217;ll get a list of local users and their quotas.</p>
<p>
<div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3965/1130/1600/win_quota_entries.jpg"><img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/3965/1130/400/win_quota_entries.jpg" alt="" border="0" /></a><br /><span style="font-size:85%;"><span style="color: rgb(102, 102, 102);">Windows Quota Entries: Edit Specific User Quotas</span><br /><span style="color: rgb(102, 102, 102);">(click for larger view)</span></span></div>
<p>Here, you can set quotas for specific users. Initially, you&#8217;ll only see local users. But after any network user logs in, you&#8217;ll also see them listed as well.</p>
<p>The more I think about it, the more I like the idea of local Windows quotas. Using them does away with all the problems mentioned in <a href="http://systemsboy.com/2005/12/three-platforms-one-server-part-1.html">earlier</a> <a href="http://systemsboy.com/2005/12/three-platforms-one-server-part-2.html">posts</a>, and may help with a lot of the quota-related problems users have with our current, Windows-server-based system. Also, this would allow me to store all profile-related stuff in the same place for Windows as for Mac and Linux &#8212; on our home account RAID &#8212; as I&#8217;d wanted to do in the first place. And, in general, it should be much easier &#8212; or at least not too difficult &#8212; to maintain.</p>
<p>A last note on the timing of this project: I just spoke with my boss about the fact that I&#8217;m way ahead of schedule and have been thinking about implementing our unified password server over the Winter break. Lately I&#8217;ve had some misgivings about doing this, and he echoed those sentiments. His take was basically, &#8220;If it ain&#8217;t broke, don&#8217;t fix it.&#8221; Always sage advice. And as gung-ho as I am to see this working, giving it some time and implementing it over the Summer will give me more time to plan this more carefully and test it more thoroughly, so that we can iron out problems at the beginning of the school year &#8212; when students&#8217; work is not quite so in-progress &#8212; rather than at the end &#8212; when students are trying to finish their theses. This seems like a wise approach, and at this point I&#8217;m leaning toward erring on the side of caution.</p>
<p>Finally, credit where due: In-depth information on NTFS quotas can be found on <a href="http://www.microsoft.com/technet/scriptcenter/topics/win2003/quotas.mspx">this Microsoft page</a>, which is where I lifted the images in this post &#8217;cause I&#8217;m too lazy to figure out how to get good screen captures in Windows, and &#8217;cause those images described perfectly what I wanted to show. I believe the images are in the public domain and, therefore, legally usable in my post, but if I&#8217;m wrong, I apologize, and if I need to take them down, someone can let me know in the comments section.</p>
]]></content:encoded>
			<wfw:commentRss>http://systemsboy.com/2005/12/three-platforms-one-server-part-3-another-quota-solution.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/46 queries in 0.035 seconds using disk: basic
Object Caching 692/782 objects using disk: basic

Served from: systemsboy.com @ 2012-02-08 23:48:21 -->
