Wednesday, March 30, 2011

MacOSX: ZFS Update

MacOSX: ZFS Update


The Apple Macintosh Operating System was built around the Hierarchal File System (HFS.) The file system was upgraded from 16 bits to 32 bits and renamed HFS+ while several other operating feature were also added. The market has been clamoring for a real storage solution, Apple briefly released a ZFS beta, and finally a new commercial company is doing the heavy lifting of providing MacOSX a reasonably current ZFS implementation.

The Zettabyte File System (ZFS) was built by Sun in 2004 on top of a 128 bit base, differentiating it from competing (16 and 32 bit) platforms. Sun open-sourced ZFS in 2005.

In 2006, a skunkworks operation at Apple started to port ZFS to MacOSX by Chris Emura, (Apple Filesystem Development Manager) and Don Brady(Apple filesystem and OS engineer.) Apple started down the road of adopting of ZFS for MacOSX Server "Leopard" 10.5 in 2007. Mac OSX Server "Snow Leopard" 10.6 was supposed to have full ZFS support, but ZFS was later canceled.

After working on the HFS+ and former Apple ZFS port, 20 year kernel and file system veteran Don Brady announced the formation of corporation "Ten's Complement" to finally bring ZFS to MaxOSX. The intention is to use the Illumos source code base to provide the much needed (and much desired) functionality to MacOSX.

The MacZFS group offered a package download for MacZFS-74.1.0 on March 5, 2011.

Helpful Links:

Ziff-Davis industry reporter Robin Harris cearly outlines the benefits for ZFS under MacOSX. For more information on MacOSX, ZFS, and it's Illumos source base, see the following.
Network Management Connection:
Network management is all about tying a lot of (remote) data together into a large database for easy investigation. ZFS is the only modern reliable file and volume management system in the open sourced and commercial world at this point. MacOSX may be one of the most simple, secure, and robust user facing UNIX based systems in the world at this point.

The marriage of the two (ZFS and MacOSX) offer tremendous possibilities to tie together robust user end experience (through appliances such as iPhone, iPod Touch, and iPad families) with robust back-end processing (virtually virus-proof MacOSX and ZFS.)

Thursday, March 24, 2011

2011 March 20-36: Articles of Interest

Security, Networking, and Industry Articles of Interest

2011-03-16 - Microsoft malware removal tool takes out Public Enemy No. 4
Microsoft finally used its Malicious Software Removal Tool to remove the fourth-biggest threat in automated program's history dating back to at least 2005.

2011-03-18 - RSA breach leaks data for hacking SecurID tokens
'Extremely sophisicated' attack targets 2-factor auth

2011-03-20 - AT&T acquires T-Mobile USA from Deutsche Telekom for $39bn
There was one GSM network, to rule them all...

2011-03-23 - Mac OS X daddy quits Apple
Bertrand Serlet, Apple’s senior vice president of Mac software engineering and the man who played a lead role in the development of Mac OS X, is leaving the company.

2011-03-23 - 'Iranian' attackers forge Google's Gmail credentials
Skype, Microsoft, Yahoo, Mozilla also targeted.

Extremely sophisticated hackers, possibly from the Iranian government or another state-sponsored actor, broke into the servers of a web authentication authority and counterfeited certificates for Google mail and six other sensitive addresses, the CEO of Comodo said

2011-03-23 - Oracle announced all software development stopped on Intel's Itanium CPU.
Red Hat was the first to pull the plug on Itanium, saying back in December 2009 that its Enterprise Linux 6 operating system, which was released last summer, would not be supported on Itanium processors.

Microsoft followed suit in April 2010, saying that Windows Server 2008 R2 and SQL Server 2008 R2 would be the final releases supported on Itanium.

2011-03-24 - Apple Mac OS X: ten years old today
OS X was the product of Apple's 1996 purchase of NeXT, a move that not only saw the acquisition of a modern operating system, but also the return of its co-founder, Steve Jobs, to the company.

Tuesday, March 22, 2011

Detecting & Obscuring Tethering

Detecting & Obscuring Tethering

Network providers have traditionally offered the capability of leveraging the wireless network for portable computers. Recently, certain wireless devices had been omitted from this capability called Tethering. The Apple iPhone may leverage a particular TCP/IP feature called Time To Live (TTL) which may be leveraged to track tethering.

Enter Julian 3:
A user who refers to himself as "Julian 3" who reads "The Register" in the UK posted a comment indicating one way which a mobile device may be differentiated from other mobile devices, as well as how to determine if that device is performing tethering. Julian 3 explains TTL in this fashion:
All IP packets have something called a TTL associated with them. It stands for Time To Live. Every "hop" along the network from one router to the next reduces the TTL by one. When it reaches 0, the packet is dropped. This was introduced to keep routing problems from overloading the network. If for example, by some error a packet was going around in a circular path, the TTL would eventually reach 0 and prevent a packet storm.
Julilan 3 suggests that the iPhone uses a TTL of 64 and packets from tethered devices may normally have a different TTL from the packets which originate from their devices. After the packets proceed through the iPhone, acting as a gateway, the TTL in the packet will decrease by one.

Suggested Obfuscation:

Julian 3 suggests the following process to obscure Windows clients.
Apple uses a TTL of 64 for the iPhone, by the way. So change the TTL on your computer to "65" and there should be no problem. Here's how to do it:

1. Click Start - Search and type “regedit”. This launches the WIndows Registry.

2. In the registry, navigate to the following registry key [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] HKEY_LOCAL_MACHINE

3. In the right pane, right-click and select New – DWORD (32-bit value) and set its name as "DefaultTTL" and set its value anything between 0 and 255. The value sets the number of Hops or links the packet traverses before being discarded.
Network Management Connection:
This process of detecting a tethered connection is very network centric. Whether or not a network carrier uses this particular process for tethering is really not important. It does demonstrate that various signatures from a client can be used to easily determine characteristics about the source system.

