Translate

Image of XSLT 2.0 and XPath 2.0 Programmer's Reference (Programmer to Programmer)
Image of Beginning Google Maps API 3
Image of Operating System Concepts
Image of Advanced Programming in the UNIX Environment, Second Edition (Addison-Wesley Professional Computing Series)

Exploring NetApp Simulate ONTAP

NetApp Simulate ONTAP is a simulator for running Data ONTAP software. It has been available for a number of years to NetApp customers and partners, and is readily obtainable (unofficially) from any number of websites. It enables you to test most features of Data ONTAP 7-Mode or Cluster-Mode, and is an excellent tool for learning about the features of Data ONTAP.

There have been various versions of Simulate ONTAP over the years. Initially it had to be installed on a Red Hat or SuSE Linux platform but over the years more Linux distributions were added. Nowadays Simulate ONTAP is also available as a VMware virtual machine that runs in a hypervisor such as VMware Workstation on either a Windows or a Mac system.

Simulate ONTAP has some limitations:

  • Non-Volatile RAM (NVRAM) is simulated and is not persistent.
  • You must shut down the simulator properly to avoid data loss.
  • There is no access to a Service Processor.
  • You can have a maximum of 4 simulated disk shelves with 14 disk drives per shelf, for a total
    of 56 drives.
  • Each simulated drive is limited to 9 GB in the current version of the simulator.
  • You can create 64-bit aggregates, but they are limited to a maximum of 9 GB per simulated disk
    drive.

The simulator image comes pre-configured with 28 1 GB disks. There are 14 each on simulated disk shelves 0 and 1. Disk shelves 2 and 3 are not populated. You can configure up to a maximum of 220 GB total disk space for each Simulate ONTAP node.

The 48 GB disk that comes with the simulate ONTAP VM is far too small for practical use and should be expanded if you wish to store real data on the simulator. You need to increase the size of the disk and then extend the partitions/slices within the simulator disk to take advantage of the new increased disk space available to the VM. Because the simulator runs on FreeBSD, you will have to download a live copy of FreeBSD and boot from it to modify the disk partitions/slices. See here for more information.

Here is my Data ONTAP 7-Mode VM configuration:

and here is the output of sysconfig -v:

ontap*> sysconfig -v
        NetApp Release 8.1RC2X13 7-Mode: Thu Oct 27 19:26:21 PDT 2011
        System ID: 4061491118 (ontap)
        System Serial Number: 4061491-11-8 (ontap)
        System Storage Configuration: Multi-Path
        System ACP Connectivity: NA
        slot 0: System Board 2.4 GHz (NetApp VSim)
                Model Name:         SIMBOX
                Serial Number:      999999
                Loader version:     1.0
                Processors:         2
                Memory Size:        1599 MB
                Memory Attributes:  None
        slot 0: 10/100/1000 Ethernet Controller V
                e0a MAC Address:    00:0c:29:c1:1d:f1 (auto-1000t-fd-up)
                e0b MAC Address:    00:0c:29:c1:1d:fb (auto-1000t-fd-up)
                e0c MAC Address:    00:0c:29:c1:1d:05 (auto-1000t-fd-up)
                e0d MAC Address:    00:0c:29:c1:1d:0f (auto-1000t-fd-up)
                Device Type:        Rev 1
ontap*>

I assume that you are somewhat familiar with Data ONTAP and Unix commands if you are reading this blog post so I am not going to explain the various commands unless it is necessary.

To get root access, we need to unlock and set a password for the hidden user diaguser and access the systemshell as shown below:

For some reason, the hidden diagnostic user is named diaguser but invoked as diag!

When you login to the systemshell, you are actually placed into a C Shell (csh) with a user id of 1002 and a home directory of /var/home/diag. Some useful aliases are available to you.

ontap% alias
h       (history 25)
j       (jobs -l)
la      (ls -a)
lf      (ls -FA)
ll      (ls -lA)
ontap%

Unfortunately logging into systemshell as user diag does not provide you with root privileges.

So how do you become root? Quite easily as it turns out. The Bash shell exists on the VM at /usr/bin/bash and is owned by root. So invoking sudo bash changes your id to 0, i.e. root, as shown above. Note that no man pages are available in either of these shells.

By the way, you could also have entered sudo /bin/sh to instead use a Bourne shell, but then you would not have command completion or command history.

Here is the contents of /etc/sudoers:

bash-3.2# cat /etc/sudoers
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
# Failure to use 'visudo' may result in syntax or file permission errors
# that prevent sudo from running.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification
# Uncomment if needed to preserve environmental variables related to the
# FreeBSD pkg_* utilities.
#Defaults       env_keep += "PKG_PATH PKG_DBDIR PKG_TMPDIR TMPDIR PACKAGEROOT PACKAGESITE PKGDIR"

# Uncomment if needed to preserve environmental variables related to
# portupgrade. (portupgrade uses some of the same variables as the pkg_*
# tools so their Defaults above should be uncommented if needed too.)
#Defaults       env_keep += "PORTSDIR PORTS_INDEX PORTS_DBDIR PACKAGES PKGTOOLS_CONF"

# Runas alias specification

# User privilege specification
root    ALL=(ALL) ALL
diag    ALL=(ALL) NOPASSWD: ALL

# Uncomment to allow people in group wheel to run all commands
# %wheel        ALL=(ALL) ALL

# Same thing without a password
# %wheel        ALL=(ALL) NOPASSWD: ALL

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now
bash-3.2#


Nothing exciting or interesting there except that the user diag can gain elevated privilege without entering a password whereas root has to enter a password.

So where is the real password file? Turns out that it is in /var/etc.

bash-3.2# cd /var/etc
bash-3.2# ls
bootargs                localtime               periodic.conf.local
dhclient-enter-hooks    master.passwd           php.ini
dhclient.conf           mgmtlogspec             pwd.db
fstab                   motd                    rc.conf
group                   ndmpd.conf              resolv.conf
host.conf               newsyslog.conf          spwd.db
hosts                   nsmb.conf               ssh
httpd-custom.conf       nsswitch.conf           sysctl.conf
httpd-custom.conf.old   ntp.conf                ttys
httpd-vserver.conf      opieaccess              ttys.old
inetd.conf              passwd
ipf.user.rules          periodic.conf
bash-3.2#


and here is the contents of the password file as obtained using vipw:

