r34 - 07 Jul 2008 - 18:31:26 - EricTYou are here: Wiki >  AppLogic23 Web > CatFilerLinux
ALERT! AppLogic 2.3 Beta Documentation The latest production release is AppLogic 3.0.30

Filer_Linux, Filer_Solaris: Filer Appliances

linux.PNG At a Glance
Catalog Filer
Category Filers
User volumes yes
Min. memory 128 MB
OS Linux/Solaris
Constraints no
Questions/Comments Ask Forum

Functional overview

Filer_Linux is an appliance that provides filesystem-level access to a volume with a Linux file system. Filer_Linux supports the following Linux file systems: ext2, ext3, fat32, reiserfs, swap, and ext3-snapshot (ext3 over LVM with snapshots) and supports the following modes of operation:

  • format: format the volume to the specified filesystem (e.g., execute mkfs)
  • fscopy: perform a filesystem-level copy from one volume to another, the destination volume is formatted prior to the copy
  • fsck: check the file system on the volume
  • fsrepair: check and repair the file system on the volume
  • manual: provide user-level access to the volume through both a Web GUI and root shell (through SSH)

In manual mode, Filer_Linux provides GUI access and root shell to the volume through its default interface. In this mode, Filer_Linux also optionally provides external network access in order for the user to copy files to and from the volume.

Filer_Solaris is a filer appliance that provides filesystem-level access to a volume with a Solaris file system. Filer_Solaris supports the following file systems: ufssol and zfs. It supports the same modes of operation as the Filer_Linux appliance.

ALERT! The Filer appliances are used internally by AppLogic and should not be used in regular AppLogic applications.

Name Latest Version Notes
Filer_Linux 1.2.1  
Filer_Solaris 1.1.1 64-bit only

Boundary

Resources

Filer_Linux resources

Resource Minimum Maximum Default
CPU 0.05 0.05 0.05
Memory 128 MB 1G MB 512 MB
Bandwidth 1 Mbps 1 Mbps 1 Mbps

Filer_Solaris resources

Resource Minimum Maximum Default
CPU 0.05 0.05 0.05
Memory 256 MB 1 GB 512 MB
Bandwidth 1 Mbps 1 Mbps 1 Mbps

Terminals

Name Dir Protocol Description
None

The external interface is enabled. It is used for incoming and outgoing traffic and its network settings are configured through properties. It is only used in the manual mode and is not configured in all other modes.

The default interface is enabled. It is used for maintenance. Also, in the manual mode, it is used for accessing the Web GUI.

User Volumes

Volume Description
src Source volume for filesystem-level volume copy. Used only if the mode of operation is fscopy. Always mounted read-only.
dst Volume that Filer_Linux provides access to. All operations are executed on this volume. Mounted read-only in fsck mode and in manual mode if read_only property is yes, otherwise mounted read-write. Mandatory in all modes.

Properties

Property name Type Description
mode enum Mode of operation for the filer. Valid values are: manual, format, fscopy, fsck, fsrepair. This property is mandatory.
fs_type enum File system on the dst volume. Depending on mode, it is either the file system currently on the dst volume or the file system to format on the dst volume. For Filer_Linux valid values are: ext2, ext3, fat32, reiserfs, swap, ext3-snapshot. For Filer_Solaris valid values are: ufssol and zfs. This property is mandatory.
fs_options string Additional file system options used to format the dst volume, in options=val pairs. This property is file system specific and is valid only in the format or fscopy modes. See below for the options that are valid for each file system. Default: (empty)
vol_name string Name of the dst volume being accessed by the filer. Default: (empty)

Manual Mode Properties

The following properties are only valid in manual mode, ignored in all other modes.
Property name Type Description
read_only enum Restrict dst volume access to read-only (yes or no). Default: yes
ip_addr IP Address Defines the IP address of the external interface. If set to 0.0.0.0, the external interface is not used. Default: 0.0.0.0 (not used).
netmask IP address Defines the network mask of the external interface. This property must be specified if ip_addr is specified. Default: 0.0.0.0.
gateway IP address Defines the default network gateway for the external interface. It can be left blank only if the remote host is on the same subnet; must be specified otherwise. Default: (empty).
dns1 IP address Defines the primary DNS server used in manual mode to resolve domain names. This allows the user to specify hostnames when uploading/downloading files to/from a volume. Default: 208.67.222.222 (OpenDNS.org address).
dns2 IP address Defines the secondary DNS server, which will be used if the primary DNS server does not respond. Default: 208.67.220.220 (OpenDNS.org address).

