Sun SAM-FS / QFS Overview

This article provides a simple overview of the Sun SAM-FS / QFS product suite


If you’re installing JUST QFS (aka Sun StorEdge Performance Suite) — pkgadd SUNWqfs

If you’re installing SAM-FS or SAM-QFS (aka Sun StorEdge Utilization Suite) — pkgadd SUNWsamfs

SAM-FS and SAM-QFS 3.x.x used a version 1 superblock. 4.x.x uses version 2. What’s the difference?

  • ACLs
  • QFS Shared file system
  • md devices in Sun QFS
  • Dual-sized DAUs on mm devices

Use samfsinfo to determine what version a filesystem was created with

  • version 1 = 3.x
    # samfsinfo <fs family name>
    samfsinfo: filesystem <fs family name> is mounted.
    name:     <fs family name>       version:     1    shared
  • version 2 = 4.x
    # samfsinfo <fs family name>
    samfsinfo: filesystem <fs family name> is mounted.
    name:     <fs family name>       version:     2    shared

How do I upgrade?

  • pkgrm old packages,
  • reboot,
  • pkgadd new packages.

Config files should remain in their places, but remember that package names changed from when Sun Microsystems bought LSC, so paths for configuration files will change as well.

Upgrading does NOT change the file system version, just the software. If the customer wants the advantage of the version 2 superblock, they must back up, recreate the file system, and restore from backup.

Configuration - Licensing

License is located in /etc/opt/SUNWsamfs/LICENSE.4.0


s4m-sam# cat /etc/opt/SUNWsamfs/LICENSE.4.0

After the license is installed, you can verify it by running sam-fsd (4.0). This command also checks syntax in your mcf file as well, so you can make sure everything’s entered correctly. Alternatively, you can use SAM-FS’s command-line utility samu. This is navigated similarly to vi, using ctrl-f forward, ctrl-b back, etc.

Once the license is installed correctly, you can view the LICENSE.dat file to see what features are currently licensed.

# cat /etc/opt/SUNWsamfs/LICENSE.dat
hostid = 80a1b2c3
expiration date = Sun Oct  3 02:54:38 2004

Remote sam server feature enabled
Remote sam client feature enabled
Data base feature enabled
Segment feature enabled
Robot type Sun StorEDGE L9/20/40/60 or HP C7200 series is present and licensed
    60 lt slots present and licensed

mcf file

Master Configuration File

  • Must be located in /etc/opt/SUNWsamfs/
  • Defines devices and family sets
  • Identifies disk partitions used for SAM-FS file systems
  • Identifies peripherals to be used and any library groupings
  • Example in: /opt/SUNWsamfs/examples/mcf
  • Drive order in mcf file MUST MATCH DRIVE ORDER IN LIBRARY

Each line in the mcf has the following six fields as shown:

equipment    equipment  equipment   family    device   additional
identifier   ordinal    type        set       state    parameters

mcf file

s4m-sam# cat /etc/opt/SUNWsamfs/mcf
# For additional information about the format of the mcf file, type "man mcf".
# This is the mcf file which was built up line-by-line in the
# "Configure SAM-FS" step in the "SAM-FS Installation & Setup" chapter
# in the SAM-FS System Administrator's Guide.  You can read that step
# for more information about this particular mcf.

# equipment   equipment  equipment   family    device   additional
# identifier  ordinal    type        set       state    parameters

samfs1                1    ms   samfs1
/dev/dsk/c1t0d0s0    11    md   samfs1   on   /dev/rdsk/c1t0d0s0
/dev/dsk/c1t1d0s5    12    md   samfs1   on   /dev/rdsk/c1t1d0s5
samfs2                2    ms   samfs2
/dev/dsk/c1t1d0s0    15    md   samfs2   on   /dev/rdsk/c1t1d0s0
/dev/dsk/c1t0d0s1    16    md   samfs2   on   /dev/rdsk/c1t0d0s1
/dev/samst/c0t2d0    20    od   -        on
/dev/samst/c1t2u0    30    rb   hp30     on   /var/opt/SUNWsamfs/catalog/hp30_cat
/dev/samst/c1t5u0    31    od   hp30     on
/dev/samst/c1t6u0    32    od   hp30     on
/dev/rmt/0cbn        40    od   -        on
/dev/samst/c1t3u1    50    rb   ml50     on   /var/opt/SUNWsamfs/catalog/ml50_cat
/dev/rmt/2cbn        51    tp   ml50     on

