Storage Devices

From LinuxMCE
Revision as of 07:46, 20 April 2006 by Wikiadmin (Talk | contribs)

Jump to: navigation, search
This page was written by Pluto and imported with their permission when LinuxMCE branched off in February, 2007. In general any information should apply to LinuxMCE. However, this page should be edited to reflect changes to LinuxMCE and remove old references to Pluto.
== General Info ==

Package: pluto-storage-devices

Directory: src/PlutoStorageDevices

Background Info

This bash scripts where created to configure / setup storage devices that can be used in pluto. Currently there are 2 device templates that can be configured by this scripts:

  • Hard Drives / Generic Internal Driver (1790)
  • Network Storage / HD-HG300LAN (1794)

This device templates have some common device data:

PK_Users (3) 
A list of integer values separated by comma. The numbers represent the id of the users who can use the storage device for storing private files on them. If the 0 value is there too, the storage device can also be used to store public files. If no value is entered, the default is considered 0 (public only). If the next device data (use pluto dir structure) is not set to 1, all the files will be accessible from one directory on the storage device, meaning that public / private files can be accessible by every user that can access that device.
Use Pluto Directory Structure (130) 
This value can be 1 or 0, meaning that the information on that devices will be stored using a pluto directory structure, identical to the one in /home directory. For every user there will be a separate directory to store it's private data and there will also be a /public directory in there. The default is set to 1 but if other/no value is entered will be considered 0.
Use Automatically (134) 
A leftover ? Not used
Directories (153) 
The media directories from the pluto directory structure that can be used on this device. Example by entering music, movies only the music and movies folders will be available from pluto. The value can be empty, meaning that all directories will be available.

File Details

Scripts used to do generic setup

StorageDevices_Mounts.sh 
This script instructs the automount daemon via the /etc/auto.PlutoStorageDevices file, how to mount the desired storage devices. After it updates the configuration file, the script reloads the automount daemon. All the devices will be accessible in the /mnt/device/device_id mount points. This script configures the automounter only on the computer that runs it.
StorageDevices_ExportsNFS.sh 
Some devices can be attached to only one computer, for example the internal disc drive. This script generates a section in the /etc/exports file that can export the local mounts of this kind of devices over nfs. This way the local storage devices can be accessed by any computer over the network. After it updates the /etc/exports file it also triggers a nfs reload.
StorageDevices_Symlinks.sh 
The mounted storage devices will be accessible to the user via symlinks that are created in the /home directory by this script. Depending if the storage device uses a pluto directory structure or not the synlink will be pointing to the mount point directly or to the pluto media directors that where previously created in it. Also the symlinks will be created only in the directories listed on the Directories device data.
StorageDevices_PlutoDirStructure.sh [-d <deviceID>]
Creates a pluto directory structure on a mounted storage device. Called without -d parameter it creates the pluto dir structure only on the localy mounted devices, used with -d it creates the pluto structure on the specified device. If a device doesn't have the corresponding device data (130) set to true that the script skips it.
StorageDevices_Setup.sh [--cascade]
is the main script that calls the previous script so that it can setup the storage devices. Is intended to be used as a startup script. At startup is called by sysv-rc without the cascade parameter. If the --cascade parameter is supplied that the scripts runs on the local machine and triggers itself to run on the other working machines too.

Configuration scripts for particular device templates

StorageDevices_BuffaloNAS.sh 
Configuration script for device template 1794. It runs StoregeDevices_Setup.sh --cascade to setup the storage devices on all powered on machines and StorageDevices_PlutoDirStructure.sh -d <DeviceID> to setup a directory structure on that particular device.
StorageDevices_InternalDiskDrive.sh 
Configuration script for device template 1790. It runs the StorageDevices_Setup.sh --cascade so it can configure the new device on all the powered on machines.

Use Case

Generic Internal Driver (1790)

This device can be associated with a spare partition that the user has on the drives located in one of the computers running pluto (Diskless MD, Core or Hybrid). The spare partition can be used to store data like movies, music or any other files that the user wants to be easily accessed by pluto.

This device can only be added manually using pluto-admin web interface and shold be a child for the computer device that owns that partition. To add the device the user should select the computer that has the device connected to it, and click on the Create Child Device link. The Description entered for the device will be used when creating symlinks in the user directories (public, home). The device template is located in Peripherals/Hard Drives device category and is named Generic Internal Drive.

The device data field that the user can modify except the ones common for all storage devices is Block Device. Here, the user should put the linux block device name for the partition associated with the pluto device. For example /dev/hda1, /dev/sda1 ...

After a quick reload router (??? don't know when the configure script should have run) the drive will be accessible as folders(symlinks) located in the desired pluto directories from Orbiter, Samba and console.