Monday, May 30, 2011

Setting root password in Ubuntu variants

Ubuntu relies heavily on the sudo command for administration tasks. However, sudo and superuser modes are not identical and whether you want to change the root password for comfort, necessity, or security purposes, the process is simple:

$ sudo passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Now you can use the su command.

Friday, May 27, 2011

Solaris Information Update


Solaris Information Update

Information recently added regarding Solaris Documentation and Zones to the Solaris tab.

Solaris hardware Compatibility List
  • [SunOracle] Solaris 10 & 11 Compatibility List


Solaris Reference Material
  • 2009-06 [HTML] Solaris 10 u6 Zones "Update on Attach" in 10/08

  • 2010-05 [PDF] Solaris 10 Moving Oracle Container

  • 2010-05 [PDF] Solaris 10 Consolidating With Solaris Containers

  • 2010-10 [HTML] Solaris 10 Sys Adm Guide: Zones, Containers, Resource Mgt

  • 2010-10 [HTML] Solaris 10 Sys Adm Guide: Solaris 8 Containers

  • 2010-10 [HTML] Solaris 10 Sys Adm Guide: Solaris 9 Containers

  • 2010-11 [HTML] Solaris 11 Sys Adm Guide: Zones, Containers, Resource Mgmt


Solaris Containers/Zones

Wednesday, May 25, 2011

X Windows Information Update



The X Windows System tab on Network Managment has been created:
  • Various releases of the open-source X Windows System, bundled with nearly every OS for the past 20 years
The tab has been updated with additional materials
  • Third party X Windows Server vendors, for people using proprietary Microsoft Windows
  • Scripting to build X Windows Applications in wksh and dtksh

Tuesday, May 24, 2011

Remembering Korn, Windows, and UNIX



If you don't know who David Korn is, he is the creator of the Korn Shell or "ksh".

This short interview with David Korn is required reading for all blog followers.

A classic piece of computing history from a UNIX/Microsoft Conference:


It was at a USENIX Windows NT conference and Microsoft was presenting their future directions for NT. One of their speakers said that they would release a UNIX integration package for NT that would contain the Korn Shell.

I knew that Microsoft had licensed a number of tools from MKS so I came to the microphone to tell the speaker that this was not the "real" Korn Shell and that MKS was not even compatible with ksh88. I had no intention of embarrassing him and thought that he would explain the compromises that Microsoft had to make in choosing MKS Korn Shell. Instead, he insisted that I was wrong and that Microsoft had indeed chosen a "real" Korn Shell. After a couple of exchanges, I shut up and let him dig himself in deeper.

Finally someone in the audience stood up and told him what almost everyone in the audience knew, that I had written the 'real' Korn Shell. I think that this is symbolic about the way the company works.
A seasoned systems architect, helping people understand Microsoft Windows.

My experience is with the WIN32 API for the core OS and not with the WIN32 interface to the GUI. Clearly I had to learn more about the WIN32 API than I think that anyone should need to know. The more I know about the WIN32 API the more I dislike it. It is complex and for the most part poorly designed, inconsistent, and poorly documented.

One of the biggest myths about Windows is that the MS operating systems are compatible, unlike UNIX which has so many variants. In reality, porting from one version of Windows to another is often more difficult than porting from one UNIX or Linux system to another. WIN32 calls on one system are not necessarily implemented on other systems, or even worse, they behave differently, requiring completely different code strategies.

That is not to say that there aren't things that I like about Windows NT. The handle model is good, but would have been better if Microsoft had done it right. The separation of dynamic libraries into interface and implementation also makes sense. Putting the libraries in the same directory as the executables is an improvement over UNIX since the allows executables and libraries to be searched for simultaneously

The best advice I can give is to not use Windows unless you have to, or if you have to, use a UNIX operating system on top of Windows like UWIN or Cygwin.


Another notable quote, helping people understand what UNIX really is.
There are many people who use UNIX or Linux who IMHO do not understand UNIX. UNIX is not just an operating system, it is a way of doing things, and the shell plays a key role by providing the glue that makes it work. The UNIX methodology relies heavily on reuse of a set of tools rather than on building monolithic applications. Even perl programmers often miss the point, writing the heart and soul of the application as perl script without making use of the UNIX toolkit.

Tuesday, May 17, 2011

Sun V890: Forcing Full Duplex Under Solaris 10



Sun V890: Forcing Full Duplex Under Solaris 10

Abstract:

When a server boots, the network card will negotiate with the network switch how to communicate. Various settings such as speed and duplex are often part of the auto-negotiation protocol. Occasionally, a server will not negotiate with the network switch the highest possible throughput. The duplex setting may improperly negotiate to half, which could result in collisions and errors, but this can be resolved through manually setting the port characteristics.

Background:

The Sun V890 offers various ethernet ports out-of-the box when purchased from Sun. Some of these port types include: ge, eri, qfe. To see which ports are installed on a platform, one can use the "dladm show-dev" command.

Symptoms:

Bad negotiation is often determined by poor performance.
sunv890/user$ netstat -in
Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue
lo0 8232 127.0.0.0 127.0.0.1 8854 0 8854 0 0 0
qfe0 1500 192.127.224.0 192.127.224.33 6258 0 1460 0 0 0
qfe1 1500 172.39.0.0 172.39.5.33 73075033 0 1774172 0 0 0
qfe2 1500 192.127.254.0 192.127.254.9 10190603 0 6153115 176 546372 0
Determining Bad Negotiation:

If a network switch negotiates incorrectly, the results are clear with Solaris 10.
sunv890/root# dladm show-dev
ge0 link: down speed: 0 Mbps duplex: unknown
eri0 link: down speed: 0 Mbps duplex: unknown
qfe0 link: up speed: 100 Mbps duplex: full
qfe1 link: up speed: 100 Mbps duplex: full
qfe2 link: up speed: 100 Mbps duplex: half
qfe3 link: down speed: 0 Mbps duplex: unknown
Correcting Bad Negotiation:

