System Administration Guide: Basic Administration

Chapter 6 Managing Diskless Clients (Tasks)

This chapter describes how to manage diskless clients in the Solaris environment.

For information on the procedures associated with managing diskless clients, see Managing Diskless Clients (Task Map).

For overview information on managing diskless clients, see Chapter 5, Managing Server and Client Support (Overview).

For information about managing clients with Solstice AdminSuiteTM software, see Solstice AdminSuite 2.3 Administration Guide.

Managing Diskless Clients (Task Map)

The following table identifies the procedures needed to manage diskless clients.

Task 

Description 

For Instructions 

1. (Optional) Remove existing diskless client support 

If you have existing diskless clients that were added with the Solstice AdminSuite product, remove the diskless client support and OS services with the admhostdel and admhostmod commands before installing the Solaris release.

Solstice AdminSuite 2.3 Administration Guide

3. (Optional) Enable Solaris Management Console logging to view diskless client error messages 

Choose Log Viewer from the console main window to view diskless client error messages. 

Starting the Solaris Management Console

4. Prepare for adding a diskless client 

Verify supported releases and identify the platform, mediapath, and cluster (or software group) of each diskless client.

How to Prepare for Adding Diskless Clients

5. Add required OS services to an OS server 

Add the OS services for the diskless clients you want to support with the smosservice command. You must identify the platform, media path, and each diskless client platform that you want to support.

How to Add OS Services For Diskless Client Support

6. Add a diskless client 

Add diskless client support by specifying all required information with the smdiskless command.

How to Add a Diskless Client

7. Boot the diskless client 

Verify that the diskless client support is successfully added by booting the diskless client. 

How to Boot a Diskless Client

8. (Optional) Delete diskless client support 

Delete support for a diskless client if it is no longer required. 

How to Delete Diskless Client Support

9. (Optional) Delete OS services for a diskless client 

Delete OS services for a diskless client if they are no longer needed. 

How to Delete OS Services for Diskless Clients

10. (Optional) Patch OS services 

Add, delete, list, or synchronize patches for diskless client OS services. 

How to Add an OS Patch for a Diskless Client

Managing Diskless Clients

These sections describe the procedures needed to manage diskless clients.

Keep the following key points in mind when managing diskless clients:

After you determine the platform, media path, and cluster for each diskless client, you are ready to add OS services. The following directories are created and populated for each OS service that you add:

The following default directories are created and populated on the OS server for each diskless client that you add:


Note –

You can modify the default locations of the root, /swap, and /dump directories by using the -x option. However, do not create these directories under the /export file system.


How to Prepare for Adding Diskless Clients

Make sure that the system intended to be the OS service is running a supported release. Also verify that the combination of OS server release and diskless client release is supported.

When you use the smosservice add command to add OS services, you must specify the platform, mediapath, and cluster (or software group) of each diskless client platform that you want to support.

  1. Verify that the intended OS server and diskless client will be running a combination of Solaris releases that are supported.

    For more information, see OS Server and Diskless Client Support Information.

  2. Identify the diskless client platform by using this format:

    instruction_set.machine_class.Solaris_version

    For example:

    sparc.sun4u.Solaris_9

    The following are the possible platform options:

    instruction_set

    machine_class

    Solaris_version

    sparc 

    sun4d*, sun4c*, sun4m*, sun4u, 

    Solaris_9, Solaris_8, Solaris_2.7, Solaris_2.6 

    i386 

    i86pc 

    Solaris_9, Solaris_8, Solaris_2.7, Solaris_2.6 

    * The sun4c architecture is not supported in the Solaris 8 or Solaris 9 releases. The sun4d architecture is not supported in the Solaris 9 releases.

  3. Identify the media path, which is the full path to the disk image that contains the operating system that you want to install for the diskless client.

    The Solaris operating system is delivered on multiple CDs. However, you cannot use the smosservice command to load OS services from a multiple CD distribution. You must run the scripts that are found on the Solaris software CDs (and optional Language CD) to do the following:

    • Create an install image on a server. For information on setting up an install server, refer to Solaris 9 9/04 Installation Guide.

    • Load the required OS services from the CD image using one of the following scripts:

      • CD 1 of 2 – /cdrom/cdrom0/s0/Solaris_9/Tools/setup_install_server

      • CD 2 of 2 – /cdrom/cdrom0/s0/Solaris_9/Tools/add_to_install_server

      • Language CD – /cdrom/cdrom0/s0/Solaris_9/Tools/add_to_install_server

      For example, if you are using the setup_install_server script from the Solaris 9 Software 1 of 2 SPARC Platform Edition CD on a locally connected CD-ROM device, the syntax looks something like this:


      # mkdir /export/install/sparc_9
      # cd /cd_mount_point/Solaris_9/Tools
      # ./setup_install_server /export/install/sparc_9
      
    • After the Solaris CD image is installed on the disk, specify the disk image path. For example:


      /net/export/install/sparc_9
  4. Identify the SUNWCXall cluster when you add OS services.

    You must use the same cluster for diskless clients that run the same operating system on the same system (SPARC or x86).

    For example, consider the following diskless clients:

    • sparc.sun4m.Solaris_9

    • sparc.sun4u.Solaris_9

    To set up these diskless clients, you would need to specify the SUNWCXall cluster for each diskless client because the sun4u and sun4m systems require the SUNWCXall cluster. In addition, diskless clients that run the same operating release (in this situation, Solaris_9) on the same system must use the same cluster.


    Note –

    If you are using a sun4u system, or if you are using a system with an accelerated 8-bit color memory frame buffer (cgsix), you must specify SUNWCXall as the cluster.