There are plenty of other mechanisms which can be used to identify the source or destination of traffic, including simple things like HTTP headers. Fully obscuring the source system is far more complex than this.

Solaris 11: Ping Enhancement

[nuclear sub]

The TCP/IP network has become the ubiquitous protocol suite for communicating world wide between systems. The Internet Control Management Protocol (ICMP) is used to regulate the communications over the network. A common command leveraging ICMP for testing of connectivity is Ping. The Ping command is implemented with different options depending on the system platform. Solaris 11 adds a new backwards-compatibility feature to Ping.

When Solaris was first implemented, it was based upon BSD UNIX. The default behavior was to provide multiple packets sent on a regular interval. With the merger of Solaris with AT&T UNIX, the default behavior became radically different: the sending of a single packet with a response. Solaris 11 is bridging the gap between the two behaviors.

Solaris 11:
John Beck from Oracle added a feature to Ping in Solaris 11.
So in build 33 of Solaris 11 I added a check: if the variable MACHINE_THAT_GOES_PING is set in the environment to a non-null value, then ping will go into "statistics" mode as if the -s flag had been provided.
If a non-null variable "MACHINE_THAT_GOES_PING" is set in the environment, Ping will automatically enter "statistics" mode, where multiple packets are sent continuously, until an interrupt is received.

For the casual interactive user, this is a tremendous benefit.

Scripts which check for connectivity [using ping] prior engaging a higher layer network protocol command [such as ssh] may possibly be impacted by naive user community who implements this environment variable in a profile.

If a user decides to implement the "MACHINE_THAT_GOES_PING" environment variable, it might be a wise decision to check for a tty before setting the variable.

If a user wishes to leverage this feature by adding the environment to a profile, the following lines may be beneficial in suppressing the behavior in some automated scripts running in cron and at jobs.
# check for tty prior enabling automatic statistics
tty | grep "not a tty" >/dev/null || {

Friday, March 18, 2011

Joyent: Sun Out of the Clouds

Joyent: Sun Out of the Clouds

Joyent is offering a special to Solaris users:
  • Open Solaris based SmartMachines
Open Solaris SmartMachines outperform Amazon EC2 on basic metrics:
  • CPU is 5x faster
  • Disc I/O is 14x faster
  • Memory I/O 3x faster
Build high performance web applications with a 1GB SmartMachine for just $45 per month (special price offered on a new machine April 15th, 2011 and will remain in effect until the machine is decomissioned.

After the offer expires, the price will be a normal cost of $80 per month higher.)

Solaris 11 Ecosystem for SysAdmins

Solaris 11 Ecosystem for SysAdmins

On the Sun Blogs, UnixMan posted a short interview with Solaris Engineers and Solaris Architects.
Solaris 11 Express came out in November 2010, with the Solaris 11 release being imminent - it is a vehicle for getting introduced to technologies that are shaping the Solaris ecosystem going forward. There are technologies that constitute the fundamental basis for value-rich stack present in Oracle products, by Oracle as well as by a number of customers *today*. Here is a great video describing the relevance with specific examples to be aware of, particularly how new architecture provides an integrated system and offers simplified administration. Rick Ramsey interviews Markus Flierl, Liane Praza and Dan Price from core Solaris Engineering.

This is a wonderful introduction to Solaris 11!

Protect Your Applications with Oracle Solaris Security

Protect Your Applications with Oracle Solaris Security

A short tutorial introducing a developer or administrator to Solaris 11 Security features.
Features covered include:
  • Privileges
  • RBAC (Rights and Authorizations)
  • Integration with SMF
These basic features exist in Solaris 10 as well as Solaris 11, but this lab is targeted at Solaris 11 platform.

Tuesday, March 15, 2011

Sun V100 error: Fast Data Access MMU Miss

This post is an alternative method to:

After replacing or removing the CD/DVD-ROM on a Sun V100, it's likely you'll get an odd/annoying
boot sequence error:

Fast Data Access MMU Miss

You'll need to access the OpenBOOT PROM (OBP) to resolve this issue. Usually the easiest way is:

# sync; sync; init 0 (if you're able to do this, go to the bottom of post for OBP commands to resolve the MMU error)

Lacking the ability to reach a normal command line, ensure you are connected to the server's LOM (Lights Out Management) port with a console cable, and use the LOM break key-sequence, an octothorpe followed by a period at any time:



This will immediately drop you into the LOM level. (If the screen is blank after the break sequence, press the enter key and the LOM prompt should appear.) LOM is a low level system; the higher level OS is still running and must be shut down:

lom> poweroff

We'll now temporarily alter the boot sequence:

lom> bootmode forth

We're now ready to boot into the OBP:

lom> poweron

You're at the OBP (OpenBOOT was Sun's version of the FORTH operating system thus the odd bootmode command) famous for its OK prompt and postfix aka Reverse Polish Notation (RPN) of equations. If you're ever in doubt whether you're using FORTH or that it's functioning correctly, type:

ok 3 2 + .

and it will return:


You're ready to correct the problematic setting:

ok setenv auto-boot? false


ok reset-all

The new setting is saved and subsequent boots will not have a Fast Data Access MMU Miss error.

TRENDnet TU-S9 USB to RS-232/DB-9 serial converter

Netbooks have many virtues for use in the server room, they're easily portable with the potential of long battery times, have a keyboard & screen, and their toy-store class processors can run PuTTY on Windows XP/7. All that's lacking is a RS-232 port to plug a console cable into, an issue you'll find on almost all laptops currently manufactured. In laptop makers' defense, the RS-232 ports were a significant drain on battery life even when not in use and the removal makes sense for most users as the consumer computing world has moved onto USB, wi-fi, & etc but that does not help us.

The most sensible option for communication between current consumer hardware and the servers, network boxes and telecom equipment that commonly use console cables is a USB to serial converter. There's a catch as serial and USB don't always work together well [wikipedia explains further]. Knowing this I searched carefully to find a solution to my server room needs and decided on the TRENDnet TU-S9.

