ZFS Networker: Difference between revisions
From Lolly's Wiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 30: | Line 30: | ||
# mkdir ${ZPOOL_BASEDIR}/nsr/{bin,log,res} | # mkdir ${ZPOOL_BASEDIR}/nsr/{bin,log,res} | ||
# cat > | # cat > ${ZPOOL_BASEDIR}/nsr/res/${NetworkerGroup}.res <<EOF | ||
type: savepnpc; | type: savepnpc; | ||
precmd: " | precmd: "${ZPOOL_BASEDIR}/nsr/bin/networker_precmd.sh >${ZPOOL_BASEDIR}/nsr/log/networker_precmd.log 2>&1"; | ||
pstcmd: " | pstcmd: "${ZPOOL_BASEDIR}/nsr/bin/networker_pstcmd.sh >${ZPOOL_BASEDIR}/nsr/log/networker_pstcmd.log 2>&1"; | ||
timeout: "12:00pm"; | timeout: "12:00pm"; | ||
abort precmd with group: Yes; | abort precmd with group: Yes; | ||
Line 41: | Line 41: | ||
And now create a link on every node to this file | And now create a link on every node to this file | ||
<source lang=bash> | <source lang=bash> | ||
# ln -s | # ln -s ${ZPOOL_BASEDIR}/nsr/res/${NetworkerGroup}.res /nsr/res/${NetworkerGroup}.res | ||
</source> | </source> | ||
Line 65: | Line 65: | ||
-p clientname=$(basename ${RGname} -rg)-lh \ | -p clientname=$(basename ${RGname} -rg)-lh \ | ||
-p Network_resource=$(basename ${RGname} -rg)-lh-res \ | -p Network_resource=$(basename ${RGname} -rg)-lh-res \ | ||
-p owned_paths= | -p owned_paths=${ZPOOL_BASEDIR} \ | ||
$(basename ${RGname} -rg)-nsr-res | $(basename ${RGname} -rg)-nsr-res | ||
</source> | </source> | ||
Line 81: | Line 81: | ||
</source> | </source> | ||
Now we have a client name to which we can connect: sample-lh | Now we have a client name to which we can connect to: sample-lh |
Revision as of 09:24, 15 September 2014
Kategorie:ZFS Kategorie:Solaris
Backup of ZFS snapshots on Solaris Cluster with Legato/EMC Networker
This describes how to setup a backup of the Solaris Cluster resource group named sample-rg.
The structure of my RGs is always:
RG: <name>-rg ZFS-HASP: <name>-hasp-zfs-res Logical Host: <name>-lh-res Logical Host Name: <name>-lh ZPOOL: <name>_pool
I used the bash as shell.
Define variables used in the following command lines
# NAME=sample
# RGname=${NAME}-rg
# NetworkerGroup=$(echo ${NAME} | tr 'a-z' 'A-Z' )
# ZPOOL=${NAME}_pool
# ZPOOL_BASEDIR=/local/${RGname}
Define a resource for Networker
What we need now is a resource definition in our Networker directory like this:
# zfs create ${ZPOOL}/nsr
# mkdir ${ZPOOL_BASEDIR}/nsr/{bin,log,res}
# cat > ${ZPOOL_BASEDIR}/nsr/res/${NetworkerGroup}.res <<EOF
type: savepnpc;
precmd: "${ZPOOL_BASEDIR}/nsr/bin/networker_precmd.sh >${ZPOOL_BASEDIR}/nsr/log/networker_precmd.log 2>&1";
pstcmd: "${ZPOOL_BASEDIR}/nsr/bin/networker_pstcmd.sh >${ZPOOL_BASEDIR}/nsr/log/networker_pstcmd.log 2>&1";
timeout: "12:00pm";
abort precmd with group: Yes;
EOF
And now create a link on every node to this file
# ln -s ${ZPOOL_BASEDIR}/nsr/res/${NetworkerGroup}.res /nsr/res/${NetworkerGroup}.res
Registering new resource type LGTO.clnt
1. Install Solaris client package LGTOclnt 2. Register new resource type in cluster. One one node do:
# clrt register -f /usr/sbin/LGTO.clnt.rtr LGTO.clnt
Now you have a new resource type LGTO.clnt in your cluster.
Create client resource of type LGTO.clnt
So I use scripts like this:
# RGname=sample-rg
# clrs create \
-t LGTO.clnt \
-g ${RGname} \
-p Resource_dependencies=$(basename ${RGname} -rg)-hasp-zfs-res \
-p clientname=$(basename ${RGname} -rg)-lh \
-p Network_resource=$(basename ${RGname} -rg)-lh-res \
-p owned_paths=${ZPOOL_BASEDIR} \
$(basename ${RGname} -rg)-nsr-res
This expands to:
# clrs create \
-t LGTO.clnt \
-g sample-rg \
-p Resource_dependencies=sample-hasp-zfs-res \
-p clientname=sample-lh \
-p Network_resource=sample-lh-res \
-p owned_paths=/local/sample-rg \
sample-nsr-res
Now we have a client name to which we can connect to: sample-lh