How to Add OS Services For Diskless Client Support

Use this procedure to add OS services for a diskless client on the server.

  1. Become superuser or assume an equivalent role on the server.

    For more information, see How to Become Superuser (root) or Assume a Role.

  2. Verify that the Solaris Management Console server is running and that the diskless client tools are available on the system.


    # /usr/sadm/bin/smosservice list -H starbug:898 --
    Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from ...
    Login to starbug as user root was successful.
    Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starbug:898 
    was successful.
    Platform
    -------------------------------------------------------------------------
  3. Add the OS services.


    # /usr/sadm/bin/smosservice add -H hostname:898 -- -o hostname 
    -x mediapath=path -x platform=instruction-set.machine-class.Solaris-version 
    -x cluster=cluster-name -x locale=locale-name
    

    add

    Adds the specified OS service. 

    -H hostname:898

    Specifies the host name and port to which you want to connect. If you do not specify a port, the system connects to the default port, 898. 

    --

    Identifies that the subcommand arguments start after this point. 

    -x mediapath=path

    Specifies the full path to the Solaris image. 

    -x

    platform=instruction-set.machine-class.Solaris-version

    Specifies the instruction architecture, machine class, and the Solaris version to be added.  

    -x cluster=cluster-name

    Specifies the Solaris cluster to install. 

    -x locale=locale-name

    Specifies the locale to install. 


    Note –

    The installation process can take approximately 45 minutes, depending on the server speed and the OS service configuration you choose.


    For more information, see smosservice(1M).

  4. (Optional) Continue to add the other OS services.

  5. When you are finished adding OS services, verify that the OS services were installed.


    # /usr/sadm/bin/smosservice list -H hostname:898 --
    

Example—Adding an OS Service for Diskless Client Support

This example describes how to add Solaris 8 OS services on the server starbug. The server starbug is running the Solaris 9 release.


# /usr/sadm/bin/smosservice add -H starbug:898 -- -o starbug 
-x mediapath=/net/install/export/sparc_8 -x platform=sparc.sun4u.Solaris_8 
-x cluster=SUNWCXall -x locale=en_US
Authenticating as user: root

Type /? for help, pressing enter accepts the default denoted by [ ]
Please enter a string value for: password :: xxx
Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from starbug:898
Login to starbug as user root was successful.
Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starbug:898 
was successful.

How to Add a Diskless Client