I've had it for the last 5 months and used it on various Sun and Cisco equipment with no issues.

Intro to Erlang

Overview of Erlang:

From wikipedia[15 Mar 2011]:
Erlang is a general-purpose concurrent, garbage-collected programming language and runtime system. The sequential subset of Erlang is a functional language, with strict evaluation, single assignment, and dynamic typing. For concurrency it follows the Actor model. It was designed by Ericsson to support distributed, fault-tolerant, soft-real-time, non-stop applications. It supports hot swapping, thus code can be changed without stopping a system.

Its concurrency and hot-code swapping were excellent for telecom uses, and reportedly tested to a nine nines reliability rating. The message passing paradigm is excellent for use with multi-processor systems that are growing in popularity. Currently, the 3 most prominent Erlang projects are ejabberd the XMPP instant messaging server that Facebook chat is based on, Apache's CouchDB, and Claes Wikström's YAWS (Yet Another Web Server). In a 2002 comparison YAWS was tested to handle 80,000+ simultaneous connections beating the next closest contender Apache2 which failed at around 4,000.

And here's an amusingly odd(oddly amusing?[neither?]) video demonstrating the benefits of Erlang:

On with the code:

You'll need a functioning Erlang shell, I recommend a *nix(subjective perhaps but I tried it in XP and on Ubuntu's CLI and Ubuntu felt more natural) . If you're on a *nix, type:
$ erl

If the response isn't similar to:
Erlang R13B (erts-5.7.1) [smp:4:4] [rq:4] [async-threads:0] [kernel-poll:false] 
Eshell V5.7.1 (abort with ^G)

or you're using Windows go to:

Robert Baruch's - Thinking in Erlang is an excellent, quick, and free introduction for those with programming experience. I offer one point of clarification to his concise doc: source code is not directly written in the shell. Code is written in a text editor, saved to a directory, and then run from the shell. More info:


Having completed Baruch's introduction, you are more knowledgeable about a promising, new-ish programming language. To learn more:

Yariv's blog
Erlang creator Joe Armstrong's book

Ubuntu 10.10 server desktop GUI installation

# sudo apt-get update
# sudo apt-get install ubuntu-desktop

Reboot and the GUI will start automatically.

Monday, March 14, 2011

SunRay: From Solaris 10 to Open Solaris to Solaris 11 Express

SunRay: From Solaris 10 to Open Solaris to Solaris 11 Express


SunRay Services are supported under Solaris 10 today. With the release of OpenSolaris, which later was re-released as Solaris 11 Express by Oracle, the porting of SunRay Services had not yet been made generally available. SunRay Services can be made to run under the new Solaris 11 Express.


See Alan Hargreaves' Blog on his experience with migrating SunRay Services from Solaris 10 to OpenSolaris and Solaris 11 Express under SPARC.

Wireless SunRay 270 with Encrypted VPN

Wireless SunRay 270 with Encrypted VPN Abstract:

Sun was challenged to demonstrate the capabilities of the Sun Ray 2 technology with the embedded VPN feature to several customers that required wireless networking. A simple secure wireless solution can be demonstrated easily by integrating a low cost off-the-shelf Linksys 802.11G Wireless Access Point in conjunction with a SunRay 270.


See the solution described by Frank Wickham at Sun here.

Background Radiation and Sun's E-Cache Crisis of 1999

Background Radiation and Sun's E-Cache Crisis of 1999


As the density of circuits increases, features get smaller; as frequencies increase, voltages get lower. These trends combine to reduce the amount of charge used to represent a bit, increasing the sensitivity of memory to background radiation. For example, the original UltraSPARC-I processor ran at 143MHz and had a 256KB e-cache (external cache). The cache design used simple byte parity to protect the data, which was sufficient as the amount of charge used to hold a bit was large enough that an ionizing particle would drain off only a small amount, not enough to flip a bit.

When this design was scaled up in the UltraSPARC-II processor to run at 400MHz with an 8MB e-cache, however, the amount of charge used to hold a bit was so small that background radiation would easily flip bits, producing on average one flipped bit per processor per year. While that might not seem like a high rate, a customer with 12 systems of 32 processors each would on average experience one failure a day. This is what led to Sun's infamous e-cache parity crisis of 1999...


For the story and Steve Chessin's contribution to the solution, see the ACM [HTML|PDF] publication on this. His Sun/Oracle blog retaining this article from 2010 August.

Thursday, March 10, 2011

Security: Taret: Linux Network Devices

Security: Target: Linux Network Devices Abstract:
Widespread use of Microsoft operating systems on the desktop and server have been increasingly exploited by malware for dubious uses. The ever growing increased use of Linux on low-end network devices have made an interesting target for malware creators. Most recently, attacks using compromised Microsoft platforms have been targeting low-end Linux network devices.

Malware, which cooperates with one another over the internet have been called Botnets. They have taken over Microsoft PC's and Servers, because of their ubiquitousness, across the globe. They can be very difficult to find and destroyed, as demonstrated by the Kneber botnet. First known activity for Kneber dates back to March 2009.

As the popularity of Linux grew, the movement of malware from Microsoft platforms to Linux platforms began

In January 2008, a DNS attack on DSL modems was discovered in Mexico. The 2Wire DSL modems were targeted, re-directing people from a Mexico bank to a site falsely demonstrating itself to be a bank.

In January 2009, the Psyb0t was discovered, targeting MIPS based Linux devices.

In February 2010, the Chuck Norris Botnet targeted D-Link Linux based devices.

Sometimes, the network devices are merely used to perform distributed denial of service attacks against corporations or entire nations, as what is happening in South Korea during March 2011.

These botnets are dangerous and could be used to infiltrate other devices on a network, which are then used to gather information, for the purpose of theft or other illegal nefarious behavior.

Enter: Elf_Tsunami.R
In March 2010, a new exploit has been discovered. Elf_Tsunami.R was uncovered by TrandLab. The D-Link DWL-900AP+ is vulnerable, as well as other devices. Formerly exploited Microsoft systems infected with malware can attack and infiltrate the Linux network devices on the local area network.

