From f00d24c79c525414d983a32ef038d42592708735 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Wed, 23 Oct 2019 10:55:59 +0200 Subject: [PATCH] create_job_tmdir: Add helper script Add helpder script to set up and mount a tmpdir volume for a job. Use ext4, because is causes less load on the system than xfs. Tune filesystem for speed, not for durability. --- Makefile | 5 +++++ helper/create_job_tmpdir | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100755 helper/create_job_tmpdir diff --git a/Makefile b/Makefile index 3020bb79..30a8f5d8 100644 --- a/Makefile +++ b/Makefile @@ -596,6 +596,11 @@ build: mxqps clean: CLEAN += mxqps +### script helper ----------------------------------------------------- + +install:: helper/create_job_tmpdir + $(call quiet-install,0755,$^,${DESTDIR}${LIBEXECDIR}/mxq/create_job_tmpdir) + ######################################################################## fix: FIX += mxqdctl-hostconfig.sh diff --git a/helper/create_job_tmpdir b/helper/create_job_tmpdir new file mode 100755 index 00000000..536ac276 --- /dev/null +++ b/helper/create_job_tmpdir @@ -0,0 +1,40 @@ +#! /usr/bin/bash + +# Input (environment): +# +# MXQ_JOBID : job ident +# MXQ_SIZE : size in GB +# MXQ_UID : uid + +# Output: +# +# /dev/shm/mxqd/tmp/$JOBID mounted, space from /scratch/local2 + +tmpdir=/scratch/local2/mxqd/tmp +mntdir=/dev/shm/mxqd/mnt/job +filename=$tmpdir/$MXQ_JOBID.tmp +mountpoint=$mntdir/$MXQ_JOBID + +umask 006 +mkdir -p $tmpdir +mkdir -p $mntdir + +status=1; + +if fallocate -l ${MXQ_SIZE}G $filename; then + if loopdevice=$(losetup --find --show $filename); then + if mkfs.ext4 \ + -m 0 \ + -E nodiscard,mmp_update_interval=300,lazy_journal_init=1,root_owner=$MXQ_UID:0 \ + -O '64bit,ext_attr,filetype,^has_journal,huge_file,inline_data,^mmp,^quota,sparse_super2' \ + $loopdevice \ + && mkdir -p $mountpoint && mount -Odata=writeback,barrier=0 $loopdevice $mountpoint; then + status=0 + fi + losetup -d $loopdevice + fi + rm $filename +else + test -e $fileame && rm $filename +fi +exit $status