Use this procedure to add a diskless client after you have added OS services.

  1. Become superuser or assume an equivalent role.

    For more information, see How to Become Superuser (root) or Assume a Role.

  2. Add the diskless client.


    # /usr/sadm/bin/smdiskless add -- -i ip-address -e ethernet-address 
    -n client-name -x os=instruction-set.machine-class.Solaris-version 
    -x root=/export/root/client-name -x swap=/export/swap/client-name 
    -x swapsize=size -x tz=timezone -x locale=locale-name
    

    add

    Adds the specified diskless client. 

    --

    Identifies that the subcommand arguments start after this pont. 

    -i ip-address

    Identifies the IP address of the diskless client. 

    -e ethernet-address

    Identifies the Ethernet address of the diskless client. 

    -n client-name

    Specifies the name of the diskless client. 

    -x os=instruction-set.machine-class.Solaris-version

    Specifies the instruction architecture, machine class, OS, and the Solaris version for the diskless client. 

    -x root=root=/export/root/client-name

    Identifies the root directory for the diskless client. 

    -x swap=root=/export/root/client-name

    Identifies the swap file for the diskless client. 

    -x swapsize=size

    Specifies the size of the swap file in Mbytes. The default is 24 Mbytes. 

    -x tz=timezone

    Specifies the timezone for the diskless client. 

    -x locale=locale-name

    Specifies the locale to install for the diskless client. 

    For more information, see smdiskless(1M).

  3. (Optional) Continue to use the smdiskless add command to add each diskless client.

  4. Verify that the diskless clients were installed.


    # /usr/sadm/bin/smosservice list -H hostname:898 --
    

Examples—Adding a Diskless Client

This example shows how to add a Solaris 8 client, holoship, from the server starbug.


# /usr/sadm/bin/smdiskless add -- -i 172.20.27.103 -e 8:0:20:92:4e:f3 
-n holoship -x os=sparc.sun4u.Solaris_8 -x root=/export/root/holoship 
-x swap=/export/swap/holoship -x swapsize=128 -x tz=US/Mountain 
-x locale=en_US

This example shows how to add a Solaris 7 client, inquisitor, from the server starbug.


# /usr/sadm/bin/smdiskless add -- -i 172.20.27.102 -e 8:0:20:1f:31:be
-n inquisitor -x os=sparc.sun4u.Solaris_2.7 -x root=/export/root/inquisitor 
-x swap=/export/swap/inquisitor -x swapsize=64 -x tz=US/Mountain

How to Boot a Diskless Client

  1. Verify the following prerequisites on the OS server:

    • Confirm that the name service used to add the diskless client and the OS services matches the primary name in the server's /etc/nsswitch.conf file.

      Otherwise, the diskless client won't boot.

    • Confirm that the rpc.bootparamd daemon is running. If it is not running, start it.

  2. Boot the diskless client.


    ok boot net
    

How to Delete Diskless Client Support

  1. Become superuser or assume an equivalent role.

    For more information, see How to Become Superuser (root) or Assume a Role.

  2. Remove the diskless client support.


    # /usr/sadm/bin/smdiskless delete -- -o hostname:898 -n client-name
    
  3. Verify that the diskless client support is removed.


    # /usr/sadm/bin/smosservice list -H hostname:898 --
    

Example—Deleting Diskless Client Support

This example shows how to delete the diskless client holoship from the OS server starbug.


# /usr/sadm/bin/smdiskless delete -- -o starbug -n holoship
Authenticating as user: root

Type /? for help, pressing enter accepts the default denoted by [ ]
Please enter a string value for: password :: 
Starting SMC server version 2.0.0.
endpoint created: :898
SMC server is ready.
Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from starbug
Login to starbug as user root was successful.
Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starbug
was successful.

How to Delete OS Services for Diskless Clients

  1. Become superuser or assume an equivalent role.

    For more information, see How to Become Superuser (root) or Assume a Role.

  2. Remove the OS services for the diskless clients.


    # /usr/sadm/bin/smosservice delete -H hostname:898 -- 
    -x rmplatform=instruction-set.machine-class.Solaris-version
    
  3. Verify that the OS services are removed.


    # /usr/sadm/bin/smosservice list -H hostname:898 --
    

Example—Deleting OS Services for Diskless Clients

The following example shows how to delete the diskless client OS services (sparc.all.Solaris_9) from the server starbug.


# /usr/sadm/bin/smosservice delete -H starbug:898 -- 
-x rmplatform=sparc.all.Solaris_9
Authenticating as user: root
Type /? for help, pressing enter accepts the default denoted by [ ]
Please enter a string value for: password :: 
Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from starbug:898
Login to starbug as user root was successful.
Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starbug:898
was successful.