Elf_Tsunami.R leverages Internet Relay Check (IRC) servers as an independent transport, after the Linux network device is infiltrated, meaning PC anti-virus software can not completely clean out your network, after cleaning your PC.

Network Management Connection:
It has long been expected that Linux would remain more secure to attacks, over Microsoft based appliances, desktops, and servers. Linux consumer based devices, however, are widely available and do not necessarily meet the stringent security requirements for Enterprise and Managed Services networking infrastructure.

Caution should be taken when employing Microsoft and Linux platforms in an Enterprise and Managed Services networking infrastructure, because of the increased use of hybrid exploits. The possibility of infecting customer networks through their implementation is not out of the question, as demonstrated by millions of globally exploited systems and devices.

Tuesday, March 8, 2011

Sun V100: Installation of Solaris 11 Express

Sun V100: Installation of Solaris 11 Express

The SPARC platform had existed for decades in the telecommunications environment. It was built upon open standards for instruction set as well as boot proms and moved to 64 bit arcrhitecture long before most processors on the market. The open nature and advanced 64 bit architecture of the platform makes older units a perfect inexpensive test bed to train with advanced modern day operating systems. The 64 bit SPARC V100 has the ability to install Solaris 11 Express.

LOM: Basics

When a new machine is received, it normally comes with an OS installed. After the power-up, it would normally boot directy into the pre-configured operating system, bypassing the Lights Out Management and OpenBoot prom.

To simplify the installation from a console cable, we will start from the V100 from the ground-up, with the LOM through toggling off (down) the power button in the back of the server.
Mar  8 11:39:59 v100ex11 poweroff: initiated by user777 on /dev/console
bootadm: /boot/solaris/bin/extract_boot_filelist is not owned by 101, skipping
syncing file systems... done
LOM event: +0h28m56s host power off
Command supported by the OpenBoot prom are:
The following commands are supported:
During the powering up of the server, the IDE drive can be pulled, in order to keep the system from booting onto the pre-installed operating system. Powering on the unit can be done from the LOM.

LOM event: +0h33m58s host power on
Sun Fire V100 (UltraSPARC-IIe 548MHz), No Keyboard
OpenBoot 4.0, 2048 MB memory installed, Serial #66241418.
Ethernet address 0:3:ba:f2:c3:8a, Host ID: 83f2c38a.
OpenBoot: Basics

After the OK prompt for the OpenBoot is seen, the IDE disk can be plugged back in. The system will be in a funny state, which will be resolved with a future boot.

There are a variety of basic commands which can be run from the OpenBoot PROM. It is more advanced than BIOS in a PC - it is an entire programming and debugging environment driven by Forth.
ok help

Enter 'help command-name' or 'help category-name' for more help
(Use ONLY the first word of a category description)
Examples: help select -or- help line

Main categories are:

Breakpoints (debugging)
Repeated loops
Defining new commands
Numeric output
Radix (number base conversions)
Memory access
Line editor
System and boot configuration parameters
Select I/O devices
Floppy eject
Power on reset
Diag (diagnostic routines)
Resume execution
File download and boot
nvramrc (making new commands permanent)
The OpenBoot includes some parameters in a non-volitile RAM.
ok printenv

output-device ttya ttya
input-device ttya ttya
load-base 16384 16384
auto-boot-retry? false false
boot-command boot boot
auto-boot? true true
watchdog-reboot? false false
diag-device disk2 net
boot-device /pci@1f,0/ide@d/disk@2,0 disk net
local-mac-address? false false
net-timeout 0 0
ansi-terminal? true true
screen-#columns 80 80
screen-#rows 34 34
silent-mode? false false
use-nvramrc? false false
security-mode none No default
security-password No default
security-#badlogins 0 No default
oem-logo No default
oem-logo? false false
oem-banner No default
oem-banner? false false
hardware-revision No default
last-hardware-update No default
diag-switch? false false

By default, this machine is set to automatically boot, which is the factory default.

The boot occurs from the hard disk on this machine, while the factory default is to have the machine attempt to boot from the network.

To see all of your devices which were recognized by the OpenBoot:
ok devalias

disk /pci@1f,0/ide@d/disk@2,0
rtc /pci@1f,0/isa@7/rtc@0,70
usb /pci@1f,0/usb@a
flash /pci@1f,0/isa@7/flashprom@1f,0
lom /pci@1f,0/isa@7/SUNW,lomh@0,8010
i2c-nvram /pci@1f,0/pmu@3/i2c@0,0/i2c-nvram@0,aa
net1 /pci@1f,0/ethernet@5
dload1 /pci@1f,0/ethernet@5:,
dload /pci@1f,0/ethernet@c:,
net0 /pci@1f,0/ethernet@c
net /pci@1f,0/ethernet@c
cdrom /pci@1f,0/ide@d/cdrom@3,0:f
disk3 /pci@1f,0/ide@d/disk@3,0
disk2 /pci@1f,0/ide@d/disk@2,0
disk1 /pci@1f,0/ide@d/disk@1,0
disk0 /pci@1f,0/ide@d/disk@0,0
ide /pci@1f,0/ide@d
floppy /pci@1f,0/isa@7/dma/floppy
ttyb /pci@1f,0/isa@7/serial@0,2e8
ttya /pci@1f,0/isa@7/serial@0,3f8
OpenBoot: Stop Automatic Boot

We will set the machine to not automatically boot on power-up to easiy adjust the environment after power cycles.
ok setenv auto-boot? false
auto-boot? = false
Now, the next step is to power-off the system and then poweron from the LOM, to boot the system fresh to an OK prompt:
ok power-off
LOM event: +1h10m46s host power off
LOM event: +1h11m39s host power on
Sun Fire V100 (UltraSPARC-IIe 548MHz), No Keyboard
OpenBoot 4.0, 2048 MB memory installed, Serial #66241418.
Ethernet address 0:3:ba:f2:c3:8a, Host ID: 83f2c38a.
OpenBoot: Boot Solaris 11 Express