# $FreeBSD: src/etc/master.passwd,v 1.40 2005/06/06 20:19:56 brooks Exp $
#
root:$1$9f58c0d6$NcokQbZbvosXgi2G/EQ2L.:0:0::0:0:Charlie &:/root:/usr/sbin/nologin
toor:*:0:0::0:0:Bourne-again Superuser:/root:
daemon:*:1:1::0:0:Owner of many system processes:/root:/usr/sbin/nologin
operator:*:2:5::0:0:System &:/:/usr/sbin/nologin
bin:*:3:7::0:0:Binaries Commands and Source:/:/usr/sbin/nologin
tty:*:4:65533::0:0:Tty Sandbox:/:/usr/sbin/nologin
kmem:*:5:65533::0:0:KMem Sandbox:/:/usr/sbin/nologin
games:*:7:13::0:0:Games pseudo-user:/usr/games:/usr/sbin/nologin
news:*:8:8::0:0:News Subsystem:/:/usr/sbin/nologin
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/usr/sbin/nologin
sshd:*:22:22::0:0:Secure Shell Daemon:/var/empty:/usr/sbin/nologin
smmsp:*:25:25::0:0:Sendmail Submission User:/var/spool/clientmqueue:/usr/sbin/no
login
mailnull:*:26:26::0:0:Sendmail Default User:/var/spool/mqueue:/usr/sbin/nologin
bind:*:53:53::0:0:Bind Sandbox:/:/usr/sbin/nologin
proxy:*:62:62::0:0:Packet Filter pseudo-user:/nonexistent:/usr/sbin/nologin
_pflogd:*:64:64::0:0:pflogd privsep user:/var/empty:/usr/sbin/nologin
_dhcp:*:65:65::0:0:dhcp programs:/var/empty:/usr/sbin/nologin
uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/local/libexec/uucp/uucico


You can change the root password using the passwd utility and it will persist across a reboot.

Here are the default kernel tuning details:

bash-3.2# cat sysctl.conf
# $FreeBSD: src/etc/sysctl.conf,v 1.8 2003/03/13 18:43:50 mux Exp $
#
#  This file is read when going to multi-user and its contents piped thru
#  ``sysctl'' to adjust kernel values.  ``man 5 sysctl.conf'' for details.
#

# Uncomment this to prevent users from seeing information about processes that
# are being run under another UID.
#security.bsd.see_other_uids=0
debug.kdb.current=gdb
net.link.ether.inet.log_arp_movements=0
# Prevent ephemeral port assignments within "spinport" range of ontap-ng
net.inet.ip.portrange.lowfirst=899
kern.ipc.maxsockbuf=2621440
net.inet.tcp.local_slowstart_flightsize=10
net.inet.tcp.nolocaltimewait=1

Here is a listing of the files and directories in the root filesystem:

bash-3.2# cd /
bash-3.2# ls -al
total 7367
drwxr-xr-x  24 root  wheel     1024 Oct 31  2011 .
drwxr-xr-x  24 root  wheel     1024 Oct 31  2011 ..
-rw-r--r--   2 root  wheel      786 Oct 28  2011 .cshrc
-rw-r--r--   2 root  wheel      253 Oct 28  2011 .profile
-rw-r--r--   1 root  wheel      146 Oct 28  2011 BUILD
-r--r--r--   1 root  wheel      193 Oct 28  2011 COMPAT.TXT
-r--r--r--   1 root  wheel     6134 Oct 28  2011 COPYRIGHT
-r-xr-xr-x   1 root  wheel    18480 Oct 28  2011 INSTALL
-r--r--r--   1 root  wheel     1072 Oct 28  2011 README.TXT
-r--r--r--   1 root  wheel       10 Oct 31  2011 VERSION
drwxr-xr-x   2 root  wheel     1024 Oct 28  2011 bin
drwxr-xr-x   6 root  wheel      512 Oct 28  2011 boot
-r--r--r--   1 root  wheel    17458 Oct 28  2011 cap.xml
dr-xr-xr-x   1 root  wheel    16384 Jan  1  1980 cfcard
dr-xr-xr-x   2 root  wheel      512 Mar 29 19:36 clus
dr-xr-xr-x   5 root  wheel      512 Mar 29 19:36 dev
drwxr-xr-x  26 root  wheel     3584 Oct 28  2011 etc
drwxr-xr-x   2 root  wheel     1024 Oct 28  2011 fw
drwxr-xr-x   3 root  wheel     1024 Oct 28  2011 lib
drwxr-xr-x   2 root  wheel      512 Oct 28  2011 libexec
drwxr-xr-x   2 root  wheel      512 Oct 28  2011 media
drwxr-xr-x   2 root  wheel      512 Oct 28  2011 mnt
drwxrwxrwx   6 root  wheel     4096 Mar 26 15:14 mroot
-rw-r--r--   1 root  wheel  3564799 Oct 28  2011 mroot.tgz
-rw-r--r--   1 root  wheel       20 Oct 28  2011 mroot_late.tgz
drwxr-xr-x   2 root  wheel      512 Oct 28  2011 nfsroot
drwxr-xr-x   3 root  wheel      512 Oct 28  2011 ontap
drwxr-xr-x   2 root  wheel      512 Oct 28  2011 partner
drwxr-xr-x   7 root  wheel      512 Oct 28  2011 platform
dr-xr-xr-x   1 root  wheel        0 Mar 29 19:39 proc
drwxr-xr-x   2 root  wheel      512 Oct 28  2011 rescue
drwxr-xr-x   3 root  wheel      512 Oct 28  2011 root
drwxr-xr-x   2 root  wheel     2560 Oct 28  2011 sbin
drwxr-xr-x   9 root  wheel      512 Jan 12  2011 sim
drwxr-xr-x   8 root  wheel      512 Oct 28  2011 sldiag
drwxrwxrwt   8 root  wheel      512 Mar 29 19:37 tmp
drwxr-xr-x   2 root  wheel      512 Oct 28  2011 u
drwxr-xr-x  13 root  wheel      512 Oct 28  2011 usr
drwxr-xr-x  23 root  wheel     1024 Mar 29 19:38 var
-rw-r--r--   1 root  wheel    20529 Oct 31  2011 varfs.tgz
-r--r--r--   1 root  wheel    38674 Oct 28  2011 vs_conf_files.tgz

and here are the mounted filesystems:

bash-3.2# mount
/dev/md0 on / (ufs, local, read-only)
devfs on /dev (devfs, local)
/dev/ad1 on /cfcard (msdosfs, local)
/dev/md1 on / (ufs, local, read-only, union)
/dev/md2 on /platform (ufs, local, read-only)
/dev/ad0s4b on /sim (ufs, local, noclusterr, noclusterw)
/dev/ad0s2 on /var (ufs, local, synchronous)
procfs on /proc (procfs, local)
/dev/md3 on /tmp (ufs, local, soft-updates)
localhost:0x80000000,0x433dc5f2 on /mroot (spin)
clusfs on /clus (clusfs, local)
/mroot/etc/cluster_config/vserver on /mroot/vserver_fs (vserverfs, union)