Patching Diskless Client OS Services

You use the smosservice patch command to do the following:


Note –

Keep your OS servers up to date by installing recommended OS patches on a timely basis.


For information on downloading patches, see How to Download an Unsigned Solaris Patch.

Displaying OS Patches for Diskless Clients

Diskless client patches are logged in different directories, depending on the type of patch:

To list all spooled patches by OS and architecture, use the smosservice command with the -P option.

How to Add an OS Patch for a Diskless Client

  1. Become superuser or assume an equivalent role on the server.

    For more information, see How to Become Superuser (root) or Assume a Role.

  2. Log in to the diskless client system and shut it down.


    # init 0
    
  3. Add the patch to a spool directory.


    # /usr/sadm/bin/smosservice patch -- -a /var/patches/patch-ID-revision
    Authenticating as user: root
    
    Type /? for help, pressing <enter> accepts the default denoted by [ ]
    Please enter a string value for: password :: 
    Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from starbug
    Login to starbug as user root was successful.
    Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starbug 
    was successful.

    If the patch to add depends on another patch, adding the patch fails with the following message:


    The patch patch-ID-revision could not be added 
    because it is dependent on other patches which have not yet been spooled. 
    You must add all required patches to the spool first.

  4. Verify the patch is spooled.


    # /usr/sadm/bin/smosservice patch -- -P
    
  5. Push the spooled patch to the diskless client.


    # /usr/sadm/bin/smosservice patch -- -m -U
    Authenticating as user: root
    
    Type /? for help, pressing <enter> accepts the default denoted by [ ]
    Please enter a string value for: password :: 
    Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from starbug
    Login to starbug as user root was successful.
    Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starbug 
    was successful.

    Note –

    Pushing and synchronizing the patch to the diskless client can take up to 90 minutes per patch.


  6. Verify the patch is applied to the diskless client.


    # /usr/sadm/bin/smosservice patch -- -P
    Authenticating as user: root
    
    Type /? for help, pressing <enter> accepts the default denoted by [ ]
    Please enter a string value for: password :: 
    Loading Tool: com.sun.admin.osservermgr.cli.OsServerMgrCli from starbug
    Login to starbug as user root was successful.
    Download of com.sun.admin.osservermgr.cli.OsServerMgrCli from starbug 
    was successful.
    Patches In Spool Area
    Os Rel Arch   Patch Id  Synopsis
    -------------------------------------------------------------------------
    8      sparc  111879-01 SunOS 5.8: Solaris Product Registry patch SUNWwsr  
    
    Patches Applied To OS Services
    Os Service                              Patch
    -------------------------------------------------------------------------
    Solaris_8                               
    
    Patches Applied To Clone Areas
    Clone Area                              Patch
    -------------------------------------------------------------------------
    Solaris_8/sun4u          

Example—Adding an OS Patch for a Diskless Client

This example shows how to add a Solaris 8 patch (111879-01) to the diskless client's OS services on the server.


# /usr/sadm/bin/smosservice patch -- -a /var/patches/111879-01
Authenticating as user: root
.
.
.
# /usr/sadm/bin/smosservice patch -- -P
Patches In Spool Area
Os Rel Arch   Patch Id  Synopsis
----------------------------------------------------------------------------
8      sparc  111879-01 SunOS 5.8: Solaris Product Registry patch SUNWwsr   
.
.
.
# /usr/sadm/bin/smosservice patch -- -m -U
Authenticating as user: root
.
.
.
# /usr/sadm/bin/smosservice patch -- -P
Authenticating as user: root
.
.
.
Patches In Spool Area
Os Rel Arch   Patch Id  Synopsis
----------------------------------------------------------------------------
8      sparc  111879-01 SunOS 5.8: Solaris Product Registry patch SUNWwsr   

Patches Applied To OS Services
Os Service                              Patch
----------------------------------------------------------------------------
Solaris_8                               

Patches Applied To Clone Areas
Clone Area                              Patch
----------------------------------------------------------------------------
Solaris_8/sun4u     

Troubleshooting Diskless Client Problems

This section lists some common problems with diskless clients and possible solutions.