mcf fields - Equipment types

Equipment identifier &mdashl This field defines the device file name or file system name for the equipment that SAM-FS will use. For example, the equipment identifier would be /dev/dsk/c0t0d0s7 for an entry identifying a magnetic disk partition used as part of the disk cache. The value in this field is dependent on the equipment type field.

Equipment ordinal — This field is a unique integer from 1 to 32767. The equipment ordinal affects the allocation of shared memory space. Therefore, the greater the interval between your equipment ordinals, the more space you will use in memory. Whenever possible, keep the numbers low and sequential. See the equipment type for any rules regarding equipment ordinals.

Equipment type &mdashl This field is a two-character mnemonic for the device type. However, the type field affects many of the other fields. There are following tables list the current valid equipment types. Equipment types are also listed in the mcf(4) man page.

Table 1 — mcf Rquipment types
Equipment typeDescription
ms A Sun SAM-FS disk cache family set. There are no meta devices. Metadata resides on the data device(s). This defines the disk cache family set. The value in the equipment identifier field will be in the ‘device to mount’ field of the /etc/vfstab for mounting at boot time. The family set field, a required field for this type, groups the magnetic disks that make up the family set.
ma A Sun QFS or SAM-QFS disk cache family set with one or more meta devices. Metadata resides on these meta devices. File data resides on the data device(s).
The following equipment types are used to define the disk devices that reside within an ms or ma file system:
mm A magnetic disk that is part of an ma disk cache family set. Metadata is allocated on this device. At least one mm device is required in an ma file system.
md This defines a magnetic disk that is part of a storage (disk cache) family set. The equipment identifier is a path to the block special device file name such as /dev/dsk/c0t3d0s4. The family set field, a required field, must match a family set defined in a ms entry. The additional parameter field uses the path to the corresponding raw device file name, such as /dev/rdsk/c0t3d0s4.
mr A magnetic disk that is part of an ma disk cache family set. This device allocates only large DAUs for file data.
gXXX A magnetic disk that is part of an ma disk cache family set. The XXX identifies a striped group of devices. This device stores data. The allocation unit is the large DAU size multiplied by the number of members in the striped group. The XXX must be a decimal number in the range 0 < XXX < 127. These devices must be the same physical size. (NOTE: It is not possible to use the samgrowfs command to increase the size of a striped group. However, it is possible to add additional striped groups.)

The following table lists the equipment types for the SCSI robotic media loaders

Table 2 — mcf fields - robotic equipment type
equipment typeDescription
rb Generic SCSI library. Automatically configured by SAM-FS
hp HP optical libraries
ml DLT2700 tape libraries
cy Cygnet libraries
dm Sony DMS library
ds DocuStore optical disk libraries
me Metrum and Mountain Gate libraries
ac ACL libraries
eb EXABYTE libraries
ad ADIC libraries
a1 Ampex ACL libraries
a2 Ampex DST810 library
sl SpectraLogic libraries
ic IBM 3570 media changer
s9 STK 97xx series
pd Plasmon D-Series DVD-RAM libraries

These are the SCSI robotic media loaders. The equipment identifier field is the samst device driver name such as /dev/samst/c0t4u1. The family set field associates the devices with the robot. The additional parameter field defines the absolute path name of the library catalog file. The library catalog file stores information about each piece of media in the library such as /var/opt/LSCsamfs/catalog/hp200_catalog.

The following table lists the equipment types for the optical devices

The equipment identifier field is the path to the samst device driver name such as /dev/samst/c0t3u0. The family set field associates the device with a robot of the same family set name. A family set name of “–“ identifies manually mounted devices.The historian acts like a media changer, but since there are no devices associated with it there is no family set name. The historian keeps track of off-site media. If a historian is not configured in the mcf file, one will be created using the following defaults:historian n+1 hy - - /usr/tmp/sam_historianWhere n is ordinal of the last piece of equipment defined in the mcf file.The following table lists the equipment types for the tape devices:The equipment identifier is the raw device name such as /dev/rmt/0bn. Specify the device with the BSD no-rewind name (bn). If the device supports compression, then specify the device name with the compression for better tape usage, such as /dev/rmt/0cbn. The family set field associates the device with a robot of the same family set name. If the family set name is “–“ the device is assumed to be a manually mounted device.