The /mroot directory is of particular interest:

bash-3.2# cd /mroot/etc
bash-3.2# ls
.avail                  group                   registry
.mroot.cksum            hosts                   registry.0
.mroot_late.cksum       hosts.bak               registry.1
.pmroot.cksum           hosts.equiv             registry.bck
.pmroot_late.cksum      hosts.equiv.bak         registry.default
.zapi                   http                    registry.lastgood
acpp_fw                 initial_varfs.tgz       registry.local
asup_content.conf       issue                   registry.local.0
backups                 keymgr                  registry.local.1
cifs_homedir.cfg        lang                    registry.local.bck
cifs_nbalias.cfg        lclgroups.bak           serialnum
cifsconfig_setup.cfg    lclgroups.cfg           services
cifsconfig_share.cfg    log                     shelf_fw
cifssec.cfg             man                     snmppersist.conf
clihelp                 messages                sshd
cluster_config          mib                     stats
configs                 mlnx                    sysconfigtab
crash                   mlog                    syslog.conf
dgateways               netapp_filer.dtd        syslog.conf.sample
dgateways.bak           nsswitch.conf           tape_config
disk_fw                 nsswitch.conf.bak       usermap.cfg
exports                 oldvarfs.tgz            varfs.tgz
exports.bak             ontapAuditE.dll         vfiler
filersid.cfg            passwd                  www
firmware                quotas                  zoneinfo
fpm                     rc
bash-3.2#

Simulated disks are stored in userspace under /sim:

bash-3.2# pwd
/sim/dev/,disks
bash-3.2# ls -al
total 6430400
-rwxr-xr-x  1 root  wheel         912 Mar 26 14:55 ,reservations
drwxr-xr-x  2 root  wheel        2048 Mar 26 14:55 .
drwxr-xr-x  4 root  wheel         512 Jan 12  2011 ..
-rw-r--r--  1 root  wheel        1372 Jan 12  2011 Shelf:DiskShelf14
-rw-r--r--  1 root  wheel  1094312960 Mar 29 19:56 v0.16:NETAPP__:VD-1000MB-FZ-520:12082500:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 29 19:56 v0.17:NETAPP__:VD-1000MB-FZ-520:12082501:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 29 19:56 v0.18:NETAPP__:VD-1000MB-FZ-520:12082502:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 27 16:27 v0.19:NETAPP__:VD-1000MB-FZ-520:12082503:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 27 16:27 v0.20:NETAPP__:VD-1000MB-FZ-520:12082504:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 27 16:27 v0.21:NETAPP__:VD-1000MB-FZ-520:12082505:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 27 16:27 v0.22:NETAPP__:VD-1000MB-FZ-520:12082606:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 27 16:27 v0.24:NETAPP__:VD-1000MB-FZ-520:12082607:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 27 16:27 v0.25:NETAPP__:VD-1000MB-FZ-520:12082608:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 27 16:27 v0.26:NETAPP__:VD-1000MB-FZ-520:12082609:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 27 16:27 v0.27:NETAPP__:VD-1000MB-FZ-520:12082610:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 27 16:27 v0.28:NETAPP__:VD-1000MB-FZ-520:12082611:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 27 16:27 v0.29:NETAPP__:VD-1000MB-FZ-520:12082612:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 27 16:27 v0.32:NETAPP__:VD-1000MB-FZ-520:12082613:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 29 20:00 v1.16:NETAPP__:VD-1000MB-FZ-520:14323800:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 29 20:00 v1.17:NETAPP__:VD-1000MB-FZ-520:14323801:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 29 20:00 v1.18:NETAPP__:VD-1000MB-FZ-520:14323802:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 26 21:29 v1.19:NETAPP__:VD-1000MB-FZ-520:14323803:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 26 21:29 v1.20:NETAPP__:VD-1000MB-FZ-520:14323804:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 26 21:29 v1.21:NETAPP__:VD-1000MB-FZ-520:14323805:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 26 21:29 v1.22:NETAPP__:VD-1000MB-FZ-520:14323806:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 26 21:29 v1.24:NETAPP__:VD-1000MB-FZ-520:14323907:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 26 21:29 v1.25:NETAPP__:VD-1000MB-FZ-520:14323908:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 26 21:29 v1.26:NETAPP__:VD-1000MB-FZ-520:14323909:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 26 21:29 v1.27:NETAPP__:VD-1000MB-FZ-520:14323910:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 26 21:29 v1.28:NETAPP__:VD-1000MB-FZ-520:14323911:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 26 21:29 v1.29:NETAPP__:VD-1000MB-FZ-520:14323912:2104448
-rw-r--r--  1 root  wheel  1094312960 Mar 26 21:29 v1.32:NETAPP__:VD-1000MB-FZ-520:14323913:2104448
bash-3.2#

Here we see 2 shelves (0 and 1) with 14 disks apiece. Note there is no v0.23, v0.30, v0.31 or v1.23, v1.30, v1.31 disks. Can you figure out why?

See Netapp Support DOC-9579 for detailed information about how to add more disks to Simulate ONTAP.

Here is how to add another shelf (2) with 14 x VD-4000MB-FZ-520 (4 Gb) disks:

bash3-2# cd /sim/dev
bash3-2# vsim_makedisks -n 14 -t 31 -a 2
Creating ,disks/v2.16:NETAPP__:VD-4000MB-FZ-520:20645500:8248448
Creating ,disks/v2.17:NETAPP__:VD-4000MB-FZ-520:20645501:8248448
Creating ,disks/v2.18:NETAPP__:VD-4000MB-FZ-520:20645502:8248448
Creating ,disks/v2.19:NETAPP__:VD-4000MB-FZ-520:20645503:8248448
Creating ,disks/v2.20:NETAPP__:VD-4000MB-FZ-520:20645504:8248448
Creating ,disks/v2.21:NETAPP__:VD-4000MB-FZ-520:20645505:8248448
Creating ,disks/v2.22:NETAPP__:VD-4000MB-FZ-520:20645506:8248448
Creating ,disks/v2.24:NETAPP__:VD-4000MB-FZ-520:20645507:8248448
Creating ,disks/v2.25:NETAPP__:VD-4000MB-FZ-520:20645508:8248448
Creating ,disks/v2.26:NETAPP__:VD-4000MB-FZ-520:20645509:8248448
Creating ,disks/v2.27:NETAPP__:VD-4000MB-FZ-520:20645510:8248448
Creating ,disks/v2.28:NETAPP__:VD-4000MB-FZ-520:20645511:8248448
Creating ,disks/v2.29:NETAPP__:VD-4000MB-FZ-520:20645512:8248448
Creating ,disks/v2.32:NETAPP__:VD-4000MB-FZ-520:20645513:8248448
Shelf file Shelf:DiskShelf14 updated