Operation modes

The following table lists the supported mode for each of the supported file systems:

  format fscopy fsck fsrepair manual
ext2 yes yes yes yes yes
ext3 yes yes yes yes yes
fat32 yes yes yes yes yes
reiserfs yes yes yes yes yes
swap yes no no no yes
ext3-snapshot yes yes yes yes yes
ufssol yes yes yes yes yes
zfs yes yes no yes yes

In manual mode:

  • for all file systems, but swap, the volume is mounted on /mnt/vol.
  • for a swap volume, the block device is accessible on /dev/hda4.

Filesystem options

This section lists the file system options (as specified on fs_options) for each file system supported by Filer_Linux.

  • ext2
    • None

  • ext3
    • None

  • fat32
    • None

  • reiserfs
    • None

  • swap
    • None

  • ext3-snapshot
    • vol_group_name: string, name of the LVM volume group to create on the dst volume. If empty, randomly generate a volume group name. Default: (empty).
    • data_percentage: integer, percentage of the volume that is used to store data, remaining portion of the volume is for snapshots. Default: 80 (80% of the volume is for data).

  • ufssol
    • None

  • zfs
    • pool_name: name of the zpool to create on the dst volume. If empty, the vol_name property value is used instead.
    • mountpoint: mountpoint of the root dataset of the created zpool. Valid values are: an absolute path, e.g. /mnt/mypool, legacy and none. Datasets with legacy mounts are not automatically managed by zfs but require entries in /etc/vfstab or manual mounting. Datasets with mountpoint of none are not mountable. Default: /pool_name.
    • autoreplace: controls automatic device replacement. If set to off device replacement must be manually initiated using zpool replace; if set to on any new device found in the same physical location is automatically formatted and replaced. Default: off.
    • delegation controls whether a non-privileged user is granted access based on permissions defined on datasets. Valid values are off and on. Default: on.
    • failmode: controls behavior in the event of failure. Valid values are wait, continue and panic. Default: wait.
    • version: zpool version. Valid values are 1-10. Default: 10 (current).

Interface

The Filer appliances provide an HTTP interface on their default interface in order to collect status on non-manual volume operations and to access the Web GUI when in manual mode. The following functions are available by URL:

  • /: interactive access to the dst volume through the Web GUI, only available in manual mode
  • /api/status: returns the status for the current volume operation, only available in non-manual mode
    • The format of the output is the following: [progress=W, ]poll=X, status=Y, errortxt=Z
      • progress: integer, 0..100, progress of the current operation. If progress cannot be reported, then the progress field is not returned. Progress is not reported for the following modes:
        • format for all file systems
        • fsck and fsrepair for all file systems, but ext2, ext3, ext3-snapshot, and ufssol
      • poll: integer, recommended status poll interval, in seconds.
      • status: integer, status of the volume operation. See below for the list of statuses that can be returned by Filer_Linux.
      • errortxt: string, error message, if an error occurred (e.g., non-zero status)
    • The following is the list of statuses that Filer_Linux can return in the status field for a specific volume operation:
      • 0 - success
      • 100 - operation failed
      • 101 - operation not supported
      • 102 - operation not implemented
      • 103 - operation canceled
      • 104 - I/O error
      • 200 - no space left on volume
      • 201 - file system errors detected
      • 300 - out of memory
      • 400 - pending

Web GUI

The Filer appliances use a web-based file manager named eXtplorer to provide the Web GUI access to a volume (accessible only in manual mode). eXtplorer is released under the GNU GENERAL PUBLIC LICENSE Version 2. The version of eXtplorer in Filer_Linux has been modified. The following are the changes to eXtplorer:

  1. Removed the login.
  2. Updated eXtplorer not to display its own files.
  3. Changed the file list to show the target for all links under the "Type" column.
  4. Changed the tooltip generated when the mouse is over a directory in the directory list to show the symlink target if the directory is a symlink.
  5. Changed symlink creation through the GUI to support orphaned links.
  6. Changed delete file through the GUI to support deletion of symlinks.
  7. Added an interface for editing the volume base path for any available volume.
  8. Changed the generation of file & directory lists to support links.
  9. Resolve relative & absolute links which include '..'.
  10. Add UI for chgrp/chown, allowing numeric entries only.
  11. Add owner/group to the file display.