The Installation of Solaris 11 Express can be done via a CD-ROM from the OpenBoot.
ok boot cdrom
Boot device: /pci@1f,0/ide@d/cdrom@3,0:f File and args:
The cursor will swap between characters "", "/", "-", etc., indicating the system is working. The CDROM boot banner will appear, once the OS is boot-strapped.

Solaris 11 Express: Install From CD-ROM

Once the OS is boot-strapped, the install routine prompts for information.
Boot device: /pci@1f,0/ide@d/cdrom@3,0:f  File and args:
SunOS Release 5.11 Version snv_151a 64-bit
Copyright (c) 1983, 2010, Oracle and/or its affiliates. All rights reserved.
WARNING: invalid vector intr: number 0x7de, pil 0x0
Hostname: solaris
Remounting root read/write
Probing for device nodes ...
Preparing text install image for use
Done mounting text install image
USB keyboard

1. Albanian 25. Latin-American
2. Arabic 26. Lithuanian
3. Belarusian 27. Latvian
4. Belgian 28. Macedonian
5. Brazilian 29. Malta_UK
6. Bulgarian 30. Malta_US
7. Canadian-Bilingual 31. Norwegian
8. Croatian 32. Polish
9. Czech 33. Portuguese
10. Danish 34. Romanian
11. Dutch 35. Russian
12. Dvorak 36. Serbia-And-Montenegro
13. Estonian 37. Slovak
14. Finnish 38. Slovenian
15. French 39. Spanish
16. French-Canadian 40. Swedish
17. Hungarian 41. Swiss-French
18. German 42. Swiss-German
19. Greek 43. Traditional-Chinese
20. Icelandic 44. TurkishF
21. Italian 45. TurkishQ
22. Japanese-type6 46. UK-English
23. Japanese 47. US-English
24. Korean
To select the keyboard layout,
enter a number [default 47]: 47

1. Arabic 12. Hungarian
2. Catalan 13. Indonesian
3. Chinese - Simplified 14. Italian
4. Chinese - Traditional 15. Japanese
5. Czech 16. Korean
6. Dutch 17. Polish
7. English 18. Portuguese - Brazil
8. French 19. Russian
9. German 20. Slovak
10. Greek 21. Spanish
11. Hebrew 22. Swedish
To select the language you wish to use,

enter a number [default is 7]: 7

User selected: English
Configuring devices.

Using HyperTerminal with "Auto" emulation, does not help the installer, since it will think that "xterm" is the terminal type available.

If performing an installation from a "tip" command in an "xterm", no change is required, and the installation screens look wonderful.

Welcome to the Oracle Solaris snv_151a installation menu
1 Install Oracle Solaris
2 Install Additional Drivers
3 Shell
4 Terminal type (currently xterm)
5 Reboot
Please enter a number [1]:

Indicate the type of terminal being used, such as:
dtterm CDE terminal emulator
xterm xterm
vt100 DEC VT100
Enter terminal type [xterm]:

Welcome to the Oracle Solaris snv_151a installation menu
1 Install Oracle Solaris
2 Install Additional Drivers
3 Shell
4 Terminal type (currently vt100)
5 Reboot
Please enter a number [1]:

The Welcome Spash Screen provides the basic terminal keystroke instructions.

Welcome to Oracle Solaris
Thanks for choosing to install Oracle Solaris! This installer enables you
to install the Oracle Solaris Operating System (OS) on SPARC or x86

The installation log will be at /tmp/install_log.

How to navigate through this installer:
- Use the function keys listed at the bottom of each screen to move from
screen to screen and to perform other operations.
- Use the up/down arrow keys to change the selection or to move between
input fields.
- If your keyboard does not have function keys, or they do not respond,
press ESC; the legend at the bottom of the screen will change to show
the ESC keys for navigation and other functions.

F2_Continue F6_Help F9_Quit
Select the disk at the next screen with F2, to perform the install to the base disk.

Microsoft Windows, unfortunately, does not provide a real terminal emulator that understand the VT100 character set, when you select VT100, so some grahical characters do not emulate correctly.
Where should Oracle Solaris be installed?
Recommended size: 4.7GB Minimum size: 2.7GB

Type Size(GB) Boot Device Manufacturer Notes
ATA 74.5 + c2t2d0 unknown

The following slices were found on the disk.

Slice # Size(GB) Slice # Size(GB)
qqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqq
rpool 0 74.5 Unused 5 0.0
Unused 1 0.0 Unused 6 0.0
Unused 3 0.0 Unused 7 0.0
Unused 4 0.0 backup 2 74.5

F2_Continue F3_Back F6_Help F9_Quit

Continue with the default slicing through F2.

            Solaris Slices: 74.5GB ATA Boot

Oracle Solaris can be installed on the whole disk or a slice on the disk.
The following slices were found on the disk.

Slice # Size(GB) Slice # Size(GB)
qqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqq
rpool 0 74.5 Unused 5 0.0
Unused 1 0.0 Unused 6 0.0
Unused 3 0.0 Unused 7 0.0
Unused 4 0.0 backup 2 74.5

Use the whole disk
Use a slice on the disk

F2_Continue F3_Back F6_Help F9_Quit
Move the cursor to "Use the whole disk" and Continue with F2 to the network configuration.

Enter a name for this computer that identifies it on the network. It must
be at least two characters. It can contain letters, numbers, and minus
signs (-).

Computer Name:

Select how the wired ethernet network connection is configured.

Automatically Automatically configure the connection
None Do not configure the network at this time

F2_Continue F3_Back F6_Help F9_Quit

Type a name for the computer operating system instance name, such as "sol11v100".

Move the cursor to "Automatically" to configure an IP address via DHCP on boot.
Continue with F2.
                Time Zone: Regions

Select the region that contains your time zone.