Here is the only useful documentation on the vsim_makedisks utility that I can find:

bash-3.2# vsim_makedisks -h
Usage: /usr/sbin/vsim_makedisks [ -n <additional number of disks to create> ]
          [ -t <disk type ID> ]
          [ -e <additional sectors> ]
          [ -a <adapter on which to start populating disks> ]
          [ -h ]

By default 5 disks will be added. The >disk type ID>> can be one
of the following: (NOTE, 0 is the default)
                                                               Fast
Type Vendor ID Product ID       Usable Size[B] Actual Size[B]  Zero  BPS   RPM
  0  NETAPP__  VD-16MB_________     16,777,216     38,273,024   No   512  10000
  1  NETAPP__  VD-35MB_________     35,913,728     57,409,536   No   512  10000
  2  NETAPP__  VD-50MB_________     52,428,800     73,924,608   No   512  10000
  3  NETAPP__  VD-100MB________    104,857,600    126,353,408   No   512  10000
  4  NETAPP__  VD-500MB________    524,288,000    545,783,808   No   512  10000
  5  NETAPP__  VD-1000MB_______  1,048,576,000  1,070,071,808   No   512  10000
  6  NETAPP__  VD-16MB-FZ______     16,777,216     38,273,024   Yes  512  15000
  7  NETAPP__  VD-35MB-FZ______     35,913,728     57,409,536   Yes  512  15000
  8  NETAPP__  VD-50MB-FZ______     52,428,800     73,924,608   Yes  512  15000
  9  NETAPP__  VD-100MB-FZ_____    104,857,600    126,353,408   Yes  512  15000
 10  NETAPP__  VD-500MB-FZ_____    524,288,000    545,783,808   Yes  512  15000
 11  NETAPP__  VD-1000MB-FZ____  1,048,576,000  1,070,071,808   Yes  512  15000
 12  NETAPP__  VD-16MB-520_____     16,777,216     38,273,024   No   520  10000
 13  NETAPP__  VD-35MB-520_____     35,913,728     57,409,536   No   520  10000
 14  NETAPP__  VD-50MB-520_____     52,428,800     73,924,608   No   520  10000
 15  NETAPP__  VD-100MB-520____    104,857,600    126,353,408   No   520  10000
 16  NETAPP__  VD-500MB-520____    524,288,000    545,783,808   No   520  10000
 17  NETAPP__  VD-1000MB-520___  1,048,576,000  1,070,071,808   No   520  10000
 18  NETAPP__  VD-16MB-FZ-520__     16,777,216     38,273,024   Yes  520  15000
 19  NETAPP__  VD-35MB-FZ-520__     35,913,728     57,409,536   Yes  520  15000
 20  NETAPP__  VD-50MB-FZ-520__     52,428,800     73,924,608   Yes  520  15000
 21  NETAPP__  VD-100MB-FZ-520_    104,857,600    126,353,408   Yes  520  15000
 22  NETAPP__  VD-500MB-FZ-520_    524,288,000    545,783,808   Yes  520  15000
 23  NETAPP__  VD-1000MB-FZ-520  1,048,576,000  1,070,071,808   Yes  520  15000
 24  NETAPP__  VD-16MB-FZ-ATA__     16,777,216     51,388,416   Yes  512   7200
 25  NETAPP__  VD-35MB-FZ-ATA__     36,700,160     73,801,728   Yes  512   7200
 26  NETAPP__  VD-50MB-FZ-ATA__     52,428,800     91,496,448   Yes  512   7200
 27  NETAPP__  VD-100MB-FZ-ATA_    104,857,600    150,478,848   Yes  512   7200
 28  NETAPP__  VD-500MB-FZ-ATA_    524,288,000    622,338,048   Yes  512   7200
 29  NETAPP__  VD-1000MB-FZ-ATA  1,048,576,000  1,212,162,048   Yes  512   7200
 30  NETAPP__  VD-2000MB-FZ-520  2,097,512,000  2,159,272,960   Yes  520  15000
 31  NETAPP__  VD-4000MB-FZ-520  4,194,304,000  4,289,192,960   Yes  520  15000
 32  NETAPP__  VD-2000MB-FZ-ATA  2,097,512,000  2,391,810,048   Yes  512   7200
 33  NETAPP__  VD-4000MB-FZ-ATA  4,194,304,000  4,751,106,048   Yes  512   7200
 34  NETAPP__  VD-100MB-SS-512_    104,857,600    126,353,408   Yes  512  15000
 35  NETAPP__  VD-500MB-SS-520_    524,288,000    545,783,808   Yes  520  15000
bash3-2#


Switching topics now to how you can display a banner before the login prompt and display another banner after successful login. Displaying a banner after a successful login is not a problem as anything in /etc/motd will be displayed.

Looking at /etc/gettytab, the default termcap capability if is set to /etc/issue. This means that anything in /etc/issue will be displayed on the console before the login prompt. See FreeBSD gettytab(5) man page for more information.

default:\
        :cb:ce:ck:lc:fd#1000:im=\r\n%s/%m (%h) (%t)\r\n\r\n:sp#1200:\
        :if=/etc/issue:

You also need to modify the ssh daemon (sshd) configuration file to display a banner page before an ssh login prompt. The settings for sshd are located in /var/etc/ssh

bash3.2#  cd /var/etc/ssh
bash3.2#  ls -l 
-rw-r--r--  1 root  wheel  88039 Oct 28  2011 moduli
-rw-r--r--  1 root  wheel   1283 Mar 30 02:07 ssh_config
-rw-------  1 root  wheel    668 Mar 26 14:55 ssh_host_dsa_key
-rw-r--r--  1 root  wheel    595 Mar 26 14:55 ssh_host_dsa_key.pub
-rw-------  1 root  wheel    520 Mar 26 14:55 ssh_host_key
-rw-r--r--  1 root  wheel    324 Mar 26 14:55 ssh_host_key.pub
-rw-------  1 root  wheel   1675 Mar 26 14:55 ssh_host_rsa_key
-rw-r--r--  1 root  wheel    387 Mar 26 14:55 ssh_host_rsa_key.pub
-rw-r--r--  1 root  wheel   2454 Oct 28  2011 sshd_config

To display a banner before the ssh login, modify sshd_config, uncomment the Banner directive and set it to /etc/issue. Also set the hidden registry option ssh2.banner.enable to on using the options command in ONTAP shell advanced mode.

This is what is displayed after the above modifications were made and the ssh daemon restarted.

===================================
        BEFORE LOGIN NOTICE
===================================
login as: root
root@192.168.1.20's password:
===================================
        AFTER LOGIN NOTICE
===================================
ontap> 


Note that some versions of Putty only display /etc/issue after you enter your username. This is a known issue.

