The default view is a list of all shares on the system. This list allows you to rename shares, move shares between projects, and edit individual shares. The shares are divided into two lists, "Filesystems" and "LUNs," that can be selected by switching tabs on this view. The following fields are displayed for each share:
The following tools are available for each share:
To edit a share, click on the pencil icon or double-click the row in the share list. This will select the share, and give several different tabs to choose from for editing properties of the share. The complete set of functionality can be found in the section for each tab:
The name of the share is presented in the upper left corner to the right of the project panel. The first component of the name is the containing project, and clicking on the project name will navigate to the [[Shares:Projects|project details]]. The name of the share can also be changed by clicking on the share name and entering new text into the input. You will be asked to confirm this action, as it will require disconnecting active clients of the share.
On the left side of the view (beneath the project panel when expanded) is a table explaining the current space usage statistics. These statistics are either for a particular share (when editing a share) or for the pool as a whole (when looking at the list of shares). If any properties are zero, then they
are excluded from the table.
This statistic is implicitly shown as the capacity in terms of capacity percentage in the title. The available space reflects any quotas on the share or project, or the absolute capacity of the pool. The number shown here is the sum of the total space used and the amount of available space.
The amount of data referenced by the data. This includes all filesystem data or LUN blocks, in addition to requisite metadata. With compression, this value may be much less than the logical size of the data contained within the share. If the share is a clone of a snapshot, this value may be less than the physical storage it could theoretically include, and may be zero.
The amount of space used by all snapshots of the share, including any project snapshots. This size is not equal to the sum of unique space consumed by all snapshots. Blocks that are referenced by multiple snapshots are not included in the per-snapshot usage statistics, but will show up in the share's snapshot data total.
If a filesystem has a reservation set, this value indicates the amount of remaining space that is reserved for the filesystem. This value is not set for LUNs. The appliance prevents other shares from consuming this space, guaranteeing the filesystem enough space. If the reservation does not include snapshots, then there must be enough space when taking a snapshot for the entire snapshot to be overwritten. For more information on reservations, see the general properties section.
The sum of referenced data, snapshot data, and unused reservation.
The left side of the shares view also shows static (create time) properties when editing a particular share. These properties are set at creation time, and cannot be modified once they are set.
If compression is enabled, this shows the compressions ratio currently achieved for the share. This is expressed as a multiplier. For example, a compression of 2x means that the data is consuming half as much space as the uncompressed contents. For more information on compression and the available algorithms, see the general properties section.
Controls whether directory lookups are case-sensitive or case-insensitive. It supports the following options:
This setting enforces UTF-8 encoding for all files and directories. When set, attempts to create a file or directory with an invalid UTF-8 encoding will fail. This only affects NFSv3, where the encoding is not defined by the standard. NFSv4 always uses UTF-8, and SMB negotiates the appropriate encoding. This setting should normally be "on", or else SMB (which must know the encoding in order to do case sensitive comparisons, among other things) will be unable to decode filenames that are created with and invalid UTF-8 encoding. This setting should only be set to "off" in pre-existing NFSv3 deployments where clients are configured to use different encodings. Enabling SMB or NFSv4 when this property is set to "off" can yield undefined results if a NFSv3 client creates a file or directory that is not a valid UTF-8 encoding. This property must be set to "on" if the normalization property is set to anything other than "none".
This setting controls what unicode normalization, if any, is performed on filesystems and directories. Unicode supports the ability to have the same logical name represented by different encodings. Without normalization, the on-disk name stored will be different, and lookups using one of the alternative forms will fail depending on how the file was created and how it is accessed. If this property is set to anything other than "none" (the default), the "Reject non UTF-8" property must also be set to "on". For more information on how normalization works, and how the different forms work, see the Wikipedia entry on unicode normalization.
The native block size for LUNs. This can be any power of 2 from 512 bytes to 128K, and the default is 8K.
If this is a clone, this is the name of the snapshot from which it was cloned.
If set, then this filesystem is actively shadowing an existing filesystem, either locally or over NFS. For more information about data migration, see the section on Shadow Migration.
In the BUI, the set of available projects is always available via the project panel at the left side of the view. To expand or collapse the project panel, click the triangle by the "Projects" title bar.
Selecting a project from the panel will navigate to the project view for the selected project. This project panel will also expand automatically when the move tool is clicked on a row within the share list. You can then drag and drop the share to move it between projects. The project panel also allows a shortcut for creating new projects, and reverting to the list of shares across all projects. Clicking the "All" text is equivalent to selecting the "Shares" item in the navigation bar.
The project panel is a convenience for systems with a relatively small number of projects. It is not designed to be the primary interface for managing a large number of projects. For this task, see the Projects view.
To create a share, view shares in a project or across all projects by selecting the "shares" sub-navigation entry. When selecting "Filesystems" or "LUNs," a plus icon will appear next to the name that will bring up a dialog to create the share. When creating a share, you can choose the target project from a pulldown menu, and provide a name for the share. The properties for each type of shares are defined elsewhere:
Reject non UTF-8 (create time only)
Case sensitivity (create time only)
Normalization (create time only)
The shares CLI is under shares
You must first select a project (including the default project) before selecting a share:
clownfish:> shares clownfish:shares> select default clownfish:shares default> select foo clownfish:shares default/foo> get Properties: aclinherit = restricted (inherited) aclmode = groupmask (inherited) atime = true (inherited) casesensitivity = mixed checksum = fletcher4 (inherited) compression = off (inherited) compressratio = 100 copies = 1 (inherited) creation = Mon Oct 13 2009 05:21:33 GMT+0000 (UTC) mountpoint = /export/foo (inherited) normalization = none quota = 0 quota_snap = true readonly = false (inherited) recordsize = 128K (inherited) reservation = 0 reservation_snap = true secondarycache = all (inherited) nbmand = false (inherited) sharesmb = off (inherited) sharenfs = on (inherited) snapdir = hidden (inherited) utf8only = true vscan = false (inherited) sharedav = off (inherited) shareftp = off (inherited) space_data = 43.9K space_unused_res = 0 space_snapshots = 0 space_available = 12.0T space_total = 43.9K root_group = other root_permissions = 700 root_user = nobody
A share is created by selecting the project and issuing the filesystem or lun command. The properties can be modified as needed before committing the changes:
clownfish:shares default> filesystem foo clownfish:shares default/foo (uncommitted)> get aclinherit = restricted (inherited) aclmode = groupmask (inherited) atime = true (inherited) checksum = fletcher4 (inherited) compression = off (inherited) copies = 1 (inherited) mountpoint = /export/foo (inherited) quota = 0 (inherited) readonly = false (inherited) recordsize = 128K (inherited) reservation = 0 (inherited) secondarycache = all (inherited) nbmand = false (inherited) sharesmb = off (inherited) sharenfs = on (inherited) snapdir = hidden (inherited) vscan = false (inherited) sharedav = off (inherited) shareftp = off (inherited) root_group = other (default) root_permissions = 700 (default) root_user = nobody (default) casesensitivity = (default) normalization = (default) utf8only = (default) quota_snap = (default) reservation_snap = (default) custom:int = (default) custom:string = (default) custom:email = (default) clownfish:shares default/foo (uncommitted)> set sharenfs=off sharenfs = off (uncommitted) clownfish:shares default/foo (uncommitted)> commit clownfish:shares default>
A share can be destroyed using the destroy command from the share context:
clownfish:shares default/foo> destroy This will destroy all data in "foo"! Are you sure? (Y/N) clownfish:shares default>
A share can be renamed from the project context using the rename command:
clownfish:shares default> rename foo bar clownfish:shares default>
A share can be moved between projects from the project context using the move command:
clownfish:shares default> move foo home clownfish:shares default>
User and group usage and quotas can be managed through the users or groups commands after selecting the particular project or share. For
more information on how to manage user and group quotas, see the Space Management section.
The following properties are available in the CLI, with their equivalent in the BUI. Properties can be set using the standard CLI commands get and set. In addition, properties can be inherited from the parent project
by using the unset command.