Arctic Ocean
Atlantic Ocean
Indian Ocean
Pacific Ocean

F2_Continue F3_Back F6_Help F9_Quit
Timezone should be selected, in this case we move the cursor to Americas and Continue with F2.
              Time Zone: Locations

Select the location that contains your time zone.
^ St Barthelemy
x St Kitts & Nevis
x St Lucia
x St Martin (French part)
x St Pierre & Miquelon
x St Vincent
x Suriname
x Trinidad & Tobago
x Turks & Caicos Is
x United States
x Uruguay
x Venezuela
x Virgin Islands (UK)
q Virgin Islands (US)

F2_Continue F3_Back F6_Help F9_Quit
Move your cursor to the appropriate Timezone Location, in this case United States was selected by moving the cursor off the bottom of the screen, and Continue via F2 was done.
                Time Zone

Select your time zone.
Time Zones
q Eastern Time
x Eastern Time - Michigan - most locations
x Eastern Time - Kentucky - Louisville area
x Eastern Time - Kentucky - Wayne County
x Eastern Time - Indiana - most locations
x Eastern Time - Indiana - Daviess, Dubois, Knox & Martin Counties
x Eastern Time - Indiana - Pulaski County
x Eastern Time - Indiana - Crawford County
x Eastern Time - Indiana - Pike County
x Eastern Time - Indiana - Switzerland County
x Central Time
x Central Time - Indiana - Perry County
x Central Time - Indiana - Starke County
v Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counti

F2_Continue F3_Back F6_Help F9_Quit

Move the cursor to the appropriate Time Zone and Continue with F2.
            Date and Time

Edit the date and time as necessary.
The time is in 24 hour format.

Year: 2011 (YYYY)
Month: 03 (1-12)
Day: 08 (1-31)
Hour: 13 (0-23)
Minute: 57 (0-59)

F2_Continue F3_Back F6_Help F9_Quit

Select your Date and Time, Continue with F2.

Define a root password for the system and user account for yourself.

System Root Password
Root password: *****
Confirm password: *****

Create a user account
Your real name: Administrator
Username: admin
User password: *****
Confirm password: *****

F2_Continue F3_Back F6_Help F9_Quit

The installation is secure, by default. The Root password is required as well as a user account, so you can assume the privileges associated with "root" at a later point in time.

Complete the prompts and Continue with F2.

There is a brief pause after F2, so do not hit the key a second or third time.
                 Installation Summary

Review the settings below before installing. Go back (F3) to make changes.

Software: Oracle Solaris 11 Express snv_151a SPARC
Disk: 74.5GB ATA
Slice 0: 74.5GB rpool1
Time Zone: US/Eastern
Language: *The following can be changed when logging in.
Default language: English
Username: admin
Computer name: sol11v100
Network Configuration: Automatic

F2_Install F3_Back F6_Help F9_Quit

The Installation Summary is provided, after a brief pause. Continue with F2 to install.
               Installing Oracle Solaris

Preparing disk for Oracle Solaris installation
[ (5%) ]

Building cpio file lists
[ (6%) ]

Transferring Contents
[ (98%) ]
The installation begins with various phases, some of which were captured and copied into the installation window above.

Once the installation is complete, the option to reboot is provided.

Installation Complete

The installation of Oracle Solaris has completed successfully.
Reboot to start the newly installed software or Quit if you wish to
perform additional tasks before rebooting.

The installation log is available at /tmp/install_log. After reboot it
can be found at /var/sadm/system/logs/install_log.

F4_View Log F8_Reboot F9_Quit
Reboot the system via F8 would normally be done.

Since Microsoft Windows HyperTerm is broken, the F8 and F9 does not work.

A straight power down via the rocker switch can be done and a "powerup" from LOM to restart the system.
Mar  8 19:26:50 solaris power: WARNING: Power off requested from power button or
SC, powering down the system!
Shutdown started. Tue Mar 8 19:26:53 GMT 2011
Changing to init state 5 - please wait
showmount: solaris: RPC: Program not registered
bootadm: /media/Oracle_Solaris_Text_SPARC/ filesystem is read-only, skipping archives update
svc.startd: The system is coming down. Please wait.
svc.startd: 74 system services are now being stopped.
Mar 8 19:27:12 solaris syslogd: going down on signal 15
svc.startd: Killing user processes.
umount: /.cdrom busy
Mar 8 19:27:29 The system is down. Shutdown took 25 seconds.
syncing file systems... done
LOM event: +3h17m53s host power off

LOM event: +3h19m46s host power on
Solaris 11 Express: Booting From Disk

Since the OpenBoot was set to not automatically boot, the ok prompt is available, to boot from disk or cdrom.

Since the installation was complete, the boot from the default disk can be done.
Sun Fire V100 (UltraSPARC-IIe 548MHz), No Keyboard
OpenBoot 4.0, 2048 MB memory installed, Serial #66241418.
Ethernet address 0:3:ba:f2:c3:8a, Host ID: 83f2c38a.
ok boot disk
Boot device: /pci@1f,0/ide@d/disk@2,0 File and args:
SunOS Release 5.11 Version snv_151a 64-bit
Copyright (c) 1983, 2010, Oracle and/or its affiliates. All rights reserved.
Loading smf(5) service descriptions: 5/178
Loading smf(5) service descriptions: 178/178
WARNING: invalid vector intr: number 0x7de, pil 0x0
Hostname: sol11v100
Configuring devices.

Loading smf(5) service descriptions: 7/7
sol11v100 console login:
After watching the rotating bar, the OS banner page appears, the services are instantiated through SMF, and the console login prompt from the serial cable.