Option settings are persisted in /mroot/etc/registry*

bash-3.2# ls -l /mroot/etc/registry*
-rwx------  2 root  wheel  46012 Mar 30 01:14 /mroot/etc/registry
-rwx------  1 root  wheel  46012 Mar 30 01:13 /mroot/etc/registry.0
-rwx------  2 root  wheel  46012 Mar 30 01:14 /mroot/etc/registry.1
-rwx------  1 root  wheel  46012 Mar 30 01:14 /mroot/etc/registry.bck
-rwx------  1 root  wheel  14849 Mar 26 15:11 /mroot/etc/registry.default
-rwx------  1 root  wheel  46012 Mar 30 01:13 /mroot/etc/registry.lastgood
-rwx------  2 root  wheel  33572 Mar 30 01:14 /mroot/etc/registry.local
-rwx------  2 root  wheel  33572 Mar 30 01:14 /mroot/etc/registry.local.0
-rwx------  1 root  wheel  33572 Mar 30 01:13 /mroot/etc/registry.local.1
-rwx------  1 root  wheel  33572 Mar 30 01:14 /mroot/etc/registry.local.bck
bash-3.2#

The registry contains over 1300 entries. Here are the hidden default. entries.

bash-3.2# grep "^default" /mroot/etc/registry
default.options.autosupport.ems.enable=off
default.options.autosupport.enable=on
default.options.autosupport.local.nht_data.enable=off
default.options.autosupport.nht_data.enable=off
default.options.autosupport.nht_data.max=1
default.options.autosupport.support.transport=https
default.options.cf.giveback.auto.attempts.count=3
default.options.cf.giveback.auto.attempts.minutes=10
default.options.cf.giveback.auto.cancel.on_network_failure=on
default.options.cf.giveback.auto.cifs.terminate.minutes=5
default.options.cf.giveback.auto.enable=off
default.options.cf.giveback.auto.terminate.bigjobs=on
default.options.cf.nodestatus.enable=on
default.options.cf.nodestatus.read.interval.seconds=5
default.options.cf.nodestatus.write.interval.seconds=5
default.options.cf.takeover.change_fsid=on
default.options.cf.takeover.detection.seconds=15
default.options.cf.takeover.on_network_interface_failure.policy=all_nics
default.options.cf.takeover.short_uptime=60
default.options.cf.transit_time.seconds = 10*60
default.options.cifs.audit.autosave.file.extension=timestamp
default.options.cifs.audit.autosave.file.limit=4
default.options.cifs.audit.autosave.onsize.enable=off
default.options.cifs.audit.autosave.onsize.threshold=75%25
default.options.cifs.audit.autosave.ontime.enable=off
default.options.cifs.audit.autosave.ontime.interval=1d
default.options.cifs.audit.membufsize=65536
default.options.cifs.max_mpx=50
default.options.cifs.neg_buf_size=33028
default.options.clone.exclude=file.contents.rc%2cfile.contents.hosts%2coptions.if%2coptions.hosts%2coptions.license%2coptions.system.hostname%2coptions.vfconfig
default.options.coredump.dump.attempts=2
default.options.coredump.metadata_only=on
default.options.ftpd.3way.enable=off
default.options.if.default.flowcontrol=send
default.options.if.default.mediatype=auto
default.options.if.default.trusted=on
default.options.if.default.wins=on
default.options.interface.blocked.mgmt_data_traffic=off
default.options.lun.partner_unreachable.linux.asc=0x4
default.options.lun.partner_unreachable.linux.ascq=0x1
default.options.lun.partner_unreachable.linux.behavior=error
default.options.lun.partner_unreachable.linux.hold_time=5
default.options.lun.partner_unreachable.linux.skey=0x2
default.options.lun.partner_unreachable.vmware.asc=0x0
default.options.lun.partner_unreachable.vmware.ascq=0x0
default.options.lun.partner_unreachable.vmware.behavior=error
default.options.lun.partner_unreachable.vmware.hold_time=1
default.options.lun.partner_unreachable.vmware.scsi_status=0x8
default.options.lun.partner_unreachable.vmware.skey=0x0
default.options.ndmpd.connectlog.enabled=off
default.options.nfs.udp.xfersize=32768
default.options.sysconfig.boot_check=on
default.options.sysconfig.periodic_check=on
bash-3.2#

Here are the hidden state. entries.

