SnapMirror Script Setup
Eu tiña a tarefa de replicar un filler clientes existente para o seu sistema DR novo. Este sistema foi moi grande, e tanto como a creación de SnapMirrors non é particularmente complexo, é lento. Así como acontece con moitas cousas que eu fago, eu escribín un guión para axudar a miña conseguir esa tarefa máis rápido, e terá aínda outro café.
Vai ter pre-compartida de configuración chaves (como sempre), pero o resto é solicitado. Non hai validación de datos (ningunha sorpresa). O script imprimirá 4 arquivos de texto, unha para crear / restrinxir todos os volumes, un para o "snapmirror.conf", por ser utilizados no lugar de "snapmirror.conf" mentres está facendo o arranque de liña de base e, finalmente, un para realmente arrincar os snapmirrors. Non hai intelixencia en torno de fluxos simultáneos, polo de inicio é aínda un pouco de malabarismo e xogo de espera.
Por favor, deixe-me saber se atopa este útil.
based on 5 ratings#! / Bin / bash
echo "Por favor, indique o nome do filler PRIMARIA:"
ler PRI_FILERecho "Por favor, indique o nome do filler DR:"
ler DR_FILERConnectString = "ssh-c 3des"
# ConnectString = "rsh"SnapMirrorHour = 22
SnapMirrorMinute = 0
SnapMirrorStagger = 5echo "" _filer_volumes.txt> $ {} DR_FILER
echo "" _snapmirror.conf> $ {} DR_FILER
echo ""> $ {} DR_FILER _sm_initialize.txt
echo "" _snapmirror_init.conf> $ {} DR_FILERpara AGGR en `$ {} $ ConnectString PRI_FILER" Agr status "| awk '! $ 2 ~ / Estado / {print $ 1}'`
facer
SIZE = `$ {} $ ConnectString PRI_FILER" df-Ah AGGR $ "| sed 's / \ ([0-9] [KMGT] \) B / \ 1 / g' |! Awk '$ 1 ~ snapshot /. | Agregado / {print $ 2} '`
para VOL en `$ {ConnectString} $ PRI_FILER" Agr show_space $ AGGR "| awk '$ 1 ~ Espazo / / {print $ 0}' | awk '$ 4 ~ volume / | file | none / {print $ 1}'`
facer
echo "vol create $ {} VOL-s $ {ningún AGGR} $ {SIZE}" >> $ {} DR_FILER _filer_volumes.txt
echo "vol restrinxir $ {VOL}" >> $ {} DR_FILER _filer_volumes.txt
echo "SnapMirror initialize-S $ {PRI_FILER}: $ {VOL} $ {DR_FILER}: $ {VOL}" >> $ {} DR_FILER _sm_initialize.txt
echo "$ {PRI_FILER}: $ {VOL} $ {DR_FILER}: $ {VOL} - $ {} $ {SnapMirrorMinute SnapMirrorHour} **" _snapmirror.conf >> $ {} DR_FILER
echo "$ {PRI_FILER}: $ {VOL} $ {DR_FILER}: $ {VOL} -----" >> $ {} DR_FILER _snapmirror_init.confSnapMirrorMinute SnapMirrorStagger = `expr $ SnapMirrorMinute $`
if [$ SnapMirrorMinute-gt 58]
entón
SnapMirrorMinute = 0
SnapMirrorHour = `expr $ SnapMirrorHour + 1`
fi
if [$ SnapMirrorHour-gt 23]
entón
SnapMirrorHour = 0
fi
feito
feito










































Guión incrible. Esta é só a cousa que necesitamos ... os mandos exactos para esta instalado e funcionando o máis rápido posible.
Esta é a primeira vez que crear SnapMirror e eu teño unha pregunta. Cando se está executando a través do loop para encher o ficheiro "$ {} DR_FILER _filer_volumes.txt 'parece que está indo a crear cada volume co tamaño do pai $ {AGGR} en $ {} PRI_FILER. É iso?
Por exemplo, meu $ {} PRI_FILER ten un agregado aggr_sas titulado cun tamaño de 2850G. (. Ten unha andel conectado a el cunha Agr titulado aggr_sata pero iso non vai ser parte dos datos espello) teño 5 volumes: vol0 (sistema operativo), vol_swap, vol_win2003, vol_win2008 e vol_linux. Se eu estou lendo o guión correctamente, cada un destes volumes engadirase $ {} DR_FILER _filer_volumes.txt cun tamaño de 2850G.
Isto é correcta?
Si, basicamente o que pasa é o volume está fina aprovisionado para o tamaño do árido (a escritura non "vol crear -S ningún "Que se establece a reserva de espazo no volume de ningún). Isto permite crecer de forma dinámica a medida que medran os volumes primarios, polo que fai a súa vida un pouco máis fácil. SnapMirror exceso de paseos a definición de provisionais thin eo volume aparecerá para corresponden ao tamaño do volume principal sitio web, pero en realidade o volume subxacente é maior e por iso pode dinámicamente crecendo. A única excepción é que monitore o uso de espazo no seu sistema DR!
@ Chris Kranz
Grazas pola súa resposta rápida ... e que o script perverso enfermo! Me axudou a saír un pouco.
Onde debe ser este script funcionar a partir de?
O guión foi escrito en Bash Linux, polo tanto o ideal sería que executa-lo dunha caixa de Linux de algunha variedade. Pode funcionar en sabores outros * nix, pero eu non proba iso.