Monday Jul 28, 2008

Setting Up an OpenSolaris NAS Box: Father-Son Bonding - The Video

Updated!  Video transcript added below.

I just posted the write up on how my son and I built an OpenSolaris based NAS box. Now here is the video of our presentation at FROSUG.

21 mins.

Also available in iPod video format

My thanks to all who helped make this possible! 

Chase: You did an awesome job buddy! I'm so proud of you/ You took a huge step of faith to do this video and you did great. It is kinda weird to see yourself on video, but it is way cool. Great job, my friend!

Thanks to Paul, Damon, Lynn and Deirdre for all of their help making this video and the previous write up possible. "None of us is as smart as all of us." - Ken Blanchard

[NOTE: I'm reposting this entry to correct the mp4 version of the file. The original file disappeared some time yesterday. Sorry for any who tried to d/l and received a 404. --jc]

Video Transcript 

Jeff: Thank you very much, John. And thank you FROSUG for allowing us to come and show off what we've been up to for the last couple months. I’m Jeff Cheeney.

Chase: And I'm Chase.

Jeff: Outstanding. Well, we'll give a little bit of introduction on who we are.

Chase: Okay, so, I'm Chase.

Chase: I'm 11, and I'm in 5th grade, and this is my dad.

Jeff: And I am not in 5th grade, nor am I 11.

My job at Sun is the OpenSolaris community manager for the storage community. So I think about things about storage and I think about things like how to build a community and who would be interested in participating -- you know, contributing code or helping out with projects that we've got running, so that's part of what I do for Sun. And therefore, "the storage box" was an idea of ours in order to -- go ahead and advance that slide, Chase – [We] wanted to do something different, and we wanted to try some present technology and I wanted to see if we could do this as my son and I. So what else did we do ?

Chase: Um, we wanted a way to pass winter break and to learn about computers.

Jeff: Chase has this understanding that computers are for web browsing, playing games, occasionally doing spelling words-- you know, typing out spelling words a few times. And I decided that that was a little bit of limited knowledge, that we needed to teach him a little bit more. Show him a little bit of hardware, as well as a little bit of software. So that's what we're up to.

So, Chase, why don't you run us through the list of ingredients ? We could-- we could put 'em up over there as well as on the screen.

Chase: Okay.

Chase: So we have one Sun W2100z, which is Fred, big box. We have a SCSI HBA, 0ne 70-gig internal drive, one 140-gig internal drive, and we have one SCSI multipack. The multipack has six 40-gigabyte drives.

Jeff: So the thing I should mention about this is we decided we wanted to do something that we could just-- we're trying to do a demo here of what you might be able to find in your house-- Well, you may not find the multipack in your house-- but you'd find old hardware, find some stuff that you can cobble together. So what I did is I went in and raided the lab. So I went in upstairs, went into the Solaris engineering lab and said, "Okay, what's not being used ? What's on the racks that's not being used ?" So found an old 2100, had a gig of memory in it, scavenged out of some other ones that weren't being used, a couple of other DIMMs, so it could beef up the memory a little bit. Found an HBA that I could attach the multipack to, you know, so we've got a total of 200 gig on that multipack. Boy, that's real exciting. I got more hard drive space in the one computer at home than that multipack that weighs like 40 pounds and sounds like a jet engine. But nonetheless, we can do it all and we'll show you how it all works with what we've got.

The other components that were in our kit here, we're using the SXDE distribution of Solaris, so that's the Solaris Express Developer Edition. We're using the January '08 version, because that's what we had available at spring-- at winter break. And then the other thing I wanted to point out, and we'll mention this again-- there's a "getting started" guide that's available off of the Genunix wiki, and that wiki is where we do a lot of open source-- or, excuse me, the OpenSolaris collaboration. So that "getting started" guide was critical For our success and I wanna make sure we point that out. That's one of the key ingredients in our home NAS.

The other thing, I guess I should have mentioned a little sooner is, we were doing this as a recipe. We decided that people like recipes, they can identify with that format, there's ingredients, there's time, there's how you mix it all together, so we utilized that-- that methodology of this presentation.

All right, Chase.

Chase: Okay, so, we installed the hardwares first-- okay. And that took about 20 minutes or so, and then, um, we installed the SXDE, and that took forever. I was in bed when he finished it.

Jeff: Yeah, we got that started, it was about bedtime, we walked through the screens-- We'll talk about that in a minute-- But the full install takes at least a couple hours and it was getting a little past bedtime, so I finished that one up with him in bed and he got to check it out in the morning.

Chase: Then we configured Solaris, which took 40, 45 minutes.

Jeff: You know, the hope is with this presentation, as well as with that "getting started" guide, it won't take any of you 40 minutes to do the config. I was doing a lot of constructing 'cause we were going through this. I was also utilizing some of the different tools that we have in Solaris. If you're familiar with OpenSolaris, you're familiar with Solaris, you know the command line, it'll be a whole lot faster. But I was using graphical interfaces just so Chase had something interesting to look at 'cause it's kind of like a web browser, as well as just trying out some of the technologies that I hadn't utilized myself, so that's what we did.

Chase: And then we had Windows share the files from our computer to--

Jeff: The other way around, we shared it to Windows.

Chase: Yeah, nevermind.

Jeff: So we had to talk-- we had to configure Windows and yeah-- we'll get to that one. That one took a little while. All right, move on. All right, so here's the pictures of the hardware. Obviously, we-- like I said before, we used-- we used about 5 gig of memory. One of the big reasons we used that much memory is ZFS loves memory. When ZFS is active, it keeps a lot of pages in memory, so it-- that's what gives it some of its speed, but as well as it does its transactions in memory. So, because of that, we gave it a little extra memory. Okay, we gotta do your animations. Here we go, all right. All right, then what else did we do ?

Chase: We installed the SCSI HBA.

Jeff: Okay, why did we do that ?

Chase: Um...

Jeff: It's the HBA part, all right. Why did we put the HBA in ?

Chase: Um...

Jeff: So the HBA is how we connect it, the multipack, right ?

Chase: Right, yeah.

Jeff: So we had to add one of those in because we didn't have external SCSI on the 2100. Okay.

One more. You've got the flying connecter... And then we powered the whole thing up. And fortunately for us, we did all the installs of all the boards correctly and it worked ! And the thing to point out here was Chase was doing all this for the very first time. He'd never opened up a system before, he'd never seen a motherboard, never had seen a DIMM, um, never had seen an HBA. So it was a great opportunity to use grounding strips and teach him a little bit of electrical safety that we had-- at least I learned when I was in the university. Okay. So, tell us about OpenSolaris ? How hard was it to install ?

Chase: Not. All we did was follow the screens.

Jeff: So, like, what kind of questions did it ask you ? What did you have to do while you were installing ?

Chase: You made the users--

Jeff: Yeah, and before that ?

Chase: Passwords.

Jeff: Made some passwords, time zones...

Chase: Yeah.

Jeff: Did you have any trouble doing that ?

Chase: Nope.

Jeff: And that took how long ?

Chase: I don't know, five minutes ?

Jeff: Five, ten minutes, that was it.

Chase: Yeah.

Jeff: That's the point. Following the graphical installer was pretty trivial. We just walked right through it, didn't have any issues at all. So that was the easy part. The long part was getting it installed, and you didn't have to do that. All right, so now, we've got the machine built, we've got an operating system on it, what are we gonna do now ?

Chase: Configure Solaris.

Jeff: There you go, and what do we have to do ?

Chase: We have to read the "getting started" book.

Jeff: Again. Teaching-- read the directions. We're trying at least, to learn to read the directions. So, that's what we did. We read the directions, and then what did we have to do ?

Chase: Then we created the local users.

Jeff: Okay, what did we create ?

Chase: We created media.

Jeff: Right, why did we create media ?

Chase: So we could have all our files from our own computer on that one.

Jeff: Okay, so that's who's gonna own the files on the-- on fred, okay.

Chase: Then we have edmund ?

Jeff: We have edmund, right.

Chase: And root.

Jeff: Yeah, root gets created by default, so we already got that one. All right, so we got our users, and we got everything installed. Now what's up ?

Chase: Now you have to combine all the disks on the SCSI to make a ZFS pool.

Jeff: Right, so what does that mean ? What did we do ?

Chase: It means, um, you follow the screens again

Chase: To get to the place where you can combine the six disks in the SCSI to make a ZFS.

Jeff: Yep, so we took-- and the thing that was-- That was fun for me, was walking through the graphical interface that I knew existed, and the only reason I knew it existed was because I managed the engineer who wrote it at the time, but I had never played with it. And I kept hearing about how wonderful it was. So I gave it a shot, and you bring up a web browser, point it to a specific port and you've got a graphical interface. You can pick what kind of configuration you want for ZFS. It automatically defines all of the drives on the system, whether they're being used for something or not. You collect-- you select what kind of pool we wanted, so in our case, we created a single-parity raid-z. Added the drives, clicked "done," showed us the command that we could've typed, which is pretty straightforward as well. And how fast did it create this ?

Chase: Pretty quick.

Jeff: How fast ?

Chase: I don't know.

Jeff: Like-- that fast.

Chase: Yeah.

Jeff: You didn't even have to think. It really-- it is snap-a-finger fast. All right, so we created the pool…

Chase: Right.

Jeff: And then what are we gonna have to do ?

Chase: The file systems.

Jeff: Okay, what are the file systems for ?

Chase: So we could share.

Jeff: Right, and that's where we can put different kinds of files, right ?

Chase: Right.

Jeff: So what we did is we went through and created three different file systems, all in our pool. We created-- we'll show these in a couple minutes-- se created one for our movies, one for our music and one for our pictures, xo that's what they are. And we set some different properties on those as well, so knowing that our music might be compressible, we turned compression on on that file system, but we didn't do it on the movies because movies are typically pretty well-compressed and so it would be just wasted cycles to try to recompress the music. And so we did some tweaking like that of the different file systems. And we did-- again, we did all that through the browser interface. That was the time where you actually had to do some typing.

Chase: Yes.

Jeff: Chase is still learning how to type, so this one took us a little while. So what did we do ?

Chase: We configured CIFS-- c-i-f-s ?

Jeff: CIFS, right.

And what is CIFS used for ?

Chase: Isn't it used for sharing ?

Jeff: That's right, it shares our files from our OpenSolaris box to...

Chase: Our regular computer.

Jeff: Our regular computer-- In this case, it's a Windows box. Don't you love this ? So, yes, we shared it to our regular computer. All right, and so how do we do that, we turned it on...

Chase: Yeah.

Jeff: So we used what command ?

Chase: Um...

Jeff: You can read it off the slide.

Chase: "S-v-c-a-d-m enable."

Jeff: Right, so we enabled that service, the svc service, we enabled it, and then we did the join. So the join step right in there is-- at our house, i've created a workgroup for all of our computers and our workgroup is called "central," that was all that we had, so I used “smb join,” which is the-- Smb is the file-sharing protocol administration, I'm joining the centralized-- the central workgroup. So that was a critical step in that whole process, To make sure that we make-- that we could share our files in that workgroup and that we set up the CIFS server to be in workgroup mode versus another mode, like active directory, okay ? So then what did we do ?

Chase: We shared the file systems ?

Jeff: Mm-hmm. And how did we tell ZFS that we wanted to share them ?

Chase: Um, we did "sharesmb" and then we did the name of the file.

Jeff: Right. So this is one of the tricks that we had to pull out of the guide that I wouldn't have figured out before and honestly, this is one of the places where I really struggled with the Windows configuration and getting Solaris to work. This is now in the "getting started guide" as well as on this presentation and it'll be on my blog in a couple days. but-- as well as Doug McCallum put this on his blog. So "sharesmb" is the command-- is the subcommand to ZFS to say, "I wanna share this file with the CIFS protocol, I wanna share it as an smb share versus an nfs share." And then what you can do is you can name that share So that when Windows is browsing your OpenSolaris box, you'll have a name associated with that share. What was happening is, without that specific name in there-- so in our case, the very first line, "movies"-- the share was being-- it was being exported as the "zpool" name. So in our case, "mediapool," with an underscore and then the file system name. So the "mediapool, underscore, movies." And it wasn't obvious because when you went into the Windows share browser, it didn't show up that way, and so I really struggled with, "How do I configure this ?" It took me a while to read through all of the discussion lists, which are, you know, as you guys all probably know, it's very rich with information.

So found it in there, dug it up, It's now in the-- excuse me-- "getting started" guide. That was one of those critical pieces of information that took a while to figure out. So we share our three different file systems, gave 'em unique names, And we've got some mixed case in there as well, so we can share the different case sensitivities. And then we had to make our files writable to... Media, our local user. We had created these all as root so they, by default, get mounted and shared as root so we had to go ahead and change the permissions on those. So we did that.

Jim: So Jeff, is that--

Jeff: Yeah, just one second, Jim. If we could get a mic to you so you can ask a question so we can get it on tape, that would be great.

Jim: So, jeff, that command, I kind of missed it. So it's not case-sensitive, I guess ? The ZFS share command ?Yeah, because if you have the movies with a capital "m" and then you have a lowercase--

Jeff: It is case-sensitive. So you can share it with different cases.

Jim: Oh, okay.

Jeff: And actually, you bring up a great point there, Jim, and I should have put this on the slides and I'll make sure I update my blog with this. There is another ZFS command that you need to use to tell ZFS to accept case sensitivity. So ZFS said "case-sensitive equals on," with a pool, and then it'll be a-- that property will be inherited across all of the-- across all the file systems. Thanks for that reminder, jim.

Great, now like I said, the tricky part, getting Windows-- getting the “regular” computer to talk to the OpenSolaris computer. We're gonna change that, Chase. OpenSolaris is the regular one, that's the irregular.

Chase: I like the regular one.

Jeff: So it's fred and not fred. So, again, this was tricky. This took-- once we figured it out, once we got the guide, it all goes fairly quickly, but learning, this was a big learning curve for me. I'm not a Windows guy. I'm a Solaris guy. I've been doing Solaris for 20 plus years, and-- Or, right at 20 years. So what we had to do is, in the Solaris developer express build that we had, our CIFS server on OpenSolaris didn't export things in a browsable mode, so as some of us are accustomed to in Windows, you can go to a machine and browse that machine and you can see all of the shares that it's offering out.

In the build that we're currently running on this machine, that didn't work, so you had to explicitly-- you had to explicitly mount a drive. So you had to say, "well, I mount-- in this case, drive "z"-- and I want it to be this explicit share," and you have to name it. In subsequent builds of OpenSolaris, the builds that are available now that you can go out and download, browsing is available, so you can browse and mount those shares with just a single click.

So in this-- this is the case where you'll see, Fred is our machine name and our share, just as we talked about before, it's capital, It's Movies with a capital "m." The other big thing, it took us a while-- It took me a while to figure out because I didn't read-- I didn't read the guide as thoroughly as Chase did and he was in bed at that point.

When you go to mount that share, the access privileges have to match the OpenSolaris box, not your Windows box. So in this case, I was trying to mount these shares as "owner," and "owner" doesn't exist on my OpenSolaris box. So the critical piece here is that you'll notice on that mapped network drive-- this is Windows XP -- I connect as a different user. You click that different user and then you put the credentials in, login and password, for the OpenSolaris machine.

So in our case, we had created an account media, that's what we're gonna be mounting the shares as. So that's another little trick. It escaped me for the longest time and it's an absolute critical step. And with that, we're sharing files. We're reading and writing files back and forth between the machines, and we're up and running. And that really-- I try to distill all of my learning down into these simple, four, five slides. And that's how straightforward it is once you get through the learning curve. So hopefully, i've done some things to help you all get through the learning curve and you can try this out as well.

So just like any good recipe, you gotta look for variations. How do you vary this recipe ? How do you make it tailored to your needs ? So one of the things we can do--

Chase: Get bigger disks.

Jeff: Get a lot bigger disks. So we each have two half-terabyte drives now that we're gonna be putting in the box, we're gonna try sata connections. We're gonna see if we can get the onboard sata on the w2100 to talk to those-- to talk to those half-terabyte drives, so that's gonna be our next project.

One of the other things we wanna do is, OpenSolaris has embedded in it the protocol, "icap" and in conjunction with icap, we have the support to be able to catch file events. So why do you wanna do this ? Well, antivirus is a great example of this. So there's a program out there, “clamav"-- and it's an open-source program and you can find it at this link-- that will scan files on OpenSolaris, it'll scan Windows files on OpenSolaris for known viruses. You can download virus definitions and it will be automatically scanning. The really cool thing that happens is, every time ZFS gets a write or it gets a new file create, ZFS stops the operation, hands it over to the scanning engine and lets the scanning engine proceed first. And it won't-- it won't commit that file to disk until it knows that it's clean. So it's a really cool thing-- or cool feature, because now I can run virus-scanning as files are being created on my OpenSolaris box, which has a whole lot more processing power than my "irregular" computer. And I don't have to worry as much about the viruses that somebody might be downloading onto the computer.

Chase: It's called e-mail.

Jeff: Yeah, e-mailing viruses, that's right. One of the other things we wanna do is we wanna take this box and instead of having it sitting in a closet somewhere, I'm gonna put it somewhere else in the house. And with sunray technology as well as with VirtualBox, I want to have an “irregular” box inside of Solaris. So if the kids wanted to play their games on Windows, we could do that, we could use our VirtualBox software, which, if you guys don't know about VirtualBox, we probably should come back and have a fun talk about that because it's just a lot of fun. It's the vmware for-- that actually runs on OpenSolaris, OpenSolaris is the host.

So those are a couple of things that we're thinking about doing, and obviously any other things that might be in your imaginations as well. All right, and we've gotta give credit where credit is due.

Jeff & Chase: The bibliographies.

Jeff: He was the one who told me, "you gotta have a bibliography." He's been writing too many research reports. So here's our sources, these are the places that we have referenced heavily to get this working.

The CIFS server project page on OpenSolaris was a great resource for us. Doug McCallum, I'll mention Doug again, he has a wonderful blog that is very detailed, full of rich reference material on how to use the "share adm" command. Just a fabulous reference,

And then those two wiki pages that we referenced as well. And I probably should have put on there the OpenSolaris storage discuss forum. That's where all of the discussions, the tips and tricks for this project are going on, so that's OpenSolaris. The storage discuss on OpenSolaris.

So that's it ! We're done. In all, it was a fun thing. Did you have fun ?

Chase: Yeah.

Jeff: You learned a couple things ?

Chase: Yeah.

Jeff: You might wanna play with it a little bit more ?

Chase: Mm-hmm.

Jeff: All right, all right. So with that, if you guys have got any questions, please do ask for a microphone since we are trying to record this, it is live. But that's what we did, hope you enjoyed it ! Great ! Thank you.

Wednesday May 14, 2008

more home NAS and ZFS boot!

Things have been crazy over the past few weeks. There have been so many wonderful things going on (like Community 1 and the OpenSolaris 2008.05 launch) and I've been so busy I have neglected my blog and audience.

Many of you took some time to watch the video of my experience building a home NAS box. If you are interested in such things I would highly recommend taking a look at Simon Breden's blog on his experience. Not only does he cover the configuration, but also the rational on why he chose his hardware and ZFS.

Speaking of ZFS, I would like to publicly congratulate the ZFS boot/ install team for their recent putback of the ZFS boot project. Lori, George, Eric, Mark, Lin, Eric and others put in well over 10,000 hours of effort (much of which was in the last 5 months) to make this project a reality. Back in build 88 the ZFS boot project was putback and this enable SPARC systems to use ZFS as the root file system. Then just this morning the install portion was putback into build 90. Again this putback enables systems to be installed with the legacy installer and use the features like LiveUpgrade and JumpStart for installation. The ZFS boot page has an FAQ and other useful documents on this project. Way to go team!!!


Monday Apr 28, 2008

Setting Up an OpenSolaris NAS Box: Father-Son Bonding

Over the winter break, my son and I spent some quality time together and we created a little home NAS server. We had a great time and we both learned a lot. I learned how much I love OpenSolaris (and how little I know about Windows) and my son got a glimpse of what I do at work. I had forgotten how important it is for 11 year olds to know what their dads do. My son also learned a little about computer hardware and how to use a UNIX command line.

This post details what we did to get our NAS box up and running as well as some of the challenges we faced.

What's the Problem?

We took on this challenge primarily as a learning experience, but we also wanted to solve a real problem. We have a few Windows XP machines at home and there is always some type of contention with the music and homework stored on one of the machines. Typically, the contention is that I'm working at home (on my OpenSolaris laptop) using the monitor attached to the “primary” Windows machine and the rest of the family is trying to use the Windows laptop to listen to music or get a homework file. A while back, I created a Windows Share on the “primary” desktop, but firewalls and other problems kept making the share go away. So, I decided that with the new CIFS server in OpenSolaris, it was a great time to use ZFS and CIFS to create a home NAS box and replace the Windows share machine.

Step 1: Getting the Hardware

To get started, I had to find hardware for the NAS box. The good thing about working for Sun is that there is always old hardware lying around. When I entered our lab, I quickly found a stack of unused multipacks. While they were pretty old and unexciting (6 x 40GB drives), they would provide a great way to use ZFS and I didn't need much storage, yet. The other thing I found was a recently retired W2100Z workstation. This is a great platform with dual 64-bit AMD processors, an internal SCSI drive, and a place to put 3 more drives. I also found some DIMMs for the W2100Z and an extra SCSI card. Sweet! This was everything we needed to get started.

Step 2: Assembling the Hardware

Since my son had never seen the inside of a computer, we started by opening up the W2100Z case and walking through the hardware components. “Here's a CPU, there's a controller, that's the power supply”... stuff like that. Also, I did a quick lesson about static electricity. There is a lot of static in January in Colorado , so I showed him how to “attach” himself to the computer with a static strip and get started with the hardware upgrade.

I explained we needed the SCSI card to attach to the multipack. I also explained that the extra memory would be used to help ZFS work better. The whole lesson and hardware installation took only 20 minutes. Then, it was time to install OpenSolaris.

Step 3: Installing OpenSolaris SXDE 1/08

Preparing to install OpenSolaris was quite simple and quick (5 minutes with explanations):

  • Download and burn DVD

  • Insert the DVD

  • Boot the workstation

  • Answer the questions

  • Click the “ Finish” button

Then came the actual installation. My son didn't this part of the project, because he had to go to bed before it finished. The install took about 1.5 hours and our new server was up and running OpenSolaris when my son woke up the next morning. Now all we had to do was configure everything.

Step 4: Configuring OpenSolaris

I always try to be a good dad and teach my children the lessons that took me a while to learn. One of those lessons is that there are smart people who can be helpful to you, and you should build on their knowledge whenever possible. For this project, the smart people were the developers of the OpenSolaris CIFS server and ZFS features. The distillation of their knowledge is found in the CIFS Getting Started Guide. This guide was invaluable and provided us everything we needed to get started. So, I suggest you also start with this guide as well.

Create the Users

To begin with, we needed to create a few different users. At install time, we created our root user account and after this we needed to have a “privileged” regular user and a user that could own the files. We selected the userids admin and media for these purposes. To add the users, we used the “Users and Groups” action on the Administration section of the Start Menu.

Create a Storage Pool

To get our server up and serving data, we needed to configure the storage. To do this, we used the ZFS GUI by just pointing a browser to https://<hostname>:6789/zfs and logging in as a user with root permissions. This graphical interface provides the ability to see all of the storage attached to your system and how it is being used. We selected all of the drives on the multipack and created a single RAIDZ1 pool called mediapool.

Create the File Systems

After creating a ZFS pool with the ZFS GUI, we switched to a terminal window to check the status of the newly created pool:

# zfs list
mediapool 144K 165G 29.9K /mediapool

Then, we created the file systems:

# zfs create -o casesensitivity=mixed mediapool/music
# zfs create -o casesensitivity=mixed mediapool/photos
# zfs create -o casesensitivity=mixed mediapool/movies

We decided to set the ZFS property casesensitivity=mixed to allow us to use mixed cases for the files. This is a very important step when sharing files with Windows. If you don't do this, all of the file names will get set to all upper case, which is very hard to read.

Configure CIFS

After creating the file systems, we started the CIFS service:

# svcadm enable -r smb/server
# smbadm join -w CENTRAL

Since we were working on our home systems and didn't have a fancy domain controller, we used the workgroup mode for sharing the files. I had previously set our home workgroup to CENTRAL, which is reflected in the join command. In most cases. you would keep the workgroup set to WORKGROUP.

Set Up Authentication

We also needed to update the OpenSolaris password system to configure the CIFS server to use PAM (pluggable authentication module) authentication. We did this using the following mystical command:

# echo "other password required nowarn" >> /etc/pam.conf

Additionally, after entering the above command, we had to reset the passwords for all users who would be using the CIFS authentication. For our situation, it was only one user:

# passwd media

That did the trick and we were ready to start sharing the file systems we created.

Share File Systems

We were getting closer to being able to use our new server. CIFS was enabled, the file systems were created, and we just needed to get them shared:

# zfs set sharesmb=name=Movies mediapool/movies
# zfs set sharesmb=name=Music mediapool/music
# zfs set sharesmb=name=photos mediapool/photos

We could have used a single set command with the sharesmb=on option, but we wanted useful names on our Windows' machines. So, to avoid any ambiguous or long share names, we explicitly set them. This was just one more of the little tricks and helpful tips from the CIFS Getting Started Guide and the discussion forums.

Set File System Permissions

For our last step, all of the files needed to be owned by our primary share user:

# chown -R media /mediapool

After this last step, we were done configuring OpenSolaris on our NAS box.

Step 5: Configuring Windows

Now, the real fun began. So far, it took only 2 hours to assemble the server hardware, install the OS, and configure the storage, and 90 minutes of that was the OpenSolaris installation. We were feeling pretty good about spending only 30 minutes to get our file system configured and shared. Then, we had to configure Windows.

I realized very quickly that while using a Windows XP system for e-mail and web browsing is pretty simple, there is some complexity in sharing files. I scoured web sites and discussion forums and learned that sharing files with CIFS is different than sharing file with NFS.

I'm used to having a filer export an NFS file system, which provides the ability to browse the share and then verify the permissions. Well, Windows is the same, but the permissions thing is different. Or, so I thought.

When mounting a CIFS share from a OpenSolaris box, you must authenticate to that server. This point is critical. The authentication also has to be from the perspective of the server and not the client.

To make the share on the windows client work, we needed to do the following:

  1. Map a windows drive with the “Folder” path of \\\\< OpenSolaris_Server >\\<sharename>

  2. Select the Connect as different user name link and use the user name and password from the OpenSolaris server.

For our machine, the “Folder” path was \\\\PHRED\\\\Movies and the user name was media.

Making this simple discovery took about 3 days, but we finally had a way for all of our Windows machines to access a shared file system on our new OpenSolaris NAS box.

Variations on a Theme

My son and I had a great time with this exercise. We had a lot of fun playing with the hardware and we both learned a great deal. We are still playing with the server and are now looking at adding some new pieces:

  • Larger drives – we'll be adding some 500GB SATA drives, using the onboard SATA controller

  • Virus scanning – we're looking into using clamAV to do our onboard virus scanning. The directions on the Genunix wiki look pretty straight forward.

Thanks and References

This post would not be complete with out us taking the time to thank those who helped us out along the way. Here are a list of web sites, blogs, and discussion lists that were invaluable.

Also, thanks to those who blazed the trail before us.

Wednesday Dec 05, 2007

New OpenSolaris Project: VSCAN Service

Another project has gone live in the world of OpenSolaris Storage. This time it is the VSCAN service. The project is live and the first pass of the code is available. This project supports the IEFT ICAP protocol and allows for an off board virus scan engine to be called when ever a file is modified.

The combination of this project and the CIFS server project you can now safely store your Windows files on an  OpenSolaris server,  using ZFS, and have they scanned for viruses.

What will this team think up next? Maybe a way to backup this files in a standard way??



Here I am writing about the OS I love. Trying to show other people how cool the innovations are in [Open]Solaris.


« July 2016

No bookmarks in folder

OpenSolaris Storage Links