bash-3.2# grep "^state" /mroot/etc/registry
state.admin.security.upgrade=on
state.backupops.group.upgrade=true
state.config.audit_refresh.last=1396141487
state.config.etc_refresh.last=1396142034
state.config.etcfiles.lastupdate.cifs_homedir.cfg=1395942242
state.config.etcfiles.lastupdate.cifs_nbalias.cfg=1395942242
state.config.etcfiles.lastupdate.cifsconfig_setup.cfg=1395942242
state.config.etcfiles.lastupdate.cifsconfig_share.cfg=1395942242
state.config.etcfiles.lastupdate.cifssec.cfg=1395942242
state.config.etcfiles.lastupdate.dgateways=1395846669
state.config.etcfiles.lastupdate.exports=1395846669
state.config.etcfiles.lastupdate.group=1395942198
state.config.etcfiles.lastupdate.hosts=1395846669
state.config.etcfiles.lastupdate.hosts.equiv=1395846669
state.config.etcfiles.lastupdate.issue=1396141261
state.config.etcfiles.lastupdate.lclgroups.cfg=1396139272
state.config.etcfiles.lastupdate.motd=1396141284
state.config.etcfiles.lastupdate.nsswitch.conf=1395846669
state.config.etcfiles.lastupdate.passwd=1395942197
state.config.etcfiles.lastupdate.quotas=1395845921
state.config.etcfiles.lastupdate.rc=1395846669
state.config.etcfiles.lastupdate.serialnum=1395925552
state.config.etcfiles.lastupdate.syslog.conf=1395941909
state.config.etcfiles.lastupdate.usermap.cfg=1395942242
state.config.etcfiles.source.cifs_homedir.cfg=local
state.config.etcfiles.source.cifs_nbalias.cfg=local
state.config.etcfiles.source.cifsconfig.cfg=local
state.config.etcfiles.source.cifsconfig.txt=local
state.config.etcfiles.source.cifsconfig_setup.cfg=local
state.config.etcfiles.source.cifsconfig_share.cfg=local
state.config.etcfiles.source.cifssec.cfg=local
state.config.etcfiles.source.dgateways=local
state.config.etcfiles.source.dumpdates=local
state.config.etcfiles.source.exports=local
state.config.etcfiles.source.filessid.cfg=local
state.config.etcfiles.source.gateways=local
state.config.etcfiles.source.group=local
state.config.etcfiles.source.home_dir=local
state.config.etcfiles.source.hosts=local
state.config.etcfiles.source.hosts.equiv=local
state.config.etcfiles.source.httpd.access=local
state.config.etcfiles.source.httpd.group=local
state.config.etcfiles.source.httpd.hostprefixes=local
state.config.etcfiles.source.httpd.mimetypes=local
state.config.etcfiles.source.httpd.passwd=local
state.config.etcfiles.source.httpd.translations=local
state.config.etcfiles.source.issue=local
state.config.etcfiles.source.krb5.keytab=local
state.config.etcfiles.source.lclgroups.cfg=local
state.config.etcfiles.source.motd=local
state.config.etcfiles.source.netbios_aliases=local
state.config.etcfiles.source.netgroup=local
state.config.etcfiles.source.networks=local
state.config.etcfiles.source.nsswitch.conf=local
state.config.etcfiles.source.passwd=local
state.config.etcfiles.source.quotas=local
state.config.etcfiles.source.rc=local
state.config.etcfiles.source.resolv.conf=local
state.config.etcfiles.source.serialnum=local
state.config.etcfiles.source.shadow=local
state.config.etcfiles.source.snapmirror.allow=local
state.config.etcfiles.source.snapmirror.conf=local
state.config.etcfiles.source.symlink.translations=local
state.config.etcfiles.source.syslog.conf=local
state.config.etcfiles.source.usermap.cfg=local
state.config.refresh.last=1396142034
state.licenseupgrade.packaging=true
state.nfs.exports.internal.version=2
state.optionenable.raid.disk.timeout_bsas=true
state.optionenable.raid.disk.timeout_fc_ario=true
state.optionenable.raid.disk.timeout_fc_ario_sata_sas_fix.enable=true
state.optionenable.raid.disk.timeout_fsas=true
state.optionenable.raid.disk.timeout_sata_sas=true
state.optionenable.raid.disk.timeout_ssd=true
state.optionupgrade.autosupport.upgrade.date=0
state.optionupgrade.bdfu.enable=true
state.optionupgrade.cf.takeover.detection.seconds=true
state.optionupgrade.disk_pcycle.enable=true
state.optionupgrade.ftpd.native=true
state.optionupgrade.lun.clone_restore=true
state.optionupgrade.lun.partner_unreachable.linux=true
state.optionupgrade.lun.partner_unreachable.vmware=true
state.optionupgrade.ndmpd.connectlog.enabled=true
state.optionupgrade.nht.enabled=true
state.optionupgrade.raid.aggr.undestroy.enable=true
state.optionupgrade.raid.lost.write.threshold=true
state.optionupgrade.reconstruct_speed=true
state.optionupgrade.shelf.fw.ndu.enable=true
state.optionupgrade.wafl.maxdirsize=true
state.snapvault.version=1
state.timed.converted=complete
state.usage.nsm2.aggregates=1
state.usage.nsm2.network.configchecker.launch=1
state.usage.nsm2.version.2.1=1
state.useradminupgrade.rename=true
state.wafltop.init=true
state.wafltop.init.rr=true
bash-3.2#

Turning now to an examination of what processes are running in Simulate ONTAP, we can see some interesting ouput from the ps command.