Table 3 — mcf fields - optical equipement types
equipment typeDescription
o2 12 inch WORM
wo 5 ¼ inch WORM
mo 5 ¼ erasable optical
mf IBM Multi Function
od Generic optical disk. Automatically configured by SAM-FS using the SCSI vendor code
Table 4 — mcf fields - historian equipement types
equipment typeDescription
hy The SAM-FS historian
Table 5 — mcf fields - magnetic tape equipment types
equipment typeDescription
tp Generic tape. Automatically configured by SAM-FS using the SCSI vendor code
lt Digital Linear tape drive
li LTO
st STK 3480
vt Metrum VHS (RSP-2150)
xt Exabyte (850x) tape
xm 8mm Exabyte Mammoth-2 tape
dt 4mm DAT tape
se STK 9490
sg STK 9840
sf STK 9940
d3 STK D3
fd Fujitsu M8100
ib IBM 3590
i7 IBM 3570
at Sony AIT, AIT-2, AIT-3
so Sony DTF

mcf fields

Family set— This optional field associates devices with other devices to create a family set. If the device is not a part of a family set, it will have a “–“ in field. The field is required for media libraries as it associates the library with the devices in the library.

Device state — This optional field gives the state of the device. Valid device states are “on”, “off”, “unavail” or “down”. A “-“ in this field indicates no entry. The device state field defaults to “on”.

Additional parameters — This optional field has many different purposes. If a media loader/changer is being defined, the additional parameters field gives the name of the catalog file for that family set. If the entry is defining a disk partition, the additional parameters field is the name of the raw disk device such as /dev/rdsk/c0t3d0s4.

mcf configuration - Identifying the correct samsg device

When the system boots, it places messages in the file /var/adm/messages, including the Solaris hardware path to each peripheral. At each reboot, the system adds more information to this file. The system also logs information to this file when certain conditions occur.

Each peripheral will have three lines of information in the /var/adm/messages file. These lines are identified by a samst XXX: designator. The following is a sample samst output from /var/adm/messages (the date and time have been removed from the beginning of each line in order to fit it in this manual):

lab20 unix: samst112: Vendor/Product ID = HP C1107A
lab20 unix: samst112 at QLGC, isp0: target 0 lun 0
lab20 unix: samst112 is /iommu@f,e0000000/sbus@f,e0001000/QLGC,isp@3,10000/samst@0,0

The first line lists the vendor information (here, HP C1107A). The second line lists the controller number (in this example, isp0), the target number and logical unit number (target0 lun0).

The third line gives the hardware path name to the peripheral. Think of this as the path of devices that leads the CPU to that peripheral. That path has symbolic links to other device driver names. The same hardware path is stored in a directory called /devices. The device path information is useful for locating the exact piece of equipment you are trying to configure and associating it with the /dev/samst device name. The /dev/samst device name identifies the device driver that SAM-FS will use to communicate with the device. It identifies the device by the controller number, target number and logical unit number. By getting the hardware path name from /var/adm/messages, you can do a long listing (ls -l) in the /dev/samst directory and identify which device corresponds with the equipment you wish to configure.

For tape drives, you must identify the raw device name found in the directory /dev/rmt. Again, using /var/adm/messages as your guide, you should be able to find the /dev/rmt entry that corresponds to the device you are configuring.

Family sets

A family set organizes and groups devices together by one family name. In the example used in this presentation, there are four family sets. The first two family sets organize and group the disk partitions together to form the file systems for SAM-FS to use as disk cache. The third family set will group the HP robot with the optical drives that it manages, and the fourth for the magnetic tape library


The /opt/LSCsamfs/examples/defaults.conf file contains default settings for certain default values in SAM-FS. Read the defaults.conf(4) man page and examine this file to determine which defaults you should change. Copy the example defaults.conf to /etc/opt/LSCsamfs/defaults.conf. Edit the file to set appropriate site defaults.

The syntax of the file appears as follows:

timeout = 120
labels = barcodes
stages = 8096
idle_unload = 60
stale_time = 20
lt_blksize = 256
sg_blksize = 256
se_blksize = 256
d2_blksize = 1024
debug = labeling canceled moves
devlog = 101 time stage_ck

defaults.conf - Fields