Problem
  • OS server does not respond to client RARP requests

  • OS server does not respond to client bootparam requests

  • OS server cannot mount diskless client root file system

Solution

In a files environment

  • Verify that files is listed as the first source for hosts, ethers, and bootparams in the /etc/nsswitch.conf file on the OS server.

  • Verify that the client's IP address appears in the /etc/inet/hosts file.

  • Verify that the client's Ethernet address appears in the /etc/ethers file.

  • Verify that the /etc/bootparams file contains the following paths to the client's root and swap areas:


    client root=os-server:/export/root/client swap=os-server:
    /export/swap/client 
    

    The swap size varies depending on whether you specify the -x swapsize option when you add the diskless client. If you specify the -x dump option when you add the diskless client, the following line is present:


    dump=os-server:/export/dump/client dumpsize=24

    The dump size varies depending on whether you specify the -x dumpsize option when you add the diskless client.

  • Verify that the OS server's IP address appears in the /export/root/client/etc/inet/hosts file.

In a name service environment

  • Verify that both the OS server's and the client's Ethernet address and IP address are correctly mapped.

  • Verify that the /etc/bootparams file contains the paths to the client's root and swap areas, as follows:


    client root=os-server:/export/
    root/client swap=os-server:/export/
    swap/client swapsize=24

    The swap size varies depending on whether you specify the -x swapsize option when you add the diskless client. If you specify the -x dump option when you add the diskless client, the following line is present:


    dump=os-server:/export/dump/client dumpsize=24

    The dump size varies depending on whether you specify the -x dumpsize option when you add the diskless client.

Problem

Diskless client panics

Solution
  • Verify that the OS server's Ethernet address is correctly mapped to its IP address. If you physically moved a system from one network to another, you might have forgotten to remap the system's new IP address.

  • Verify that the client's host name, IP address, and Ethernet address do not exist in the database of another server on the same subnet that responds to the client's RARP, TFTP, or bootparam requests. Often, test systems are set up to install their OS from an install server. In these cases, the install server answers the client's RARP or bootparam request, returning an incorrect IP address. This incorrect address might result in the download of a boot program for the wrong architecture, or a failure to mount the client's root file system.

  • Verify that the diskless client's TFTP requests are not answered by an install server (or previous OS server) that transfers an incorrect boot program. If the boot program is of a different architecture, the client immediately panics. If the boot program loads from a non-OS server, the client might obtain its root partition from the non-OS server and its /usr partition from the OS server. In this situation, the client panics if the root and /usr partitions are of conflicting architectures or versions.

  • If you are using both an install server and an OS server, verify that the following entry exists in the /etc/dfs/dfstab file:


    share -F nfs -o -ro /export/exec/Solaris_version_instruction_set.all/usr
    

    Where version=2.6, 2.7, 8, 9, and instruction_set=sparc or i386.

  • Verify that the diskless client's root, /swap, and /dump (if specified) partitions have share entries:


    share -F nfs -o rw=client,root=client /export/root/client 
    share -F nfs -o rw=client,root=client /export/swap/client 
    share -F nfs -o rw=client,root=client /export/dump/client 
    
  • On the OS server, type the following to check which files are shared:


    % share
    

    The OS server must share /export/root/client and /export/swap/client_name (defaults), or the root, /swap, and /dump partitions you specified when you added the diskless client.

    Verify that the following entries exists in the /etc/dfs/dfstab file:


    share -F nfs -o ro /export/exec/Solaris_version_instruction_set.all/usr
    share -F nfs -o rw=client,root=client /export/root/client
    share -F nfs -o rw=client,root=client /export/swap/client
    

Problem

OS server is not responding to diskless client's RARP request

Solution

From the client's intended OS server, run the snoop command as root by using the client's Ethernet address:


# snoop xx:xx:xx:xx:xx:xx

Problem

Boot program downloads, but panics early in the process

Solution

Using the snoop command, verify that the intended OS server is answering the client's TFTP and NFS requests.

Problem
  • Diskless client hangs

  • Incorrect server responds to diskless client's RARP request

Solution

Restart the following daemons on the OS server:


# /usr/sbin/rpc.bootparamd
# /usr/sbin/in.rarpd -a