bash-3.2#  ps auxw
USER     PID %CPU %MEM   VSZ   RSS  TT  STAT STARTED      TIME COMMAND
root     988 99.1  0.0     0    16  ??  RL    3:06AM  47:18.32 [ontap: cpu0]
root    1370 97.3  0.0     0    16  ??  RL    3:06AM  46:00.91 [ontap: cpu1]
root       4  0.1  0.0     0    16  ??  DL    3:05AM   0:18.11 [g_up]
root      20  0.0  0.0     0    16  ??  WL    3:05AM   0:19.53 [irq14: ata0]
root       0  0.0  0.0     0     0  ??  DLs   3:05AM   0:00.02 [swapper]
root       1  0.0  0.1  2180   396  ??  ILs   3:05AM   0:00.01 /sbin/init --
root       2  0.0  0.0     0    16  ??  DL    3:05AM   0:00.01 [mbfree]
root       3  0.0  0.0     0    16  ??  DL    3:05AM   0:00.15 [g_event]
root       5  0.0  0.0     0    16  ??  DL    3:05AM   0:17.42 [g_down]
root       6  0.0  0.0     0    16  ??  DL    3:05AM   0:00.00 [kqueue taskq]
root       7  0.0  0.0     0    16  ??  DL    3:05AM   0:00.00 [xpt_thrd]
root       8  0.0  0.0     0    16  ??  DL    3:05AM   0:00.00 [thread taskq]
root       9  0.0  0.0     0    16  ??  SL    3:05AM   0:00.04 [ECC scrubber]
root      10  0.0  0.0     0    16  ??  RL    3:05AM   0:41.90 [idle: cpu1]
root      11  0.0  0.0     0    16  ??  RL    3:05AM   0:22.25 [idle: cpu0]
root      12  0.0  0.0     0    16  ??  WL    3:05AM   0:00.13 [swi1: net]
root      13  0.0  0.0     0    16  ??  WL    3:05AM   0:02.40 [swi4: clock]
root      14  0.0  0.0     0    16  ??  WL    3:05AM   0:00.00 [swi3: vm]
root      15  0.0  0.0     0    16  ??  DL    3:05AM   0:00.32 [yarrow]
root      16  0.0  0.0     0    16  ??  WL    3:05AM   0:00.00 [swi2: cambio]
root      17  0.0  0.0     0    16  ??  WL    3:05AM   0:00.00 [swi5: +]
root      18  0.0  0.0     0    16  ??  WL    3:05AM   0:00.00 [swi6: Giant taskq]
root      19  0.0  0.0     0    16  ??  WL    3:05AM   0:00.00 [swi6: task queue]
root      21  0.0  0.0     0    16  ??  WL    3:05AM   0:00.00 [irq15: ata1]
root      22  0.0  0.0     0    16  ??  WL    3:05AM   0:00.00 [irq1: atkbd0]
root      23  0.0  0.0     0    16  ??  WL    3:05AM   0:00.00 [swi0: uart uart]
root      24  0.0  0.0     0    16  ??  DL    3:05AM   0:00.00 [md0]
root      25  0.0  0.0     0    16  ??  DL    3:05AM   0:00.00 [cecc_logger]
root      26  0.0  0.0     0    16  ??  SL    3:05AM   0:00.02 [cecc_poll]
root      27  0.0  0.0     0    16  ??  DL    3:05AM   0:00.10 [pagedaemon]
root      28  0.0  0.0     0    16  ??  DL    3:05AM   0:00.00 [vmdaemon]
root      29  0.0  0.0     0    16  ??  DL    3:05AM   0:00.00 [pagezero]
root      30  0.0  0.0     0    16  ??  DL    3:05AM   0:00.06 [bufdaemon]
root      31  0.0  0.0     0    16  ??  DL    3:05AM   0:00.01 [vnlru]
root      32  0.0  0.0     0    16  ??  DL    3:05AM   0:00.22 [syncer]
root      33  0.0  0.0     0    16  ??  DL    3:05AM   0:00.03 [softdepflush]
root      34  0.0  0.0     0    16  ??  DL    3:05AM   0:00.00 [SLQ Daemon]
root      35  0.0  0.0     0    16  ??  DL    3:05AM   0:00.33 [schedcpu]
root      37  0.0  0.0     0    16  ??  DL    3:05AM   0:02.62 [md1]
root      46  0.0  0.0     0    16  ??  DL    3:05AM   0:00.02 [md2]
root     273  0.0  0.0     0    16  ??  DL    3:06AM   0:00.00 [md3]
root     373  0.0  0.0     0    16  ??  DL    3:06AM   0:00.00 [md4]
root     532  0.0  0.1  2180   460  ??  Is    3:06AM   0:00.01 /sbin/devd
root     619  0.0  0.4 18044  1920  ??  Is    3:06AM   0:00.00 mlogd
root     620  0.0  0.5 19324  2464  ??  S     3:06AM   0:00.18 mlogd
root     660  0.0  0.2  9844  1248  ??  Ss    3:06AM   0:00.10 /usr/sbin/rpcbind -L
root     683  0.0  0.2  5652  1028  ??  Is    3:06AM   0:00.00 /usr/sbin/ypbind -ypsetme
root     768  0.0  9.1 115328 45824  ??  Ss    3:06AM   0:04.31 notifyd
root     781  0.0  0.3 15232  1408  ??  Is    3:06AM   0:00.00 sldiag_tcd
root     829  0.0  0.7 25520  3476  ??  Is    3:06AM   0:00.00 /sbin/spmd
root     831  0.0  0.9 27696  4516  ??  I     3:06AM   0:00.04 /sbin/spmd -z
root     839  0.0  0.5 18172  2624  ??  Is    3:06AM   0:00.25 /usr/sbin/time_state -l
root     843  0.0  0.4 20264  2176  ??  Is    3:06AM   0:00.01 /usr/sbin/ucoreman --log
root     877  0.0 19.4 283692 97640  ??  Is    3:06AM   0:13.13 mgwd -z
root     970  0.0  0.0     0    16  ??  SL    3:06AM   0:00.02 [csm small refill zo]
root     971  0.0  0.0     0    16  ??  SL    3:06AM   0:00.02 [csm large refill zo]
root     972  0.0  0.0     0    16  ??  DL    3:06AM   0:00.01 [BsdThreadPoolThread]
root     973  0.0  0.0     0    16  ??  DL    3:06AM   0:00.01 [BsdThreadPoolThread]
root     974  0.0  0.0     0    16  ??  DL    3:06AM   0:00.06 [BsdThreadPoolThread]
root     975  0.0  0.0     0    16  ??  DL    3:06AM   0:00.02 [release sockets]
root     989  0.0  0.0     0    16  ??  IL    3:06AM   0:00.00 [DconsoleRelay]
root     990  0.0  0.0     0    16  ??  DL    3:06AM   0:00.00 [valet0]
root     991  0.0  0.0     0    16  ??  DL    3:06AM   0:00.00 [valet1]
root     992  0.0  0.0     0    16  ??  DL    3:06AM   0:00.01 [valet2]
root     993  0.0  0.0     0    16  ??  DL    3:06AM   0:00.00 [valet3]
root     994  0.0  0.0     0    16  ??  DL    3:06AM   0:00.01 [valet4]
root     995  0.0  0.0     0    16  ??  DL    3:06AM   0:00.73 [valet_fio0]
root     996  0.0  0.0     0    16  ??  DL    3:06AM   0:00.46 [valet_fio1]
root     997  0.0  0.0     0    16  ??  DL    3:06AM   0:00.78 [valet_fio2]
root     998  0.0  0.0     0    16  ??  DL    3:06AM   0:00.57 [valet_fio3]
root     999  0.0  0.0     0    16  ??  DL    3:06AM   0:00.88 [valet_fio4]
root    1000  0.0  0.0     0    16  ??  DL    3:06AM   0:00.83 [valet_fio5]
root    1001  0.0  0.0     0    16  ??  DL    3:06AM   0:00.42 [valet_fio6]
root    1002  0.0  0.0     0    16  ??  DL    3:06AM   0:01.02 [valet_fio7]
root    1003  0.0  0.0     0    16  ??  DL    3:06AM   0:00.90 [valet_fio8]
root    1004  0.0  0.0     0    16  ??  DL    3:06AM   0:00.68 [valet_fio9]
root    1005  0.0  0.0     0    16  ??  DL    3:06AM   0:00.90 [valet_fio10]
root    1006  0.0  0.0     0    16  ??  DL    3:06AM   0:00.68 [valet_fio11]
root    1007  0.0  0.0     0    16  ??  DL    3:06AM   0:00.91 [valet_fio12]
root    1008  0.0  0.0     0    16  ??  DL    3:06AM   0:01.54 [valet_fio13]
root    1010  0.0  0.0     0    16  ??  DL    3:06AM   0:00.39 [valet_fio14]
root    1011  0.0  0.0     0    16  ??  DL    3:06AM   0:00.68 [valet_fio15]
root    1012  0.0  0.0     0    16  ??  DL    3:06AM   0:00.45 [valet_fio16]
root    1013  0.0  0.0     0    16  ??  DL    3:06AM   0:00.69 [valet_fio17]
root    1014  0.0  0.0     0    16  ??  DL    3:06AM   0:00.82 [valet_fio18]
root    1015  0.0  0.0     0    16  ??  DL    3:06AM   0:00.25 [valet_fio19]
root    1018  0.0  0.0     0    16  ??  SL    3:06AM   0:00.10 [spiniod 0]
root    1019  0.0  0.0     0    16  ??  IL    3:06AM   0:00.00 [spiniod 1]
root    1020  0.0  0.0     0    16  ??  IL    3:06AM   0:00.00 [spiniod 2]
root    1021  0.0  0.0     0    16  ??  IL    3:06AM   0:00.00 [spiniod 3]
root    1038  0.0  0.0     0    16  ??  SL    3:06AM   0:00.04 [nbladeReaderNoBlock]
root    1046  0.0  0.5 15232  2504  ??  Ss    3:06AM   0:00.75 bip_nitro /dev/nblade
root    1067  0.0  0.0     0    16  ??  DL    3:06AM   0:00.02 [ksocket worker]
root    1068  0.0  0.0     0    16  ??  DL    3:06AM   0:00.03 [bsd liaison thread]
root    1158  0.0  0.4 18044  2224  ??  Is    3:06AM   0:00.02 /usr/sbin/mhostexecd -D
root    1255  0.0  0.3  9956  1400  ??  Is    3:06AM   0:00.01 /sbin/xinetd
root    1268  0.0  0.4 15228  1824  ??  Ss    3:06AM   0:02.01 /usr/bin/vmtools --background /var/run/vmtools.pid
root    1293  0.0  0.2  9840  1144  ??  Ss    3:06AM   0:00.02 /usr/sbin/cron -s
www     1563  0.0  2.8 94972 14040  ??  Is    3:07AM   0:00.24 /sbin/httpd -X -DHTTPEnabled -k start
root    1588  0.0  0.7 20344  3444  ??  Is    3:07AM   0:00.09 /sbin/ndmpd
root    1592  0.0  7.5 101052 37728  ??  Ss    3:07AM   0:00.40 /sbin/shmd
root    1596  0.0  8.2 104140 41432  ??  Ss    3:07AM   0:01.92 /sbin/nchmd
nobody  1600  0.0  0.4 15228  2004  ??  Is    3:07AM   0:00.01 /sbin/mdnsd -z
root    1629  0.0  0.0     0     0  ??  Z     3:07AM   0:00.00 
root    1673  0.0  0.2 10168  1184  ??  I     3:07AM   0:00.00 /bin/sh -c /usr/sbin/apachelog /tmp/.apache_error.lck /mroot/etc/mlo
root    1674  0.0  0.3 15228  1652  ??  I     3:07AM   0:00.01 /usr/sbin/apachelog /tmp/.apache_error.lck /mroot/etc/mlog/apache_er
root    1675  0.0  0.2 10168  1184  ??  I     3:07AM   0:00.01 /bin/sh -c /usr/sbin/apachelog /tmp/.apache_access.lck /mroot/etc/ml
root    1676  0.0  0.3 15228  1628  ??  I     3:07AM   0:00.01 /usr/sbin/apachelog /tmp/.apache_access.lck /mroot/etc/mlog/apache_a
root    1788  0.0  0.4 18044  2228  ??  Is    3:49AM   0:00.00 /usr/sbin/mhostexecd -D
root    1789  0.0  0.2 10168  1200  ??  Is    3:49AM   0:00.01 /bin/sh /etc/netapp_systemshell
root    1793  0.0  0.5 20056  2360  ??  S     3:49AM   0:00.03 telnet -K -Q localhost
root    1794  0.0  0.5 20088  2424  ??  Ss    3:49AM   0:00.04 telnetd -a off -X sra
root    1366  0.0  0.4 18044  2112 con  Is+   3:06AM   0:00.01 login /dev/cuacons.auth (ontaplogin)
root    1367  0.0  0.4 18044  2112 sp.  Is+   3:06AM   0:00.01 login /dev/cuasp.auth (ontaplogin)
root    1368  0.0  0.4 19324  2188 con  Is+   3:06AM   0:00.01 login /dev/console (ontaplogin)
root    1795  0.0  0.3 34752  1616  p0  Is    3:49AM   0:00.02 login [pam] (login)
diag    1796  0.0  0.5 13084  2424  p0  I     3:49AM   0:00.03 -csh (csh)
root    1801  0.0  0.4  8012  2228  p0  S     3:49AM   0:00.03 bash
root    1815  0.0  0.2  9880  1140  p0  R+    3:54AM   0:00.00 ps auxw
bash-3.2#

