|Home | Gallery | Stats | Downloads | Links | Scripts | Fuel Stats | Wiki | RSS|
Putty. Like the Seinfeld character.-- Joe Tierney Add quote.
I've been working on a project at work that has kept me pretty busy this week, it involves shared storage and computing clusters which has me pretty geeked out. I must say that I've learned A LOT about Solaris clustering, iSCSI, and disk replication, throw ZFS with Xen on top of that and things get pretty complicated.
Here's a diagram of the current system I have built.
With this setup the file server has ZFS pools that replicate each disk over to the secondary, the concept is the same as a local disk mirror. I've tested out a few different fail over situations which have worked so far, the one wrench in the works is that Linux doesn't like having iSCSI targets moved around while the device is open. This means that the xen server must shut down all running domains, take the volume offline, and then restart everything. Naturally this is not desirable in production, I will be testing out a Solaris server running xVM to see how that handles moving iSCSI targets later this week.
Virtualization is a big trend in computing right now and Solaris offers some very nice options of its own. One of these features is zones and branded zones which allow non-native operating systems to be installed into a container, this is similar to other technologies like OpenVZ and linux-vserver but zones add the power of ZFS as well.
I started reading the excellent article on Blastwave about setting up zones in Solaris 10 and within an hour I had everything finished with a Linux branded zone running CentOS 3.9. Here's a quick run down on how to accomplish this.
First create a file system to contain your zones:
zfs create -o mountpoint=/zone rpool/zone
After this is done you need to create the zone and install it, these are two separate processes.
zonecfg -z lx-zone lx-zone: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:zone1> create zonecfg:zone1> set zonepath=/zone/1 zonecfg:zone1> set autoboot=true zonecfg:zone1> set brand=lx zonecfg:zone1> add net zonecfg:zone1:net> set address=192.168.35.210/24 zonecfg:zone1:net> set physical=hme1 zonecfg:zone1:net> end zonecfg:zone1> verify zonecfg:zone1> commit zonecfg:zone1> ^D
For the install you will need the iso images or a tar ball of a file system, you also need to create a new distro file as Solaris only goes up to CentOS 3.8 right now.
wget http://mirrors.example.com/CentOS/3.9/isos/i386/CentOS-3.9-i386-bin1of3.iso wget http://mirrors.example.com/CentOS/3.9/isos/i386/CentOS-3.9-i386-bin2of3.iso wget http://mirrors.example.com/CentOS/3.9/isos/i386/CentOS-3.9-i386-bin3of3.iso cd /usr/lib/brand/lx/distros/ cp centos38.distro centos39.distro
Edit this file and change the serial to "1183469235.99" and the version to "3.9"
Now install the OS
zoneadm -z lx-zone install -d /export/centos_3.9/ core
Check the results:
bash-2.05b# zoneadm list -vc ID NAME STATUS PATH 0 global running / - lx-zone installed /zone/1
The STATUS is now "installed".
Boot the environment:
bash-2.05b# zoneadm -z lx-zone boot bash-2.05b# zoneadm list -vc ID NAME STATUS PATH 0 global running / 2 lx-zone running /zone/1 bash-2.05b# ping 192.168.35.210 192.168.35.210 is alive
Now you can access the zone using zlogin:
# zlogin -C -e\@ lx-zone [Connected to zone 'lx-zone' console] CentOS release 3.9 (Final) Kernel 2.4.21 on an i686 lx-zone login: -bash-2.05b# uname -a Linux lx-zone 2.4.21 BrandZ fake linux i686 i686 i386 GNU/Linux
As you can see zones are very powerful and allow a system to be divided up as you see fit. Each zone is completely isolated from the others and has its own cpu limits, process lists, network stack, etc. Even if a zone is completely wiped out it will not affect your global zone.
I've recently switched to OpenSolaris on my desktop at work and I just wanted to write a bit about my experiences.
Installing the OS is about the same as any other unix system. Boot the CD, enter a host name, root password and select the drive you want to install to. One nice thing is that you can set up a ZFS mirror out of the box, if not you can easily mirror your pool later without having to mess around too much, one command takes care of it.
All of the hardware on my computer was detected and loaded the proper drivers without me having to intervene. As long as your hardware is listed on the compatibility list you'll be fine. Setting up X with multiple monitor support is also very easy, just run the Nvidia settings app and configure your screens.
One issue I did have is that mp3 support isn't included as part of the default install, you have to download the codec package from Fluendo if you want mp3 support in totem or anything else that uses the gstreamer backend. Flash also requires a manual install, the plugin is pretty easy to set up however.
After using the system for a few weeks I'd have to say I'm impressed. If you have any experience at all with running a Linux desktop it shouldn't take long to adjust and you'll have access to zfs and dtrace which simply don't have equivalents in Linux. In short, give it a try, you might like it.
Since the C-SPAN web site crashes firefox you need to use Real Player by itself to watch live streams, just use this URL.
Bad C-SPAN, no donut.