Table 4 — defaults.conf fields
timeout The amount of time, in seconds, SAM-FS will wait for direct access to removable media. The default is 600 seconds. A value of zero disables this feature.
labels If a tape library has a barcode reader, SAM-FS can set the tape label equal to the first or last characters of the barcode (uppercased). The default is labels = barcodes.
stages The number of stage requests that can be outstanding at one time. Each entry takes about 104 bytes of shared memory. The default is 1024 stages.
idle_unload The amount of time, in seconds, that a drive in an automated library may be idle before the media in that drive is rewound and unloaded. The default is 600 seconds. A value of zero disables this feature.
stale_time The amount of time, in minutes, that a request to mount media into a drive will be left in the mount request queue. If the media is not loaded into a drive in this amount of time, the requesting process will be sent an error and the request will be removed from the queue. The default is 30 minutes.
lt_blksize The block size that SAM-FS uses to write to tape. The value for block size can be one of 16, 32, 64, 128, 256, 512, 1024, or 2048. This value can be overridden when manually labeling tapes. Check the defaults.conf man page for a list of the released default block sizes.
debug Can be used to set the default debug flags used by SAM-FS daemons for logging messages. The default is logging.
devlog Can be used to manipulate the device log events for logging messages for tape and optical drives and automated libraries.


How do I create a SAM-FS file system?

The primary difference to be aware of here is that sammkfs is run on the family set name configured in the mcf file, as there’s no real device path for this virtual device. Example:

s4m-sam# sammkfs samfs1
Creating a new file system prevents use with SAM-FS 3.5.0 or earlier 
Use the -P option on sammkfs to create a 3.5.0 compatible file system
Do you wish to continue? [y/N] y                                     
Building 'samfs1' will destroy the contents of devices:              
Do you wish to continue? [y/N] y                                     
total data kilobytes       = 4196080                                 
total data kilobytes free  = 4195632

There are also a few special options to be aware of that are specific to SAM-FS. These include:

Table 5 — sammkfs special options
-a <value> Disk allocation unit size (number of 1kb blocks to be allocated for a file). This needs to be calculated based on the customer’s situation.
-i <value> Number of inodes. This is an option that customers SHOULD not be using. SAM-FS can have an extremely large number of files by default, so this will severely limit them, and it cannot be changed, even when the file system size is grown.
-P Specifies that the previous version of sammkfs be used (version 1 superblock).
-S Specifies that the file system is shared
-V Writes config info to standard output, but does not write to the file system. You can use this option to report info on an existing file system (must be unmounted first)
s4m-sam# sammkfs -V samfs1
Creating a new file system prevents use with SAM-FS 3.5.0 or earlier 
Use the -P option on sammkfs to create a 3.5.0 compatible file system
Do you wish to continue? [y/N] y                                     
Building 'samfs1' will destroy the contents of devices:              
Do you wish to continue? [y/N] y                                     
name:     samfs1       version:     2                                
time:     Tue Jan 14 16:20:15 2003                                   
count:    1                                                          
capacity:      004006f0          DAU:         16                     
space:         004006f0                                              
ord  eq   capacity      space   device                               
  0  21   004006f0   004006f0   /dev/dsk/c0t1d0s0

sammkfs - data alignment

Data alignment refers to matching the allocation unit of the RAID controller with the allocation_unit of the file system. A mismatched alignment causes a read-modify-write operation for I/O that is less than the block size. The optimal alignment formula is as follows:

<allocation_unit> = <RAID_stripe_width> * <number_of_data_disks>

For example, if a RAID-5 unit has a total of 8 disks with 1 of the 8 being the parity disk, the number of data disks is 7. If the RAID stripe width is 64 kilobytes, then the optimal allocation_unit is 64 * 7 = 448.


How do I back up SAM-FS file systems?

samfsdump dumps the file control structure data, but NOT the .inodes file. This is backed up separately, using dd. Typically, a cron job is set up to do this automatically, and will be done more frequently than the samfsdumps, as it takes less time.

samfsdump can back up 100,000 files a minute, because it’s not backing up the full files, just control data. This means that restore time is also VERY fast. The only disadvantage is that no files will be resident in disk cache upon restore, so everything that needs to be accessed will have to be staged from archive. An alternative option is to use the –u option on samfsdump.

Note: Be aware, however, that samfsdump will also NOT back up any files that have not been archived yet, so the customer will need to have a good archive of everything, or have those individual files backed up somewhere else.

** DO NOT ** for any reason, back up SAM-FS file systems with Solstice Backup, EMC NetWorker, Veritas NetBackup, etc. These applications do not understand SAM-FS file system structure, so if you try to do it, you’ll end up staging every file in the file system, you’ll max out your disk cache, etc.