Why, for example, is ypbind running when NFS is not licensed? Why are telnet-related processes running when telnet is disabled?

It turns out that the telnet process is being used as a hack to enable diag to login to systemshell. See below:

bash3-2# cat /etc/netapp_systemshell
#! /bin/sh

# Script to verify that the diag user is not locked when running
# 'systemshell' from the dbaldecli in 7mode.
# This is to ensure that when presented with a login prompt, the user
# is able to log in, since there is no way to exit from the login prompt
# unless you log in. Ctrl-D is ignored by the console.
# See Burt 355606 for details.

RSLT=`ngsh -c "security login diaguser show diag" 2>&1`
echo $RSLT | grep -q 'Locked: no' 2>&1

if [ $? -ne 0 ]; then
        echo "Unable to launch systemshell because the 'diag' user is locked."
        return 1
fi

export TERM=xterm
telnet -K -Q localhost

return $?

bash-3.2#

There appears to be built-in support for the power on and off features of VMware tools. See /etc/vmservices-backup-config, /etc/vmservices-poweroff-vm and /etc/vmware/tools/tools.conf.

The telnet, ssh, login and rsh daemons are controlled by the extended internet daemon (/sbin/xinetd) and the configuration file for each service is located in /etc/xinetd.d.

bash3-2#  ls -l /etc/xinetd.d
-rw-r--r--   1 root  wheel   993 Oct 28  2011 7_ssh
-rw-r--r--   1 root  wheel   456 Oct 28  2011 7_telnet
-rw-r--r--   1 root  wheel   957 Oct 28  2011 c_ssh
-rw-r--r--   1 root  wheel   420 Oct 28  2011 c_telnet
-rw-r--r--   1 root  wheel   373 Oct 28  2011 login
-rw-r--r--   1 root  wheel   364 Oct 28  2011 shell

# cat /etc/xinetd.d/7_ssh
service ssh
{
        disable                 = no
        server_args             = -i -4
#       server_args             = -R /mroot/vserver_fs /usr/sbin/sshd sshd -i -4
        socket_type             = stream
        wait                    = no
        protocol                = tcp
        user                    = root
        server                  = /usr/sbin/sshd
#       server                  = /sbin/vcontext
        log_on_failure += USERID
        instances               = 50
        cps                     = 10 60
        only_from               = 127.0.0.1 127.0.20.1
}

# Sample for Vserver entry
#service VS1
#{
#        type                    = UNLISTED
#        disable                 = no
#        server_args             = -i
#        socket_type             = stream
#        wait                    = no
#        protocol                = tcp
#        user                    = root
#        server                  = /usr/sbin/sshd
#        bind                    = 10.72.33.191
#        port                    = 6006
#        log_on_failure += USERID
#}

Well, this blog post is getting way too big – so it is time to stop writing now. You should now be able to explore and modify Simulate ONTAP for yourself. I will continue posting any useful information that I discover about Simulate ONTAP as time permits.

By the way, SSH’ing into this version of Simulate ONTAP frequently fails. Apparently, it has been fixed in later versions but the only fix in the current version seems to be to either reboot the simulator or wait about 10 minutes and try again. See NetApp bug ID 608206.

Enjoy!