Login on the console cable and find the IP Address.
sol11v100 console login: msadmin
Oracle Corporation SunOS 5.11 snv_151a November 2010
msadmin@sol11v100:~$ ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
inet netmask ff000000
dmfe0: flags=1004843 mtu 1500 index 4
inet netmask ffffff00 broadcast
dmfe1: flags=1004803 mtu 1500 index 3
inet netmask ff000000
lo0: flags=2002000849 mtu 8252 index 1
inet6 ::1/128
dmfe0: flags=20002004841 mtu 1500 index 4
inet6 fe80::203:baff:fef2:c38a/10
dmfe1: flags=20002004801 mtu 1500 index 3
inet6 fe80::203:baff:fef2:c38b/10
dmfe1:1: flags=20002000800 mtu 1500 index 3
inet6 ::/0
dmfe1:2: flags=20002000800 mtu 1500 index 3
inet6 ::/10
Solaris 11 Express: Enabling Telnet

Insecure operating systems like Microsoft Windows XP do not provide a simple SSH client from the Command prompt. Insecure Telnet can be enabled to facilitate access with the root login and verified using Solaris services.

admin@sol11v100:~$ svcs telnet
disabled 14:40:05 svc:/network/telnet:default

admin@sol11v100:~$ su root
Mar 8 14:59:40 sol11v100 su: 'su root' succeeded for msadmin on /dev/console

msadmin@sol11v100:~# svcadm enable telnet

msadmin@sol11v100:~# svcs telnet
online 15:02:33 svc:/network/telnet:default
The platform is now ready for basic configuration without a console cable.

Additional configuation steps can be done from the console, to set up tools like GNOME through Headless X configuration, and VNC, to get a graphical windowing environment.

Network Management Connection

In the arena of Network Management, Solaris 11 Express it the premier operating system for security as well as stability. If it has to to run and be available, it runs under Solaris.

Sun V100: Introduction to SPARC and OpenBoot

Sun V100: Introduction to SPARC and OpenBoot

Toward the end of the 1990's, there was a great push to provide Internet connectivity and applications to the general population of the world. Computing systems started to migrate software, capacity, and applications from the desktop towards the server. Servers started to become more power efficient and gain technologies such as LOM or "Lights Out Management" to access the hardware below the Operating System. This video shows a sample 64 bit server from the era, which still supports modern operating systems, and LOM.

Monday, March 7, 2011

EMC Ionix: Integration Basics (part 4) - Traps

EMC Ionix: Integration Basics (part 4) - Traps

Network Management platforms normally have a variety of modules which interlock together. The different managers often subscribe to information from the underlying managers. The Open Integrations manager (OI) and Service Assurance Manager (SAM) are two such managers. The fields of data available in the OI, which can be subscribed to from the SAM is configurable. The SNMP Trap Manager can be used to feed information into Ionix from other Network Management tools.

In Part 1 of the series, we discussed dmctl and sm_adapter integration points into Ionix. In Part 2, we discussed the reporting of events from the Ionix infrastructure via sm_ems. In Part 3, inserting alerts into the system via sm_ems command was discussed as well as some of the underlying architecture. This article will discuss the use of the SNMP Trap Adapter to integrate alerts into EMC Ionix, formerly known as SMARTS InCharge.

Trap Adapter Instantiation:
The Ionix suite allows for one or more SNMP Trap Adapters to be provisioned onto a single server, depending on the number of network interface cards which are available.

To see how a trap manager is instantiated, the sm_service command is used:
sunsparc/user777$ sm_service show --cmdline TRAP-39
sm_service install --force --unmanaged --startmode=runonce \
'--name=TRAP-39' \
'--env=SM_SITEMOD=/opt/InCharge7/SAM/smarts/local39' \
'--env=SM_WRITEABLE=/opt/InCharge7/SAM/smarts/local39' \
'/opt/InCharge7/SAM/smarts/bin/sm_trapd' \
'--name=TRAP-39' \
'--server=OI-39' \
'--config=icoi' \
'--port=162' \
'--sport=35039' \
'--useif=' \
'--model=sm_actions' \
'--output=TRAP-39.log' \

The "rules" file holds the information required in order to adjust the OI and SAM to differentiate between which SNMP Trap Receiver is sourcing the messages.
sunsparc/user777$ cd /opt/InCharge7/SAM/smarts/local39
ls -al rules/icoi-trapd/trap_mgr_parse.asl
-r--r--r-- 1 root root 50263 Nov 20 02:52 rules/icoi-trapd/trap_mgr_parse.asl
By adjusting the "ics_domain_name" parameter, sources can be differentiated.
sunsparc/user777$ cd /opt/InCharge7/SAM/smarts/local39
grep TRAP-39 rules/icoi-trapd/trap_mgr_parse.asl
ics_domain_name = "TRAP-39"
There are two major files used to configure the trap daemons:
sunsparc/user777$ cd /opt/InCharge7/SAM/smarts/local39
ls -al conf/icoi/trap*conf
-rwxrwxr-x 1 smarts nsm 7933 Nov 19 17:23 conf/icoi/trapd.conf
-rwxrwxr-x 1 smarts nsm 90785 Mar 4 21:06 conf/icoi/trap_mgr.conf
Configuring individual VarBinds ("Variable Bindings") or parameters to the SNMP Trap, can be mapped in the "trap_mgr.conf" file into different fields in the Ionix system.

The "trapd.conf" file will configure the trap daemon, once it is instantiated by "sm_service".

Wednesday, March 2, 2011

EMC Ionix: Integration Basics (part 3)

EMC Ionix: Integration Basics (part 3)

Network Management platforms normally have a variety of modules which interlock together. The different managers often subscribe to information from the underlying managers. The Open Integrations manager (OI) and Service Assurance Manager (SAM) are two such managers. The fields of data available in the OI, which can be subscribed to from the SAM is configurable.

The minimum modules available to make a workable system in a network management infrastructure include components such a graphical user interface , manager of managers, mid-level manager, and a polling manager. In EMC (formerly SMARTS) Ionix (formerly InCharge), the GUI (sm_gui) will subscribe to a Manager of Managers (SAM) or a mid-level manager (OI), which can subscribe to a polling type of manager (ex. IP Availability Manager) or some other kind of adapter (i.e. Syslog or SNMP Trap) correspondingly.

