NEWST(8)

NAME
newst - make a new striped file system

SYNOPSIS
newst [ options ] stripedev diskdev1 type1 diskdev2 type2...

DESCRIPTION
newst is a program for making “striped file systems”. A striped file system is a regular DYNIX file system which uses a striped disk partition. Striped disk partitions are logical disk partitions which are interleaved over several physical disk partitions. Striped disk partitions are used to take advantage of performance improvements made possible by the parallel operation of the several disk arms which make up the striped disk partition. This parallelism can be acheived either by distributing large transfers over many disks or by spreading multiple simultaneous requests to the same partition across multiple disks. Another possible advantage may come from the ability to create multi-volume virtual partitions whose size is larger than that of any physical disk involved in it. Striped disk partitions may be accessed just as “normal” disk partitions are, including for creating and mounting DYNIX file systems on them.

newst has three basic jobs: (1) constructing a stripe descriptor based on the characteristics of the different partitions to be combined, (2) loading the stripe descriptor into a table in the DYNIX kernel using putst(8), and (3) making a DYNIX file system on the stripe partition using mkfs(8). After running newst, the new striped file system can be checked with fsck(8), tuned with tunefs(8), mounted with mount(8), and used like any other normal file system.

The arguments to newst consist of a striped partition device name ( /dev/rdsX ) and a list of pairs of disk partition names and device types. For example, /dev/rzd2h and m2344k, respectively. Each name/type pair specifies a disk partition which will become a part of the “striped partition”. The device type is identical to the type specified for newfs(8), and must be in the file /etc/disktab ( see disktab(5) ).

newst creates a stripe descriptor entry and adds the entry to the stripe descriptor database file /etc/stripecap ( see stripecap(5) ).

The switch options may be used:

-v  Verbose. Prints out the generated stripecap entry.

-n  Nochange. Prints the actions which would otherwise be taken, but does not update /etc/stripecap, and does not invoke putst(8) or mkfs(8).

-e  Entry. Create the stripecap entry only; don't invoke putst(8) or mkfs(8).

-b block-size
    Specifies the file system block size to be block-size bytes, e.g. 8k or 8192. It defaults to that of the first partition specified in the argment list, as listed in /etc/disktab for the its disk type argment. Currently it must be either 4k or 8k.

-f frag-size
    Specifies the file system fragment size to be frag-size bytes, e.g. 1k or 1024. It defaults to that of the first partition specified in the argment list, as listed in /etc/disktab for the its disk type argment. It must be a power of 2, in the range 512 through 8k, inclusive.

-m minfree
    Specifies a value for the file system minfree parameter. It defaults to 10 percent.

-r revolutions/second
    Specifies a value for the file system revolutions/second parameter. It defaults to 3600.

-s #sectors/track
    Specifies the number of disk sectors per track. The default is that of the first partition's disktype entry in /etc/disktab multiplied by the number of distinct physical disks upon which the composit partitions for this stripe partition reside.

-t #tracks/cylinder
    Specifies the number of disk tracks per cylinder. It defaults to that of the first partition specified in the argment list, as listed in /etc/disktab for the its disk type argment.

-c #cylinders/group
    The number of cylinders per cylinder group in the file system. The default is to make an estimate based on the file system size that will allow for enough inodes (as inodes are allocated on a cylinder group basis) without creating excessive overhead.

-I number of inodes desired
    An attempt will be made by newst to set up a striped file system with the desired number of inodes. However, the number specifed most likely will not be the exact number of inodes created, because of the other requirements and restrictions that affect the creation of an “optimal” file system on the specified devices.

-i number of bytes per inode
    Specifies a value for the number of bytes per inode parameter to be passed to mkfs(8). This is used alternatively to the -I option described above.

-B device blocks per stripe block
    Specifies the value to use for the stripe block size (in device blocks) of logical sections calculated for this stripe partition. It must be a multiple of 16 (8kbytes) and will be ignored for stripe sections containing only one composit partition or with multiple partitions composit partitions on the same physical disk. The default is 16, which matches the system's maximum file system block size.

Note that the block-size and frag-size arguments can end with a “k”, e.g. “-b 8k” to indicate 8192-byte blocks. Disk partition size information is obtained from /etc/disktab based on the disk types supplied in the argument list. Disk geometric information, such as disk block size, is obtained either from the switches, or else from the /etc/disktab entry of the first disk device given in the argument list (see disktab(5)).

newst uses a set of heuristics to determine how to lay out logical stripe sections on the physical devices. These heuristics are derived from performance measurements using stripe file systems. The user need not be aware of them except that file system bandwidth is optimized if only one partition per physical disk drive is used in a striped file system.

EXAMPLE

newst /dev/rds0 zd4a m2344k zd5a m2344k zd6h m2344k

The above command creates a three disk striped partition, using the disk partitions /dev/rzd4a, /dev/rzd5a, and /dev/rzd6h, each of which is of type m2344k as found in /etc/disktab.

FILES
/dev/rzd??    Raw devices for the DCC disk driver
/dev/rsd??    Raw devices for the SCED SCSI disk driver
/dev/rds?    Raw stripe device
/etc/stripecap    Permanent home of the stripe descriptors
/etc/putst    For downloading the stripe table entry to the DYNIX kernel
/etc/disktab    For disk geometry and file system partition information
/etc/mkfs    To actually build the file system
/etc/fsirand    To randomize inode allocation in that file system

SEE ALSO
putst(8), getst(8), stripecap(5), ds(4), newfs(8), mkfs(8), fsirand(8), tunefs(8)

CAVEATS
The partitions specified on the command line may be either the block or raw interface device name for the device, but be aware that newst will verify that the other does exist and is valid.

Since the stripe partition devices and /etc/stripecap are owned by root, you must be superuser to successfully run this utility.

The partitions specified in the command line from which newst generates a stripe partition need not be ordered any particular way. They will be sorted by size internally prior to determining logical stripe sections within the partition.

Be careful that composit partitions do not overlap on the same device or data corruption may result from their use. Likewise, care must be taken to ensure that the same stripecap configuration is repeatedly used to access the stripe partition. Otherwise, previously written data may appear to be corrupt and subsequently get corrupted.

Stripe block sizes must be a minimum of 16 or a multiple thereof (representing 8kbytes). Stripe section sizes must be a multiple of the that section's stripe block size. This can result in some wasted space and the end of each composit partition, about which newst will issue warnings.

Performance may be reduced if partitions in the stripe partition are not on distict disk drives. It is also recommended that they be located on distinct disk controller channels. Likewise, it is best for partitions to be of equal lengths on identical drives and controllers, although not necessary.

newst sets the stripe block size to match the stripe section size (no interleave) when only one partition is involved or when multiple partitions in that section reside on the same physical drive. In this situation a performance degradation may result otherwise. Also, some experimentation with stripe block sizes may be useful to tune performance to your application.

The total size of the entire stripe partition must be less than 2 gigabytes. This is currently a DYNIX addressing limitation. Newst will truncate the stripe partition so that it meets this limitation, issueing a warning that it is wasting space at the end of the composit partitions.

Stripe partitions cannot be used for the root file system, since the DYNIX kernel and standalone utilities do not know the stripe partitions layout. This information is not available until the root file system is being used to execute putst. Similarly, do not use it as a swap partition.

The stripe partition's data may be corrupted if one of its composit partitions is written to directly.

This utility does not have the ability to tune the file system's maxcontig and rotdelay parameters. They can be tuned with the tunefs(8) utility after the file system has been created.