The reference for the eXtplorer Volume Browser GUI can be found here.

The eXtplorer licenses and the source to the original un-modified eXtplorer can be found on the Filer appliances in /mnt/monitor/.volume_browser/LICENSES/.

ZFS Implementation Specifics

Filer_Solaris supports zfs pools containing a single virtual device to allow users access to zfs volumes in the same manner as volumes using other file systems such as ufssol. More complex pools using multiple devices can be created manually using raw volumes within an AppLogic appliance, but such volumes cannot be used with Filer_Solaris. ZFS filer operations are constrained to the following behaviors.

  • Pools are created using the altroot property. As a result the mountpoint of the root dataset must be explicitly set, rather than defaulting to the pool name. This is due to a bug in the current zpool command which sets the default mountpoint to /altroot rather than /altroot/pool_name.

  • fsrepair executes zpool scrub and returns a single line of status on completion; either success or failure. However, zpool scrub can be executed live on any pool within a running appliance and displays much more information in the event of a problem.

  • fscopy supports only file system datasets (volume, snapshot and clone datasets are not copied). Administrative permissions are not preserved by fscopy.

  • While the zpool version can be set with fs_options on create, the zfs version of the root dataset is 2, which is not backwards compatible with version 1. Solaris 10 appliances use zfs version 1. To use zfs pools with Solaris 10 appliances, create the pools manually from raw volumes rather than using Filer_Solaris.

Typical Usage

The following sections describe the configuration of Filer_Linux in several typical use cases:

formatting a volume

Example:

Property name Value Description
mode format format volume
fs_type reiserfs format volume with reiserfs

Filer_Linux executes mkfs over the dst volume, specifying a filesystem type of reiserfs.

formatting an ext3-snapshot volume

Example:

Property name Value Description
mode format format volume
fs_type ext3-snapshot format volume with ext3 over LVM with snapshots (i.e., 2 partitions)
fs_options vol_group_name=VGVOL data_percentage=75 75% of the volume is data

Filer_Linux creates a volume group named VGVOL on the dst volume. It then creates a partition named data in the volume group. This partition uses 75% of the space on the dst volume and is formatted with ext3. The remaining partition is for snapshots and is named snap.

filesystem-level volume copy

Example:

Property name Value Description
mode fscopy filesystem-level copy
fs_type ext3 format destination volume with ext3

Filer_Linux formats the dst volume to ext3 with mkfs. It then mounts the src volume read-only and mounts the dst volume read-write. Finally, Filer_Linux copies the contents of the src volume to the dst volume using cp and unmounts both volumes.

file system check

Example:

Property name Value Description
mode fsck file system check
fs_type fat32 volume to be checked has fat32

Filer_Linux executes fsck on the dst volume.

file system check with repair

Example:

Property name Value Description
mode fsrepair file system check with repair
fs_type fat32 volume to be checked and repaired has fat32

Filer_Linux executes fsck with the repair option on the dst volume.

user-level access to volume

Example:

Property name Value Description
mode manual provide user-level access to volume
fs_type ext3 volume has ext3
read_only no read-write access to the volume
ip_addr 192.168.123.100 IP address for external interface
netmask 255.255.255.0 netmask for external interface
gateway 192.168.123.1 gateway for external interface
dns1 192.168.123.254 DNS server

Filer_Linux mounts the dst volume read-write at /mnt/vol. It then starts the eXtplorer GUI and starts sshd, which gives the user root access to the volume. The GUI is accessible through the default interface and any file transfers to/from the volume is through the external interface.

Notes

  • the Linux Filer is based on Ubuntu 7.04
  • the Solaris Filer is based on OpenSolaris Build 2008.05
  • in non-manual mode, there is no SSH or GUI access

Related Documents


-- MinhQ - 24 Jan 2008

 
Copyright © CA 2005-2011. All Rights Reserved.
%