Configuring Subscriptions:
The subscriptions at the Open Integration layer can be configured through a command line file. For Version 7 of the software, this subscription interface is located:
Attributes to notifications can be passed up from underlying adapters, like the trap adapter or syslog adapter, through the OI, and ultimately to the SAM. Some attributes are designed to be passed-through (i.e. UserDefned attributes) while other attributes are designed to be manipulated at the SAM layer (i.e. maintenance mode, owner, trouble ticket id, etc.) This can be observed in the configuration of the file.
sunsparc/user777$ more /opt/InCharge7/SAM/smarts/local/conf/ics/dxa-oi.conf
#attr Acknowledged
#attr InMaintenance
#attr Owner
#attr TroubleTicketID
attr UserDefined1
attr UserDefined2
attr UserDefined3
attr UserDefined4
attr UserDefined5
attr UserDefined6
attr UserDefined7
attr UserDefined8
attr UserDefined9
attr UserDefined10
Ticketing interfaces are normally managed at the SAM layer, but if there is a desire to pass this information through the OI, this line can be uncommented, in order to pass ticketing along through the OI layer to the SAM.

Demonstrating Subscriptions:

To summarize all notification list from the 3rd SAM instance, which can be subscribed to by an sm_gui:
sunsparc/user777$ sm_ems -s SAM-03 summarize

ClassDisplayName = Host
InstanceDisplayName = ABC_ACAZ02_BR
EventDisplayName = Down
Active = FALSE
Acknowledged = TRUE
Category = Availability
TroubleTicketID =
Owner = SYSTEM

ClassDisplayName = Host
InstanceDisplayName = ABC_AWKU55_ID
EventDisplayName = Down
Active = TRUE
Acknowledged = FALSE
Category = Availability
TroubleTicketID =
Owner =
This list looks identical to the Open Integrations manager instance 30, which is feeding notifications to the SAM instance 3 (note, in this implementation, there are no polling managers, only passive snmp trap managers.)
sunsparc/user777$ sm_ems -s OI-30 summarize

ClassDisplayName = Host
InstanceDisplayName = ABC_ACAZ02_BR
EventDisplayName = Down
Active = FALSE
Acknowledged = TRUE
Category = Availability
TroubleTicketID =
Owner = SYSTEM

ClassDisplayName = Host
InstanceDisplayName = ABC_AWKU55_ID
EventDisplayName = Down
Active = TRUE
Acknowledged = FALSE
Category =
TroubleTicketID =
Owner =

A change in the Category at the OI level, will propagate to the SAM.
sunsparc/user777$ sm_ems -s OI-30 \
update Host ABC_ANPN33_ID Down Category=Availability

sunsparc/user777$ sm_ems -s OI-30 summarize
ClassDisplayName = Host
InstanceDisplayName = ABC_AWKU55_ID
EventDisplayName = Down
Active = TRUE
Acknowledged = FALSE
Category = Availability
TroubleTicketID =
Owner =

sunsparc/user777$ sm_ems -s SAM-03 summarize
ClassDisplayName = Host
InstanceDisplayName = ABC_AWKU55_ID
EventDisplayName = Down
Active = TRUE
Acknowledged = FALSE
Category = Availability
TroubleTicketID =
Owner =

If a similar "update" action was done to the TroubleTicketID field at the OI level, it would not propagate. Such an action would need to be done directly against the SAM, unless the OI was configured to allow TroubleTicketID to be an attribute eligible to be subscribed to.

NodeJS: Non-Blocking Server Side Javascript

NodeJS: Non-Blocking Server Side Javascript

Multi-process models, in software like Apache web server, helps to add concurrency, to scale up. Similarly, multiple processors and later cores, adds concurrency in a hardware medium. Multiple threads sharing a process at the software layer assists in scaling higher while reducing the penalty of context switches. Multiple threads at a hardware layer also helps mitigate the penalty of memory accesses away. To continue to scale at the application layer, the migration to asynchronous programming allows for simple scaling, but programming language infrastructure had traditionally been negligent in facilitating the scaling easily. NodeJS, modeled using JavaScript, is a new framework to facilitate event driven server side programming where massive scale is required.

A Little History: X, Netscape, Navigator, LiveScript, LiveWire, JavaScript
One of the most ubiquitous frameworks which moved from synchronous to asynchronous was the X Windows system. This windowing system, produced by, is indigenous on nearly every UNIX and Linux system. The next great user interface move was the web browser, to serve (through HTTP protocol) static content (HTML) with images, which became popular from Netscape through their Navigator browser. In an attempt to convert static pages to dynamic pages of data, LiveScript was create on the Netscape Navigator client and server side (as LiveWire.) LiveScript, renamed to JavaScript, leverages an event driven architecture in an application browser and web server, like X Windows was before it.

June 2009 Demo of NodeJS
Ryan Dahl, the creator of NodeJS, works at Joyent. In this early video, he presents his creation of Server Side Java Script programming framework, which is nearly all event driven.

Slides from the 2009 JSConf
These are the PDF slides from the 2009 JavaScript Conference, 2009 November 8.

Slides from the 2010 JSConf
These are the PDF slides from the 2010 JavaScript Conference, 2010 April 14

Video from the May 2010 Yahoo Talk
An introduction video to NodeJS presented at Yahoo on 2010 May 5.

Network Management Connection
Network Management becomes difficult when scaling to manage tens of thousands of devices and millions of managed virtual objects. The necessity to move to light transports like ICMP and UDP, was well understood, and could easily be made asynchronous. NodeJS would make a fine framework to model future network management infrastructure in, once it is stable.

Tuesday, March 1, 2011

Licensing Agreements

Enough Said...

ZFS & Removable Storage

ZFS & Removable Storage

A short demo on how to use ZFS with removable storage... redundant data, recovery, correction, and how to export/import data.

CSI Munich: How to Save the World With ZFS and 12 USB Sticks (English dubbed Version) from Constantin Gonzalez on Vimeo.

(This video was dubbed into English)