LVMのSnapshotを毎日自動で取得することによって、物理ディスクの使用量を最小限かつ負荷を最小限にするバックアップスクリプトを書いてみた。曜日でローテーションするので7世代は保管されます。
#!/bin/sh
export LANG=C
SOURCE_LVS=”/dev/datavg/data_lv /dev/datavg/home_lv”
SUFFIX=`date +%a`
LOG=/root/scripts/backup.log
echo “— Script Start `date` —” >>$LOG 2>&1
sync;sync;sync
for LV in ${SOURCE_LVS}
do
MP=`echo ${LV}_${SUFFIX} |sed -e “s/\//__/g”`
#STEP01: Unmounting previous snapshot
echo “STEP01: umount /snapshot/${MP}” >>$LOG 2>&1
umount /snapshot/${MP} >>$LOG 2>&1
#STEP02: Remove previous snapshot
echo “STEP02: lvdisplay -c ${LV}_${SUFFIX}” >>$LOG 2>&1
lvdisplay -c ${LV}_${SUFFIX} >>$LOG 2>&1
if [ $? -eq 0 ]
then
echo “STEP02.01: lvremove -f ${LV}_${SUFFIX}” >>$LOG 2>&1
lvremove -f ${LV}_${SUFFIX} >>$LOG 2>&1
fi
#STEP03: Create snapshot
EXT_SIZE=`lvdisplay -c ${LV}|awk -F: ‘{printf(“%d\n”,$8 / 10)}’`
echo “STEP03: lvcreate -l ${EXT_SIZE} -n ${LV}_${SUFFIX} -s ${LV}” >>$LOG 2>&1
lvcreate -l ${EXT_SIZE} -n ${LV}_${SUFFIX} -s ${LV} >>$LOG 2>&1
#STEP04: Mounting snapshot
if [ ! -d /snapshot/${MP} ]
then
echo “STEP04.01:mkdir -p /snapshot/${MP}” >>$LOG 2>&1
mkdir -p /snapshot/${MP} >>$LOG 2>&1
fi
echo “STEP04.02:mount ${LV}_${SUFFIX} -o ro /snapshot/${MP}” >>$LOG 2>&1
mount ${LV}_${SUFFIX} -o ro /snapshot/${MP} >>$LOG 2>&1
done
echo “— Script End `date` —” >>$LOG 2>&1
#rotate log
mv ${LOG} ${LOG}.tmp
tail -500000 ${LOG}.tmp >${LOG}
rm -f ${LOG}.tmp
実行すると、こんな感じで7世代分のバックアップが読み取り専用で参照できるわけですわ。TIMEFINDERとかFLASHCOPYもどきってやつ??
/dev/mapper/datavg-home_lv
79G 20G 56G 27% /home
/dev/mapper/datavg-data_lv
552G 487G 37G 94% /home/data
/dev/mapper/datavg-data_lv_Sat
552G 487G 37G 94% /snapshot/__dev__datavg__data_lv_Sat
/dev/mapper/datavg-home_lv_Sat
79G 20G 56G 27% /snapshot/__dev__datavg__home_lv_Sat
しかし、2.6.32.7のカーネルのバグにヒットしたらしく、同一のLVから複数のSnapshotを切り出そうとするとカーネルが死ぬ。
結局、SUFFIXを曜日ではなく固定にして1世代のみにするしかない罠。
>の氏
RAID1&外部USB HDDへの定期コピーも併用しているのであくまで論理破壊対策用っす。
LVMのSnapshotも静止点の作成は瞬間ですよん。
snapshotを同じディスクグループに配置したままだと、論理破壊(間違って消しちゃったり)には有効ですが、物理破壊には効果がないよん。バックアップは別メディアにとらなきゃ。(釈迦に説法?)
あと、Timefinder/Flashcopyはsnapshotで複数世代とれることよりは、瞬間静止点を作成できることの方が大きな特徴だと思います。
なので「もどき」かといわれると、ちょっと違うような。