The duplex can be fixed dynamically. To correct instance "2" of the "qfe" interface:
sunv890/root# ndd -set /dev/qfe instance 2
sunv890/root# ndd -set /dev/qfe adv_100T4_cap 0
sunv890/root# ndd -set /dev/qfe adv_100fdx_cap 1
sunv890/root# ndd -set /dev/qfe adv_100hdx_cap 0
sunv890/root# ndd -set /dev/qfe adv_10fdx_cap 0
sunv890/root# ndd -set /dev/qfe adv_10hdx_cap 0
sunv890/root# ndd -set /dev/qfe adv_autoneg_cap 0
Verifying Corrected Negotiation:

Duplex correction can be easily verified.
sunv890/root# dladm show-dev
ge0 link: down speed: 0 Mbps duplex: unknown
eri0 link: down speed: 0 Mbps duplex: unknown
qfe0 link: up speed: 100 Mbps duplex: full
qfe1 link: up speed: 100 Mbps duplex: full
qfe2 link: up speed: 100 Mbps duplex: full
qfe3 link: down speed: 0 Mbps duplex: unknown
Other Interfaces:

If the problem was experienced on instance "0" of the "eri" interface, the following commands could be used to dynamically adjust the interface to 100 Mbs and full duplex.
sunv890/root# ndd -set /dev/eri instance 0
sunv890/root# ndd -set /dev/eri adv_100T4_cap 0
sunv890/root# ndd -set /dev/eri adv_100fdx_cap 1
sunv890/root# ndd -set /dev/eri adv_100hdx_cap 0
sunv890/root# ndd -set /dev/eri adv_10fdx_cap 0
sunv890/root# ndd -set /dev/eri adv_10hdx_cap 0
sunv890/root# ndd -set /dev/eri adv_autoneg_cap 0
If the problem was experienced on instance "0" of the "ge" interface, the following commands could be used to dynamically adjust the interface to 1000 Mbs and full duplex with 802.3 transmit and receive flow control.
sunv890/root# ndd -set /dev/ge instance 0
sunv890/root# ndd -set /dev/ge adv_1000fdx_cap 1
sunv890/root# ndd -set /dev/ge adv_1000hdx_cap 0
sunv890/root# ndd -set /dev/ge adv_pauseTX 1
sunv890/root# ndd -set /dev/ge adv_pauseRX 1
sunv890/root# ndd -set /dev/ge adv_1000autoneg_cap 0




Kernel Inquiry:

The configuration and statistics regarding the network interfaces can also be retrieved through a kernel inquiry. This can be used for operating systems earlier than Solaris 10.
sunv890/root# kstat qfe
module: qfe instance: 0
name: qfe0 class: net

align_errors 0
allocbfail 0
babble 0
brdcstrcv 36739
brdcstxmt 493
buff 0
carrier_errors 0
...

Tuesday, May 3, 2011

Open-Platform-as-a-Service






A Complete Application Ecosystem

Open Platform as a Service brings all the application and system stakeholders together in an ecosystem which make sense. First, developers create Open Applications using any language on any server, with any any tool/framework/IDE, etc. From there it just gets better. The whole point of software is that it is manageable, modular and reusable. These strengths are leveraged in The Open Platform as a Service, not impeded like they are by entities with conflicts of interest in existing PaaS offerings.

The Open Platform as a Service is just that - Open


Developers can create ANY APPLICATION on ANY SERVER using ANY PROGRAMMING LANGUAGE - PERIOD. No caveats, no fine print, no nothing. Both programmers and non-programmers can extend existing Open Applications by adding additional Objects - this is huge! For example, lets say you search The Open Store and find an Open Application called "Data Form" which creates an HTML form "automatically" based on some database fields from a MySQL database.A developer can use this "base Open Object" and add additional functionality on her own (or any other) scripts on any server on the Internet reachable via HTTP! For example, you could connect to an Oracle database and add the necessary Objects to the base Open Application and not have to roll your own application from scratch. This is a very big advantage over simply providing a web-based framework with a proprietary programming language like Force.com and Apex, for example. By letting programmers develop whatever they can imagine and then expose that functionality to other developers, designers and business users (if they chose to do so), you get a complete application ecosystem involving programmers, designers, non-programmers, users, Web hosting companies, clouds, etc. which can sustain and grow itself with no resistance or competing interests! This type of system could only come from a company with no competing interests.

Monday, May 2, 2011

Cloud Computing: Amazon, Joyent, etc.


Cloud Computing: Amazon, Joyent, etc.

Abstract:
Cloud computing is no panacea - it is just a single tool in the tool belt of the Infrastructure Architect. There are concerns and options for customers to be concerned about.



One Vendor Example:
For people depending upon Cloud Computing, it should be noted that one of the most famous vendors, Amazon, even experiences outages. On 2011 April 21, there was a 10 hour outage. Amazon referred to it as a "network outage", but some data was irreconcilably lost.



Another Vendor:

Other vendors are experienced in the cloud computing model. Joyent has been providing cloud computing expertise since 2004. Joyent provides superior disk, cpu, and memory performance over Amazon. Amazon is clearly not the only game in town.


Programming Models:
Joyent offers varied cloud platform models, but perhaps one of their most interesting model is based upon Node.js, where event driven server side programming can be done with Javascript in a cloud as a service.

Conclusion:
Don't use customer facing applications, which should require H-A capability, solely in the cloud. If you have a customer facing application that is mission critical, ensure your capability is replicated to another provider or keep primary or redundant resources under your own control. When choosing a vendor, keep in mind that there are many options to meet most business requirements.