Révision 66 bin/zfs-replica
zfs-replica (revision 66) | ||
---|---|---|
14 | 14 |
>$TEMP_FILE_NAME |
15 | 15 |
BINZFS="/sbin/zfs" |
16 | 16 |
BINZPOOL="/sbin/zpool" |
17 |
BINMBUFFER="mbuffer -4 -v 0 -q -s 128k -m 1G" |
|
18 |
LOCALHOST=$(hostname -s) |
|
17 | 19 |
|
18 | 20 |
#******************************** |
19 | 21 |
#* function initenv |
... | ... | |
73 | 75 |
|
74 | 76 |
} |
75 | 77 |
|
78 |
function computePort { |
|
79 |
# add a number, based on replica name, to mbuffer base port. |
|
80 |
# This try to avoid problems, on multiple replicas cases, such as reception of |
|
81 |
# different replicas on same mbuffer port: yeah, epic fail! |
|
82 |
BasePORT="1030" |
|
83 |
#for i in $(echo $snapshot2replicate| od -An -t u1); do j=$(($j+$i)); echo $j; done |
|
84 |
SumChar=0 |
|
85 |
BaseChars=$(echo $snapshot2replicate | od -An -t u1) |
|
86 |
for i in $BaseChars |
|
87 |
do |
|
88 |
SumChar=$(($SumChar+$i)) |
|
89 |
done |
|
90 |
PORT=$(($BasePORT+$SumChar)) |
|
91 |
} |
|
92 |
|
|
93 |
|
|
76 | 94 |
function checkCoherence { |
77 | 95 |
ssh -o BatchMode=yes root@$server $BINZFS list $namereplica |
78 | 96 |
if [ "$?" != "0" ] |
... | ... | |
182 | 200 |
ssh -o BatchMode=yes root@$server $BINZFS create -p $parentdataset |
183 | 201 |
fi |
184 | 202 |
|
185 |
$BINZFS send $snapshot2replicate |ssh -o BatchMode=yes root@$server $BINZFS recv $namereplica |
|
203 |
# $BINZFS send $snapshot2replicate |ssh -o BatchMode=yes root@$server $BINZFS recv $namereplica |
|
204 |
computePort |
|
205 |
ssh -o BatchMode=yes root@$server "$BINMBUFFER -I $LOCALHOST:$PORT | $BINZFS recv $namereplica " & |
|
206 |
sleep 5s # allow server to be ready |
|
207 |
$BINZFS send $snapshot2replicate | $BINMBUFFER -O $server:$PORT |
|
186 | 208 |
if [[ "$?" == "0" ]] |
187 | 209 |
then |
188 | 210 |
while read line |
... | ... | |
225 | 247 |
then |
226 | 248 |
exit 1 |
227 | 249 |
else |
228 |
$BINZFS send -i $lastsnapshotReplicated $namevolfs@$snasphot2replicate | ssh -o BatchMode=yes root@$server $BINZFS recv $namereplica |
|
250 |
#$BINZFS send -i $lastsnapshotReplicated $namevolfs@$snasphot2replicate | ssh -o BatchMode=yes root@$server $BINZFS recv $namereplica |
|
251 |
computePort |
|
252 |
ssh -o BatchMode=yes root@$server "$BINMBUFFER -I $LOCALHOST:$PORT | $BINZFS recv $namereplica " & |
|
253 |
sleep 5s # allow server to be ready |
|
254 |
$BINZFS send -i $lastsnapshotReplicated $namevolfs@$snasphot2replicate | $BINMBUFFER -O $server:$PORT |
|
229 | 255 |
snapshot2replicate="$namevolfs@$snasphot2replicate" |
230 | 256 |
if [[ "$?" == "0" ]] |
231 | 257 |
then |
Formats disponibles : Unified diff