Mark6 Module Initialization and Conditioning
Mark6 Module Initialization
Initialization is the first step to be performed on a new Mark6 module. Initialization also must be performed when a disk is replaced or added to a module. Initialization performs the following:
- removes old partitions on each disk if they exist
- creates new data and metadata partitions on each disk
- puts xfs filesystems on the data and metadata partitions
- mounts the data and metadata filesystems
- sets permissions and ownership on the mounted filesystems
- adds data and cull directories to the data file system and sets permissions and ownership on those directories
- writes disk_sn, eMSN, state and group files to the metadata partition and sets the permissions and ownership on those files
- unmounts the file systems so the module can be safely removed from the unit
Initialization is done with the /usr/bin/m6modinit.py script.
m6modinit.py <slot> <module serial number>
m6modinit.py 2 LBO%0123
This example would initialize the module in slot 2 with MSN (module serial number) LBO%0123. Module serial numbers must be 8 characters long beginning with 'LBO%' and ending with a four digit numeric value.
The m6modinit.py script will output a brief summary of the disks in the pack, remind the user that any existing data on the pack will be lost and ask for a confirmation to continue. The user can type 'y' and press 'Enter' to continue the initialization.
The last step of initialization is grouping the module. The m6modinit.py script will ask the user if the module should be put in a single module group. The user should type 'y' and press 'Enter' to confirm grouping the module into a single module group. The script will write the metadata group file on all disks and finish. At this time we are only using single module groups. In the future, when we go to two module groups, the user will type 'n' and press 'Enter' at the group prompt. The script will then provide the information of how to use a grouping script to group two modules together.
Once m6modinit.py completes the module will be unmounted and can be safely removed from the unit.
Mark 6 module conditioning is the process of writing to and reading data from all available space on all disks in a module. The speeds of the reads and writes saved for analysis, and filesystem blocks that are under-performing are moved into a 'cull' directory and no longer used.
Module conditioning should be performed on new modules, on modules that have had disks replaced and on modules that have disks that may be developing bad blocks.
Mark6 module conditioning is done with the /usr/bin/vlba-hammer.sh script. Conditioning takes about 25 hours for 2 four disk modules or 1 eight disk module.
vlba-hammer.sh slots=<slot numbers>
It is recommended that the person doing initialization and conditioning ssh as difx to swc000, then ssh to the appropriate mark6 unit and run vlba-hammer.sh nohup in the background. The nohup will allow conditioning to run independent of the login console. The person doing conditioning can then exit from the mark6 console and can monitor the conditioning log files from a swc000 console. Conditioning log files are of the form
Conditioning log file example:
vlba-hammer.sh should be run in the /users/difx directory, and conditioning log files will be stored in the /users/difx directory.
nohup vlba-hammer.sh slots=1 >hammer.out 2>&1 &
nohup vlba-hammer.sh slots=23 >hammer.out 2>&1 &
The first example would condition the module in slot 1. The second example would condition the modules in slots 2 and 3.
Once vlba-hammer.sh completes the module will be unmounted and can be safely removed from the unit.
A plot of the conditioning write and read speeds can be made using the vlba-hammer-plot.sh script.
vlba-hammer-plot.sh <log file to plot>
The output of vlba-hammer-plot.sh is a .png file with name of the form:
where YYYYMMDD is the current date. Example:
The .png file can be view with the eog utility. Example:
Emailing Conditioning Plot
The following command can be edited to mail a conditioning plot to mark5-notify:
echo "conditioning plot for LBO%0006" | mail -s "conditioning plot for LBO%0006" -a mark6fx02-LBO%0006-20180713.png email@example.com, firstname.lastname@example.org, email@example.com